プチコンmkII

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