- ’┌──────────────────────────┐
- ’│ SCREEN EDITOR VER1.00 │
- ’├──────────────────────────┤
- ’│ (C)SmileBoom Co.Ltd. │
- ’└──────────────────────────┘
- VISIBLE 1,1,1,1,1,1
- CLEAR
- CLS:COLOR 0
- ’--- ヘンシュウエリア
- EDX=0:EDY=8*9
- BGLX=EDX
- BGLY=-EDY
- BGHX=0
- BGHY=0
- K1=0:K2=0
- ’--- ヘンスウ ショキカ
- PAL=0
- LAYER=0
- REVH=FALSE
- REVV=FALSE
- XC=7
- CX=0:CY=0:CSX=1:CSY=1
- CH=0
- CBANK=0
- CN$=”BGU”
- BT=0
- PR=1
- ’--- カ゛メン ショキカ
- GOSUB @DISPINIT
- GOSUB @PUTOFS
- ’┌─────────┐
- ’│ メインル-フ゜ │
- ’└─────────┘
- @MAIN
- ’
- OX=TX:OY=TY:OS=TS
- TX=TCHX:TY=TCHY:TS=TCHST
- OLDBT=BT
- BT=BUTTON()
- ’
- GOSUB @SELECT
- GOSUB @CSRMOVE
- GOSUB @DRAWCHR
- GOSUB @SETBGOFS
- GOSUB @PUTCSEL
- ’
- IF BT==16 THEN GOSUB @FILEMODE
- ’
- VSYNC(0)
- ’
- GOTO @MAIN
- ’┌────────┐
- ’│ サフ゛ショリ │
- ’└────────┘
- ’──────────────────────────
- @DISPINIT ’カ゛メンノショキカ
- ’──────────────────────────
- CLS:COLOR 0
- FOR I=0 TO 3:ICONCLR I:NEXT
- PRINT”┌──────────────────────────────┐”;
- PRINT”│SCREEN EDITOR v1.00 │”;
- PRINT”└──────────────────────────────┘”;
- ’┌─────────┐
- ’│ ウエ カ゛メン │
- ’└─────────┘
- GPAGE 0:GCOLOR 0:GCLS
- SPPAGE 0:SPCLR
- BGPAGE 0
- ’--- ┌
- A$=”00EEEEEE”
- B$=”0EFFFFFF”
- C$=”EFFFFFFF”
- D$=”EFFFFFFE”
- ’--- ─
- E$=”EEEEEEEE”
- F$=”FFFFFFFF”
- ’--- │
- ’--- □
- G$=”00000000”
- ’---
- I$=A$+B$+C$+C$+C$+C$+C$+D$
- H$=E$+F$+F$+F$+F$+F$+F$+E$
- V$=D$+D$+D$+D$+D$+D$+D$+D$
- Z$=G$+G$+G$+G$+G$+G$+G$+G$
- ’--- SPCHR:0
- CHRSET ”SPU0”,0,I$
- CHRSET ”SPU0”,1,H$
- CHRSET ”SPU0”,2,V$
- CHRSET ”SPU0”,3,Z$
- ’--- SPCHR:1
- CHRSET ”SPU0”,4,H$
- CHRSET ”SPU0”,5,H$
- CHRSET ”SPU0”,6,Z$
- CHRSET ”SPU0”,7,Z$
- ’--- SPCHR:2
- CHRSET ”SPU0”,8,V$
- CHRSET ”SPU0”,9,Z$
- CHRSET ”SPU0”,10,V$
- CHRSET ”SPU0”,11,Z$
- ’--- SPCHR:3 Т
- F$=”F0F0F0F0”
- H$=F$+G$+G$+G$+G$+G$+G$+G$
- CHRSET ”SPU0”,12,H$
- CHRSET ”SPU0”,13,H$
- CHRSET ”SPU0”,14,Z$
- CHRSET ”SPU0”,15,Z$
- ’--- SPCHR:4 У
- F$=”F0000000”
- V$=F$+G$+F$+G$+F$+G$+F$+G$
- CHRSET ”SPU0”,16,V$
- CHRSET ”SPU0”,17,Z$
- CHRSET ”SPU0”,18,V$
- CHRSET ”SPU0”,19,Z$
- ’---
- INPUT ”ウエカ゛メンノBGヲショキカシマスカ(Y/N)”;K$
- IF K$==”Y” THEN GOSUB @BGCLR
- ’--- ウエカ゛メンヲシタニコヒ゜-
- INPUT ”ウエカ゛メンヲコヒ゜-シマスカ(Y/N)”;K$
- IF K$!=”Y” GOTO @_CPYSKP
- PRINT ”BGスクリ-ンヲコヒ゜-チュウ”
- GOSUB @BGCOPY
- @_CPYSKP
- ’---
- BGOFS 0,0,0
- BGOFS 1,0,0
- BGCLIP 0,0,31,23
- ’--- カーソルシ゛ュンヒ゛
- C=2
- SPSET 0,0,C,0,0,PR
- SPSET 1,0,C,1,0,PR
- SPSET 2,0,C,0,1,PR
- SPSET 3,0,C,1,1,PR
- N=4
- FOR I=0 TO 10
- SPSET N ,1,C,0,0,PR
- SPSET N+1,1,C,0,1,PR
- N=N+2
- NEXT
- FOR I=0 TO 6
- SPSET N ,2,C,0,0,PR
- SPSET N+1,2,C,1,0,PR
- N=N+2
- NEXT
- ’--- キョウカイセン
- GN=N:C=14
- FOR I=0 TO 15
- SPSET N,3,C,0,0,PR
- SPOFS N,I*16,256
- N=N+1
- NEXT
- FOR I=0 TO 11
- SPSET N,4,C,0,0,PR
- SPOFS N,256,I*16
- N=N+1
- NEXT
- ’---
- GOSUB @PUTCSR
- ’--- モトノカ゛ソ゛ウヲヒョウシ゛
- ’┌─────────┐
- ’│ シタ カ゛メン │
- ’└─────────┘
- PNLTYPE ”OFF”
- GPAGE 1:GCOLOR 0:GCLS
- SPPAGE 1:SPCLR
- BGPAGE 1
- BGOFS 0,0,0
- BGOFS 1,0,0
- BGCLIP 0,9,22,23
- ’---
- CLS
- LOCATE 0,23
- PRINT”А=ファイルモ-ト゛ К+П=ハンイ”;
- ’--- ワク
- X=0:Y=8
- PNLSTR X,Y, ”───────────────────────┬────────”
- FOR I=1 TO 15
- PNLSTR X,Y+I,” │”
- NEXT I
- PNLSTR 23,11, ”└────────”
- PNLSTR 23,12, ”┌────────”
- PNLSTR 23,21, ”├────────”
- ’--- キャラハ゛ンク(SP0-SP3
- CDX=24*8:CDY=9*8:N=0
- FOR I=0 TO 3
- X=I*16+CDX
- SPSET N,I+48,0,0,0,PR
- SPOFS N,X,CDY
- N=N+1
- NEXT
- GOSUB @CBICON
- ’--- イロハ゛ンク(SP4-SP19
- PDX=24*8:PDY=13*8:PALSP=N
- FOR I=0 TO 15
- X=FLOOR(I%4)*16+PDX
- Y=FLOOR(I/4)*16+PDY
- SPSET N,I+48,0,0,0,PR
- SPOFS N,X,Y
- N=N+1
- NEXT
- GOSUB @PALICON
- ’--- ハンテンキコ゛ウ
- RDX=24*8:RDY=22*8:REVSP=N
- FOR I=0 TO 1
- SPSET N,I+80,0,0,0,PR
- SPOFS N,RDX+I*16,RDY
- N=N+1
- NEXT
- GOSUB @REVICON
- ’--- レイヤーキコ゛ウ
- LDX=28*8:LDY=22*8:LAYSP=N
- FOR I=0 TO 1
- SPSET N,75-I,0,0,0,PR
- SPOFS N,LDX+I*16,LDY
- N=N+1
- NEXT
- GOSUB @LAYICON
- ’--- センタクヨウノキャラ
- GDX=0:GDY=0
- GOSUB @CHRALL
- RETURN
- ’──────────────────────────
- ’---
- @BGCLR
- FOR Y=0 TO 63
- FOR X=0 TO 63
- BGPUT 0,X,Y,0,0,0,0
- BGPUT 1,X,Y,0,0,0,0
- NEXT
- NEXT
- FOR I=0 TO 63
- BGPUT 0, I, 0,2,0,0,0
- BGPUT 0, I,63,3,0,0,0
- BGPUT 0, 0, I,4,0,0,0
- BGPUT 0,63, I,5,0,0,0
- NEXT
- RETURN
- ’---
- @BGCOPY
- FOR Y=0 TO 63
- FOR X=0 TO 63
- BGPAGE 0
- BGREAD(0,X,Y),N0,C0,H0,V0
- BGREAD(1,X,Y),N1,C1,H1,V1
- BGPAGE 1
- BGPUT 0,X,Y,N0,C0,H0,V0
- BGPUT 1,X,Y,N1,C1,H1,V1
- NEXT
- PRINT”.”;
- NEXT
- BGPAGE 0
- RETURN
- ’---
- @CBICON
- FOR I=0 TO 3
- C=0:IF CBANK==I THEN C=XC
- SPCHR I,I+48,C,0,0,PR
- NEXT
- RETURN
- ’---
- @PALICON
- FOR I=0 TO 15
- C=0:IF PAL==I THEN C=XC
- SPCHR I+PALSP,I+48,C,0,0,PR
- NEXT
- RETURN
- ’---
- @REVICON
- C=0:IF REVH THEN C=XC
- SPCHR REVSP,80,C,0,0,PR
- C=0:IF REVV THEN C=XC
- SPCHR REVSP+1,81,C,0,0,PR
- RETURN
- ’---
- @LAYICON
- C=0:IF LAYER==0 THEN C=XC
- SPCHR LAYSP,75,C,0,0,PR
- C=0:IF LAYER==1 THEN C=XC
- SPCHR LAYSP+1,74,C,0,0,PR
- 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 ’スウシ゛ヲ2ケタノモシ゛ニスル
- ’──────────────────────────
- N$=” ”+STR$(N)
- S=LEN(N$)
- N$=MID$(N$,S-2,2)
- RETURN
- ’---
- @PUTNUM
- GOSUB @NUMSTR
- COLOR C
- LOCATE X,Y:PRINT N$;
- COLOR 0
- RETURN
- ’──────────────────────────
- @CSRMOVE ’ウエカ゛メンノカ-ソル
- ’──────────────────────────
- VX=0:VY=0
- IF BT AND 1 THEN VY=VY-1
- IF BT AND 2 THEN VY=VY+1
- IF BT AND 4 THEN VX=VX-1
- IF BT AND 8 THEN VX=VX+1
- IF VX+VY==0 GOTO @PUTCSR
- O=OLDBT AND 15
- IF O==0 GOTO @RSTWAIT
- ’---
- IF K2==0 GOTO @WAIT1ST
- K2=K2+1
- IF K2<2 GOTO @PUTCSR
- K2=1
- GOTO @MOVCSR
- ’---
- @WAIT1ST
- K1=K1+1
- IF K1<30 GOTO @PUTCSR
- K2=1:K1=0
- GOTO @MOVCSR
- ’---
- @RSTWAIT
- K1=0:K2=0
- ’---
- @MOVCSR
- IF BT AND 512 GOTO @SELSIZE
- W=23*8:H=15*8
- CX=CX+VX*8:CY=CY+VY*8
- BX=0:BY=0
- IF CX<0 THEN CX=0:BX=-1
- IF CX>256-W THEN CX=256-W:BX=1
- IF CY<0 THEN CY=0:BY=-1
- IF CY>192-H THEN CY=192-H:BY=1
- ’--- BGオフセット
- BGHX=BGHX+VX*8:MX=512-W-CX
- BGHY=BGHY+VY*8:MY=512-H-CY
- IF BGHX<0 THEN BGHX=0
- IF BGHX>MX THEN BGHX=MX
- IF BGHY<0 THEN BGHY=0
- IF BGHY>MY THEN BGHY=MY
- ’---
- BGLX=(BGHX+CX) AND 511
- BGLY=(BGHY-EDY+CY) AND 511
- GOSUB @PUTOFS
- ’---
- @PUTCSR
- SPPAGE 0
- W=16*12-8:H=16*8-8
- DX=CX-8:DY=CY-8
- SPOFS 0,DX,DY
- SPOFS 1,DX+W,DY
- SPOFS 2,DX,DY+H
- SPOFS 3,DX+W,DY+H
- N=4
- X=DX+16:Y=DY+H
- FOR I=0 TO 10
- SPOFS N ,X,DY
- SPOFS N+1,X,Y
- X=X+16
- N=N+2
- NEXT
- X=DX+W:Y=DY+16
- FOR I=0 TO 6
- SPOFS N ,DX,Y
- SPOFS N+1, X,Y
- Y=Y+16
- N=N+2
- NEXT
- ’--- キョウカイセン
- N=GN
- Y=256-BGHY
- FOR I=0 TO 15
- SPOFS N,I*16,Y
- N=N+1
- NEXT
- X=256-BGHX
- FOR I=0 TO 11
- SPOFS N,X,I*16
- N=N+1
- NEXT
- SPPAGE 1
- RETURN
- ’---
- @SELSIZE
- GOSUB @CCSRCLR
- CSX=CSX+VX
- CSY=CSY+VY
- IF CSX<1 THEN CSX=1
- IF CSX>8 THEN CSX=8
- IF CSY<1 THEN CSY=1
- IF CSY>8 THEN CSY=8
- GOSUB @CCSRPUT
- RETURN
- ’---
- @CCSRCLR
- C$=” ”
- GOTO @CCSR
- @CCSRPUT
- C$=”□”
- @CCSR
- X=FLOOR(CH%32)
- Y=FLOOR(CH/32)
- FOR IY=0 TO CSY-1
- IF IY+Y>7 GOTO @SKIPIY
- FOR IX=0 TO CSX-1
- IF IX+X>31 GOTO @SKIPIX
- PNLSTR IX+X,IY+Y,C$
- @SKIPIX
- NEXT
- @SKIPIY
- NEXT
- RETURN
- ’---
- @PUTOFS
- C=0:COLOR C
- X=19:Y=23
- LOCATE X,Y:PRINT”(”;
- N=FLOOR((BGHX+CX)/8) AND 63
- X=CSRX:GOSUB @PUTNUM
- PRINT”,”;
- N=FLOOR((BGHY+CY)/8) AND 63
- X=CSRX:GOSUB @PUTNUM
- PRINT”)&h”;
- N=CBANK*256+CH
- N$=”00”+HEX$(N)
- N$=MID$(N$,LEN(N$)-3,3)
- PRINT N$;
- RETURN
- ’---
- @SETBGOFS
- BGPAGE 0
- BGOFS 0,BGHX,BGHY
- BGOFS 1,BGHX,BGHY
- BGPAGE 1
- BGOFS 0,BGLX,BGLY
- BGOFS 1,BGLX,BGLY
- RETURN
- ’──────────────────────────
- @SELECT ’センタク
- ’──────────────────────────
- ’---
- @SELCHR
- X=GDX:Y=GDY:W=255:H=63
- GOSUB @TOUCH
- IF R==FALSE GOTO @SELPAL
- ’---
- OX=X:OY=Y
- GOSUB @CCSRCLR
- X=FLOOR((OX-GDX)/8)
- Y=FLOOR((OY-GDY)/8)
- CH=Y*32+X
- GOSUB @PUTOFS
- ’---
- @PUTCSEL
- COLOR CC
- CC=CC+1:CC=CC AND 15
- GOSUB @CCSRPUT
- RETURN
- ’--- イロ
- @SELPAL
- X=PDX:Y=PDY:W=63:H=W
- GOSUB @TOUCH
- IF R==FALSE GOTO @SELCB
- X=FLOOR((X-PDX)/16)
- Y=FLOOR((Y-PDY)/16)
- PAL=Y*4+X
- GOSUB @PALICON
- GOSUB @CHRALL
- RETURN
- ’--- キャラハ゛ンク
- @SELCB
- X=CDX:Y=CDY:W=63:H=15
- GOSUB @TOUCH
- IF R==FALSE GOTO @SELREV
- CBANK=FLOOR((X-CDX)/16)
- GOSUB @CBICON
- GOSUB @CHRALL
- GOSUB @PUTOFS
- RETURN
- ’--- ハンテン
- @SELREV
- X=RDX:Y=RDY:W=31:H=15
- GOSUB @TOUCH
- IF R==FALSE GOTO @SELLAY
- IF OS GOTO @SELLAY
- X=FLOOR((X-RDX)/16)
- IF X==0 THEN REVH = REVH XOR 1
- IF X==1 THEN REVV = REVV XOR 1
- GOSUB @REVICON
- RETURN
- ’--- レイヤー
- @SELLAY
- X=LDX:Y=LDY:W=31:H=15
- GOSUB @TOUCH
- IF R==FALSE THEN RETURN
- LAYER=FLOOR((X-LDX)/16)
- GOSUB @LAYICON
- RETURN
- ’──────────────────────────
- @DRAWCHR ’キャラヲオク
- ’──────────────────────────
- X=EDX:Y=EDY:W=23*8-1:H=15*8-1
- GOSUB @TOUCH
- IF R==FALSE THEN RETURN
- X=FLOOR((X-EDX)/8)
- Y=FLOOR((Y-EDY)/8)
- X=(X+FLOOR(BGLX/8)) AND 63
- Y=(Y+FLOOR((BGLY+EDY)/8)) AND 63
- C=CH+CBANK*256
- ’---
- IF (BT AND 256)==0 GOTO @SKIPSNAP
- X=FLOOR(X/CSX)*CSX
- Y=FLOOR(Y/CSY)*CSY
- ’---
- @SKIPSNAP
- TX=FLOOR(CH%32)
- TY=FLOOR(CH/32)
- FOR IY=0 TO CSY-1
- IF IY+TY>7 GOTO @SKIPTY
- FOR IX=0 TO CSX-1
- IF IX+TX>31 GOTO @SKIPTX
- BGPAGE 0
- BGPUT LAYER,X+IX,Y+IY,C+IX,PAL,REVH,REVV
- BGPAGE 1
- BGPUT LAYER,X+IX,Y+IY,C+IX,PAL,REVH,REVV
- @SKIPTX
- NEXT
- C=C+32
- @SKIPTY
- NEXT
- RETURN
- ’──────────────────────────
- @CHRALL
- ’──────────────────────────
- GPAGE 1
- C$=CN$+STR$(CBANK)
- GFILL 0,0,256,64,0
- FOR I=0 TO 255
- X=GDX+FLOOR(I%32)*8
- Y=GDY+FLOOR(I/32)*8
- GPUTCHR X,Y,C$,I,PAL,1
- NEXT
- RETURN
- ’──────────────────────────
- @FILEMODE ’ファイルノヨミカキ
- ’──────────────────────────
- VISIBLE 1,1,0,0,0,0
- COLOR 0
- PNLTYPE ”KYA”
- FOR I=0 TO 3:ICONCLR I:NEXT
- SL$=”SCU”+STR$(LAYER)+”:”
- ’---
- @_FLOOP
- CLS
- BGPAGE 0
- PRINT” L:SCRヨミコミ(1マイ)”
- PRINT” LW:SCRヨミコミ(2マイ)”
- PRINT” S:SCRホソ゛ン(1マイ)”
- PRINT” SW:SCRホソ゛ン(2マイ)”
- PRINT”COL:イロヨミコミ”
- PRINT”CHR:キャラヨミコミ”
- PRINT” Q:ファイルメニュ-オワリ”
- PRINT” E:ツ-ルオワリ”
- PRINT”────────────────────────────────”;
- ’---
- INPUT”コマント゛”;K$
- IF K$==”L” GOTO @_FLOAD
- IF K$==”LW” GOTO @_FLOADW
- IF K$==”S” GOTO @_FSAVE
- IF K$==”SW” GOTO @_FSAVEW
- IF K$==”COL” GOTO @_PLOAD
- IF K$==”CHR” GOTO @_CLOAD
- IF K$==”Q” GOTO @_FQUIT
- IF K$==”E” GOTO @_FEXIT
- GOTO @_FLOOP
- ’---
- @_PLOAD
- INPUT”ヨミコムナマエ(COL):”;K$
- K$=”COL0:”+K$:PRINT K$
- LOAD K$,FALSE
- FOR I=0 TO 255
- BGPAGE 0
- COLREAD(”BG”,I),R,G,B
- BGPAGE 1
- N=R:GOSUB @MKCOL:C$=N$
- N=G:GOSUB @MKCOL:C$=C$+N$
- N=B:GOSUB @MKCOL:C$=C$+N$
- ’PRINT C$
- COLSET ”BG”,I,C$
- NEXT
- GOTO @_FQUIT
- ’---
- @MKCOL
- N$=”0”+HEX$(N)
- N$=MID$(N$,LEN(N$)-2,2)
- RETURN
- ’---
- @_CLOAD
- INPUT”ヨミコムナマエ(CHR):”;K$
- N$=”BGU”+STR$(CBANK)
- K$=N$+”:”+K$
- PRINT K$
- LOAD K$,FALSE
- FOR I=0 TO 255
- BGPAGE 0
- CHRREAD(N$,I),C$
- BGPAGE 1
- CHRSET N$,I,C$
- NEXT
- GOTO @_FQUIT
- ’---
- @_FLOAD
- INPUT”ヨミコムナマエ(SCR):”;K$
- K$=SL$+K$:PRINT K$
- LOAD K$,FALSE
- GOTO @_FQUIT
- ’---
- @_FLOADW
- INPUT”7モシ゛イナイテ゛ヨミコムナマエ(SCR):”;K$
- N$=MID$(K$,0,7)
- K$=”SCU0:0”+N$:PRINT K$
- LOAD K$,FALSE
- K$=”SCU1:1”+N$:PRINT K$
- LOAD K$,FALSE
- GOTO @_FQUIT
- ’---
- @_FSAVE
- INPUT”ホソ゛ンスルナマエ(SCR):”;K$
- K$=SL$+K$:PRINT K$
- SAVE K$
- GOTO @_FQUIT
- ’---
- @_FSAVEW
- INPUT”7モシ゛イナイテ゛カキコムナマエ(SCR):”;K$
- N$=MID$(K$,0,7)
- K$=”SCU0:0”+N$:PRINT K$
- SAVE K$
- K$=”SCU1:1”+N$:PRINT K$
- SAVE K$
- ’---
- @_FQUIT
- VISIBLE 1,1,1,1,1,1
- 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