(label) @1
(label) @2
(label) @begin
(label) @end
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = (byte*) 1024
(void()) do10((void()*) do10::fn)
(label) do10::@1
(label) do10::@return
(void()*) do10::fn
(byte) do10::i
(byte) do10::i#1 i zp ZP_BYTE:2 16.5
(byte) do10::i#2 i zp ZP_BYTE:2 11.0
(void()) hello()
(label) hello::@1
(label) hello::@return
(byte) hello::i
(byte) hello::i#1 reg byte x 151.5
(byte) hello::i#2 reg byte x 101.0
(byte) idx
(byte) idx#0 idx zp ZP_BYTE:3 0.26666666666666666
(byte) idx#1 idx zp ZP_BYTE:3 67.33333333333333
(byte) idx#3 idx zp ZP_BYTE:3 152.5
(byte~) idx#7 idx zp ZP_BYTE:3 4.0
(void()) main()
(label) main::@return
(void()*) main::f
(byte[]) msg
(const byte[]) msg#0 msg = (string) "hello "

zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
reg byte x [ hello::i#2 hello::i#1 ]
zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ]
