~rabbits/orca-toy

b67a9f02b52b997411f2d69b69adceaab3c84c84 — Devine Lu Linvega 1 year, 4 months ago 9a8c86d
Improved interface icons
2 files changed, 100 insertions(+), 89 deletions(-)

M src/assets.tal
M src/main.tal
M src/assets.tal => src/assets.tal +21 -10
@@ 27,16 27,16 @@
	0018 2442 4242 2418 2442 4242 4224 1800
	0018 2442 4242 4242 261a 0202 0408 3000
	0000 0000 0010 1000 0000 0000 1010 0000
	0000 0000 0010 1000	0000 0000 1010 1020
	0000 0204 0810 2040	2010 0804 0200 0000
	0000 0000 0000 7c00	007c 0000 0000 0000
	0000 4020 1008 0402	0408 1020 4000 0000
	1824 4242 4204 0408	0810 1010 0010 1010
	3844 8282 9aaa aaaa	aaaa aa96 8082 4438
	0010 1028 2844 4444	8282 fe82 8282 0000
	00f8 4442 4242 4478	4442 4242 44f8 0000
	003c 4282 8280 8080	8080 8282 423c 0000
	00f8 4442 4242 4242	4242 4242 44f8 0000
	0000 0000 0010 1000 0000 0000 1010 1020
	0000 0204 0810 2040 2010 0804 0200 0000
	0000 0000 0000 7c00 007c 0000 0000 0000
	0000 4020 1008 0402 0408 1020 4000 0000
	1824 4242 4204 0408 0810 1010 0010 1010
	3844 8282 9aaa aaaa aaaa aa96 8082 4438
	0010 1028 2844 4444 8282 fe82 8282 0000
	00f8 4442 4242 4478 4442 4242 44f8 0000
	003c 4282 8280 8080 8080 8282 423c 0000
	00f8 4442 4242 4242 4242 4242 44f8 0000
	00fc 4240 4040 4878 4840 4040 42fc 0000
	80fe 4240 4040 447c 4440 4040 40e0 0000
	003a 4682 8080 8e82 8282 8282 463a 0000


@@ 96,6 96,17 @@
	4020 2020 2020 2010 1020 2020 2020 2040
	ffff ffff ffff ffff ffff ffff ffff ffff
	ffff ffff ffff ffff ffff ffff ffff ffff
&selector
	0000 0010 1010 1010 ee10 1010 1010 0000
	0000 006c 1010 1010 1010 1010 106c 0000
&beat
	0010 1028 2844 4482 8244 4428 2810 1000
&make
	00fe 8282 8282 8282 8282 8282 848a f400
&load
	00fe d6aa d6aa d6aa d6aa d6aa d4aa f400
&save
	0010 1092 9254 5428 d628 5454 9292 1000

@sin-pcm
	8083 8689 8c8f 9295 989b 9ea1 a4a7 aaad

M src/main.tal => src/main.tal +79 -79
@@ 267,8 267,7 @@ BRK
		DUP .timer/beat STZ 
		.timer/speed LDZ = BRK?

	.timer/frame LDZ2 INC2 
		.timer/frame STZ2
	( incr frame ) .timer/frame LDZ2 INC2 .timer/frame STZ2

	;run JSR2



@@ 456,11 455,11 @@ BRK
	.Mouse/state DEI BRK?

	;untrap JSR2
	

BRK

@on-mouse ( -> )
	

	( clear last cursor )
	.cursor/x LDZ2 .Screen/x DEO2
	.cursor/y LDZ2 .Screen/y DEO2


@@ 1381,42 1380,37 @@ RTN

RTN

@redraw ( -- )
@draw-meter ( -- )
	
	.grid/height LDZ #00
	&ver
		( pos-y ) DUP #00 SWP 10** [ .grid/y1 LDZ2 ++ ] .Screen/y DEO2
		.grid/width LDZ #00
		&hor
			( pos-x ) DUP #00 SWP 8** [ .grid/x1 LDZ2 ++ ] .Screen/x DEO2
			GET-ITER
			( sprite ) DUP2 ;get-cell-sprite JSR2
			( color ) SWP2 ,get-cell-type JSR TOS ;cell-styles ++ LDA
			;draw-char JSR2
			INC GTHk ,&hor JCN
		POP2
		INC GTHk ,&ver JCN
	POP2
	,draw-toolbar JSR
	;draw-meter JSR2
	.toolbar/y1 LDZ2 #0001 -- .Screen/y DEO2

RTN
	( merge channels )
	.Audio0/output DEI DUP #0f AND STH #04 SFT STH
	.Audio1/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr
	.Audio2/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr
	.Audio3/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr

@get-cell-type ( x y -- type )
	
	OVR .selection/x1 LDZ < ,&end JCN
	OVR .selection/x2 LDZ > ,&end JCN
	DUP .selection/y1 LDZ < ,&end JCN
	DUP .selection/y2 LDZ > ,&end JCN
		POP2 #06 RTN 
	&end
	GET-TYPE
	( draw )
	#00 #08
	&loop
		.toolbar/x2 LDZ2 #0028 -- .Screen/x DEO2
		DUP OVRr STHr 4/ < .Screen/pixel DEO
		.toolbar/x2 LDZ2 #0026 -- .Screen/x DEO2
		DUP STHkr 4/ < .Screen/pixel DEO
		.Screen/y DEI2 INC2 .Screen/y DEO2
		#01 - LTHk ,&loop JCN
	POP2

	POP2r

RTN

