Browse Source

Progress toward format

main
Devine Lu Linvega 2 years ago
parent
commit
b3b175177e
  1. 62
      src/manifest.tal
  2. 328
      src/nasu.tal

62
src/manifest.tal

@ -6,7 +6,7 @@
;on-mouse-menu .Mouse/vector DEO2
;on-control-menu .Controller/vector DEO2
#40 draw-cursor
#40 <draw-cursor>
BRK
@ -21,12 +21,12 @@ BRK
BRK
&no-touch-cat
( when sub active )
;draw-menu/sel LDA #ff EQU ?&no-sub
;<draw-menu>/sel LDA #ff EQU ?&no-sub
( when sel changed )
.Mouse/y DEI2 #0004 SUB2 #03 SFT2 NIP #01 SUB
DUP ;draw-sub/sel LDA EQU ?&no-change
DUP ;draw-sub/sel STA
;draw-menu/sel LDA #ff draw-sub
;<draw-menu>/sel LDA #ff draw-sub
&no-change
POP
( when touch sub )
@ -37,7 +37,7 @@ BRK
BRK
&no-sub
( do not leave if menu is active )
;draw-menu/sel LDA INC ?&no-leave
;<draw-menu>/sel LDA INC ?&no-leave
.Mouse/y DEI2 #000c LTH2 ?&no-leave
menu-close
&no-leave
@ -47,12 +47,12 @@ BRK
@menu-close ( -- )
untrap
;draw-menu/sel LDA
;<draw-menu>/sel LDA
DUP #ff EQU ?&no-clear
DUP #00 draw-sub
#ff ;draw-menu/sel STA
#ff ;<draw-menu>/sel STA
<redraw-all>
draw-menu
<draw-menu>
&no-clear
POP
@ -65,7 +65,7 @@ JMP2r
POP JMP2r
&exists
( clear )
;draw-menu/sel LDA
;<draw-menu>/sel LDA
( unchanged ) EQUk ?menu-deselect
( unselected ) DUP #ff EQU ?&no-clear
DUP #00 draw-sub
@ -74,10 +74,10 @@ JMP2r
( draw )
<redraw-all>
#ff ;draw-sub/sel STA
DUP ;draw-menu/sel STA
DUP ;<draw-menu>/sel STA
#ff draw-sub
!draw-menu
!<draw-menu>
@menu-deselect ( cat cat -- )
@ -103,7 +103,7 @@ BRK
STH
#00 ,&id STR
;draw-menu/manifest LDA2
;<draw-menu>/manifest LDA2
&cat
[ LIT &id 00 ] STHkr EQU ?&end
skip-sub
@ -119,7 +119,7 @@ JMP2r
@get-sub ( sub -- sub* )
STH
;draw-menu/sel LDA get-cat
;<draw-menu>/sel LDA get-cat
LDAk STH INC2 skip-str
STHr #00
&subcat
@ -143,7 +143,7 @@ JMP2r
LIT2r 0000
,&target STR
#00 ,&id STR
;draw-menu/manifest LDA2
;<draw-menu>/manifest LDA2
&cat
[ LIT &id 00 ] [ LIT &target $1 ] EQU ?&end
INC2k get-strw #0008 ADD2 STH2 ADD2r
@ -163,7 +163,7 @@ JMP2r
LIT2r 0000
,&target STR2
#00 ,&id STR
;draw-menu/manifest LDA2
;<draw-menu>/manifest LDA2
&cat
INC2k get-strw #0008 ADD2 STH2r ADD2
DUP2 [ LIT2 &target $2 ] LTH2 ?&continue
@ -184,7 +184,7 @@ JMP2r
ORAk ?&no-null JMP2r &no-null
( not null )
,&mk STR2
;draw-menu/manifest LDA2
;<draw-menu>/manifest LDA2
&cat
LDAk STH INC2 skip-str
STHr #00
@ -218,15 +218,15 @@ JMP2r
JMP2r
@draw-menu ( mask -- )
@<draw-menu> ( mask -- )
#0010 .Screen/x DEO2
#0004 .Screen/y DEO2
#00 ,&id STR
[ LIT2 &manifest =manifest ]
&cat
( theme ) #0b03 [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA
INC2k draw-str POP2 #20 draw-chr
( theme ) #0b03 [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;<draw-chr>/color STA
INC2k draw-str POP2 #20 <draw-chr>
skip-sub
,&id LDR INC ,&id STR
LDAk ?&cat
@ -237,13 +237,13 @@ JMP2r
@draw-sub ( cat mask -- )
,&mask STR POP
;draw-menu/sel LDA get-cat
;<draw-menu>/sel LDA get-cat
ORAk #00 EQU ?&skip
;draw-menu/sel LDA get-catx ,&anchor STR2
;<draw-menu>/sel LDA get-catx ,&anchor STR2
LDAk STH INC2 skip-str
STHr #00
&subcat
( theme ) STHk #070b STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA
( theme ) STHk #070b STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;<draw-chr>/color STA
[ LIT2 &anchor $2 ] .Screen/x DEO2
#00 OVR INC #30 SFT2 #0004 ADD2 .Screen/y DEO2
SWP2 draw-label SWP2
@ -260,8 +260,8 @@ JMP2r
.Screen/y DEI2
.Screen/auto DEI
#f2 .Screen/auto DEO
;fill-icn ;blank-icn ;draw-chr/color LDA #00 EQU [ JMP SWP2 POP2 ] .Screen/addr DEO2
;draw-chr/color LDA .Screen/sprite DEO
;fill-icn ;blank-icn ;<draw-chr>/color LDA #00 EQU [ JMP SWP2 POP2 ] .Screen/addr DEO2
;<draw-chr>/color LDA .Screen/sprite DEO
.Screen/auto DEO
.Screen/y DEO2
( mod )
@ -274,7 +274,7 @@ JMP2r
@get-modkey-str ( mod key -- str* )
;&buf #0008 mclr
;&buf #0008 <mclr>
( mod )
SWP STH
#0800
@ -310,7 +310,7 @@ JMP2r
#00 .Screen/auto DEO
;fill-icn .Screen/addr DEO2
#40 draw-cursor
#40 <draw-cursor>
.Mouse/x DEI2 DUP2 .cursor/x STZ2 .Screen/x DEO2
.Mouse/y DEI2 DUP2 .cursor/y STZ2 .Screen/y DEO2
.Screen/addr DEO2
@ -318,7 +318,7 @@ JMP2r
JMP2r
@draw-cursor ( color -- )
@<draw-cursor> ( color -- )
.cursor/x LDZ2 .Screen/x DEO2
.cursor/y LDZ2 .Screen/y DEO2
@ -353,7 +353,7 @@ JMP2r
( frame )
.Screen/width DEI2 #01 SFT2 #0070 SUB2 STH2k .Screen/x DEO2
.Screen/height DEI2 #01 SFT2 #0010 SUB2 STH2k .Screen/y DEO2
#1c06 ;frame1-chr draw-frame
#1c06 ;frame1-chr <draw-frame>
( fill )
STH2r .Screen/y DEO2
STH2r .Screen/x DEO2
@ -365,7 +365,7 @@ JMP2r
#03 #8526 ;appicon draw-fill-fast
.Screen/x DEI2k #0020 ADD2 ROT DEO2
.Screen/y DEI2k #001c SUB2 ROT DEO2
#0a ;draw-chr/color STA
#0a ;<draw-chr>/color STA
;meta/body ( .. )
@draw-txt ( txt* -- )
@ -374,7 +374,7 @@ JMP2r
.Screen/x DEI2 ,&anchor STR2
&w
LDAk #20 LTH ?&no-char
LDAk draw-chr
LDAk <draw-chr>
&no-char
LDAk #0a NEQ ?&no-lb
[ LIT2 &anchor $2 ] .Screen/x DEO2
@ -399,7 +399,7 @@ JMP2r
.Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2
#22 #0091 draw-fill-fast/blank
<redraw-all>
!draw-menu
!<draw-menu>
(
@|theme )
@ -427,7 +427,7 @@ JMP2r
@slen ( str* -- len* ) DUP2 ,scap JSR SWP2 SUB2 JMP2r
@scat ( src* dst* -- ) ,scap JSR
@scpy ( src* dst* -- ) STH2 &w LDAk STH2kr STA INC2r INC2 LDAk ,&w JCN POP2 #00 STH2r STA JMP2r
@mclr ( src* len* -- ) OVR2 ADD2 SWP2 &l STH2k #00 STH2r STA INC2 GTH2k ,&l JCN POP2 POP2 JMP2r
@<mclr> ( src* len* -- ) OVR2 ADD2 SWP2 &l STH2k #00 STH2r STA INC2 GTH2k ,&l JCN POP2 POP2 JMP2r
@exit ( -- )

