diff --git a/src/manifest.tal b/src/manifest.tal index 042eb05..2ff0029 100644 --- a/src/manifest.tal +++ b/src/manifest.tal @@ -51,7 +51,7 @@ BRK DUP #ff EQU ?&no-clear DUP #00 draw-sub #ff ;draw-menu/sel STA - redraw-all + draw-menu &no-clear POP @@ -72,7 +72,7 @@ JMP2r &no-clear POP ( draw ) - redraw-all + #ff ;draw-sub/sel STA DUP ;draw-menu/sel STA #ff draw-sub @@ -398,7 +398,7 @@ JMP2r .Screen/width DEI2 #01 SFT2 #0088 SUB2 .Screen/x DEO2 .Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2 #22 #0091 draw-fill-fast/blank - redraw-all + !draw-menu ( diff --git a/src/nasu.tal b/src/nasu.tal index 6828b32..7608f80 100644 --- a/src/nasu.tal +++ b/src/nasu.tal @@ -218,10 +218,10 @@ BRK .Mouse/y DEI2 #000c LTH2 ?trap-menu - ( color ) #42 .Mouse/state DEI #00 NEQ ADD + ( color ) [ LIT2 42 -Mouse/state ] DEI #00 NEQ ADD ( addr* ) ;brush-icn #00 .settings/tool LDZ #30 SFT ADD2 update-cursor - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO .Mouse/state DEI #00 EQU ?&no-touch .Mouse/x DEI2 .Mouse/y DEI2 .tileview within-rect ?on-touch-tileview @@ -249,7 +249,7 @@ BRK .settings/color LDZ .Mouse/state DEI #01 EQU MUL put-pixel #01 .state/changed STZ draw-state - redraw + BRK @@ -259,7 +259,7 @@ BRK #33 SFT2 NIP STHr set-selection-zoom toggle-zoom - redraw + ( release mouse ) [ LIT2 00 -Mouse/state ] DEO BRK @@ -270,7 +270,7 @@ BRK SWP2 #03 SFT2 #00 .selection/zy LDZ ADD2 .settings/color LDZ .Mouse/state DEI #01 EQU MUL put-pixel #01 .state/changed STZ draw-state - redraw + BRK @@ -337,7 +337,7 @@ BRK put-pixel &finish #01 .state/changed STZ draw-state - redraw + BRK @@ -354,11 +354,11 @@ BRK @on-touch-colorview ( -> ) .Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #03 SFT2 NIP - [ #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 + [ #00 ] NEQk NIP ?&no-r .System/r STHk /set-color STHr /set-nibble &no-r + [ #01 ] NEQk NIP ?&no-g .System/g STHk /set-color STHr /set-nibble &no-g + [ #02 ] NEQk NIP ?&no-b .System/b STHk /set-color STHr /set-nibble &no-b POP - redraw + BRK &set-nibble ( -- ) @@ -443,7 +443,7 @@ JMP2r .selection/x2 STZ set-focus -!redraw +! @set-selection-to ( x y -- ) @@ -451,7 +451,7 @@ JMP2r .selection/x2 STZ clamp-selection -!redraw +! @set-focus ( -- ) @@ -482,7 +482,7 @@ JMP2r ( | focus ) set-focus -!redraw +! @mod-selection-zoom ( x y -- ) @@ -512,7 +512,7 @@ JMP2r ( | focus ) set-focus -!redraw +! @is-mono ( filepath -- f ) scap #0004 SUB2 @@ -700,11 +700,11 @@ JMP2r ( @|drawing ) -@redraw-all ( -- ) +@ ( -- ) draw-once -@redraw ( -- ) +@ ( -- ) draw-toolview draw-blendview @@ -723,7 +723,7 @@ JMP2r .tileview/y1 LDZ2 .Screen/y DEO2 ( | draw tiles ) ;spritesheet .Screen/addr DEO2 - #f6 .Screen/auto DEO + [ LIT2 f6 -Screen/auto ] DEO #1000 &loop #81 .Screen/sprite DEO @@ -740,7 +740,7 @@ JMP2r #84 .Screen/sprite DEO INC GTHk ?&loop-sel POP2 - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO ( | draw selection size ) .selection/x2 LDZ .selection/x1 LDZ SUB #02 LTH ?&no-label .selection/y2 LDZ #0f EQU ?&no-label @@ -760,13 +760,13 @@ JMP2r ;fill-icn .Screen/addr DEO2 .tileview/x1 LDZ2 .Screen/x DEO2 .tileview/y1 LDZ2 .Screen/y DEO2 - #f2 .Screen/auto DEO + [ LIT2 f2 -Screen/auto ] DEO #f0 × ( -- ) [ LIT2 00 -Screen/sprite ] DEO INC DUP ?× POP ( | draw ) - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO ;pixel-icn .Screen/addr DEO2 #1000 &ver @@ -801,7 +801,7 @@ JMP2r @draw-nametable ( -- ) - #00 .Screen/auto DEO + [ LIT2 00 -Screen/auto ] DEO #1000 &ver ( -- ) ( > y ) #00 OVR #30 SFT2 .nametableview/y LDZ2 ADD2 .Screen/y DEO2 @@ -922,7 +922,7 @@ JMP2r #0404 ;frame2-chr draw-frame ( | label ) - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO .zoomview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2 .zoomview/x1 LDZ2 .Screen/x DEO2 ;arrow-ver-icns .Screen/addr DEO2 @@ -951,7 +951,7 @@ JMP2r ( 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 - ,&resume JMP + !&resume &outside ;halftone-icn .Screen/addr DEO2 #03 .Screen/sprite DEO @@ -975,16 +975,16 @@ JMP2r .colorview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2 .colorview/x1 LDZ2 .Screen/x DEO2 #03 ;draw-chr/color STA - .System/r ,&get-color JSR draw-hex - .System/g ,&get-color JSR draw-hex - .System/b ,&get-color JSR draw-hex + .System/r /get-color draw-hex + .System/g /get-color draw-hex + .System/b /get-color draw-hex .colorview/x1 LDZ2 .colorview/y1 LDZ2 - #00 .Screen/auto DEO - OVR2 OVR2 [ .System/r ,&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 - #01 .Screen/auto DEO + [ LIT2 00 -Screen/auto ] DEO + OVR2 OVR2 .System/r /get-color /slider + OVR2 OVR2 #0008 ADD2 .System/g /get-color /slider + #0010 ADD2 .System/b /get-color /slider + [ LIT2 01 -Screen/auto ] DEO JMP2r &slider ( x* y* value -- ) @@ -1007,7 +1007,7 @@ JMP2r @draw-blendview ( -- ) - #00 .Screen/auto DEO + [ LIT2 00 -Screen/auto ] DEO #1000 &loop #00 OVR #03 AND #30 SFT2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2 @@ -1018,7 +1018,7 @@ JMP2r DUP .settings/blend LDZ #b0 AND ADD .Screen/sprite DEO INC GTHk ?&loop POP2 - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO ( | label ) .blendview/x1 LDZ2 .Screen/x DEO2 @@ -1126,7 +1126,7 @@ JMP2r POP ;fill-icn .Screen/addr DEO2 - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO #1300 &l ( -- ) #00 .Screen/sprite DEO INC GTHk ?&l @@ -1159,7 +1159,7 @@ JMP2r .nametableview/y LDZ2 .Screen/y DEO2 #1010 ;frame2-chr draw-frame - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO JMP2r @@ -1179,7 +1179,7 @@ JMP2r @draw-str ( str* -- str* ) LDAk #00 EQU ?&skip - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO &while LDAk draw-chr INC2 LDAk ?&while @@ -1212,15 +1212,15 @@ JMP2r STH2 ,&h STR ,&w STR .Screen/x DEI2 DUP2 #0008 SUB2 .Screen/x DEO2 .Screen/y DEI2 #0008 SUB2 DUP2 .Screen/y DEO2 - ( ul ) #00 STH2kr #05 ,&single JSR - ( uu ) [ LIT &w $1 ] #00 STH2kr #0010 ADD2 #01 ,&repeat JSR + ( ul ) #00 STH2kr #05 /single + ( uu ) [ LIT &w $1 ] #00 STH2kr #0010 ADD2 #01 /repeat ( ur ) #10 STH2kr #06 ,&single JSR - ( rr ) [ LIT &h $1 ] #00 STH2kr #0020 ADD2 #02 ,&repeat JSR + ( rr ) [ LIT &h $1 ] #00 STH2kr #0020 ADD2 #02 /repeat #0008 ADD2 .Screen/y DEO2 #0008 SUB2 .Screen/x DEO2 - ( ll ) ,&h LDR #10 STH2kr #0020 ADD2 #02 ,&repeat JSR + ( ll ) ,&h LDR #10 STH2kr #0020 ADD2 #02 /repeat ( dl ) #20 STH2kr #01 ,&single JSR - ( bb ) ,&w LDR #20 STH2kr #0010 ADD2 #01 ,&repeat JSR + ( bb ) ,&w LDR #20 STH2kr #0010 ADD2 #01 /repeat ( dr ) #30 STH2r #00 ,&single ( .. ) JMP @@ -1242,9 +1242,9 @@ JMP STH .Screen/y DEO2 .Screen/x DEO2 ;&sprite .Screen/addr DEO2 - #f2 .Screen/auto DEO + [ LIT2 f2 -Screen/auto ] DEO STHr .Screen/sprite DEO - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO JMP2r &sprite aa00 0000 0000 0000 @@ -1253,9 +1253,9 @@ JMP2r STH .Screen/y DEO2 .Screen/x DEO2 ;&sprite .Screen/addr DEO2 - #f1 .Screen/auto DEO + [ LIT2 f1 -Screen/auto ] DEO STHr .Screen/sprite DEO - #01 .Screen/auto DEO + [ LIT2 01 -Screen/auto ] DEO JMP2r &sprite 8000 8000 8000 8000 @@ -1273,7 +1273,7 @@ JMP2r ;untitled-txt ;filepath scpy #00 .state/changed STZ draw-state -!redraw +! @file-open ( -- ) ;filepath is-mono ?file-open-mono @@ -1293,7 +1293,7 @@ JMP2r #00 .state/changed STZ draw-state -!redraw +! @file-open-mono ( -- ) @@ -1309,7 +1309,7 @@ JMP2r POP2 #00 .state/changed STZ draw-state -!redraw +! @file-save ( -- ) ;filepath is-mono ?file-save-mono @@ -1367,7 +1367,7 @@ JMP2r #0008 ;op-write/length STA2 ;op-write run -!redraw +! @edit-copy-chr ( -- ) @@ -1375,7 +1375,7 @@ JMP2r #0010 ;op-write/length STA2 ;op-write run -!redraw +! @edit-paste ( -- ) @@ -1383,46 +1383,46 @@ JMP2r #0010 .File/length DEO2 ;op-read run -!redraw +! @edit-cut ( -- ) edit-copy-chr ;op-erase run -!redraw +! @edit-erase ( -- ) ;op-erase run #01 .state/changed STZ draw-state -!redraw +! @edit-invert ( -- ) ;op-invert run #01 .state/changed STZ draw-state -!redraw +! @edit-colorize ( -- ) ;filter-colorize filter #01 .state/changed STZ draw-state -!redraw +! @edit-flipx ( -- ) ;filter-flipx filter #01 .state/changed STZ draw-state -!redraw +! @edit-flipy ( -- ) ;filter-flipy filter #01 .state/changed STZ draw-state -!redraw +! @ ( short* -- ) @@ -1449,7 +1449,7 @@ JMP2r @move-decw ( -- ) #ff00 !scale-selection @move-incw ( -- ) #0100 !scale-selection -@move-reset ( -- ) .selection/x1 LDZ2 .selection/x2 STZ2 !redraw +@move-reset ( -- ) .selection/x1 LDZ2 .selection/x2 STZ2 ! @select-all ( -- ) #0000 set-selection-from