~rabbits/nasu

699c3e0d41a4c4b860708b440167391dc79b5b17 — neauoire 11 months ago e3e365d
Cleanup init
1 files changed, 60 insertions(+), 78 deletions(-)

M src/main.tal
M src/main.tal => src/main.tal +60 -78
@@ 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