@@ 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