@@ 17,9 17,9 @@
ctrl+v - paste
)
-%+ { ADD } %- { SUB } %* { MUL }
+%+ { ADD } %- { SUB }
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
-%++ { ADD2 } %-- { SUB2 }
+%++ { ADD2 } %-- { SUB2 }
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
%DEBUG { ;print-hex JSR2 #0a .Console/write DEO }
@@ 29,6 29,8 @@
%4* { #20 SFT } %4/ { #02 SFT }
%8* { #30 SFT } %8/ { #03 SFT }
%20* { #50 SFT }
+%40* { #60 SFT }
+%80* { #70 SFT }
%2** { #10 SFT2 } %2// { #01 SFT2 }
%4// { #02 SFT2 }
@@ 38,11 40,15 @@
%100** { #80 SFT2 }
%200** { #90 SFT2 } %200// { #09 SFT2 }
-%TOS { #00 SWP }
-%MOD { DIVk MUL SUB } %MOD2 { DIV2k MUL2 SUB2 }
+%2MOD { #01 AND }
+%4MOD { #03 AND }
+%8MOD { #07 AND }
+%8MOD2 { #0007 AND2 }
+%100MOD2 { #00ff AND2 }
+
+%TOS { #00 SWP }
%RTN { JMP2r }
-%MOD8 { #07 AND }
%ROL { DUP #07 SFT SWP #10 SFT + }
%ROR { DUP #70 SFT SWP #01 SFT + }
%SFL { #40 SFT SFT }
@@ 51,16 57,18 @@
%TOGGLE { LDZk #00 = SWP STZ }
%GET-ITER { OVR2 NIP OVR SWP }
%BRK? { #01 JCN BRK }
+%SWP? { #01 JCN SWP }
%HOR { #20 } %VER { #10 }
%WIDTH { #0100 }
%LENGTH { #2000 }
-%DATA-CLIP { #f000 } ( copy/paste )
-%BANK { #2000 }
+%DATA-CLIP { #f000 }
+%BANK { #2000 }
%BANK-TEMP { #4000 }
+
%GET-COLOR { .settings/color LDZ STHk 2/ + DEI #01 STHr #01 AND - 4* SFT #0f AND }
-%GET-POSITION { .settings/focus LDZ2 BANK -- DUP2 2// WIDTH MOD2 SWP2 200// 8** }
+%GET-POSITION { .settings/focus LDZ2 BANK -- DUP2 2// WIDTH 100MOD2 SWP2 200// 8** }
%ADD-POSITIONS { ROT2 ++ ROT2 ROT2 ++ SWP2 }
%RELEASE-MOUSE { #00 .Mouse/state DEO }
%RESET-SELECTION { .selection/x1 LDZ2 .selection/x2 STZ2 }
@@ 578,12 586,12 @@ BRK
&set-color
.settings/color LDZ STHk 2/ + DEI
- STHr #02 MOD STHk
- #0f SWP [ #40 * SFT ] AND
+ STHr 2MOD STHk
+ #0f SWP [ 40* SFT ] AND
STHr #00 =
.Mouse/x DEI2 .colorview/x1 LDZ2 -- 2// NIP
( clamp to #0f ) DUP #10 = -
- SWP [ #40 * SFT ] +
+ SWP [ 40* SFT ] +
RTN
BRK
@@ 772,9 780,9 @@ RTN
DUP TOS 8** .tileview/x1 LDZ2 ++ .Screen/x DEO2
GET-ITER
DUP2 GET-ADDR .Screen/addr DEO2
- ;is-selected JSR2 #0d *
+ #0d00 SWP2 ;is-selected JSR2 SWP? POP
.settings/blending LDZ +
- .settings/depth LDZ #80 * +
+ .settings/depth LDZ 80* +
#00 + .Screen/sprite DEO
#01 + GTHk ,&hor JCN
POP2
@@ 814,7 822,7 @@ RTN
DUP STH
.tileview/x1 LDZ2
.tileview/x2 LDZ2
- .tileview/y1 LDZ2 STHr #01 + #40 * #01 - TOS ++
+ .tileview/y1 LDZ2 STHr #01 + 40* #01 - TOS ++
#02
;line-hor JSR2
#01 + GTHk ,&guides-hor JCN
@@ 823,7 831,7 @@ RTN
HOR 8/ #01 - #00
&guides-ver
DUP STH
- .tileview/x1 LDZ2 STHr #01 + #40 * #01 - TOS ++
+ .tileview/x1 LDZ2 STHr #01 + 40* #01 - TOS ++
.tileview/y1 LDZ2
.tileview/y2 LDZ2
#02
@@ 837,7 845,7 @@ RTN
( channel 1 )
OVR2 SWP2 ,get-addr JSR [ STH2k ] LDA
- ROT ROT NIP MOD8 [ STHk ]
+ ROT ROT NIP 8MOD [ STHk ]
#07 SWP - SFT #01 AND
( channel 2 )
[ STHr ] [ STH2r ] #0008 ++ LDA SWP
@@ 850,7 858,7 @@ RTN
@get-addr ( x* y* -- addr* )
( get row )
- DUP2 #0008 MOD2
+ DUP2 8MOD2
( get tile )
SWP2 8// 200** ++
SWP2 STEP8 2** ++
@@ 878,11 886,11 @@ RTN
STH SWP2 NIP
STHr SWP
STH2r SFT #01 AND ,&do-set JCN
- ( mask ) #01 #07 ROT MOD8 - SFL #ff EOR AND
+ ( mask ) #01 #07 ROT 8MOD - SFL #ff EOR AND
( save ) ROT ROT STA
RTN
&do-set
- ( mask ) #01 #07 ROT MOD8 - SFL ORA
+ ( mask ) #01 #07 ROT 8MOD - SFL ORA
( save ) ROT ROT STA
RTN
@@ 952,16 960,16 @@ RTN
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0001 ++ .Screen/y DEO2
( get blending ) .settings/blending LDZ
- ( get depth ) .settings/depth LDZ #80 *
+ ( get depth ) .settings/depth LDZ 80*
( draw ) + #01 ;draw-byte JSR2
.settings/focus LDZ2 .Screen/addr DEO2
#10 #00
&loop
- DUP #04 MOD #00 SWP 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
+ DUP 4MOD #00 SWP 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
DUP 4/ #00 SWP 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
#00 .Screen/sprite DEO
- DUP #00 + .settings/depth LDZ #80 * + .Screen/sprite DEO
+ DUP #00 + .settings/depth LDZ 80* + .Screen/sprite DEO
#01 + GTHk ,&loop JCN
POP2
@@ 990,7 998,7 @@ RTN
#0101 !! ,&outside JCN
( get tile ) STH2kr .Screen/addr DEO2
( get blending ) .settings/blending LDZ
- ( get depth ) .settings/depth LDZ #80 *
+ ( get depth ) .settings/depth LDZ 80*
( draw ) + .Screen/sprite DEO
( incr ) STH2r #0008 [ .settings/depth LDZ 8* TOS ++ ] ++ STH2
,&resume JMP
@@ 1146,7 1154,7 @@ RTN
.toolview/x2 LDZ2 #0008 -- .Screen/x DEO2
.toolview/y1 LDZ2 .Screen/y DEO2
;save-icn .Screen/addr DEO2
- #05 .state/changed LDZ #0a * + .Screen/sprite DEO
+ #0f05 .state/changed LDZ SWP? POP .Screen/sprite DEO
RTN