mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-22 16:33:48 +00:00
Added test for rand()
This commit is contained in:
parent
36f82d5745
commit
ed6df148f7
@ -45,6 +45,11 @@ public class TestPrograms {
|
||||
compileAndCompare("complex/polygon/polygon.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRand1() throws IOException, URISyntaxException {
|
||||
compileAndCompare("rand-1.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPrngXorshift() throws IOException, URISyntaxException {
|
||||
compileAndCompare("prng-xorshift.c");
|
||||
|
35
src/test/kc/rand-1.c
Normal file
35
src/test/kc/rand-1.c
Normal file
@ -0,0 +1,35 @@
|
||||
// Test the pseudorandom number generator in stdlib.h
|
||||
// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html
|
||||
// Information https://en.wikipedia.org/wiki/Xorshift
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <c64.h>
|
||||
|
||||
void main() {
|
||||
clrscr();
|
||||
textcolor(WHITE);
|
||||
printf("generating unique randoms...");
|
||||
unsigned int first = rand();
|
||||
unsigned long cnt = 0;
|
||||
textcolor(LIGHT_BLUE);
|
||||
char col = 3, row = 1;
|
||||
unsigned int rnd = first;
|
||||
do {
|
||||
cnt++;
|
||||
if((char)cnt==0) {
|
||||
gotoxy(col,row);
|
||||
printf("%5u",rnd);
|
||||
if(++row==25) {
|
||||
row = 1;
|
||||
col+=6;
|
||||
if(col>40-5)
|
||||
col = 3;
|
||||
}
|
||||
}
|
||||
rnd = rand();
|
||||
} while(rnd!=first);
|
||||
gotoxy(28,0);
|
||||
textcolor(WHITE);
|
||||
printf("found %lu",cnt);
|
||||
}
|
1207
src/test/ref/rand-1.asm
Normal file
1207
src/test/ref/rand-1.asm
Normal file
File diff suppressed because it is too large
Load Diff
656
src/test/ref/rand-1.cfg
Normal file
656
src/test/ref/rand-1.cfg
Normal file
@ -0,0 +1,656 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@1
|
||||
@1: scope:[] from @begin
|
||||
[1] (byte) conio_cursor_x ← (byte) 0
|
||||
[2] (byte) conio_cursor_y ← (byte) 0
|
||||
[3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT
|
||||
[4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS
|
||||
[5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT
|
||||
to:@2
|
||||
@2: scope:[] from @1
|
||||
[6] phi()
|
||||
[7] call main
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
[8] phi()
|
||||
|
||||
(void()) main()
|
||||
main: scope:[main] from @2
|
||||
[9] phi()
|
||||
[10] call clrscr
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main
|
||||
[11] phi()
|
||||
[12] call textcolor
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[13] phi()
|
||||
[14] call cputs
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[15] phi()
|
||||
[16] call rand
|
||||
[17] (word) rand::return#2 ← (word) rand::return#0
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[18] (word) main::first#0 ← (word) rand::return#2
|
||||
[19] call textcolor
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@9
|
||||
[20] (word) main::rnd#5 ← (word) main::first#0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@10 main::@11
|
||||
[21] (word) main::rnd#2 ← phi( main::@10/(word) main::rnd#5 main::@11/(word) main::rnd#1 )
|
||||
[21] (byte) main::row#3 ← phi( main::@10/(byte) 1 main::@11/(byte) main::row#7 )
|
||||
[21] (byte) main::col#3 ← phi( main::@10/(byte) 3 main::@11/(byte) main::col#7 )
|
||||
[21] (dword) main::cnt#2 ← phi( main::@10/(dword) 0 main::@11/(dword) main::cnt#1 )
|
||||
[22] (dword) main::cnt#1 ← ++ (dword) main::cnt#2
|
||||
[23] (byte~) main::$18 ← (byte)(dword) main::cnt#1
|
||||
[24] if((byte~) main::$18!=(byte) 0) goto main::@2
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
[25] (byte) gotoxy::x#2 ← (byte) main::col#3
|
||||
[26] (byte) gotoxy::y#2 ← (byte) main::row#3
|
||||
[27] call gotoxy
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@3
|
||||
[28] (word) printf_uint::uvalue#0 ← (word) main::rnd#2
|
||||
[29] call printf_uint
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[30] (byte) main::row#1 ← ++ (byte) main::row#3
|
||||
[31] if((byte) main::row#1!=(byte) $19) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@13
|
||||
[32] (byte) main::col#1 ← (byte) main::col#3 + (byte) 6
|
||||
[33] if((byte) main::col#1<(byte)(number) $28-(number) 5+(byte) 1) goto main::@17
|
||||
to:main::@2
|
||||
main::@17: scope:[main] from main::@4
|
||||
[34] phi()
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1 main::@13 main::@17 main::@4
|
||||
[35] (byte) main::row#7 ← phi( main::@1/(byte) main::row#3 main::@13/(byte) main::row#1 main::@17/(byte) 1 main::@4/(byte) 1 )
|
||||
[35] (byte) main::col#7 ← phi( main::@1/(byte) main::col#3 main::@13/(byte) main::col#3 main::@17/(byte) main::col#1 main::@4/(byte) 3 )
|
||||
[36] call rand
|
||||
[37] (word) rand::return#3 ← (word) rand::return#0
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@2
|
||||
[38] (word) main::rnd#1 ← (word) rand::return#3
|
||||
[39] if((word) main::rnd#1!=(word) main::first#0) goto main::@1
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@11
|
||||
[40] phi()
|
||||
[41] call gotoxy
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@5
|
||||
[42] phi()
|
||||
[43] call textcolor
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@14
|
||||
[44] phi()
|
||||
[45] call cputs
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::@15
|
||||
[46] (dword) printf_ulong::uvalue#0 ← (dword) main::cnt#1
|
||||
[47] call printf_ulong
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@16
|
||||
[48] return
|
||||
to:@return
|
||||
|
||||
(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix)
|
||||
printf_ulong: scope:[printf_ulong] from main::@16
|
||||
[49] phi()
|
||||
to:printf_ulong::@1
|
||||
printf_ulong::@1: scope:[printf_ulong] from printf_ulong
|
||||
[50] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0
|
||||
[51] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0
|
||||
[52] call ultoa
|
||||
to:printf_ulong::@2
|
||||
printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1
|
||||
[53] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer)
|
||||
[54] call printf_number_buffer
|
||||
to:printf_ulong::@return
|
||||
printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2
|
||||
[55] return
|
||||
to:@return
|
||||
|
||||
(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix)
|
||||
printf_number_buffer: scope:[printf_number_buffer] from printf_uint::@2 printf_ulong::@2
|
||||
[56] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 )
|
||||
[56] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 )
|
||||
[56] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 )
|
||||
[56] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 )
|
||||
[56] (byte) printf_number_buffer::format_min_length#2 ← phi( printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 )
|
||||
[57] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1
|
||||
to:printf_number_buffer::@6
|
||||
printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer
|
||||
[58] phi()
|
||||
[59] call strlen
|
||||
[60] (word) strlen::return#2 ← (word) strlen::len#2
|
||||
to:printf_number_buffer::@14
|
||||
printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6
|
||||
[61] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
[62] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19
|
||||
[63] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13
|
||||
to:printf_number_buffer::@7
|
||||
printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14
|
||||
[64] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0
|
||||
to:printf_number_buffer::@13
|
||||
printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7
|
||||
[65] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 )
|
||||
[66] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2
|
||||
[67] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21
|
||||
to:printf_number_buffer::@1
|
||||
printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13
|
||||
[68] phi()
|
||||
to:printf_number_buffer::@1
|
||||
printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21
|
||||
[69] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 )
|
||||
[70] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
|
||||
to:printf_number_buffer::@17
|
||||
printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1
|
||||
[71] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
|
||||
to:printf_number_buffer::@16
|
||||
printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17
|
||||
[72] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8
|
||||
to:printf_number_buffer::@2
|
||||
printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16
|
||||
[73] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[74] call printf_padding
|
||||
to:printf_number_buffer::@2
|
||||
printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8
|
||||
[75] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3
|
||||
to:printf_number_buffer::@9
|
||||
printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2
|
||||
[76] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10
|
||||
[77] call cputc
|
||||
to:printf_number_buffer::@3
|
||||
printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9
|
||||
[78] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
|
||||
to:printf_number_buffer::@18
|
||||
printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3
|
||||
[79] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10
|
||||
to:printf_number_buffer::@4
|
||||
printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18
|
||||
[80] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[81] call printf_padding
|
||||
to:printf_number_buffer::@4
|
||||
printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3
|
||||
[82] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5
|
||||
to:printf_number_buffer::@11
|
||||
printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4
|
||||
[83] phi()
|
||||
[84] call strupr
|
||||
to:printf_number_buffer::@5
|
||||
printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4
|
||||
[85] phi()
|
||||
[86] call cputs
|
||||
to:printf_number_buffer::@15
|
||||
printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5
|
||||
[87] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
|
||||
to:printf_number_buffer::@20
|
||||
printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15
|
||||
[88] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
|
||||
to:printf_number_buffer::@19
|
||||
printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20
|
||||
[89] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12
|
||||
to:printf_number_buffer::@return
|
||||
printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19
|
||||
[90] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[91] call printf_padding
|
||||
to:printf_number_buffer::@return
|
||||
printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20
|
||||
[92] return
|
||||
to:@return
|
||||
|
||||
(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length)
|
||||
printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8
|
||||
[93] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' )
|
||||
[93] (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 )
|
||||
to:printf_padding::@1
|
||||
printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3
|
||||
[94] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 )
|
||||
[95] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2
|
||||
to:printf_padding::@return
|
||||
printf_padding::@return: scope:[printf_padding] from printf_padding::@1
|
||||
[96] return
|
||||
to:@return
|
||||
printf_padding::@2: scope:[printf_padding] from printf_padding::@1
|
||||
[97] (byte) cputc::c#1 ← (byte) printf_padding::pad#5
|
||||
[98] call cputc
|
||||
to:printf_padding::@3
|
||||
printf_padding::@3: scope:[printf_padding] from printf_padding::@2
|
||||
[99] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2
|
||||
to:printf_padding::@1
|
||||
|
||||
(void()) cputc((byte) cputc::c)
|
||||
cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2
|
||||
[100] (byte) cputc::c#3 ← phi( cputs::@2/(byte) cputc::c#0 printf_number_buffer::@9/(byte) cputc::c#2 printf_padding::@2/(byte) cputc::c#1 )
|
||||
[101] if((byte) cputc::c#3==(byte) '
|
||||
') goto cputc::@1
|
||||
to:cputc::@2
|
||||
cputc::@2: scope:[cputc] from cputc
|
||||
[102] *((byte*) conio_cursor_text) ← (byte) cputc::c#3
|
||||
[103] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text
|
||||
[104] *((byte*) conio_cursor_color) ← (byte) conio_textcolor
|
||||
[105] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color
|
||||
[106] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x
|
||||
[107] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return
|
||||
to:cputc::@3
|
||||
cputc::@3: scope:[cputc] from cputc::@2
|
||||
[108] (byte) conio_cursor_x ← (byte) 0
|
||||
[109] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y
|
||||
[110] call cscroll
|
||||
to:cputc::@return
|
||||
cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3
|
||||
[111] return
|
||||
to:@return
|
||||
cputc::@1: scope:[cputc] from cputc
|
||||
[112] phi()
|
||||
[113] call cputln
|
||||
to:cputc::@return
|
||||
|
||||
(void()) cputln()
|
||||
cputln: scope:[cputln] from cputc::@1
|
||||
[114] (byte*~) cputln::$0 ← (byte*) conio_cursor_text - (byte) conio_cursor_x
|
||||
[115] (byte*~) cputln::$1 ← (byte*~) cputln::$0 + (byte) $28
|
||||
[116] (byte*) conio_cursor_text ← (byte*~) cputln::$1
|
||||
[117] (byte*~) cputln::$2 ← (byte*) conio_cursor_color - (byte) conio_cursor_x
|
||||
[118] (byte*~) cputln::$3 ← (byte*~) cputln::$2 + (byte) $28
|
||||
[119] (byte*) conio_cursor_color ← (byte*~) cputln::$3
|
||||
[120] (byte) conio_cursor_x ← (byte) 0
|
||||
[121] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y
|
||||
[122] call cscroll
|
||||
to:cputln::@return
|
||||
cputln::@return: scope:[cputln] from cputln
|
||||
[123] return
|
||||
to:@return
|
||||
|
||||
(void()) cscroll()
|
||||
cscroll: scope:[cscroll] from cputc::@3 cputln
|
||||
[124] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return
|
||||
to:cscroll::@1
|
||||
cscroll::@1: scope:[cscroll] from cscroll
|
||||
[125] phi()
|
||||
[126] call memcpy
|
||||
to:cscroll::@2
|
||||
cscroll::@2: scope:[cscroll] from cscroll::@1
|
||||
[127] phi()
|
||||
[128] call memcpy
|
||||
to:cscroll::@3
|
||||
cscroll::@3: scope:[cscroll] from cscroll::@2
|
||||
[129] phi()
|
||||
[130] call memset
|
||||
to:cscroll::@4
|
||||
cscroll::@4: scope:[cscroll] from cscroll::@3
|
||||
[131] (byte) memset::c#1 ← (byte) conio_textcolor
|
||||
[132] call memset
|
||||
to:cscroll::@5
|
||||
cscroll::@5: scope:[cscroll] from cscroll::@4
|
||||
[133] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28
|
||||
[134] (byte*) conio_cursor_text ← (byte*~) cscroll::$7
|
||||
[135] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28
|
||||
[136] (byte*) conio_cursor_color ← (byte*~) cscroll::$8
|
||||
[137] (byte) conio_cursor_y ← -- (byte) conio_cursor_y
|
||||
to:cscroll::@return
|
||||
cscroll::@return: scope:[cscroll] from cscroll cscroll::@5
|
||||
[138] return
|
||||
to:@return
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from cscroll::@3 cscroll::@4
|
||||
[139] (byte) memset::c#4 ← phi( cscroll::@3/(byte) ' ' cscroll::@4/(byte) memset::c#1 )
|
||||
[139] (void*) memset::str#3 ← phi( cscroll::@3/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 cscroll::@4/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 )
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset
|
||||
[140] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (byte) $28
|
||||
[141] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3
|
||||
to:memset::@2
|
||||
memset::@2: scope:[memset] from memset::@1 memset::@3
|
||||
[142] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
|
||||
[143] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@2
|
||||
[144] return
|
||||
to:@return
|
||||
memset::@3: scope:[memset] from memset::@2
|
||||
[145] *((byte*) memset::dst#2) ← (byte) memset::c#4
|
||||
[146] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@2
|
||||
|
||||
(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num)
|
||||
memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2
|
||||
[147] (void*) memcpy::destination#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS )
|
||||
[147] (void*) memcpy::source#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 )
|
||||
[148] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28
|
||||
[149] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2
|
||||
[150] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2
|
||||
to:memcpy::@1
|
||||
memcpy::@1: scope:[memcpy] from memcpy memcpy::@2
|
||||
[151] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*) memcpy::dst#4 memcpy::@2/(byte*) memcpy::dst#1 )
|
||||
[151] (byte*) memcpy::src#2 ← phi( memcpy/(byte*) memcpy::src#4 memcpy::@2/(byte*) memcpy::src#1 )
|
||||
[152] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2
|
||||
to:memcpy::@return
|
||||
memcpy::@return: scope:[memcpy] from memcpy::@1
|
||||
[153] return
|
||||
to:@return
|
||||
memcpy::@2: scope:[memcpy] from memcpy::@1
|
||||
[154] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2)
|
||||
[155] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2
|
||||
[156] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2
|
||||
to:memcpy::@1
|
||||
|
||||
(void()) cputs((to_nomodify byte*) cputs::s)
|
||||
cputs: scope:[cputs] from main::@15 main::@7 printf_number_buffer::@5
|
||||
[157] (to_nomodify byte*) cputs::s#5 ← phi( main::@15/(const byte*) main::s1 main::@7/(const byte*) main::s printf_number_buffer::@5/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
|
||||
to:cputs::@1
|
||||
cputs::@1: scope:[cputs] from cputs cputs::@2
|
||||
[158] (to_nomodify byte*) cputs::s#4 ← phi( cputs/(to_nomodify byte*) cputs::s#5 cputs::@2/(to_nomodify byte*) cputs::s#0 )
|
||||
[159] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4)
|
||||
[160] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4
|
||||
[161] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2
|
||||
to:cputs::@return
|
||||
cputs::@return: scope:[cputs] from cputs::@1
|
||||
[162] return
|
||||
to:@return
|
||||
cputs::@2: scope:[cputs] from cputs::@1
|
||||
[163] (byte) cputc::c#0 ← (byte) cputs::c#1
|
||||
[164] call cputc
|
||||
to:cputs::@1
|
||||
|
||||
(byte*()) strupr((byte*) strupr::str)
|
||||
strupr: scope:[strupr] from printf_number_buffer::@11
|
||||
[165] phi()
|
||||
to:strupr::@1
|
||||
strupr::@1: scope:[strupr] from strupr strupr::@3
|
||||
[166] (byte*) strupr::src#2 ← phi( strupr/(const byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 )
|
||||
[167] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2
|
||||
to:strupr::@return
|
||||
strupr::@return: scope:[strupr] from strupr::@1
|
||||
[168] return
|
||||
to:@return
|
||||
strupr::@2: scope:[strupr] from strupr::@1
|
||||
[169] (byte) toupper::ch#0 ← *((byte*) strupr::src#2)
|
||||
[170] call toupper
|
||||
[171] (byte) toupper::return#3 ← (byte) toupper::return#2
|
||||
to:strupr::@3
|
||||
strupr::@3: scope:[strupr] from strupr::@2
|
||||
[172] (byte~) strupr::$0 ← (byte) toupper::return#3
|
||||
[173] *((byte*) strupr::src#2) ← (byte~) strupr::$0
|
||||
[174] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2
|
||||
to:strupr::@1
|
||||
|
||||
(byte()) toupper((byte) toupper::ch)
|
||||
toupper: scope:[toupper] from strupr::@2
|
||||
[175] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return
|
||||
to:toupper::@2
|
||||
toupper::@2: scope:[toupper] from toupper
|
||||
[176] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1
|
||||
to:toupper::@return
|
||||
toupper::@1: scope:[toupper] from toupper::@2
|
||||
[177] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a'
|
||||
to:toupper::@return
|
||||
toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2
|
||||
[178] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 )
|
||||
[179] return
|
||||
to:@return
|
||||
|
||||
(word()) strlen((byte*) strlen::str)
|
||||
strlen: scope:[strlen] from printf_number_buffer::@6
|
||||
[180] phi()
|
||||
to:strlen::@1
|
||||
strlen::@1: scope:[strlen] from strlen strlen::@2
|
||||
[181] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 )
|
||||
[181] (byte*) strlen::str#2 ← phi( strlen/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS strlen::@2/(byte*) strlen::str#0 )
|
||||
[182] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2
|
||||
to:strlen::@return
|
||||
strlen::@return: scope:[strlen] from strlen::@1
|
||||
[183] return
|
||||
to:@return
|
||||
strlen::@2: scope:[strlen] from strlen::@1
|
||||
[184] (word) strlen::len#1 ← ++ (word) strlen::len#2
|
||||
[185] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2
|
||||
to:strlen::@1
|
||||
|
||||
(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix)
|
||||
ultoa: scope:[ultoa] from printf_ulong::@1
|
||||
[186] phi()
|
||||
to:ultoa::@1
|
||||
ultoa::@1: scope:[ultoa] from ultoa ultoa::@4
|
||||
[187] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
|
||||
[187] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 )
|
||||
[187] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 )
|
||||
[187] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 )
|
||||
[188] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2
|
||||
to:ultoa::@3
|
||||
ultoa::@3: scope:[ultoa] from ultoa::@1
|
||||
[189] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2
|
||||
[190] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11)
|
||||
[191] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11
|
||||
[192] *((byte*) ultoa::buffer#3) ← (byte) 0
|
||||
to:ultoa::@return
|
||||
ultoa::@return: scope:[ultoa] from ultoa::@3
|
||||
[193] return
|
||||
to:@return
|
||||
ultoa::@2: scope:[ultoa] from ultoa::@1
|
||||
[194] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2
|
||||
[195] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10)
|
||||
[196] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5
|
||||
to:ultoa::@7
|
||||
ultoa::@7: scope:[ultoa] from ultoa::@2
|
||||
[197] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5
|
||||
to:ultoa::@4
|
||||
ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7
|
||||
[198] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 )
|
||||
[198] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 )
|
||||
[198] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 )
|
||||
[199] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2
|
||||
to:ultoa::@1
|
||||
ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7
|
||||
[200] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11
|
||||
[201] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2
|
||||
[202] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0
|
||||
[203] call ultoa_append
|
||||
[204] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2
|
||||
to:ultoa::@6
|
||||
ultoa::@6: scope:[ultoa] from ultoa::@5
|
||||
[205] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0
|
||||
[206] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11
|
||||
to:ultoa::@4
|
||||
|
||||
(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub)
|
||||
ultoa_append: scope:[ultoa_append] from ultoa::@5
|
||||
[207] phi()
|
||||
to:ultoa_append::@1
|
||||
ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2
|
||||
[208] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 )
|
||||
[208] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 )
|
||||
[209] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2
|
||||
to:ultoa_append::@3
|
||||
ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1
|
||||
[210] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2)
|
||||
to:ultoa_append::@return
|
||||
ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3
|
||||
[211] return
|
||||
to:@return
|
||||
ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1
|
||||
[212] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2
|
||||
[213] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0
|
||||
to:ultoa_append::@1
|
||||
|
||||
(byte()) textcolor((byte) textcolor::color)
|
||||
textcolor: scope:[textcolor] from main::@14 main::@6 main::@9
|
||||
[214] (byte) textcolor::color#3 ← phi( main::@9/(const nomodify byte) LIGHT_BLUE main::@14/(const nomodify byte) WHITE main::@6/(const nomodify byte) WHITE )
|
||||
[215] (byte) conio_textcolor ← (byte) textcolor::color#3
|
||||
to:textcolor::@return
|
||||
textcolor::@return: scope:[textcolor] from textcolor
|
||||
[216] return
|
||||
to:@return
|
||||
|
||||
(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y)
|
||||
gotoxy: scope:[gotoxy] from main::@3 main::@5
|
||||
[217] (byte) gotoxy::x#4 ← phi( main::@3/(byte) gotoxy::x#2 main::@5/(byte) $1c )
|
||||
[217] (byte) gotoxy::y#4 ← phi( main::@3/(byte) gotoxy::y#2 main::@5/(byte) 0 )
|
||||
[218] if((byte) gotoxy::y#4<(byte) $19+(byte) 1) goto gotoxy::@3
|
||||
to:gotoxy::@1
|
||||
gotoxy::@3: scope:[gotoxy] from gotoxy
|
||||
[219] phi()
|
||||
to:gotoxy::@1
|
||||
gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3
|
||||
[220] (byte) gotoxy::y#5 ← phi( gotoxy::@3/(byte) gotoxy::y#4 gotoxy/(byte) 0 )
|
||||
[221] if((byte) gotoxy::x#4<(byte) $28) goto gotoxy::@4
|
||||
to:gotoxy::@2
|
||||
gotoxy::@4: scope:[gotoxy] from gotoxy::@1
|
||||
[222] phi()
|
||||
to:gotoxy::@2
|
||||
gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4
|
||||
[223] (byte) gotoxy::x#5 ← phi( gotoxy::@4/(byte) gotoxy::x#4 gotoxy::@1/(byte) 0 )
|
||||
[224] (byte) conio_cursor_x ← (byte) gotoxy::x#5
|
||||
[225] (byte) conio_cursor_y ← (byte) gotoxy::y#5
|
||||
[226] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5
|
||||
[227] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2
|
||||
[228] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8
|
||||
[229] (word~) gotoxy::$4 ← (word~) gotoxy::$10 << (byte) 3
|
||||
[230] (word) gotoxy::offset#0 ← (word~) gotoxy::$4 + (byte) gotoxy::x#5
|
||||
[231] (byte*~) gotoxy::$6 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0
|
||||
[232] (byte*) conio_cursor_text ← (byte*~) gotoxy::$6
|
||||
[233] (byte*~) gotoxy::$7 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0
|
||||
[234] (byte*) conio_cursor_color ← (byte*~) gotoxy::$7
|
||||
to:gotoxy::@return
|
||||
gotoxy::@return: scope:[gotoxy] from gotoxy::@2
|
||||
[235] return
|
||||
to:@return
|
||||
|
||||
(word()) rand()
|
||||
rand: scope:[rand] from main::@2 main::@8
|
||||
[236] (word) rand_state#9 ← phi( main::@2/(word) rand_state#10 main::@8/(word) 1 )
|
||||
[237] (word~) rand::$0 ← (word) rand_state#9 << (byte) 7
|
||||
[238] (word) rand_state#1 ← (word) rand_state#9 ^ (word~) rand::$0
|
||||
[239] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9
|
||||
[240] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1
|
||||
[241] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8
|
||||
[242] (word) rand_state#10 ← (word) rand_state#2 ^ (word~) rand::$2
|
||||
[243] (word) rand::return#0 ← (word) rand_state#10
|
||||
to:rand::@return
|
||||
rand::@return: scope:[rand] from rand
|
||||
[244] return
|
||||
to:@return
|
||||
|
||||
(void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_upper_case , (byte) printf_uint::format_radix)
|
||||
printf_uint: scope:[printf_uint] from main::@12
|
||||
[245] phi()
|
||||
to:printf_uint::@1
|
||||
printf_uint::@1: scope:[printf_uint] from printf_uint
|
||||
[246] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0
|
||||
[247] (word) utoa::value#1 ← (word) printf_uint::uvalue#0
|
||||
[248] call utoa
|
||||
to:printf_uint::@2
|
||||
printf_uint::@2: scope:[printf_uint] from printf_uint::@1
|
||||
[249] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer)
|
||||
[250] call printf_number_buffer
|
||||
to:printf_uint::@return
|
||||
printf_uint::@return: scope:[printf_uint] from printf_uint::@2
|
||||
[251] return
|
||||
to:@return
|
||||
|
||||
(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix)
|
||||
utoa: scope:[utoa] from printf_uint::@1
|
||||
[252] phi()
|
||||
to:utoa::@1
|
||||
utoa::@1: scope:[utoa] from utoa utoa::@4
|
||||
[253] (byte*) utoa::buffer#11 ← phi( utoa::@4/(byte*) utoa::buffer#14 utoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
|
||||
[253] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 )
|
||||
[253] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(word) utoa::value#1 )
|
||||
[253] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 )
|
||||
[254] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2
|
||||
to:utoa::@3
|
||||
utoa::@3: scope:[utoa] from utoa::@1
|
||||
[255] (byte~) utoa::$11 ← (byte)(word) utoa::value#2
|
||||
[256] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11)
|
||||
[257] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11
|
||||
[258] *((byte*) utoa::buffer#3) ← (byte) 0
|
||||
to:utoa::@return
|
||||
utoa::@return: scope:[utoa] from utoa::@3
|
||||
[259] return
|
||||
to:@return
|
||||
utoa::@2: scope:[utoa] from utoa::@1
|
||||
[260] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1
|
||||
[261] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10)
|
||||
[262] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5
|
||||
to:utoa::@7
|
||||
utoa::@7: scope:[utoa] from utoa::@2
|
||||
[263] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5
|
||||
to:utoa::@4
|
||||
utoa::@4: scope:[utoa] from utoa::@6 utoa::@7
|
||||
[264] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 )
|
||||
[264] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 )
|
||||
[264] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 )
|
||||
[265] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2
|
||||
to:utoa::@1
|
||||
utoa::@5: scope:[utoa] from utoa::@2 utoa::@7
|
||||
[266] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11
|
||||
[267] (word) utoa_append::value#0 ← (word) utoa::value#2
|
||||
[268] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0
|
||||
[269] call utoa_append
|
||||
[270] (word) utoa_append::return#0 ← (word) utoa_append::value#2
|
||||
to:utoa::@6
|
||||
utoa::@6: scope:[utoa] from utoa::@5
|
||||
[271] (word) utoa::value#0 ← (word) utoa_append::return#0
|
||||
[272] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11
|
||||
to:utoa::@4
|
||||
|
||||
(word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub)
|
||||
utoa_append: scope:[utoa_append] from utoa::@5
|
||||
[273] phi()
|
||||
to:utoa_append::@1
|
||||
utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2
|
||||
[274] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 )
|
||||
[274] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 )
|
||||
[275] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2
|
||||
to:utoa_append::@3
|
||||
utoa_append::@3: scope:[utoa_append] from utoa_append::@1
|
||||
[276] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2)
|
||||
to:utoa_append::@return
|
||||
utoa_append::@return: scope:[utoa_append] from utoa_append::@3
|
||||
[277] return
|
||||
to:@return
|
||||
utoa_append::@2: scope:[utoa_append] from utoa_append::@1
|
||||
[278] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2
|
||||
[279] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0
|
||||
to:utoa_append::@1
|
||||
|
||||
(void()) clrscr()
|
||||
clrscr: scope:[clrscr] from main
|
||||
[280] phi()
|
||||
to:clrscr::@1
|
||||
clrscr::@1: scope:[clrscr] from clrscr clrscr::@5
|
||||
[281] (byte*) clrscr::line_cols#5 ← phi( clrscr/(const nomodify byte*) CONIO_SCREEN_COLORS clrscr::@5/(byte*) clrscr::line_cols#1 )
|
||||
[281] (byte*) clrscr::line_text#5 ← phi( clrscr/(const nomodify byte*) CONIO_SCREEN_TEXT clrscr::@5/(byte*) clrscr::line_text#1 )
|
||||
[281] (byte) clrscr::l#2 ← phi( clrscr/(byte) 0 clrscr::@5/(byte) clrscr::l#1 )
|
||||
[282] if((byte) clrscr::l#2<(byte) $19) goto clrscr::@3
|
||||
to:clrscr::@2
|
||||
clrscr::@2: scope:[clrscr] from clrscr::@1
|
||||
[283] (byte) conio_cursor_x ← (byte) 0
|
||||
[284] (byte) conio_cursor_y ← (byte) 0
|
||||
[285] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT
|
||||
[286] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS
|
||||
to:clrscr::@return
|
||||
clrscr::@return: scope:[clrscr] from clrscr::@2
|
||||
[287] return
|
||||
to:@return
|
||||
clrscr::@3: scope:[clrscr] from clrscr::@1 clrscr::@4
|
||||
[288] (byte) clrscr::c#2 ← phi( clrscr::@1/(byte) 0 clrscr::@4/(byte) clrscr::c#1 )
|
||||
[289] if((byte) clrscr::c#2<(byte) $28) goto clrscr::@4
|
||||
to:clrscr::@5
|
||||
clrscr::@5: scope:[clrscr] from clrscr::@3
|
||||
[290] (byte*) clrscr::line_text#1 ← (byte*) clrscr::line_text#5 + (byte) $28
|
||||
[291] (byte*) clrscr::line_cols#1 ← (byte*) clrscr::line_cols#5 + (byte) $28
|
||||
[292] (byte) clrscr::l#1 ← ++ (byte) clrscr::l#2
|
||||
to:clrscr::@1
|
||||
clrscr::@4: scope:[clrscr] from clrscr::@3
|
||||
[293] *((byte*) clrscr::line_text#5 + (byte) clrscr::c#2) ← (byte) ' '
|
||||
[294] *((byte*) clrscr::line_cols#5 + (byte) clrscr::c#2) ← (byte) conio_textcolor
|
||||
[295] (byte) clrscr::c#1 ← ++ (byte) clrscr::c#2
|
||||
to:clrscr::@3
|
12595
src/test/ref/rand-1.log
Normal file
12595
src/test/ref/rand-1.log
Normal file
File diff suppressed because one or more lines are too long
572
src/test/ref/rand-1.sym
Normal file
572
src/test/ref/rand-1.sym
Normal file
@ -0,0 +1,572 @@
|
||||
(label) @1
|
||||
(label) @2
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(const nomodify byte*) CONIO_SCREEN_COLORS = (byte*) 55296
|
||||
(const nomodify byte*) CONIO_SCREEN_TEXT = (byte*) 1024
|
||||
(const nomodify byte) CONIO_TEXTCOLOR_DEFAULT = (byte) $e
|
||||
(const byte*) DIGITS[] = (byte*) "0123456789abcdef"z
|
||||
(const nomodify byte) LIGHT_BLUE = (byte) $e
|
||||
(byte) MOS6526_CIA::INTERRUPT
|
||||
(byte) MOS6526_CIA::PORT_A
|
||||
(byte) MOS6526_CIA::PORT_A_DDR
|
||||
(byte) MOS6526_CIA::PORT_B
|
||||
(byte) MOS6526_CIA::PORT_B_DDR
|
||||
(byte) MOS6526_CIA::SERIAL_DATA
|
||||
(word) MOS6526_CIA::TIMER_A
|
||||
(byte) MOS6526_CIA::TIMER_A_CONTROL
|
||||
(word) MOS6526_CIA::TIMER_B
|
||||
(byte) MOS6526_CIA::TIMER_B_CONTROL
|
||||
(byte) MOS6526_CIA::TOD_10THS
|
||||
(byte) MOS6526_CIA::TOD_HOURS
|
||||
(byte) MOS6526_CIA::TOD_MIN
|
||||
(byte) MOS6526_CIA::TOD_SEC
|
||||
(byte) MOS6569_VICII::BG_COLOR
|
||||
(byte) MOS6569_VICII::BG_COLOR1
|
||||
(byte) MOS6569_VICII::BG_COLOR2
|
||||
(byte) MOS6569_VICII::BG_COLOR3
|
||||
(byte) MOS6569_VICII::BORDER_COLOR
|
||||
(byte) MOS6569_VICII::CONTROL1
|
||||
(byte) MOS6569_VICII::CONTROL2
|
||||
(byte) MOS6569_VICII::IRQ_ENABLE
|
||||
(byte) MOS6569_VICII::IRQ_STATUS
|
||||
(byte) MOS6569_VICII::LIGHTPEN_X
|
||||
(byte) MOS6569_VICII::LIGHTPEN_Y
|
||||
(byte) MOS6569_VICII::MEMORY
|
||||
(byte) MOS6569_VICII::RASTER
|
||||
(byte) MOS6569_VICII::SPRITE0_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE0_X
|
||||
(byte) MOS6569_VICII::SPRITE0_Y
|
||||
(byte) MOS6569_VICII::SPRITE1_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE1_X
|
||||
(byte) MOS6569_VICII::SPRITE1_Y
|
||||
(byte) MOS6569_VICII::SPRITE2_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE2_X
|
||||
(byte) MOS6569_VICII::SPRITE2_Y
|
||||
(byte) MOS6569_VICII::SPRITE3_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE3_X
|
||||
(byte) MOS6569_VICII::SPRITE3_Y
|
||||
(byte) MOS6569_VICII::SPRITE4_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE4_X
|
||||
(byte) MOS6569_VICII::SPRITE4_Y
|
||||
(byte) MOS6569_VICII::SPRITE5_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE5_X
|
||||
(byte) MOS6569_VICII::SPRITE5_Y
|
||||
(byte) MOS6569_VICII::SPRITE6_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE6_X
|
||||
(byte) MOS6569_VICII::SPRITE6_Y
|
||||
(byte) MOS6569_VICII::SPRITE7_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE7_X
|
||||
(byte) MOS6569_VICII::SPRITE7_Y
|
||||
(byte) MOS6569_VICII::SPRITES_BG_COLLISION
|
||||
(byte) MOS6569_VICII::SPRITES_COLLISION
|
||||
(byte) MOS6569_VICII::SPRITES_ENABLE
|
||||
(byte) MOS6569_VICII::SPRITES_EXPAND_X
|
||||
(byte) MOS6569_VICII::SPRITES_EXPAND_Y
|
||||
(byte) MOS6569_VICII::SPRITES_MC
|
||||
(byte) MOS6569_VICII::SPRITES_MCOLOR1
|
||||
(byte) MOS6569_VICII::SPRITES_MCOLOR2
|
||||
(byte) MOS6569_VICII::SPRITES_PRIORITY
|
||||
(byte) MOS6569_VICII::SPRITES_XMSB
|
||||
(byte) MOS6581_SID::CH1_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH1_CONTROL
|
||||
(word) MOS6581_SID::CH1_FREQ
|
||||
(word) MOS6581_SID::CH1_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH1_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::CH2_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH2_CONTROL
|
||||
(word) MOS6581_SID::CH2_FREQ
|
||||
(word) MOS6581_SID::CH2_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH2_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::CH3_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH3_CONTROL
|
||||
(byte) MOS6581_SID::CH3_ENV
|
||||
(word) MOS6581_SID::CH3_FREQ
|
||||
(byte) MOS6581_SID::CH3_OSC
|
||||
(word) MOS6581_SID::CH3_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH3_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::FILTER_CUTOFF_HIGH
|
||||
(byte) MOS6581_SID::FILTER_CUTOFF_LOW
|
||||
(byte) MOS6581_SID::FILTER_SETUP
|
||||
(byte) MOS6581_SID::POT_X
|
||||
(byte) MOS6581_SID::POT_Y
|
||||
(byte) MOS6581_SID::VOLUME_FILTER_MODE
|
||||
(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1
|
||||
(const byte) RADIX::BINARY = (number) 2
|
||||
(const byte) RADIX::DECIMAL = (number) $a
|
||||
(const byte) RADIX::HEXADECIMAL = (number) $10
|
||||
(const byte) RADIX::OCTAL = (number) 8
|
||||
(const word*) RADIX_DECIMAL_VALUES[] = { (word) $2710, (word) $3e8, (word) $64, (word) $a }
|
||||
(const dword*) RADIX_DECIMAL_VALUES_LONG[] = { (dword) $3b9aca00, (dword) $5f5e100, (dword) $989680, (dword) $f4240, (dword) $186a0, (dword) $2710, (dword) $3e8, (dword) $64, (dword) $a }
|
||||
(const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c
|
||||
(const nomodify byte) WHITE = (byte) 1
|
||||
(void()) clrscr()
|
||||
(label) clrscr::@1
|
||||
(label) clrscr::@2
|
||||
(label) clrscr::@3
|
||||
(label) clrscr::@4
|
||||
(label) clrscr::@5
|
||||
(label) clrscr::@return
|
||||
(byte) clrscr::c
|
||||
(byte) clrscr::c#1 reg byte y 20002.0
|
||||
(byte) clrscr::c#2 reg byte y 12501.25
|
||||
(byte) clrscr::l
|
||||
(byte) clrscr::l#1 reg byte x 2002.0
|
||||
(byte) clrscr::l#2 reg byte x 333.6666666666667
|
||||
(byte*) clrscr::line_cols
|
||||
(byte*) clrscr::line_cols#1 line_cols zp[2]:24 1001.0
|
||||
(byte*) clrscr::line_cols#5 line_cols zp[2]:24 1500.375
|
||||
(byte*) clrscr::line_text
|
||||
(byte*) clrscr::line_text#1 line_text zp[2]:20 667.3333333333334
|
||||
(byte*) clrscr::line_text#5 line_text zp[2]:20 1714.7142857142858
|
||||
(byte*) conio_cursor_color loadstore zp[2]:26 1.991071527767857E8
|
||||
(byte*) conio_cursor_text loadstore zp[2]:24 1.939130531391304E8
|
||||
(byte) conio_cursor_x loadstore zp[1]:22 3.090910100909091E7
|
||||
(byte) conio_cursor_y loadstore zp[1]:23 2.5555556437301588E8
|
||||
(byte) conio_textcolor loadstore zp[1]:28 6.91781514109589E7
|
||||
(void()) cputc((byte) cputc::c)
|
||||
(label) cputc::@1
|
||||
(label) cputc::@2
|
||||
(label) cputc::@3
|
||||
(label) cputc::@return
|
||||
(byte) cputc::c
|
||||
(byte) cputc::c#0 reg byte a 2.0000002E7
|
||||
(byte) cputc::c#1 reg byte a 2.0000002E7
|
||||
(byte) cputc::c#2 reg byte a 20002.0
|
||||
(byte) cputc::c#3 reg byte a 1.100050025E8
|
||||
(void()) cputln()
|
||||
(byte*~) cputln::$0 zp[2]:24 2.000000002E9
|
||||
(byte*~) cputln::$1 zp[2]:24 2.000000002E9
|
||||
(byte*~) cputln::$2 zp[2]:26 2.000000002E9
|
||||
(byte*~) cputln::$3 zp[2]:26 2.000000002E9
|
||||
(label) cputln::@return
|
||||
(void()) cputs((to_nomodify byte*) cputs::s)
|
||||
(label) cputs::@1
|
||||
(label) cputs::@2
|
||||
(label) cputs::@return
|
||||
(byte) cputs::c
|
||||
(byte) cputs::c#1 reg byte a 1.0000001E7
|
||||
(to_nomodify byte*) cputs::s
|
||||
(to_nomodify byte*) cputs::s#0 s zp[2]:35 5000000.5
|
||||
(to_nomodify byte*) cputs::s#4 s zp[2]:35 1.5050002E7
|
||||
(to_nomodify byte*) cputs::s#5 s zp[2]:35 100001.0
|
||||
(void()) cscroll()
|
||||
(byte*~) cscroll::$7 zp[2]:24 2.0000000002E10
|
||||
(byte*~) cscroll::$8 zp[2]:26 2.0000000002E10
|
||||
(label) cscroll::@1
|
||||
(label) cscroll::@2
|
||||
(label) cscroll::@3
|
||||
(label) cscroll::@4
|
||||
(label) cscroll::@5
|
||||
(label) cscroll::@return
|
||||
(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y)
|
||||
(word~) gotoxy::$10 zp[2]:26 2002.0
|
||||
(word~) gotoxy::$4 zp[2]:26 2002.0
|
||||
(byte*~) gotoxy::$6 zp[2]:24 2002.0
|
||||
(byte*~) gotoxy::$7 zp[2]:26 2002.0
|
||||
(word~) gotoxy::$8 zp[2]:26 1501.5
|
||||
(word~) gotoxy::$9 zp[2]:35 2002.0
|
||||
(label) gotoxy::@1
|
||||
(label) gotoxy::@2
|
||||
(label) gotoxy::@3
|
||||
(label) gotoxy::@4
|
||||
(label) gotoxy::@return
|
||||
(word) gotoxy::offset
|
||||
(word) gotoxy::offset#0 offset zp[2]:26 1001.0
|
||||
(byte) gotoxy::x
|
||||
(byte) gotoxy::x#2 reg byte x 101.0
|
||||
(byte) gotoxy::x#4 reg byte x 350.5
|
||||
(byte) gotoxy::x#5 reg byte x 429.0
|
||||
(byte) gotoxy::y
|
||||
(byte) gotoxy::y#2 reg byte a 202.0
|
||||
(byte) gotoxy::y#4 reg byte a 701.0
|
||||
(byte) gotoxy::y#5 reg byte a 333.6666666666667
|
||||
(void()) main()
|
||||
(byte~) main::$18 reg byte a 202.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
(label) main::@12
|
||||
(label) main::@13
|
||||
(label) main::@14
|
||||
(label) main::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(label) main::@return
|
||||
(dword) main::cnt
|
||||
(dword) main::cnt#1 cnt zp[4]:2 8.875
|
||||
(dword) main::cnt#2 cnt zp[4]:2 202.0
|
||||
(byte) main::col
|
||||
(byte) main::col#1 col zp[1]:6 101.0
|
||||
(byte) main::col#3 col zp[1]:6 45.90909090909091
|
||||
(byte) main::col#7 col zp[1]:6 80.8
|
||||
(word) main::first
|
||||
(word) main::first#0 first zp[2]:29 5.590909090909091
|
||||
(word) main::rnd
|
||||
(word) main::rnd#1 rnd zp[2]:8 151.5
|
||||
(word) main::rnd#2 rnd zp[2]:8 30.42857142857143
|
||||
(word) main::rnd#5 rnd zp[2]:8 22.0
|
||||
(byte) main::row
|
||||
(byte) main::row#1 row zp[1]:7 151.5
|
||||
(byte) main::row#3 row zp[1]:7 44.888888888888886
|
||||
(byte) main::row#7 row zp[1]:7 60.599999999999994
|
||||
(const byte*) main::s[(byte) $1d] = (byte*) "generating unique randoms..."
|
||||
(const byte*) main::s1[(byte) 7] = (byte*) "found "
|
||||
(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num)
|
||||
(label) memcpy::@1
|
||||
(label) memcpy::@2
|
||||
(label) memcpy::@return
|
||||
(void*) memcpy::destination
|
||||
(void*) memcpy::destination#2 destination zp[2]:20
|
||||
(byte*) memcpy::dst
|
||||
(byte*) memcpy::dst#1 dst zp[2]:20 1.00000000000001E14
|
||||
(byte*) memcpy::dst#2 dst zp[2]:20 1.0003333333333467E14
|
||||
(byte*) memcpy::dst#4 dst zp[2]:20 2.00000000002E11
|
||||
(word) memcpy::num
|
||||
(void*) memcpy::return
|
||||
(void*) memcpy::source
|
||||
(void*) memcpy::source#2 source zp[2]:39
|
||||
(byte*) memcpy::src
|
||||
(byte*) memcpy::src#1 src zp[2]:39 2.00000000000002E14
|
||||
(byte*) memcpy::src#2 src zp[2]:39 1.0002500000000125E14
|
||||
(byte*) memcpy::src#4 src zp[2]:39 1.00000000001E11
|
||||
(byte*) memcpy::src_end
|
||||
(byte*) memcpy::src_end#0 src_end zp[2]:37 1.251250000000025E13
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
(label) memset::@3
|
||||
(label) memset::@return
|
||||
(byte) memset::c
|
||||
(byte) memset::c#1 reg byte x 2.0000000002E10
|
||||
(byte) memset::c#4 reg byte x 1.4287142857143143E13
|
||||
(byte*) memset::dst
|
||||
(byte*) memset::dst#1 dst zp[2]:39 2.00000000000002E14
|
||||
(byte*) memset::dst#2 dst zp[2]:39 1.3336666666666834E14
|
||||
(byte*) memset::dst#4 dst zp[2]:39 2.00000000002E11
|
||||
(byte*) memset::end
|
||||
(byte*) memset::end#0 end zp[2]:37 1.6683333333333668E13
|
||||
(word) memset::num
|
||||
(void*) memset::return
|
||||
(void*) memset::str
|
||||
(void*) memset::str#3 str zp[2]:39
|
||||
(struct printf_buffer_number) printf_buffer loadstore mem[12] = {}
|
||||
(const byte*) printf_buffer_number::digits[(number) $b] = { fill( $b, 0) }
|
||||
(byte) printf_buffer_number::sign
|
||||
(byte) printf_format_number::justify_left
|
||||
(byte) printf_format_number::min_length
|
||||
(byte) printf_format_number::radix
|
||||
(byte) printf_format_number::sign_always
|
||||
(byte) printf_format_number::upper_case
|
||||
(byte) printf_format_number::zero_padding
|
||||
(byte) printf_format_string::justify_left
|
||||
(byte) printf_format_string::min_length
|
||||
(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix)
|
||||
(word~) printf_number_buffer::$19 zp[2]:39 10001.0
|
||||
(label) printf_number_buffer::@1
|
||||
(label) printf_number_buffer::@10
|
||||
(label) printf_number_buffer::@11
|
||||
(label) printf_number_buffer::@12
|
||||
(label) printf_number_buffer::@13
|
||||
(label) printf_number_buffer::@14
|
||||
(label) printf_number_buffer::@15
|
||||
(label) printf_number_buffer::@16
|
||||
(label) printf_number_buffer::@17
|
||||
(label) printf_number_buffer::@18
|
||||
(label) printf_number_buffer::@19
|
||||
(label) printf_number_buffer::@2
|
||||
(label) printf_number_buffer::@20
|
||||
(label) printf_number_buffer::@21
|
||||
(label) printf_number_buffer::@3
|
||||
(label) printf_number_buffer::@4
|
||||
(label) printf_number_buffer::@5
|
||||
(label) printf_number_buffer::@6
|
||||
(label) printf_number_buffer::@7
|
||||
(label) printf_number_buffer::@8
|
||||
(label) printf_number_buffer::@9
|
||||
(label) printf_number_buffer::@return
|
||||
(struct printf_buffer_number) printf_number_buffer::buffer
|
||||
(byte*) printf_number_buffer::buffer_digits
|
||||
(byte) printf_number_buffer::buffer_sign
|
||||
(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:10 202.0
|
||||
(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:10 2002.0
|
||||
(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:10 1555.25
|
||||
(struct printf_format_number) printf_number_buffer::format
|
||||
(byte) printf_number_buffer::format_justify_left
|
||||
(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:16 645.2258064516129
|
||||
(byte) printf_number_buffer::format_min_length
|
||||
(byte) printf_number_buffer::format_min_length#2 reg byte x 1000.1
|
||||
(byte) printf_number_buffer::format_radix
|
||||
(byte) printf_number_buffer::format_sign_always
|
||||
(byte) printf_number_buffer::format_upper_case
|
||||
(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:11 384.65384615384613
|
||||
(byte) printf_number_buffer::format_zero_padding
|
||||
(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:19 937.59375
|
||||
(signed byte) printf_number_buffer::len
|
||||
(signed byte) printf_number_buffer::len#0 reg byte y 15001.5
|
||||
(signed byte) printf_number_buffer::len#1 reg byte y 20002.0
|
||||
(signed byte) printf_number_buffer::len#2 reg byte y 30003.0
|
||||
(signed byte) printf_number_buffer::padding
|
||||
(signed byte) printf_number_buffer::padding#1 padding zp[1]:12 10001.0
|
||||
(signed byte) printf_number_buffer::padding#10 padding zp[1]:12 1904.952380952381
|
||||
(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length)
|
||||
(label) printf_padding::@1
|
||||
(label) printf_padding::@2
|
||||
(label) printf_padding::@3
|
||||
(label) printf_padding::@return
|
||||
(byte) printf_padding::i
|
||||
(byte) printf_padding::i#1 i zp[1]:15 2.0000002E7
|
||||
(byte) printf_padding::i#2 i zp[1]:15 7500000.75
|
||||
(byte) printf_padding::length
|
||||
(byte) printf_padding::length#0 length zp[1]:13 20002.0
|
||||
(byte) printf_padding::length#1 length zp[1]:13 20002.0
|
||||
(byte) printf_padding::length#2 length zp[1]:13 20002.0
|
||||
(byte) printf_padding::length#4 length zp[1]:13 1671667.3333333333
|
||||
(byte) printf_padding::pad
|
||||
(byte) printf_padding::pad#5 pad zp[1]:14 1666666.8333333333
|
||||
(void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_upper_case , (byte) printf_uint::format_radix)
|
||||
(label) printf_uint::@1
|
||||
(label) printf_uint::@2
|
||||
(label) printf_uint::@return
|
||||
(struct printf_format_number) printf_uint::format
|
||||
(byte) printf_uint::format_justify_left
|
||||
(const byte) printf_uint::format_justify_left#0 format_justify_left = (byte) 0
|
||||
(byte) printf_uint::format_min_length
|
||||
(const byte) printf_uint::format_min_length#0 format_min_length = (byte) 5
|
||||
(byte) printf_uint::format_radix
|
||||
(byte) printf_uint::format_sign_always
|
||||
(byte) printf_uint::format_upper_case
|
||||
(const byte) printf_uint::format_upper_case#0 format_upper_case = (byte) 0
|
||||
(byte) printf_uint::format_zero_padding
|
||||
(const byte) printf_uint::format_zero_padding#0 format_zero_padding = (byte) 0
|
||||
(word) printf_uint::uvalue
|
||||
(word) printf_uint::uvalue#0 uvalue zp[2]:8 367.33333333333337
|
||||
(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix)
|
||||
(label) printf_ulong::@1
|
||||
(label) printf_ulong::@2
|
||||
(label) printf_ulong::@return
|
||||
(struct printf_format_number) printf_ulong::format
|
||||
(byte) printf_ulong::format_justify_left
|
||||
(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0
|
||||
(byte) printf_ulong::format_min_length
|
||||
(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 0
|
||||
(byte) printf_ulong::format_radix
|
||||
(byte) printf_ulong::format_sign_always
|
||||
(byte) printf_ulong::format_upper_case
|
||||
(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0
|
||||
(byte) printf_ulong::format_zero_padding
|
||||
(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0
|
||||
(dword) printf_ulong::uvalue
|
||||
(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 37.33333333333333
|
||||
(word()) rand()
|
||||
(word~) rand::$0 zp[2]:35 2002.0
|
||||
(word~) rand::$1 zp[2]:39 2002.0
|
||||
(word~) rand::$2 zp[2]:37 2002.0
|
||||
(label) rand::@return
|
||||
(word) rand::return
|
||||
(word) rand::return#0 return zp[2]:8 278.25
|
||||
(word) rand::return#2 return_1 zp[2]:29 22.0
|
||||
(word) rand::return#3 return zp[2]:8 202.0
|
||||
(word) rand_state
|
||||
(word) rand_state#1 rand_state zp[2]:17 1501.5
|
||||
(word) rand_state#10 rand_state zp[2]:17 77.88888888888889
|
||||
(word) rand_state#2 rand_state zp[2]:17 1501.5
|
||||
(word) rand_state#9 rand_state zp[2]:17 1051.5
|
||||
(word()) strlen((byte*) strlen::str)
|
||||
(label) strlen::@1
|
||||
(label) strlen::@2
|
||||
(label) strlen::@return
|
||||
(word) strlen::len
|
||||
(word) strlen::len#1 len zp[2]:39 1.0000001E7
|
||||
(word) strlen::len#2 len zp[2]:39 5002500.75
|
||||
(word) strlen::return
|
||||
(word) strlen::return#2 return zp[2]:39 20002.0
|
||||
(byte*) strlen::str
|
||||
(byte*) strlen::str#0 str zp[2]:35 2.0000002E7
|
||||
(byte*) strlen::str#2 str zp[2]:35 1.0000001E7
|
||||
(byte*()) strupr((byte*) strupr::str)
|
||||
(byte~) strupr::$0 reg byte a 2.0000002E7
|
||||
(label) strupr::@1
|
||||
(label) strupr::@2
|
||||
(label) strupr::@3
|
||||
(label) strupr::@return
|
||||
(byte*) strupr::return
|
||||
(byte*) strupr::src
|
||||
(byte*) strupr::src#1 src zp[2]:20 2.0000002E7
|
||||
(byte*) strupr::src#2 src zp[2]:20 7142857.857142856
|
||||
(byte*) strupr::str
|
||||
(const byte*) strupr::str#0 str = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
|
||||
(byte()) textcolor((byte) textcolor::color)
|
||||
(label) textcolor::@return
|
||||
(byte) textcolor::color
|
||||
(byte) textcolor::color#3 reg byte a 101.0
|
||||
(byte) textcolor::old
|
||||
(byte) textcolor::return
|
||||
(byte()) toupper((byte) toupper::ch)
|
||||
(label) toupper::@1
|
||||
(label) toupper::@2
|
||||
(label) toupper::@return
|
||||
(byte) toupper::ch
|
||||
(byte) toupper::ch#0 reg byte a 1.70000002E8
|
||||
(byte) toupper::return
|
||||
(byte) toupper::return#0 reg byte a 2.00000002E8
|
||||
(byte) toupper::return#2 reg byte a 1.0333333466666667E8
|
||||
(byte) toupper::return#3 reg byte a 2.0000002E7
|
||||
(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix)
|
||||
(byte~) ultoa::$10 reg byte a 20002.0
|
||||
(byte~) ultoa::$11 reg byte a 2002.0
|
||||
(label) ultoa::@1
|
||||
(label) ultoa::@2
|
||||
(label) ultoa::@3
|
||||
(label) ultoa::@4
|
||||
(label) ultoa::@5
|
||||
(label) ultoa::@6
|
||||
(label) ultoa::@7
|
||||
(label) ultoa::@return
|
||||
(byte*) ultoa::buffer
|
||||
(byte*) ultoa::buffer#11 buffer zp[2]:39 3000.4285714285716
|
||||
(byte*) ultoa::buffer#14 buffer zp[2]:39 15001.5
|
||||
(byte*) ultoa::buffer#3 buffer zp[2]:39 2002.0
|
||||
(byte*) ultoa::buffer#4 buffer zp[2]:39 20002.0
|
||||
(byte) ultoa::digit
|
||||
(byte) ultoa::digit#1 digit zp[1]:16 20002.0
|
||||
(byte) ultoa::digit#2 digit zp[1]:16 2857.4285714285716
|
||||
(dword) ultoa::digit_value
|
||||
(dword) ultoa::digit_value#0 digit_value zp[4]:31 6000.6
|
||||
(dword*) ultoa::digit_values
|
||||
(byte) ultoa::max_digits
|
||||
(const byte) ultoa::max_digits#1 max_digits = (byte) $a
|
||||
(byte) ultoa::radix
|
||||
(byte) ultoa::started
|
||||
(byte) ultoa::started#2 reg byte x 5000.5
|
||||
(byte) ultoa::started#4 reg byte x 10001.0
|
||||
(dword) ultoa::value
|
||||
(dword) ultoa::value#0 value zp[4]:2 10001.0
|
||||
(dword) ultoa::value#1 value zp[4]:2 551.0
|
||||
(dword) ultoa::value#2 value zp[4]:2 5857.857142857143
|
||||
(dword) ultoa::value#6 value zp[4]:2 15001.5
|
||||
(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub)
|
||||
(label) ultoa_append::@1
|
||||
(label) ultoa_append::@2
|
||||
(label) ultoa_append::@3
|
||||
(label) ultoa_append::@return
|
||||
(byte*) ultoa_append::buffer
|
||||
(byte*) ultoa_append::buffer#0 buffer zp[2]:39 13750.25
|
||||
(byte) ultoa_append::digit
|
||||
(byte) ultoa_append::digit#1 reg byte x 1.0000001E7
|
||||
(byte) ultoa_append::digit#2 reg byte x 1.00500015E7
|
||||
(dword) ultoa_append::return
|
||||
(dword) ultoa_append::return#0 return zp[4]:2 20002.0
|
||||
(dword) ultoa_append::sub
|
||||
(dword) ultoa_append::sub#0 sub zp[4]:31 3335000.5
|
||||
(dword) ultoa_append::value
|
||||
(dword) ultoa_append::value#0 value zp[4]:2 36667.33333333333
|
||||
(dword) ultoa_append::value#1 value zp[4]:2 2.0000002E7
|
||||
(dword) ultoa_append::value#2 value zp[4]:2 5018334.166666666
|
||||
(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix)
|
||||
(byte~) utoa::$10 reg byte a 2000002.0
|
||||
(byte~) utoa::$11 reg byte a 20002.0
|
||||
(label) utoa::@1
|
||||
(label) utoa::@2
|
||||
(label) utoa::@3
|
||||
(label) utoa::@4
|
||||
(label) utoa::@5
|
||||
(label) utoa::@6
|
||||
(label) utoa::@7
|
||||
(label) utoa::@return
|
||||
(byte*) utoa::buffer
|
||||
(byte*) utoa::buffer#11 buffer zp[2]:20 287143.2857142857
|
||||
(byte*) utoa::buffer#14 buffer zp[2]:20 1500001.5
|
||||
(byte*) utoa::buffer#3 buffer zp[2]:20 20002.0
|
||||
(byte*) utoa::buffer#4 buffer zp[2]:20 2000002.0
|
||||
(byte) utoa::digit
|
||||
(byte) utoa::digit#1 digit zp[1]:19 2000002.0
|
||||
(byte) utoa::digit#2 digit zp[1]:19 285714.5714285714
|
||||
(word) utoa::digit_value
|
||||
(word) utoa::digit_value#0 digit_value zp[2]:39 600000.6000000001
|
||||
(word*) utoa::digit_values
|
||||
(byte) utoa::max_digits
|
||||
(const byte) utoa::max_digits#1 max_digits = (byte) 5
|
||||
(byte) utoa::radix
|
||||
(byte) utoa::started
|
||||
(byte) utoa::started#2 reg byte x 500000.5
|
||||
(byte) utoa::started#4 reg byte x 1000001.0
|
||||
(word) utoa::value
|
||||
(word) utoa::value#0 value zp[2]:8 1000001.0
|
||||
(word) utoa::value#1 value zp[2]:8 5501.0
|
||||
(word) utoa::value#2 value zp[2]:8 572857.857142857
|
||||
(word) utoa::value#6 value zp[2]:8 1500001.5
|
||||
(word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub)
|
||||
(label) utoa_append::@1
|
||||
(label) utoa_append::@2
|
||||
(label) utoa_append::@3
|
||||
(label) utoa_append::@return
|
||||
(byte*) utoa_append::buffer
|
||||
(byte*) utoa_append::buffer#0 buffer zp[2]:20 1375000.25
|
||||
(byte) utoa_append::digit
|
||||
(byte) utoa_append::digit#1 reg byte x 1.0000000001E10
|
||||
(byte) utoa_append::digit#2 reg byte x 1.00050000015E10
|
||||
(word) utoa_append::return
|
||||
(word) utoa_append::return#0 return zp[2]:8 2000002.0
|
||||
(word) utoa_append::sub
|
||||
(word) utoa_append::sub#0 sub zp[2]:39 3.3335000005E9
|
||||
(word) utoa_append::value
|
||||
(word) utoa_append::value#0 value zp[2]:8 3666667.333333333
|
||||
(word) utoa_append::value#1 value zp[2]:8 2.0000000002E10
|
||||
(word) utoa_append::value#2 value zp[2]:8 5.001833334166666E9
|
||||
|
||||
zp[4]:2 [ main::cnt#2 main::cnt#1 printf_ulong::uvalue#0 ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ]
|
||||
zp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
zp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 printf_uint::uvalue#0 rand::return#3 utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 rand::return#0 ]
|
||||
reg byte x [ printf_number_buffer::format_min_length#2 ]
|
||||
zp[1]:10 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
zp[1]:11 [ 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]:12 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
zp[1]:13 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
zp[1]:14 [ printf_padding::pad#5 ]
|
||||
zp[1]:15 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
reg byte a [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ]
|
||||
reg byte x [ memset::c#4 memset::c#1 ]
|
||||
reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
|
||||
zp[1]:16 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ]
|
||||
reg byte x [ ultoa::started#2 ultoa::started#4 ]
|
||||
reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ]
|
||||
reg byte a [ textcolor::color#3 ]
|
||||
reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ]
|
||||
reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#2 ]
|
||||
zp[2]:17 [ rand_state#9 rand_state#10 rand_state#1 rand_state#2 ]
|
||||
zp[1]:19 [ utoa::digit#2 utoa::digit#1 printf_number_buffer::format_zero_padding#10 ]
|
||||
reg byte x [ utoa::started#2 utoa::started#4 ]
|
||||
reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ]
|
||||
reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
zp[2]:20 [ clrscr::line_text#5 clrscr::line_text#1 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strupr::src#2 strupr::src#1 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
|
||||
reg byte y [ clrscr::c#2 clrscr::c#1 ]
|
||||
zp[1]:22 [ conio_cursor_x ]
|
||||
zp[1]:23 [ conio_cursor_y ]
|
||||
zp[2]:24 [ conio_cursor_text cscroll::$7 cputln::$0 cputln::$1 gotoxy::$6 clrscr::line_cols#5 clrscr::line_cols#1 ]
|
||||
zp[2]:26 [ conio_cursor_color cscroll::$8 cputln::$2 cputln::$3 gotoxy::$7 gotoxy::$4 gotoxy::offset#0 gotoxy::$8 gotoxy::$10 ]
|
||||
zp[1]:28 [ conio_textcolor ]
|
||||
zp[2]:29 [ rand::return#2 main::first#0 ]
|
||||
reg byte a [ main::$18 ]
|
||||
reg byte a [ cputs::c#1 ]
|
||||
reg byte a [ toupper::return#3 ]
|
||||
reg byte a [ strupr::$0 ]
|
||||
reg byte a [ ultoa::$11 ]
|
||||
reg byte a [ ultoa::$10 ]
|
||||
zp[4]:31 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
|
||||
zp[2]:35 [ rand::$0 gotoxy::$9 strlen::str#2 strlen::str#0 cputs::s#4 cputs::s#5 cputs::s#0 ]
|
||||
zp[2]:37 [ rand::$2 memcpy::src_end#0 memset::end#0 ]
|
||||
reg byte a [ utoa::$11 ]
|
||||
reg byte a [ utoa::$10 ]
|
||||
zp[2]:39 [ utoa::digit_value#0 utoa_append::sub#0 rand::$1 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ]
|
||||
mem[12] [ printf_buffer ]
|
Loading…
Reference in New Issue
Block a user