Browse Source

Almost ready for format

main
Devine Lu Linvega 2 years ago
parent
commit
565fd2325f
  1. 271
      src/nasu.tal

271
src/nasu.tal

@ -80,44 +80,44 @@ BRK
( >>> ) 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
( - ) 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 "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
( - ) 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
( - ) 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
( - ) 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
(
@ -242,9 +242,9 @@ BRK
.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2
.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2
( | test )
#02 .settings/tool LDZ EQU ?&zoom
#01 .settings/zoom LDZ EQU ?&zoomed
#01 .settings/tool LDZ 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>
@ -308,11 +308,11 @@ BRK
( ) [ #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
( ) [ #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
@ -322,10 +322,10 @@ 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
@ -401,14 +401,14 @@ BRK
!<draw-toolview>
@set-color ( color -- )
@<set-color> ( color -- )
.settings/color STZ
<draw-toolview>
!<draw-colorview>
@set-tool ( tool -- )
@<set-tool> ( tool -- )
.settings/tool STZ
@ -459,9 +459,9 @@ JMP2r
JMP2r
@mod-selection ( x y -- )
@<mod-selection> ( x y -- )
.settings/zoom LDZ ?mod-selection-zoom
.settings/zoom LDZ ?<mod-selection-zoom>
DUP
.selection/y2 LDZ ADD #0f AND .selection/y2 STZ
@ -484,7 +484,7 @@ JMP2r
!<redraw>
@mod-selection-zoom ( x y -- )
@?<mod-selection-zoom> ( x y -- )
( | set zoom )
.selection/zy LDZ ADD SWP
@ -497,7 +497,7 @@ JMP2r
!<draw-tileview-zoom>
@scale-selection ( x y -- )
@<scale-selection> ( x y -- )
.selection/y2 LDZ ADD #0f AND .selection/y2 STZ
.selection/x2 LDZ ADD #0f AND .selection/x2 STZ
@ -558,10 +558,11 @@ JMP2r
STH
OVR2 SWP2 get-pixel-addr
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel
( ch1 ) OVR2 OVR2 STHkr #00 <toggle-pixel>
( ch2 ) #0008 ADD2 STHr #01
( >> )
@toggle-pixel ( x* addr* color -- )
@<toggle-pixel> ( x* addr* color -- )
STH2
LDAk
@ -626,10 +627,10 @@ JMP2r
( ) ADD2 LTH2 ?{ POP2 POP2 JMP2r }
( write )
STH2 DUP2 ,&x1 STR2
[ LIT2 00 -selection/x2 ] LDZ INC #30 SFT2 #0001 SUB2 SWP2 SUB2
[ 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
( ) [ LIT2 00 -selection/x2 ] LDZ INC #30 SFT2 #0001 SUB2 SWP2 SUB2
( ) [ 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>
@ -641,7 +642,7 @@ JMP2r
( ) ADD2 LTH2 ?{ POP2 POP2 JMP2r }
( | write )
DUP2 ,&y1 STR2
[ LIT2 00 -selection/y2 ] LDZ INC #30 SFT2 #0001 SUB2 SWP2 SUB2
( ) [ LIT2 00 -selection/y2 ] LDZ INC #30 SFT2 #0001 SUB2 SWP2 SUB2
[ 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
@ -651,7 +652,7 @@ JMP2r
(
@|map )
@run ( op* -- )
@<run> ( op* -- )
,&fn STR2
.selection/y2 LDZ INC .selection/y1 LDZ
@ -676,7 +677,7 @@ JMP2r
,&t STR2
#1000
&>loop
&>loop ( -- )
#00 OVR [ LIT2 &t $2 ] ADD2 LDA2k #ffff EOR2 SWP2 STA2
INC INC GTHk ?&>loop
POP2
@ -686,17 +687,17 @@ JMP2r
@op-shiftu ( addr* -- )
DUP2k #0007 ADD2 SWP2 LDAk STH
&ch1
&>ch1 ( -- )
INC2k LDA STH
DUP2 STHr ROT ROT STA
INC2 GTH2k ?&ch1
INC2 GTH2k ?&>ch1
POP2
( cap ) STHr ROT ROT STA
#0008 ADD2 DUP2 #0007 ADD2 SWP2 LDAk STH
&ch2
&>ch2 ( -- )
INC2k LDA STH
DUP2 STHr ROT ROT STA
INC2 GTH2k ?&ch2
INC2 GTH2k ?&>ch2
POP2
( cap ) STHr ROT ROT STA
@ -705,17 +706,17 @@ JMP2r
@op-shiftd ( addr* -- )
DUP2k #0007 ADD2 LDAk STH
&ch1
&>ch1 ( -- )
DUP2 #0001 SUB2 LDA STH
DUP2 STHr ROT ROT STA
#0001 SUB2 LTH2k ?&ch1
#0001 SUB2 LTH2k ?&>ch1
POP2
( cap ) STHr ROT ROT STA
#0008 ADD2 DUP2 #0007 ADD2 LDAk STH
&ch2
&>ch2 ( -- )
DUP2 #0001 SUB2 LDA STH
DUP2 STHr ROT ROT STA
#0001 SUB2 LTH2k ?&ch2
#0001 SUB2 LTH2k ?&>ch2
POP2
( cap ) STHr ROT ROT STA
@ -725,13 +726,13 @@ JMP2r
STH2
#0800
&>loop
( | ch1 )
#00 OVR STH2kr ADD2
LDAk rol ROT ROT STA
( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2
LDAk rol ROT ROT STA
&>loop ( -- )
( 1 ) #00 OVR STH2kr ADD2
( 1 ) LDAk rol ROT ROT STA
( 2 ) #00 OVR STH2kr #0008 ADD2 ADD2
( 2 ) LDAk rol ROT ROT STA
INC GTHk ?&>loop
POP2
POP2r
@ -742,13 +743,13 @@ JMP2r
STH2
#0800
&>loop
( | ch1 )
#00 OVR STH2kr ADD2
LDAk ror ROT ROT STA
( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2
LDAk ror ROT ROT STA
&>loop ( -- )
( 1 ) #00 OVR STH2kr ADD2
( 1 ) LDAk ror ROT ROT STA
( 2 ) #00 OVR STH2kr #0008 ADD2 ADD2
( 2 ) LDAk ror ROT ROT STA
INC GTHk ?&>loop
POP2
POP2r
@ -764,8 +765,8 @@ JMP2r
@op-write ( addr* -- )
[ LIT2 &length $2 ]
DUP2 .File/length DEO2
;&buf SWP2 mcpy
( ) DUP2 .File/length DEO2
( ) ;&buf SWP2 mcpy
;&buf .File/write DEO2
JMP2r
@ -799,7 +800,7 @@ JMP2r
;spritesheet .Screen/addr DEO2
[ LIT2 f6 -Screen/auto ] DEO
#1000
&>loop
&>loop ( -- )
#81 .Screen/sprite DEO
INC GTHk ?&>loop
POP2
@ -809,7 +810,7 @@ JMP2r
#00 .selection/y1 LDZ #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.selection LDZ2 get-tile-addr ,&sprite STR2
.selection/y2 LDZ .selection/y1 LDZ SUB INC #00
&>loop-sel
&>loop-sel ( -- )
#00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2
#84 .Screen/sprite DEO
INC GTHk ?&>loop-sel
@ -823,7 +824,7 @@ JMP2r
#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
<draw-byte>
&no-label
JMP2r
@ -835,9 +836,9 @@ JMP2r
.tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2
[ LIT2 f2 -Screen/auto ] DEO
#f0 &times ( -- )
#f0 &>times ( -- )
[ LIT2 00 -Screen/sprite ] DEO
INC DUP ?&times
INC DUP ?&>times
POP
( | draw )
[ LIT2 01 -Screen/auto ] DEO
@ -898,11 +899,11 @@ JMP2r
JMP2r
( tools )
( panes )
@<draw-zoomview> ( -- )
@ -975,16 +976,16 @@ JMP2r
#03 ;<draw-chr>/color STA
.settings/ratio LDZ
!draw-byte
!<draw-byte>
@<draw-colorview> ( -- )
.colorview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
.colorview/x1 LDZ2 .Screen/x DEO2
#03 ;<draw-chr>/color STA
.System/r /get-color draw-hex
.System/g /get-color draw-hex
.System/b /get-color 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
[ LIT2 00 -Screen/auto ] DEO
@ -999,7 +1000,7 @@ JMP2r
.Screen/y DEO2
.Screen/x DEO2
#1000
&>loop
&>loop ( -- )
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2
#02 .Screen/sprite DEO
.Screen/x DEI2k INC2 INC2 ROT DEO2
@ -1016,7 +1017,7 @@ JMP2r
[ LIT2 00 -Screen/auto ] DEO
#1000
&>loop
&>loop ( -- )
#00 OVR #03 AND #30 SFT2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2
#00 OVR #32 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
;fill-icn .Screen/addr DEO2
@ -1031,7 +1032,7 @@ JMP2r
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
#03 ;<draw-chr>/color STA
( get blending ) .settings/blend LDZ draw-byte
( get blending ) .settings/blend LDZ <draw-byte>
( | y )
.blendview/x1 LDZ2 #0010 ADD2 .Screen/x DEO2
@ -1053,17 +1054,17 @@ JMP2r
.dataview/x1 LDZ2 .Screen/x DEO2
.dataview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
#03 ;<draw-chr>/color STA
.selection LDZ2 #40 SFT ADD draw-byte
.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
( ch1 ) LDA2k draw-short
( ch1 ) LDA2k <draw-short>
.Screen/x DEI2k #000c ADD2 ROT DEO2
#02 ;<draw-chr>/color STA
( ch2 ) #0008 ADD2 LDA2 draw-short
( ch2 ) #0008 ADD2 LDA2 <draw-short>
( | skip line )
.dataview/x1 LDZ2 .Screen/x DEO2
draw-lb
@ -1148,7 +1149,7 @@ JMP2r
.Screen/auto DEO
STH
#00
&>l2
&>l2 ( -- )
STHkr .Screen/sprite DEO
INC GTHk ?&>l2
POP2
@ -1181,25 +1182,25 @@ JMP2r
@draw-str ( str* -- str* )
LDAk #00 EQU ?&skip
LDAk #00 EQU ?{
[ LIT2 01 -Screen/auto ] DEO
&>while ( -- )
LDAk <draw-chr>
INC2 LDAk ?&>while
&skip
}
INC2
JMP2r
@draw-short ( short* -- )
@<draw-short> ( short* -- )
SWP draw-byte
SWP <draw-byte>
@draw-byte ( byte -- )
@<draw-byte> ( byte -- )
DUP #04 SFT draw-hex
DUP #04 SFT <draw-hex>
@draw-hex ( char -- )
@<draw-hex> ( char -- )
#0f AND DUP #09 GTH #27 MUL ADD #30 ADD
( >> )
@ -1307,7 +1308,7 @@ JMP2r
;filepath .File/name DEO2
#0008 .File/length DEO2
#0000
&>loop
&>loop ( -- )
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2
INC NEQk ?&>loop
POP2
@ -1324,13 +1325,13 @@ JMP2r
;spritesheet .File/write DEO2
( | nametable )
has-nametable #00 EQU ?&no-nametable
has-nametable #00 EQU ?{
;nametable-ext ;filepath scap #0004 mcpy
;filepath .File/name DEO2
#0300 .File/length DEO2
;nametable .File/write DEO2
;filepath scap #0004 SUB2 #0004 <mclr>
&no-nametable
}
#00 .state/changed STZ
@ -1342,7 +1343,7 @@ JMP2r
;filepath .File/name DEO2
#0008 .File/length DEO2
#0000
&>loop
&>loop ( -- )
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2
INC NEQk ?&>loop
POP2
@ -1369,7 +1370,7 @@ JMP2r
;snarf-txt .File/name DEO2
#0008 ;op-write/length STA2
;op-write run
;op-write <run>
!<redraw>
@ -1377,7 +1378,7 @@ JMP2r
;snarf-txt .File/name DEO2
#0010 ;op-write/length STA2
;op-write run
;op-write <run>
!<redraw>
@ -1385,27 +1386,27 @@ JMP2r
;snarf-txt .File/name DEO2
#0010 .File/length DEO2
;op-read run
;op-read <run>
!<redraw>
@edit-cut ( -- )
edit-copy-chr
;op-erase run
;op-erase <run>
!<redraw>
@edit-erase ( -- )
;op-erase run
;op-erase <run>
#01 .state/changed STZ <draw-state>
!<redraw>
@edit-invert ( -- )
;op-invert run
;op-invert <run>
#01 .state/changed STZ <draw-state>
!<redraw>
@ -1430,19 +1431,19 @@ JMP2r
( select )
@tool-brush ( -- ) #00 !set-tool
@tool-selector ( -- ) #01 !set-tool
@tool-zoom ( -- ) #02 !set-tool
@tool-brush ( -- ) #00 !<set-tool>
@tool-selector ( -- ) #01 !<set-tool>
@tool-zoom ( -- ) #02 !<set-tool>
@move-up ( -- ) #00ff !mod-selection
@move-down ( -- ) #0001 !mod-selection
@move-left ( -- ) #ff00 !mod-selection
@move-right ( -- ) #0100 !mod-selection
@move-up ( -- ) #00ff !<mod-selection>
@move-down ( -- ) #0001 !<mod-selection>
@move-left ( -- ) #ff00 !<mod-selection>
@move-right ( -- ) #0100 !<mod-selection>
@move-dech ( -- ) #00ff !scale-selection
@move-inch ( -- ) #0001 !scale-selection
@move-decw ( -- ) #ff00 !scale-selection
@move-incw ( -- ) #0100 !scale-selection
@move-dech ( -- ) #00ff !<scale-selection>
@move-inch ( -- ) #0001 !<scale-selection>
@move-decw ( -- ) #ff00 !<scale-selection>
@move-incw ( -- ) #0100 !<scale-selection>
@move-reset ( -- ) .selection/x1 LDZ2 .selection/x2 STZ2 !<redraw>
@ -1452,10 +1453,10 @@ JMP2r
( pick )
@pick-color1 ( -- ) #00 !set-color
@pick-color2 ( -- ) #01 !set-color
@pick-color3 ( -- ) #02 !set-color
@pick-color4 ( -- ) #03 !set-color
@pick-color1 ( -- ) #00 !<set-color>
@pick-color2 ( -- ) #01 !<set-color>
@pick-color3 ( -- ) #02 !<set-color>
@pick-color4 ( -- ) #03 !<set-color>
( generics )

Loading…
Cancel
Save