プチコン

  1. ’┌──────────────────────────┐
  2. ’│ CHARACTER 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 MD$(4),CS$(2,4)
  12. DIM SB(16,6),RGB(3),OFS(4)
  13. DIM CBANK(2),CBMAX(2),CSTR$(2)
  14. ’--- キャラハ゛ンク
  15. DATA ”BGU”,4
  16. DATA ”SPU”,8
  17. FOR I=0 TO 1
  18.  READ CSTR$(I),CBMAX(I)
  19. NEXT
  20. ’--- カ-ソル
  21. DATA ”йй”,”и”,”жж”,”з”
  22. DATA ”  ”,” ”,”  ”,” ”
  23. FOR I=0 TO 1
  24.  FOR J=0 TO 3
  25.   READ CS$(I,J)
  26.  NEXT
  27. NEXT
  28. ’--- モート゛モシ゛レツ
  29. DATA ” FILE”,”COLOR”,”  PEN”,”PAINT”
  30. FOR I=0 TO 3:READ MD$(I):NEXT
  31. ’--- スフ゜ライトホ゛タン
  32. _X=0:_Y=1:_N=2:_G=3:_C=4:_T=5:_MAX=6
  33. TP=8:SBMAX=16:SPTOP=32:PR=1
  34. ’--- 0―7:キャラハ゛ンク
  35. DATA 8,144,48,1,0,0
  36. DATA 24,144,49,1,0,0
  37. DATA 40,144,50,1,0,0
  38. DATA 56,144,51,1,0,0
  39. DATA 72,144,52,1,0,0
  40. DATA 88,144,53,1,0,0
  41. DATA 104,144,54,1,0,0
  42. DATA 120,144,55,1,0,0
  43. ’--- 8―9:キャラシュルイ
  44. DATA 144,8,64,2,0,0
  45. DATA 144,24,67,2,0,1
  46. ’--- 10―15:RGB
  47. DATA  16,176,92,0,0,0
  48. DATA  32,176,93,0,0,0
  49. DATA  56,176,92,0,0,0
  50. DATA  72,176,93,0,0,0
  51. DATA  96,176,92,0,0,0
  52. DATA 112,176,93,0,0,0
  53. ’---
  54. FOR I=0 TO SBMAX-1
  55.  FOR J=0 TO _MAX-1
  56.   READ SB(I,J)
  57.  NEXT
  58.  SPSET I+SPTOP,SB(I,_N),0,0,0,PR
  59.  SPOFS I+SPTOP,SB(I,_X),-16
  60. NEXT
  61. ’--- ヘンスウ ショキカ
  62. CTYPE=0
  63. GOSUB @SETCSTR
  64. PAL=0
  65. COL=0
  66. XC=7
  67. MODE=2
  68. SPSW=FALSE
  69. CX=0:CY=0
  70. W1=0:W2=0
  71. K1=0:K2=0
  72. GOSUB @MKOFS
  73. ’--- カ゛メン ショキカ
  74. GOSUB @DISPINIT
  75. ’┌─────────┐
  76. ’│ メインル-フ゜ │
  77. ’└─────────┘
  78. @MAIN
  79.  ’
  80.  OX=TX:OY=TY:OS=TS
  81.  TX=TCHX:TY=TCHY:TS=TCHST
  82.  OLDB=B:B=BUTTON()
  83.  OLDIC=IC:IC=ICONCHK()
  84.  ’
  85.  GOSUB @SPBUT
  86.  GOSUB @SELCOL
  87.  GOSUB @CSRMOVE
  88.  GOSUB @COLCSR
  89.  GOSUB @DRAWCOL
  90.  GOSUB @CHKMODE
  91.  ’
  92.  VSYNC(0)
  93.  ’
  94. GOTO @MAIN
  95. ’┌────────┐
  96. ’│ サフ゛ショリ │
  97. ’└────────┘
  98. ’──────────────────────────
  99. @DISPINIT ’カ゛メンノショキカ
  100. ’──────────────────────────
  101. CLS:COLOR 0
  102. ’┌─────────┐
  103. ’│ ウエ カ゛メン │
  104. ’└─────────┘
  105. GPAGE 0:GCOLOR 0:GCLS
  106. ’--- モトノカ゛ソ゛ウヲヒョウシ゛
  107. LOCATE 0,8
  108. PRINT”┌──────────────────────────────┐”;
  109. PRINT”│CHARACTER EDITOR v1.0         │”;
  110. PRINT”└──────────────────────────────┘”;
  111. GOSUB @CHRALL
  112. LOCATE 0,23
  113. PRINT ”А=ファイルモ-ト゛”;
  114. ’┌─────────┐
  115. ’│ シタ カ゛メン │
  116. ’└─────────┘
  117. PNLTYPE ”OFF”
  118. GPAGE 1:GCOLOR 0:GCLS
  119. ’--- ヘンシュウエリア
  120. X=0:Y=0
  121. PNLSTR X,Y,   ”┌────────────────┬──┐”
  122. FOR I=1 TO 16
  123.  PNLSTR X,Y+I,”│СССССССССССССССС│  │”
  124. NEXT I
  125. PNLSTR X,Y+I, ”├────────────────┬──┘”
  126. PNLSTR X,Y+I+1, ”│                │”
  127. PNLSTR X,Y+I+2, ”│                │”
  128. PNLSTR X,Y+I+3, ”└────────────────┘”
  129. EX=(X+1)*8:EY=(Y+1)*8
  130. DR=FALSE
  131. GOSUB @CHRZOOM
  132. FOR I=0 TO SBMAX-1
  133.  SPOFS I+SPTOP,SB(I,_X),SB(I,_Y)
  134. NEXT
  135. ’--- イロミホン
  136. X=22:Y=0
  137. PNLSTR X,Y,     ”┌────────┐”
  138. FOR I=1 TO 8 STEP 2
  139.  PNLSTR X,I+Y  ,”│СТСТСТСТ│”
  140.  PNLSTR X,I+Y+1,”│У У У У │”
  141. NEXT
  142. PNLSTR X,I+Y,   ”└────────┘”
  143. HX=X+1:HY=Y+1
  144. HDX=HX*8:HDY=HY*8
  145. GOSUB @COLBOX
  146. SPSET 0,103,0,0,0,0
  147. GOSUB @COLCSR
  148. GOSUB @SETCTYPE
  149. ’--- イロハ゛ンク
  150. X=22:Y=10
  151. PNLSTR X,Y,   ”┌────────┐”
  152. FOR I=1 TO 8
  153.  PNLSTR X,I+Y,”│        │”
  154. NEXT
  155. PNLSTR X,Y+I, ”└────────┘”
  156. PDX=X*8+8:PDY=Y*8+8
  157. FOR I=0 TO 15
  158.  X=FLOOR(I%4)*16+PDX
  159.  Y=FLOOR(I/4)*16+PDY
  160.  SPSET I+2,I+48,0,0,0,1
  161.  SPOFS I+2,X,Y
  162. NEXT
  163. SPCHR PAL+2,PAL+48,XC,0,0,1
  164. ’--- システムアイコン
  165. ICONPUSE=FALSE
  166. ’ICONPAGE=0
  167. ’ICONPMAX=4
  168. ICONCLR 0
  169. ICONCLR 1:’59)FILE
  170. ICONSET 2,5 :’PEN
  171. ICONSET 3,6 :’PAINT
  172. GOSUB @PUTMODE
  173. RETURN
  174. ’──────────────────────────
  175. @TOUCH ’アタリハンテイ
  176. ’──────────────────────────
  177. R=FALSE
  178. IF TS==FALSE THEN RETURN
  179. IF TX<X THEN RETURN
  180. IF TX>X+W THEN RETURN
  181. IF TY<Y THEN RETURN
  182. IF TY>Y+H THEN RETURN
  183. X=TX AND &HF8
  184. Y=TY AND &HF8
  185. R=TRUE
  186. RETURN
  187. ’──────────────────────────
  188. @NUMSTR ’スウシ゛ヲ3ケタノモシ゛ニスル
  189. ’──────────────────────────
  190. N$=”  ”+STR$(N)
  191. S=LEN(N$)
  192. N$=MID$(N$,S-3,3)
  193. RETURN
  194. ’---
  195. @NUMSTRX
  196. N=N+(CBANK(CTYPE)*256)
  197. N$=”00”+HEX$(N)
  198. S=LEN(N$)
  199. N$=”&h”+MID$(N$,S-3,3)
  200. RETURN
  201. ’---
  202. @PUTNUM
  203. GOSUB @NUMSTR
  204. COLOR C
  205. LOCATE X,Y:PNLSTR X,Y,N$
  206. COLOR 0
  207. RETURN
  208. ’──────────────────────────
  209. @CSRMOVE ’ウエカ゛メンノカ-ソル
  210. ’──────────────────────────
  211. VX=0:VY=0
  212. IF B AND 1 THEN VY=VY-1
  213. IF B AND 2 THEN VY=VY+1
  214. IF B AND 4 THEN VX=VX-1
  215. IF B AND 8 THEN VX=VX+1
  216. ’IF OLDB==0 GOTO @CMOVE
  217. ’IF VX+VY!=0 GOTO @_K1
  218. IF B!=0 GOTO @CMOVE
  219. ’---
  220. @_KOFF
  221. K1=0:K2=0
  222. GOTO @PUTCSR
  223. ’---
  224. @_K1
  225. IF K1==30 GOTO @_KR2
  226. K1=K1+1:IF K1<30 GOTO @PUTCSR
  227. GOTO @CMOVE
  228. @_KR2
  229. K2=K2+1:IF K2<8 THEN @PUTCSR
  230. K2=0
  231. ’---
  232. @CMOVE
  233. GOSUB @CLRCSR
  234. IF CTYPE!=0 THEN VX=VX*2:VY=VY*2
  235. CX=CX+VX:CY=CY+VY
  236. IF CX<0 THEN CX=0
  237. IF CX>30 THEN CX=30
  238. IF CY<0 THEN CY=0
  239. IF CY>6 THEN CY=6
  240. GOSUB @MKOFS
  241. GOSUB @CHRZOOM
  242. ’---
  243. @PUTCSR
  244. COLOR CC
  245. CC=CC+1:CC=CC AND 15
  246. N=0
  247. ’――――――――――――――――――――――――――
  248. @PCSRSUB
  249. IF CY>0 THEN LOCATE CX,CY-1:PRINT CS$(N,0)
  250. IF CX<1 GOTO @_SKPCSR
  251.  LOCATE CX-1,CY  :PRINT CS$(N,1)
  252.  LOCATE CX-1,CY+1:PRINT CS$(N,1)
  253. @_SKPCSR
  254. IF CY<6 THEN LOCATE CX,CY+2:PRINT CS$(N,2)
  255. IF CX>29 GOTO @_SKPCSR2
  256.  LOCATE CX+2,CY  :PRINT CS$(N,3)
  257.  LOCATE CX+2,CY+1:PRINT CS$(N,3)
  258. @_SKPCSR2
  259. COLOR 0
  260. RETURN
  261. ’――――――――――――――――――――――――――
  262. @CLRCSR
  263. N=1:GOSUB @PCSRSUB
  264. RETURN
  265. ’──────────────────────────
  266. @MKOFS ’テキセツナオフセットセッテイ
  267. ’──────────────────────────
  268. IF SB(TP+CTYPE,_T) GOTO @_OFSSP
  269. ’---
  270. CH=CY*32+CX
  271. OFS(0)=CH
  272. OFS(1)=CH+1
  273. OFS(2)=CH+32
  274. OFS(3)=CH+33
  275. RETURN
  276. ’---
  277. @_OFSSP
  278. CH=CY*32+CX*2
  279. FOR I=0 TO 3
  280.  OFS(I)=CH+I
  281. NEXT
  282. RETURN
  283. ’──────────────────────────
  284. @CHRZOOM ’シタカ゛メンニキャラヒョウシ゛
  285. ’──────────────────────────
  286. GPAGE 1
  287. GOSUB @MKOFS
  288. Z=8:S=Z*8
  289. SPPAGE 0:BGPAGE 0
  290. GFILL EX,EY,EX+127,EY+127,0
  291. GPUTCHR EX,EY,CN$,OFS(0),PAL,Z
  292. GPUTCHR EX+S,EY,CN$,OFS(1),PAL,Z
  293. GPUTCHR EX,EY+S,CN$,OFS(2),PAL,Z
  294. GPUTCHR EX+S,EY+S,CN$,OFS(3),PAL,Z
  295. SPPAGE 1:BGPAGE 1
  296. ’---
  297. X=0:Y=17
  298. LOCATE X,Y-1
  299. PRINT ”          ”;
  300. IF CTYPE==0 GOTO @_CHRIX
  301. N=(OFS(0)+CBANK(CTYPE)*256)/4
  302. LOCATE X,Y-1
  303. PRINT ”SPIX:&h”;HEX$(N)
  304. ’---
  305. @_CHRIX
  306. LOCATE X,Y:PRINT”┌─────┬─────┐”
  307. N=OFS(0):GOSUB @NUMSTRX
  308. LOCATE X,Y+1:PRINT”│”;N$;”│”;
  309. N=OFS(1):GOSUB @NUMSTRX
  310. PRINT N$;”│”
  311. LOCATE X,Y+2:PRINT”├─────┬─────┤”
  312. N=OFS(2):GOSUB @NUMSTRX
  313. LOCATE X,Y+3:PRINT”│”;N$;”│”;
  314. N=OFS(3):GOSUB @NUMSTRX
  315. PRINT N$;”│”
  316. LOCATE X,Y+4:PRINT”└─────┴─────┘”
  317. RETURN
  318. ’──────────────────────────
  319. @SELCOL ’イロセンタク
  320. ’──────────────────────────
  321. X=HDX:Y=HDY:W=63:H=W
  322. GOSUB @TOUCH
  323. IF R GOTO @_COLNEW
  324. ’--- ハ゛ンク
  325. X=PDX:Y=PDY
  326. GOSUB @TOUCH
  327. IF R==FALSE THEN RETURN
  328. ’---
  329. X=FLOOR((X-PDX)/16)
  330. Y=FLOOR((Y-PDY)/16)
  331. SPCHR PAL+2,PAL+48,0,0,0,1
  332. PAL=Y*4+X
  333. SPCHR PAL+2,PAL+48,XC,0,0,1
  334. GOSUB @SETCOLOR
  335. RETURN
  336. ’--- イロ
  337. @_COLNEW
  338. X=FLOOR((X-HDX)/16)
  339. Y=FLOOR((Y-HDY)/16)
  340. COL=Y*4+X
  341. ’――――――――――――――――――――――――――
  342. @COLCSR
  343. X=FLOOR(COL%4)*16
  344. Y=FLOOR(COL/4)*16
  345. SPOFS 0,HDX+X,HDY+Y
  346. ’---
  347. @COLRGB
  348. Y=21:C=PAL*16+COL
  349. COLREAD(”BG”,C),RGB(0),RGB(1),RGB(2)
  350. N=RGB(0):X=3:C=13:GOSUB @PUTNUM
  351. N=RGB(1):X=8:C= 4:GOSUB @PUTNUM
  352. N=RGB(2):X=13:C=11:GOSUB @PUTNUM
  353. RETURN
  354. ’――――――――――――――――――――――――――
  355. @COLBOX
  356. FOR I=0 TO 15
  357.  X=FLOOR(I%4)*16+HDX
  358.  Y=FLOOR(I/4)*16+HDY
  359.  GFILL X,Y,X+15,Y+15,PAL*16+I
  360. NEXT
  361. RETURN
  362. ’──────────────────────────
  363. @DRAWCOL ’ト゛ットヲオク
  364. ’──────────────────────────
  365. IF TS GOTO @_DRCHK
  366. IF DR==FALSE THEN RETURN
  367. ’――――――――――――――――――――――――――
  368. I=OFS(0):X=EX:Y=EY:GOSUB @SETCHR
  369. I=OFS(1):X=EX+64:Y=EY:GOSUB @SETCHR
  370. I=OFS(2):X=EX:Y=EY+64:GOSUB @SETCHR
  371. I=OFS(3):X=EX+64:Y=EY+64:GOSUB @SETCHR
  372. DR=FALSE
  373. RETURN
  374. ’---
  375. @_DRCHK
  376. X=EX:Y=EY:W=127:H=W
  377. GOSUB @TOUCH
  378. IF R==FALSE THEN RETURN
  379. ’---
  380. C=PAL*16+COL:DR=TRUE
  381. IF MODE==2 GOTO @_PEN
  382. ’---
  383. @_PAINT
  384. C2=C+1:IF C2>255 THEN C2=1
  385. GBOX EX-1,EY-1,EX+128,EY+128,C2
  386. GPAINT X,Y,C
  387. RETURN
  388. ’---
  389. @_PEN
  390. GFILL X,Y,X+7,Y+7,C
  391. RETURN
  392. ’──────────────────────────
  393. @SETCHR ’I=INDEX,X,Y=OFS
  394. ’──────────────────────────
  395. CH$=””
  396. FOR IY=0 TO 7
  397.  FOR IX=0 TO 7
  398.   C=GSPOIT(IX*8+X,IY*8+Y)
  399.   CH$=CH$+HEX$(C AND 15)
  400.  NEXT
  401. NEXT
  402. SPPAGE 0:BGPAGE 0
  403. CHRSET CN$,I,CH$
  404. SPPAGE 1:BGPAGE 1
  405. ’---
  406. GPAGE 0
  407. IF CTYPE!=0 GOTO @_CLCSP
  408. X=FLOOR(I%32)*8
  409. Y=FLOOR(I/32)*8
  410. GOTO @CHR1
  411. ’---
  412. @_CLCSP
  413. OX=(I AND 1)*8
  414. OY=(I AND 2)*4
  415. X=FLOOR((I%64)/4)*16+OX
  416. Y=FLOOR(I/64)*16+OY
  417. ’――――――――――――――――――――――――――
  418. @CHR1
  419. SPPAGE 0:BGPAGE 0
  420. GFILL X,Y,X+7,Y+7,0
  421. GPUTCHR X,Y,CN$,I,PAL,1
  422. SPPAGE 1:BGPAGE 1
  423. GPAGE 1
  424. RETURN
  425. ’――――――――――――――――――――――――――
  426. @CHRALL
  427. LOCATE 0,11
  428. PRINT ”TYPE:”;CN$
  429. SPPAGE 0:BGPAGE 0
  430. GPAGE 0
  431. GFILL 0,0,256,64,0
  432. X=0:Y=0:I=0
  433. @_LOOPCA
  434.  IF CTYPE!=0 GOTO @_CASP
  435. @_CABG
  436.  GFILL X,Y,X+7,Y+7,0
  437.  GPUTCHR X,Y,CN$,I,PAL,1
  438.  X=X+8:IF X>255 THEN X=0:Y=Y+8
  439.  I=I+1
  440.  GOTO @_CANEXT
  441. @_CASP
  442.  GFILL X,Y,X+15,Y+15,0
  443.  GPUTCHR X,Y,CN$,I,PAL,1
  444.  GPUTCHR X+8,Y,CN$,I+1,PAL,1
  445.  GPUTCHR X,Y+8,CN$,I+2,PAL,1
  446.  GPUTCHR X+8,Y+8,CN$,I+3,PAL,1
  447.  X=X+16:IF X>255 THEN X=0:Y=Y+16
  448.  I=I+4
  449. @_CANEXT
  450. IF I<256 GOTO @_LOOPCA
  451. SPPAGE 1:BGPAGE 1
  452. GOSUB @CHRZOOM
  453. RETURN
  454. ’──────────────────────────
  455. @CHKMODE ’モ-ト゛カクニン
  456. ’──────────────────────────
  457. IF B==16 GOTO @FILEMODE
  458. IF MODE==IC THEN RETURN
  459. IF IC==-1 THEN RETURN
  460. MODE=IC
  461. ’――――――――――――――――――――――――――
  462. @PUTMODE
  463. PNLSTR 27,20,MD$(MODE)
  464. RETURN
  465. ’──────────────────────────
  466. @SPBUT ’スフ゜ライトホ゛タン
  467. ’──────────────────────────
  468. SBIX=-1
  469. IF SPSW==FALSE GOTO @_TOFF
  470. IF TS==0 GOTO @_TCLR
  471. ’--- リヒ゜-トカクニン
  472. IF W1==30 GOTO @KR2
  473. W1=W1+1:IF W1<30 THEN RETURN
  474. GOTO @_TOFF
  475. @KR2
  476. W2=W2+1:IF W2<8 THEN RETURN
  477. GOTO @_TOFF
  478. ’--- ソノタノホ゛タンノカイホウ
  479. @_TCLR
  480. W1=0:W2=0
  481. FOR I=10 TO SBMAX-1
  482.  SB(I,_C)=0
  483.  SPCHR I+SPTOP,SB(I,_N),SB(I,_C),0,0,PR
  484.  SPOFS I+SPTOP,SB(I,_X),SB(I,_Y)
  485. NEXT
  486. SPSW=FALSE
  487. RETURN
  488. ’---
  489. @_TOFF
  490. IF TS==FALSE THEN RETURN
  491. SPSW=FALSE:W=15:H=W
  492. FOR I=0 TO SBMAX-1
  493.  IF SPSW GOTO @_SKIPSP
  494.  IF SB(I,_C)==XC THEN @SKIPSP
  495.  X=SB(I,_X):Y=SB(I,_Y)
  496.  GOSUB @TOUCH
  497.  IF R==FALSE GOTO @_SKIPSP
  498.   GOSUB @SETSB
  499.   SPSW=TRUE
  500. @_SKIPSP
  501. NEXT
  502. RETURN
  503. ’――――――――――――――――――――――――――
  504. @SETSB
  505. SBIX=I
  506. ’--- ホ゛タンハ゛ンコ゛ウテ゛ショリ
  507. IF I==8 OR I==9 THEN CTYPE=I-8
  508. IF I<8 THEN CBANK(CTYPE)=I
  509. IF I<10 GOTO @_SKIPSSB
  510. ’--- ソノタノホ゛タンノカイホウ
  511. FOR I=10 TO SBMAX-1
  512.  X=SB(I,_X):Y=SB(I,_Y):C=0
  513.  IF I==SBIX THEN X=X+1:Y=Y+1:C=6
  514.  SB(I,_C)=C
  515.  SPCHR I+SPTOP,SB(I,_N),C,0,0,PR
  516.  SPOFS I+SPTOP,X,Y
  517. NEXT
  518. ’--- イロヨウソヘンカ
  519. I=SBIX-10
  520. V=-1:IF I AND 1 THEN V=1
  521. I=FLOOR(I/2)
  522. J=RGB(I)+(V*8)
  523. IF J<0 THEN J=0
  524. IF J>255 THEN J=255
  525. RGB(I)=J
  526. C$=””
  527. FOR I=0 TO 2
  528.  H$=”0”+HEX$(RGB(I))
  529.  C$=C$+MID$(H$,LEN(H$)-2,2)
  530. NEXT
  531. SPPAGE 0:BGPAGE 0
  532. P=COL+PAL*16:P2=COL
  533. GOSUB @CSET
  534. GOSUB @COLRGB
  535. ’---
  536. @_SKIPSSB
  537. GOSUB @SETCSTR
  538. IF CTYPE==0 GOTO @_SSBEND
  539. GOSUB @CLRCSR
  540. CX=CX AND &HFE
  541. CY=CY AND &HFE
  542. ’---
  543. @_SSBEND
  544. GOSUB @SETCTYPE
  545. IF SBIX>9 GOTO @SETCOLOR
  546. GOSUB @CHRALL
  547. RETURN
  548. ’--- ハ゛ンクタンイテ゛イロヘンコウ
  549. @SETCOLOR
  550. TMP=COL
  551. P=PAL*16
  552. FOR COL=0 TO 15
  553.  C$=””
  554.  COLREAD(”BG”,P),RGB(0),RGB(1),RGB(2)
  555.  FOR I=0 TO 2
  556.   H$=”0”+HEX$(RGB(I))
  557.   C$=C$+MID$(H$,LEN(H$)-2,2)
  558.  NEXT
  559.  P2=P:GOSUB @CSET
  560.  P=P+1
  561. NEXT
  562. COL=TMP
  563. GOSUB @COLBOX
  564. IF SBIX>9 THEN RETURN
  565. GOSUB @CHRALL
  566. RETURN
  567. ’---
  568. @CSET
  569. SPPAGE 0:BGPAGE 0
  570. COLSET ”BG”,P,C$
  571. COLSET ”GRP”,P2,C$
  572. SPPAGE 1:BGPAGE 1
  573. COLSET ”BG”,P,C$
  574. COLSET ”GRP”,P2,C$
  575. RETURN
  576. ’──────────────────────────
  577. @SETCTYPE ’シュルイテ゛bankチョウセイ
  578. ’──────────────────────────
  579. ’--- chr type
  580. FOR I=8 TO 9
  581.  X=SB(I,_X):Y=SB(I,_Y):C=0
  582.  IF CTYPE==(I-8) THEN X=X+1:Y=Y+1:C=XC
  583.  SPCHR I+SPTOP,SB(I,_N),C,0,0,PR
  584.  SPOFS I+SPTOP,X,Y
  585. NEXT
  586. ’--- chr bank
  587. MAX=CBMAX(CTYPE)
  588. FOR I=0 TO 7
  589.  SB(I,_Y)=ABS(SB(I,_Y))
  590.  X=SB(I,_X):Y=SB(I,_Y):C=0
  591.  IF I>MAX-1 THEN Y=-Y:SB(I,_Y)=Y
  592.  IF CTYPE==1 GOTO @_CBKSP
  593. @_CBKSP
  594.  IF CBANK(CTYPE)!=I GOTO @_CBKSKIP
  595.  X=X+1:Y=Y+1:C=XC
  596. @_CBKSKIP
  597.  SPCHR I+SPTOP,SB(I,_N),C,0,0,PR
  598.  SPOFS I+SPTOP,X,Y
  599. NEXT
  600. ’--- キャラクタメイセイセイ
  601. @SETCSTR
  602. CN$=CSTR$(CTYPE)
  603. CN$=CN$+STR$(CBANK(CTYPE))
  604. RETURN
  605. ’──────────────────────────
  606. @FILEMODE ’ファイルノヨミカキ
  607. ’──────────────────────────
  608. PNLTYPE ”KYA”
  609. FOR I=0 TO 3:ICONCLR I:NEXT
  610. ’---
  611. @_FLOOP
  612. CLS
  613. LOCATE 0,8
  614. PRINT”────────────────────────────────”;
  615. PRINT” L:CHRヨミコミ”
  616. PRINT” S:CHRホソ゛ン”
  617. PRINT”LC:イロヨミコミ”
  618. PRINT”SC:イロホソ゛ン”
  619. PRINT” Q:ファイルメニュ-オワリ”
  620. PRINT” E:ツ-ルオワリ”
  621. PRINT”────────────────────────────────”;
  622. ’---
  623. INPUT”コマント゛”;K$
  624. IF K$==”Q” GOTO @_FQUIT
  625. IF K$==”E” GOTO @_FEXIT
  626. IF K$==”S” GOTO @_FSAVE
  627. IF K$==”L” GOTO @_FLOAD
  628. IF K$==”SC” GOTO @_FCSAVE
  629. IF K$==”LC” GOTO @_FCLOAD
  630. GOTO @_FLOOP
  631. ’---
  632. @_FCLOAD
  633. INPUT”ヨミコムナマエ(COL):”;K$
  634. K$=”COL:”+K$:PRINT K$
  635. BGPAGE 0:SPPAGE 0
  636. LOAD K$,FALSE
  637. BGPAGE 1:SPPAGE 1
  638. LOAD K$,FALSE
  639. ’GOSUB @SETCOLOR
  640. GOTO @_FQUIT
  641. ’---
  642. @_FCSAVE
  643. INPUT”ホソ゛ンスルナマエ(COL):”;K$
  644. K$=”COL:”+K$:PRINT K$
  645. SAVE K$
  646. GOTO @_FQUIT
  647. ’---
  648. @_FLOAD
  649. INPUT”ヨミコムナマエ(CHR):”;K$
  650. K$=CN$+”:”+K$:PRINT K$
  651. BGPAGE 0:SPPAGE 0
  652. LOAD K$,FALSE
  653. BGPAGE 1:SPPAGE 1
  654. LOAD K$,FALSE
  655. GOTO @_FQUIT
  656. ’---
  657. @_FSAVE
  658. INPUT”ホソ゛ンスルナマエ(CHR):”;K$
  659. K$=CN$+”:”+K$:PRINT K$
  660. SAVE K$
  661. ’---
  662. @_FQUIT
  663. GOSUB @DISPINIT
  664. RETURN
  665. ’---
  666. @_FEXIT
  667. FOR I=1 TO 0 STEP -1
  668.  SPPAGE I:SPCLR
  669.  GPAGE I:GCLS
  670. NEXT
  671. FOR P=1 TO 0 STEP -1
  672.  SPPAGE P:BGPAGE P
  673.  FOR I=0 TO 255
  674.   COLINIT ”GRP”,I
  675.   COLINIT ”BG”,I
  676.  NEXT
  677. NEXT
  678. COLOR 0
  679. CLS
  680. PRINT ”オツカレサマ!”
  681. END