@@ 4,24 4,6 @@
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
%-- { SUB2 } %** { MUL2 } %// { DIV2 }
-%AUTO-NONE { #00 .Screen/auto DEO }
-%AUTO-X { #01 .Screen/auto DEO }
-%AUTO-Y { #02 .Screen/auto DEO }
-%AUTO-ADDR { #04 .Screen/auto DEO }
-%AUTO-Y-ADDR { #06 .Screen/auto DEO }
-
-%SIZE-TO-RECT {
- STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2
-} ( x y w h -- x1 y1 x2 y2 )
-
-%SET-RECT {
- DUP2 ROT2 SWP2 #0006 ADD2 STA2
- DUP2 ROT2 SWP2 #0004 ADD2 STA2
- DUP2 ROT2 SWP2 #0002 ADD2 STA2
- DUP2 ROT2 SWP2 STA2
- POP2
-} ( x1 y1 x2 y2 addr -- )
-
( devices )
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
@@ 98,18 80,15 @@
#00 .settings/brush STZ
#0000 ;set-focus JSR2
- .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 SIZE-TO-RECT ;frame SET-RECT
-
- .frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ADD2 #10 #00 SWP #30 SFT2 #0080 SIZE-TO-RECT ;tileview SET-RECT
- .frame/x1 LDZ2 #0082 ADD2 .frame/y1 LDZ2 #0030 ADD2 #007f #007f SIZE-TO-RECT ;nametable SET-RECT
- .frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #001f #0028 SIZE-TO-RECT ;zoomview SET-RECT
- .frame/x1 LDZ2 #002f ADD2 .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
- .frame/x1 LDZ2 #005f ADD2 .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
- .frame/x1 LDZ2 #008f ADD2 .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;blendview SET-RECT
- .frame/x1 LDZ2 #00bf ADD2 .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT
- .tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 #0100 #0008 SIZE-TO-RECT ;toolview SET-RECT
+ .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
+ .frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #001f #0028 ;zoomview ;set-size JSR2
+ .frame/x1 LDZ2 #002f ADD2 .frame/y1 LDZ2 #0020 #0020 ;preview ;set-size JSR2
+ .frame/x1 LDZ2 #005f ADD2 .frame/y1 LDZ2 #0020 #0020 ;colorview ;set-size JSR2
+ .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
.frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2
.tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2
@@ 520,8 499,8 @@ JMP2r
@set-selection-zoom ( x y -- )
- #7f AND .selection/zy STZ
- #7f AND .selection/zx STZ
+ #7f AND .selection/zy STZ
+ #7f AND .selection/zx STZ
JMP2r
@@ 583,12 562,12 @@ JMP2r
@mod-selection-zoom ( x y -- )
( set zoom )
- .selection/zy LDZ + SWP
- .selection/zx LDZ + SWP
+ .selection/zy LDZ + SWP
+ .selection/zx LDZ + SWP
;set-selection-zoom JSR2
( set from )
- .selection/zx LDZ #03 SFT
- .selection/zy LDZ #03 SFT
+ .selection/zx LDZ #03 SFT
+ .selection/zy LDZ #03 SFT
;set-selection-from JSR2
;draw-tileview-zoom JSR2
@@ 765,7 744,7 @@ JMP2r
.settings/zoom LDZ ;draw-tileview-zoom JCN2
- AUTO-X
+ #01 .Screen/auto DEO
#1000
&ver
DUP #00 SWP #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
@@ 779,7 758,7 @@ JMP2r
POP2
INC GTHk ,&ver JCN
POP2
- AUTO-NONE
+ #00 .Screen/auto DEO
.workspace-frame #03 ;line-rect JSR2
@@ 795,8 774,8 @@ JMP2r
#10 #00
&hor
DUP #30 SFT #00 SWP .tileview/x1 LDZ2 ADD2 .Screen/x DEO2
- OVR2 NIP OVR SWP
- ( y ) .selection/zy LDZ + #00 SWP
+ OVR2 NIP OVR SWP
+ ( y ) .selection/zy LDZ + #00 SWP
( x ) ROT .selection/zx LDZ + #00 SWP SWP2
;get-pixel JSR2 .Screen/sprite DEO
INC GTHk ,&hor JCN
@@ 816,7 795,7 @@ JMP2r
@draw-nametable ( -- )
- AUTO-X
+ #01 .Screen/auto DEO
#1000
&ver
DUP #00 SWP #30 SFT2 .nametable/y LDZ2 ADD2 .Screen/y DEO2
@@ 830,7 809,7 @@ JMP2r
POP2
INC GTHk ,&ver JCN
POP2
- AUTO-NONE
+ #00 .Screen/auto DEO
JMP2r
@@ 872,7 851,7 @@ JMP2r
@put-pixel ( x* y* color -- )
STH
- OVR2 SWP2 ,get-pixel-addr JSR
+ OVR2 SWP2 ,get-pixel-addr JSR
( ch1 ) OVR2 OVR2 STHkr #00 ,toggle-pixel JSR
( ch2 ) #0008 ADD2 STHr #01 ,toggle-pixel JSR
@@ 1014,8 993,8 @@ JMP2r
POPr
JMP2r
- &get-color
- .settings/color LDZ STHk #01 SFT + DEI #01 STHr #01 AND - #20 SFT SFT #0f AND
+ &get-color
+ .settings/color LDZ STHk #01 SFT + DEI #01 STHr #01 AND - #20 SFT SFT #0f AND
JMP2r
@draw-blendview ( -- )
@@ 1162,11 1141,11 @@ JMP2r
@draw-short ( short* color -- )
- STH SWP STHkr ,draw-byte JSR STHr
+ STH SWP STHkr ,draw-byte JSR STHr
@draw-byte ( byte color -- )
- STH DUP #04 SFT STHkr ,draw-hex JSR #0f AND STHr
+ STH DUP #04 SFT STHkr ,draw-hex JSR #0f AND STHr
@draw-hex ( char color -- )
@@ 1319,6 1298,20 @@ JMP2r
( generics )
+@set-size ( x1 y1 w* h* rect* -- )
+
+ STH2
+ ( size to rect )
+ STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2
+ STH2r
+ DUP2 ROT2 SWP2 #0006 ADD2 STA2
+ DUP2 ROT2 SWP2 #0004 ADD2 STA2
+ DUP2 ROT2 SWP2 #0002 ADD2 STA2
+ DUP2 ROT2 SWP2 STA2
+ POP2
+
+JMP2r
+
@within-rect ( x* y* rect -- flag )
STH
@@ 1443,9 1436,6 @@ JMP2r
JMP2r
-@rol ( byte -- byte ) DUP #07 SFT SWP #10 SFT + JMP2r
-@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT + JMP2r
-
@print ( short* -- )
&short ( short* -- ) SWP ,&byte JSR
@@ 1454,34 1444,26 @@ JMP2r
JMP2r
+@rol ( byte -- byte ) DUP #07 SFT SWP #10 SFT + JMP2r
+@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT + JMP2r
+
@untitled-txt "untitled.chr $1
@nametable-ext ".tbl $1
-@tool-brush e0d0 8844 2212 0c00
-@tool-selector 80c0 e0f0 f8e0 1000
-@tool-zoom 3048 8484 4834 0200
-@pixel-icn 7cfe fefe fefe 7c00
-@bigpixel-icn f0f0 f0f0 0000 0000
-@halftone-icn aa55 aa55 aa55 aa55
-@save-icn 1054 28c6 2854 1000
-@make-icn fe82 8282 848a f400
-@load-icn feaa d6aa d4aa f400
-
-@slider-icns
- f0f0 f0f0 f0f0 f000 ( full )
- 50a0 50a0 50a0 5000 ( empty )
-@circle-icns
- 3844 8282 8244 3800 ( full )
- 387c fefe fe7c 3800 ( line )
-@zoom-icns
- 3048 8484 4834 0200 ( in )
- 3245 8284 4834 0200 ( out )
-@arrow-hor-icns
- 0010 181c fe1c 1810
- 0010 3070 fe70 3010
-@arrow-ver-icns
- 0010 387c fe10 1010
- 0010 1010 fe7c 3810
+@tool-brush e0d0 8844 2212 0c00
+@tool-selector 80c0 e0f0 f8e0 1000
+@tool-zoom 3048 8484 4834 0200
+@pixel-icn 7cfe fefe fefe 7c00
+@bigpixel-icn f0f0 f0f0 0000 0000
+@halftone-icn aa55 aa55 aa55 aa55
+@save-icn 1054 28c6 2854 1000
+@make-icn fe82 8282 848a f400
+@load-icn feaa d6aa d4aa f400
+@slider-icns f0f0 f0f0 f0f0 f000 50a0 50a0 50a0 5000
+@circle-icns 3844 8282 8244 3800 387c fefe fe7c 3800
+@zoom-icns 3048 8484 4834 0200 3245 8284 4834 0200
+@arrow-hor-icns 0010 181c fe1c 1810 0010 3070 fe70 3010
+@arrow-ver-icns 0010 387c fe10 1010 0010 1010 fe7c 3810
@font ( specter8-frag font )
0000 0000 0000 0000 0008 0808 0800 0800
@@ 1533,7 1515,7 @@ JMP2r
0008 0808 0808 0800 0030 1008 0810 3000
0000 0032 4c00 0000 3c42 99a1 a199 423c
-|8000
- @spritesheet $1000
- &nametable $100
+|8000
+ @spritesheet $1000
+ &nametable $100
&color