~rabbits/uxn

514b2f7f588e0e738eba92404f6c863bd65771e1 — neauoire 2 months ago 4bac8e9
Minor optimizations to demos
M build.sh => build.sh +1 -1
@@ 42,7 42,7 @@ then
fi

echo "Assembling.."
./bin/uxnasm projects/demos/bifurcan.usm bin/boot.rom
./bin/uxnasm projects/demos/drum-rack.usm bin/boot.rom

echo "Running.."
if [ "${2}" = '--cli' ]; 

M projects/demos/drum-rack.usm => projects/demos/drum-rack.usm +8 -8
@@ 56,9 56,9 @@
|0100 ( -> )
	
	( theme ) 
	#4ff2 .System/r DEO2 
	#2f8c .System/g DEO2 
	#afb6 .System/b DEO2
	#0fe5 .System/r DEO2 
	#0fc5 .System/g DEO2 
	#0f25 .System/b DEO2

	( vectors )
	;on-control .Controller/vector DEO2


@@ 142,7 142,7 @@
		( draw mixer )
		OVR #04 / ;draw-mixer JSR2
		( incr ) SWP #01 + SWP
		DUP2 < ,&draw-pads JCN
		LTHk ,&draw-pads JCN
	POP2

	;draw-octave JSR2


@@ 160,7 160,7 @@ BRK
		( output ) .Audio0/output STHr #10 * + DEI 
		;draw-monitor JSR2
		( incr ) SWP #01 + SWP
		DUP2 < ,&loop JCN
		LTHk ,&loop JCN
	POP2

BRK


@@ 359,7 359,7 @@ RTN
		.Screen/x DEI2 #0001 ++ .Screen/x DEO2
		( draw ) #02 .Screen/color DEO
		( incr ) SWP #01 + SWP
		DUP2 < ,&loop JCN
		LTHk ,&loop JCN
	POP2
	POP2r



@@ 476,7 476,7 @@ RTN
		.Screen/x DEI2 #0002 -- .Screen/x DEO2
		.Screen/y DEI2 #0002 ++ .Screen/y DEO2
		( incr ) SWP #01 + SWP
		DUP2 < ,&loop JCN
		LTHk ,&loop JCN
	POP2

	POPr


