From 2f82dd42ab36daac7ef01a1b991dacc6e7f5aa18 Mon Sep 17 00:00:00 2001 From: neauoire Date: Wed, 16 Mar 2022 15:28:35 -0700 Subject: [PATCH] Minor cleanup --- src/nasu.tal | 179 +++++++++++++++++++++------------------------------ 1 file changed, 74 insertions(+), 105 deletions(-) diff --git a/src/nasu.tal b/src/nasu.tal index 3c1267a..3e54140 100644 --- a/src/nasu.tal +++ b/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