@@ 192,12 192,14 @@
.frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0030 ++ HOR TOS 8** #0080 SIZE-TO-RECT ;tileview SET-RECT
.frame/x1 LDZ2 #0082 ++ .frame/y1 LDZ2 #0030 ++ #007f #007f SIZE-TO-RECT ;nametable SET-RECT
+
+ .frame/x1 LDZ2 #0001 -- .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;zoomview SET-RECT
+ .frame/x1 LDZ2 #002f ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
+ .frame/x1 LDZ2 #005f ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
+ .frame/x1 LDZ2 #008f ++ .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;blendview SET-RECT
+ .frame/x1 LDZ2 #00bf ++ .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT
+
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ++ #0100 #0008 SIZE-TO-RECT ;toolview SET-RECT
- .frame/x1 LDZ2 .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;blendview SET-RECT
- .frame/x1 LDZ2 #0030 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
- .frame/x1 LDZ2 #0060 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
- .frame/x1 LDZ2 #0090 ++ .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;zoomview SET-RECT
- .frame/x1 LDZ2 #00c0 ++ .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT
.frame/x1 LDZ2 #0002 -- .workspace-frame/x1 STZ2
.tileview/y1 LDZ2 #0001 -- .workspace-frame/y1 STZ2
@@ 626,12 628,12 @@ BRK
DUP #0f > ,&no-set JCN
DUP .settings/blend LDZ #b0 AND + .settings/blend STZ
&no-set
- DUP #12 ! ,&no-hor JCN
- .settings/blend LDZ #10 EOR .settings/blend STZ
- &no-hor
- DUP #13 ! ,&no-ver JCN
+ DUP #12 ! ,&no-ver JCN
.settings/blend LDZ #20 EOR .settings/blend STZ
&no-ver
+ DUP #13 ! ,&no-hor JCN
+ .settings/blend LDZ #10 EOR .settings/blend STZ
+ &no-hor
POP
;draw-blendview JSR2
;draw-preview JSR2
@@ 873,7 875,7 @@ RTN
;draw-nametable JSR2
;draw-zoomview JSR2
- .frame/x1 LDZ2 #0080 ++ .tileview/y1 LDZ2 INC2 .tileview/y2 LDZ2 #03 ;line-ver JSR2
+ .frame/x1 LDZ2 #0080 ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 INC2 #03 ;line-ver JSR2
RTN
@@ 1047,81 1049,47 @@ RTN
RTN
-@draw-toolview ( -- )
-
- .toolview/y1 LDZ2 .Screen/y DEO2
- ( colors )
- .toolview/x1 LDZ2 STH2k .Screen/x DEO2
- ;circle-icns [ .settings/color LDZ #01 = TOS 8** ] ++ .Screen/addr DEO2
- #01 .Screen/sprite DEO
- STH2kr #0008 ++ .Screen/x DEO2
- ;circle-icns [ .settings/color LDZ #02 = TOS 8** ] ++ .Screen/addr DEO2
- #02 .Screen/sprite DEO
- STH2kr #0010 ++ .Screen/x DEO2
- ;circle-icns [ .settings/color LDZ #03 = TOS 8** ] ++ .Screen/addr DEO2
- #03 .Screen/sprite DEO
- ( tools )
- STH2kr #0020 ++ .Screen/x DEO2
- ;tool-brush .Screen/addr DEO2
- #01 .settings/tool LDZ #00 = + .Screen/sprite DEO
- STH2kr #0029 ++ .Screen/x DEO2
- ;tool-selector .Screen/addr DEO2
- #01 .settings/tool LDZ #01 = + .Screen/sprite DEO
- STH2r #0030 ++ .Screen/x DEO2
- ;zoom-icns [ .settings/zoom LDZ TOS 8** ++ ] .Screen/addr DEO2
- #01 .settings/zoom LDZ + .Screen/sprite DEO
- ( file i/o )
- ;draw-state JSR2
- .toolview/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
- ;load-icn .Screen/addr DEO2
- #01 .Screen/sprite DEO
- STH2r #0020 -- .Screen/x DEO2
- ;make-icn .Screen/addr DEO2
- #01 .Screen/sprite DEO
- ( filepath )
- #03 ;draw-filepath JSR2
-
-RTN
+( panes )
-@draw-blendview ( -- )
-
- ( value )
- .blendview/x1 LDZ2 .Screen/x DEO2
- .blendview/y2 LDZ2 #0007 -- .Screen/y DEO2
- ( get blending ) .settings/blend LDZ #01 ;draw-byte JSR2
+@draw-zoomview ( -- )
- .settings/focus LDZ2 .Screen/addr DEO2
- #10 #00
- &loop
- DUP 4MOD TOS 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
- DUP 4/ TOS 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
- #00 .Screen/sprite DEO
- DUP #00 + .settings/blend LDZ #b0 AND + .Screen/sprite DEO
- INC GTHk ,&loop JCN
+ ;bigpixel-icn .Screen/addr DEO2
+ #08 #00
+ &ver
+ DUP 4* TOS .zoomview/y1 LDZ2 ++ .Screen/y DEO2
+ #08 #00
+ &hor
+ DUP 4* TOS .zoomview/x1 LDZ2 ++ .Screen/x DEO2
+ ( get pixel )
+ GET-ITER
+ ( ch 1 )
+ TOS .settings/focus LDZ2 ++ [ STH2k ] LDA
+ SWP [ STHk ] #07 SWP - SFT #01 AND
+ ( ch2 )
+ [ STHr ] [ STH2r ] #0008 ++ LDA SWP
+ #07 SWP - SFT #01 AND
+ 2* +
+ .Screen/sprite DEO
+ INC GTHk ,&hor JCN
+ POP2
+ INC GTHk ,&ver JCN
POP2
- ( x )
- .blendview/x1 LDZ2 #0010 ++ .Screen/x DEO2
- .blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
- .settings/blend LDZ #10 AND #00 ! STH
- ;flipx-icns STHkr TOS 8** ++ .Screen/addr DEO2
- #03 STHr - .Screen/sprite DEO
- ( x )
- .blendview/x1 LDZ2 #0018 ++ .Screen/x DEO2
- .blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
- .settings/blend LDZ #20 AND #00 ! STH
- ;flipy-icns STHkr TOS 8** ++ .Screen/addr DEO2
- #03 STHr - .Screen/sprite DEO
+ .zoomview-frame #03 ;line-rect JSR2
+
+ ( label )
+ .zoomview/y1 LDZ2 #0021 ++ .Screen/y DEO2
+ .zoomview/x1 LDZ2 .Screen/x DEO2
+ ;arrow-ver-icns .Screen/addr DEO2
+ #03 .Screen/sprite DEO
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2
+ ;arrow-hor-icns .Screen/addr DEO2
+ #03 .Screen/sprite DEO
RTN
@draw-preview ( -- )
- ( value )
- .preview/x1 LDZ2 .Screen/x DEO2
- .preview/y2 LDZ2 INC2 .Screen/y DEO2
- .settings/ratio LDZ #02 ;draw-byte JSR2
-
( stash address )
.settings/focus LDZ2 STH2k .Screen/addr DEO2
#04 #00
@@ 1150,6 1118,11 @@ RTN
POP2
POP2r
+ ( label )
+ .preview/x1 LDZ2 .Screen/x DEO2
+ .preview/y2 LDZ2 INC2 .Screen/y DEO2
+ .settings/ratio LDZ #03 ;draw-byte JSR2
+
RTN
@draw-colorview ( -- )
@@ 1157,13 1130,13 @@ RTN
.colorview/y2 LDZ2 INC2 .Screen/y DEO2
.colorview/x1 LDZ2 .Screen/x DEO2
.System/r GET-COLOR GET-HEX-ADDR
- #02 .Screen/sprite DEO
+ #03 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
.System/g GET-COLOR GET-HEX-ADDR
- #02 .Screen/sprite DEO
+ #03 .Screen/sprite DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
.System/b GET-COLOR GET-HEX-ADDR
- #02 .Screen/sprite DEO
+ #03 .Screen/sprite DEO
.colorview/x1 LDZ2 .colorview/y1 LDZ2
[ .System/r GET-COLOR ] ,&slider JSR
@@ 1189,12 1162,45 @@ RTN
RTN
+@draw-blendview ( -- )
+
+ .settings/focus LDZ2 .Screen/addr DEO2
+ #10 #00
+ &loop
+ DUP 4MOD TOS 8** .blendview/x1 LDZ2 ++ .Screen/x DEO2
+ DUP 4/ TOS 8** .blendview/y1 LDZ2 ++ .Screen/y DEO2
+ #00 .Screen/sprite DEO
+ DUP #00 + .settings/blend LDZ #b0 AND + .Screen/sprite DEO
+ INC GTHk ,&loop JCN
+ POP2
+
+ ( label )
+ .blendview/x1 LDZ2 .Screen/x DEO2
+ .blendview/y2 LDZ2 #0007 -- .Screen/y DEO2
+ ( get blending ) .settings/blend LDZ #03 ;draw-byte JSR2
+
+ ( y )
+ .blendview/x1 LDZ2 #0010 ++ .Screen/x DEO2
+ .blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
+ .settings/blend LDZ #20 AND #00 ! STH
+ ;arrow-ver-icns STHkr TOS 8** ++ .Screen/addr DEO2
+ #02 STHr - .Screen/sprite DEO
+
+ ( x )
+ .blendview/x1 LDZ2 #0018 ++ .Screen/x DEO2
+ .blendview/y1 LDZ2 #0021 ++ .Screen/y DEO2
+ .settings/blend LDZ #10 AND #00 ! STH
+ ;arrow-hor-icns STHkr TOS 8** ++ .Screen/addr DEO2
+ #02 STHr - .Screen/sprite DEO
+
+RTN
+
@draw-dataview ( -- )
( position )
.dataview/x1 LDZ2 .Screen/x DEO2
.dataview/y2 LDZ2 INC2 .Screen/y DEO2
- .settings/focus LDZ2 BANK-SPRITESHEET -- #02 ;draw-short JSR2
+ .settings/focus LDZ2 BANK-SPRITESHEET -- #03 ;draw-short JSR2
( depth1 )
#04 #00
@@ 1203,47 1209,45 @@ RTN
DUP 8* TOS .dataview/y1 LDZ2 ++ .Screen/y DEO2
DUP 2* TOS .settings/focus LDZ2 ++ LDA2 #01 ;draw-short JSR2
.dataview/x1 LDZ2 #0020 ++ .Screen/x DEO2
- DUP 2* TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #03 ;draw-short JSR2
+ DUP 2* TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #02 ;draw-short JSR2
INC GTHk ,&loop JCN
POP2
RTN
-@draw-zoomview ( -- )
-
- ;bigpixel-icn .Screen/addr DEO2
- #08 #00
- &ver
- DUP 4* TOS .zoomview/y1 LDZ2 ++ .Screen/y DEO2
- #08 #00
- &hor
- DUP 4* TOS .zoomview/x1 LDZ2 ++ .Screen/x DEO2
- ( get pixel )
- GET-ITER
- ( ch 1 )
- TOS .settings/focus LDZ2 ++ [ STH2k ] LDA
- SWP [ STHk ] #07 SWP - SFT #01 AND
- ( ch2 )
- [ STHr ] [ STH2r ] #0008 ++ LDA SWP
- #07 SWP - SFT #01 AND
- 2* +
- .Screen/sprite DEO
- INC GTHk ,&hor JCN
- POP2
- INC GTHk ,&ver JCN
- POP2
-
- .zoomview-frame #03 ;line-rect JSR2
-
- ( effects )
- .zoomview/y1 LDZ2 #0021 ++ .Screen/y DEO2
- .zoomview/x1 LDZ2 .Screen/x DEO2
- ;opshift-icn .Screen/addr DEO2
+@draw-toolview ( -- )
+
+ .toolview/y1 LDZ2 .Screen/y DEO2
+ ( colors )
+ .toolview/x1 LDZ2 STH2k .Screen/x DEO2
+ ;circle-icns [ .settings/color LDZ #01 = TOS 8** ] ++ .Screen/addr DEO2
#01 .Screen/sprite DEO
-
- .Screen/x DEI2 #0008 ++ .Screen/x DEO2
- ;oproll-icn .Screen/addr DEO2
+ STH2kr #0008 ++ .Screen/x DEO2
+ ;circle-icns [ .settings/color LDZ #02 = TOS 8** ] ++ .Screen/addr DEO2
+ #02 .Screen/sprite DEO
+ STH2kr #0010 ++ .Screen/x DEO2
+ ;circle-icns [ .settings/color LDZ #03 = TOS 8** ] ++ .Screen/addr DEO2
+ #03 .Screen/sprite DEO
+ ( tools )
+ STH2kr #0020 ++ .Screen/x DEO2
+ ;tool-brush .Screen/addr DEO2
+ #01 .settings/tool LDZ #00 = + .Screen/sprite DEO
+ STH2kr #0029 ++ .Screen/x DEO2
+ ;tool-selector .Screen/addr DEO2
+ #01 .settings/tool LDZ #01 = + .Screen/sprite DEO
+ STH2r #0030 ++ .Screen/x DEO2
+ ;zoom-icns [ .settings/zoom LDZ TOS 8** ++ ] .Screen/addr DEO2
+ #01 .settings/zoom LDZ + .Screen/sprite DEO
+ ( file i/o )
+ ;draw-state JSR2
+ .toolview/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
+ ;load-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
+ STH2r #0020 -- .Screen/x DEO2
+ ;make-icn .Screen/addr DEO2
+ #01 .Screen/sprite DEO
+ ( filepath )
+ #03 ;draw-filepath JSR2
RTN
@@ 1538,9 1542,6 @@ RTN
@bigpixel-icn f0f0 f0f0 0000 0000
@halftone-icn aa55 aa55 aa55 aa55
-@opshift-icn 0010 387c fe10 1000
-@oproll-icn 0008 0c0e 7f0e 0c08
-
@save-icn 1054 28c6 2854 1000
@make-icn fe82 8282 848a f400
@load-icn feaa d6aa d4aa f400
@@ 1566,12 1567,12 @@ RTN
@zoom-icns
3048 8484 4834 0200 ( in )
3245 8284 4834 0200 ( out )
-@flipx-icns
- 0000 0000 aa00 0000
- 0000 0000 fe00 0000
-@flipy-icns
- 0008 0008 0008 0008
- 0008 0808 0808 0808
+@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
0014 1400 0000 0000 0024 7e24 247e 2400