( Move: Use controller arrows, leave a slime. )

|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
|80 @Controller &vector $2 &button $1 &key $1

|0000

	@hello &x $2 &y $2

|0100

@on-reset ( -> )
	( | theme )
	#c0f4 .System/r DEO2
	#c0fc .System/g DEO2
	#c0f7 .System/b DEO2
	( | vectors )
	;on-frame .Screen/vector DEO2
	( | set origin ) .Screen/width DEI2 #01 SFT2 .hello/x STZ2
	.Screen/height DEI2 #01 SFT2 .hello/y STZ2
	[ LIT2 16 -Screen/auto ] DEO
	#00 on-frame/draw BRK

@on-frame ( -> )
	.Controller/button DEI DUP ?{ POP BRK }
	( | clear )
	[ LIT2 40 -Screen/sprite ] DEO
	( | movement )
	DUP #10 AND #00 EQU ?{
		.hello/y LDZ2k #0001 SUB2 ROT STZ2 }
	DUP #20 AND #00 EQU ?{
		.hello/y LDZ2k INC2 ROT STZ2 }
	DUP #40 AND #00 EQU ?{
		.hello/x LDZ2k #0001 SUB2 ROT STZ2 }
	DUP #80 AND #00 EQU ?{
		.hello/x LDZ2k INC2 ROT STZ2 }
	&draw ( button -> )
		.hello/x LDZ2 STH2k .Screen/x DEO2
		.hello/y LDZ2 STH2k .Screen/y DEO2
		;hello-chr .Screen/addr DEO2
		[ LIT2 c1 -Screen/sprite ] DEOk
		DEO
		( draw slime ) STH2r .Screen/y DEO2
		STH2r .Screen/x DEO2
		;slime-icn .Screen/addr DEO2
		get-slime .Screen/sprite DEOk
		DEO
		BRK

@get-slime ( button -- color )
	#0f AND DUP #01 NEQ ?{ POP #05 JMP2r }
	DUP #02 NEQ ?{ POP #0a JMP2r }
	POP #0f JMP2r

@hello-chr [
	0007 1820 2040 4044 0000 071f 1f3f 3f3b
	00e0 1804 0402 0222 0000 e0f8 f8fc fcdc
	4040 4423 2018 0700 3f3f 3b1c 1f07 0000
	0202 22c4 0418 e000 fcfc dc38 f8e0 0000 ]

@slime-icn [
	0000 0000 0003 0707 0000 0000 00c0 e0e0
	0707 0300 0000 0000 e0e0 c000 0000 0000 ]