@@ 12,6 12,8 @@
Modify up to 4 pages
Save/load/rename
Select paint color for 2-bit mode
+ Inject a new tile at location
+ Delete tile at location
)
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
@@ 34,7 36,7 @@
%GTS2 { #8000 ++ SWP2 #8000 ++ << }
%INCR { SWP #01 + SWP }
-%GET-ITERATORS { OVR2 OVR2 POP SWP POP SWP }
+%GET-ITERATORS { OVR2 OVR2 POP SWP POP SWP } ( ? SWP2k POP SWP POP )
%SIZE-TO-RECT {
STH2 STH2 OVR2 STH2r ++ OVR2 STH2r ++
@@ 49,7 51,7 @@
} ( x1 y1 x2 y2 addr -- )
%BANK { #2000 }
-%SELECTED-ADDR { .settings/selection LDZ TOS #0010 ** BANK ++ }
+%GET-ADDR { .settings/selection LDZ TOS #0010 ** BANK ++ }
( devices )
@@ 71,13 73,13 @@
&page $2
&tile $2
&ratio $1
- &selection $1 ]
+ &selection $1
+ &tool $1 ]
@frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 &width $2 &height $2 ]
( interface )
-@bankview [ &x $2 &y $2 &mode $1 &selection $1 ]
-
+@bankview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
@editview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
@colorview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
@blendview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
@@ 89,7 91,6 @@
@pt [ &x $1 &y $1 ]
@color $1
-@i $1
( program )
@@ 119,14 120,12 @@
.frame/width LDZ2 .frame/height LDZ2
SIZE-TO-RECT ;frame SET-RECT
- .frame/x1 LDZ2 #0010 ++ .bankview/x STZ2
- .frame/y1 LDZ2 .bankview/y STZ2
-
- .frame/x2 LDZ2 #0010 -- .frame/y1 LDZ2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT
+ .frame/x1 LDZ2 #0010 ++ .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;bankview SET-RECT
+ .frame/x2 LDZ2 #0098 -- .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT
.frame/x1 LDZ2 #0010 ++ .frame/y2 LDZ2 #001a -- #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT
.frame/x1 LDZ2 #0040 ++ .frame/y2 LDZ2 #001a -- #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
.frame/x1 LDZ2 #0070 ++ .frame/y2 LDZ2 #001a -- #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
- .frame/x2 LDZ2 #0098 -- .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT
+ .frame/x1 LDZ2 #00a0 ++ .frame/y2 LDZ2 #001a -- #0040 #0020 SIZE-TO-RECT ;dataview SET-RECT
( editview grid )
.editview/x1 LDZ2 DUP2 #0080 ++ .editview/y1 LDZ2 #0020 ++ #03 ;line-hor JSR2
@@ 136,7 135,39 @@
.editview/x1 LDZ2 #0040 ++ .editview/y1 LDZ2 DUP2 #0080 ++ #03 ;line-ver JSR2
.editview/x1 LDZ2 #0060 ++ .editview/y1 LDZ2 DUP2 #0080 ++ #03 ;line-ver JSR2
- .editview/x1 LDZ2 #0002 -- .editview/y1 LDZ2 #0002 -- .editview/x2 LDZ2 #0001 ++ .editview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+ (
+
+ .bankview/x1 LDZ2 #0002 --
+ .bankview/y1 LDZ2 #0002 --
+ .bankview/x2 LDZ2 #0001 ++
+ .bankview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+
+ .blendview/x1 LDZ2 #0002 --
+ .blendview/y1 LDZ2 #0002 --
+ .blendview/x2 LDZ2 #0001 ++
+ .blendview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+
+ .preview/x1 LDZ2 #0002 --
+ .preview/y1 LDZ2 #0002 --
+ .preview/x2 LDZ2 #0001 ++
+ .preview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+
+ .colorview/x1 LDZ2 #0002 --
+ .colorview/y1 LDZ2 #0002 --
+ .colorview/x2 LDZ2 #0001 ++
+ .colorview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+
+ .dataview/x1 LDZ2 #0002 --
+ .dataview/y1 LDZ2 #0002 --
+ .dataview/x2 LDZ2 #0001 ++
+ .dataview/y2 LDZ2 #0007 -- #03 ;line-rect JSR2
+
+ .editview/x1 LDZ2 #0002 --
+ .editview/y1 LDZ2 #0002 --
+ .editview/x2 LDZ2 #0001 ++
+ .editview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
+
+ )
#01 .settings/blending STZ
@@ 168,14 199,15 @@ BRK
.Controller/button DEI #f0 AND
DUP #04 SFT #01 AND #01 ! ,&no-up JCN
- ( move ) .bankview/selection LDZ #10 - .bankview/selection STZ &no-up
+ ( move ) .settings/selection LDZ #10 - .settings/selection STZ &no-up
DUP #05 SFT #01 AND #01 ! ,&no-down JCN
- ( move ) .bankview/selection LDZ #10 + .bankview/selection STZ &no-down
+ ( move ) .settings/selection LDZ #10 + .settings/selection STZ &no-down
DUP #06 SFT #01 AND #01 ! ,&no-left JCN
- ( move ) .bankview/selection LDZ #01 - .bankview/selection STZ &no-left
+ ( move ) .settings/selection LDZ #01 - .settings/selection STZ &no-left
DUP #07 SFT #01 AND #01 ! ,&no-right JCN
- ( move ) .bankview/selection LDZ #01 + .bankview/selection STZ &no-right
+ ( move ) .settings/selection LDZ #01 + .settings/selection STZ &no-right
POP
+ ;redraw JSR2
BRK
@@ 186,13 218,13 @@ BRK
( skip ) .Mouse/state DEI #00 ! #01 JCN [ BRK ]
( toolbar )
- .Mouse/y DEI2 .bankview/y LDZ2 #0010 -- -- #0008 // #0000 !! ;&no-toolbar-click JCN2
+ .Mouse/y DEI2 .bankview/y1 LDZ2 #0010 -- -- #0008 // #0000 !! ;&no-toolbar-click JCN2
( brush )
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 // #000d << ,&no-brush-click JCN
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 // #000f >> ,&no-brush-click JCN
- ( select ) .mouse/x LDZ2 .bankview/x LDZ2 -- #0008 // #000d -- TOB .bankview/mode STZ
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 // #000d << ,&no-brush-click JCN
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 // #000f >> ,&no-brush-click JCN
+ ( select ) .mouse/x LDZ2 .bankview/x1 LDZ2 -- #0008 // #000d -- TOB .settings/tool STZ
&no-brush-click
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 // #0005 !! ,&no-toggle-depth JCN
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 // #0005 !! ,&no-toggle-depth JCN
;toggle-depth JSR2
&no-toggle-depth
( release ) #00 .Mouse/state DEO
@@ 200,8 232,8 @@ BRK
&no-toolbar-click
( bankview )
- .Mouse/x DEI2 .bankview/x LDZ2 >> .Mouse/x DEI2 .bankview/x LDZ2 #0080 ++ << #0101 ==
- .Mouse/y DEI2 .bankview/y LDZ2 >> .Mouse/y DEI2 .bankview/y LDZ2 #0080 ++ << #0101 ==
+ .Mouse/x DEI2 DUP2 .bankview/x1 LDZ2 >> ROT ROT .bankview/x2 LDZ2 << #0101 ==
+ .Mouse/y DEI2 DUP2 .bankview/y1 LDZ2 >> ROT ROT .bankview/y2 LDZ2 << #0101 ==
#0101 == ;on-touch-bankview JCN2
( editview )
@@ 233,38 265,40 @@ BRK
@on-touch-bankview ( -> )
- .bankview/mode LDZ #01 ! ,¬-copy-mode JCN
+ .settings/tool LDZ #01 ! ,¬-copy-mode JCN
#00 #10
©-loop
( from )
- OVR TOS SELECTED-ADDR ++ LDA STH
+ OVR TOS GET-ADDR ++ LDA STH
( to )
OVR STHr SWP TOS
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 //
- .Mouse/y DEI2 .bankview/y LDZ2 -- #0008 // #0010 ** ++
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 //
+ .Mouse/y DEI2 .bankview/y1 LDZ2 -- #0008 // #0010 ** ++
#0010 ** BANK ++ ++ STA
INCR
LTHk ,©-loop JCN
POP2
+ ( release ) #00 .Mouse/state DEO
;redraw JSR2 BRK
¬-copy-mode
- .bankview/mode LDZ #02 ! ,¬-erase-mode JCN
+ .settings/tool LDZ #02 ! ,¬-erase-mode JCN
#00 #10
&erase-loop
OVR #00 SWP TOS
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 //
- .Mouse/y DEI2 .bankview/y LDZ2 -- #0008 // #0010 ** ++
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 //
+ .Mouse/y DEI2 .bankview/y1 LDZ2 -- #0008 // #0010 ** ++
#0010 ** BANK ++ ++ STA
INCR
LTHk ,&erase-loop JCN
POP2
+ ( release ) #00 .Mouse/state DEO
;redraw JSR2 BRK
¬-erase-mode
( select )
- .Mouse/x DEI2 .bankview/x LDZ2 -- #0008 // TOB
- .Mouse/y DEI2 .bankview/y LDZ2 -- #0008 // TOB #40 SFT +
+ .Mouse/x DEI2 .bankview/x1 LDZ2 -- #0008 // TOB
+ .Mouse/y DEI2 .bankview/y1 LDZ2 -- #0008 // TOB #40 SFT +
.settings/selection STZ
;redraw JSR2
@@ 277,19 311,23 @@ BRK
BRK
@on-touch-dataview ( -> )
-
- .Mouse/y DEI2 .dataview/y1 LDZ2 -- STEP8 TOB #60 = ,&skip JCN BRK &skip
- .Mouse/x DEI2 .dataview/x1 LDZ2 -- #0008 // TOB
- DUP #00 ! ,&no-move-up JCN
- ;op_shiftup JSR2
+
+ .Mouse/x DEI2 .dataview/x1 LDZ2 -- #0008 // TOB
+ .Mouse/y DEI2 .dataview/y1 LDZ2 -- #0008 // TOB #40 SFT +
+ DUP #40 ! ,&no-move-up JCN
+ GET-ADDR ;op-shiftup JSR2
+ GET-ADDR #0008 ++ ;op-shiftup JSR2
( release ) #00 .Mouse/state DEO
;redraw JSR2 POP BRK &no-move-up
- DUP #01 ! ,&no-move-down JCN
- ;op_shiftdown JSR2
+ DUP #41 ! ,&no-move-down JCN
+ GET-ADDR ;op-shiftdown JSR2
+ GET-ADDR #0008 ++ ;op-shiftdown JSR2
( release ) #00 .Mouse/state DEO
;redraw JSR2 POP BRK &no-move-down
POP
+ ( release ) #00 .Mouse/state DEO
+
BRK
@on-touch-blendview ( -> )
@@ 375,36 413,38 @@ RTN
@toggle-depth ( -- )
- .bankview/selection LDZ
+ .settings/selection LDZ
.settings/depth LDZ #00 = .settings/depth STZ
RTN
-@op_shiftup ( -- )
+@op-shiftup ( addr* -- )
- .settings/tile LDZ2 LDA
- .settings/tile LDZ2 #0001 ++ LDA .settings/tile LDZ2 STA
- .settings/tile LDZ2 #0002 ++ LDA .settings/tile LDZ2 #0001 ++ STA
- .settings/tile LDZ2 #0003 ++ LDA .settings/tile LDZ2 #0002 ++ STA
- .settings/tile LDZ2 #0004 ++ LDA .settings/tile LDZ2 #0003 ++ STA
- .settings/tile LDZ2 #0005 ++ LDA .settings/tile LDZ2 #0004 ++ STA
- .settings/tile LDZ2 #0006 ++ LDA .settings/tile LDZ2 #0005 ++ STA
- .settings/tile LDZ2 #0007 ++ LDA .settings/tile LDZ2 #0006 ++ STA
- .settings/tile LDZ2 #0007 ++ STA
+ STH2
+ STH2kr LDA
+ STH2kr #0001 ++ LDA STH2kr STA
+ STH2kr #0002 ++ LDA STH2kr #0001 ++ STA
+ STH2kr #0003 ++ LDA STH2kr #0002 ++ STA
+ STH2kr #0004 ++ LDA STH2kr #0003 ++ STA
+ STH2kr #0005 ++ LDA STH2kr #0004 ++ STA
+ STH2kr #0006 ++ LDA STH2kr #0005 ++ STA
+ STH2kr #0007 ++ LDA STH2kr #0006 ++ STA
+ STH2r #0007 ++ STA
RTN
-@op_shiftdown ( -- )
+@op-shiftdown ( addr* -- )
- .settings/tile LDZ2 #0007 ++ LDA
- .settings/tile LDZ2 #0006 ++ LDA .settings/tile LDZ2 #0007 ++ STA
- .settings/tile LDZ2 #0005 ++ LDA .settings/tile LDZ2 #0006 ++ STA
- .settings/tile LDZ2 #0004 ++ LDA .settings/tile LDZ2 #0005 ++ STA
- .settings/tile LDZ2 #0003 ++ LDA .settings/tile LDZ2 #0004 ++ STA
- .settings/tile LDZ2 #0002 ++ LDA .settings/tile LDZ2 #0003 ++ STA
- .settings/tile LDZ2 #0001 ++ LDA .settings/tile LDZ2 #0002 ++ STA
- .settings/tile LDZ2 LDA .settings/tile LDZ2 #0001 ++ STA
- .settings/tile LDZ2 STA
+ STH2
+ STH2kr #0007 ++ LDA
+ STH2kr #0006 ++ LDA STH2kr #0007 ++ STA
+ STH2kr #0005 ++ LDA STH2kr #0006 ++ STA
+ STH2kr #0004 ++ LDA STH2kr #0005 ++ STA
+ STH2kr #0003 ++ LDA STH2kr #0004 ++ STA
+ STH2kr #0002 ++ LDA STH2kr #0003 ++ STA
+ STH2kr #0001 ++ LDA STH2kr #0002 ++ STA
+ STH2kr LDA STH2kr #0001 ++ STA
+ STH2r STA
RTN
@@ 420,38 460,30 @@ RTN
RTN
@draw-bankview ( -- )
-
- .bankview/x LDZ2 #0002 -- .bankview/y LDZ2 #0002 -- .bankview/x LDZ2 #0081 ++ .bankview/y LDZ2 #0081 ++ #03 ;line-rect JSR2
-
- ( position )
-
- .bankview/x LDZ2 .Screen/x DEO2
- .bankview/y LDZ2 #0010 -- .Screen/y DEO2
- .settings/selection LDZ #22 ;draw-byte JSR2
( toolbar )
- .bankview/y LDZ2 #0010 -- .Screen/y DEO2
+ .bankview/y1 LDZ2 #0010 -- .Screen/y DEO2
- .bankview/x LDZ2 #0028 ++ .Screen/x DEO2
+ .bankview/x1 LDZ2 #0028 ++ .Screen/x DEO2
;depth_icns #00 .settings/depth LDZ #0008 ** ++ .Screen/addr DEO2
#23 .Screen/color DEO
- .bankview/x LDZ2 #0068 ++ .Screen/x DEO2
+ .bankview/x1 LDZ2 #0068 ++ .Screen/x DEO2
;tool_selector .Screen/addr DEO2
- #21 .bankview/mode LDZ #00 = + .Screen/color DEO
+ #21 .settings/tool LDZ #00 = + .Screen/color DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
;tool_hand .Screen/addr DEO2
- #21 .bankview/mode LDZ #01 = + .Screen/color DEO
+ #21 .settings/tool LDZ #01 = + .Screen/color DEO
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
;tool_eraser .Screen/addr DEO2
- #21 .bankview/mode LDZ #02 = + .Screen/color DEO
+ #21 .settings/tool LDZ #02 = + .Screen/color DEO
( guides )
- .bankview/x LDZ2 #0010 -- .Screen/x DEO2
- .bankview/y LDZ2 .Screen/y DEO2
+ .bankview/x1 LDZ2 #0010 -- .Screen/x DEO2
+ .bankview/y1 LDZ2 .Screen/y DEO2
;font-hex .Screen/addr DEO2
#00 #10
&guides
@@ 465,10 497,10 @@ RTN
( draw page )
#00 #10
&ver
- OVR #08 * TOS .bankview/y LDZ2 ++ .Screen/y DEO2
+ OVR #08 * TOS .bankview/y1 LDZ2 ++ .Screen/y DEO2
#00 #10
&hor
- OVR #08 * TOS .bankview/x LDZ2 ++ .Screen/x DEO2
+ OVR #08 * TOS .bankview/x1 LDZ2 ++ .Screen/x DEO2
GET-ITERATORS
( addr ) DUP2 TOS #0100 ** ROT TOS #0010 ** ++ BANK ++ .Screen/addr DEO2
( draw ) #40 SFT + .settings/selection LDZ = #40 .settings/blending LDZ + + .Screen/color DEO
@@ 484,7 516,7 @@ RTN
@draw-editview ( -- )
( tiles )
- SELECTED-ADDR STH2k .Screen/addr DEO2
+ GET-ADDR STH2k .Screen/addr DEO2
#00 #04
&ver
OVR #20 * TOS .editview/y1 LDZ2 ++ .Screen/y DEO2
@@ 518,8 550,6 @@ RTN
&ver
#00 #20
&hor
- OVR #04 MOD #00 = ,&skip JCN
- STH2 OVR STH2r ROT #04 MOD #00 = ,&skip JCN
( get x,y )
GET-ITERATORS
@@ 534,7 564,6 @@ RTN
#07 SWP - SFT #01 AND
.Screen/color DEO
- &skip
#0001 .Screen/x DEI2 ++ .Screen/x DEO2
( incr ) INCR
LTHk ,&hor JCN
@@ 549,53 578,8 @@ RTN
RTN
-@draw-dataview ( -- )
-
- ( bytes )
- .editview/y1 LDZ2 #0018 ++ .Screen/y DEO2
- #00 .i STZ
- &bytes
- .editview/x1 LDZ2 #0088 ++ .Screen/x DEO2
- .settings/tile LDZ2 #00 .i LDZ ++ LDA #22 ;draw-byte JSR2
- ( incr ) .i LDZ #01 + .i STZ
- ( incr ) .Screen/y DEI2 #0008 ++ .Screen/y DEO2
- .i LDZ #08 < ;&bytes JCN2
-
- ( operations )
- .Screen/y DEI2 #0008 ++ .Screen/y DEO2
- ;movedown_icn .Screen/addr DEO2
- #21 .Screen/color DEO
- .Screen/x DEI2 #0008 -- .Screen/x DEO2
- ;moveup_icn .Screen/addr DEO2
- #21 .Screen/color DEO
-
- ( draw tiles 2x2 )
- .editview/y1 LDZ2 .Screen/y DEO2
- #00 .pt/x STZ #00 .pt/y STZ .settings/tile LDZ2 .Screen/addr DEO2
-
- &tiles-ver
- #00 .pt/x STZ
- .editview/x1 LDZ2 #0088 ++ .Screen/x DEO2
- &tiles-hor
- ( draw ) #23 .Screen/color DEO
- ( incr ) .Screen/x DEI2 #0008 ++ .Screen/x DEO2
- ( incr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2
- ( incr ) .pt/x LDZ #01 + .pt/x STZ
- .pt/x LDZ #02 < ;&tiles-hor JCN2
- ( incr ) .pt/y LDZ #01 + .pt/y STZ
- ( incr ) .Screen/y DEI2 #0008 ++ .Screen/y DEO2
- .pt/y LDZ #02 < ;&tiles-ver JCN2
-
-RTN
-
@draw-blendview ( -- )
- ( outline )
- .blendview/x1 LDZ2 #0002 --
- .blendview/y1 LDZ2 #0002 --
- .blendview/x2 LDZ2 #0001 ++
- .blendview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
-
( value )
.blendview/x1 LDZ2 .Screen/x DEO2
.blendview/y2 LDZ2 #0001 ++ .Screen/y DEO2
@@ 618,19 602,13 @@ RTN
@draw-preview ( -- )
- ( outline )
- .preview/x1 LDZ2 #0002 --
- .preview/y1 LDZ2 #0002 --
- .preview/x2 LDZ2 #0001 ++
- .preview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
-
( value )
- .preview/x1 LDZ2 #0001 -- .Screen/x DEO2
+ .preview/x1 LDZ2 .Screen/x DEO2
.preview/y2 LDZ2 #0001 ++ .Screen/y DEO2
.settings/ratio LDZ #22 ;draw-byte JSR2
( stash address )
- SELECTED-ADDR DUP2 STH2 .Screen/addr DEO2
+ GET-ADDR DUP2 STH2 .Screen/addr DEO2
#00 #04
&ver
OVR #08 * TOS .preview/y1 LDZ2 ++ .Screen/y DEO2
@@ 665,14 643,8 @@ RTN
@draw-colorview ( -- )
- ( outline )
- .colorview/x1 LDZ2 #0002 --
- .colorview/y1 LDZ2 #0002 --
- .colorview/x2 LDZ2 #0001 ++
- .colorview/y2 LDZ2 #0001 ++ #03 ;line-rect JSR2
-
( value )
- .colorview/x1 LDZ2 #0001 -- .Screen/x DEO2
+ .colorview/x1 LDZ2 .Screen/x DEO2
.colorview/y2 LDZ2 #0001 ++ .Screen/y DEO2
.settings/brush LDZ #23 ;draw-byte JSR2
@@ 688,14 660,14 @@ RTN
LTHk ,&loop JCN
POP2
- .colorview/y1 LDZ2 #18 + .Screen/y DEO2
- .colorview/x1 LDZ2 #08 + .Screen/x DEO2
+ .colorview/y1 LDZ2 #0018 ++ .Screen/y DEO2
+ .colorview/x1 LDZ2 #0008 ++ .Screen/x DEO2
.System/r DEI2 ,&draw-color-code JSR
- .colorview/y1 LDZ2 #18 + .Screen/y DEO2
- .colorview/x1 LDZ2 #10 + .Screen/x DEO2
+ .colorview/y1 LDZ2 #0018 ++ .Screen/y DEO2
+ .colorview/x1 LDZ2 #0010 ++ .Screen/x DEO2
.System/g DEI2 ,&draw-color-code JSR
- .colorview/y1 LDZ2 #18 + .Screen/y DEO2
- .colorview/x1 LDZ2 #18 + .Screen/x DEO2
+ .colorview/y1 LDZ2 #0018 ++ .Screen/y DEO2
+ .colorview/x1 LDZ2 #0018 ++ .Screen/x DEO2
.System/b DEI2 ,&draw-color-code JSR
RTN
@@ 703,10 675,10 @@ RTN
&draw-color-code ( color* -- )
DUP ;font-hex ROT #0f AND #08 * #00 SWP ++ .Screen/addr DEO2
( draw ) #22 .Screen/color DEO
- .colorview/y1 LDZ2 #10 + .Screen/y DEO2
+ .colorview/y1 LDZ2 #0010 ++ .Screen/y DEO2
;font-hex ROT #04 SFT #08 * #00 SWP ++ .Screen/addr DEO2
( draw ) #22 .Screen/color DEO
- .colorview/y1 LDZ2 #08 + .Screen/y DEO2
+ .colorview/y1 LDZ2 #0008 ++ .Screen/y DEO2
DUP ;font-hex ROT #0f AND #08 * #00 SWP ++ .Screen/addr DEO2
( draw ) #22 .Screen/color DEO
.colorview/y1 LDZ2 .Screen/y DEO2
@@ 716,6 688,27 @@ RTN
RTN
+@draw-dataview ( -- )
+
+ ( position )
+ .dataview/x1 LDZ2 .Screen/x DEO2
+ .dataview/y2 LDZ2 #0001 ++ .Screen/y DEO2
+ .settings/selection LDZ #22 ;draw-byte JSR2
+
+ ( depth1 )
+ #00 #04
+ &loop
+ .dataview/x1 LDZ2 .Screen/x DEO2
+ OVR #08 * TOS .dataview/y1 LDZ2 ++ .Screen/y DEO2
+ OVR #02 * TOS GET-ADDR ++ LDA2 #23 ;draw-short JSR2
+ .dataview/x1 LDZ2 #0020 ++ .Screen/x DEO2
+ OVR #02 * TOS GET-ADDR ++ #0008 ++ LDA2 #23 ;draw-short JSR2
+ INCR
+ LTHk ,&loop JCN
+ POP2
+
+RTN
+
@draw-cursor ( -- )
( clear last cursor )
@@ 730,7 723,7 @@ RTN
( draw new cursor )
.mouse/x LDZ2 .Screen/x DEO2
.mouse/y LDZ2 .Screen/y DEO2
- ;tool_selector #00 .bankview/mode LDZ #08 * ++ .Screen/addr DEO2
+ ;tool_selector #00 .settings/tool LDZ #08 * ++ .Screen/addr DEO2
#32 .Mouse/state DEI #00 ! + .Screen/color DEO
RTN
@@ 859,4 852,5 @@ RTN
007c 8280 8080 827c 00fc 8282 8282 82fc
007c 8280 f080 827c 007c 8280 f080 8080
-@filepath1 [ "example.chr 00 ]
+@filepath1
+ "example.chr $1