~rabbits/uxn

1245b44d2a328e2432428f2971c3978ed5af701e — Devine Lu Linvega 8 days ago 2c20d28
(dvd.tal) Migrated to immediate opcodes
1 files changed, 19 insertions(+), 18 deletions(-)

M projects/examples/demos/dvd.tal
M projects/examples/demos/dvd.tal => projects/examples/demos/dvd.tal +19 -18
@@ 5,10 5,10 @@

|0000

@dvd &x $2 &y $2 &dx $1 &dy $1
	@dvd &x $2 &y $2 &dx $1 &dy $1

|0100 ( -> )
	

	( theme )
	#4cfd .System/r DEO2
	#4cf3 .System/g DEO2


@@ 22,34 22,34 @@
	.Screen/width DEI2 #0020 SUB2 ;on-frame/hit-hor STA2
	.Screen/height DEI2 #0010 SUB2 ;on-frame/hit-ver STA2
	( drawing mode )
	#36 .Screen/auto DEO
	#01 ,draw-dvd JSR
	
	[ LIT2 36 -Screen/auto ] DEO
	#01 draw-dvd

BRK

@on-frame ( -> )

	#00 ,draw-dvd JSR
	#00 draw-dvd
	( x )
	.dvd/x LDZ2
		STH2k #0000 EQU2 ,&flip-x JCN
		STH2kr [ LIT2 &hit-hor $2 ] EQU2 ,&flip-x JCN
		DUP2 #0000 EQU2 ?&flip-x
		DUP2 [ LIT2 &hit-hor $2 ] EQU2 ?&flip-x
	&no-x
	STH2r [ #00 .dvd/dx LDZ ] DUP2 ADD2 ADD2 #ffff ADD2 .dvd/x STZ2
	[ LIT2 00 -dvd/dx ] LDZ DUP2 ADD2 ADD2 #ffff ADD2 .dvd/x STZ2
	( y )
	.dvd/y LDZ2
		STH2k #0000 EQU2 ,&flip-y JCN
		STH2kr [ LIT2 &hit-ver $2 ] EQU2 ,&flip-y JCN
		DUP2 #0000 EQU2 ?&flip-y
		DUP2 [ LIT2 &hit-ver $2 ] EQU2 ?&flip-y
	&no-y
	STH2r [ #00 .dvd/dy LDZ ] DUP2 ADD2 ADD2 #ffff ADD2 .dvd/y STZ2
	#01 ,draw-dvd JSR
	[ LIT2 00 -dvd/dy ] LDZ DUP2 ADD2 ADD2 #ffff ADD2 .dvd/y STZ2
	#01 draw-dvd

BRK
	&flip-x .dvd/dx LDZk #00 EQU SWP STZ ,&no-x JMP
	&flip-y .dvd/dy LDZk #00 EQU SWP STZ ,&no-y JMP
	&flip-x .dvd/dx LDZk #00 EQU SWP STZ !&no-x
	&flip-y .dvd/dy LDZk #00 EQU SWP STZ !&no-y

@draw-dvd ( color -- )
	

	;dvd_icn .Screen/addr DEO2
	.dvd/x LDZ2 .Screen/x DEO2
	.dvd/y LDZ2 .Screen/y DEO2


@@ 57,8 57,9 @@ BRK

JMP2r

@dvd_icn ( 4 x 2 )
@dvd_icn ( 4 x 2 ) [
	001f 3f38 3838 787f 00fe fe7e 7777 e3c3
	000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc
	7f00 000f ff7f 0700 0301 00ff f0f8 ff00
	8700 00ff 7f7f ff00 f000 00e0 fcfc 8000
	8700 00ff 7f7f ff00 f000 00e0 fcfc 8000 ]