Browse Source

Improved format

main
Devine Lu Linvega 2 years ago
parent
commit
09ec505047
  1. 375
      src/nasu.tal

375
src/nasu.tal

@ -59,7 +59,7 @@
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 .frame/width LDZ2 #0008 ;toolview <set-size> .tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 .frame/width LDZ2 #0008 ;toolview <set-size>
( | static drawings ) ( | static drawings )
load-theme load-theme
draw-once <draw-once>
( | begin ) ( | begin )
file-new file-new
draw-menu draw-menu
@ -128,7 +128,7 @@ BRK
#0000 .Screen/vector DEO2 #0000 .Screen/vector DEO2
;on-button .Controller/vector DEO2 ;on-button .Controller/vector DEO2
;on-mouse .Mouse/vector DEO2 ;on-mouse .Mouse/vector DEO2
#01 draw-filepath #01 <draw-filepath>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO ( release mouse ) [ LIT2 00 -Mouse/state ] DEO
JMP2r JMP2r
@ -146,7 +146,7 @@ JMP2r
@on-console ( -> ) @on-console ( -> )
#00 draw-filepath #00 <draw-filepath>
( | start ) ( | start )
[ LIT &listening $1 ] ?&no-start [ LIT &listening $1 ] ?&no-start
#01 ,&listening STR #01 ,&listening STR
@ -159,15 +159,15 @@ JMP2r
&no-end &no-end
( | capture ) ( | capture )
capture-trap capture-trap
#01 draw-filepath #01 <draw-filepath>
BRK BRK
@on-button-trap ( -> ) @on-button-trap ( -> )
#00 draw-filepath #00 <draw-filepath>
.Controller/key DEI DUP #0d EQU #03 MUL SUB capture-trap .Controller/key DEI DUP #0d EQU #03 MUL SUB capture-trap
#01 draw-filepath #01 <draw-filepath>
BRK BRK
@ -198,7 +198,7 @@ BRK
.state/timer LDZ .state/timer LDZ
DUP #07 AND ?&no-blink DUP #07 AND ?&no-blink
DUP #03 SFT #01 AND #30 SFT INC draw-filepath DUP #03 SFT #01 AND #30 SFT INC <draw-filepath>
&no-blink &no-blink
INC .state/timer STZ INC .state/timer STZ
@ -248,7 +248,7 @@ BRK
( | paint ) ( | paint )
.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
@ -269,7 +269,7 @@ BRK
SWP2 #03 SFT2 #00 .selection/zx LDZ ADD2 SWP2 #03 SFT2 #00 .selection/zx LDZ ADD2
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
@ -296,8 +296,8 @@ BRK
#0003 MUL2 ;nametable ADD2 STH2 #0003 MUL2 ;nametable ADD2 STH2
.settings/focus LDZ2 ;spritesheet SUB2 STH2kr STA2 .settings/focus LDZ2 ;spritesheet SUB2 STH2kr STA2
.settings/blend LDZ INC2r INC2r STH2r STA .settings/blend LDZ INC2r INC2r STH2r STA
draw-nametable <draw-nametable>
#01 .state/changed STZ draw-state #01 .state/changed STZ <draw-state>
BRK BRK
@ -336,7 +336,7 @@ BRK
.settings/color LDZ .Mouse/state DEI #01 EQU MUL .settings/color LDZ .Mouse/state DEI #01 EQU MUL
put-pixel put-pixel
&finish &finish
#01 .state/changed STZ draw-state #01 .state/changed STZ <draw-state>
<redraw> <redraw>
BRK BRK
@ -346,7 +346,7 @@ BRK
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #03 SFT2 NIP #03 AND ( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #03 SFT2 NIP #03 AND
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #03 SFT2 NIP ( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #03 SFT2 NIP
#40 SFT ADD #11 ADD .settings/ratio STZ #40 SFT ADD #11 ADD .settings/ratio STZ
draw-preview <draw-preview>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO ( release mouse ) [ LIT2 00 -Mouse/state ] DEO
BRK BRK
@ -385,8 +385,8 @@ BRK
[ #03 NEQk NIP ] ?&no-hor .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor [ #03 NEQk NIP ] ?&no-hor .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor
&end &end
POP POP
draw-blendview <draw-blendview>
draw-preview <draw-preview>
( | release mouse ) [ LIT2 00 -Mouse/state ] DEO ( | release mouse ) [ LIT2 00 -Mouse/state ] DEO
BRK BRK
@ -397,22 +397,22 @@ BRK
@toggle-zoom ( -- ) @toggle-zoom ( -- )
.settings/zoom LDZk #00 EQU SWP STZ .settings/zoom LDZk #00 EQU SWP STZ
draw-tileview <draw-tileview>
!draw-toolview !<draw-toolview>
@set-color ( color -- ) @set-color ( color -- )
.settings/color STZ .settings/color STZ
draw-toolview <draw-toolview>
!draw-colorview !<draw-colorview>
@set-tool ( tool -- ) @set-tool ( tool -- )
.settings/tool STZ .settings/tool STZ
!draw-toolview !<draw-toolview>
@clamp-selection ( -- ) @clamp-selection ( -- )
@ -495,7 +495,7 @@ JMP2r
.selection/zy LDZ #03 SFT .selection/zy LDZ #03 SFT
set-selection-from set-selection-from
!draw-tileview-zoom !<draw-tileview-zoom>
@scale-selection ( x y -- ) @scale-selection ( x y -- )
@ -521,21 +521,96 @@ JMP2r
AND AND
JMP2r JMP2r
@get-tile-addr ( x y -- addr* )
#40 SFT ADD #00 SWP #40 SFT2 ;spritesheet ADD2
JMP2r
@get-pixel ( x* y* -- color )
( | channel 1 )
OVR2 SWP2 get-pixel-addr [ STH2k ] LDA
ROT ROT NIP #07 AND [ STHk ]
#07 SWP SUB SFT #01 AND
( | channel 2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP SUB SFT #01 AND
DUP ADD
ADD
JMP2r
@get-pixel-addr ( x* y* -- addr* )
( | clamp )
#007f AND2 SWP2 #007f AND2 SWP2
( | get row )
DUP2 #0007 AND2
( | get tile )
SWP2 #83 SFT2 ADD2
SWP2 #43 SFT2 ADD2
;spritesheet ADD2
JMP2r
@put-pixel ( x* y* color -- )
STH
OVR2 SWP2 get-pixel-addr
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel
( ch2 ) #0008 ADD2 STHr #01
@toggle-pixel ( x* addr* color -- )
STH2
LDAk
STH SWP2 NIP
STHr SWP
STH2r SFT #01 AND ?&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT #ff EOR AND
( save ) ROT ROT STA
JMP2r
&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT ORA
( save ) ROT ROT STA
JMP2r
@has-nametable ( -- bool )
;nametable STH2k #0300 ADD2 STH2r
&>loop
LDAk #00 EQU ?&continue
POP2 POP2 #01 JMP2r
&continue
INC2 GTH2k ?&>loop
POP2 POP2
#00
JMP2r
@get-strw ( str* -- width* )
slen #30 SFT2
JMP2r
( (
@|filter ) @|filter )
@filter ( op* -- ) @filter ( op* -- )
,&t STR2 ,&fn STR2
.selection/y2 LDZ INC #30 SFT .selection/y1 LDZ #30 SFT .selection/y2 LDZ INC #30 SFT .selection/y1 LDZ #30 SFT
&ver &>ver ( -- )
STHk STHk
.selection/x2 LDZ INC #30 SFT .selection/x1 LDZ #30 SFT .selection/x2 LDZ INC #30 SFT .selection/x1 LDZ #30 SFT
&hor &>hor ( -- )
#00 OVR #00 STHkr [ LIT2 &t $2 ] JSR2 #00 OVR #00 STHkr [ LIT2 &fn $2 ] JSR2
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POPr POP2 POPr
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
JMP2r JMP2r
@ -578,17 +653,16 @@ JMP2r
@run ( op* -- ) @run ( op* -- )
STH2 ,&fn STR2
.selection/y2 LDZ INC .selection/y1 LDZ .selection/y2 LDZ INC .selection/y1 LDZ
&ver &>ver ( -- )
.selection/x2 LDZ INC .selection/x1 LDZ .selection/x2 LDZ INC .selection/x1 LDZ
&hor &>hor ( -- )
OVR2 NIP OVR SWP get-tile-addr STH2kr JSR2 OVR2 NIP OVR SWP get-tile-addr [ LIT2 &fn $2 ] JSR2
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POP2
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
POP2r
JMP2r JMP2r
@ -602,9 +676,9 @@ JMP2r
,&t STR2 ,&t STR2
#1000 #1000
&loop &>loop
#00 OVR [ LIT2 &t $2 ] ADD2 LDA2k #ffff EOR2 SWP2 STA2 #00 OVR [ LIT2 &t $2 ] ADD2 LDA2k #ffff EOR2 SWP2 STA2
INC INC GTHk ?&loop INC INC GTHk ?&>loop
POP2 POP2
JMP2r JMP2r
@ -651,14 +725,14 @@ JMP2r
STH2 STH2
#0800 #0800
&loop &>loop
( | ch1 ) ( | ch1 )
#00 OVR STH2kr ADD2 #00 OVR STH2kr ADD2
LDAk rol ROT ROT STA LDAk rol ROT ROT STA
( | ch2 ) ( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2 #00 OVR STH2kr #0008 ADD2 ADD2
LDAk rol ROT ROT STA LDAk rol ROT ROT STA
INC GTHk ?&loop INC GTHk ?&>loop
POP2 POP2
POP2r POP2r
@ -668,14 +742,14 @@ JMP2r
STH2 STH2
#0800 #0800
&loop &>loop
( | ch1 ) ( | ch1 )
#00 OVR STH2kr ADD2 #00 OVR STH2kr ADD2
LDAk ror ROT ROT STA LDAk ror ROT ROT STA
( | ch2 ) ( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2 #00 OVR STH2kr #0008 ADD2 ADD2
LDAk ror ROT ROT STA LDAk ror ROT ROT STA
INC GTHk ?&loop INC GTHk ?&>loop
POP2 POP2
POP2r POP2r
@ -702,32 +776,32 @@ JMP2r
@<redraw-all> ( -- ) @<redraw-all> ( -- )
draw-once <draw-once>
@<redraw> ( -- ) @<redraw> ( -- )
draw-toolview <draw-toolview>
draw-blendview <draw-blendview>
draw-colorview <draw-colorview>
draw-dataview <draw-dataview>
draw-preview <draw-preview>
draw-tileview <draw-tileview>
draw-nametable <draw-nametable>
!draw-zoomview !<draw-zoomview>
@draw-tileview ( -- ) @<draw-tileview> ( -- )
.settings/zoom LDZ ?draw-tileview-zoom .settings/zoom LDZ ?<draw-tileview-zoom>
.tileview/x1 LDZ2 .Screen/x DEO2 .tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2 .tileview/y1 LDZ2 .Screen/y DEO2
( | draw tiles ) ( | draw tiles )
;spritesheet .Screen/addr DEO2 ;spritesheet .Screen/addr DEO2
[ LIT2 f6 -Screen/auto ] DEO [ LIT2 f6 -Screen/auto ] DEO
#1000 #1000
&loop &>loop
#81 .Screen/sprite DEO #81 .Screen/sprite DEO
INC GTHk ?&loop INC GTHk ?&>loop
POP2 POP2
( | draw selection ) ( | draw selection )
#06 .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO #06 .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO
@ -735,10 +809,10 @@ JMP2r
#00 .selection/y1 LDZ #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 .selection/y1 LDZ #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.selection LDZ2 get-tile-addr ,&sprite STR2 .selection LDZ2 get-tile-addr ,&sprite STR2
.selection/y2 LDZ .selection/y1 LDZ SUB INC #00 .selection/y2 LDZ .selection/y1 LDZ SUB INC #00
&loop-sel &>loop-sel
#00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2 #00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2
#84 .Screen/sprite DEO #84 .Screen/sprite DEO
INC GTHk ?&loop-sel INC GTHk ?&>loop-sel
POP2 POP2
[ LIT2 01 -Screen/auto ] DEO [ LIT2 01 -Screen/auto ] DEO
( | draw selection size ) ( | draw selection size )
@ -754,7 +828,7 @@ JMP2r
JMP2r JMP2r
@draw-tileview-zoom ( -- ) @<draw-tileview-zoom> ( -- )
( | clear ) ( | clear )
;fill-icn .Screen/addr DEO2 ;fill-icn .Screen/addr DEO2
@ -769,18 +843,18 @@ JMP2r
[ LIT2 01 -Screen/auto ] DEO [ LIT2 01 -Screen/auto ] DEO
;pixel-icn .Screen/addr DEO2 ;pixel-icn .Screen/addr DEO2
#1000 #1000
&ver &>ver ( -- )
#00 OVR #30 SFT .tileview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 OVR #30 SFT .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.tileview/x1 LDZ2 .Screen/x DEO2 .tileview/x1 LDZ2 .Screen/x DEO2
#1000 #1000
&hor &>hor ( -- )
OVR2 NIP OVR SWP OVR2 NIP OVR SWP
( y ) .selection/zy LDZ ADD #00 SWP ( y ) .selection/zy LDZ ADD #00 SWP
( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2 ( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2
get-pixel .Screen/sprite DEO get-pixel .Screen/sprite DEO
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POP2
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
( | guide hor ) ( | guide hor )
#0007 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2 #0007 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2
@ -799,121 +873,54 @@ JMP2r
JMP2r JMP2r
@draw-nametable ( -- ) @<draw-nametable> ( -- )
[ LIT2 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
STHk STHk
.nametableview/x LDZ2 .Screen/x DEO2 .nametableview/x LDZ2 .Screen/x DEO2
#1000 #1000
&hor ( -- ) &>hor ( -- )
( > x ) #00 OVR #30 SFT2 .nametableview/x LDZ2 ADD2 .Screen/x DEO2 ( > x ) #00 OVR #30 SFT2 .nametableview/x LDZ2 ADD2 .Screen/x DEO2
( id ) #00 OVR STHkr #40 SFT ADD ( id ) #00 OVR STHkr #40 SFT ADD
( addr* ) #0003 MUL2 ;nametable ADD2 ( addr* ) #0003 MUL2 ;nametable ADD2
LDA2k ;spritesheet ADD2 .Screen/addr DEO2 LDA2k ;spritesheet ADD2 .Screen/addr DEO2
( color ) INC2 INC2 LDA .Screen/sprite DEO ( color ) INC2 INC2 LDA .Screen/sprite DEO
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POP2
POPr POPr
.nametableview/x LDZ2 .Screen/x DEO2 .nametableview/x LDZ2 .Screen/x DEO2
draw-lb draw-lb
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
JMP2r JMP2r
( tools ) ( tools )
@get-tile-addr ( x y -- addr* )
#40 SFT ADD #00 SWP #40 SFT2 ;spritesheet ADD2
JMP2r
@get-pixel ( x* y* -- color )
( | channel 1 )
OVR2 SWP2 get-pixel-addr [ STH2k ] LDA
ROT ROT NIP #07 AND [ STHk ]
#07 SWP SUB SFT #01 AND
( | channel 2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP SUB SFT #01 AND
DUP ADD
ADD
JMP2r
@get-pixel-addr ( x* y* -- addr* )
( | clamp )
#007f AND2 SWP2 #007f AND2 SWP2
( | get row )
DUP2 #0007 AND2
( | get tile )
SWP2 #83 SFT2 ADD2
SWP2 #43 SFT2 ADD2
;spritesheet ADD2
JMP2r
@put-pixel ( x* y* color -- )
STH
OVR2 SWP2 get-pixel-addr
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel
( ch2 ) #0008 ADD2 STHr #01
@toggle-pixel ( x* addr* color -- )
STH2
LDAk
STH SWP2 NIP
STHr SWP
STH2r SFT #01 AND ?&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT #ff EOR AND
( save ) ROT ROT STA
JMP2r
&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT ORA
( save ) ROT ROT STA
JMP2r
@has-nametable ( -- bool )
;nametable STH2k #0300 ADD2 STH2r
&loop
LDAk #00 EQU ?&continue
POP2 POP2 #01 JMP2r
&continue
INC2 GTH2k ?&loop
POP2 POP2
#00
JMP2r
( panes ) ( panes )
@draw-zoomview ( -- ) @<draw-zoomview> ( -- )
;bigpixel-icn .Screen/addr DEO2 ;bigpixel-icn .Screen/addr DEO2
#0800 #0800
&ver &>ver ( -- )
#00 OVRk #00 OVRk
#00 .selection/y1 LDZ #30 SFT ADD2 ,&y STR2 #00 .selection/y1 LDZ #30 SFT ADD2 ,&y STR2
#20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2 #20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
#0800 #0800
&hor &>hor ( -- )
#00 OVRk #00 OVRk
#00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2 #00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2
#20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2 #20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
[ LIT2 &x $2 ] [ LIT2 &y $2 ] get-pixel .Screen/sprite DEO [ LIT2 &x $2 ] [ LIT2 &y $2 ] get-pixel .Screen/sprite DEO
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POP2
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
( | frame ) ( | frame )
@ -932,15 +939,15 @@ JMP2r
JMP2r JMP2r
@draw-preview ( -- ) @<draw-preview> ( -- )
( | stash address ) ( | stash address )
.settings/focus LDZ2 STH2k .Screen/addr DEO2 .settings/focus LDZ2 STH2k .Screen/addr DEO2
#0400 #0400
&ver &>ver ( -- )
#00 OVR #30 SFT .preview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 OVR #30 SFT .preview/y1 LDZ2 ADD2 .Screen/y DEO2
#0400 #0400
&hor &>hor ( -- )
#00 OVR #30 SFT .preview/x1 LDZ2 ADD2 .Screen/x DEO2 #00 OVR #30 SFT .preview/x1 LDZ2 ADD2 .Screen/x DEO2
( | get x,y ) ( | get x,y )
OVR2 NIP OVR SWP OVR2 NIP OVR SWP
@ -956,9 +963,9 @@ JMP2r
;halftone-icn .Screen/addr DEO2 ;halftone-icn .Screen/addr DEO2
#03 .Screen/sprite DEO #03 .Screen/sprite DEO
&resume &resume
INC GTHk ?&hor INC GTHk ?&>hor
POP2 POP2
INC GTHk ?&ver INC GTHk ?&>ver
POP2 POP2
POP2r POP2r
@ -970,7 +977,7 @@ JMP2r
!draw-byte !draw-byte
@draw-colorview ( -- ) @<draw-colorview> ( -- )
.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
@ -992,11 +999,11 @@ JMP2r
.Screen/y DEO2 .Screen/y DEO2
.Screen/x DEO2 .Screen/x DEO2
#1000 #1000
&loop &>loop
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2 DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2
#02 .Screen/sprite DEO #02 .Screen/sprite DEO
.Screen/x DEI2k INC2 INC2 ROT DEO2 .Screen/x DEI2k INC2 INC2 ROT DEO2
INC GTHk ?&loop INC GTHk ?&>loop
POP2 POP2
POPr POPr
@ -1005,18 +1012,18 @@ JMP2r
.settings/color LDZ STHk #01 SFT ADD DEI #01 STHr #01 AND SUB #20 SFT SFT #0f AND .settings/color LDZ STHk #01 SFT ADD DEI #01 STHr #01 AND SUB #20 SFT SFT #0f AND
JMP2r JMP2r
@draw-blendview ( -- ) @<draw-blendview> ( -- )
[ LIT2 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
#00 OVR #32 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2 #00 OVR #32 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
;fill-icn .Screen/addr DEO2 ;fill-icn .Screen/addr DEO2
#00 .Screen/sprite DEO #00 .Screen/sprite DEO
.settings/focus LDZ2 .Screen/addr DEO2 .settings/focus LDZ2 .Screen/addr DEO2
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
[ LIT2 01 -Screen/auto ] DEO [ LIT2 01 -Screen/auto ] DEO
@ -1040,7 +1047,7 @@ JMP2r
JMP2r JMP2r
@draw-dataview ( -- ) @<draw-dataview> ( -- )
( | position ) ( | position )
.dataview/x1 LDZ2 .Screen/x DEO2 .dataview/x1 LDZ2 .Screen/x DEO2
@ -1049,7 +1056,7 @@ JMP2r
.selection LDZ2 #40 SFT ADD draw-byte .selection LDZ2 #40 SFT ADD draw-byte
.dataview/y1 LDZ2 .Screen/y DEO2 .dataview/y1 LDZ2 .Screen/y DEO2
#0400 #0400
&loop &>loop
.dataview/x1 LDZ2 .Screen/x DEO2 .dataview/x1 LDZ2 .Screen/x DEO2
#00 OVR DUP ADD .settings/focus LDZ2 ADD2 #00 OVR DUP ADD .settings/focus LDZ2 ADD2
#01 ;draw-chr/color STA #01 ;draw-chr/color STA
@ -1060,12 +1067,12 @@ JMP2r
( | skip line ) ( | skip line )
.dataview/x1 LDZ2 .Screen/x DEO2 .dataview/x1 LDZ2 .Screen/x DEO2
draw-lb draw-lb
INC GTHk ?&loop INC GTHk ?&>loop
POP2 POP2
JMP2r JMP2r
@draw-toolview ( -- ) @<draw-toolview> ( -- )
.toolview/y1 LDZ2 .Screen/y DEO2 .toolview/y1 LDZ2 .Screen/y DEO2
( | colors ) ( | colors )
@ -1085,7 +1092,7 @@ JMP2r
;zoom-icns [ #00 .settings/zoom LDZ #30 SFT2 ADD2 ] .Screen/addr DEO2 ;zoom-icns [ #00 .settings/zoom LDZ #30 SFT2 ADD2 ] .Screen/addr DEO2
#01 .settings/tool LDZ #02 EQU ADD .Screen/sprite DEO #01 .settings/tool LDZ #02 EQU ADD .Screen/sprite DEO
( | file i/o ) ( | file i/o )
draw-state <draw-state>
.toolview/x2 LDZ2 STH2k #0018 SUB2 .Screen/x DEO2 .toolview/x2 LDZ2 STH2k #0018 SUB2 .Screen/x DEO2
;load-icn .Screen/addr DEO2 ;load-icn .Screen/addr DEO2
#01 .Screen/sprite DEO #01 .Screen/sprite DEO
@ -1095,9 +1102,9 @@ JMP2r
( | filepath ) ( | filepath )
#01 #01
!draw-filepath !<draw-filepath>
@draw-state ( -- ) @<draw-state> ( -- )
.toolview/x2 LDZ2 #0008 SUB2 .Screen/x DEO2 .toolview/x2 LDZ2 #0008 SUB2 .Screen/x DEO2
.toolview/y1 LDZ2 .Screen/y DEO2 .toolview/y1 LDZ2 .Screen/y DEO2
@ -1106,12 +1113,12 @@ JMP2r
JMP2r JMP2r
@draw-filepath ( color -- ) @<draw-filepath> ( color -- )
.toolview/x1 LDZ2 #0040 ADD2 .Screen/x DEO2 .toolview/x1 LDZ2 #0040 ADD2 .Screen/x DEO2
.toolview/y1 LDZ2 INC2 .Screen/y DEO2 .toolview/y1 LDZ2 INC2 .Screen/y DEO2
( | clear ) ( | clear )
DUP #00 EQU ?clear-filepath DUP #00 EQU ?<clear-filepath>
;draw-chr/color STA ;draw-chr/color STA
;filepath ;filepath
@ -1122,14 +1129,14 @@ JMP2r
JMP2r JMP2r
@clear-filepath ( color -- ) @<clear-filepath> ( color -- )
POP POP
;fill-icn .Screen/addr DEO2 ;fill-icn .Screen/addr DEO2
[ LIT2 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
POP2 POP2
JMP2r JMP2r
@ -1141,15 +1148,15 @@ JMP2r
.Screen/auto DEO .Screen/auto DEO
STH STH
#00 #00
&l2 &>l2
STHkr .Screen/sprite DEO STHkr .Screen/sprite DEO
INC GTHk ?&l2 INC GTHk ?&>l2
POP2 POP2
POPr POPr
JMP2r JMP2r
@draw-once ( -- ) @<draw-once> ( -- )
.tileview/x1 LDZ2 .Screen/x DEO2 .tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2 .tileview/y1 LDZ2 .Screen/y DEO2
@ -1165,11 +1172,7 @@ JMP2r
( drawing primitives ) ( drawing primitives )
@get-strw ( str* -- width* )
slen #30 SFT2
JMP2r
@draw-str-right ( text* -- ) @draw-str-right ( text* -- )
@ -1180,9 +1183,9 @@ JMP2r
LDAk #00 EQU ?&skip LDAk #00 EQU ?&skip
[ LIT2 01 -Screen/auto ] DEO [ LIT2 01 -Screen/auto ] DEO
&while &>while ( -- )
LDAk draw-chr LDAk draw-chr
INC2 LDAk ?&while INC2 LDAk ?&>while
&skip &skip
INC2 INC2
@ -1228,7 +1231,7 @@ JMP
.Screen/auto DEO .Screen/auto DEO
.Screen/addr DEO2 .Screen/addr DEO2
STH STH
#00 &l STHkr ,&paint JSR INC GTHk ?&l POP2 #00 &>l ( -- ) STHkr /paint INC GTHk ?&>l POP2
POPr POPr
JMP2r JMP2r
&single ( color addr* auto -- ) &single ( color addr* auto -- )
@ -1265,13 +1268,13 @@ JMP2r
@file-new ( -- ) @file-new ( -- )
#00 draw-filepath #00 <draw-filepath>
( | clear ) ( | clear )
;spritesheet #1300 mclr ;spritesheet #1300 mclr
( | rename to untitled.txt ) ( | rename to untitled.txt )
;filepath #0040 mclr ;filepath #0040 mclr
;untitled-txt ;filepath scpy ;untitled-txt ;filepath scpy
#00 .state/changed STZ draw-state #00 .state/changed STZ <draw-state>
!<redraw> !<redraw>
@ -1291,7 +1294,7 @@ JMP2r
;nametable .File/read DEO2 ;nametable .File/read DEO2
;filepath scap #0004 SUB2 #0004 mclr ;filepath scap #0004 SUB2 #0004 mclr
#00 .state/changed STZ draw-state #00 .state/changed STZ <draw-state>
!<redraw> !<redraw>
@ -1303,11 +1306,11 @@ JMP2r
;filepath .File/name DEO2 ;filepath .File/name DEO2
#0008 .File/length DEO2 #0008 .File/length DEO2
#0000 #0000
&loop &>loop
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2 #00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2
INC NEQk ?&loop INC NEQk ?&>loop
POP2 POP2
#00 .state/changed STZ draw-state #00 .state/changed STZ <draw-state>
!<redraw> !<redraw>
@ -1330,7 +1333,7 @@ JMP2r
#00 .state/changed STZ #00 .state/changed STZ
!draw-state !<draw-state>
@file-save-mono ( -- ) @file-save-mono ( -- )
@ -1338,13 +1341,13 @@ JMP2r
;filepath .File/name DEO2 ;filepath .File/name DEO2
#0008 .File/length DEO2 #0008 .File/length DEO2
#0000 #0000
&loop &>loop
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2 #00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2
INC NEQk ?&loop INC NEQk ?&>loop
POP2 POP2
#00 .state/changed STZ #00 .state/changed STZ
!draw-state !<draw-state>
@save-theme ( -- ) @save-theme ( -- )
@ -1395,32 +1398,32 @@ JMP2r
@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>
@ -1500,7 +1503,7 @@ JMP2r
@rol ( byte -- byte ) DUP #07 SFT SWP DUP ADD ADD JMP2r @rol ( byte -- byte ) DUP #07 SFT SWP DUP ADD ADD JMP2r
@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT ADD JMP2r @ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT ADD JMP2r
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ?&loop POP2 POP2 POP2r JMP2r @mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &>loop LDAk STH2kr STA INC2r INC2 GTH2k ?&>loop POP2 POP2 POP2r JMP2r
( (
@|assets ) @|assets )

Loading…
Cancel
Save