@draw-toolbar ( -- )
		
	( skip on samll screens )

	( skip on small screens )
	.toolbar/y1 LDZ2 .Screen/height DEI2 << RTN?

	.toolbar/y1 LDZ2 .Screen/y DEO2


@@ 1428,23 1422,18 @@ RTN
	.selection/y1 LDZ #01 ;draw-byte JSR2

	.grid/x1 LDZ2 #0020 ++ .Screen/x DEO2
	;selection-icns .selection/insert LDZ TOS 8** ++ .Screen/addr DEO2
	#02 .selection/x1 LDZ .selection/y1 LDZ .selection/x2 LDZ .selection/y2 LDZ == + .Screen/sprite DEO
	;font/selector .selection/insert LDZ TOS 10** ++
		#02 .selection/x1 LDZ2 .selection/x2 LDZ2 == + 
		;draw-char JSR2

	( Frame )
	.grid/x1 LDZ2 #0030 ++ .Screen/x DEO2
	.timer/frame INC LDZ #01 ;draw-byte JSR2

	.grid/x1 LDZ2 #0040 ++ .Screen/x DEO2
	;beat-icn .Screen/addr DEO2
	#03 .timer/frame INC LDZ #07 AND #00 = - .Screen/sprite DEO
	
	( Speed )
	.grid/x1 LDZ2 #0050 ++ .Screen/x DEO2
	.timer/speed LDZ #01 ;draw-byte JSR2
	.grid/x1 LDZ2 #0060 ++ .Screen/x DEO2
	( t ) #74 GET-CHAR-ADDR #01 ;draw-char JSR2
	.grid/x1 LDZ2 #0068 ++ .Screen/x DEO2
	( h ) #68 GET-CHAR-ADDR #01 ;draw-char JSR2
	;font/beat
		#03 .timer/frame INC LDZ #07 AND #00 = -
		;draw-char JSR2

	( d-pad )
	.dpad LDZ DUP #20 < ,&no-dpad JCN


@@ 1454,56 1443,34 @@ RTN
		;font #00 ;draw-char JSR2
		STH2r #0018 ++ .Screen/x DEO2
		.dpad LDZ GET-CHAR-ADDR #01 ;draw-char JSR2
		,&continue JMP
		&no-dpad
	( Speed )
	.grid/x1 LDZ2 #0050 ++ .Screen/x DEO2
	.timer/speed LDZ #01 ;draw-byte JSR2
	.grid/x1 LDZ2 #0060 ++ .Screen/x DEO2
	( t ) #74 GET-CHAR-ADDR #03 ;draw-char JSR2
	.grid/x1 LDZ2 #0068 ++ .Screen/x DEO2
	( h ) #68 GET-CHAR-ADDR #03 ;draw-char JSR2
	&continue 
	POP

	( File )
	.grid/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
	;load-icn .Screen/addr DEO2
	#01 .Screen/sprite DEO
	;font/make #01 ;draw-char JSR2
	STH2r #0020 -- .Screen/x DEO2
	;make-icn .Screen/addr DEO2
	#01 .Screen/sprite DEO
	;font/load #01 ;draw-char JSR2

	( filepath )
	#03 ;draw-filepath JSR2

RTN

@draw-meter ( -- )
	
	.toolbar/y1 LDZ2 #0001 -- .Screen/y DEO2

	( merge channels )
	.Audio0/output DEI DUP #0f AND STH #04 SFT STH
	.Audio1/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr
	.Audio2/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr
	.Audio3/output DEI DUP #0f AND STH #04 SFT STH
		ROTr ADDr ROTr ROTr ADDr SWPr

	( draw )
	#00 #08
	&loop
		.toolbar/x2 LDZ2 #0028 -- .Screen/x DEO2
		DUP OVRr STHr 4/ < .Screen/pixel DEO
		.toolbar/x2 LDZ2 #0026 -- .Screen/x DEO2
		DUP STHkr 4/ < .Screen/pixel DEO
		.Screen/y DEI2 INC2 .Screen/y DEO2
		#01 - LTHk ,&loop JCN
	POP2

	POP2r

RTN

@draw-state ( -- )
	
	.toolbar/x2 LDZ2 #0008 -- .Screen/x DEO2
	.toolbar/y1 LDZ2 .Screen/y DEO2
	;save-icn .Screen/addr DEO2
	#01 .state/changed LDZ + .Screen/sprite DEO
	;font/save #01 .state/changed LDZ + ;draw-char JSR2

RTN



@@ 1524,6 1491,39 @@ RTN

RTN

@redraw ( -- )
	
	.grid/height LDZ #00
	&ver
		( pos-y ) DUP #00 SWP 10** [ .grid/y1 LDZ2 ++ ] .Screen/y DEO2
		.grid/width LDZ #00
		&hor
			( pos-x ) DUP #00 SWP 8** [ .grid/x1 LDZ2 ++ ] .Screen/x DEO2
			GET-ITER
			( sprite ) DUP2 ;get-cell-sprite JSR2
			( color ) SWP2 ,get-cell-type JSR TOS ;cell-styles ++ LDA
			;draw-char JSR2
			INC GTHk ,&hor JCN
		POP2
		INC GTHk ,&ver JCN
	POP2
	;draw-toolbar JSR2
	;draw-meter JSR2

RTN

@get-cell-type ( x y -- type )
	
	OVR .selection/x1 LDZ < ,&end JCN
	OVR .selection/x2 LDZ > ,&end JCN
	DUP .selection/y1 LDZ < ,&end JCN
	DUP .selection/y2 LDZ > ,&end JCN
		POP2 #06 RTN 
	&end
	GET-TYPE

RTN

( file )

@new-file ( default* -- )