Browse Source

Optimizations

main
Devine Lu Linvega 2 years ago
parent
commit
23a6292260
  1. 6
      src/manifest.tal
  2. 116
      src/nasu.tal

6
src/manifest.tal

@ -51,7 +51,7 @@ BRK
DUP #ff EQU ?&no-clear DUP #ff EQU ?&no-clear
DUP #00 draw-sub DUP #00 draw-sub
#ff ;draw-menu/sel STA #ff ;draw-menu/sel STA
redraw-all <redraw-all>
draw-menu draw-menu
&no-clear &no-clear
POP POP
@ -72,7 +72,7 @@ JMP2r
&no-clear &no-clear
POP POP
( draw ) ( draw )
redraw-all <redraw-all>
#ff ;draw-sub/sel STA #ff ;draw-sub/sel STA
DUP ;draw-menu/sel STA DUP ;draw-menu/sel STA
#ff draw-sub #ff draw-sub
@ -398,7 +398,7 @@ JMP2r
.Screen/width DEI2 #01 SFT2 #0088 SUB2 .Screen/x DEO2 .Screen/width DEI2 #01 SFT2 #0088 SUB2 .Screen/x DEO2
.Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2 .Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2
#22 #0091 draw-fill-fast/blank #22 #0091 draw-fill-fast/blank
redraw-all <redraw-all>
!draw-menu !draw-menu
( (

116
src/nasu.tal

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

Loading…
Cancel
Save