1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-08-07 06:30:04 +00:00
Files
kickc/src/test/ref/complex/polygon/polygon.cfg

474 lines
25 KiB
INI

@begin: scope:[] from
[0] phi()
to:toD0181
toD0181: scope:[] from @begin
[1] phi()
to:@2
@2: scope:[] from toD0181
[2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0
[3] (volatile byte) canvas_show_flag ← (byte) 0
to:@1
@1: scope:[] from @2
[4] phi()
[5] call main
to:@end
@end: scope:[] from @1
[6] phi()
(void()) main()
main: scope:[main] from @1
[7] phi()
[8] call memset
to:main::@12
main::@12: scope:[main] from main
[9] phi()
[10] call memset
to:main::@13
main::@13: scope:[main] from main::@12
[11] phi()
[12] call memset
to:main::@1
main::@1: scope:[main] from main::@13 main::@6
[13] (byte*) main::screen#5 ← phi( main::@13/(const nomodify byte*) SCREEN+(byte) $c main::@6/(byte*) main::screen#1 )
[13] (byte*) main::cols#5 ← phi( main::@13/(const nomodify byte*) COLS+(byte) $c main::@6/(byte*) main::cols#1 )
[13] (byte) main::y#2 ← phi( main::@13/(byte) 0 main::@6/(byte) main::y#1 )
[14] if((byte) main::y#2<(byte) $10) goto main::@2
to:main::@3
main::@3: scope:[main] from main::@1
[15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK
[16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK
[17] call setup_irq
to:main::@14
main::@14: scope:[main] from main::@3
[18] phi()
[19] call textcolor
to:main::@7
main::@7: scope:[main] from main::@14 main::@21
[20] (byte*) main::canvas#10 ← phi( main::@14/(const nomodify byte*) CANVAS1 main::@21/(byte*) main::canvas#19 )
[20] (byte) main::p2_idx#2 ← phi( main::@14/(byte) $b5+(byte) $aa main::@21/(byte) main::p2_idx#1 )
[20] (byte) main::p1_idx#2 ← phi( main::@14/(byte) $b5+(byte) $f main::@21/(byte) main::p1_idx#1 )
[20] (byte) main::p0_idx#2 ← phi( main::@14/(byte) $b5 main::@21/(byte) main::p0_idx#1 )
to:main::@8
main::@8: scope:[main] from main::@7
[21] phi()
[22] call clock_start
to:main::@15
main::@15: scope:[main] from main::@8
[23] phi()
[24] call memset
to:main::@16
main::@16: scope:[main] from main::@15
[25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2)
[26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2)
[27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2)
[28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2)
[29] (byte) line::x1#0 ← (byte) main::x0#0
[30] (byte) line::y1#0 ← (byte) main::y0#0
[31] (byte) line::x2#0 ← (byte) main::x1#0
[32] (byte) line::y2#0 ← (byte) main::y1#0
[33] call line
to:main::@17
main::@17: scope:[main] from main::@16
[34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2)
[35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2)
[36] (byte) line::x1#1 ← (byte) main::x1#0
[37] (byte) line::y1#1 ← (byte) main::y1#0
[38] (byte) line::x2#1 ← (byte) main::x2#0
[39] (byte) line::y2#1 ← (byte) main::y2#0
[40] call line
to:main::@18
main::@18: scope:[main] from main::@17
[41] (byte) line::x1#2 ← (byte) main::x2#0
[42] (byte) line::y1#2 ← (byte) main::y2#0
[43] (byte) line::x2#2 ← (byte) main::x0#0
[44] (byte) line::y2#2 ← (byte) main::y0#0
[45] call line
to:main::@19
main::@19: scope:[main] from main::@18
[46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2
[47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2
[48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2
[49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED
to:main::@9
main::@9: scope:[main] from main::@19 main::@9
[50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9
to:main::@10
main::@10: scope:[main] from main::@9
[51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK
[52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10
[53] call eorfill
to:main::@20
main::@20: scope:[main] from main::@10
[54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2
to:main::toD0181
main::toD0181: scope:[main] from main::@20
[55] phi()
to:main::toD0182
main::toD0182: scope:[main] from main::toD0181
[56] phi()
to:main::@11
main::@11: scope:[main] from main::toD0182
[57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0
[58] (volatile byte) canvas_show_flag ← (byte) 1
[59] call clock
to:main::@21
main::@21: scope:[main] from main::@11
[60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1
to:main::@7
main::@2: scope:[main] from main::@1
[61] (byte) main::c#4 ← (byte) main::y#2
to:main::@4
main::@4: scope:[main] from main::@2 main::@5
[62] (byte) main::c#2 ← phi( main::@2/(byte) main::c#4 main::@5/(byte) main::c#1 )
[62] (byte) main::x#2 ← phi( main::@2/(byte) 0 main::@5/(byte) main::x#1 )
[63] if((byte) main::x#2<(byte) $10) goto main::@5
to:main::@6
main::@6: scope:[main] from main::@4
[64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28
[65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28
[66] (byte) main::y#1 ← ++ (byte) main::y#2
to:main::@1
main::@5: scope:[main] from main::@4
[67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE
[68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2
[69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10
[70] (byte) main::x#1 ← ++ (byte) main::x#2
to:main::@4
(dword()) clock()
clock: scope:[clock] from main::@11
[71] phi()
to:clock::@return
clock::@return: scope:[clock] from clock
[72] return
to:@return
(void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas)
eorfill: scope:[eorfill] from main::@10
[73] phi()
to:eorfill::@1
eorfill::@1: scope:[eorfill] from eorfill eorfill::@5
[74] (byte*) eorfill::fill_column#2 ← phi( eorfill/(byte*) eorfill::canvas#0 eorfill::@5/(byte*) eorfill::fill_column#1 )
[74] (byte*) eorfill::line_column#2 ← phi( eorfill/(const nomodify byte*) LINE_BUFFER eorfill::@5/(byte*) eorfill::line_column#1 )
[74] (byte) eorfill::x#2 ← phi( eorfill/(byte) 0 eorfill::@5/(byte) eorfill::x#1 )
[75] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2
to:eorfill::@return
eorfill::@return: scope:[eorfill] from eorfill::@1
[76] return
to:@return
eorfill::@2: scope:[eorfill] from eorfill::@1
[77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2)
[78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0
to:eorfill::@3
eorfill::@3: scope:[eorfill] from eorfill::@2 eorfill::@4
[79] (byte) eorfill::eor#2 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 )
[79] (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) 1 eorfill::@4/(byte) eorfill::y#1 )
[80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4
to:eorfill::@5
eorfill::@5: scope:[eorfill] from eorfill::@3
[81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8
[82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8
[83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2
to:eorfill::@1
eorfill::@4: scope:[eorfill] from eorfill::@3
[84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2)
[85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1
[86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2
to:eorfill::@3
(void()) line((byte*) line::canvas , (byte) line::x1 , (byte) line::y1 , (byte) line::x2 , (byte) line::y2)
line: scope:[line] from main::@16 main::@17 main::@18
[87] (byte) line::y2#10 ← phi( main::@16/(byte) line::y2#0 main::@17/(byte) line::y2#1 main::@18/(byte) line::y2#2 )
[87] (byte) line::x2#15 ← phi( main::@16/(byte) line::x2#0 main::@17/(byte) line::x2#1 main::@18/(byte) line::x2#2 )
[87] (byte) line::y#0 ← phi( main::@16/(byte) line::y1#0 main::@17/(byte) line::y1#1 main::@18/(byte) line::y1#2 )
[87] (byte) line::x#0 ← phi( main::@16/(byte) line::x1#0 main::@17/(byte) line::x1#1 main::@18/(byte) line::x1#2 )
[88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0
[89] call abs_u8
[90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4
to:line::@19
line::@19: scope:[line] from line
[91] (byte) line::dx#0 ← (byte) abs_u8::return#0
[92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0
[93] call abs_u8
[94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4
to:line::@20
line::@20: scope:[line] from line::@19
[95] (byte) line::dy#0 ← (byte) abs_u8::return#1
[96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0
[97] call sgn_u8
[98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4
to:line::@21
line::@21: scope:[line] from line::@20
[99] (byte) line::sx#0 ← (byte) sgn_u8::return#0
[100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0
[101] call sgn_u8
[102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4
to:line::@22
line::@22: scope:[line] from line::@21
[103] (byte) line::sy#0 ← (byte) sgn_u8::return#1
[104] if((byte) line::sx#0!=(byte) $ff) goto line::@1
to:line::@3
line::@3: scope:[line] from line::@22
[105] (byte) line::y#1 ← ++ (byte) line::y#0
[106] (byte) line::y2#3 ← ++ (byte) line::y2#10
to:line::@1
line::@1: scope:[line] from line::@22 line::@3
[107] (byte) line::y2#13 ← phi( line::@22/(byte) line::y2#10 line::@3/(byte) line::y2#3 )
[107] (byte) line::y#17 ← phi( line::@22/(byte) line::y#0 line::@3/(byte) line::y#1 )
[108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2
to:line::@4
line::@4: scope:[line] from line::@1
[109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1
to:line::@5
line::@5: scope:[line] from line::@4
[110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1
to:line::@6
line::@6: scope:[line] from line::@5 line::@7
[111] (byte) line::x#15 ← phi( line::@5/(byte) line::x#0 line::@7/(byte) line::x#17 )
[111] (byte) line::e#3 ← phi( line::@5/(byte) line::e#0 line::@7/(byte) line::e#5 )
[111] (byte) line::y#7 ← phi( line::@5/(byte) line::y#17 line::@7/(byte) line::y#10 )
[112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0
[113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0
[114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7
to:line::@8
line::@8: scope:[line] from line::@6
[115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0
to:line::plot2
line::plot2: scope:[line] from line::@8
[116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3
[117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1
[118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2)
[119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7
[120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1)
to:line::@16
line::@16: scope:[line] from line::plot2
[121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0
[122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0
to:line::@7
line::@7: scope:[line] from line::@16 line::@6
[123] (byte) line::x#17 ← phi( line::@16/(byte) line::x#1 line::@6/(byte) line::x#15 )
[123] (byte) line::e#5 ← phi( line::@16/(byte) line::e#2 line::@6/(byte) line::e#1 )
[124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6
to:line::plot3
line::plot3: scope:[line] from line::@7
[125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3
[126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1
[127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2)
[128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7
[129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1)
to:line::@return
line::@return: scope:[line] from line::@15 line::@17 line::plot3 line::plot6
[130] return
to:@return
line::plot1: scope:[line] from line::@4
[131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3
[132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1
[133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2)
[134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7
[135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1)
to:line::@15
line::@15: scope:[line] from line::plot1
[136] if((byte) line::dx#0!=(byte) 0) goto line::@9
to:line::@return
line::@9: scope:[line] from line::@15
[137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1
to:line::@10
line::@10: scope:[line] from line::@10 line::@17 line::@9
[138] (byte) line::x#18 ← phi( line::@9/(byte) line::x#0 line::@10/(byte) line::x#18 line::@17/(byte) line::x#19 )
[138] (byte) line::e1#3 ← phi( line::@9/(byte) line::e1#0 line::@10/(byte) line::e1#1 line::@17/(byte) line::e1#2 )
[138] (byte) line::y#11 ← phi( line::@9/(byte) line::y#17 line::@10/(byte) line::y#12 line::@17/(byte) line::y#12 )
[139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0
[140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0
[141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10
to:line::@11
line::@11: scope:[line] from line::@10
[142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0
[143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0
to:line::plot4
line::plot4: scope:[line] from line::@11
[144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3
[145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1
[146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2)
[147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7
[148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1)
to:line::@17
line::@17: scope:[line] from line::plot4
[149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10
to:line::@return
line::@2: scope:[line] from line::@1
[150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1
to:line::@12
line::@12: scope:[line] from line::@13 line::@2
[151] (byte) line::e2#3 ← phi( line::@13/(byte) line::e2#7 line::@2/(byte) line::e2#0 )
[151] (byte) line::y#13 ← phi( line::@13/(byte) line::y#15 line::@2/(byte) line::y#17 )
[151] (byte) line::x#10 ← phi( line::@13/(byte) line::x#12 line::@2/(byte) line::x#0 )
to:line::plot5
line::plot5: scope:[line] from line::@12
[152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3
[153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1
[154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2)
[155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7
[156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1)
to:line::@18
line::@18: scope:[line] from line::plot5
[157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0
[158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0
[159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13
to:line::@14
line::@14: scope:[line] from line::@18
[160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0
[161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0
to:line::@13
line::@13: scope:[line] from line::@14 line::@18
[162] (byte) line::e2#7 ← phi( line::@14/(byte) line::e2#2 line::@18/(byte) line::e2#1 )
[162] (byte) line::y#15 ← phi( line::@14/(byte) line::y#4 line::@18/(byte) line::y#13 )
[163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12
to:line::plot6
line::plot6: scope:[line] from line::@13
[164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3
[165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1
[166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2)
[167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7
[168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1)
to:line::@return
(byte()) sgn_u8((byte) sgn_u8::u)
sgn_u8: scope:[sgn_u8] from line::@20 line::@21
[169] (byte) sgn_u8::u#2 ← phi( line::@20/(byte) sgn_u8::u#0 line::@21/(byte) sgn_u8::u#1 )
[170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80
[171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1
to:sgn_u8::@return
sgn_u8::@1: scope:[sgn_u8] from sgn_u8
[172] phi()
to:sgn_u8::@return
sgn_u8::@return: scope:[sgn_u8] from sgn_u8 sgn_u8::@1
[173] (byte) sgn_u8::return#4 ← phi( sgn_u8::@1/(byte) -1 sgn_u8/(byte) 1 )
[174] return
to:@return
(byte()) abs_u8((byte) abs_u8::u)
abs_u8: scope:[abs_u8] from line line::@19
[175] (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@19/(byte) abs_u8::u#1 )
[176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80
[177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1
to:abs_u8::@return
abs_u8::@1: scope:[abs_u8] from abs_u8
[178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2
to:abs_u8::@return
abs_u8::@return: scope:[abs_u8] from abs_u8 abs_u8::@1
[179] (byte) abs_u8::return#4 ← phi( abs_u8::@1/(byte) abs_u8::return#2 abs_u8/(byte) abs_u8::u#2 )
[180] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from main main::@12 main::@13 main::@15
[181] (byte) memset::c#6 ← phi( main/(byte) ' ' main::@12/(byte) 0 main::@13/(const nomodify byte) BLACK main::@15/(byte) 0 )
[181] (void*) memset::str#5 ← phi( main/(void*)(const nomodify byte*) CONSOLE main::@12/(void*)(const nomodify byte*) SCREEN main::@13/(void*)(const nomodify byte*) COLS main::@15/(void*)(const nomodify byte*) LINE_BUFFER )
[181] (word) memset::num#4 ← phi( main/(word)(number) $28*(number) $19 main::@12/(word)(number) $28*(number) $19 main::@13/(word)(number) $28*(number) $19 main::@15/(word) $800 )
[182] if((word) memset::num#4<=(byte) 0) goto memset::@return
to:memset::@1
memset::@1: scope:[memset] from memset
[183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4
[184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5
to:memset::@2
memset::@2: scope:[memset] from memset::@1 memset::@3
[185] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
[186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
to:memset::@return
memset::@return: scope:[memset] from memset memset::@2
[187] return
to:@return
memset::@3: scope:[memset] from memset::@2
[188] *((byte*) memset::dst#2) ← (byte) memset::c#6
[189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) clock_start()
clock_start: scope:[clock_start] from main::@8
[190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0
[191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
[192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff
[193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
[194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START
to:clock_start::@return
clock_start::@return: scope:[clock_start] from clock_start
[195] return
to:@return
(byte()) textcolor((byte) textcolor::color)
textcolor: scope:[textcolor] from main::@14
[196] phi()
to:textcolor::@return
textcolor::@return: scope:[textcolor] from textcolor
[197] return
to:@return
(void()) setup_irq()
setup_irq: scope:[setup_irq] from main::@3
asm { sei }
[199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR
[200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f
[201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8
[202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER
[203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1()
asm { cli }
to:setup_irq::@return
setup_irq::@return: scope:[setup_irq] from setup_irq
[205] return
to:@return
interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2()
irq_bottom_2: scope:[irq_bottom_2] from
[206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK
[207] call kbhit
[208] (byte) kbhit::return#2 ← (byte) kbhit::return#0
to:irq_bottom_2::@4
irq_bottom_2::@4: scope:[irq_bottom_2] from irq_bottom_2
[209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2
[210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1
to:irq_bottom_2::toD0181
irq_bottom_2::toD0181: scope:[irq_bottom_2] from irq_bottom_2::@4
[211] phi()
to:irq_bottom_2::@3
irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2::toD0181
[212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0
to:irq_bottom_2::@2
irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@1 irq_bottom_2::@3
[213] (volatile byte) canvas_show_flag ← (byte) 0
[214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
[215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8
[216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1()
to:irq_bottom_2::@return
irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@2
[217] return
to:@return
irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@4
[218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory
to:irq_bottom_2::@2
(byte()) kbhit()
kbhit: scope:[kbhit] from irq_bottom_2
[219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0
[220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B)
to:kbhit::@return
kbhit::@return: scope:[kbhit] from kbhit
[221] return
to:@return
interrupt(KERNEL_MIN)(void()) irq_bottom_1()
irq_bottom_1: scope:[irq_bottom_1] from
[222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY
to:irq_bottom_1::toD0181
irq_bottom_1::toD0181: scope:[irq_bottom_1] from irq_bottom_1
[223] phi()
to:irq_bottom_1::@1
irq_bottom_1::@1: scope:[irq_bottom_1] from irq_bottom_1::toD0181
[224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0
[225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER
[226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM
[227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2()
to:irq_bottom_1::@return
irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1::@1
[228] return
to:@return