(label) @1
(label) @begin
(label) @end
(const byte) SIZEOF_SIGNED_WORD SIZEOF_SIGNED_WORD = (byte) 2
(signed word()) foo((byte) foo::x , (signed word*) foo::y)
(byte~) foo::$1 reg byte a 4.0
(label) foo::@return
(signed word) foo::return
(signed word) foo::return#0 return zp ZP_WORD:2 1.5
(signed word) foo::return#2 return zp ZP_WORD:2 4.0
(signed word) foo::return#3 return zp ZP_WORD:2 4.0
(byte) foo::x
(byte) foo::x#2 reg byte x 2.0
(signed word*) foo::y
(signed word*) foo::y#2 y zp ZP_WORD:2 1.0
(void()) main()
(signed word~) main::$1 $1 zp ZP_WORD:2 4.0
(signed word~) main::$3 $3 zp ZP_WORD:2 4.0
(label) main::@1
(label) main::@2
(label) main::@return
(signed word*) main::SCREEN
(const signed word*) main::SCREEN#0 SCREEN = (signed word*) 1024
(signed word) main::y1
(signed word) main::y1#0 y1 zp ZP_WORD:4 20.0
(signed word) main::y2
(signed word) main::y2#0 y2 zp ZP_WORD:6 20.0
(signed word[4]) wow
(const signed word[4]) wow#0 wow = { (signed word) $cafe, (signed word) $babe, (signed word) $1234, (signed word) $5678 }

reg byte x [ foo::x#2 ]
zp ZP_WORD:2 [ foo::y#2 foo::return#0 foo::return#2 main::$1 foo::return#3 main::$3 ]
zp ZP_WORD:4 [ main::y1#0 ]
zp ZP_WORD:6 [ main::y2#0 ]
reg byte a [ foo::$1 ]
