- ’====================
- ’GRAPHIC EDITOR
- ’(C)SmileBoom Co.Ltd.
- ’====================
- VISIBLE 1,1,0,0,1,1
- CLEAR:CLS:COLOR 0
- SPPAGE 0:SPCLR
- SPPAGE 1:SPCLR
- GPAGE 1,1,1:GPAGE 0,0,0
- DIM RGB(3),ZS(4)
- ’--- カクタ゛イサイス゛
- ZS(0)=0:ZS(1)=1
- ZS(2)=3:ZS(3)=7
- ’---
- FOR I=0 TO 3
- BREPEAT I,20,4
- 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=BTRIG():BN=BUTTON()
- OLDIC=IC:IC=ICONCHK()
- ’
- GOSUB @SELCOL
- GOSUB @DRAWSUB
- GOSUB @CHKMODE
- ’
- VSYNC 1
- ’
- 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.1 │”;
- PRINT”└──────────────────────────────┘”;
- ’--- イロミホン
- X=14:Y=4
- LOCATE X,Y
- PRINT ”┌”+”─”*16+”┐”
- FOR I=1 TO 16
- LOCATE X,I+Y
- PRINT”│”+” ”*16+”│”
- NEXT
- LOCATE X,I+Y
- PRINT ”└”+”─”*16+”┘”
- 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
- ICONCLR
- 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
- ’==========================
- @PUTNUM
- ’==========================
- COLOR C:LOCATE X,Y
- PRINT RIGHT$(” ”+STR$(N),3);
- 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 @COLCSR
- ’---
- 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 BN 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 ’モ-ト゛カクニン
- ’==========================
- VY=1:IF BN AND 256 THEN VY=-1
- 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,” ”*32
- NEXT
- GM=0:RETURN
- ’---
- @GON
- FOR I=0 TO 23
- PNLSTR 0,I,”С”*32
- NEXT
- GM=1:RETURN
- ’---
- @ZOOMSEL
- LOCATE ZX,ZY+ZM:PRINT” ”
- ZM=ZM+VY
- IF ZM<0 THEN ZM=MAXZM-1
- IF ZM>=MAXZM THEN ZM=0
- GOTO @PUTMODE
- ’---
- @TOOLSEL
- LOCATE MX,MY+TL:PRINT” ”
- TL=TL+VY
- IF TL<0 THEN TL=MAXTL-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