(label) @1
(label) @begin
(label) @end
(signed byte[$100]) PERSP_Z
(const signed byte[$100]) PERSP_Z#0 PERSP_Z = kickasm {{ {
    .var d = 256.0	
    .var z0 = 5.0	
    .for(var z=0;z<$100;z++) {
    	.if(z>127) {
    		.byte round(d / (z0 - ((z - 256) / 64.0)));
    	} else {
    		.byte round(d / (z0 - (z / 64.0)));
    	}
    }
	}
 }}
(const byte) RADIX::BINARY BINARY = (number) 2
(const byte) RADIX::DECIMAL DECIMAL = (number) $a
(const byte) RADIX::HEXADECIMAL HEXADECIMAL = (number) $10
(const byte) RADIX::OCTAL OCTAL = (number) 8
(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z)
(label) do_perspective::@1
(label) do_perspective::@10
(label) do_perspective::@11
(label) do_perspective::@12
(label) do_perspective::@2
(label) do_perspective::@3
(label) do_perspective::@4
(label) do_perspective::@5
(label) do_perspective::@6
(label) do_perspective::@7
(label) do_perspective::@8
(label) do_perspective::@9
(label) do_perspective::@return
(const string) do_perspective::str str = (string) "("
(const string) do_perspective::str1 str1 = (string) ","
(const string) do_perspective::str3 str3 = (string) ") -> ("
(const string) do_perspective::str5 str5 = (string) ")"
(signed byte) do_perspective::x
(const signed byte) do_perspective::x#0 x = (signed byte) $39
(signed byte) do_perspective::y
(const signed byte) do_perspective::y#0 y = (signed byte) -$47
(signed byte) do_perspective::z
(const signed byte) do_perspective::z#0 z = (signed byte) $36
(void()) main()
(label) main::@1
(label) main::@2
(label) main::@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
(label) memset::@return
(byte) memset::c
(const byte) memset::c#0 c = (byte) ' '
(byte*) memset::dst
(byte*) memset::dst#1 dst zp ZP_WORD:4 16.5
(byte*) memset::dst#4 dst zp ZP_WORD:4 16.5
(byte*) memset::end
(const byte*) memset::end#0 end = (byte*)(const void*) memset::str#0+(const word) memset::num#0
(word) memset::num
(const word) memset::num#0 num = (word) $3e8
(void*) memset::return
(void*) memset::str
(const void*) memset::str#0 str = (void*)(byte*) 1024
(void()) mulf_init()
(byte~) mulf_init::$10 reg byte x 22.0
(byte~) mulf_init::$4 reg byte x 16.5
(byte~) mulf_init::$8 reg byte x 22.0
(label) mulf_init::@1
(label) mulf_init::@return
(signed word) mulf_init::add
(signed word) mulf_init::add#1 add zp ZP_WORD:4 7.333333333333333
(signed word) mulf_init::add#2 add zp ZP_WORD:4 2.357142857142857
(byte) mulf_init::i
(byte) mulf_init::i#1 reg byte y 16.5
(byte) mulf_init::i#2 reg byte y 6.6
(signed word) mulf_init::sqr
(signed word) mulf_init::sqr#1 sqr zp ZP_WORD:2 5.5
(signed word) mulf_init::sqr#2 sqr zp ZP_WORD:2 2.5384615384615383
(byte) mulf_init::val
(byte) mulf_init::val#0 val zp ZP_BYTE:6 9.0
(byte[$200]) mulf_sqr1
(const byte[$200]) mulf_sqr1#0 mulf_sqr1 = { fill( $200, 0) }
(byte[$200]) mulf_sqr2
(const byte[$200]) mulf_sqr2#0 mulf_sqr2 = { fill( $200, 0) }
(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z)
(label) perspective::@return
(signed byte) perspective::x
(signed byte) perspective::y
(signed byte) perspective::z
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte x 4.0
(label) print_byte::@1
(label) print_byte::@return
(byte) print_byte::b
(byte) print_byte::b#0 reg byte x 4.0
(byte) print_byte::b#3 reg byte x 2.5
(byte~) print_byte::b#5 reg byte x 4.0
(byte~) print_byte::b#6 reg byte x 4.0
(void()) print_char((byte) print_char::ch)
(label) print_char::@return
(byte) print_char::ch
(byte) print_char::ch#2 reg byte a 4.0
(byte) print_char::ch#3 reg byte a 4.0
(byte) print_char::ch#4 reg byte a 6.0
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:4 11.0
(byte*) print_char_cursor#12 print_char_cursor zp ZP_WORD:4 0.6666666666666666
(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:4 2.076923076923077
(byte*) print_char_cursor#44 print_char_cursor zp ZP_WORD:4 6.0
(byte*) print_char_cursor#69 print_char_cursor zp ZP_WORD:4 2.6666666666666665
(byte*) print_char_cursor#74 print_char_cursor zp ZP_WORD:4 12.0
(void()) print_cls()
(label) print_cls::@return
(byte[]) print_hextab
(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef"z
(byte*) print_line_cursor
(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 16.5
(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:2 22.0
(void()) print_ln()
(label) print_ln::@1
(label) print_ln::@return
(void()) print_sbyte((signed byte) print_sbyte::b)
(label) print_sbyte::@1
(label) print_sbyte::@2
(label) print_sbyte::@3
(label) print_sbyte::@4
(label) print_sbyte::@return
(signed byte) print_sbyte::b
(signed byte) print_sbyte::b#0 reg byte x 4.0
(signed byte) print_sbyte::b#4 reg byte x 1.0
(signed byte) print_sbyte::b#6 reg byte x 4.0
(byte*) print_screen
(void()) print_str((byte*) print_str::str)
(label) print_str::@1
(label) print_str::@2
(label) print_str::@return
(byte*) print_str::str
(byte*) print_str::str#0 str zp ZP_WORD:2 22.0
(byte*) print_str::str#7 str zp ZP_WORD:2 11.5
(byte*) print_str::str#9 str zp ZP_WORD:2 2.0
(word*) psp1
(const word*) psp1#0 psp1 = (word*) 243
(word*) psp2
(const word*) psp2#0 psp2 = (word*) 245
(signed byte*) xr
(const signed byte*) xr#0 xr = (signed byte*) 240
(signed byte*) yr
(const signed byte*) yr#0 yr = (signed byte*) 241
(signed byte*) zr
(const signed byte*) zr#0 zr = (signed byte*) 242

reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#0 ]
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
reg byte x [ print_sbyte::b#6 print_sbyte::b#0 print_sbyte::b#4 ]
zp ZP_WORD:2 [ mulf_init::sqr#2 mulf_init::sqr#1 print_str::str#7 print_str::str#9 print_str::str#0 print_line_cursor#11 print_line_cursor#1 ]
reg byte y [ mulf_init::i#2 mulf_init::i#1 ]
zp ZP_WORD:4 [ mulf_init::add#2 mulf_init::add#1 memset::dst#4 memset::dst#1 print_char_cursor#44 print_char_cursor#69 print_char_cursor#2 print_char_cursor#74 print_char_cursor#12 print_char_cursor#1 ]
reg byte a [ print_byte::$0 ]
reg byte x [ print_byte::$2 ]
zp ZP_BYTE:6 [ mulf_init::val#0 ]
reg byte x [ mulf_init::$4 ]
reg byte x [ mulf_init::$8 ]
reg byte x [ mulf_init::$10 ]
