プチコン

  1. ’┌──────────────────────────┐
  2. ’│ GRAPHIC EDITOR VER1.00   │
  3. ’├──────────────────────────┤
  4. ’│   (C)SmileBoom Co.Ltd.   │
  5. ’└──────────────────────────┘
  6. VISIBLE 1,1,0,0,1,1
  7. CLEAR
  8. CLS:COLOR 0
  9. SPPAGE 0:SPCLR
  10. SPPAGE 1:SPCLR
  11. DIM RGB(3)
  12. DIM ZS(4)
  13. ’--- カクタ゛イサイス゛
  14. DATA 0,1,3,7
  15. FOR I=0 TO 3:READ ZS(I):NEXT
  16. ’--- ヘンスウ ショキカ
  17. CX=0:CY=0:COL=0
  18. ZM=0:MAXZM=4
  19. TL=0:MAXTL=7:TSTEP=0
  20. OTX=-1:OTY=-1
  21. XC=7:PR=1:GM=0
  22. ’--- カ゛メン ショキカ
  23. GOSUB @DISPINIT
  24. ’┌─────────┐
  25. ’│ メインル-フ゜ │
  26. ’└─────────┘
  27. @MAIN
  28.  ’
  29.  OX=TX:OY=TY:OS=TS
  30.  TX=TCHX:TY=TCHY:TS=TCHST
  31.  OLDB=B:B=BUTTON()
  32.  OLDIC=IC:IC=ICONCHK()
  33.  ’
  34.  GOSUB @SELCOL
  35.  GOSUB @DRAWSUB
  36.  GOSUB @CHKMODE
  37.  ’
  38.  VSYNC 0
  39.  ’
  40. GOTO @MAIN
  41. ’┌────────┐
  42. ’│ サフ゛ショリ │
  43. ’└────────┘
  44. ’──────────────────────────
  45. @DISPINIT ’カ゛メンノショキカ
  46. ’──────────────────────────
  47. PNLTYPE ”OFF”
  48. CLS:COLOR 0
  49. GCOLOR 0:GPAGE 0:GCLS 0
  50. PRINT ”カ゛メンヲケシマスカ(А=YES)”
  51. GOSUB @BUTCHK
  52. GC=FALSE
  53. IF K==16 THEN GC=TRUE
  54. CLS
  55. ’┌─────────┐
  56. ’│ ウエ カ゛メン │
  57. ’└─────────┘
  58. PRINT”┌──────────────────────────────┐”;
  59. PRINT”│GRAPHIC EDITOR v1.0           │”;
  60. PRINT”└──────────────────────────────┘”;
  61. ’--- イロミホン
  62. X=14:Y=4
  63. LOCATE X,Y
  64. PRINT ”┌────────────────┐”
  65. FOR I=1 TO 16
  66.  LOCATE X,I+Y
  67.  PRINT”│                │”
  68. NEXT
  69. LOCATE X,I+Y
  70. PRINT ”└────────────────┘”
  71. HX=X+1:HY=Y+1
  72. GOSUB @COLBOX
  73. GOSUB @COLCSR
  74. ’--- ツ-ルリスト
  75. MX=0:MY=6
  76. LOCATE MX,MY-2
  77. PRINT ”<Ф:TOOL>”
  78. PRINT
  79. PRINT ” PSET”
  80. PRINT ” LINE”
  81. PRINT ” BOX”
  82. PRINT ” CIRCLE”
  83. PRINT ” PAINT”
  84. PRINT ” FILL”
  85. PRINT ” CLS”
  86. ’--- ヘ゜ンサキ
  87. ZX=0:ZY=CSRY+3
  88. LOCATE ZX,ZY-2
  89. PRINT ”<Ё:PSET-PEN>”
  90. PRINT
  91. PRINT ” x1”
  92. PRINT ” x2”
  93. PRINT ” x4”
  94. PRINT ” x8”
  95. ’---
  96. LOCATE 0,23
  97. PRINT ”<А:FILE>”;
  98. GOSUB @PUTMODE
  99. ’┌─────────┐
  100. ’│ シタ カ゛メン │
  101. ’└─────────┘
  102. PNLTYPE ”OFF”
  103. GPAGE 1:GCOLOR 0
  104. IF GC THEN GCLS 0
  105. ’--- 
  106. SPSET 0,110,0,0,0,0
  107. SPOFS 0,-16,-16
  108. ’--- システムアイコン
  109. ICONPUSE=FALSE
  110. ’ICONPAGE=0
  111. ’ICONPMAX=4
  112. FOR I=0 TO 3
  113.  ICONCLR I
  114. NEXT
  115. RETURN
  116. ’──────────────────────────
  117. @BUTCHK
  118. ’──────────────────────────
  119. O=B
  120. B=BUTTON()
  121. K=B AND (NOT O)
  122. VSYNC 1
  123. IF K==0 GOTO @BUTCHK
  124. LOCATE 0,0:PRINT K
  125. RETURN
  126. ’──────────────────────────
  127. @TOUCH ’アタリハンテイ
  128. ’──────────────────────────
  129. R=FALSE
  130. IF TS==FALSE THEN RETURN
  131. IF TX<X THEN RETURN
  132. IF TX>X+W THEN RETURN
  133. IF TY<Y THEN RETURN
  134. IF TY>Y+H THEN RETURN
  135. X=TX AND &HF8
  136. Y=TY AND &HF8
  137. R=TRUE
  138. RETURN
  139. ’──────────────────────────
  140. @NUMSTR ’スウシ゛ヲ3ケタノモシ゛ニスル
  141. ’──────────────────────────
  142. N$=”  ”+STR$(N)
  143. S=LEN(N$)
  144. N$=MID$(N$,S-3,3)
  145. RETURN
  146. ’---
  147. @PUTNUM
  148. GOSUB @NUMSTR
  149. COLOR C
  150. LOCATE X,Y:PRINT N$;
  151. COLOR 0
  152. RETURN
  153. ’──────────────────────────
  154. @SELCOL ’イロセンタク
  155. ’──────────────────────────
  156. VX=0:VY=0
  157. IF B AND 1 THEN VY=VY-1
  158. IF B AND 2 THEN VY=VY+1
  159. IF B AND 4 THEN VX=VX-1
  160. IF B AND 8 THEN VX=VX+1
  161. IF VX+VY==0 THEN WT=0:GOTO @COLCSR
  162. IF OLDB==0 GOTO @SELMOV
  163. ’--- ホ゛タンリヒ゜-ト
  164. MAX1=60*4:MAX2=60
  165. IF WT<MAX1 GOTO @WTUP
  166. WT2=WT2+1
  167. IF WT2<MAX2 THEN RETURN
  168. WT2=0
  169. GOTO @SELMOV2
  170. @WTUP
  171. WT=WT+1
  172. IF WT<MAX1 THEN RETURN
  173. WT2=0
  174. RETURN
  175. ’---
  176. @SELMOV
  177. WT=0
  178. @SELMOV2
  179. GOSUB @COLCLR
  180. CX=CX+VX:CY=CY+VY
  181. IF CX<0 THEN CY=CY-1:CY=CY AND 15
  182. IF CX>15 THEN CY=CY+1:CY=CY AND 15
  183. IF CY<0 THEN CX=CX-1:CX=CX AND 15
  184. IF CY>15 THEN CX=CX+1:CX=CX AND 15
  185. CX=CX AND 15
  186. CY=CY AND 15
  187. GOTO @COLCSR
  188. ’---
  189. @COLCLR
  190. LOCATE HX+CX,HY+CY
  191. PRINT ” ”
  192. RETURN
  193. ’――――――――――――――――――――――――――
  194. @COLCSR
  195. COLOR CC
  196. CC=CC+1:CC=CC AND 15
  197. COL=CY*16+CX
  198. LOCATE HX+CX,HY+CY
  199. PRINT ”□”
  200. COLOR 0
  201. ’---
  202. @COLRGB
  203. X=15:Y=23:N=PAL*16+COL
  204. COLREAD(”GRP”,N),RGB(0),RGB(1),RGB(2)
  205. C=0
  206. GOSUB @PUTNUM
  207. PRINT”:”;
  208. N=RGB(0):X=CSRX+1:C=13
  209. GOSUB @PUTNUM:PRINT”,”;
  210. N=RGB(1):X=CSRX:C= 4
  211. GOSUB @PUTNUM:PRINT”,”;
  212. N=RGB(2):X=CSRX:C=11
  213. GOSUB @PUTNUM
  214. RETURN
  215. ’――――――――――――――――――――――――――
  216. @COLBOX
  217. GPAGE 0
  218. DX=HX*8:DY=HY*8
  219. FOR I=0 TO 255
  220.  X=FLOOR(I%16)*8+DX
  221.  Y=FLOOR(I/16)*8+DY
  222.  GFILL X,Y,X+7,Y+7,I
  223. NEXT
  224. GPAGE 1
  225. RETURN
  226. ’──────────────────────────
  227. @DRAWSUB ’ト゛ットヲオク
  228. ’──────────────────────────
  229. ’--- ステッフ゜カクニン
  230. IF TSTEP==1 GOTO @_DSTEP1
  231. ’--- 0:オサレルマテ゛
  232. IF TS==FALSE GOTO @_DSKIP0
  233. TX1=TX:TY1=TY
  234. TX2=TX:TY2=TY
  235. SPOFS 0,TX1,TY1
  236. ’--- Кホ゛タン:SPOIT
  237. IF B AND 256 GOTO @_SPOIT
  238. SPCHR 0,110,0,0,0,PR
  239. GOTO @_DJUMP
  240. ’--- 
  241. @_DSKIP0
  242. OTX=-1:OTY=-1
  243. SPOFS 0,-16,-16
  244. RETURN
  245. ’--- 1:ハナサレルマテ゛
  246. @_DSTEP1
  247. IF TS==FALSE GOTO @_DJUMP
  248. TX2=TX:TY2=TY
  249. RETURN
  250. ’--- キノウコ゛トフ゛ンキ
  251. @_DJUMP
  252. IF TL==0 GOTO @_PSET
  253. IF TL==4 GOTO @_PAINT
  254. IF TL==6 GOTO @_CLS
  255. ’--- 2ステッフ゜ツ-ル
  256. IF TSTEP==0 THEN TSTEP=1:RETURN
  257. TSTEP=0
  258. ON TL GOTO @DED,@_LINE,@_BOX,@_CIRCLE,@DED,@_FILL,
  259. @DED
  260. RETURN
  261. ’---
  262. @_LINE
  263. GLINE TX1,TY1,TX2,TY2,COL
  264. RETURN
  265. ’---
  266. @_BOX
  267. GBOX TX1,TY1,TX2,TY2,COL
  268. RETURN
  269. ’---
  270. @_FILL
  271. GFILL TX1,TY1,TX2,TY2,COL
  272. RETURN
  273. ’---
  274. @_CIRCLE
  275. X=ABS(TX1-TX2)
  276. Y=ABS(TY1-TY2)
  277. IF X<Y THEN X=Y
  278. GCIRCLE TX1,TY1,X,COL
  279. RETURN
  280. ’---
  281. @_CLS
  282. GCLS
  283. RETURN
  284. ’---
  285. @_SPOIT
  286. SPCHR 0,114,0,0,0,PR
  287. GOSUB @COLCLR
  288. C=GSPOIT(TX,TY)
  289. CX=FLOOR(C%16)
  290. CY=FLOOR(C/16)
  291. GOSUB @COLCSR
  292. RETURN
  293. ’---
  294. @_PAINT
  295. GPAINT TX,TY,COL
  296. RETURN
  297. ’---
  298. @_PSET
  299. IF ZS(ZM)!=0 GOTO @_PSET2
  300. ’---
  301. IF OTX<0 THEN OTX=TX1:OTY=TY1
  302. GLINE OTX,OTY,TX1,TY1,COL
  303. OTX=TX1:OTY=TY1
  304. RETURN
  305. ’---
  306. @_PSET2
  307. X=TX-FLOOR(ZS(ZM)/2)
  308. Y=TY-FLOOR(ZS(ZM)/2)
  309. GFILL X,Y,X+ZS(ZM),Y+ZS(ZM),COL
  310. RETURN
  311. ’──────────────────────────
  312. @CHKMODE ’モ-ト゛カクニン
  313. ’──────────────────────────
  314. IF OLDB!=0 THEN RETURN
  315. IF B== 16 GOTO @FILEMODE
  316. IF B== 64 GOTO @TOOLSEL
  317. IF B==128 GOTO @ZOOMSEL
  318. IF B==512 GOTO @GRID
  319. RETURN
  320. ’---
  321. @GRID
  322. IF GM==0 GOTO @GON
  323. FOR I=0 TO 23
  324.  PNLSTR 0,I,”                                ”
  325. NEXT
  326. GM=0:RETURN
  327. ’---
  328. @GON
  329. FOR I=0 TO 23
  330.  PNLSTR 0,I,”СССССССССССССССССССССССССССССССС”
  331. NEXT
  332. GM=1:RETURN
  333. ’---
  334. @ZOOMSEL
  335. LOCATE ZX,ZY+ZM:PRINT” ”
  336. ZM=ZM+1
  337. IF ZM>=MAXZM THEN ZM=0
  338. GOTO @PUTMODE
  339. ’---
  340. @TOOLSEL
  341. LOCATE MX,MY+TL:PRINT” ”
  342. TL=TL+1
  343. IF TL>=MAXTL THEN TL=0
  344. TSTEP=0
  345. ’――――――――――――――――――――――――――
  346. @PUTMODE
  347. LOCATE MX,MY+TL
  348. PRINT ”Й”;
  349. LOCATE ZX,ZY+ZM
  350. PRINT ”Й”;
  351. RETURN
  352. ’──────────────────────────
  353. @FILEMODE ’ファイルノヨミカキ
  354. ’──────────────────────────
  355. PNLTYPE ”KYA”
  356. FOR I=0 TO 3:ICONCLR I:NEXT
  357. ’GOTO @_FLOOP
  358. ’---
  359. CLS:GPAGE 0:GCLS
  360. INPUT ”ウエニコヒ゜-シマスカ(Y/N)”;K$
  361. IF K$!=”Y” GOTO @_FLOOP
  362. ’---
  363. FOR Y=0 TO 191
  364.  FOR X=0 TO 255
  365.   GPAGE 1
  366.   C=GSPOIT(X,Y)
  367.   GPAGE 0
  368.   GPSET X,Y,C
  369.  NEXT
  370. NEXT
  371. GPAGE 1
  372. ’---
  373. @_FLOOP
  374. CLS
  375. PRINT”────────────────────────────────”;
  376. PRINT” L:GRPヨミコミ”
  377. PRINT” S:GRPホソ゛ン”
  378. PRINT”LC:イロヨミコミ”
  379. PRINT”SC:イロホソ゛ン”
  380. PRINT” Q:ファイルメニュ-オワリ”
  381. PRINT” E:ツ-ルオワリ”
  382. PRINT”────────────────────────────────”;
  383. ’---
  384. INPUT”コマント゛”;K$
  385. IF K$==”Q” GOTO @_FQUIT
  386. IF K$==”E” GOTO @_FEXIT
  387. IF K$==”S” GOTO @_FSAVE
  388. IF K$==”L” GOTO @_FLOAD
  389. IF K$==”SC” GOTO @_FCSAVE
  390. IF K$==”LC” GOTO @_FCLOAD
  391. GOTO @_FLOOP
  392. ’---
  393. @_FCLOAD
  394. INPUT”ヨミコムナマエ(COL):”;K$
  395. K$=”COL2:”+K$:PRINT K$
  396. GPAGE 0
  397. LOAD K$,FALSE
  398. GPAGE 1
  399. LOAD K$,FALSE
  400. GOTO @_FQUIT
  401. ’---
  402. @_FCSAVE
  403. INPUT”ホソ゛ンスルナマエ(COL):”;K$
  404. K$=”COL2:”+K$:PRINT K$
  405. SAVE K$
  406. GOTO @_FQUIT
  407. ’---
  408. @_FLOAD
  409. INPUT”ヨミコムナマエ(GRP):”;K$
  410. K$=”GRP1:”+K$:PRINT K$
  411. LOAD K$,FALSE
  412. GOTO @_FQUIT
  413. ’---
  414. @_FSAVE
  415. INPUT”ホソ゛ンスルナマエ(GRP):”;K$
  416. K$=”GRP1:”+K$:PRINT K$
  417. SAVE K$
  418. ’---
  419. @_FQUIT
  420. GOSUB @DISPINIT
  421. RETURN
  422. ’---
  423. @_FEXIT
  424. FOR I=1 TO 0 STEP -1
  425.  SPPAGE I:SPCLR
  426.  GPAGE I:GCLS
  427. NEXT
  428. FOR I=0 TO 255
  429.  COLINIT ”GRP”,I
  430.  COLINIT ”BG”,I
  431. NEXT
  432. COLOR 0
  433. CLS
  434. PRINT ”オツカレサマ!”
  435. END