Browse Source

Minor cleanup

main
neauoire 4 years ago
parent
commit
2f82dd42ab
  1. 179
      src/nasu.tal

179
src/nasu.tal

@ -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

Loading…
Cancel
Save