__constant char BINARY = 2
__constant char BUF[$14] = { fill( $14, 0) }
__constant char DECIMAL = $a
__constant char DIGITS[] = "0123456789abcdef"z
__constant char HEXADECIMAL = $10
__constant char OCTAL = 8
__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
__constant unsigned int STACK_BASE = $103
__loadstore char *__snprintf_buffer // zp[2]:22 9.022222222222222
__loadstore volatile unsigned int __snprintf_capacity // zp[2]:24 6.48936170212766
__loadstore volatile unsigned int __snprintf_size // zp[2]:20 11.021739130434781
void __start()
void main()
__constant char main::s[$e] = "hello world! "
__constant char main::s1[7] = "hello "
__constant char main::s2[2] = " "
__constant char main::s4[2] = "+"
__constant char main::s5[3] = "! "
__constant char main::s6[4] = "hi "
__constant char main::str[6] = "world"
void print(char *msg)
char *print::msg
char *print::msg#0 // msg zp[2]:6 2002.0
char *print::msg#5 // msg zp[2]:6 1001.0
__loadstore struct printf_buffer_number printf_buffer = {} // mem[12]
void printf_number_buffer(void (*putc)(char) , char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
unsigned int printf_number_buffer::$19 // zp[2]:9 1001.0
struct printf_buffer_number printf_number_buffer::buffer
char *printf_number_buffer::buffer_digits
char printf_number_buffer::buffer_sign
char printf_number_buffer::buffer_sign#0 // buffer_sign zp[1]:18 202.0
char printf_number_buffer::buffer_sign#1 // buffer_sign zp[1]:18 202.0
char printf_number_buffer::buffer_sign#10 // buffer_sign zp[1]:18 152.61904761904762
struct printf_format_number printf_number_buffer::format
char printf_number_buffer::format_justify_left
char printf_number_buffer::format_justify_left#10 // format_justify_left zp[1]:17 60.666666666666664
char printf_number_buffer::format_min_length
char printf_number_buffer::format_min_length#2 // reg byte x 100.1
char printf_number_buffer::format_radix
char printf_number_buffer::format_sign_always
char printf_number_buffer::format_upper_case
char printf_number_buffer::format_upper_case#10 // format_upper_case zp[1]:19 35.75
char printf_number_buffer::format_zero_padding
char printf_number_buffer::format_zero_padding#10 // format_zero_padding zp[1]:12 88.32352941176471
signed char printf_number_buffer::len
signed char printf_number_buffer::len#0 // reg byte y 1501.5
signed char printf_number_buffer::len#1 // reg byte y 2002.0
signed char printf_number_buffer::len#2 // reg byte y 3003.0
signed char printf_number_buffer::padding
signed char printf_number_buffer::padding#1 // padding zp[1]:16 1001.0
signed char printf_number_buffer::padding#10 // padding zp[1]:16 166.83333333333334
void (*printf_number_buffer::putc)(char)
void (*printf_number_buffer::putc#10)(char) // putc zp[2]:2 111.22222222222223
void printf_padding(void (*putc)(char) , char pad , char length)
char printf_padding::i
char printf_padding::i#1 // i zp[1]:8 200002.0
char printf_padding::i#2 // i zp[1]:8 100001.0
char printf_padding::length
char printf_padding::length#0 // length zp[1]:11 2002.0
char printf_padding::length#1 // length zp[1]:11 2002.0
char printf_padding::length#2 // length zp[1]:11 2002.0
char printf_padding::length#6 // length zp[1]:11 20600.8
char printf_padding::pad
char printf_padding::pad#7 // pad zp[1]:13 16666.833333333332
void (*printf_padding::putc)(char)
void (*printf_padding::putc#0)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#1)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#2)(char) // putc zp[2]:2 1001.0
void (*printf_padding::putc#7)(char) // putc zp[2]:2 30030.0
void printf_sint(void (*putc)(char) , int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_sint::format
char printf_sint::format_justify_left
char printf_sint::format_min_length
char printf_sint::format_radix
char printf_sint::format_sign_always
char printf_sint::format_upper_case
char printf_sint::format_zero_padding
void (*printf_sint::putc)(char)
unsigned int printf_sint::uvalue
int printf_sint::value
int printf_sint::value#0 // value zp[2]:2 101.0
int printf_sint::value#3 // value zp[2]:2 101.0
int printf_sint::value#5 // value zp[2]:2 202.0
void printf_str(void (*putc)(char) , const char *s)
char printf_str::c
char printf_str::c#1 // reg byte a 100001.0
void (*printf_str::putc)(char)
void (*printf_str::putc#0)(char) // putc zp[2]:2 2002.0
void (*printf_str::putc#12)(char) // putc zp[2]:2 10010.0
const char *printf_str::s
const char *printf_str::s#0 // s zp[2]:6 100001.0
const char *printf_str::s#11 // s zp[2]:6 155002.0
const char *printf_str::s#12 // s zp[2]:6 10001.0
void printf_string(void (*putc)(char) , char *str , char format_min_length , char format_justify_left)
struct printf_format_string printf_string::format
char printf_string::format_justify_left
char printf_string::format_min_length
signed char printf_string::len
signed char printf_string::padding
void (*printf_string::putc)(char)
__constant void (*printf_string::putc#0)(char) = &snputc // putc
char *printf_string::str
void printf_uint(void (*putc)(char) , unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix)
struct printf_format_number printf_uint::format
char printf_uint::format_justify_left
__constant char printf_uint::format_justify_left#0 = 0 // format_justify_left
char printf_uint::format_min_length
__constant char printf_uint::format_min_length#0 = 0 // format_min_length
char printf_uint::format_radix
char printf_uint::format_sign_always
char printf_uint::format_upper_case
__constant char printf_uint::format_upper_case#0 = 0 // format_upper_case
char printf_uint::format_zero_padding
__constant char printf_uint::format_zero_padding#0 = 0 // format_zero_padding
void (*printf_uint::putc)(char)
__constant void (*printf_uint::putc#0)(char) = &snputc // putc
unsigned int printf_uint::uvalue
__constant unsigned int printf_uint::uvalue#0 = $b // uvalue
char *screen
char *screen#0 // screen zp[2]:14 1001.0
char *screen#1 // screen zp[2]:14 68.19565217391305
char *screen#25 // screen zp[2]:14 134.0
void snprintf_init(char *s , unsigned int n)
unsigned int snprintf_init::n
unsigned int snprintf_init::n#4 // n zp[2]:2 101.0
char *snprintf_init::s
__stackcall void snputc(char c)
__constant char snputc::OFFSET_STACK_C = 0
char snputc::c
char snputc::c#0 // reg byte x 40.4
char snputc::c#2 // reg byte x 202.0
unsigned int strlen(char *str)
unsigned int strlen::len
unsigned int strlen::len#1 // len zp[2]:9 100001.0
unsigned int strlen::len#2 // len zp[2]:9 50250.75
unsigned int strlen::return
unsigned int strlen::return#2 // return zp[2]:9 2002.0
char *strlen::str
char *strlen::str#0 // str zp[2]:6 200002.0
char *strlen::str#3 // str zp[2]:6 100001.0
char * strupr(char *str)
char strupr::$0 // reg byte a 200002.0
char *strupr::return
char *strupr::src
char *strupr::src#1 // src zp[2]:4 200002.0
char *strupr::src#2 // src zp[2]:4 71429.28571428571
char *strupr::str
__constant char *strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // str
char toupper(char ch)
char toupper::ch
char toupper::ch#0 // reg byte a 1700002.0000000002
char toupper::return
char toupper::return#0 // reg byte a 2000002.0
char toupper::return#2 // reg byte a 1033334.6666666667
char toupper::return#3 // reg byte a 200002.0
void utoa(unsigned int value , char *buffer , char radix)
char utoa::$10 // reg byte a 20002.0
char utoa::$11 // reg byte x 2002.0
char utoa::$4 // reg byte a 20002.0
char *utoa::buffer
char *utoa::buffer#10 // buffer zp[2]:9 2800.4000000000005
char *utoa::buffer#15 // buffer zp[2]:9 15001.5
char *utoa::buffer#3 // buffer zp[2]:9 2002.0
char *utoa::buffer#4 // buffer zp[2]:9 20002.0
char utoa::digit
char utoa::digit#1 // digit zp[1]:12 20002.0
char utoa::digit#2 // digit zp[1]:12 2666.9333333333334
unsigned int utoa::digit_value
unsigned int utoa::digit_value#0 // digit_value zp[2]:4 6000.6
unsigned int *utoa::digit_values
unsigned int *utoa::digit_values#8 // digit_values zp[2]:6 588.2941176470588
char utoa::max_digits
char utoa::max_digits#7 // max_digits zp[1]:17 588.2941176470588
char utoa::radix
char utoa::radix#2 // reg byte x 1001.0
char utoa::started
char utoa::started#2 // reg byte x 4286.142857142857
char utoa::started#4 // reg byte x 10001.0
unsigned int utoa::value
unsigned int utoa::value#0 // value zp[2]:2 10001.0
unsigned int utoa::value#1 // value zp[2]:2 202.0
unsigned int utoa::value#10 // value zp[2]:2 183.66666666666669
unsigned int utoa::value#3 // value zp[2]:2 5125.625
unsigned int utoa::value#7 // value zp[2]:2 15001.5
unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
char *utoa_append::buffer
char *utoa_append::buffer#0 // buffer zp[2]:9 13750.25
char utoa_append::digit
char utoa_append::digit#1 // reg byte x 1.0000001E7
char utoa_append::digit#2 // reg byte x 1.00500015E7
unsigned int utoa_append::return
unsigned int utoa_append::return#0 // return zp[2]:2 20002.0
unsigned int utoa_append::sub
unsigned int utoa_append::sub#0 // sub zp[2]:4 3335000.5
unsigned int utoa_append::value
unsigned int utoa_append::value#0 // value zp[2]:2 36667.33333333333
unsigned int utoa_append::value#1 // value zp[2]:2 2.0000002E7
unsigned int utoa_append::value#2 // value zp[2]:2 5018334.166666666

reg byte x [ snputc::c#2 snputc::c#0 ]
zp[2]:14 [ screen#25 screen#1 screen#0 ]
zp[2]:2 [ printf_sint::value#5 printf_sint::value#0 printf_sint::value#3 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#1 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_str::putc#12 printf_str::putc#0 printf_number_buffer::putc#10 printf_padding::putc#7 printf_padding::putc#1 printf_padding::putc#2 printf_padding::putc#0 snprintf_init::n#4 ]
reg byte x [ utoa::radix#2 ]
reg byte x [ utoa::started#2 utoa::started#4 ]
reg byte x [ printf_number_buffer::format_min_length#2 ]
zp[1]:17 [ printf_number_buffer::format_justify_left#10 utoa::max_digits#7 ]
zp[1]:12 [ printf_number_buffer::format_zero_padding#10 utoa::digit#2 utoa::digit#1 ]
zp[1]:18 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#1 ]
zp[1]:19 [ printf_number_buffer::format_upper_case#10 ]
reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
zp[1]:16 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
zp[2]:6 [ strlen::str#3 strlen::str#0 utoa::digit_values#8 print::msg#5 print::msg#0 printf_str::s#11 printf_str::s#12 printf_str::s#0 ]
zp[2]:9 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ]
zp[1]:11 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
zp[1]:13 [ printf_padding::pad#7 ]
zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ]
reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
zp[2]:24 [ __snprintf_capacity ]
zp[2]:20 [ __snprintf_size ]
zp[2]:22 [ __snprintf_buffer ]
reg byte a [ printf_str::c#1 ]
reg byte a [ utoa::$4 ]
reg byte x [ utoa::$11 ]
reg byte a [ utoa::$10 ]
zp[2]:4 [ utoa::digit_value#0 utoa_append::sub#0 strupr::src#2 strupr::src#1 ]
reg byte a [ toupper::return#3 ]
reg byte a [ strupr::$0 ]
mem[12] [ printf_buffer ]
