~rabbits/nasu

216fadfc280b38f22f97c3d04a6cc993a043bb90 — neauoire 1 year, 9 months ago 07609bb
Progress on dataview
2 files changed, 146 insertions(+), 152 deletions(-)

M example.chr
M nasu.usm
M example.chr => example.chr +0 -0
M nasu.usm => nasu.usm +146 -152
@@ 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 ! ,&not-copy-mode JCN
	.settings/tool LDZ #01 ! ,&not-copy-mode JCN
		#00 #10
		&copy-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 ,&copy-loop JCN
		POP2
		( release ) #00 .Mouse/state DEO
		;redraw JSR2 BRK
	&not-copy-mode

	.bankview/mode LDZ #02 ! ,&not-erase-mode JCN
	.settings/tool LDZ #02 ! ,&not-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
	&not-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