mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-07 06:30:04 +00:00
474 lines
25 KiB
INI
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
|