@@ 494,7 494,7 @@ RTN
		( draw ) DUPr STHr .Screen/color DEO
		( incr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2  
		( incr ) SWP2 #0008 ++ SWP2
		OVR2 OVR2 << ,&loop JCN
		LTH2k ,&loop JCN
	POP2 POP2 
	POPr


M projects/demos/life.usm => projects/demos/life.usm +6 -6
@@ 77,7 77,7 @@ BRK
	&clear-loop
		OVR2 #0000 SWP2 STA2
		SWP2 #0002 ++ SWP2
		OVR2 OVR2 !! ,&clear-loop JCN
		NEQ2k ,&clear-loop JCN
	POP2 POP2

	;run-grid JSR2


@@ 88,7 88,7 @@ BRK
		OVR2 DUP2 LDA2 
		SWP2 #2000 -- STA2
		SWP2 #0002 ++ SWP2
		OVR2 OVR2 !! ,&copy-loop JCN
		NEQ2k ,&copy-loop JCN
	POP2 POP2

	;draw-grid JSR2


@@ 154,10 154,10 @@ BRK
			OVR TOS #0002 ** .anchor/x LDZ2 ++ .Screen/x DEO2
			OVR DUPr STHr ,get-cell JSR INCR .Screen/color DEO
			SWP INCR SWP
			DUP2 ! ,&hor JCN
			NEQk ,&hor JCN
		POP2 POPr
		SWP INCR SWP
		DUP2 ! ,&ver JCN
		NEQk ,&ver JCN
	POP2

RTN


@@ 214,10 214,10 @@ RTN
			( state ) STH2r ;get-cell JSR2
			,run-cell JSR
			SWP INCR SWP
			DUP2 ! ,&hor JCN
			NEQk ,&hor JCN
		POP2 POPr
		SWP INCR SWP
		DUP2 ! ,&ver JCN
		NEQk ,&ver JCN
	POP2

RTN 

M projects/demos/polycat.usm => projects/demos/polycat.usm +18 -21
@@ 1,9 1,6 @@
( polycat )

%RTN { JMP2r }
%+ { ADD2 } %- { SUB2 } 
%* { MUL2 } %/ { DIV2 } 
%> { GTH2 }

( devices )



@@ 28,8 25,8 @@
	#0caf .System/b DEO2

	( find center )
	.Screen/width DEI2 #0002 / #0008 - .cat/x STZ2
	.Screen/height DEI2 #0004 / #0003 * #0018 - .cat/y STZ2
	.Screen/width DEI2 #0002 DIV2 #0008 SUB2 .cat/x STZ2
	.Screen/height DEI2 #0004 DIV2 #0003 MUL2 #0018 SUB2 .cat/y STZ2

	( vectors )
	;on-mouse .Mouse/vector DEO2


@@ 44,8 41,8 @@ BRK
	
	;draw-cursor JSR2

	.Mouse/x DEI2 .cat/x LDZ2 > #20 MUL
	.Mouse/y DEI2 .cat/y LDZ2 > #40 MUL
	.Mouse/x DEI2 .cat/x LDZ2 GTH2 #20 MUL
	.Mouse/y DEI2 .cat/y LDZ2 GTH2 #40 MUL
		ADD #00 SWP ;draw-eye JSR2

BRK


@@ 67,11 64,11 @@ BRK

	( ears )
	.cat/y LDZ2 .Screen/y DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 SUB2 .Screen/x DEO2
	;ears .Screen/addr DEO2
	#41 .Screen/color DEO
	STH2r .Screen/x DEO2
	;ears #0010 + .Screen/addr DEO2
	;ears #0010 ADD2 .Screen/addr DEO2
	#41 .Screen/color DEO

	#0000 ,draw-eye JSR


@@ 81,24 78,24 @@ RTN

@draw-eye ( quad* -- )
	
	.cat/y LDZ2 #0008 + .Screen/y DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2
	DUP2 ;eye + .Screen/addr DEO2
	.cat/y LDZ2 #0008 ADD2 .Screen/y DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 SUB2 .Screen/x DEO2
	DUP2 ;eye ADD2 .Screen/addr DEO2
	( draw ) #41 .Screen/color DEO
	STH2r .Screen/x DEO2
	;eye #0010 + + .Screen/addr DEO2
	;eye #0010 ADD2 ADD2 .Screen/addr DEO2
	( draw ) #41 .Screen/color DEO

RTN

@draw-tail ( frame* -- )

	.cat/y LDZ2 #0010 + .Screen/y DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 - .Screen/x DEO2
	.cat/y LDZ2 #0010 ADD2 .Screen/y DEO2
	.cat/x LDZ2 DUP2 STH2 #0008 SUB2 .Screen/x DEO2
	;body .Screen/addr DEO2
	( draw ) #41 .Screen/color DEO
	STH2r .Screen/x DEO2
	#0010 * ;body #0010 + + .Screen/addr DEO2
	#0010 MUL2 ;body #0010 ADD2 ADD2 .Screen/addr DEO2
	( draw ) #41 .Screen/color DEO

RTN


@@ 126,17 123,17 @@ RTN

@draw-ground ( -- )

	.cat/y LDZ2 #0018 + .Screen/y DEO2
	.cat/x LDZ2 #0010 - .Screen/x DEO2
	.cat/y LDZ2 #0018 ADD2 .Screen/y DEO2
	.cat/x LDZ2 #0010 SUB2 .Screen/x DEO2
	;ground .Screen/addr DEO2

	#00 #10
	&loop
		( draw ) #21 .Screen/color DEO
		( sety ) .Screen/addr DEI2 #0008 + .Screen/addr DEO2
		( setx ) .Screen/x DEI2 #0008 + .Screen/x DEO2
		( sety ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
		( setx ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&loop JCN
		LTHk ,&loop JCN
	POP2

RTN

M projects/demos/theme.usm => projects/demos/theme.usm +10 -10
@@ 125,7 125,7 @@ RTN
	&draw-hor
		( draw ) #01 .Screen/color DEO
		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2
		OVR2 OVR2 LTH2 ,&draw-hor JCN
		LTH2k ,&draw-hor JCN
	POP2 POP2

	( draw ver line )


@@ 134,7 134,7 @@ RTN
	&draw-ver
		( draw ) #02 .Screen/color DEO
		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2
		OVR2 OVR2 LTH2 ,&draw-ver JCN
		LTH2k ,&draw-ver JCN
	POP2 POP2

	( draw blending modes )


@@ 145,7 145,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-pixel1 JCN
		LTHk ,&draw-pixel1 JCN
	POP POP
	#0018 .Screen/y DEO2
	#00 #08


@@ 153,7 153,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR #08 ADD .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-pixel2 JCN
		LTHk ,&draw-pixel2 JCN
	POP POP
	#0020 .Screen/y DEO2
	#00 #08


@@ 161,7 161,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR #20 ADD .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-icn1 JCN
		LTHk ,&draw-icn1 JCN
	POP POP
	#0028 .Screen/y DEO2
	#00 #08


@@ 169,7 169,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR #28 ADD .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-icn2 JCN
		LTHk ,&draw-icn2 JCN
	POP POP
	#0030 .Screen/y DEO2
	#00 #08


@@ 177,7 177,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR #40 ADD .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-chr1 JCN
		LTHk ,&draw-chr1 JCN
	POP POP
	#0038 .Screen/y DEO2
	#00 #08


@@ 185,7 185,7 @@ RTN
		( move ) OVR #08 MUL #00 SWP #0010 ADD2 .Screen/x DEO2
		( draw ) OVR #48 ADD .Screen/color DEO
		( incr ) SWP #01 ADD SWP
		DUP2 LTH ,&draw-chr2 JCN
		LTHk ,&draw-chr2 JCN
	POP POP

RTN


@@ 293,10 293,10 @@ RTN
			( save ) OVR2 .Screen/x DEO2
			( draw ) .color LDZ .Screen/color DEO
			( incr ) SWP2 #0001 ADD2 SWP2
			OVR2 OVR2 LTH2 ,&hor JCN
			LTH2k ,&hor JCN
		POP2 POP2 STH2r STH2r
		( incr ) SWP2 #0001 ADD2 SWP2
		OVR2 OVR2 LTH2 ,&ver JCN
		LTH2k ,&ver JCN
	POP2 POP2 POP2 POP2

RTN