328
src/nasu.tal

@ -46,7 +46,7 @@
#32 .settings/ratio STZ
#01 .settings/tool STZ
#00 .settings/brush STZ
set-focus
<set-focus>
( | place )
.Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 SUB2 #001b .frame/width LDZ2 .frame/height LDZ2 ;frame <set-size>
.frame/x1 LDZ2 #0001 SUB2 .frame/y1 LDZ2 #0038 ADD2 #007f DUP2 ;tileview <set-size>
@ -62,7 +62,7 @@
<draw-once>
( | begin )
file-new
draw-menu
<draw-menu>
untrap
BRK
@ -77,47 +77,47 @@ BRK
@manifest
09 "Nasu $1
00 00 =about/toggle "About $1
01 "n =file-new "New $1
01 "r =trap "Rename $1
01 "o =file-open "Open $1
00 00 =file-open-mono "OpenMono $1
01 "s =file-save "Save $1
00 00 =file-save-mono "SaveMono $1
01 "p =save-theme "SaveTheme $1
01 "q =exit "Exit $1
09 "Edit $1
01 "c =edit-copy-chr "Copy $1
05 "C =edit-copy-icn "CopyMono $1
01 "v =edit-paste "Paste $1
01 "x =edit-cut "Cut $1
00 08 =edit-erase "Erase $1
00 "i =edit-invert "Invert $1
00 "c =edit-colorize "Colorize $1
00 00 =edit-flipx "Horizontal $1
00 00 =edit-flipy "Veritcal $1
01 "View $1
02 00 =toggle-zoom "Zoom $1
0a "Move $1
10 00 =move-up "Up $1
20 00 =move-down "Down $1
40 00 =move-left "Left $1
80 00 =move-right "Right $1
14 00 =move-dech "Decr.H $1
24 00 =move-inch "Incr.H $1
44 00 =move-decw "Decr.W $1
84 00 =move-incw "Incr.W $1
00 1b =move-reset "Reset $1
01 "a =select-all "SelectAll $1
07 "Tool $1
00 "q =tool-brush "Brush $1
00 "w =tool-selector "Selector $1
00 "e =tool-zoom "Zoom $1
00 "1 =pick-color1 "Background $1
00 "2 =pick-color2 "ColorA $1
00 "3 =pick-color3 "ColorB $1
00 "4 =pick-color4 "ColorC $1
( >>> ) 09 "Nasu $1
( - ) 00 00 =about/toggle "About $1
( - ) 01 "n =file-new "New $1
( - ) 01 "r =trap "Rename $1
( - ) 01 "o =file-open "Open $1
( - ) 00 00 =file-open-mono "OpenMono $1
( - ) 01 "s =file-save "Save $1
( - ) 00 00 =file-save-mono "SaveMono $1
( - ) 01 "p =save-theme "SaveTheme $1
( - ) 01 "q =exit "Exit $1
( >>> ) 09 "Edit $1
( - ) 01 "c =edit-copy-chr "Copy $1
( - ) 05 "C =edit-copy-icn "CopyMono $1
( - ) 01 "v =edit-paste "Paste $1
( - ) 01 "x =edit-cut "Cut $1
( - ) 00 08 =edit-erase "Erase $1
( - ) 00 "i =edit-invert "Invert $1
( - ) 00 "c =edit-colorize "Colorize $1
( - ) 00 00 =edit-flipx "Horizontal $1
( - ) 00 00 =edit-flipy "Veritcal $1
( >>> ) 01 "View $1
( - ) 02 00 =<toggle-zoom> "Zoom $1
( >>> ) 0a "Move $1
( - ) 10 00 =move-up "Up $1
( - ) 20 00 =move-down "Down $1
( - ) 40 00 =move-left "Left $1
( - ) 80 00 =move-right "Right $1
( - ) 14 00 =move-dech "Decr.H $1
( - ) 24 00 =move-inch "Incr.H $1
( - ) 44 00 =move-decw "Decr.W $1
( - ) 84 00 =move-incw "Incr.W $1
( - ) 00 1b =move-reset "Reset $1
( - ) 01 "a =select-all "SelectAll $1
( >>> ) 07 "Tool $1
( - ) 00 "q =tool-brush "Brush $1
( - ) 00 "w =tool-selector "Selector $1
( - ) 00 "e =tool-zoom "Zoom $1
( - ) 00 "1 =pick-color1 "Background $1
( - ) 00 "2 =pick-color2 "ColorA $1
( - ) 00 "3 =pick-color3 "ColorB $1
( - ) 00 "4 =pick-color4 "ColorC $1
$1
(
@ -139,7 +139,7 @@ JMP2r
;on-button-trap .Controller/vector DEO2
;on-mouse-trap .Mouse/vector DEO2
( | clear cursor )
#40 draw-cursor
#40 <draw-cursor>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
JMP2r
@ -150,7 +150,7 @@ JMP2r
( | start )
[ LIT &listening $1 ] ?&no-start
#01 ,&listening STR
;filepath #0040 mclr
;filepath #0040 <mclr>
&no-start
( | end )
.Console/read DEI
@ -176,7 +176,7 @@ BRK
DUP ?&no-null POP JMP2r &no-null
[ #08 ] NEQk NIP ?&no-pop ;filepath spop POP JMP2r &no-pop
[ #0a ] NEQk NIP ?&no-load file-open &no-load
[ #7f ] NEQk NIP ?&no-delete ;filepath #0040 mclr POP JMP2r &no-delete
[ #7f ] NEQk NIP ?&no-delete ;filepath #0040 <mclr> POP JMP2r &no-delete
[ #20 ] GTHk NIP ?&no-special untrap POP JMP2r &no-special
;filepath slen NIP #3f EQU ?&no-push
DUP ;filepath sput
@ -188,7 +188,7 @@ JMP2r
@on-mouse-trap ( -> )
( | release trap on touch )
.Mouse/state DEI ?&release BRK &release
.Mouse/state DEI ?{ BRK }
untrap
@ -223,7 +223,7 @@ BRK
update-cursor
[ LIT2 01 -Screen/auto ] DEO
.Mouse/state DEI #00 EQU ?&no-touch
.Mouse/state DEI #00 EQU ?{
.Mouse/x DEI2 .Mouse/y DEI2 .tileview within-rect ?on-touch-tileview
.Mouse/x DEI2 .Mouse/y DEI2 .nametableview within-rect ?on-touch-nametable
.Mouse/x DEI2 .Mouse/y DEI2 .toolview within-rect ?on-touch-toolview
@ -231,7 +231,7 @@ BRK
.Mouse/x DEI2 .Mouse/y DEI2 .colorview within-rect ?on-touch-colorview
.Mouse/x DEI2 .Mouse/y DEI2 .preview within-rect ?on-touch-preview
.Mouse/x DEI2 .Mouse/y DEI2 .zoomview within-rect ?on-touch-zoomview
&no-touch
}
( | release-record )
#0000 .Mouse/state DEO .cursor/last STZ
@ -242,12 +242,12 @@ BRK
.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2
.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2
( | test )
.settings/tool LDZ #02 EQU ?&zoom
.settings/zoom LDZ #01 EQU ?&zoomed
.settings/tool LDZ #01 EQU ?&select
#02 .settings/tool LDZ EQU ?&zoom
#01 .settings/zoom LDZ EQU ?&zoomed
#01 .settings/tool LDZ EQU ?&select
( | paint )
.settings/color LDZ .Mouse/state DEI #01 EQU MUL
put-pixel
<put-pixel>
#01 .state/changed STZ <draw-state>
<redraw>
@ -257,8 +257,8 @@ BRK
#33 SFT2 NIP STH
#33 SFT2 NIP STHr
set-selection-zoom
toggle-zoom
<set-selection-zoom>
<toggle-zoom>
<redraw>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
@ -268,7 +268,7 @@ BRK
SWP2 #03 SFT2 #00 .selection/zx 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>
<redraw>
@ -279,10 +279,10 @@ BRK
#03 SFT2 NIP STH
#03 SFT2 NIP STH SWPr
.Mouse/state DEI DUP .cursor/last LDZ
ORAk #00 EQU ?&end
DUP2 #0100 NEQ2 ?&no-down STH2kr set-selection-from &no-down
DUP2 #0101 NEQ2 ?&no-up STH2kr set-selection-to &no-up
&end
ORAk #00 EQU ?{
DUP2 #0100 NEQ2 ?{ STH2kr <set-selection-from> }
DUP2 #0101 NEQ2 ?{ STH2kr <set-selection-to> }
}
POP2 POP2r
.cursor/last STZ
@ -291,8 +291,8 @@ BRK
@on-touch-nametable ( -> )
( | id )
.Mouse/y DEI2 .nametableview/y LDZ2 SUB2 #43 SFT2
.Mouse/x DEI2 .nametableview/x LDZ2 SUB2 #03 SFT2 ADD2
( ) .Mouse/y DEI2 .nametableview/y LDZ2 SUB2 #43 SFT2
( ) .Mouse/x DEI2 .nametableview/x LDZ2 SUB2 #03 SFT2 ADD2
#0003 MUL2 ;nametable ADD2 STH2
.settings/focus LDZ2 ;spritesheet SUB2 STH2kr STA2
.settings/blend LDZ INC2r INC2r STH2r STA
@ -305,15 +305,15 @@ BRK
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
.Mouse/x DEI2 .toolview/x1 LDZ2 SUB2 #03 SFT2 NIP
[ #20 ] NEQk NIP ?&no-save file-save POP BRK &no-save
[ #1e ] NEQk NIP ?&no-load file-open POP BRK &no-load
[ #1d ] NEQk NIP ?&no-name file-new POP BRK &no-name
[ #04 ] NEQk NIP ?&no-tool0 #00 set-tool POP BRK &no-tool0
[ #05 ] NEQk NIP ?&no-tool1 #01 set-tool POP BRK &no-tool1
[ #06 ] NEQk NIP ?&no-tool2 #02 set-tool &no-tool2
INCk .settings/color LDZ NEQ ?&no-eraser #00 set-color POP BRK &no-eraser
[ #02 ] GTHk NIP ?&no-color INCk set-color POP BRK &no-color
[ #08 ] LTHk NIP ?&no-rename trap POP BRK &no-rename
( ) [ #20 ] NEQk NIP ?&no-save file-save POP BRK &no-save
( ) [ #1e ] NEQk NIP ?&no-load file-open POP BRK &no-load
( ) [ #1d ] NEQk NIP ?&no-name file-new POP BRK &no-name
( ) [ #04 ] NEQk NIP ?&no-tool0 #00 set-tool POP BRK &no-tool0
( ) [ #05 ] NEQk NIP ?&no-tool1 #01 set-tool POP BRK &no-tool1
( ) [ #06 ] NEQk NIP ?&no-tool2 #02 set-tool &no-tool2
( ) INCk .settings/color LDZ NEQ ?&no-eraser #00 set-color POP BRK &no-eraser
( ) [ #02 ] GTHk NIP ?&no-color INCk set-color POP BRK &no-color
( ) [ #08 ] LTHk NIP ?&no-rename trap POP BRK &no-rename
POP
BRK
@ -322,19 +322,19 @@ BRK
.Mouse/y DEI2 .zoomview/y1 LDZ2 SUB2 #0020 LTH2 ?&no-mod
.Mouse/x DEI2 .zoomview/x1 LDZ2 SUB2 #03 SFT2 NIP
DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-su ;op-shiftu run &no-su
DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-sd ;op-shiftd run &no-sd
DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-sr ;op-shiftr run &no-sr
DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-shiftleft ;op-shiftl run &no-shiftleft
( ) DUP #00 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-su ;op-shiftu run &no-su
( ) DUP #00 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-sd ;op-shiftd run &no-sd
( ) DUP #01 EQU .Mouse/state DEI #01 EQU #0101 NEQ2 ?&no-sr ;op-shiftr run &no-sr
( ) DUP #01 EQU .Mouse/state DEI #01 GTH #0101 NEQ2 ?&no-shiftleft ;op-shiftl run &no-shiftleft
POP
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
!&finish
&no-mod
.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
( ) .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
<put-pixel>
&finish
#01 .state/changed STZ <draw-state>
<redraw>
@ -354,9 +354,9 @@ BRK
@on-touch-colorview ( -> )
.Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #03 SFT2 NIP
[ #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
( ) [ #00 ] NEQk NIP ?{ .System/r STHk /set-color STHr /set-nibble }
( ) [ #01 ] NEQk NIP ?{ .System/g STHk /set-color STHr /set-nibble }
( ) [ #02 ] NEQk NIP ?{ .System/b STHk /set-color STHr /set-nibble }
POP
<redraw>
@ -376,13 +376,13 @@ BRK
@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
( ) .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 DUP .settings/blend STHk LDZ #b0 AND ADD STHr STZ !&end &no-set
( | buttons )
#03 AND
[ #02 NEQk NIP ] ?&no-ver .settings/blend STHk LDZ #20 EOR STHr STZ &no-ver
[ #03 NEQk NIP ] ?&no-hor .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor
( ) [ #02 NEQk NIP ] ?{ .settings/blend STHk LDZ #20 EOR STHr STZ }
( ) [ #03 NEQk NIP ] ?{ .settings/blend STHk LDZ #10 EOR STHr STZ }
&end
POP
<draw-blendview>
@ -394,7 +394,7 @@ BRK
(
@|helpers )
@toggle-zoom ( -- )
@<toggle-zoom> ( -- )
.settings/zoom LDZk #00 EQU SWP STZ
<draw-tileview>
@ -416,36 +416,36 @@ BRK
@clamp-selection ( -- )
.selection/x1 LDZ #0f STHk LTH ?&ok-limitx1 STHkr .selection/x1 STZ &ok-limitx1 POPr
.selection/y1 LDZ #0f STHk LTH ?&ok-limity1 STHkr .selection/y1 STZ &ok-limity1 POPr
.selection/x2 LDZ #0f STHk LTH ?&ok-limitx2 STHkr .selection/x2 STZ &ok-limitx2 POPr
.selection/y2 LDZ #0f STHk LTH ?&ok-limity2 STHkr .selection/y2 STZ &ok-limity2 POPr
( ) .selection/x1 LDZ #0f STHk LTH ?&ok-limitx1 STHkr .selection/x1 STZ &ok-limitx1 POPr
( ) .selection/y1 LDZ #0f STHk LTH ?&ok-limity1 STHkr .selection/y1 STZ &ok-limity1 POPr
( ) .selection/x2 LDZ #0f STHk LTH ?&ok-limitx2 STHkr .selection/x2 STZ &ok-limitx2 POPr
( ) .selection/y2 LDZ #0f STHk LTH ?&ok-limity2 STHkr .selection/y2 STZ &ok-limity2 POPr
( | invert )
.selection/x2 LDZ .selection/x1 LDZ STHk GTH ?&ok-flipx STHkr .selection/x2 STZ &ok-flipx POPr
.selection/y2 LDZ .selection/y1 LDZ STHk GTH ?&ok-flipy STHkr .selection/y2 STZ &ok-flipy POPr
( ) .selection/x2 LDZ .selection/x1 LDZ STHk GTH ?&ok-flipx STHkr .selection/x2 STZ &ok-flipx POPr
( ) .selection/y2 LDZ .selection/y1 LDZ STHk GTH ?&ok-flipy STHkr .selection/y2 STZ &ok-flipy POPr
JMP2r
@set-selection-zoom ( x y -- )
@<set-selection-zoom> ( x y -- )
#7f AND .selection/zy STZ
#7f AND .selection/zx STZ
JMP2r
@set-selection-from ( x y -- )
@<set-selection-from> ( x y -- )
#0f AND
DUP .selection/y1 STZ
.selection/y2 STZ
( ) DUP .selection/y1 STZ
( ) .selection/y2 STZ
#0f AND
DUP .selection/x1 STZ
.selection/x2 STZ
set-focus
( ) DUP .selection/x1 STZ
( ) .selection/x2 STZ
<set-focus>
!<redraw>
@set-selection-to ( x y -- )
@<set-selection-to> ( x y -- )
.selection/y2 STZ
.selection/x2 STZ
@ -453,7 +453,7 @@ JMP2r
!<redraw>
@set-focus ( -- )
@<set-focus> ( -- )
.selection LDZ2 get-tile-addr .settings/focus STZ2
@ -477,10 +477,10 @@ JMP2r
.selection/y1 LDZ .selection/y2 STZ
&no-y
.selection/x1 LDZ #30 SFT .selection/y1 LDZ #30 SFT set-selection-zoom
.selection/x1 LDZ #30 SFT .selection/y1 LDZ #30 SFT <set-selection-zoom>
( | focus )
set-focus
<set-focus>
!<redraw>
@ -489,11 +489,11 @@ JMP2r
( | set zoom )
.selection/zy LDZ ADD SWP
.selection/zx LDZ ADD SWP
set-selection-zoom
<set-selection-zoom>
( | set from )
.selection/zx LDZ #03 SFT
.selection/zy LDZ #03 SFT
set-selection-from
<set-selection-from>
!<draw-tileview-zoom>
@ -503,14 +503,14 @@ JMP2r
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ
( | clamp )
.selection/x2 LDZ .selection/x1 LDZ GTH ?&no-x
.selection/x2 LDZ .selection/x1 LDZ GTH ?{
.selection/x1 LDZ .selection/x2 STZ
&no-x
.selection/y2 LDZ .selection/y1 LDZ GTH ?&no-y
}
.selection/y2 LDZ .selection/y1 LDZ GTH ?{
.selection/y1 LDZ .selection/y2 STZ
&no-y
}
( | focus )
set-focus
<set-focus>
!<redraw>
@ -530,13 +530,13 @@ 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
( ) 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
( ) [ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
( ) #07 SWP SUB SFT #01 AND
( ) DUP ADD
ADD
JMP2r
@ -554,7 +554,7 @@ JMP2r
JMP2r
@put-pixel ( x* y* color -- )
@<put-pixel> ( x* y* color -- )
STH
OVR2 SWP2 get-pixel-addr
@ -580,10 +580,10 @@ JMP2r
@has-nametable ( -- bool )
;nametable STH2k #0300 ADD2 STH2r
&>loop
LDAk #00 EQU ?&continue
&>loop ( -- )
LDAk #00 EQU ?{
POP2 POP2 #01 JMP2r
&continue
}
INC2 GTH2k ?&>loop
POP2 POP2
#00
@ -616,7 +616,7 @@ JMP2r
JMP2r
@filter-colorize ( x* y* -- )
OVR2 OVR2 get-pixel INC #03 AND !put-pixel
OVR2 OVR2 get-pixel INC #03 AND !<put-pixel>
@filter-flipx ( x* y* -- )
( | ignore second half )
@ -630,8 +630,8 @@ JMP2r
[ LIT2 00 -selection/x1 ] LDZ #30 SFT2 ADD2 ,&x2 STR2
[ LIT2 &x1 $2 ] STH2kr get-pixel ,&c1 STR
[ LIT2 &x2 $2 ] STH2kr get-pixel ,&c2 STR
,&x2 LDR2 STH2kr [ LIT &c1 $1 ] put-pixel
,&x1 LDR2 STH2r [ LIT &c2 $1 ] !put-pixel
,&x2 LDR2 STH2kr [ LIT &c1 $1 ] <put-pixel>
,&x1 LDR2 STH2r [ LIT &c2 $1 ] !<put-pixel>
@filter-flipy ( x* y* -- )
( | ignore second half )
@ -645,8 +645,8 @@ JMP2r
[ LIT2 00 -selection/y1 ] LDZ #30 SFT2 ADD2 ,&y2 STR2
DUP2 [ LIT2 &y1 $2 ] get-pixel ,&c1 STR
DUP2 [ LIT2 &y2 $2 ] get-pixel ,&c2 STR
DUP2 ,&y2 LDR2 [ LIT &c1 $1 ] put-pixel
,&y1 LDR2 [ LIT &c2 $1 ] !put-pixel
DUP2 ,&y2 LDR2 [ LIT &c1 $1 ] <put-pixel>
,&y1 LDR2 [ LIT &c2 $1 ] !<put-pixel>
(
@|map )
@ -670,7 +670,7 @@ JMP2r
#0010
!mclr
!<mclr>
@op-invert ( addr* -- )
@ -820,7 +820,7 @@ JMP2r
.selection/y2 LDZ #0f EQU ?&no-label
#00 .selection/x1 LDZ #30 SFT2 .tileview/x1 LDZ2 ADD2 .Screen/x DEO2
#00 .selection/y2 LDZ INC #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
#04 ;draw-chr/color STA
#04 ;<draw-chr>/color STA
.selection/x2 LDZ .selection/x1 LDZ SUB INC #40 SFT
.selection/y2 LDZ .selection/y1 LDZ SUB INC ORA
draw-byte
@ -858,16 +858,16 @@ JMP2r
POP2
( | guide hor )
#0007 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0a line-hor-dashed
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0a <line-hor-dashed>
.selection/zy LDZ #07 AND #00 EQU ?&skip-hor
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0040 ADD2 #0a line-hor-dashed
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0040 ADD2 #0a <line-hor-dashed>
&skip-hor
POP2r
( | guide ver )
#0007 .selection/zx LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 #0a line-ver-dashed
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 #0a <line-ver-dashed>
.selection/zx LDZ #07 AND #00 EQU ?&skip-ver
.tileview/x1 LDZ2 STH2kr ADD2 #0040 ADD2 .tileview/y1 LDZ2 #0a line-ver-dashed
.tileview/x1 LDZ2 STH2kr ADD2 #0040 ADD2 .tileview/y1 LDZ2 #0a <line-ver-dashed>
&skip-ver
POP2r
@ -926,7 +926,7 @@ JMP2r
( | frame )
.zoomview/x1 LDZ2 .Screen/x DEO2
.zoomview/y1 LDZ2 .Screen/y DEO2
#0404 ;frame2-chr draw-frame
#0404 ;frame2-chr <draw-frame>
( | label )
[ LIT2 01 -Screen/auto ] DEO
@ -972,7 +972,7 @@ JMP2r
( | label )
.preview/x1 LDZ2 .Screen/x DEO2
.preview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
#03 ;draw-chr/color STA
#03 ;<draw-chr>/color STA
.settings/ratio LDZ
!draw-byte
@ -981,7 +981,7 @@ JMP2r
.colorview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
.colorview/x1 LDZ2 .Screen/x DEO2
#03 ;draw-chr/color STA
#03 ;<draw-chr>/color STA
.System/r /get-color draw-hex
.System/g /get-color draw-hex
.System/b /get-color draw-hex
@ -1030,7 +1030,7 @@ JMP2r
( | label )
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
#03 ;draw-chr/color STA
#03 ;<draw-chr>/color STA
( get blending ) .settings/blend LDZ draw-byte
( | y )
@ -1052,17 +1052,17 @@ JMP2r
( | position )
.dataview/x1 LDZ2 .Screen/x DEO2
.dataview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
#03 ;draw-chr/color STA
#03 ;<draw-chr>/color STA
.selection LDZ2 #40 SFT ADD draw-byte
.dataview/y1 LDZ2 .Screen/y DEO2
#0400
&>loop
.dataview/x1 LDZ2 .Screen/x DEO2
#00 OVR DUP ADD .settings/focus LDZ2 ADD2
#01 ;draw-chr/color STA
#01 ;<draw-chr>/color STA
( ch1 ) LDA2k draw-short
.Screen/x DEI2k #000c ADD2 ROT DEO2
#02 ;draw-chr/color STA
#02 ;<draw-chr>/color STA
( ch2 ) #0008 ADD2 LDA2 draw-short
( | skip line )
.dataview/x1 LDZ2 .Screen/x DEO2
@ -1120,7 +1120,7 @@ JMP2r
( | clear )
DUP #00 EQU ?<clear-filepath>
;draw-chr/color STA
;<draw-chr>/color STA
;filepath
( | scroll )
DUP2 slen #0013 GTH2 #00 SWP
@ -1160,11 +1160,11 @@ JMP2r
.tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2
#1010 ;frame2-chr draw-frame
#1010 ;frame2-chr <draw-frame>
.nametableview/x LDZ2 .Screen/x DEO2
.nametableview/y LDZ2 .Screen/y DEO2
#1010 ;frame2-chr draw-frame
#1010 ;frame2-chr <draw-frame>
[ LIT2 01 -Screen/auto ] DEO
@ -1184,7 +1184,7 @@ JMP2r
LDAk #00 EQU ?&skip
[ LIT2 01 -Screen/auto ] DEO
&>while ( -- )
LDAk draw-chr
LDAk <draw-chr>
INC2 LDAk ?&>while
&skip
INC2
@ -1202,15 +1202,16 @@ JMP2r
@draw-hex ( char -- )
#0f AND DUP #09 GTH #27 MUL ADD #30 ADD
( >> )
@draw-chr ( char -- )
@<draw-chr> ( char -- )
#20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2
[ LIT &color 03 ] .Screen/sprite DEO
JMP2r
@draw-frame ( w h chr* -- )
@<draw-frame> ( w h chr* -- )
STH2 ,&h STR ,&w STR
.Screen/x DEI2 DUP2 #0008 SUB2 .Screen/x DEO2
@ -1241,7 +1242,7 @@ JMP
[ LIT &color 85 ] SWP ORA .Screen/sprite DEO
JMP2r
@line-hor-dashed ( x* y* color -- )
@<line-hor-dashed> ( x* y* color -- )
STH .Screen/y DEO2 .Screen/x DEO2
;&sprite .Screen/addr DEO2
@ -1252,7 +1253,7 @@ JMP
JMP2r
&sprite aa00 0000 0000 0000
@line-ver-dashed ( x* y* color -- )
@<line-ver-dashed> ( x* y* color -- )
STH .Screen/y DEO2 .Screen/x DEO2
;&sprite .Screen/addr DEO2
@ -1270,9 +1271,9 @@ JMP2r
#00 <draw-filepath>
( | clear )
;spritesheet #1300 mclr
;spritesheet #1300 <mclr>
( | rename to untitled.txt )
;filepath #0040 mclr
;filepath #0040 <mclr>
;untitled-txt ;filepath scpy
#00 .state/changed STZ <draw-state>
@ -1281,7 +1282,7 @@ JMP2r
@file-open ( -- )
;filepath is-mono ?file-open-mono
( | clear )
;spritesheet #1300 mclr
;spritesheet #1300 <mclr>
load-theme
( | spritesheet )
;filepath .File/name DEO2
@ -1292,7 +1293,7 @@ JMP2r
;filepath .File/name DEO2
#0300 .File/length DEO2
;nametable .File/read DEO2
;filepath scap #0004 SUB2 #0004 mclr
;filepath scap #0004 SUB2 #0004 <mclr>
#00 .state/changed STZ <draw-state>
@ -1301,7 +1302,7 @@ JMP2r
@file-open-mono ( -- )
( | clear )
;spritesheet #1300 mclr
;spritesheet #1300 <mclr>
( | spritesheet )
;filepath .File/name DEO2
#0008 .File/length DEO2
@ -1328,7 +1329,7 @@ JMP2r
;filepath .File/name DEO2
#0300 .File/length DEO2
;nametable .File/write DEO2
;filepath scap #0004 SUB2 #0004 mclr
;filepath scap #0004 SUB2 #0004 <mclr>
&no-nametable
#00 .state/changed STZ
@ -1427,15 +1428,6 @@ JMP2r
!<redraw>
@<phex> ( short* -- )
SWP <phex>/b
&b ( -- )
DUP #04 SFT <phex>/c
&c ( -- )
#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
JMP2r
( select )
@tool-brush ( -- ) #00 !set-tool
@ -1455,8 +1447,8 @@ JMP2r
@move-reset ( -- ) .selection/x1 LDZ2 .selection/x2 STZ2 !<redraw>
@select-all ( -- )
#0000 set-selection-from
#0f0f !set-selection-to
#0000 <set-selection-from>
#0f0f !<set-selection-to>
( pick )
@ -1503,7 +1495,15 @@ JMP2r
@rol ( byte -- byte ) DUP #07 SFT SWP DUP ADD 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
@<phex> ( short* -- )
SWP <phex>/b
&b ( -- )
DUP #04 SFT <phex>/c
&c ( -- )
#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
JMP2r
(
@|assets )

Loading…
Cancel
Save