- ’┌──────────────────────────┐
- ’│ GRAPHIC EDITOR VER1.00 │
- ’├──────────────────────────┤
- ’│ (C)SmileBoom Co.Ltd. │
- ’└──────────────────────────┘
- VISIBLE 1,1,0,0,1,1
- CLEAR
- CLS:COLOR 0
- SPPAGE 0:SPCLR
- SPPAGE 1:SPCLR
- DIM RGB(3)
- DIM ZS(4)
- ’--- カクタ゛イサイス゛
- DATA 0,1,3,7
- FOR I=0 TO 3:READ ZS(I):NEXT
- ’--- ヘンスウ ショキカ
- CX=0:CY=0:COL=0
- ZM=0:MAXZM=4
- TL=0:MAXTL=7:TSTEP=0
- OTX=-1:OTY=-1
- XC=7:PR=1:GM=0
- ’--- カ゛メン ショキカ
- GOSUB @DISPINIT
- ’┌─────────┐
- ’│ メインル-フ゜ │
- ’└─────────┘
- @MAIN
- ’
- OX=TX:OY=TY:OS=TS
- TX=TCHX:TY=TCHY:TS=TCHST
- OLDB=B:B=BUTTON()
- OLDIC=IC:IC=ICONCHK()
- ’
- GOSUB @SELCOL
- GOSUB @DRAWSUB
- GOSUB @CHKMODE
- ’
- VSYNC 0
- ’
- GOTO @MAIN
- ’┌────────┐
- ’│ サフ゛ショリ │
- ’└────────┘
- ’──────────────────────────
- @DISPINIT ’カ゛メンノショキカ
- ’──────────────────────────
- PNLTYPE ”OFF”
- CLS:COLOR 0
- GCOLOR 0:GPAGE 0:GCLS 0
- PRINT ”カ゛メンヲケシマスカ(А=YES)”
- GOSUB @BUTCHK
- GC=FALSE
- IF K==16 THEN GC=TRUE
- CLS
- ’┌─────────┐
- ’│ ウエ カ゛メン │
- ’└─────────┘
- PRINT”┌──────────────────────────────┐”;
- PRINT”│GRAPHIC EDITOR v1.0 │”;
- PRINT”└──────────────────────────────┘”;
- ’--- イロミホン
- X=14:Y=4
- LOCATE X,Y
- PRINT ”┌────────────────┐”
- FOR I=1 TO 16
- LOCATE X,I+Y
- PRINT”│ │”
- NEXT
- LOCATE X,I+Y
- PRINT ”└────────────────┘”
- HX=X+1:HY=Y+1
- GOSUB @COLBOX
- GOSUB @COLCSR
- ’--- ツ-ルリスト
- MX=0:MY=6
- LOCATE MX,MY-2
- PRINT ”<Ф:TOOL>”
- PRINT
- PRINT ” PSET”
- PRINT ” LINE”
- PRINT ” BOX”
- PRINT ” CIRCLE”
- PRINT ” PAINT”
- PRINT ” FILL”
- PRINT ” CLS”
- ’--- ヘ゜ンサキ
- ZX=0:ZY=CSRY+3
- LOCATE ZX,ZY-2
- PRINT ”<Ё:PSET-PEN>”
- PRINT
- PRINT ” x1”
- PRINT ” x2”
- PRINT ” x4”
- PRINT ” x8”
- ’---
- LOCATE 0,23
- PRINT ”<А:FILE>”;
- GOSUB @PUTMODE
- ’┌─────────┐
- ’│ シタ カ゛メン │
- ’└─────────┘
- PNLTYPE ”OFF”
- GPAGE 1:GCOLOR 0
- IF GC THEN GCLS 0
- ’---
- SPSET 0,110,0,0,0,0
- SPOFS 0,-16,-16
- ’--- システムアイコン
- ICONPUSE=FALSE
- ’ICONPAGE=0
- ’ICONPMAX=4
- FOR I=0 TO 3
- ICONCLR I
- NEXT
- RETURN
- ’──────────────────────────
- @BUTCHK
- ’──────────────────────────
- O=B
- B=BUTTON()
- K=B AND (NOT O)
- VSYNC 1
- IF K==0 GOTO @BUTCHK
- LOCATE 0,0:PRINT K
- RETURN
- ’──────────────────────────
- @TOUCH ’アタリハンテイ
- ’──────────────────────────
- R=FALSE
- IF TS==FALSE THEN RETURN
- IF TX<X THEN RETURN
- IF TX>X+W THEN RETURN
- IF TY<Y THEN RETURN
- IF TY>Y+H THEN RETURN
- X=TX AND &HF8
- Y=TY AND &HF8
- R=TRUE
- RETURN
- ’──────────────────────────
- @NUMSTR ’スウシ゛ヲ3ケタノモシ゛ニスル
- ’──────────────────────────
- N$=” ”+STR$(N)
- S=LEN(N$)
- N$=MID$(N$,S-3,3)
- RETURN
- ’---
- @PUTNUM
- GOSUB @NUMSTR
- COLOR C
- LOCATE X,Y:PRINT N$;
- COLOR 0
- RETURN
- ’──────────────────────────
- @SELCOL ’イロセンタク
- ’──────────────────────────
- VX=0:VY=0
- IF B AND 1 THEN VY=VY-1
- IF B AND 2 THEN VY=VY+1
- IF B AND 4 THEN VX=VX-1
- IF B AND 8 THEN VX=VX+1
- IF VX+VY==0 THEN WT=0:GOTO @COLCSR
- IF OLDB==0 GOTO @SELMOV
- ’--- ホ゛タンリヒ゜-ト
- MAX1=60*4:MAX2=60
- IF WT<MAX1 GOTO @WTUP
- WT2=WT2+1
- IF WT2<MAX2 THEN RETURN
- WT2=0
- GOTO @SELMOV2
- @WTUP
- WT=WT+1
- IF WT<MAX1 THEN RETURN
- WT2=0
- RETURN
- ’---
- @SELMOV
- WT=0
- @SELMOV2
- GOSUB @COLCLR
- CX=CX+VX:CY=CY+VY
- IF CX<0 THEN CY=CY-1:CY=CY AND 15
- IF CX>15 THEN CY=CY+1:CY=CY AND 15
- IF CY<0 THEN CX=CX-1:CX=CX AND 15
- IF CY>15 THEN CX=CX+1:CX=CX AND 15
- CX=CX AND 15
- CY=CY AND 15
- GOTO @COLCSR
- ’---
- @COLCLR
- LOCATE HX+CX,HY+CY
- PRINT ” ”
- RETURN
- ’――――――――――――――――――――――――――
- @COLCSR
- COLOR CC
- CC=CC+1:CC=CC AND 15
- COL=CY*16+CX
- LOCATE HX+CX,HY+CY
- PRINT ”□”
- COLOR 0
- ’---
- @COLRGB
- X=15:Y=23:N=PAL*16+COL
- COLREAD(”GRP”,N),RGB(0),RGB(1),RGB(2)
- C=0
- GOSUB @PUTNUM
- PRINT”:”;
- N=RGB(0):X=CSRX+1:C=13
- GOSUB @PUTNUM:PRINT”,”;
- N=RGB(1):X=CSRX:C= 4
- GOSUB @PUTNUM:PRINT”,”;
- N=RGB(2):X=CSRX:C=11
- GOSUB @PUTNUM
- RETURN
- ’――――――――――――――――――――――――――
- @COLBOX
- GPAGE 0
- DX=HX*8:DY=HY*8
- FOR I=0 TO 255
- X=FLOOR(I%16)*8+DX
- Y=FLOOR(I/16)*8+DY
- GFILL X,Y,X+7,Y+7,I
- NEXT
- GPAGE 1
- RETURN
- ’──────────────────────────
- @DRAWSUB ’ト゛ットヲオク
- ’──────────────────────────
- ’--- ステッフ゜カクニン
- IF TSTEP==1 GOTO @_DSTEP1
- ’--- 0:オサレルマテ゛
- IF TS==FALSE GOTO @_DSKIP0
- TX1=TX:TY1=TY
- TX2=TX:TY2=TY
- SPOFS 0,TX1,TY1
- ’--- Кホ゛タン:SPOIT
- IF B AND 256 GOTO @_SPOIT
- SPCHR 0,110,0,0,0,PR
- GOTO @_DJUMP
- ’---
- @_DSKIP0
- OTX=-1:OTY=-1
- SPOFS 0,-16,-16
- RETURN
- ’--- 1:ハナサレルマテ゛
- @_DSTEP1
- IF TS==FALSE GOTO @_DJUMP
- TX2=TX:TY2=TY
- RETURN
- ’--- キノウコ゛トフ゛ンキ
- @_DJUMP
- IF TL==0 GOTO @_PSET
- IF TL==4 GOTO @_PAINT
- IF TL==6 GOTO @_CLS
- ’--- 2ステッフ゜ツ-ル
- IF TSTEP==0 THEN TSTEP=1:RETURN
- TSTEP=0
- ON TL GOTO @DED,@_LINE,@_BOX,@_CIRCLE,@DED,@_FILL,
- @DED
- RETURN
- ’---
- @_LINE
- GLINE TX1,TY1,TX2,TY2,COL
- RETURN
- ’---
- @_BOX
- GBOX TX1,TY1,TX2,TY2,COL
- RETURN
- ’---
- @_FILL
- GFILL TX1,TY1,TX2,TY2,COL
- RETURN
- ’---
- @_CIRCLE
- X=ABS(TX1-TX2)
- Y=ABS(TY1-TY2)
- IF X<Y THEN X=Y
- GCIRCLE TX1,TY1,X,COL
- RETURN
- ’---
- @_CLS
- GCLS
- RETURN
- ’---
- @_SPOIT
- SPCHR 0,114,0,0,0,PR
- GOSUB @COLCLR
- C=GSPOIT(TX,TY)
- CX=FLOOR(C%16)
- CY=FLOOR(C/16)
- GOSUB @COLCSR
- RETURN
- ’---
- @_PAINT
- GPAINT TX,TY,COL
- RETURN
- ’---
- @_PSET
- IF ZS(ZM)!=0 GOTO @_PSET2
- ’---
- IF OTX<0 THEN OTX=TX1:OTY=TY1
- GLINE OTX,OTY,TX1,TY1,COL
- OTX=TX1:OTY=TY1
- RETURN
- ’---
- @_PSET2
- X=TX-FLOOR(ZS(ZM)/2)
- Y=TY-FLOOR(ZS(ZM)/2)
- GFILL X,Y,X+ZS(ZM),Y+ZS(ZM),COL
- RETURN
- ’──────────────────────────
- @CHKMODE ’モ-ト゛カクニン
- ’──────────────────────────
- IF OLDB!=0 THEN RETURN
- IF B== 16 GOTO @FILEMODE
- IF B== 64 GOTO @TOOLSEL
- IF B==128 GOTO @ZOOMSEL
- IF B==512 GOTO @GRID
- RETURN
- ’---
- @GRID
- IF GM==0 GOTO @GON
- FOR I=0 TO 23
- PNLSTR 0,I,” ”
- NEXT
- GM=0:RETURN
- ’---
- @GON
- FOR I=0 TO 23
- PNLSTR 0,I,”СССССССССССССССССССССССССССССССС”
- NEXT
- GM=1:RETURN
- ’---
- @ZOOMSEL
- LOCATE ZX,ZY+ZM:PRINT” ”
- ZM=ZM+1
- IF ZM>=MAXZM THEN ZM=0
- GOTO @PUTMODE
- ’---
- @TOOLSEL
- LOCATE MX,MY+TL:PRINT” ”
- TL=TL+1
- IF TL>=MAXTL THEN TL=0
- TSTEP=0
- ’――――――――――――――――――――――――――
- @PUTMODE
- LOCATE MX,MY+TL
- PRINT ”Й”;
- LOCATE ZX,ZY+ZM
- PRINT ”Й”;
- RETURN
- ’──────────────────────────
- @FILEMODE ’ファイルノヨミカキ
- ’──────────────────────────
- PNLTYPE ”KYA”
- FOR I=0 TO 3:ICONCLR I:NEXT
- ’GOTO @_FLOOP
- ’---
- CLS:GPAGE 0:GCLS
- INPUT ”ウエニコヒ゜-シマスカ(Y/N)”;K$
- IF K$!=”Y” GOTO @_FLOOP
- ’---
- FOR Y=0 TO 191
- FOR X=0 TO 255
- GPAGE 1
- C=GSPOIT(X,Y)
- GPAGE 0
- GPSET X,Y,C
- NEXT
- NEXT
- GPAGE 1
- ’---
- @_FLOOP
- CLS
- PRINT”────────────────────────────────”;
- PRINT” L:GRPヨミコミ”
- PRINT” S:GRPホソ゛ン”
- PRINT”LC:イロヨミコミ”
- PRINT”SC:イロホソ゛ン”
- PRINT” Q:ファイルメニュ-オワリ”
- PRINT” E:ツ-ルオワリ”
- PRINT”────────────────────────────────”;
- ’---
- INPUT”コマント゛”;K$
- IF K$==”Q” GOTO @_FQUIT
- IF K$==”E” GOTO @_FEXIT
- IF K$==”S” GOTO @_FSAVE
- IF K$==”L” GOTO @_FLOAD
- IF K$==”SC” GOTO @_FCSAVE
- IF K$==”LC” GOTO @_FCLOAD
- GOTO @_FLOOP
- ’---
- @_FCLOAD
- INPUT”ヨミコムナマエ(COL):”;K$
- K$=”COL2:”+K$:PRINT K$
- GPAGE 0
- LOAD K$,FALSE
- GPAGE 1
- LOAD K$,FALSE
- GOTO @_FQUIT
- ’---
- @_FCSAVE
- INPUT”ホソ゛ンスルナマエ(COL):”;K$
- K$=”COL2:”+K$:PRINT K$
- SAVE K$
- GOTO @_FQUIT
- ’---
- @_FLOAD
- INPUT”ヨミコムナマエ(GRP):”;K$
- K$=”GRP1:”+K$:PRINT K$
- LOAD K$,FALSE
- GOTO @_FQUIT
- ’---
- @_FSAVE
- INPUT”ホソ゛ンスルナマエ(GRP):”;K$
- K$=”GRP1:”+K$:PRINT K$
- SAVE K$
- ’---
- @_FQUIT
- GOSUB @DISPINIT
- RETURN
- ’---
- @_FEXIT
- FOR I=1 TO 0 STEP -1
- SPPAGE I:SPCLR
- GPAGE I:GCLS
- NEXT
- FOR I=0 TO 255
- COLINIT ”GRP”,I
- COLINIT ”BG”,I
- NEXT
- COLOR 0
- CLS
- PRINT ”オツカレサマ!”
- END