|
|
|
|
@ -1,8 +1,6 @@
|
|
|
|
|
( Nasu ) |
|
|
|
|
|
|
|
|
|
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
|
|
|
%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
|
|
|
%-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
|
|
|
%-- { SUB2 } |
|
|
|
|
|
|
|
|
|
( devices ) |
|
|
|
|
|
|
|
|
|
@ -58,17 +56,14 @@
|
|
|
|
|
#0a6f .System/r DEO2 |
|
|
|
|
#05cf .System/g DEO2 |
|
|
|
|
#0caf .System/b DEO2 |
|
|
|
|
|
|
|
|
|
( size ) |
|
|
|
|
#0130 .Screen/width DEO2 |
|
|
|
|
#00e0 .Screen/height DEO2 |
|
|
|
|
|
|
|
|
|
( vectors ) |
|
|
|
|
;on-console .Console/vector DEO2 |
|
|
|
|
;on-button .Controller/vector DEO2 |
|
|
|
|
;on-mouse .Mouse/vector DEO2 |
|
|
|
|
;on-frame .Screen/vector DEO2 |
|
|
|
|
|
|
|
|
|
( set defaults ) |
|
|
|
|
#0100 .frame/width STZ2 |
|
|
|
|
#00c0 .frame/height STZ2 |
|
|
|
|
@ -79,7 +74,7 @@
|
|
|
|
|
#01 .settings/tool STZ |
|
|
|
|
#00 .settings/brush STZ |
|
|
|
|
#0000 ;set-focus JSR2 |
|
|
|
|
|
|
|
|
|
( place ) |
|
|
|
|
.Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 -- .Screen/height DEI2 #01 SFT2 .frame/height LDZ2 #01 SFT2 -- .frame/width LDZ2 .frame/height LDZ2 ;frame ;set-size JSR2 |
|
|
|
|
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ADD2 #10 #00 SWP #30 SFT2 #0080 ;tileview ;set-size JSR2 |
|
|
|
|
.frame/x1 LDZ2 #0082 ADD2 .frame/y1 LDZ2 #0030 ADD2 #007f #007f ;nametable ;set-size JSR2 |
|
|
|
|
@ -89,20 +84,21 @@
|
|
|
|
|
.frame/x1 LDZ2 #008f ADD2 .frame/y1 LDZ2 #0020 #0028 ;blendview ;set-size JSR2 |
|
|
|
|
.frame/x1 LDZ2 #00bf ADD2 .frame/y1 LDZ2 #0048 #0020 ;dataview ;set-size JSR2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 #0100 #0008 ;toolview ;set-size JSR2 |
|
|
|
|
|
|
|
|
|
( outlines ) |
|
|
|
|
.frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2 |
|
|
|
|
.tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2 |
|
|
|
|
.frame/x2 LDZ2 #0002 ADD2 .workspace-frame/x2 STZ2 |
|
|
|
|
.tileview/y2 LDZ2 INC2 .workspace-frame/y2 STZ2 |
|
|
|
|
|
|
|
|
|
.zoomview/x1 LDZ2 #0001 -- .zoomview-frame/x1 STZ2 |
|
|
|
|
.zoomview/y1 LDZ2 #0001 -- .zoomview-frame/y1 STZ2 |
|
|
|
|
.zoomview/x2 LDZ2 #0002 ADD2 .zoomview-frame/x2 STZ2 |
|
|
|
|
.zoomview/y2 LDZ2 #0007 -- .zoomview-frame/y2 STZ2 |
|
|
|
|
|
|
|
|
|
( let's begin! ) |
|
|
|
|
;load-theme JSR2 |
|
|
|
|
;new-file JSR2 |
|
|
|
|
|
|
|
|
|
.frame/x1 LDZ2 #0080 ADD2 .tileview/y1 LDZ2 #0f ;line-ver-dashed JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@untrap ( -- ) |
|
|
|
|
@ -150,7 +146,7 @@ BRK
|
|
|
|
|
@on-button-trap ( -> ) |
|
|
|
|
|
|
|
|
|
#00 ;draw-filepath JSR2 |
|
|
|
|
.Controller/key DEI DUP #0d EQU #03 * SUB ,capture-trap JSR |
|
|
|
|
.Controller/key DEI DUP #0d EQU #03 MUL SUB ,capture-trap JSR |
|
|
|
|
#01 ;draw-filepath JSR2 |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -275,9 +271,9 @@ BRK
|
|
|
|
|
.settings/tool LDZ #01 EQU ;&select JCN2 |
|
|
|
|
|
|
|
|
|
( paint ) |
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 -- |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 -- |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * |
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 SUB2 |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 SUB2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL |
|
|
|
|
;put-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
@ -300,7 +296,7 @@ BRK
|
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 -- #03 SFT2 #00 .selection/zx LDZ ADD2 |
|
|
|
|
.Mouse/y DEI2 .tileview/y1 LDZ2 -- #03 SFT2 #00 .selection/zy LDZ ADD2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * ;put-pixel JSR2 |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL ;put-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
@ -393,7 +389,7 @@ BRK
|
|
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #02 SFT2 |
|
|
|
|
.settings/focus LDZ2 ADD2 |
|
|
|
|
( detect erase ) |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU * STH |
|
|
|
|
.settings/color LDZ .Mouse/state DEI #01 EQU MUL STH |
|
|
|
|
OVR2 OVR2 STHkr #00 ;toggle-pixel JSR2 |
|
|
|
|
#0008 ADD2 STHr #01 ;toggle-pixel JSR2 |
|
|
|
|
#01 .state/changed STZ ;draw-state JSR2 |
|
|
|
|
@ -407,7 +403,7 @@ BRK
|
|
|
|
|
@on-touch-blendview ( -> ) |
|
|
|
|
|
|
|
|
|
.Mouse/x DEI2 .blendview/x1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
.Mouse/y DEI2 .blendview/y1 LDZ2 -- #03 SFT2 NIP #20 SFT + |
|
|
|
|
.Mouse/y DEI2 .blendview/y1 LDZ2 -- #03 SFT2 NIP #20 SFT ADD |
|
|
|
|
DUP #0f GTH ,&no-set JCN |
|
|
|
|
DUP .settings/blend LDZ #b0 AND ADD .settings/blend STZ |
|
|
|
|
&no-set |
|
|
|
|
@ -450,10 +446,10 @@ BRK
|
|
|
|
|
.settings/color LDZ STHk #01 SFT ADD DEI |
|
|
|
|
STHr #01 AND STHk |
|
|
|
|
#0f SWP [ #60 SFT SFT ] AND |
|
|
|
|
STHr #00 = |
|
|
|
|
STHr #00 EQU |
|
|
|
|
.Mouse/x DEI2 .colorview/x1 LDZ2 -- #01 SFT2 NIP |
|
|
|
|
( clamp to #0f ) DUP #01 GTH - |
|
|
|
|
SWP [ #60 SFT SFT ] + |
|
|
|
|
( clamp to #0f ) DUP #01 GTH SUB |
|
|
|
|
SWP [ #60 SFT SFT ] ADD |
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
@ -463,7 +459,7 @@ BRK
|
|
|
|
|
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- #03 SFT2 NIP |
|
|
|
|
|
|
|
|
|
#40 SFT ADD #11 + |
|
|
|
|
#40 SFT ADD #11 ADD |
|
|
|
|
.settings/ratio STZ |
|
|
|
|
|
|
|
|
|
;redraw JSR2 |
|
|
|
|
@ -723,20 +719,6 @@ JMP2r
|
|
|
|
|
;draw-nametable JSR2 |
|
|
|
|
;draw-zoomview JSR2 |
|
|
|
|
|
|
|
|
|
.frame/x1 LDZ2 #0080 ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 INC2 #03 ;line-ver-dashed JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@is-selected ( x y -- flag ) |
|
|
|
|
|
|
|
|
|
OVR .selection/x1 LDZ LTH ,&end JCN |
|
|
|
|
OVR .selection/x2 LDZ GTH ,&end JCN |
|
|
|
|
DUP .selection/y1 LDZ LTH ,&end JCN |
|
|
|
|
DUP .selection/y2 LDZ GTH ,&end JCN |
|
|
|
|
POP2 #01 JMP2r |
|
|
|
|
&end |
|
|
|
|
POP2 #00 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-tileview ( -- ) |
|
|
|
|
@ -789,13 +771,20 @@ JMP2r
|
|
|
|
|
INC GTHk ,&ver JCN |
|
|
|
|
POP2 |
|
|
|
|
POP2r POP2r |
|
|
|
|
( guides ) |
|
|
|
|
( guide hor ) |
|
|
|
|
#00 #07 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #02 ;line-hor-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2r ADD2 #0040 ADD2 #02 ;line-hor-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0a ;line-hor-dashed JSR2 |
|
|
|
|
.selection/zy LDZ #07 AND #00 EQU ,&skip-hor JCN |
|
|
|
|
.tileview/x1 LDZ2 .tileview/y1 LDZ2 STH2kr ADD2 #0040 ADD2 #0a ;line-hor-dashed JSR2 |
|
|
|
|
&skip-hor |
|
|
|
|
POP2r |
|
|
|
|
( guide ver ) |
|
|
|
|
#00 #07 .selection/zx LDZ SUB #0007 AND2 #30 SFT2 #0001 -- #0008 ADD2 STH2 |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 STH2r ADD2 #0040 ADD2 .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2 |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 .tileview/y1 LDZ2 #0a ;line-ver-dashed JSR2 |
|
|
|
|
.selection/zx LDZ #07 AND #00 EQU ,&skip-ver JCN |
|
|
|
|
.tileview/x1 LDZ2 STH2kr ADD2 #0040 ADD2 .tileview/y1 LDZ2 #0a ;line-ver-dashed JSR2 |
|
|
|
|
&skip-ver |
|
|
|
|
POP2r |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -837,7 +826,7 @@ JMP2r
|
|
|
|
|
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
#10 SFT |
|
|
|
|
+ |
|
|
|
|
ADD |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -911,7 +900,7 @@ JMP2r
|
|
|
|
|
( ch2 ) |
|
|
|
|
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP |
|
|
|
|
#07 SWP SUB SFT #01 AND |
|
|
|
|
#10 SFT + |
|
|
|
|
#10 SFT ADD |
|
|
|
|
.Screen/sprite DEO |
|
|
|
|
INC GTHk ,&hor JCN |
|
|
|
|
POP2 |
|
|
|
|
@ -1113,7 +1102,7 @@ JMP2r
|
|
|
|
|
.toolview/x2 LDZ2 #0008 -- .Screen/x DEO2 |
|
|
|
|
.toolview/y1 LDZ2 .Screen/y DEO2 |
|
|
|
|
;save-icn .Screen/addr DEO2 |
|
|
|
|
#05 .state/changed LDZ #0a * ADD .Screen/sprite DEO |
|
|
|
|
#05 .state/changed LDZ #0a MUL ADD .Screen/sprite DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -1126,7 +1115,7 @@ JMP2r
|
|
|
|
|
;filepath |
|
|
|
|
( scroll ) |
|
|
|
|
DUP2 ;slen JSR2 #0013 GTH2 #00 SWP |
|
|
|
|
;filepath ;slen JSR2 #0013 -- ** ADD2 |
|
|
|
|
;filepath ;slen JSR2 #0013 -- MUL2 ADD2 |
|
|
|
|
|
|
|
|
|
STHr ,draw-text JSR |
|
|
|
|
|
|
|
|
|
@ -1155,7 +1144,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@draw-hex ( char color -- ) |
|
|
|
|
|
|
|
|
|
SWP #0f AND [ DUP #09 GTH #27 * ADD #30 ADD ] SWP |
|
|
|
|
SWP #0f AND [ DUP #09 GTH #27 MUL ADD #30 ADD ] SWP |
|
|
|
|
|
|
|
|
|
@draw-char ( char color -- ) |
|
|
|
|
|
|
|
|
|
@ -1362,27 +1351,27 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@line-hor-dashed ( x0* x1* y* color -- ) |
|
|
|
|
@line-hor-dashed ( x* y* color -- ) |
|
|
|
|
|
|
|
|
|
STH .Screen/y DEO2 SWP2 |
|
|
|
|
&loop |
|
|
|
|
DUP2 .Screen/x DEO2 |
|
|
|
|
STHkr .Screen/pixel DEO |
|
|
|
|
INC2 INC2 GTH2k ,&loop JCN |
|
|
|
|
POP2 POP2 POPr |
|
|
|
|
STH .Screen/y DEO2 .Screen/x DEO2 |
|
|
|
|
;&sprite .Screen/addr DEO2 |
|
|
|
|
#f2 .Screen/auto DEO |
|
|
|
|
STHr .Screen/sprite DEO |
|
|
|
|
#00 .Screen/auto DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&sprite aa00 0000 0000 0000 |
|
|
|
|
|
|
|
|
|
@line-ver-dashed ( x* y0* y1* color -- ) |
|
|
|
|
@line-ver-dashed ( x* y* color -- ) |
|
|
|
|
|
|
|
|
|
STH ROT2 .Screen/x DEO2 SWP2 |
|
|
|
|
&loop |
|
|
|
|
DUP2 .Screen/y DEO2 |
|
|
|
|
STHkr .Screen/pixel DEO |
|
|
|
|
INC2 INC2 GTH2k ,&loop JCN |
|
|
|
|
POP2 POP2 POPr |
|
|
|
|
STH .Screen/y DEO2 .Screen/x DEO2 |
|
|
|
|
;&sprite .Screen/addr DEO2 |
|
|
|
|
#f1 .Screen/auto DEO |
|
|
|
|
STHr .Screen/sprite DEO |
|
|
|
|
#00 .Screen/auto DEO |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&sprite 8000 8000 8000 8000 |
|
|
|
|
|
|
|
|
|
( memory generics ) |
|
|
|
|
|
|
|
|
|
@ -1412,7 +1401,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@slen ( str* -- len* ) |
|
|
|
|
|
|
|
|
|
DUP2 ,scap JSR SWP2 -- |
|
|
|
|
DUP2 ,scap JSR SWP2 SUB2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
|