|
|
|
|
@ -144,17 +144,17 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
#00 draw-filepath |
|
|
|
|
( start ) |
|
|
|
|
[ LIT &listening $1 ] ,&no-start JCN |
|
|
|
|
[ LIT &listening $1 ] ?&no-start |
|
|
|
|
#01 ,&listening STR |
|
|
|
|
;filepath #0040 mclr |
|
|
|
|
&no-start |
|
|
|
|
( end ) |
|
|
|
|
.Console/read DEI |
|
|
|
|
DUPk #1f GTH SWP #7f LTH AND ,&no-end JCN |
|
|
|
|
DUPk #1f GTH SWP #7f LTH AND ?&no-end |
|
|
|
|
#00 ,&listening STR |
|
|
|
|
&no-end |
|
|
|
|
( capture ) |
|
|
|
|
,capture-trap JSR |
|
|
|
|
capture-trap |
|
|
|
|
#01 draw-filepath |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -162,19 +162,19 @@ BRK
|
|
|
|
|
@on-button-trap ( -> ) |
|
|
|
|
|
|
|
|
|
#00 draw-filepath |
|
|
|
|
.Controller/key DEI DUP #0d EQU #03 MUL SUB ,capture-trap JSR |
|
|
|
|
.Controller/key DEI DUP #0d EQU #03 MUL SUB capture-trap |
|
|
|
|
#01 draw-filepath |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@capture-trap ( button -- ) |
|
|
|
|
|
|
|
|
|
DUP ,&no-null JCN POP JMP2r &no-null |
|
|
|
|
[ #08 ] NEQk NIP ,&no-pop JCN ;filepath spop POP JMP2r &no-pop |
|
|
|
|
[ #0a ] NEQk NIP ,&no-load JCN file-open &no-load |
|
|
|
|
[ #7f ] NEQk NIP ,&no-delete JCN ;filepath #0040 mclr POP JMP2r &no-delete |
|
|
|
|
[ #20 ] GTHk NIP ,&no-special JCN untrap POP JMP2r &no-special |
|
|
|
|
;filepath slen NIP #3f EQU ,&no-push JCN |
|
|
|
|
DUP ?&no-null POP JMP2r &no-null |
|
|
|
|
[ #08 ] NEQk NIP ?&no-pop ;filepath spop POP JMP2r &no-pop |
|
|
|
|
[ #0a ] NEQk NIP ?&no-load file-open &no-load |
|
|
|
|
[ #7f ] NEQk NIP ?&no-delete ;filepath #0040 mclr POP JMP2r &no-delete |
|
|
|
|
[ #20 ] GTHk NIP ?&no-special untrap POP JMP2r &no-special |
|
|
|
|
;filepath slen NIP #3f EQU ?&no-push |
|
|
|
|
DUP ;filepath sput |
|
|
|
|
&no-push |
|
|
|
|
POP |
|
|
|
|
@ -184,7 +184,7 @@ JMP2r
|
|
|
|
|
@on-mouse-trap ( -> ) |
|
|
|
|
|
|
|
|
|
( release trap on touch ) |
|
|
|
|
.Mouse/state DEI ,&release JCN BRK &release |
|
|
|
|
.Mouse/state DEI ?&release BRK &release |
|
|
|
|
|
|
|
|
|
untrap |
|
|
|
|
|
|
|
|
|
@ -193,7 +193,7 @@ BRK
|
|
|
|
|
@on-frame-trap ( -> ) |
|
|
|
|
|
|
|
|
|
.state/timer LDZ |
|
|
|
|
DUP #07 AND ,&no-blink JCN |
|
|
|
|
DUP #07 AND ?&no-blink |
|
|
|
|
DUP #03 SFT #01 AND #30 SFT INC draw-filepath |
|
|
|
|
&no-blink |
|
|
|
|
INC .state/timer STZ |
|
|
|
|
@ -203,7 +203,7 @@ BRK
|
|
|
|
|
@on-button ( -> ) |
|
|
|
|
|
|
|
|
|
.Controller/button DEI2 find-modkey |
|
|
|
|
ORAk #00 EQU ,&skip JCN |
|
|
|
|
ORAk #00 EQU ?&skip |
|
|
|
|
DUP2 JSR2 |
|
|
|
|
&skip |
|
|
|
|
POP2 |
|
|
|
|
@ -212,21 +212,21 @@ BRK
|
|
|
|
|
|
|
|
|
|
@on-mouse ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 #000c LTH2 ;trap-menu JCN2 |
|
|
|
|
.Mouse/y DEI2 #000c LTH2 ?trap-menu |
|
|
|
|
|
|
|
|
|
( color ) #42 .Mouse/state DEI #00 NEQ ADD |
|
|
|
|
( addr* ) ;brush-icn #00 .settings/tool LDZ #30 SFT ADD2 |
|
|
|
|
update-cursor |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
|
|
|
|
|
.Mouse/state DEI #00 EQU ,&no-touch JCN |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .tileview within-rect ;on-touch-tileview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .nametableview within-rect ;on-touch-nametable JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .toolview within-rect ;on-touch-toolview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .blendview within-rect ;on-touch-blendview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .colorview within-rect ;on-touch-colorview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .preview within-rect ;on-touch-preview JCN2 |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .zoomview within-rect ;on-touch-zoomview JCN2 |
|
|
|
|
.Mouse/state DEI #00 EQU ?&no-touch |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .tileview within-rect ?on-touch-tileview |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .nametableview within-rect ?on-touch-nametable |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .toolview within-rect ?on-touch-toolview |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .blendview within-rect ?on-touch-blendview |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .colorview within-rect ?on-touch-colorview |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .preview within-rect ?on-touch-preview |
|
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .zoomview within-rect ?on-touch-zoomview |
|
|
|
|
&no-touch |
|
|
|
|
( release-record ) |
|
|
|
|
#0000 .Mouse/state DEO .cursor/last STZ |
|
|
|
|
@ -238,9 +238,9 @@ BRK
|
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 |
|
|
|
|
( test ) |
|
|
|
|
.settings/tool LDZ #02 EQU ;&zoom JCN2 |
|
|
|
|
.settings/zoom LDZ #01 EQU ;&zoomed JCN2 |
|
|
|
|
.settings/tool LDZ #01 EQU ;&select JCN2 |
|
|
|
|
.settings/tool LDZ #02 EQU ?&zoom |
|
|
|
|
.settings/zoom LDZ #01 EQU ?&zoomed |
|
|
|
|
.settings/tool LDZ #01 EQU ?&select |
|
|
|
|
( paint ) |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL |
|
|
|
|
put-pixel |
|
|
|
|
@ -275,9 +275,9 @@ BRK
|
|
|
|
|
#03 SFT2 NIP STH |
|
|
|
|
#03 SFT2 NIP STH SWPr |
|
|
|
|
.Mouse/state DEI DUP .cursor/last LDZ |
|
|
|
|
ORAk #00 EQU ,&end JCN |
|
|
|
|
DUP2 #0100 NEQ2 ,&no-down JCN STH2kr set-selection-from &no-down |
|
|
|
|
DUP2 #0101 NEQ2 ,&no-up JCN STH2kr set-selection-to &no-up |
|
|
|
|
ORAk #00 EQU ?&end |
|
|
|
|
DUP2 #0100 NEQ2 ?&no-down STH2kr set-selection-from &no-down |
|
|
|
|
DUP2 #0101 NEQ2 ?&no-up STH2kr set-selection-to &no-up |
|
|
|
|
&end |
|
|
|
|
POP2 POP2r |
|
|
|
|
.cursor/last STZ |
|
|
|
|
@ -301,27 +301,27 @@ BRK
|
|
|
|
|
|
|
|
|
|
( release mouse ) #00 .Mouse/state DEO |
|
|
|
|
.Mouse/x DEI2 .toolview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
[ #20 ] NEQk NIP ,&no-save JCN file-save POP BRK &no-save |
|
|
|
|
[ #1e ] NEQk NIP ,&no-load JCN file-open POP BRK &no-load |
|
|
|
|
[ #1d ] NEQk NIP ,&no-name JCN file-new POP BRK &no-name |
|
|
|
|
[ #04 ] NEQk NIP ,&no-tool0 JCN #00 set-tool POP BRK &no-tool0 |
|
|
|
|
[ #05 ] NEQk NIP ,&no-tool1 JCN #01 set-tool POP BRK &no-tool1 |
|
|
|
|
[ #06 ] NEQk NIP ,&no-tool2 JCN #02 set-tool &no-tool2 |
|
|
|
|
INCk .settings/color LDZ NEQ ,&no-eraser JCN #00 set-color POP BRK &no-eraser |
|
|
|
|
[ #02 ] GTHk NIP ,&no-color JCN INCk set-color POP BRK &no-color |
|
|
|
|
[ #08 ] LTHk NIP ,&no-rename JCN trap POP BRK &no-rename |
|
|
|
|
[ #20 ] NEQk NIP ?&no-save file-save POP BRK &no-save |
|
|
|
|
[ #1e ] NEQk NIP ?&no-load file-open POP BRK &no-load |
|
|
|
|
[ #1d ] NEQk NIP ?&no-name file-new POP BRK &no-name |
|
|
|
|
[ #04 ] NEQk NIP ?&no-tool0 #00 set-tool POP BRK &no-tool0 |
|
|
|
|
[ #05 ] NEQk NIP ?&no-tool1 #01 set-tool POP BRK &no-tool1 |
|
|
|
|
[ #06 ] NEQk NIP ?&no-tool2 #02 set-tool &no-tool2 |
|
|
|
|
INCk .settings/color LDZ NEQ ?&no-eraser #00 set-color POP BRK &no-eraser |
|
|
|
|
[ #02 ] GTHk NIP ?&no-color INCk set-color POP BRK &no-color |
|
|
|
|
[ #08 ] LTHk NIP ?&no-rename trap POP BRK &no-rename |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@on-touch-zoomview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #0020 LTH2 ;&no-mod JCN2 |
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #0020 LTH2 ?&no-mod |
|
|
|
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-su JCN ;op-shiftu run &no-su |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-sd JCN ;op-shiftd run &no-sd |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-sr JCN ;op-shiftr run &no-sr |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftleft JCN ;op-shiftl run &no-shiftleft |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-su ;op-shiftu run &no-su |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-sd ;op-shiftd run &no-sd |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-sr ;op-shiftr run &no-sr |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-shiftleft ;op-shiftl run &no-shiftleft |
|
|
|
|
POP |
|
|
|
|
( release mouse ) #00 .Mouse/state DEO |
|
|
|
|
,&finish JMP |
|
|
|
|
@ -350,9 +350,9 @@ BRK
|
|
|
|
|
@on-touch-colorview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
[ #00 ] NEQk NIP ,&no-r JCN .System/r STHk ,&set-color JSR STHr ,&set-nibble JSR &no-r |
|
|
|
|
[ #01 ] NEQk NIP ,&no-g JCN .System/g STHk ,&set-color JSR STHr ,&set-nibble JSR &no-g |
|
|
|
|
[ #02 ] NEQk NIP ,&no-b JCN .System/b STHk ,&set-color JSR STHr ,&set-nibble JSR &no-b |
|
|
|
|
[ #00 ] NEQk NIP ?&no-r .System/r STHk ,&set-color JSR STHr ,&set-nibble JSR &no-r |
|
|
|
|
[ #01 ] NEQk NIP ?&no-g .System/g STHk ,&set-color JSR STHr ,&set-nibble JSR &no-g |
|
|
|
|
[ #02 ] NEQk NIP ?&no-b .System/b STHk ,&set-color JSR STHr ,&set-nibble JSR &no-b |
|
|
|
|
POP |
|
|
|
|
redraw |
|
|
|
|
|
|
|
|
|
@ -374,11 +374,11 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .blendview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
.Mouse/y DEI2 .blendview/y1 LDZ2 SUB2 #03 SFT2 NIP #20 SFT ADD |
|
|
|
|
[ #0f GTHk NIP ] ,&no-set JCN DUP .settings/blend STHk LDZ #b0 AND ADD STHr STZ ,&end JMP &no-set |
|
|
|
|
[ #0f GTHk NIP ] ?&no-set DUP .settings/blend STHk LDZ #b0 AND ADD STHr STZ ,&end JMP &no-set |
|
|
|
|
( buttons ) |
|
|
|
|
#03 AND |
|
|
|
|
[ #02 NEQk NIP ] ,&no-ver JCN .settings/blend STHk LDZ #20 EOR STHr STZ &no-ver |
|
|
|
|
[ #03 NEQk NIP ] ,&no-hor JCN .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor |
|
|
|
|
[ #02 NEQk NIP ] ?&no-ver .settings/blend STHk LDZ #20 EOR STHr STZ &no-ver |
|
|
|
|
[ #03 NEQk NIP ] ?&no-hor .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor |
|
|
|
|
&end |
|
|
|
|
POP |
|
|
|
|
draw-blendview |
|
|
|
|
@ -415,13 +415,13 @@ JMP2
|
|
|
|
|
|
|
|
|
|
@clamp-selection ( -- ) |
|
|
|
|
|
|
|
|
|
.selection/x1 LDZ #0f STHk LTH ,&ok-limitx1 JCN STHkr .selection/x1 STZ &ok-limitx1 POPr |
|
|
|
|
.selection/y1 LDZ #0f STHk LTH ,&ok-limity1 JCN STHkr .selection/y1 STZ &ok-limity1 POPr |
|
|
|
|
.selection/x2 LDZ #0f STHk LTH ,&ok-limitx2 JCN STHkr .selection/x2 STZ &ok-limitx2 POPr |
|
|
|
|
.selection/y2 LDZ #0f STHk LTH ,&ok-limity2 JCN STHkr .selection/y2 STZ &ok-limity2 POPr |
|
|
|
|
.selection/x1 LDZ #0f STHk LTH ?&ok-limitx1 STHkr .selection/x1 STZ &ok-limitx1 POPr |
|
|
|
|
.selection/y1 LDZ #0f STHk LTH ?&ok-limity1 STHkr .selection/y1 STZ &ok-limity1 POPr |
|
|
|
|
.selection/x2 LDZ #0f STHk LTH ?&ok-limitx2 STHkr .selection/x2 STZ &ok-limitx2 POPr |
|
|
|
|
.selection/y2 LDZ #0f STHk LTH ?&ok-limity2 STHkr .selection/y2 STZ &ok-limity2 POPr |
|
|
|
|
( invert ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ STHk GTH ,&ok-flipx JCN STHkr .selection/x2 STZ &ok-flipx POPr |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ STHk GTH ,&ok-flipy JCN STHkr .selection/y2 STZ &ok-flipy POPr |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ STHk GTH ?&ok-flipx STHkr .selection/x2 STZ &ok-flipx POPr |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ STHk GTH ?&ok-flipy STHkr .selection/y2 STZ &ok-flipy POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -462,7 +462,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@mod-selection ( x y -- ) |
|
|
|
|
|
|
|
|
|
.settings/zoom LDZ ;mod-selection-zoom JCN2 |
|
|
|
|
.settings/zoom LDZ ?mod-selection-zoom |
|
|
|
|
|
|
|
|
|
DUP |
|
|
|
|
.selection/y2 LDZ ADD #0f AND .selection/y2 STZ |
|
|
|
|
@ -471,10 +471,10 @@ JMP2r
|
|
|
|
|
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ |
|
|
|
|
.selection/x1 LDZ ADD #0f AND .selection/x1 STZ |
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ?&no-x |
|
|
|
|
.selection/x1 LDZ .selection/x2 STZ |
|
|
|
|
&no-x |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ GTH ,&no-y JCN |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ GTH ?&no-y |
|
|
|
|
.selection/y1 LDZ .selection/y2 STZ |
|
|
|
|
&no-y |
|
|
|
|
|
|
|
|
|
@ -507,10 +507,10 @@ JMP2
|
|
|
|
|
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ |
|
|
|
|
|
|
|
|
|
( clamp ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ,&no-x JCN |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ GTH ?&no-x |
|
|
|
|
.selection/x1 LDZ .selection/x2 STZ |
|
|
|
|
&no-x |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ GTH ,&no-y JCN |
|
|
|
|
.selection/y2 LDZ .selection/y1 LDZ GTH ?&no-y |
|
|
|
|
.selection/y1 LDZ .selection/y2 STZ |
|
|
|
|
&no-y |
|
|
|
|
( focus ) |
|
|
|
|
@ -530,9 +530,9 @@ JMP2
|
|
|
|
|
.selection/x2 LDZ INC .selection/x1 LDZ |
|
|
|
|
&hor |
|
|
|
|
OVR2 NIP OVR SWP get-tile-addr STH2kr JSR2 |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
INC GTHk ?&hor |
|
|
|
|
POP2 |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
INC GTHk ?&ver |
|
|
|
|
POP2 |
|
|
|
|
POP2r |
|
|
|
|
|
|
|
|
|
@ -550,14 +550,14 @@ JMP2
|
|
|
|
|
&ch1 |
|
|
|
|
INC2k LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
INC2 GTH2k ,&ch1 JCN |
|
|
|
|
INC2 GTH2k ?&ch1 |
|
|
|
|
POP2 |
|
|
|
|
( cap ) STHr ROT ROT STA |
|
|
|
|
#0008 ADD2 DUP2 #0007 ADD2 SWP2 LDAk STH |
|
|
|
|
&ch2 |
|
|
|
|
INC2k LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
INC2 GTH2k ,&ch2 JCN |
|
|
|
|
INC2 GTH2k ?&ch2 |
|
|
|
|
POP2 |
|
|
|
|
( cap ) STHr ROT ROT STA |
|
|
|
|
|
|
|
|
|
@ -569,14 +569,14 @@ JMP2r
|
|
|
|
|
&ch1 |
|
|
|
|
DUP2 #0001 SUB2 LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
#0001 SUB2 LTH2k ,&ch1 JCN |
|
|
|
|
#0001 SUB2 LTH2k ?&ch1 |
|
|
|
|
POP2 |
|
|
|
|
( cap ) STHr ROT ROT STA |
|
|
|
|
#0008 ADD2 DUP2 #0007 ADD2 LDAk STH |
|
|
|
|
&ch2 |
|
|
|
|
DUP2 #0001 SUB2 LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
#0001 SUB2 LTH2k ,&ch2 JCN |
|
|
|
|
#0001 SUB2 LTH2k ?&ch2 |
|
|
|
|
POP2 |
|
|
|
|
( cap ) STHr ROT ROT STA |
|
|
|
|
|
|
|
|
|
@ -593,7 +593,7 @@ JMP2r
|
|
|
|
|
( ch2 ) |
|
|
|
|
#00 OVR STH2kr #0008 ADD2 ADD2 DUP2 |
|
|
|
|
LDA rol ROT ROT STA |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
POP2r |
|
|
|
|
|
|
|
|
|
@ -610,7 +610,7 @@ JMP2r
|
|
|
|
|
( ch2 ) |
|
|
|
|
#00 OVR STH2kr #0008 ADD2 ADD2 DUP2 |
|
|
|
|
LDA ror ROT ROT STA |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
POP2r |
|
|
|
|
|
|
|
|
|
@ -654,7 +654,7 @@ JMP2
|
|
|
|
|
|
|
|
|
|
@draw-tileview ( -- ) |
|
|
|
|
|
|
|
|
|
.settings/zoom LDZ ;draw-tileview-zoom JCN2 |
|
|
|
|
.settings/zoom LDZ ?draw-tileview-zoom |
|
|
|
|
.tileview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
.tileview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
( draw tiles ) |
|
|
|
|
@ -663,7 +663,7 @@ JMP2
|
|
|
|
|
#1000 |
|
|
|
|
&loop |
|
|
|
|
#81 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
( draw selection ) |
|
|
|
|
#06 .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO |
|
|
|
|
@ -674,12 +674,12 @@ JMP2
|
|
|
|
|
&loop-sel |
|
|
|
|
#00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2 |
|
|
|
|
#84 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop-sel JCN |
|
|
|
|
INC GTHk ?&loop-sel |
|
|
|
|
POP2 |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
( draw selection size ) |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ SUB #02 LTH ,&no-label JCN |
|
|
|
|
.selection/y2 LDZ #0f EQU ,&no-label JCN |
|
|
|
|
.selection/x2 LDZ .selection/x1 LDZ SUB #02 LTH ?&no-label |
|
|
|
|
.selection/y2 LDZ #0f EQU ?&no-label |
|
|
|
|
#00 .selection/x1 LDZ #30 SFT2 .tileview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
#00 .selection/y2 LDZ INC #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
#04 ;draw-chr/color STA |
|
|
|
|
@ -703,21 +703,21 @@ JMP2r
|
|
|
|
|
( y ) .selection/zy LDZ ADD #00 SWP |
|
|
|
|
( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2 |
|
|
|
|
get-pixel .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
INC GTHk ?&hor |
|
|
|
|
POP2 |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
INC GTHk ?&ver |
|
|
|
|
POP2 |
|
|
|
|
( guide hor ) |
|
|
|
|
#0007 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0a line-hor-dashed |
|
|
|
|
.selection/zy LDZ #07 AND #00 EQU ,&skip-hor JCN |
|
|
|
|
.selection/zy LDZ #07 AND #00 EQU ?&skip-hor |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0040 ADD2 #0a line-hor-dashed |
|
|
|
|
&skip-hor |
|
|
|
|
POP2r |
|
|
|
|
( guide ver ) |
|
|
|
|
#0007 .selection/zx LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 #0a line-ver-dashed |
|
|
|
|
.selection/zx LDZ #07 AND #00 EQU ,&skip-ver JCN |
|
|
|
|
.selection/zx LDZ #07 AND #00 EQU ?&skip-ver |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 #0040 ADD2 .tileview/y1 LDZ2 #0a line-ver-dashed |
|
|
|
|
&skip-ver |
|
|
|
|
POP2r |
|
|
|
|
@ -737,12 +737,12 @@ JMP2r
|
|
|
|
|
( addr* ) #0003 MUL2 ;nametable ADD2 |
|
|
|
|
LDA2k ;spritesheet ADD2 .Screen/addr DEO2 |
|
|
|
|
( color ) INC2 INC2 LDA .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
INC GTHk ?&hor |
|
|
|
|
POP2 |
|
|
|
|
POPr |
|
|
|
|
.nametableview/x LDZ2 .Screen/x DEO2 |
|
|
|
|
draw-lb |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
INC GTHk ?&ver |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -758,7 +758,7 @@ JMP2r
|
|
|
|
|
@get-pixel ( x* y* -- color ) |
|
|
|
|
|
|
|
|
|
( channel 1 ) |
|
|
|
|
OVR2 SWP2 ,get-pixel-addr JSR [ STH2k ] LDA |
|
|
|
|
OVR2 SWP2 get-pixel-addr [ STH2k ] LDA |
|
|
|
|
ROT ROT NIP #07 AND [ STHk ] |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
( channel 2 ) |
|
|
|
|
@ -785,8 +785,8 @@ JMP2r
|
|
|
|
|
@put-pixel ( x* y* color -- ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
OVR2 SWP2 ,get-pixel-addr JSR |
|
|
|
|
( ch1 ) OVR2 OVR2 STHkr #00 ,toggle-pixel JSR |
|
|
|
|
OVR2 SWP2 get-pixel-addr |
|
|
|
|
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel |
|
|
|
|
( ch2 ) #0008 ADD2 STHr #01 |
|
|
|
|
|
|
|
|
|
@toggle-pixel ( x* addr* color -- ) |
|
|
|
|
@ -795,7 +795,7 @@ JMP2r
|
|
|
|
|
LDAk |
|
|
|
|
STH SWP2 NIP |
|
|
|
|
STHr SWP |
|
|
|
|
STH2r SFT #01 AND ,&do-set JCN |
|
|
|
|
STH2r SFT #01 AND ?&do-set |
|
|
|
|
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT #ff EOR AND |
|
|
|
|
( save ) ROT ROT STA |
|
|
|
|
JMP2r |
|
|
|
|
@ -809,10 +809,10 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
;nametable STH2k #0300 ADD2 STH2r |
|
|
|
|
&loop |
|
|
|
|
LDAk #00 EQU ,&continue JCN |
|
|
|
|
LDAk #00 EQU ?&continue |
|
|
|
|
POP2 POP2 #01 JMP2r |
|
|
|
|
&continue |
|
|
|
|
INC2 GTH2k ,&loop JCN |
|
|
|
|
INC2 GTH2k ?&loop |
|
|
|
|
POP2 POP2 |
|
|
|
|
#00 |
|
|
|
|
|
|
|
|
|
@ -834,9 +834,9 @@ JMP2r
|
|
|
|
|
#00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2 |
|
|
|
|
#20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
[ LIT2 &x $2 ] [ LIT2 &y $2 ] get-pixel .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
INC GTHk ?&hor |
|
|
|
|
POP2 |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
INC GTHk ?&ver |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
( frame ) |
|
|
|
|
@ -870,7 +870,7 @@ JMP2r
|
|
|
|
|
( check if within ratio ) |
|
|
|
|
.settings/ratio LDZ #0f AND LTH STH |
|
|
|
|
.settings/ratio LDZ #04 SFT LTH STHr |
|
|
|
|
#0101 NEQ2 ,&outside JCN |
|
|
|
|
#0101 NEQ2 ?&outside |
|
|
|
|
( get tile ) STH2kr .Screen/addr DEO2 |
|
|
|
|
( get blending ) .settings/blend LDZ .Screen/sprite DEO |
|
|
|
|
( incr ) STH2r #0008 [ .settings/depth LDZ #30 SFT #00 SWP ADD2 ] ADD2 STH2 |
|
|
|
|
@ -879,9 +879,9 @@ JMP2r
|
|
|
|
|
;halftone-icn .Screen/addr DEO2 |
|
|
|
|
#03 .Screen/sprite DEO |
|
|
|
|
&resume |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
INC GTHk ?&hor |
|
|
|
|
POP2 |
|
|
|
|
INC GTHk ;&ver JCN2 |
|
|
|
|
INC GTHk ?&ver |
|
|
|
|
POP2 |
|
|
|
|
POP2r |
|
|
|
|
|
|
|
|
|
@ -919,7 +919,7 @@ JMP2
|
|
|
|
|
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2 |
|
|
|
|
#02 .Screen/sprite DEO |
|
|
|
|
.Screen/x DEI2k INC2 INC2 ROT DEO2 |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
@ -938,7 +938,7 @@ JMP2r
|
|
|
|
|
#00 OVR #32 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
#00 .Screen/sprite DEO |
|
|
|
|
DUP .settings/blend LDZ #b0 AND ADD .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
|
|
|
|
|
@ -982,7 +982,7 @@ JMP2r
|
|
|
|
|
( skip line ) |
|
|
|
|
.dataview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
draw-lb |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
INC GTHk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -1050,7 +1050,7 @@ JMP2r
|
|
|
|
|
#00 |
|
|
|
|
&l2 |
|
|
|
|
STHkr .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&l2 JCN |
|
|
|
|
INC GTHk ?&l2 |
|
|
|
|
POP2 |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
@ -1080,16 +1080,16 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@draw-str-right ( text* -- ) |
|
|
|
|
|
|
|
|
|
DUP2 ,get-strw JSR STH2 |
|
|
|
|
DUP2 get-strw STH2 |
|
|
|
|
.Screen/x DEI2k STH2r SUB2 ROT DEO2 |
|
|
|
|
|
|
|
|
|
@draw-str ( str* -- str* ) |
|
|
|
|
|
|
|
|
|
LDAk #00 EQU ,&skip JCN |
|
|
|
|
LDAk #00 EQU ?&skip |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
&while |
|
|
|
|
LDAk draw-chr |
|
|
|
|
INC2 LDAk ,&while JCN |
|
|
|
|
INC2 LDAk ?&while |
|
|
|
|
&skip |
|
|
|
|
INC2 |
|
|
|
|
|
|
|
|
|
@ -1097,11 +1097,11 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@draw-short ( short* -- ) |
|
|
|
|
|
|
|
|
|
SWP ,draw-byte JSR |
|
|
|
|
SWP draw-byte |
|
|
|
|
|
|
|
|
|
@draw-byte ( byte -- ) |
|
|
|
|
|
|
|
|
|
DUP #04 SFT ,draw-hex JSR |
|
|
|
|
DUP #04 SFT draw-hex |
|
|
|
|
|
|
|
|
|
@draw-hex ( char -- ) |
|
|
|
|
|
|
|
|
|
@ -1135,7 +1135,7 @@ JMP
|
|
|
|
|
.Screen/auto DEO |
|
|
|
|
.Screen/addr DEO2 |
|
|
|
|
STH |
|
|
|
|
#00 &l STHkr ,&paint JSR INC GTHk ,&l JCN POP2 |
|
|
|
|
#00 &l STHkr ,&paint JSR INC GTHk ?&l POP2 |
|
|
|
|
POPr |
|
|
|
|
JMP2r |
|
|
|
|
&single ( color addr* auto -- ) |
|
|
|
|
@ -1213,7 +1213,7 @@ JMP2
|
|
|
|
|
#0000 |
|
|
|
|
&loop |
|
|
|
|
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2 |
|
|
|
|
INC NEQk ,&loop JCN |
|
|
|
|
INC NEQk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
#00 .state/changed STZ draw-state |
|
|
|
|
;redraw ( .. ) |
|
|
|
|
@ -1228,7 +1228,7 @@ JMP2
|
|
|
|
|
;spritesheet .File/write DEO2 |
|
|
|
|
|
|
|
|
|
( nametable ) |
|
|
|
|
has-nametable #00 EQU ,&no-nametable JCN |
|
|
|
|
has-nametable #00 EQU ?&no-nametable |
|
|
|
|
;nametable-ext ;filepath scap #0004 mcpy |
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
#0300 .File/length DEO2 |
|
|
|
|
@ -1248,7 +1248,7 @@ JMP2
|
|
|
|
|
#0000 |
|
|
|
|
&loop |
|
|
|
|
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2 |
|
|
|
|
INC NEQk ,&loop JCN |
|
|
|
|
INC NEQk ?&loop |
|
|
|
|
POP2 |
|
|
|
|
#00 .state/changed STZ ;draw-state ( .. ) |
|
|
|
|
|
|
|
|
|
@ -1360,11 +1360,11 @@ JMP2r
|
|
|
|
|
@within-rect ( x* y* rect -- flag ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
( y LTH rect.y1 ) DUP2 STHkr INC2 INC2 LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( y GTH rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
( y LTH rect.y1 ) DUP2 STHkr INC2 INC2 LDZ2 LTH2 ?&skip |
|
|
|
|
( y GTH rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ?&skip |
|
|
|
|
SWP2 |
|
|
|
|
( x LTH rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
|
|
|
|
( x GTH rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
|
|
|
|
( x LTH rect.x1 ) DUP2 STHkr LDZ2 LTH2 ?&skip |
|
|
|
|
( x GTH rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ?&skip |
|
|
|
|
POP2 POP2 POPr |
|
|
|
|
#01 |
|
|
|
|
JMP2r |
|
|
|
|
@ -1379,7 +1379,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@rol ( byte -- byte ) DUP #07 SFT SWP DUP ADD ADD JMP2r |
|
|
|
|
@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT ADD JMP2r |
|
|
|
|
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ,&loop JCN POP2 POP2 POP2r JMP2r |
|
|
|
|
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ?&loop POP2 POP2 POP2r JMP2r |
|
|
|
|
|
|
|
|
|
( |
|
|
|
|
@|assets ) |
|
|
|
|
|