|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1

|0000

	@f $2

|0100

	#03af .System/r DEO2
	#03af .System/g DEO2
	#03af .System/b DEO2
	( size )
	#0100 .Screen/width DEO2
	#0080 .Screen/height DEO2
	( animate )
	;on-frame .Screen/vector DEO2

BRK

@print ( short* -- )

	SWP ,&byte JSR
	&byte ( byte -- ) DUP #04 SFT ,&char JSR
	&char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO

JMP2r

@on-frame ( -> )

	.Screen/height DEI2 #0000
	&v
		STH2k
		DUP2 .Screen/y DEO2
		.Screen/width DEI2 #0000
		&h
			DUP2 .Screen/x DEO2
			INC2k STH2kr INC2
			;pixel JSR2
			INC2 GTH2k ,&h JCN
		POP2 POP2 POP2r
		INC2 GTH2k ,&v JCN
	POP2 POP2
	.f LDZ2k INC2 ROT STZ2

BRK

@pixel ( x* y* -- )

	OVR2 OVR2 ;get-quad JSR2 STH
	SWP2
	.Screen/width DEI2 #01 SFT2 GTH2k JMP SWP2 SUB2
	SWP2
	.Screen/height DEI2 #01 SFT2 GTH2k JMP SWP2 SUB2
	SWP2 #007f AND2 SWP2
	#70 SFT2 ADD2 #1fff AND2
	;atan2 ADD2 LDA 
		DUP #04 SFT STHr ADD
		DUP #04 SFT ORA
		OVR #0f AND EOR
		SWP #0f AND .f LDZ2 #01 SFT2 NIP #0f AND #0f SWP SUB EQU ORA
		.Screen/pixel DEO

JMP2r

@get-quad ( x* y* -- quad )

	.Screen/height DEI2 #01 SFT2 GTH2 #10 SFT STH
	.Screen/width DEI2 #01 SFT2 LTH2 STHr ORA

JMP2r

@atan2 ~lut5.tal