|
|
|
|
@ -192,7 +192,7 @@ BRK
|
|
|
|
|
[ LIT 'q ] NEQk NIP ,&no-tool0 JCN #00 ;set-tool JSR2 &no-tool0 |
|
|
|
|
[ LIT 'w ] NEQk NIP ,&no-tool1 JCN #01 ;set-tool JSR2 &no-tool1 |
|
|
|
|
[ LIT 'e ] NEQk NIP ,&no-tool2 JCN #02 ;set-tool JSR2 &no-tool2 |
|
|
|
|
[ #08 ] NEQk NIP ,&no-delete JCN ;op-erase ;run-selection JSR2 #01 .state/changed STZ ;draw-state JSR2 ;redraw JSR2 &no-delete |
|
|
|
|
[ #08 ] NEQk NIP ,&no-delete JCN ;op-erase ;run JSR2 #01 .state/changed STZ ;draw-state JSR2 ;redraw JSR2 &no-delete |
|
|
|
|
[ #20 ] NEQk NIP ,&no-zoom JCN ;toggle-zoom JSR2 &no-zoom |
|
|
|
|
[ #1b ] NEQk NIP ,&no-escape JCN .selection/x1 LDZ2 .selection/x2 STZ2 ;redraw JSR2 &no-escape |
|
|
|
|
POP |
|
|
|
|
@ -203,15 +203,15 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Controller/button DEI |
|
|
|
|
( default ) |
|
|
|
|
[ #10 ] NEQk NIP ,&no-up JCN #00 #ff ;mod-selection JSR2 POP BRK &no-up |
|
|
|
|
[ #20 ] NEQk NIP ,&no-down JCN #00 #01 ;mod-selection JSR2 POP BRK &no-down |
|
|
|
|
[ #40 ] NEQk NIP ,&no-left JCN #ff #00 ;mod-selection JSR2 POP BRK &no-left |
|
|
|
|
[ #80 ] NEQk NIP ,&no-right JCN #01 #00 ;mod-selection JSR2 POP BRK &no-right |
|
|
|
|
[ #10 ] NEQk NIP ,&no-u JCN #00 #ff ;mod-selection JSR2 POP BRK &no-u |
|
|
|
|
[ #20 ] NEQk NIP ,&no-d JCN #00 #01 ;mod-selection JSR2 POP BRK &no-d |
|
|
|
|
[ #40 ] NEQk NIP ,&no-l JCN #ff #00 ;mod-selection JSR2 POP BRK &no-l |
|
|
|
|
[ #80 ] NEQk NIP ,&no-r JCN #01 #00 ;mod-selection JSR2 POP BRK &no-r |
|
|
|
|
( shift ) |
|
|
|
|
[ #14 ] NEQk NIP ,&no-shift-up JCN #00 #ff ;scale-selection JSR2 POP BRK &no-shift-up |
|
|
|
|
[ #24 ] NEQk NIP ,&no-shift-down JCN #00 #01 ;scale-selection JSR2 POP BRK &no-shift-down |
|
|
|
|
[ #44 ] NEQk NIP ,&no-shift-left JCN #ff #00 ;scale-selection JSR2 POP BRK &no-shift-left |
|
|
|
|
[ #84 ] NEQk NIP ,&no-shift-right JCN #01 #00 ;scale-selection JSR2 POP BRK &no-shift-right |
|
|
|
|
[ #14 ] NEQk NIP ,&no-su JCN #00 #ff ;scale-selection JSR2 POP BRK &no-su |
|
|
|
|
[ #24 ] NEQk NIP ,&no-sd JCN #00 #01 ;scale-selection JSR2 POP BRK &no-sd |
|
|
|
|
[ #44 ] NEQk NIP ,&no-sl JCN #ff #00 ;scale-selection JSR2 POP BRK &no-sl |
|
|
|
|
[ #84 ] NEQk NIP ,&no-sr JCN #01 #00 ;scale-selection JSR2 POP BRK &no-sr |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -315,22 +315,12 @@ BRK
|
|
|
|
|
|
|
|
|
|
@on-touch-nametable ( -> ) |
|
|
|
|
|
|
|
|
|
( get touch tile ) |
|
|
|
|
( id ) |
|
|
|
|
.Mouse/y DEI2 .nametable/y LDZ2 SUB2 #43 SFT2 |
|
|
|
|
.Mouse/x DEI2 .nametable/x LDZ2 SUB2 #03 SFT2 ADD2 STH2 |
|
|
|
|
( look for changes ) |
|
|
|
|
STH2kr ;spritesheet/nametable ADD2 LDA |
|
|
|
|
.settings/focus LDZ2 ;spritesheet SUB2 #04 SFT2 NIP |
|
|
|
|
STH2kr ;spritesheet/color ADD2 LDA |
|
|
|
|
.settings/blend LDZ NEQ2 ,&continue JCN POP2r BRK &continue |
|
|
|
|
( set sprite ) |
|
|
|
|
.settings/focus LDZ2 ;spritesheet SUB2 #04 SFT2 NIP |
|
|
|
|
STH2kr ;spritesheet/nametable ADD2 STA |
|
|
|
|
( set color ) |
|
|
|
|
.settings/blend LDZ |
|
|
|
|
STH2r ;spritesheet/color ADD2 STA |
|
|
|
|
;draw-nametable JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
.Mouse/x DEI2 .nametable/x LDZ2 SUB2 #03 SFT2 ADD2 NIP |
|
|
|
|
( tile ) .settings/focus LDZ2 #04 SFT2 NIP |
|
|
|
|
( color ) .settings/blend LDZ |
|
|
|
|
;set-nametable JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@ -355,54 +345,30 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #03 SFT2 NIP #04 NEQ ;&no-mod JCN2 |
|
|
|
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-shiftup JCN |
|
|
|
|
;op-shift-tile-up ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftup |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftdown JCN |
|
|
|
|
;op-shift-tile-down ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftdown |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-shiftright JCN |
|
|
|
|
;op-shift-tile-right ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftright |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftleft JCN |
|
|
|
|
;op-shift-tile-left ;run-selection JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 &no-shiftleft |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-su JCN ;op-shiftu ;run JSR2 &no-su |
|
|
|
|
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-sd JCN ;op-shiftd ;run JSR2 &no-sd |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ,&no-sr JCN ;op-shiftr ;run JSR2 &no-sr |
|
|
|
|
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ,&no-shiftleft JCN ;op-shiftl ;run JSR2 &no-shiftleft |
|
|
|
|
POP |
|
|
|
|
( release mouse ) #00 .Mouse/state DEO |
|
|
|
|
,&finish JMP |
|
|
|
|
&no-mod |
|
|
|
|
|
|
|
|
|
( paint ) |
|
|
|
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 SUB2 #02 SFT2 |
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #02 SFT2 |
|
|
|
|
.settings/focus LDZ2 ADD2 |
|
|
|
|
( detect erase ) |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL STH |
|
|
|
|
OVR2 OVR2 STHkr #00 ;toggle-pixel JSR2 |
|
|
|
|
#0008 ADD2 STHr #01 ;toggle-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 SUB2 #02 SFT2 #00 .selection/x1 LDZ #30 SFT2 ADD2 |
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #02 SFT2 #00 .selection/y1 LDZ #30 SFT2 ADD2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL |
|
|
|
|
;put-pixel JSR2 |
|
|
|
|
&finish |
|
|
|
|
|
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@on-touch-blendview ( -> ) |
|
|
|
|
@on-touch-preview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .blendview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
.Mouse/y DEI2 .blendview/y1 LDZ2 SUB2 #03 SFT2 NIP #20 SFT ADD |
|
|
|
|
DUP #0f GTH ,&no-set JCN |
|
|
|
|
DUP .settings/blend LDZ #b0 AND ADD .settings/blend STZ |
|
|
|
|
&no-set |
|
|
|
|
DUP #12 NEQ ,&no-ver JCN |
|
|
|
|
.settings/blend LDZ #20 EOR .settings/blend STZ |
|
|
|
|
&no-ver |
|
|
|
|
DUP #13 NEQ ,&no-hor JCN |
|
|
|
|
.settings/blend LDZ #10 EOR .settings/blend STZ |
|
|
|
|
&no-hor |
|
|
|
|
POP |
|
|
|
|
;draw-blendview JSR2 |
|
|
|
|
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
#40 SFT ADD #11 ADD .settings/ratio STZ |
|
|
|
|
;draw-preview JSR2 |
|
|
|
|
( release mouse ) #00 .Mouse/state DEO |
|
|
|
|
|
|
|
|
|
@ -411,26 +377,17 @@ BRK
|
|
|
|
|
@on-touch-colorview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
|
|
|
|
|
DUP #00 NEQ ,&no-r JCN |
|
|
|
|
.System/r STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-r |
|
|
|
|
DUP #01 NEQ ,&no-g JCN |
|
|
|
|
.System/g STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-g |
|
|
|
|
DUP #02 NEQ ,&no-b JCN |
|
|
|
|
.System/b STHk ,&set-color JSR |
|
|
|
|
STHr [ .settings/color LDZ #01 SFT ADD ] DEO |
|
|
|
|
&no-b |
|
|
|
|
[ #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 |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
&set-color |
|
|
|
|
BRK |
|
|
|
|
&set-nibble ( -- ) |
|
|
|
|
.settings/color LDZ #01 SFT ADD DEO |
|
|
|
|
JMP2r |
|
|
|
|
&set-color ( -- ) |
|
|
|
|
.settings/color LDZ STHk #01 SFT ADD DEI |
|
|
|
|
STHr #01 AND STHk |
|
|
|
|
#0f SWP [ #60 SFT SFT ] AND |
|
|
|
|
@ -440,18 +397,16 @@ BRK
|
|
|
|
|
SWP [ #60 SFT SFT ] ADD |
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@on-touch-preview ( -> ) |
|
|
|
|
|
|
|
|
|
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #03 SFT2 NIP |
|
|
|
|
|
|
|
|
|
#40 SFT ADD #11 ADD |
|
|
|
|
.settings/ratio STZ |
|
|
|
|
|
|
|
|
|
;redraw JSR2 |
|
|
|
|
@on-touch-blendview ( -> ) |
|
|
|
|
|
|
|
|
|
.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 &no-set |
|
|
|
|
[ #12 NEQk NIP ] ,&no-ver JCN .settings/blend STHk LDZ #20 EOR STHr STZ &no-ver |
|
|
|
|
[ #13 NEQk NIP ] ,&no-hor JCN .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor |
|
|
|
|
POP |
|
|
|
|
;draw-blendview JSR2 |
|
|
|
|
;draw-preview JSR2 |
|
|
|
|
( release mouse ) #00 .Mouse/state DEO |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -516,6 +471,16 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@set-nametable ( id tile color -- ) |
|
|
|
|
|
|
|
|
|
ROT #00 SWP STH2 |
|
|
|
|
;spritesheet/color STH2kr ADD2 STA |
|
|
|
|
;spritesheet/nametable STH2r ADD2 STA |
|
|
|
|
;draw-nametable JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@mod-selection ( x y -- ) |
|
|
|
|
|
|
|
|
|
.settings/zoom LDZ ;mod-selection-zoom JCN2 |
|
|
|
|
@ -575,7 +540,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@run-selection ( op* -- ) |
|
|
|
|
@run ( op* -- ) |
|
|
|
|
|
|
|
|
|
STH2 |
|
|
|
|
.selection/y2 LDZ INC .selection/y1 LDZ |
|
|
|
|
@ -597,7 +562,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@op-shift-tile-up ( addr* -- ) |
|
|
|
|
@op-shiftu ( addr* -- ) |
|
|
|
|
|
|
|
|
|
DUP2 |
|
|
|
|
DUP2 #0007 ADD2 SWP2 LDAk STH |
|
|
|
|
@ -617,7 +582,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@op-shift-tile-down ( addr* -- ) |
|
|
|
|
@op-shiftd ( addr* -- ) |
|
|
|
|
|
|
|
|
|
DUP2 |
|
|
|
|
DUP2 #0007 ADD2 LDAk STH |
|
|
|
|
@ -637,7 +602,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@op-shift-tile-left ( addr* -- ) |
|
|
|
|
@op-shiftl ( addr* -- ) |
|
|
|
|
|
|
|
|
|
STH2 |
|
|
|
|
#08 #00 |
|
|
|
|
@ -654,7 +619,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@op-shift-tile-right ( addr* -- ) |
|
|
|
|
@op-shiftr ( addr* -- ) |
|
|
|
|
|
|
|
|
|
STH2 |
|
|
|
|
#08 #00 |
|
|
|
|
@ -771,17 +736,21 @@ JMP2r
|
|
|
|
|
@draw-nametable ( -- ) |
|
|
|
|
|
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
.nametable/y LDZ2 .Screen/y DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&ver |
|
|
|
|
#00 OVR #30 SFT2 .nametable/y LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
STHk |
|
|
|
|
.nametable/x LDZ2 .Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&hor |
|
|
|
|
OVR2 NIP OVR SWP [ #40 SFT ADD ] #00 SWP |
|
|
|
|
DUP2 ;spritesheet/nametable ADD2 LDA #00 SWP #40 SFT2 ;spritesheet ADD2 .Screen/addr DEO2 |
|
|
|
|
;spritesheet/color ADD2 LDA .Screen/sprite DEO |
|
|
|
|
#00 OVR STHkr #40 SFT ADD |
|
|
|
|
DUP2 ;spritesheet/nametable ADD2 LDA |
|
|
|
|
#00 SWP #40 SFT2 ;spritesheet ADD2 .Screen/addr DEO2 |
|
|
|
|
;spritesheet/color ADD2 LDA .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
POP2 |
|
|
|
|
POPr |
|
|
|
|
.Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
POP2 |
|
|
|
|
#00 .Screen/auto DEO |
|
|
|
|
@ -946,9 +915,9 @@ JMP2r
|
|
|
|
|
.System/g ,&get-color JSR #03 ;draw-hex JSR2 |
|
|
|
|
.System/b ,&get-color JSR #03 ;draw-hex JSR2 |
|
|
|
|
|
|
|
|
|
.colorview/x1 LDZ2 .colorview/y1 LDZ2 |
|
|
|
|
.colorview/x1 LDZ2 .colorview/y1 LDZ2 |
|
|
|
|
OVR2 OVR2 [ .System/r ,&get-color JSR ] ,&slider JSR |
|
|
|
|
OVR2 OVR2 #0008 ADD2 [ .System/g ,&get-color JSR ] ,&slider JSR |
|
|
|
|
OVR2 OVR2 #0008 ADD2 [ .System/g ,&get-color JSR ] ,&slider JSR |
|
|
|
|
#0010 ADD2 [ .System/b ,&get-color JSR ] ,&slider JSR |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -1260,7 +1229,7 @@ JMP2r
|
|
|
|
|
@cut-snarf ( -- ) |
|
|
|
|
|
|
|
|
|
;copy-snarf JSR2 |
|
|
|
|
;op-erase ;run-selection JSR2 |
|
|
|
|
;op-erase ;run JSR2 |
|
|
|
|
.selection/x1 LDZ2 .selection/x2 STZ2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
@ -1329,10 +1298,10 @@ JMP2r
|
|
|
|
|
.Screen/addr DEI2k #0008 ADD2 ROT DEO2 |
|
|
|
|
JMP2r |
|
|
|
|
&repeat |
|
|
|
|
#00 |
|
|
|
|
&repeat-loop |
|
|
|
|
#01 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&repeat-loop JCN |
|
|
|
|
#00 |
|
|
|
|
&repeat-loop |
|
|
|
|
#01 .Screen/sprite DEO |
|
|
|
|
INC GTHk ,&repeat-loop JCN |
|
|
|
|
POP2 |
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
|