|
|
|
|
@ -1,17 +1,17 @@
|
|
|
|
|
( Nasu : pixel editor ) |
|
|
|
|
|
|
|
|
|
|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 |
|
|
|
|
|10 @Console &vector $2 &read $1 &pad $5 &write $1 |
|
|
|
|
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
|
|
|
|80 @Controller &vector $2 &button $1 &key $1 |
|
|
|
|
|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &chord $1 |
|
|
|
|
|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |
|
|
|
|
|00 @System/vector $2 &pad $6 &r $2 &g $2 &b $2 |
|
|
|
|
|10 @Console/vector $2 &read $1 &pad $5 &write $1 |
|
|
|
|
|20 @Screen/vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
|
|
|
|80 @Controller/vector $2 &button $1 &key $1 |
|
|
|
|
|90 @Mouse/vector $2 &x $2 &y $2 &state $1 &chord $1 |
|
|
|
|
|a0 @File/vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |
|
|
|
|
|
|
|
|
|
|000 |
|
|
|
|
|
|
|
|
|
@state &timer $1 &changed $1 |
|
|
|
|
@settings &depth $1 &color $1 &blend $1 &ratio $1 &tool $1 &focus $2 &zoom $1 &brush $1 &dir $1 |
|
|
|
|
@cursor &x $2 &y $2 &last $1 |
|
|
|
|
@state/timer $1 &changed $1 |
|
|
|
|
@settings/depth $1 &color $1 &blend $1 &ratio $1 &tool $1 &focus $2 &zoom $1 &brush $1 &dir $1 |
|
|
|
|
@cursor/x $2 &y $2 &last $1 |
|
|
|
|
@selection &x1 $1 &y1 $1 &x2 $1 &y2 $1 &zx $1 &zy $1 &a $1 |
|
|
|
|
@frame &x1 $2 &y1 $2 &x2 $2 &y2 $2 &width $2 &height $2 |
|
|
|
|
@filepath $40 |
|
|
|
|
@ -70,11 +70,11 @@
|
|
|
|
|
"Nasu 0a |
|
|
|
|
( details ) "A 20 "Sprite 20 "Editor 0a |
|
|
|
|
( author ) "By 20 "Hundred 20 "Rabbits 0a |
|
|
|
|
( date ) "16 20 "Apr 20 "2025 00 01 |
|
|
|
|
( date ) "11 20 "Mar 20 "2026 00 01 |
|
|
|
|
( icon ) 83 =appicon |
|
|
|
|
|
|
|
|
|
@manifest ( ... ) |
|
|
|
|
( >>> ) 09 "Nasu $1 |
|
|
|
|
( > ) 09 "Nasu $1 |
|
|
|
|
( - ) 00 00 =about/toggle "About $1 |
|
|
|
|
( - ) 01 "n =file-new "New $1 |
|
|
|
|
( - ) 01 "r =trap "Rename $1 |
|
|
|
|
@ -84,7 +84,7 @@
|
|
|
|
|
( - ) 00 00 =file-save-mono "SaveMono $1 |
|
|
|
|
( - ) 01 "p =save-theme "SaveTheme $1 |
|
|
|
|
( - ) 01 "q =exit "Exit $1 |
|
|
|
|
( >>> ) 0a "Edit $1 |
|
|
|
|
( > ) 0a "Edit $1 |
|
|
|
|
( - ) 01 "c =edit-copy-chr "Copy $1 |
|
|
|
|
( - ) 05 "C =edit-copy-icn "CopyMono $1 |
|
|
|
|
( - ) 01 "v =edit-paste "Paste $1 |
|
|
|
|
@ -95,10 +95,10 @@
|
|
|
|
|
( - ) 00 "c =edit-colorize "Colorize $1 |
|
|
|
|
( - ) 00 00 =edit-flipx "Horizontal $1 |
|
|
|
|
( - ) 00 00 =edit-flipy "Veritcal $1 |
|
|
|
|
( >>> ) 02 "Options $1 |
|
|
|
|
( > ) 02 "Options $1 |
|
|
|
|
( - ) 02 00 =toggle-zoom "Zoom $1 |
|
|
|
|
( - ) 00 "d =toggle-dir "Direction $1 |
|
|
|
|
( >>> ) 0a "Move $1 |
|
|
|
|
( > ) 0a "Move $1 |
|
|
|
|
( - ) 10 00 =move-up "Up $1 |
|
|
|
|
( - ) 20 00 =move-down "Down $1 |
|
|
|
|
( - ) 40 00 =move-left "Left $1 |
|
|
|
|
@ -109,7 +109,7 @@
|
|
|
|
|
( - ) 84 00 =move-incw "Incr.W $1 |
|
|
|
|
( - ) 00 1b =move-reset "Reset $1 |
|
|
|
|
( - ) 01 "a =select-all "SelectAll $1 |
|
|
|
|
( >>> ) 07 "Tool $1 |
|
|
|
|
( > ) 07 "Tool $1 |
|
|
|
|
( - ) 00 "q =tool-brush "Brush $1 |
|
|
|
|
( - ) 00 "w =tool-selector "Selector $1 |
|
|
|
|
( - ) 00 "e =tool-zoom "Zoom $1 |
|
|
|
|
@ -448,7 +448,7 @@
|
|
|
|
|
|
|
|
|
|
@has-nametable ( -- bool ) |
|
|
|
|
;nametable STH2k #0300 ADD2 STH2r |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
LDAk #00 EQU ?{ POP2 POP2 #01 JMP2r } |
|
|
|
|
INC2 GTH2k ?&>loop |
|
|
|
|
POP2 POP2 #00 JMP2r |
|
|
|
|
@ -462,9 +462,9 @@
|
|
|
|
|
@<filter> ( op* -- ) |
|
|
|
|
,&fn STR2 |
|
|
|
|
.selection/y2 LDZ INC #30 SFT .selection/y1 LDZ #30 SFT |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
STHk .selection/x2 LDZ INC #30 SFT .selection/x1 LDZ #30 SFT |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
#00 OVR #00 STHkr [ LIT2 &fn $2 ] JSR2 INC GTHk ?&>hor |
|
|
|
|
POP2 POPr INC GTHk ?&>ver |
|
|
|
|
POP2 JMP2r |
|
|
|
|
@ -508,9 +508,9 @@
|
|
|
|
|
.settings/dir LDZ ?<run-ver> |
|
|
|
|
,&fn STR2 |
|
|
|
|
.selection/y2 LDZ INC .selection/y1 LDZ |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
.selection/x2 LDZ INC .selection/x1 LDZ |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
OVR2 NIP OVR SWP get-tile-addr [ LIT2 &fn $2 ] JSR2 INC GTHk ?&>hor |
|
|
|
|
POP2 INC GTHk ?&>ver |
|
|
|
|
POP2 JMP2r |
|
|
|
|
@ -518,9 +518,9 @@
|
|
|
|
|
@<run-ver> ( op* -- ) |
|
|
|
|
,&fn STR2 |
|
|
|
|
.selection/x2 LDZ INC .selection/x1 LDZ |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
.selection/y2 LDZ INC .selection/y1 LDZ |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
OVR2 NIP OVR get-tile-addr [ LIT2 &fn $2 ] JSR2 INC GTHk ?&>hor |
|
|
|
|
POP2 INC GTHk ?&>ver |
|
|
|
|
POP2 JMP2r |
|
|
|
|
@ -531,21 +531,21 @@
|
|
|
|
|
@op-invert ( addr* -- ) |
|
|
|
|
,&t STR2 |
|
|
|
|
#1000 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
#00 OVR [ LIT2 &t $2 ] ADD2 LDA2k #ffff EOR2 SWP2 STA2 |
|
|
|
|
INC INC GTHk ?&>loop |
|
|
|
|
POP2 JMP2r |
|
|
|
|
|
|
|
|
|
@op-shiftu ( addr* -- ) |
|
|
|
|
DUP2k #0007 ADD2 SWP2 LDAk STH |
|
|
|
|
&>ch1 ( -- ) |
|
|
|
|
&>ch1 |
|
|
|
|
INC2k LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
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 |
|
|
|
|
@ -555,14 +555,14 @@
|
|
|
|
|
|
|
|
|
|
@op-shiftd ( addr* -- ) |
|
|
|
|
DUP2k #0007 ADD2 LDAk STH |
|
|
|
|
&>ch1 ( -- ) |
|
|
|
|
&>ch1 |
|
|
|
|
DUP2 #0001 SUB2 LDA STH |
|
|
|
|
DUP2 STHr ROT ROT STA |
|
|
|
|
#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 |
|
|
|
|
@ -573,7 +573,7 @@
|
|
|
|
|
@op-shiftl ( addr* -- ) |
|
|
|
|
STH2 |
|
|
|
|
#0800 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
( 1 ) #00 OVR STH2kr ADD2 |
|
|
|
|
( 1 ) LDAk rol ROT ROT STA |
|
|
|
|
( 2 ) #00 OVR STH2kr #0008 ADD2 ADD2 |
|
|
|
|
@ -584,7 +584,7 @@
|
|
|
|
|
@op-shiftr ( addr* -- ) |
|
|
|
|
STH2 |
|
|
|
|
#0800 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
( 1 ) #00 OVR STH2kr ADD2 |
|
|
|
|
( 1 ) LDAk ror ROT ROT STA |
|
|
|
|
( 2 ) #00 OVR STH2kr #0008 ADD2 ADD2 |
|
|
|
|
@ -627,7 +627,7 @@
|
|
|
|
|
;spritesheet .Screen/addr DEO2 |
|
|
|
|
[ LIT2 f6 -Screen/auto ] DEO |
|
|
|
|
#1000 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
[ LIT2 81 -Screen/sprite ] DEO |
|
|
|
|
INC GTHk ?&>loop |
|
|
|
|
POP2 |
|
|
|
|
@ -637,7 +637,7 @@
|
|
|
|
|
#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 |
|
|
|
|
[ LIT2 84 -Screen/sprite ] DEO |
|
|
|
|
INC GTHk ?&>loop-sel |
|
|
|
|
@ -662,7 +662,7 @@
|
|
|
|
|
.tileview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
[ LIT2 f2 -Screen/auto ] DEO |
|
|
|
|
#f0 |
|
|
|
|
&>times ( -- ) |
|
|
|
|
&>times |
|
|
|
|
[ LIT2 00 -Screen/sprite ] DEO |
|
|
|
|
INC DUP ?&>times |
|
|
|
|
POP |
|
|
|
|
@ -670,11 +670,11 @@
|
|
|
|
|
[ LIT2 01 -Screen/auto ] DEO |
|
|
|
|
;pixel-icn .Screen/addr DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
#00 OVR #30 SFT .tileview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
.tileview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
( y ) .selection/zy LDZ ADD #00 SWP |
|
|
|
|
( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2 get-pixel .Screen/sprite DEO |
|
|
|
|
@ -697,11 +697,11 @@
|
|
|
|
|
@<draw-nametable> ( -- ) |
|
|
|
|
[ LIT2 00 -Screen/auto ] DEO |
|
|
|
|
#1000 |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
( > y ) #00 OVR #30 SFT2 .nametableview/y LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
STHk .nametableview/x LDZ2 .Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
( > x ) #00 OVR #30 SFT2 .nametableview/x LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
( id ) #00 OVR STHkr #40 SFT ADD |
|
|
|
|
( addr* ) #0003 MUL2 ;nametable ADD2 LDA2k ;spritesheet ADD2 .Screen/addr DEO2 |
|
|
|
|
@ -715,11 +715,11 @@
|
|
|
|
|
@<draw-zoomview> ( -- ) |
|
|
|
|
;bigpixel-icn .Screen/addr DEO2 |
|
|
|
|
#0800 |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
#00 OVRk #00 .selection/y1 LDZ #30 SFT ADD2 ,&y STR2 |
|
|
|
|
#20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
#0800 |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
#00 OVRk #00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2 |
|
|
|
|
#20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
[ LIT2 &x $2 ] [ LIT2 &y $2 ] get-pixel .Screen/sprite DEO |
|
|
|
|
@ -744,10 +744,10 @@
|
|
|
|
|
( | stash address ) |
|
|
|
|
.settings/focus LDZ2 STH2k .Screen/addr DEO2 |
|
|
|
|
#0400 |
|
|
|
|
&>ver ( -- ) |
|
|
|
|
&>ver |
|
|
|
|
#00 OVR #30 SFT .preview/y1 LDZ2 ADD2 .Screen/y DEO2 |
|
|
|
|
#0400 |
|
|
|
|
&>hor ( -- ) |
|
|
|
|
&>hor |
|
|
|
|
#00 OVR #30 SFT .preview/x1 LDZ2 ADD2 .Screen/x DEO2 |
|
|
|
|
( | get x,y ) |
|
|
|
|
OVR2 NIP OVR SWP |
|
|
|
|
@ -787,7 +787,7 @@
|
|
|
|
|
.Screen/y DEO2 |
|
|
|
|
.Screen/x DEO2 |
|
|
|
|
#1000 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2 |
|
|
|
|
[ LIT2 02 -Screen/sprite ] DEO |
|
|
|
|
.Screen/x DEI2k INC2 INC2 ROT DEO2 |
|
|
|
|
@ -798,7 +798,7 @@
|
|
|
|
|
@<draw-blendview> ( -- ) |
|
|
|
|
[ 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 |
|
|
|
|
@ -832,7 +832,7 @@
|
|
|
|
|
.selection LDZ2 SWP #40 SFT ADD <draw-byte> |
|
|
|
|
.dataview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
#0400 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
.dataview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
|
#00 OVR DUP ADD .settings/focus LDZ2 ADD2 #01 ;<draw-chr>/color STA |
|
|
|
|
( ch1 ) LDA2k <draw-short> |
|
|
|
|
@ -896,7 +896,7 @@
|
|
|
|
|
POP ;fill-icn .Screen/addr DEO2 |
|
|
|
|
[ LIT2 01 -Screen/auto ] DEO |
|
|
|
|
#1300 |
|
|
|
|
&>l ( -- ) |
|
|
|
|
&>l |
|
|
|
|
[ LIT2 00 -Screen/sprite ] DEO |
|
|
|
|
INC GTHk ?&>l |
|
|
|
|
POP2 JMP2r |
|
|
|
|
@ -905,7 +905,7 @@
|
|
|
|
|
.Screen/addr DEO2 &blank .Screen/auto DEO |
|
|
|
|
STH |
|
|
|
|
#00 |
|
|
|
|
&>l2 ( -- ) |
|
|
|
|
&>l2 |
|
|
|
|
STHkr .Screen/sprite DEO |
|
|
|
|
INC GTHk ?&>l2 |
|
|
|
|
POP2 POPr JMP2r |
|
|
|
|
@ -928,7 +928,7 @@
|
|
|
|
|
@<draw-str> ( str* -- str* ) |
|
|
|
|
LDAk #00 EQU ?{ |
|
|
|
|
[ LIT2 01 -Screen/auto ] DEO |
|
|
|
|
&>while ( -- ) |
|
|
|
|
&>while |
|
|
|
|
LDAk <draw-chr> |
|
|
|
|
INC2 LDAk ?&>while } |
|
|
|
|
INC2 JMP2r |
|
|
|
|
@ -969,7 +969,7 @@
|
|
|
|
|
.Screen/addr DEO2 |
|
|
|
|
STH |
|
|
|
|
#00 |
|
|
|
|
&>l ( -- ) |
|
|
|
|
&>l |
|
|
|
|
STHkr /paint INC GTHk ?&>l |
|
|
|
|
POP2 POPr JMP2r |
|
|
|
|
|
|
|
|
|
@ -1039,7 +1039,7 @@
|
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
#0008 .File/length DEO2 |
|
|
|
|
#0000 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2 |
|
|
|
|
INC NEQk ?&>loop |
|
|
|
|
POP2 #00 .state/changed STZ |
|
|
|
|
@ -1064,7 +1064,7 @@
|
|
|
|
|
;filepath .File/name DEO2 |
|
|
|
|
#0008 .File/length DEO2 |
|
|
|
|
#0000 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>loop |
|
|
|
|
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2 |
|
|
|
|
INC NEQk ?&>loop |
|
|
|
|
POP2 #00 .state/changed STZ !<draw-state> |
|
|
|
|
@ -1214,19 +1214,11 @@
|
|
|
|
|
@<mcpy> ( src* dst* len* -- ) |
|
|
|
|
SWP2 STH2 |
|
|
|
|
OVR2 ADD2 SWP2 |
|
|
|
|
&>loop ( -- ) |
|
|
|
|
&>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 ) |
|
|
|
|
|
|
|
|
|
|