diff --git a/src/test/kc/examples/rotate/rotate.kc b/src/test/kc/examples/rotate/rotate.kc index 61edd438c..10c831cea 100644 --- a/src/test/kc/examples/rotate/rotate.kc +++ b/src/test/kc/examples/rotate/rotate.kc @@ -1,4 +1,3 @@ - // Angles: sf[0.8] : $80=PI, $100 = 2*PI // Values: sin(x) in [-1;1] sf[0.16] : -1.0: -$7fff 1.0:$7fff @@ -8,6 +7,7 @@ import "fastmultiply" byte* SCREEN = $0400; byte* SPRITE = $3000; +// Sine and Cosine tables - // signed fixed [-$7f,$7f] byte* COS = $2000; byte* SIN = COS+$40; // sin(x) = cos(x+PI/2) @@ -21,48 +21,47 @@ void init() { mulf_init(); *SPRITES_ENABLE = %11111111; byte* sprites_ptr = SCREEN+$3f8; - byte spr_x = 60; for(byte i: 0..7) { - byte i2 = i<<1; sprites_ptr[i] = (byte)(SPRITE/$40); - SPRITES_XPOS[i2] = spr_x; - SPRITES_YPOS[i2] = spr_x; SPRITES_COLS[i] = GREEN; - spr_x += 24; } - } +// Positions to rotate +signed byte[8] xs = { -70, -70, -70, 0, 0, 70, 70, 70}; +signed byte[8] ys = { -70, 0, 70, -70, 70, -70, 0, 70}; + void anim() { - signed word min = 1000; - signed word max = -1000; - byte angle = 0; - signed byte x = 89; // signed fixed[7.0] - signed byte y = 0; - while(true) { while(*RASTER!=$ff) {} - (*BORDERCOL)++; - - signed byte cos_a = (signed byte) COS[angle]; // signed fixed[0.7] - mulf8s_prepare(cos_a); - signed word xr = mulf8s_prepared(x)<<1; // signed fixed[8.8] - signed word yr = mulf8s_prepared(y)<<1; // signed fixed[8.8] - + (*BORDERCOL)++; + signed byte cos_a = (signed byte) COS[angle]; // signed fixed[0.7] signed byte sin_a = (signed byte) SIN[angle]; // signed fixed[0.7] - mulf8s_prepare(sin_a); - xr -= mulf8s_prepared(y)<<1; // signed fixed[8.8] - yr += mulf8s_prepared(x)<<1; // signed fixed[8.8] - - signed word xpos = ((signed byte) >xr) + 89 + 24 + 60; - SPRITES_XPOS[0] = xpos; - //signed word ypos = ((signed byte) >yr) + 89 + 51; - byte ypos = (>yr) + 89 + 51; - SPRITES_YPOS[0] = ypos; + byte sprite_msb = 0; + for(byte i: 0..7) { + signed byte x = xs[i]; // signed fixed[7.0] + signed byte y = ys[i]; // signed fixed[7.0] + mulf8s_prepare(cos_a); + signed word xr = mulf8s_prepared(x)<<1; // signed fixed[8.8] + signed word yr = mulf8s_prepared(y)<<1; // signed fixed[8.8] + mulf8s_prepare(sin_a); + xr -= mulf8s_prepared(y)<<1; // signed fixed[8.8] + yr += mulf8s_prepared(x)<<1; // signed fixed[8.8] + signed word xpos = ((signed byte) >xr) + 89 + 24 + 60; + sprite_msb = sprite_msb>>1; + if(>xpos!=0) { + sprite_msb |= $80; + } + //signed word ypos = ((signed byte) >yr) + 89 + 51; + byte ypos = (>yr) + 89 + 51; // Effectively the same as <(((signed byte) >yr) + 89 + 51;) + byte i2 = i<<1; + SPRITES_XPOS[i2] = (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) - [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) - [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) - [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) - [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) - [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) - [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] ) - [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] ) - [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) - [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) - [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) +anim::@20: scope:[anim] from anim::@17 + [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) + [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) + [24] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ) + [25] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ) + [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) + to:anim::@21 +anim::@21: scope:[anim] from anim::@20 + [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) + [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + to:anim::mulf8s_prepare2 +anim::mulf8s_prepare2: scope:[anim] from anim::@21 + [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) + [30] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + to:anim::@18 +anim::@18: scope:[anim] from anim::mulf8s_prepare2 + [31] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ) + [32] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) + [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) + to:anim::@23 +anim::@23: scope:[anim] from anim::@18 + [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) + [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) + [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) + [37] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ) + [38] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) + [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) + to:anim::@24 +anim::@24: scope:[anim] from anim::@23 + [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) + [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) + [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) + [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) + [44] (signed byte~) anim::$16 ← (signed byte)(byte~) anim::$13 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ) + [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) + [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) + [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) + [48] if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) + to:anim::@14 +anim::@14: scope:[anim] from anim::@24 + [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) + to:anim::@8 +anim::@8: scope:[anim] from anim::@14 anim::@24 + [50] (byte) anim::sprite_msb#5 ← phi( anim::@14/(byte) anim::sprite_msb#2 anim::@24/(byte) anim::sprite_msb#1 ) [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::yr#1 anim::xpos#0 ] ) + [51] (byte~) anim::$23 ← > (signed word) anim::yr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ) + [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) + [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) + [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) + [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ) + [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) + [57] (byte) anim::i#1 ← ++ (byte) anim::i#10 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) + [58] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) + to:anim::@15 +anim::@15: scope:[anim] from anim::@8 + [59] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) + [60] (byte) anim::angle#1 ← ++ (byte) anim::angle#10 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) + [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) to:anim::@1 -mulf8s_prepared: scope:[mulf8s_prepared] from anim::@13 anim::@14 anim::@16 anim::@19 - [50] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@13/(const signed byte) anim::x#0 anim::@14/(const signed byte) anim::y#0 anim::@16/(const signed byte) anim::y#0 anim::@19/(const signed byte) anim::x#0 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) - [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) - [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) +mulf8s_prepared: scope:[mulf8s_prepared] from anim::@17 anim::@18 anim::@20 anim::@23 + [62] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@17/(signed byte) mulf8s_prepared::b#0 anim::@18/(signed byte) mulf8s_prepared::b#2 anim::@20/(signed byte) mulf8s_prepared::b#1 anim::@23/(signed byte) mulf8s_prepared::b#3 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) + [63] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) to:mulf8s_prepared::@6 mulf8s_prepared::@6: scope:[mulf8s_prepared] from mulf8s_prepared - [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) - [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) to:mulf8s_prepared::@3 mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@6 - [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) - [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) - [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) + [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) + [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) + [69] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) to:mulf8s_prepared::@1 mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@6 - [58] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ) - [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) + [70] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ) + [71] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) to:mulf8s_prepared::@4 mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1 - [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) - [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) - [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) + [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) + [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) + [74] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) to:mulf8s_prepared::@2 mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4 - [63] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + [75] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) to:mulf8s_prepared::@return mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2 - [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + [76] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) to:@return mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared - [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) + [77] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } - [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) to:mulf8u_prepared::@return mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared - [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [80] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) to:@return mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2 - [69] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] ) - [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + [81] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] ) + [82] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } to:mulf8u_prepare::@return mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare - [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + [84] return [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) to:@return init: scope:[init] from main - [73] phi() [ ] ( main:3::init:6 [ ] ) - [74] call mulf_init [ ] ( main:3::init:6 [ ] ) + [85] phi() [ ] ( main:3::init:6 [ ] ) + [86] call mulf_init [ ] ( main:3::init:6 [ ] ) to:init::@3 init::@3: scope:[init] from init - [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) + [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) to:init::@1 init::@1: scope:[init] from init::@1 init::@3 - [76] (byte) init::spr_x#2 ← phi( init::@1/(byte) init::spr_x#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 60 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [76] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) - [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) - [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) + [88] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [91] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) + [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) to:init::@return init::@return: scope:[init] from init::@1 - [85] return [ ] ( main:3::init:6 [ ] ) + [93] return [ ] ( main:3::init:6 [ ] ) to:@return mulf_init: scope:[mulf_init] from init - [86] phi() [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [94] phi() [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 - [87] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) - [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) - [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) + [95] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) + [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) + [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) to:mulf_init::@5 mulf_init::@5: scope:[mulf_init] from mulf_init::@1 - [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) - [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) + [99] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) + [100] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) to:mulf_init::@2 mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 - [93] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [93] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) - [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) - [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) - [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) - [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [101] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [101] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) + [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) + [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [102] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) - [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) - [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) + [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) to:mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 - [108] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) - [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) - [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [116] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [111] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) - [112] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) + [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 - [113] return [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [121] return [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:@return mulf_init::@12: scope:[mulf_init] from mulf_init::@3 - [114] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [122] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) to:mulf_init::@4 diff --git a/src/test/ref/examples/rotate/rotate.log b/src/test/ref/examples/rotate/rotate.log index a85b3ba6e..ab1e5d779 100644 --- a/src/test/ref/examples/rotate/rotate.log +++ b/src/test/ref/examples/rotate/rotate.log @@ -13,6 +13,7 @@ CONTROL FLOW GRAPH SSA (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 to:@3 @3: scope:[] from @begin (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } @@ -139,8 +140,8 @@ mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared (word) mulf8u_prepared::return#1 ← (word) mulf8u_prepared::return#3 return to:@return -mulf8s_prepared: scope:[mulf8s_prepared] from anim::@13 anim::@14 anim::@16 anim::@19 - (signed byte) mulf8s_prepared::b#4 ← phi( anim::@13/(signed byte) mulf8s_prepared::b#0 anim::@14/(signed byte) mulf8s_prepared::b#2 anim::@16/(signed byte) mulf8s_prepared::b#1 anim::@19/(signed byte) mulf8s_prepared::b#3 ) +mulf8s_prepared: scope:[mulf8s_prepared] from anim::@17 anim::@18 anim::@20 anim::@23 + (signed byte) mulf8s_prepared::b#4 ← phi( anim::@17/(signed byte) mulf8s_prepared::b#0 anim::@18/(signed byte) mulf8s_prepared::b#2 anim::@20/(signed byte) mulf8s_prepared::b#1 anim::@23/(signed byte) mulf8s_prepared::b#3 ) (signed byte*) mulf8s_prepared::memA#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 253 (byte~) mulf8s_prepared::$0 ← ((byte)) (signed byte) mulf8s_prepared::b#4 (byte) mulf8u_prepared::b#0 ← (byte~) mulf8s_prepared::$0 @@ -196,18 +197,18 @@ mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2 (byte*) COS#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 (byte*~) $0 ← (byte*) COS#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 (byte*) SIN#0 ← (byte*~) $0 - to:@17 + to:@16 main: scope:[main] from @17 - (byte*) SIN#15 ← phi( @17/(byte*) SIN#17 ) - (byte*) COS#11 ← phi( @17/(byte*) COS#2 ) - (byte*) SPRITE#5 ← phi( @17/(byte*) SPRITE#2 ) + (byte*) SIN#10 ← phi( @17/(byte*) SIN#13 ) + (byte*) COS#12 ← phi( @17/(byte*) COS#2 ) + (byte*) SPRITE#6 ← phi( @17/(byte*) SPRITE#2 ) (byte*) SCREEN#3 ← phi( @17/(byte*) SCREEN#4 ) asm { sei } call init to:main::@1 main::@1: scope:[main] from main - (byte*) SIN#13 ← phi( main/(byte*) SIN#15 ) - (byte*) COS#9 ← phi( main/(byte*) COS#11 ) + (byte*) SIN#8 ← phi( main/(byte*) SIN#10 ) + (byte*) COS#10 ← phi( main/(byte*) COS#12 ) call anim to:main::@2 main::@2: scope:[main] from main::@1 @@ -216,234 +217,318 @@ main::@return: scope:[main] from main::@2 return to:@return init: scope:[init] from main - (byte*) SPRITE#4 ← phi( main/(byte*) SPRITE#5 ) + (byte*) SPRITE#5 ← phi( main/(byte*) SPRITE#6 ) (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#3 ) call mulf_init to:init::@3 init::@3: scope:[init] from init - (byte*) SPRITE#3 ← phi( init/(byte*) SPRITE#4 ) + (byte*) SPRITE#3 ← phi( init/(byte*) SPRITE#5 ) (byte*) SCREEN#1 ← phi( init/(byte*) SCREEN#2 ) *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 (byte*~) init::$1 ← (byte*) SCREEN#1 + (word/signed word/dword/signed dword) 1016 (byte*) init::sprites_ptr#0 ← (byte*~) init::$1 - (byte) init::spr_x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 (byte) init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init::@1 init::@1: scope:[init] from init::@1 init::@3 - (byte) init::spr_x#2 ← phi( init::@1/(byte) init::spr_x#1 init::@3/(byte) init::spr_x#0 ) + (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte) init::i#0 ) (byte*) init::sprites_ptr#1 ← phi( init::@1/(byte*) init::sprites_ptr#1 init::@3/(byte*) init::sprites_ptr#0 ) (byte*) SPRITE#1 ← phi( init::@1/(byte*) SPRITE#1 init::@3/(byte*) SPRITE#3 ) - (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte) init::i#0 ) - (byte~) init::$2 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) init::i2#0 ← (byte~) init::$2 - (byte*~) init::$3 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte~) init::$4 ← ((byte)) (byte*~) init::$3 - *((byte*) init::sprites_ptr#1 + (byte) init::i#2) ← (byte~) init::$4 - *((byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 - *((byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 + (byte*~) init::$2 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte~) init::$3 ← ((byte)) (byte*~) init::$2 + *((byte*) init::sprites_ptr#1 + (byte) init::i#2) ← (byte~) init::$3 *((byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (byte) GREEN#0 - (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,7) - (bool~) init::$5 ← (byte) init::i#1 != rangelast(0,7) - if((bool~) init::$5) goto init::@1 + (bool~) init::$4 ← (byte) init::i#1 != rangelast(0,7) + if((bool~) init::$4) goto init::@1 to:init::@return init::@return: scope:[init] from init::@1 return to:@return +@16: scope:[] from @14 + (byte*) SIN#16 ← phi( @14/(byte*) SIN#0 ) + (byte*) SCREEN#5 ← phi( @14/(byte*) SCREEN#0 ) + (byte*) SPRITE#4 ← phi( @14/(byte*) SPRITE#0 ) + (byte*) COS#4 ← phi( @14/(byte*) COS#0 ) + (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70 } + (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte/signed word/signed dword~) $6 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 + (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) 70, (signed byte/signed word/signed dword~) $6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70 } + to:@17 anim: scope:[anim] from main::@1 - (byte*) SIN#11 ← phi( main::@1/(byte*) SIN#13 ) - (byte*) COS#7 ← phi( main::@1/(byte*) COS#9 ) + (byte*) SIN#6 ← phi( main::@1/(byte*) SIN#8 ) + (byte*) COS#8 ← phi( main::@1/(byte*) COS#10 ) (byte) anim::angle#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) anim::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 89 - (signed byte) anim::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:anim::@1 -anim::@1: scope:[anim] from anim anim::@20 - (byte*) SIN#10 ← phi( anim/(byte*) SIN#11 anim::@20/(byte*) SIN#12 ) - (signed byte) anim::y#13 ← phi( anim/(signed byte) anim::y#0 anim::@20/(signed byte) anim::y#14 ) - (signed byte) anim::x#14 ← phi( anim/(signed byte) anim::x#0 anim::@20/(signed byte) anim::x#15 ) - (byte) anim::angle#12 ← phi( anim/(byte) anim::angle#0 anim::@20/(byte) anim::angle#1 ) - (byte*) COS#6 ← phi( anim/(byte*) COS#7 anim::@20/(byte*) COS#8 ) +anim::@1: scope:[anim] from anim anim::@15 + (byte*) SIN#5 ← phi( anim/(byte*) SIN#6 anim::@15/(byte*) SIN#7 ) + (byte) anim::angle#10 ← phi( anim/(byte) anim::angle#0 anim::@15/(byte) anim::angle#1 ) + (byte*) COS#7 ← phi( anim/(byte*) COS#8 anim::@15/(byte*) COS#9 ) if(true) goto anim::@2 to:anim::@return anim::@2: scope:[anim] from anim::@1 - (byte*) SIN#8 ← phi( anim::@1/(byte*) SIN#10 ) - (signed byte) anim::y#11 ← phi( anim::@1/(signed byte) anim::y#13 ) - (signed byte) anim::x#11 ← phi( anim::@1/(signed byte) anim::x#14 ) - (byte) anim::angle#8 ← phi( anim::@1/(byte) anim::angle#12 ) - (byte*) COS#4 ← phi( anim::@1/(byte*) COS#6 ) + (byte*) SIN#3 ← phi( anim::@1/(byte*) SIN#5 ) + (byte) anim::angle#6 ← phi( anim::@1/(byte) anim::angle#10 ) + (byte*) COS#5 ← phi( anim::@1/(byte*) COS#7 ) to:anim::@4 anim::@4: scope:[anim] from anim::@2 anim::@5 - (byte*) SIN#7 ← phi( anim::@2/(byte*) SIN#8 anim::@5/(byte*) SIN#9 ) - (signed byte) anim::y#10 ← phi( anim::@2/(signed byte) anim::y#11 anim::@5/(signed byte) anim::y#12 ) - (signed byte) anim::x#9 ← phi( anim::@2/(signed byte) anim::x#11 anim::@5/(signed byte) anim::x#12 ) - (byte) anim::angle#5 ← phi( anim::@2/(byte) anim::angle#8 anim::@5/(byte) anim::angle#9 ) - (byte*) COS#3 ← phi( anim::@2/(byte*) COS#4 anim::@5/(byte*) COS#5 ) - (bool~) anim::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 - if((bool~) anim::$1) goto anim::@5 + (byte*) SIN#2 ← phi( anim::@2/(byte*) SIN#3 anim::@5/(byte*) SIN#4 ) + (byte) anim::angle#4 ← phi( anim::@2/(byte) anim::angle#6 anim::@5/(byte) anim::angle#7 ) + (byte*) COS#3 ← phi( anim::@2/(byte*) COS#5 anim::@5/(byte*) COS#6 ) + (bool~) anim::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + if((bool~) anim::$0) goto anim::@5 to:anim::@6 anim::@5: scope:[anim] from anim::@4 - (byte*) SIN#9 ← phi( anim::@4/(byte*) SIN#7 ) - (signed byte) anim::y#12 ← phi( anim::@4/(signed byte) anim::y#10 ) - (signed byte) anim::x#12 ← phi( anim::@4/(signed byte) anim::x#9 ) - (byte) anim::angle#9 ← phi( anim::@4/(byte) anim::angle#5 ) - (byte*) COS#5 ← phi( anim::@4/(byte*) COS#3 ) + (byte*) SIN#4 ← phi( anim::@4/(byte*) SIN#2 ) + (byte) anim::angle#7 ← phi( anim::@4/(byte) anim::angle#4 ) + (byte*) COS#6 ← phi( anim::@4/(byte*) COS#3 ) to:anim::@4 anim::@6: scope:[anim] from anim::@4 - (byte*) SIN#6 ← phi( anim::@4/(byte*) SIN#7 ) - (signed byte) anim::y#9 ← phi( anim::@4/(signed byte) anim::y#10 ) - (signed byte) anim::x#7 ← phi( anim::@4/(signed byte) anim::x#9 ) - (byte) anim::angle#2 ← phi( anim::@4/(byte) anim::angle#5 ) + (byte*) SIN#1 ← phi( anim::@4/(byte*) SIN#2 ) + (byte) anim::angle#2 ← phi( anim::@4/(byte) anim::angle#4 ) (byte*) COS#1 ← phi( anim::@4/(byte*) COS#3 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) - (signed byte~) anim::$2 ← ((signed byte)) *((byte*) COS#1 + (byte) anim::angle#2) - (signed byte) anim::cos_a#0 ← (signed byte~) anim::$2 - (signed byte) anim::mulf8s_prepare1_a#0 ← (signed byte) anim::cos_a#0 + (signed byte~) anim::$1 ← ((signed byte)) *((byte*) COS#1 + (byte) anim::angle#2) + (signed byte) anim::cos_a#0 ← (signed byte~) anim::$1 + (signed byte~) anim::$2 ← ((signed byte)) *((byte*) SIN#1 + (byte) anim::angle#2) + (signed byte) anim::sin_a#0 ← (signed byte~) anim::$2 + (byte) anim::sprite_msb#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) anim::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:anim::@7 +anim::@7: scope:[anim] from anim::@6 anim::@8 + (byte*) SIN#24 ← phi( anim::@6/(byte*) SIN#1 anim::@8/(byte*) SIN#9 ) + (byte*) COS#24 ← phi( anim::@6/(byte*) COS#1 anim::@8/(byte*) COS#11 ) + (byte) anim::angle#20 ← phi( anim::@6/(byte) anim::angle#2 anim::@8/(byte) anim::angle#5 ) + (byte) anim::sprite_msb#16 ← phi( anim::@6/(byte) anim::sprite_msb#0 anim::@8/(byte) anim::sprite_msb#7 ) + (signed byte) anim::sin_a#6 ← phi( anim::@6/(signed byte) anim::sin_a#0 anim::@8/(signed byte) anim::sin_a#7 ) + (signed byte) anim::cos_a#1 ← phi( anim::@6/(signed byte) anim::cos_a#0 anim::@8/(signed byte) anim::cos_a#2 ) + (byte) anim::i#2 ← phi( anim::@6/(byte) anim::i#0 anim::@8/(byte) anim::i#1 ) + (signed byte) anim::x#0 ← *((signed byte[8]) xs#0 + (byte) anim::i#2) + (signed byte) anim::y#0 ← *((signed byte[8]) ys#0 + (byte) anim::i#2) + (signed byte) anim::mulf8s_prepare1_a#0 ← (signed byte) anim::cos_a#1 to:anim::mulf8s_prepare1 -anim::mulf8s_prepare1: scope:[anim] from anim::@6 - (byte*) COS#19 ← phi( anim::@6/(byte*) COS#1 ) - (byte) anim::angle#15 ← phi( anim::@6/(byte) anim::angle#2 ) - (byte*) SIN#5 ← phi( anim::@6/(byte*) SIN#6 ) - (signed byte) anim::y#7 ← phi( anim::@6/(signed byte) anim::y#9 ) - (signed byte) anim::x#5 ← phi( anim::@6/(signed byte) anim::x#7 ) - (signed byte) anim::mulf8s_prepare1_a#1 ← phi( anim::@6/(signed byte) anim::mulf8s_prepare1_a#0 ) +anim::mulf8s_prepare1: scope:[anim] from anim::@7 + (byte*) SIN#23 ← phi( anim::@7/(byte*) SIN#24 ) + (byte*) COS#23 ← phi( anim::@7/(byte*) COS#24 ) + (byte) anim::angle#19 ← phi( anim::@7/(byte) anim::angle#20 ) + (signed byte) anim::cos_a#13 ← phi( anim::@7/(signed byte) anim::cos_a#1 ) + (byte) anim::i#14 ← phi( anim::@7/(byte) anim::i#2 ) + (byte) anim::sprite_msb#15 ← phi( anim::@7/(byte) anim::sprite_msb#16 ) + (signed byte) anim::sin_a#5 ← phi( anim::@7/(signed byte) anim::sin_a#6 ) + (signed byte) anim::y#7 ← phi( anim::@7/(signed byte) anim::y#0 ) + (signed byte) anim::x#5 ← phi( anim::@7/(signed byte) anim::x#0 ) + (signed byte) anim::mulf8s_prepare1_a#1 ← phi( anim::@7/(signed byte) anim::mulf8s_prepare1_a#0 ) (byte) anim::mulf8s_prepare1_$0#0 ← ((byte)) (signed byte) anim::mulf8s_prepare1_a#1 (byte) mulf8u_prepare::a#0 ← (byte) anim::mulf8s_prepare1_$0#0 call mulf8u_prepare - to:anim::@15 -anim::@15: scope:[anim] from anim::mulf8s_prepare1 - (byte*) COS#18 ← phi( anim::mulf8s_prepare1/(byte*) COS#19 ) - (byte) anim::angle#13 ← phi( anim::mulf8s_prepare1/(byte) anim::angle#15 ) - (byte*) SIN#4 ← phi( anim::mulf8s_prepare1/(byte*) SIN#5 ) + to:anim::@19 +anim::@19: scope:[anim] from anim::mulf8s_prepare1 + (byte*) SIN#22 ← phi( anim::mulf8s_prepare1/(byte*) SIN#23 ) + (byte*) COS#22 ← phi( anim::mulf8s_prepare1/(byte*) COS#23 ) + (byte) anim::angle#18 ← phi( anim::mulf8s_prepare1/(byte) anim::angle#19 ) + (signed byte) anim::cos_a#12 ← phi( anim::mulf8s_prepare1/(signed byte) anim::cos_a#13 ) + (byte) anim::i#13 ← phi( anim::mulf8s_prepare1/(byte) anim::i#14 ) + (byte) anim::sprite_msb#14 ← phi( anim::mulf8s_prepare1/(byte) anim::sprite_msb#15 ) + (signed byte) anim::sin_a#4 ← phi( anim::mulf8s_prepare1/(signed byte) anim::sin_a#5 ) (signed byte) anim::y#5 ← phi( anim::mulf8s_prepare1/(signed byte) anim::y#7 ) (signed byte) anim::x#3 ← phi( anim::mulf8s_prepare1/(signed byte) anim::x#5 ) - to:anim::@13 -anim::@13: scope:[anim] from anim::@15 - (byte*) COS#17 ← phi( anim::@15/(byte*) COS#18 ) - (byte) anim::angle#10 ← phi( anim::@15/(byte) anim::angle#13 ) - (byte*) SIN#3 ← phi( anim::@15/(byte*) SIN#4 ) - (signed byte) anim::y#3 ← phi( anim::@15/(signed byte) anim::y#5 ) - (signed byte) anim::x#1 ← phi( anim::@15/(signed byte) anim::x#3 ) + to:anim::@17 +anim::@17: scope:[anim] from anim::@19 + (byte*) SIN#21 ← phi( anim::@19/(byte*) SIN#22 ) + (byte*) COS#21 ← phi( anim::@19/(byte*) COS#22 ) + (byte) anim::angle#17 ← phi( anim::@19/(byte) anim::angle#18 ) + (signed byte) anim::cos_a#11 ← phi( anim::@19/(signed byte) anim::cos_a#12 ) + (byte) anim::i#12 ← phi( anim::@19/(byte) anim::i#13 ) + (byte) anim::sprite_msb#13 ← phi( anim::@19/(byte) anim::sprite_msb#14 ) + (signed byte) anim::sin_a#3 ← phi( anim::@19/(signed byte) anim::sin_a#4 ) + (signed byte) anim::y#3 ← phi( anim::@19/(signed byte) anim::y#5 ) + (signed byte) anim::x#1 ← phi( anim::@19/(signed byte) anim::x#3 ) (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#1 call mulf8s_prepared (signed word) mulf8s_prepared::return#2 ← (signed word) mulf8s_prepared::return#1 - to:anim::@16 -anim::@16: scope:[anim] from anim::@13 - (byte*) COS#16 ← phi( anim::@13/(byte*) COS#17 ) - (signed byte) anim::x#13 ← phi( anim::@13/(signed byte) anim::x#1 ) - (byte) anim::angle#6 ← phi( anim::@13/(byte) anim::angle#10 ) - (byte*) SIN#2 ← phi( anim::@13/(byte*) SIN#3 ) - (signed byte) anim::y#1 ← phi( anim::@13/(signed byte) anim::y#3 ) - (signed word) mulf8s_prepared::return#7 ← phi( anim::@13/(signed word) mulf8s_prepared::return#2 ) + to:anim::@20 +anim::@20: scope:[anim] from anim::@17 + (byte*) SIN#20 ← phi( anim::@17/(byte*) SIN#21 ) + (byte*) COS#20 ← phi( anim::@17/(byte*) COS#21 ) + (byte) anim::angle#16 ← phi( anim::@17/(byte) anim::angle#17 ) + (signed byte) anim::cos_a#10 ← phi( anim::@17/(signed byte) anim::cos_a#11 ) + (byte) anim::i#11 ← phi( anim::@17/(byte) anim::i#12 ) + (byte) anim::sprite_msb#12 ← phi( anim::@17/(byte) anim::sprite_msb#13 ) + (signed byte) anim::x#9 ← phi( anim::@17/(signed byte) anim::x#1 ) + (signed byte) anim::sin_a#2 ← phi( anim::@17/(signed byte) anim::sin_a#3 ) + (signed byte) anim::y#1 ← phi( anim::@17/(signed byte) anim::y#3 ) + (signed word) mulf8s_prepared::return#7 ← phi( anim::@17/(signed word) mulf8s_prepared::return#2 ) (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#7 (signed word~) anim::$5 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 (signed word) anim::xr#0 ← (signed word~) anim::$5 (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#1 call mulf8s_prepared (signed word) mulf8s_prepared::return#3 ← (signed word) mulf8s_prepared::return#1 - to:anim::@17 -anim::@17: scope:[anim] from anim::@16 - (byte*) COS#15 ← phi( anim::@16/(byte*) COS#16 ) - (signed byte) anim::x#10 ← phi( anim::@16/(signed byte) anim::x#13 ) - (signed word) anim::xr#7 ← phi( anim::@16/(signed word) anim::xr#0 ) - (signed byte) anim::y#8 ← phi( anim::@16/(signed byte) anim::y#1 ) - (byte) anim::angle#3 ← phi( anim::@16/(byte) anim::angle#6 ) - (byte*) SIN#1 ← phi( anim::@16/(byte*) SIN#2 ) - (signed word) mulf8s_prepared::return#8 ← phi( anim::@16/(signed word) mulf8s_prepared::return#3 ) + to:anim::@21 +anim::@21: scope:[anim] from anim::@20 + (byte*) SIN#19 ← phi( anim::@20/(byte*) SIN#20 ) + (byte*) COS#19 ← phi( anim::@20/(byte*) COS#20 ) + (byte) anim::angle#15 ← phi( anim::@20/(byte) anim::angle#16 ) + (signed byte) anim::cos_a#9 ← phi( anim::@20/(signed byte) anim::cos_a#10 ) + (byte) anim::i#10 ← phi( anim::@20/(byte) anim::i#11 ) + (byte) anim::sprite_msb#11 ← phi( anim::@20/(byte) anim::sprite_msb#12 ) + (signed byte) anim::x#8 ← phi( anim::@20/(signed byte) anim::x#9 ) + (signed word) anim::xr#7 ← phi( anim::@20/(signed word) anim::xr#0 ) + (signed byte) anim::y#8 ← phi( anim::@20/(signed byte) anim::y#1 ) + (signed byte) anim::sin_a#1 ← phi( anim::@20/(signed byte) anim::sin_a#2 ) + (signed word) mulf8s_prepared::return#8 ← phi( anim::@20/(signed word) mulf8s_prepared::return#3 ) (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#8 (signed word~) anim::$7 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 (signed word) anim::yr#0 ← (signed word~) anim::$7 - (signed byte~) anim::$8 ← ((signed byte)) *((byte*) SIN#1 + (byte) anim::angle#3) - (signed byte) anim::sin_a#0 ← (signed byte~) anim::$8 - (signed byte) anim::mulf8s_prepare2_a#0 ← (signed byte) anim::sin_a#0 + (signed byte) anim::mulf8s_prepare2_a#0 ← (signed byte) anim::sin_a#1 to:anim::mulf8s_prepare2 -anim::mulf8s_prepare2: scope:[anim] from anim::@17 - (byte*) SIN#19 ← phi( anim::@17/(byte*) SIN#1 ) - (byte*) COS#14 ← phi( anim::@17/(byte*) COS#15 ) - (byte) anim::angle#16 ← phi( anim::@17/(byte) anim::angle#3 ) - (signed word) anim::yr#6 ← phi( anim::@17/(signed word) anim::yr#0 ) - (signed byte) anim::x#8 ← phi( anim::@17/(signed byte) anim::x#10 ) - (signed word) anim::xr#6 ← phi( anim::@17/(signed word) anim::xr#7 ) - (signed byte) anim::y#6 ← phi( anim::@17/(signed byte) anim::y#8 ) - (signed byte) anim::mulf8s_prepare2_a#1 ← phi( anim::@17/(signed byte) anim::mulf8s_prepare2_a#0 ) +anim::mulf8s_prepare2: scope:[anim] from anim::@21 + (signed byte) anim::sin_a#13 ← phi( anim::@21/(signed byte) anim::sin_a#1 ) + (byte*) SIN#18 ← phi( anim::@21/(byte*) SIN#19 ) + (byte*) COS#18 ← phi( anim::@21/(byte*) COS#19 ) + (byte) anim::angle#14 ← phi( anim::@21/(byte) anim::angle#15 ) + (signed byte) anim::cos_a#8 ← phi( anim::@21/(signed byte) anim::cos_a#9 ) + (byte) anim::i#9 ← phi( anim::@21/(byte) anim::i#10 ) + (byte) anim::sprite_msb#10 ← phi( anim::@21/(byte) anim::sprite_msb#11 ) + (signed word) anim::yr#8 ← phi( anim::@21/(signed word) anim::yr#0 ) + (signed byte) anim::x#7 ← phi( anim::@21/(signed byte) anim::x#8 ) + (signed word) anim::xr#6 ← phi( anim::@21/(signed word) anim::xr#7 ) + (signed byte) anim::y#6 ← phi( anim::@21/(signed byte) anim::y#8 ) + (signed byte) anim::mulf8s_prepare2_a#1 ← phi( anim::@21/(signed byte) anim::mulf8s_prepare2_a#0 ) (byte) anim::mulf8s_prepare2_$0#0 ← ((byte)) (signed byte) anim::mulf8s_prepare2_a#1 (byte) mulf8u_prepare::a#1 ← (byte) anim::mulf8s_prepare2_$0#0 call mulf8u_prepare - to:anim::@18 -anim::@18: scope:[anim] from anim::mulf8s_prepare2 - (byte*) SIN#18 ← phi( anim::mulf8s_prepare2/(byte*) SIN#19 ) - (byte*) COS#13 ← phi( anim::mulf8s_prepare2/(byte*) COS#14 ) - (byte) anim::angle#14 ← phi( anim::mulf8s_prepare2/(byte) anim::angle#16 ) - (signed word) anim::yr#5 ← phi( anim::mulf8s_prepare2/(signed word) anim::yr#6 ) - (signed byte) anim::x#6 ← phi( anim::mulf8s_prepare2/(signed byte) anim::x#8 ) + to:anim::@22 +anim::@22: scope:[anim] from anim::mulf8s_prepare2 + (signed byte) anim::sin_a#12 ← phi( anim::mulf8s_prepare2/(signed byte) anim::sin_a#13 ) + (byte*) SIN#17 ← phi( anim::mulf8s_prepare2/(byte*) SIN#18 ) + (byte*) COS#17 ← phi( anim::mulf8s_prepare2/(byte*) COS#18 ) + (byte) anim::angle#13 ← phi( anim::mulf8s_prepare2/(byte) anim::angle#14 ) + (signed byte) anim::cos_a#7 ← phi( anim::mulf8s_prepare2/(signed byte) anim::cos_a#8 ) + (byte) anim::i#8 ← phi( anim::mulf8s_prepare2/(byte) anim::i#9 ) + (byte) anim::sprite_msb#9 ← phi( anim::mulf8s_prepare2/(byte) anim::sprite_msb#10 ) + (signed word) anim::yr#7 ← phi( anim::mulf8s_prepare2/(signed word) anim::yr#8 ) + (signed byte) anim::x#6 ← phi( anim::mulf8s_prepare2/(signed byte) anim::x#7 ) (signed word) anim::xr#5 ← phi( anim::mulf8s_prepare2/(signed word) anim::xr#6 ) (signed byte) anim::y#4 ← phi( anim::mulf8s_prepare2/(signed byte) anim::y#6 ) - to:anim::@14 -anim::@14: scope:[anim] from anim::@18 - (byte*) SIN#16 ← phi( anim::@18/(byte*) SIN#18 ) - (byte*) COS#12 ← phi( anim::@18/(byte*) COS#13 ) - (byte) anim::angle#11 ← phi( anim::@18/(byte) anim::angle#14 ) - (signed word) anim::yr#4 ← phi( anim::@18/(signed word) anim::yr#5 ) - (signed byte) anim::x#4 ← phi( anim::@18/(signed byte) anim::x#6 ) - (signed word) anim::xr#4 ← phi( anim::@18/(signed word) anim::xr#5 ) - (signed byte) anim::y#2 ← phi( anim::@18/(signed byte) anim::y#4 ) + to:anim::@18 +anim::@18: scope:[anim] from anim::@22 + (signed byte) anim::sin_a#11 ← phi( anim::@22/(signed byte) anim::sin_a#12 ) + (byte*) SIN#15 ← phi( anim::@22/(byte*) SIN#17 ) + (byte*) COS#16 ← phi( anim::@22/(byte*) COS#17 ) + (byte) anim::angle#12 ← phi( anim::@22/(byte) anim::angle#13 ) + (signed byte) anim::cos_a#6 ← phi( anim::@22/(signed byte) anim::cos_a#7 ) + (byte) anim::i#7 ← phi( anim::@22/(byte) anim::i#8 ) + (byte) anim::sprite_msb#8 ← phi( anim::@22/(byte) anim::sprite_msb#9 ) + (signed word) anim::yr#6 ← phi( anim::@22/(signed word) anim::yr#7 ) + (signed byte) anim::x#4 ← phi( anim::@22/(signed byte) anim::x#6 ) + (signed word) anim::xr#4 ← phi( anim::@22/(signed word) anim::xr#5 ) + (signed byte) anim::y#2 ← phi( anim::@22/(signed byte) anim::y#4 ) (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#2 call mulf8s_prepared (signed word) mulf8s_prepared::return#4 ← (signed word) mulf8s_prepared::return#1 - to:anim::@19 -anim::@19: scope:[anim] from anim::@14 - (byte*) SIN#14 ← phi( anim::@14/(byte*) SIN#16 ) - (signed byte) anim::y#15 ← phi( anim::@14/(signed byte) anim::y#2 ) - (byte*) COS#10 ← phi( anim::@14/(byte*) COS#12 ) - (byte) anim::angle#7 ← phi( anim::@14/(byte) anim::angle#11 ) - (signed word) anim::yr#3 ← phi( anim::@14/(signed word) anim::yr#4 ) - (signed byte) anim::x#2 ← phi( anim::@14/(signed byte) anim::x#4 ) - (signed word) anim::xr#2 ← phi( anim::@14/(signed word) anim::xr#4 ) - (signed word) mulf8s_prepared::return#9 ← phi( anim::@14/(signed word) mulf8s_prepared::return#4 ) - (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#9 - (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (signed word) anim::xr#1 ← (signed word) anim::xr#2 - (signed word~) anim::$11 + to:anim::@23 +anim::@23: scope:[anim] from anim::@18 + (signed byte) anim::sin_a#10 ← phi( anim::@18/(signed byte) anim::sin_a#11 ) + (byte*) SIN#14 ← phi( anim::@18/(byte*) SIN#15 ) + (byte*) COS#15 ← phi( anim::@18/(byte*) COS#16 ) + (byte) anim::angle#11 ← phi( anim::@18/(byte) anim::angle#12 ) + (signed byte) anim::cos_a#5 ← phi( anim::@18/(signed byte) anim::cos_a#6 ) + (byte) anim::i#6 ← phi( anim::@18/(byte) anim::i#7 ) + (byte) anim::sprite_msb#6 ← phi( anim::@18/(byte) anim::sprite_msb#8 ) + (signed word) anim::yr#4 ← phi( anim::@18/(signed word) anim::yr#6 ) + (signed byte) anim::x#2 ← phi( anim::@18/(signed byte) anim::x#4 ) + (signed word) anim::xr#2 ← phi( anim::@18/(signed word) anim::xr#4 ) + (signed word) mulf8s_prepared::return#9 ← phi( anim::@18/(signed word) mulf8s_prepared::return#4 ) + (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#9 + (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (signed word) anim::xr#1 ← (signed word) anim::xr#2 - (signed word~) anim::$10 (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#2 call mulf8s_prepared (signed word) mulf8s_prepared::return#5 ← (signed word) mulf8s_prepared::return#1 - to:anim::@20 -anim::@20: scope:[anim] from anim::@19 - (byte*) SIN#12 ← phi( anim::@19/(byte*) SIN#14 ) - (signed byte) anim::y#14 ← phi( anim::@19/(signed byte) anim::y#15 ) - (signed byte) anim::x#15 ← phi( anim::@19/(signed byte) anim::x#2 ) - (byte*) COS#8 ← phi( anim::@19/(byte*) COS#10 ) - (byte) anim::angle#4 ← phi( anim::@19/(byte) anim::angle#7 ) - (signed word) anim::xr#3 ← phi( anim::@19/(signed word) anim::xr#1 ) - (signed word) anim::yr#2 ← phi( anim::@19/(signed word) anim::yr#3 ) - (signed word) mulf8s_prepared::return#10 ← phi( anim::@19/(signed word) mulf8s_prepared::return#5 ) - (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 - (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (signed word) anim::yr#1 ← (signed word) anim::yr#2 + (signed word~) anim::$13 - (byte~) anim::$14 ← > (signed word) anim::xr#3 - (signed byte~) anim::$15 ← ((signed byte)) (byte~) anim::$14 - (signed word/signed byte/signed dword~) anim::$16 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 89 - (signed word/signed dword/signed byte~) anim::$17 ← (signed word/signed byte/signed dword~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 24 - (signed word/signed dword/signed byte~) anim::$18 ← (signed word/signed dword/signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 60 - (signed word) anim::xpos#0 ← (signed word/signed dword/signed byte~) anim::$18 - (byte~) anim::$19 ← < (signed word) anim::xpos#0 - *((byte*) SPRITES_XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) anim::$19 - (byte~) anim::$20 ← > (signed word) anim::xpos#0 - *((byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 - (byte~) anim::$21 ← > (signed word) anim::yr#1 - (byte/signed word/word/dword/signed dword~) anim::$22 ← (byte~) anim::$21 + (byte/signed byte/word/signed word/dword/signed dword) 89 - (byte/signed word/word/dword/signed dword~) anim::$23 ← (byte/signed word/word/dword/signed dword~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) anim::ypos#0 ← (byte/signed word/word/dword/signed dword~) anim::$23 - *((byte*) SPRITES_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) anim::ypos#0 - (byte) anim::angle#1 ← ++ (byte) anim::angle#4 - *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) + to:anim::@24 +anim::@24: scope:[anim] from anim::@23 + (signed byte) anim::sin_a#9 ← phi( anim::@23/(signed byte) anim::sin_a#10 ) + (byte*) SIN#12 ← phi( anim::@23/(byte*) SIN#14 ) + (byte*) COS#14 ← phi( anim::@23/(byte*) COS#15 ) + (byte) anim::angle#9 ← phi( anim::@23/(byte) anim::angle#11 ) + (signed byte) anim::cos_a#4 ← phi( anim::@23/(signed byte) anim::cos_a#5 ) + (byte) anim::i#5 ← phi( anim::@23/(byte) anim::i#6 ) + (byte) anim::sprite_msb#3 ← phi( anim::@23/(byte) anim::sprite_msb#6 ) + (signed word) anim::xr#3 ← phi( anim::@23/(signed word) anim::xr#1 ) + (signed word) anim::yr#2 ← phi( anim::@23/(signed word) anim::yr#4 ) + (signed word) mulf8s_prepared::return#10 ← phi( anim::@23/(signed word) mulf8s_prepared::return#5 ) + (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 + (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (signed word) anim::yr#1 ← (signed word) anim::yr#2 + (signed word~) anim::$12 + (byte~) anim::$13 ← > (signed word) anim::xr#3 + (signed byte~) anim::$14 ← ((signed byte)) (byte~) anim::$13 + (signed word/signed byte/signed dword~) anim::$15 ← (signed byte~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword) 89 + (signed word/signed dword/signed byte~) anim::$16 ← (signed word/signed byte/signed dword~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (signed word/signed dword/signed byte~) anim::$17 ← (signed word/signed dword/signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 60 + (signed word) anim::xpos#0 ← (signed word/signed dword/signed byte~) anim::$17 + (byte~) anim::$18 ← (byte) anim::sprite_msb#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) anim::sprite_msb#1 ← (byte~) anim::$18 + (byte~) anim::$19 ← > (signed word) anim::xpos#0 + (bool~) anim::$20 ← (byte~) anim::$19 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) anim::$21 ← ! (bool~) anim::$20 + if((bool~) anim::$21) goto anim::@8 + to:anim::@14 +anim::@8: scope:[anim] from anim::@14 anim::@24 + (signed byte) anim::sin_a#7 ← phi( anim::@14/(signed byte) anim::sin_a#8 anim::@24/(signed byte) anim::sin_a#9 ) + (byte*) SIN#9 ← phi( anim::@14/(byte*) SIN#11 anim::@24/(byte*) SIN#12 ) + (byte*) COS#11 ← phi( anim::@14/(byte*) COS#13 anim::@24/(byte*) COS#14 ) + (byte) anim::angle#5 ← phi( anim::@14/(byte) anim::angle#8 anim::@24/(byte) anim::angle#9 ) + (byte) anim::sprite_msb#7 ← phi( anim::@14/(byte) anim::sprite_msb#2 anim::@24/(byte) anim::sprite_msb#1 ) + (signed byte) anim::cos_a#2 ← phi( anim::@14/(signed byte) anim::cos_a#3 anim::@24/(signed byte) anim::cos_a#4 ) + (signed word) anim::xpos#1 ← phi( anim::@14/(signed word) anim::xpos#2 anim::@24/(signed word) anim::xpos#0 ) + (byte) anim::i#3 ← phi( anim::@14/(byte) anim::i#4 anim::@24/(byte) anim::i#5 ) + (signed word) anim::yr#3 ← phi( anim::@14/(signed word) anim::yr#5 anim::@24/(signed word) anim::yr#1 ) + (byte~) anim::$22 ← > (signed word) anim::yr#3 + (byte/signed word/word/dword/signed dword~) anim::$23 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89 + (byte/signed word/word/dword/signed dword~) anim::$24 ← (byte/signed word/word/dword/signed dword~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 51 + (byte) anim::ypos#0 ← (byte/signed word/word/dword/signed dword~) anim::$24 + (byte~) anim::$25 ← (byte) anim::i#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) anim::i2#0 ← (byte~) anim::$25 + (byte~) anim::$26 ← < (signed word) anim::xpos#1 + *((byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 + *((byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 + (byte) anim::i#1 ← (byte) anim::i#3 + rangenext(0,7) + (bool~) anim::$27 ← (byte) anim::i#1 != rangelast(0,7) + if((bool~) anim::$27) goto anim::@7 + to:anim::@15 +anim::@14: scope:[anim] from anim::@24 + (signed byte) anim::sin_a#8 ← phi( anim::@24/(signed byte) anim::sin_a#9 ) + (byte*) SIN#11 ← phi( anim::@24/(byte*) SIN#12 ) + (byte*) COS#13 ← phi( anim::@24/(byte*) COS#14 ) + (byte) anim::angle#8 ← phi( anim::@24/(byte) anim::angle#9 ) + (signed byte) anim::cos_a#3 ← phi( anim::@24/(signed byte) anim::cos_a#4 ) + (signed word) anim::xpos#2 ← phi( anim::@24/(signed word) anim::xpos#0 ) + (byte) anim::i#4 ← phi( anim::@24/(byte) anim::i#5 ) + (signed word) anim::yr#5 ← phi( anim::@24/(signed word) anim::yr#1 ) + (byte) anim::sprite_msb#4 ← phi( anim::@24/(byte) anim::sprite_msb#1 ) + (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#4 | (byte/word/signed word/dword/signed dword) 128 + to:anim::@8 +anim::@15: scope:[anim] from anim::@8 + (byte*) SIN#7 ← phi( anim::@8/(byte*) SIN#9 ) + (byte*) COS#9 ← phi( anim::@8/(byte*) COS#11 ) + (byte) anim::angle#3 ← phi( anim::@8/(byte) anim::angle#5 ) + (byte) anim::sprite_msb#5 ← phi( anim::@8/(byte) anim::sprite_msb#7 ) + *((byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 + (byte) anim::angle#1 ← ++ (byte) anim::angle#3 + *((byte*) BORDERCOL#0) ← (byte) LIGHT_BLUE#0 to:anim::@1 anim::@return: scope:[anim] from anim::@1 return to:@return -@17: scope:[] from @14 - (byte*) SIN#17 ← phi( @14/(byte*) SIN#0 ) - (byte*) SCREEN#4 ← phi( @14/(byte*) SCREEN#0 ) - (byte*) SPRITE#2 ← phi( @14/(byte*) SPRITE#0 ) - (byte*) COS#2 ← phi( @14/(byte*) COS#0 ) +@17: scope:[] from @16 + (byte*) SIN#13 ← phi( @16/(byte*) SIN#16 ) + (byte*) SCREEN#4 ← phi( @16/(byte*) SCREEN#5 ) + (byte*) SPRITE#2 ← phi( @16/(byte*) SPRITE#4 ) + (byte*) COS#2 ← phi( @16/(byte*) COS#4 ) kickasm(location (byte*) COS#2) {{ { .var min = -$7fff .var max = $7fff @@ -467,7 +552,14 @@ anim::@return: scope:[anim] from anim::@1 SYMBOL TABLE SSA (byte*~) $0 +(signed byte/signed word/signed dword~) $1 +(signed byte/signed word/signed dword~) $2 +(signed byte/signed word/signed dword~) $3 +(signed byte/signed word/signed dword~) $4 +(signed byte/signed word/signed dword~) $5 +(signed byte/signed word/signed dword~) $6 (label) @14 +(label) @16 (label) @17 (label) @18 (label) @3 @@ -489,6 +581,11 @@ SYMBOL TABLE SSA (byte*) COS#18 (byte*) COS#19 (byte*) COS#2 +(byte*) COS#20 +(byte*) COS#21 +(byte*) COS#22 +(byte*) COS#23 +(byte*) COS#24 (byte*) COS#3 (byte*) COS#4 (byte*) COS#5 @@ -498,6 +595,8 @@ SYMBOL TABLE SSA (byte*) COS#9 (byte) GREEN (byte) GREEN#0 +(byte) LIGHT_BLUE +(byte) LIGHT_BLUE#0 (byte*) RASTER (byte*) RASTER#0 (byte*) SCREEN @@ -506,6 +605,7 @@ SYMBOL TABLE SSA (byte*) SCREEN#2 (byte*) SCREEN#3 (byte*) SCREEN#4 +(byte*) SCREEN#5 (byte*) SIN (byte*) SIN#0 (byte*) SIN#1 @@ -520,6 +620,11 @@ SYMBOL TABLE SSA (byte*) SIN#18 (byte*) SIN#19 (byte*) SIN#2 +(byte*) SIN#20 +(byte*) SIN#21 +(byte*) SIN#22 +(byte*) SIN#23 +(byte*) SIN#24 (byte*) SIN#3 (byte*) SIN#4 (byte*) SIN#5 @@ -534,6 +639,7 @@ SYMBOL TABLE SSA (byte*) SPRITE#3 (byte*) SPRITE#4 (byte*) SPRITE#5 +(byte*) SPRITE#6 (byte*) SPRITES_COLS (byte*) SPRITES_COLS#0 (byte*) SPRITES_ENABLE @@ -545,40 +651,49 @@ SYMBOL TABLE SSA (byte*) SPRITES_YPOS (byte*) SPRITES_YPOS#0 (void()) anim() -(bool~) anim::$1 +(bool~) anim::$0 +(signed byte~) anim::$1 (signed word~) anim::$10 (signed word~) anim::$11 (signed word~) anim::$12 -(signed word~) anim::$13 -(byte~) anim::$14 -(signed byte~) anim::$15 -(signed word/signed byte/signed dword~) anim::$16 +(byte~) anim::$13 +(signed byte~) anim::$14 +(signed word/signed byte/signed dword~) anim::$15 +(signed word/signed dword/signed byte~) anim::$16 (signed word/signed dword/signed byte~) anim::$17 -(signed word/signed dword/signed byte~) anim::$18 +(byte~) anim::$18 (byte~) anim::$19 (signed byte~) anim::$2 -(byte~) anim::$20 -(byte~) anim::$21 -(byte/signed word/word/dword/signed dword~) anim::$22 +(bool~) anim::$20 +(bool~) anim::$21 +(byte~) anim::$22 (byte/signed word/word/dword/signed dword~) anim::$23 +(byte/signed word/word/dword/signed dword~) anim::$24 +(byte~) anim::$25 +(byte~) anim::$26 +(bool~) anim::$27 (signed word~) anim::$4 (signed word~) anim::$5 (signed word~) anim::$6 (signed word~) anim::$7 -(signed byte~) anim::$8 +(signed word~) anim::$9 (label) anim::@1 -(label) anim::@13 (label) anim::@14 (label) anim::@15 -(label) anim::@16 (label) anim::@17 (label) anim::@18 (label) anim::@19 (label) anim::@2 (label) anim::@20 +(label) anim::@21 +(label) anim::@22 +(label) anim::@23 +(label) anim::@24 (label) anim::@4 (label) anim::@5 (label) anim::@6 +(label) anim::@7 +(label) anim::@8 (label) anim::@return (byte) anim::angle (byte) anim::angle#0 @@ -590,7 +705,11 @@ SYMBOL TABLE SSA (byte) anim::angle#14 (byte) anim::angle#15 (byte) anim::angle#16 +(byte) anim::angle#17 +(byte) anim::angle#18 +(byte) anim::angle#19 (byte) anim::angle#2 +(byte) anim::angle#20 (byte) anim::angle#3 (byte) anim::angle#4 (byte) anim::angle#5 @@ -600,6 +719,37 @@ SYMBOL TABLE SSA (byte) anim::angle#9 (signed byte) anim::cos_a (signed byte) anim::cos_a#0 +(signed byte) anim::cos_a#1 +(signed byte) anim::cos_a#10 +(signed byte) anim::cos_a#11 +(signed byte) anim::cos_a#12 +(signed byte) anim::cos_a#13 +(signed byte) anim::cos_a#2 +(signed byte) anim::cos_a#3 +(signed byte) anim::cos_a#4 +(signed byte) anim::cos_a#5 +(signed byte) anim::cos_a#6 +(signed byte) anim::cos_a#7 +(signed byte) anim::cos_a#8 +(signed byte) anim::cos_a#9 +(byte) anim::i +(byte) anim::i#0 +(byte) anim::i#1 +(byte) anim::i#10 +(byte) anim::i#11 +(byte) anim::i#12 +(byte) anim::i#13 +(byte) anim::i#14 +(byte) anim::i#2 +(byte) anim::i#3 +(byte) anim::i#4 +(byte) anim::i#5 +(byte) anim::i#6 +(byte) anim::i#7 +(byte) anim::i#8 +(byte) anim::i#9 +(byte) anim::i2 +(byte) anim::i2#0 (label) anim::mulf8s_prepare1 (byte~) anim::mulf8s_prepare1_$0 (byte) anim::mulf8s_prepare1_$0#0 @@ -614,15 +764,40 @@ SYMBOL TABLE SSA (signed byte) anim::mulf8s_prepare2_a#1 (signed byte) anim::sin_a (signed byte) anim::sin_a#0 +(signed byte) anim::sin_a#1 +(signed byte) anim::sin_a#10 +(signed byte) anim::sin_a#11 +(signed byte) anim::sin_a#12 +(signed byte) anim::sin_a#13 +(signed byte) anim::sin_a#2 +(signed byte) anim::sin_a#3 +(signed byte) anim::sin_a#4 +(signed byte) anim::sin_a#5 +(signed byte) anim::sin_a#6 +(signed byte) anim::sin_a#7 +(signed byte) anim::sin_a#8 +(signed byte) anim::sin_a#9 +(byte) anim::sprite_msb +(byte) anim::sprite_msb#0 +(byte) anim::sprite_msb#1 +(byte) anim::sprite_msb#10 +(byte) anim::sprite_msb#11 +(byte) anim::sprite_msb#12 +(byte) anim::sprite_msb#13 +(byte) anim::sprite_msb#14 +(byte) anim::sprite_msb#15 +(byte) anim::sprite_msb#16 +(byte) anim::sprite_msb#2 +(byte) anim::sprite_msb#3 +(byte) anim::sprite_msb#4 +(byte) anim::sprite_msb#5 +(byte) anim::sprite_msb#6 +(byte) anim::sprite_msb#7 +(byte) anim::sprite_msb#8 +(byte) anim::sprite_msb#9 (signed byte) anim::x (signed byte) anim::x#0 (signed byte) anim::x#1 -(signed byte) anim::x#10 -(signed byte) anim::x#11 -(signed byte) anim::x#12 -(signed byte) anim::x#13 -(signed byte) anim::x#14 -(signed byte) anim::x#15 (signed byte) anim::x#2 (signed byte) anim::x#3 (signed byte) anim::x#4 @@ -633,6 +808,8 @@ SYMBOL TABLE SSA (signed byte) anim::x#9 (signed word) anim::xpos (signed word) anim::xpos#0 +(signed word) anim::xpos#1 +(signed word) anim::xpos#2 (signed word) anim::xr (signed word) anim::xr#0 (signed word) anim::xr#1 @@ -645,12 +822,6 @@ SYMBOL TABLE SSA (signed byte) anim::y (signed byte) anim::y#0 (signed byte) anim::y#1 -(signed byte) anim::y#10 -(signed byte) anim::y#11 -(signed byte) anim::y#12 -(signed byte) anim::y#13 -(signed byte) anim::y#14 -(signed byte) anim::y#15 (signed byte) anim::y#2 (signed byte) anim::y#3 (signed byte) anim::y#4 @@ -658,7 +829,6 @@ SYMBOL TABLE SSA (signed byte) anim::y#6 (signed byte) anim::y#7 (signed byte) anim::y#8 -(signed byte) anim::y#9 (byte) anim::ypos (byte) anim::ypos#0 (signed word) anim::yr @@ -669,12 +839,13 @@ SYMBOL TABLE SSA (signed word) anim::yr#4 (signed word) anim::yr#5 (signed word) anim::yr#6 +(signed word) anim::yr#7 +(signed word) anim::yr#8 (void()) init() (byte*~) init::$1 -(byte~) init::$2 -(byte*~) init::$3 -(byte~) init::$4 -(bool~) init::$5 +(byte*~) init::$2 +(byte~) init::$3 +(bool~) init::$4 (label) init::@1 (label) init::@3 (label) init::@return @@ -682,12 +853,6 @@ SYMBOL TABLE SSA (byte) init::i#0 (byte) init::i#1 (byte) init::i#2 -(byte) init::i2 -(byte) init::i2#0 -(byte) init::spr_x -(byte) init::spr_x#0 -(byte) init::spr_x#1 -(byte) init::spr_x#2 (byte*) init::sprites_ptr (byte*) init::sprites_ptr#0 (byte*) init::sprites_ptr#1 @@ -864,6 +1029,10 @@ SYMBOL TABLE SSA (byte[512]) mulf_sqr2_hi#0 (byte[512]) mulf_sqr2_lo (byte[512]) mulf_sqr2_lo#0 +(signed byte[8]) xs +(signed byte[8]) xs#0 +(signed byte[8]) ys +(signed byte[8]) ys#0 Culled Empty Block (label) main::@2 Culled Empty Block (label) @18 @@ -872,6 +1041,7 @@ Inversing boolean not (bool~) mulf_init::$4 ← (byte~) mulf_init::$2 != (byte/s Inversing boolean not (bool~) mulf_init::$14 ← (byte) mulf_init::x_255#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mulf_init::$13 ← (byte) mulf_init::x_255#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) mulf8s_prepared::$3 ← *((signed byte*) mulf8s_prepared::memA#0) >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mulf8s_prepared::$2 ← *((signed byte*) mulf8s_prepared::memA#0) < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) mulf8s_prepared::$9 ← (signed byte) mulf8s_prepared::b#5 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mulf8s_prepared::$8 ← (signed byte) mulf8s_prepared::b#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) anim::$21 ← (byte~) anim::$19 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) anim::$20 ← (byte~) anim::$19 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte*) mulf_init::sqr1_hi#0 = (byte*~) mulf_init::$0 Alias (byte*) mulf_init::sqr1_lo#0 = (byte*~) mulf_init::$1 @@ -894,39 +1064,50 @@ Alias (byte~) mulf8s_prepared::$15 = (byte~) mulf8s_prepared::$7 Alias (signed word) mulf8s_prepared::return#0 = (signed word~) mulf8s_prepared::$14 (signed word) mulf8s_prepared::return#6 (signed word) mulf8s_prepared::return#1 Alias (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#6 Alias (byte~) mulf8s_prepared::$16 = (byte~) mulf8s_prepared::$13 -Alias (byte*) SIN#0 = (byte*~) $0 (byte*) SIN#17 -Alias (byte*) COS#11 = (byte*) COS#9 -Alias (byte*) SIN#13 = (byte*) SIN#15 -Alias (byte*) SCREEN#1 = (byte*) SCREEN#2 -Alias (byte*) SPRITE#3 = (byte*) SPRITE#4 -Alias (byte*) init::sprites_ptr#0 = (byte*~) init::$1 -Alias (byte) init::i2#0 = (byte~) init::$2 -Alias (byte*) COS#4 = (byte*) COS#6 -Alias (byte) anim::angle#12 = (byte) anim::angle#8 -Alias (signed byte) anim::x#11 = (signed byte) anim::x#14 -Alias (signed byte) anim::y#11 = (signed byte) anim::y#13 +Alias (byte*) SIN#0 = (byte*~) $0 (byte*) SIN#16 (byte*) SIN#13 +Alias (byte*) COS#10 = (byte*) COS#12 Alias (byte*) SIN#10 = (byte*) SIN#8 -Alias (byte*) COS#1 = (byte*) COS#5 (byte*) COS#3 (byte*) COS#19 (byte*) COS#18 (byte*) COS#17 (byte*) COS#16 (byte*) COS#15 (byte*) COS#14 (byte*) COS#13 (byte*) COS#12 (byte*) COS#10 (byte*) COS#8 -Alias (byte) anim::angle#10 = (byte) anim::angle#9 (byte) anim::angle#5 (byte) anim::angle#2 (byte) anim::angle#15 (byte) anim::angle#13 (byte) anim::angle#6 (byte) anim::angle#3 (byte) anim::angle#16 (byte) anim::angle#14 (byte) anim::angle#11 (byte) anim::angle#7 (byte) anim::angle#4 -Alias (signed byte) anim::x#1 = (signed byte) anim::x#12 (signed byte) anim::x#9 (signed byte) anim::x#7 (signed byte) anim::x#5 (signed byte) anim::x#3 (signed byte) anim::x#13 (signed byte) anim::x#10 (signed byte) anim::x#8 (signed byte) anim::x#6 (signed byte) anim::x#4 (signed byte) anim::x#2 (signed byte) anim::x#15 -Alias (signed byte) anim::y#1 = (signed byte) anim::y#12 (signed byte) anim::y#10 (signed byte) anim::y#9 (signed byte) anim::y#7 (signed byte) anim::y#5 (signed byte) anim::y#3 (signed byte) anim::y#8 (signed byte) anim::y#6 (signed byte) anim::y#4 (signed byte) anim::y#2 (signed byte) anim::y#15 (signed byte) anim::y#14 -Alias (byte*) SIN#1 = (byte*) SIN#9 (byte*) SIN#7 (byte*) SIN#6 (byte*) SIN#5 (byte*) SIN#4 (byte*) SIN#3 (byte*) SIN#2 (byte*) SIN#19 (byte*) SIN#18 (byte*) SIN#16 (byte*) SIN#14 (byte*) SIN#12 -Alias (signed byte) anim::mulf8s_prepare1_a#0 = (signed byte) anim::cos_a#0 (signed byte~) anim::$2 (signed byte) anim::mulf8s_prepare1_a#1 +Alias (byte*) SCREEN#1 = (byte*) SCREEN#2 +Alias (byte*) SPRITE#3 = (byte*) SPRITE#5 +Alias (byte*) init::sprites_ptr#0 = (byte*~) init::$1 +Alias (byte*) COS#0 = (byte*) COS#4 (byte*) COS#2 +Alias (byte*) SPRITE#0 = (byte*) SPRITE#4 (byte*) SPRITE#2 +Alias (byte*) SCREEN#0 = (byte*) SCREEN#5 (byte*) SCREEN#4 +Alias (byte*) COS#5 = (byte*) COS#7 +Alias (byte) anim::angle#10 = (byte) anim::angle#6 +Alias (byte*) SIN#3 = (byte*) SIN#5 +Alias (byte*) COS#1 = (byte*) COS#6 (byte*) COS#3 +Alias (byte) anim::angle#2 = (byte) anim::angle#7 (byte) anim::angle#4 +Alias (byte*) SIN#1 = (byte*) SIN#4 (byte*) SIN#2 +Alias (signed byte) anim::cos_a#0 = (signed byte~) anim::$1 +Alias (signed byte) anim::sin_a#0 = (signed byte~) anim::$2 +Alias (signed byte) anim::cos_a#1 = (signed byte) anim::mulf8s_prepare1_a#0 (signed byte) anim::mulf8s_prepare1_a#1 (signed byte) anim::cos_a#13 (signed byte) anim::cos_a#12 (signed byte) anim::cos_a#11 (signed byte) anim::cos_a#10 (signed byte) anim::cos_a#9 (signed byte) anim::cos_a#8 (signed byte) anim::cos_a#7 (signed byte) anim::cos_a#6 (signed byte) anim::cos_a#5 (signed byte) anim::cos_a#4 (signed byte) anim::cos_a#3 +Alias (signed byte) anim::x#0 = (signed byte) anim::x#5 (signed byte) anim::x#3 (signed byte) anim::x#1 (signed byte) anim::x#9 (signed byte) anim::x#8 (signed byte) anim::x#7 (signed byte) anim::x#6 (signed byte) anim::x#4 (signed byte) anim::x#2 +Alias (signed byte) anim::y#0 = (signed byte) anim::y#7 (signed byte) anim::y#5 (signed byte) anim::y#3 (signed byte) anim::y#1 (signed byte) anim::y#8 (signed byte) anim::y#6 (signed byte) anim::y#4 (signed byte) anim::y#2 +Alias (signed byte) anim::sin_a#1 = (signed byte) anim::sin_a#5 (signed byte) anim::sin_a#6 (signed byte) anim::sin_a#4 (signed byte) anim::sin_a#3 (signed byte) anim::sin_a#2 (signed byte) anim::mulf8s_prepare2_a#0 (signed byte) anim::mulf8s_prepare2_a#1 (signed byte) anim::sin_a#13 (signed byte) anim::sin_a#12 (signed byte) anim::sin_a#11 (signed byte) anim::sin_a#10 (signed byte) anim::sin_a#9 (signed byte) anim::sin_a#8 +Alias (byte) anim::sprite_msb#10 = (byte) anim::sprite_msb#15 (byte) anim::sprite_msb#16 (byte) anim::sprite_msb#14 (byte) anim::sprite_msb#13 (byte) anim::sprite_msb#12 (byte) anim::sprite_msb#11 (byte) anim::sprite_msb#9 (byte) anim::sprite_msb#8 (byte) anim::sprite_msb#6 (byte) anim::sprite_msb#3 +Alias (byte) anim::i#10 = (byte) anim::i#14 (byte) anim::i#2 (byte) anim::i#13 (byte) anim::i#12 (byte) anim::i#11 (byte) anim::i#9 (byte) anim::i#8 (byte) anim::i#7 (byte) anim::i#6 (byte) anim::i#5 (byte) anim::i#4 +Alias (byte) anim::angle#11 = (byte) anim::angle#19 (byte) anim::angle#20 (byte) anim::angle#18 (byte) anim::angle#17 (byte) anim::angle#16 (byte) anim::angle#15 (byte) anim::angle#14 (byte) anim::angle#13 (byte) anim::angle#12 (byte) anim::angle#9 (byte) anim::angle#8 +Alias (byte*) COS#13 = (byte*) COS#23 (byte*) COS#24 (byte*) COS#22 (byte*) COS#21 (byte*) COS#20 (byte*) COS#19 (byte*) COS#18 (byte*) COS#17 (byte*) COS#16 (byte*) COS#15 (byte*) COS#14 +Alias (byte*) SIN#11 = (byte*) SIN#23 (byte*) SIN#24 (byte*) SIN#22 (byte*) SIN#21 (byte*) SIN#20 (byte*) SIN#19 (byte*) SIN#18 (byte*) SIN#17 (byte*) SIN#15 (byte*) SIN#14 (byte*) SIN#12 Alias (byte) mulf8u_prepare::a#0 = (byte) anim::mulf8s_prepare1_$0#0 Alias (signed word) mulf8s_prepared::return#2 = (signed word) mulf8s_prepared::return#7 Alias (signed word) anim::xr#0 = (signed word~) anim::$5 (signed word) anim::xr#7 (signed word) anim::xr#6 (signed word) anim::xr#5 (signed word) anim::xr#4 (signed word) anim::xr#2 Alias (signed word) mulf8s_prepared::return#3 = (signed word) mulf8s_prepared::return#8 -Alias (signed word) anim::yr#0 = (signed word~) anim::$7 (signed word) anim::yr#6 (signed word) anim::yr#5 (signed word) anim::yr#4 (signed word) anim::yr#3 (signed word) anim::yr#2 -Alias (signed byte) anim::mulf8s_prepare2_a#0 = (signed byte) anim::sin_a#0 (signed byte~) anim::$8 (signed byte) anim::mulf8s_prepare2_a#1 +Alias (signed word) anim::yr#0 = (signed word~) anim::$7 (signed word) anim::yr#8 (signed word) anim::yr#7 (signed word) anim::yr#6 (signed word) anim::yr#4 (signed word) anim::yr#2 Alias (byte) mulf8u_prepare::a#1 = (byte) anim::mulf8s_prepare2_$0#0 Alias (signed word) mulf8s_prepared::return#4 = (signed word) mulf8s_prepared::return#9 Alias (signed word) mulf8s_prepared::return#10 = (signed word) mulf8s_prepared::return#5 Alias (signed word) anim::xr#1 = (signed word) anim::xr#3 -Alias (signed word) anim::xpos#0 = (signed word/signed dword/signed byte~) anim::$18 -Alias (byte) anim::ypos#0 = (byte/signed word/word/dword/signed dword~) anim::$23 -Alias (byte*) COS#0 = (byte*) COS#2 -Alias (byte*) SPRITE#0 = (byte*) SPRITE#2 -Alias (byte*) SCREEN#0 = (byte*) SCREEN#4 +Alias (signed word) anim::xpos#0 = (signed word/signed dword/signed byte~) anim::$17 (signed word) anim::xpos#2 +Alias (byte) anim::sprite_msb#1 = (byte~) anim::$18 (byte) anim::sprite_msb#4 +Alias (byte) anim::ypos#0 = (byte/signed word/word/dword/signed dword~) anim::$24 +Alias (byte) anim::i2#0 = (byte~) anim::$25 +Alias (signed word) anim::yr#1 = (signed word) anim::yr#5 +Alias (byte) anim::sprite_msb#5 = (byte) anim::sprite_msb#7 +Alias (byte) anim::angle#3 = (byte) anim::angle#5 +Alias (byte*) COS#11 = (byte*) COS#9 +Alias (byte*) SIN#7 = (byte*) SIN#9 Successful SSA optimization Pass2AliasElimination Alias (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#3 Alias (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#3 @@ -935,31 +1116,45 @@ Alias (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#3 Alias (byte) mulf_init::x_255#1 = (byte) mulf_init::x_255#3 Alias (byte*) mulf_init::sqr2_hi#1 = (byte*) mulf_init::sqr2_hi#3 Alias (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#5 +Alias (signed word) anim::yr#1 = (signed word) anim::yr#3 +Alias (byte) anim::i#10 = (byte) anim::i#3 +Alias (signed word) anim::xpos#0 = (signed word) anim::xpos#1 +Alias (signed byte) anim::cos_a#1 = (signed byte) anim::cos_a#2 +Alias (byte) anim::angle#11 = (byte) anim::angle#3 +Alias (byte*) COS#11 = (byte*) COS#13 +Alias (byte*) SIN#11 = (byte*) SIN#7 +Alias (signed byte) anim::sin_a#1 = (signed byte) anim::sin_a#7 Successful SSA optimization Pass2AliasElimination Self Phi Eliminated (byte*) SPRITE#1 Self Phi Eliminated (byte*) init::sprites_ptr#1 Self Phi Eliminated (byte*) COS#1 -Self Phi Eliminated (byte) anim::angle#10 -Self Phi Eliminated (signed byte) anim::x#1 -Self Phi Eliminated (signed byte) anim::y#1 +Self Phi Eliminated (byte) anim::angle#2 Self Phi Eliminated (byte*) SIN#1 +Self Phi Eliminated (signed byte) anim::cos_a#1 +Self Phi Eliminated (signed byte) anim::sin_a#1 +Self Phi Eliminated (byte) anim::angle#11 +Self Phi Eliminated (byte*) COS#11 +Self Phi Eliminated (byte*) SIN#11 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) mulf8u_prepared::b#1 (byte) mulf8u_prepared::b#0 Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#0 -Redundant Phi (byte*) SPRITE#5 (byte*) SPRITE#0 -Redundant Phi (byte*) COS#11 (byte*) COS#0 -Redundant Phi (byte*) SIN#13 (byte*) SIN#0 +Redundant Phi (byte*) SPRITE#6 (byte*) SPRITE#0 +Redundant Phi (byte*) COS#10 (byte*) COS#0 +Redundant Phi (byte*) SIN#10 (byte*) SIN#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#3 -Redundant Phi (byte*) SPRITE#3 (byte*) SPRITE#5 +Redundant Phi (byte*) SPRITE#3 (byte*) SPRITE#6 Redundant Phi (byte*) SPRITE#1 (byte*) SPRITE#3 Redundant Phi (byte*) init::sprites_ptr#1 (byte*) init::sprites_ptr#0 -Redundant Phi (byte*) COS#7 (byte*) COS#11 -Redundant Phi (byte*) SIN#11 (byte*) SIN#13 -Redundant Phi (byte*) COS#1 (byte*) COS#4 -Redundant Phi (byte) anim::angle#10 (byte) anim::angle#12 -Redundant Phi (signed byte) anim::x#1 (signed byte) anim::x#11 -Redundant Phi (signed byte) anim::y#1 (signed byte) anim::y#11 -Redundant Phi (byte*) SIN#1 (byte*) SIN#10 +Redundant Phi (byte*) COS#8 (byte*) COS#10 +Redundant Phi (byte*) SIN#6 (byte*) SIN#10 +Redundant Phi (byte*) COS#1 (byte*) COS#5 +Redundant Phi (byte) anim::angle#2 (byte) anim::angle#10 +Redundant Phi (byte*) SIN#1 (byte*) SIN#3 +Redundant Phi (signed byte) anim::cos_a#1 (signed byte) anim::cos_a#0 +Redundant Phi (signed byte) anim::sin_a#1 (signed byte) anim::sin_a#0 +Redundant Phi (byte) anim::angle#11 (byte) anim::angle#2 +Redundant Phi (byte*) COS#11 (byte*) COS#1 +Redundant Phi (byte*) SIN#11 (byte*) SIN#1 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) mulf_init::$4 if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 Simple Condition (bool~) mulf_init::$9 if((byte*) mulf_init::sqr1_lo#1!=(byte*~) mulf_init::$8) goto mulf_init::@1 @@ -967,8 +1162,10 @@ Simple Condition (bool~) mulf_init::$14 if((byte) mulf_init::x_255#1!=(byte/sign Simple Condition (bool~) mulf_init::$16 if((byte*) mulf_init::sqr2_lo#1!=(byte*~) mulf_init::$15) goto mulf_init::@3 Simple Condition (bool~) mulf8s_prepared::$3 if(*((signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 Simple Condition (bool~) mulf8s_prepared::$9 if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 -Simple Condition (bool~) init::$5 if((byte) init::i#1!=rangelast(0,7)) goto init::@1 -Simple Condition (bool~) anim::$1 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@5 +Simple Condition (bool~) init::$4 if((byte) init::i#1!=rangelast(0,7)) goto init::@1 +Simple Condition (bool~) anim::$0 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@5 +Simple Condition (bool~) anim::$21 if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 +Simple Condition (bool~) anim::$27 if((byte) anim::i#1!=rangelast(0,7)) goto anim::@7 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 @@ -978,6 +1175,7 @@ Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 Constant (const byte*) BORDERCOL#0 = ((byte*))53280 Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 Constant (const byte) GREEN#0 = 5 +Constant (const byte) LIGHT_BLUE#0 = 14 Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } Constant (const byte[512]) mulf_sqr2_lo#0 = { fill( 512, 0) } @@ -995,11 +1193,16 @@ Constant (const signed byte*) mulf8s_prepared::memA#0 = ((signed byte*))253 Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const byte*) SPRITE#0 = ((byte*))12288 Constant (const byte*) COS#0 = ((byte*))8192 -Constant (const byte) init::spr_x#0 = 60 Constant (const byte) init::i#0 = 0 +Constant (const signed byte/signed word/signed dword) $1 = -70 +Constant (const signed byte/signed word/signed dword) $2 = -70 +Constant (const signed byte/signed word/signed dword) $3 = -70 +Constant (const signed byte/signed word/signed dword) $4 = -70 +Constant (const signed byte/signed word/signed dword) $5 = -70 +Constant (const signed byte/signed word/signed dword) $6 = -70 Constant (const byte) anim::angle#0 = 0 -Constant (const signed byte) anim::x#0 = 89 -Constant (const signed byte) anim::y#0 = 0 +Constant (const byte) anim::sprite_msb#0 = 0 +Constant (const byte) anim::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) mulf_init::sqr1_hi#0 = mulf_sqr1_hi#0+1 Constant (const byte*) mulf_init::sqr1_lo#0 = mulf_sqr1_lo#0+1 @@ -1014,64 +1217,58 @@ Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511 Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256 Constant (const byte*) SIN#0 = COS#0+64 Constant (const byte*) init::sprites_ptr#0 = SCREEN#0+1016 -Constant (const byte*) init::$3 = SPRITE#0/64 +Constant (const byte*) init::$2 = SPRITE#0/64 +Constant (const signed byte[8]) xs#0 = { $1, $2, $3, 0, 0, 70, 70, 70 } +Constant (const signed byte[8]) ys#0 = { $4, 0, 70, $5, 70, $6, 0, 70 } Successful SSA optimization Pass2ConstantIdentification -Constant (const byte) init::$4 = ((byte))init::$3 +Constant (const byte) init::$3 = ((byte))init::$2 Successful SSA optimization Pass2ConstantIdentification -Consolidated constant in assignment anim::$17 +Consolidated constant in assignment anim::$16 Consolidated constant in assignment anim::xpos#0 -Consolidated array index constant in *(SPRITES_XPOS#0+0) Consolidated constant in assignment anim::ypos#0 -Consolidated array index constant in *(SPRITES_YPOS#0+0) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination if(true) goto anim::@2 Successful SSA optimization Pass2ConstantIfs Fixing inline constructor with mulf8u_prepared::$0 ← *(mulf8u_prepared::memB#0) w= *(mulf8u_prepared::resL#0) Successful SSA optimization Pass2FixInlineConstructors -Inferred type updated to signed byte in (signed word/signed byte/signed dword~) anim::$16 ← (signed byte~) anim::$15 -Inferred type updated to signed byte in (signed word/signed dword/signed byte~) anim::$17 ← (signed byte~) anim::$16 -Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) anim::$22 ← (byte~) anim::$21 +Inferred type updated to signed byte in (signed word/signed byte/signed dword~) anim::$15 ← (signed byte~) anim::$14 +Inferred type updated to signed byte in (signed word/signed dword/signed byte~) anim::$16 ← (signed byte~) anim::$15 +Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) anim::$23 ← (byte~) anim::$22 Eliminating Noop Cast (byte) mulf8u_prepared::b#0 ← ((byte)) (signed byte) mulf8s_prepared::b#4 Eliminating Noop Cast (byte~) mulf8s_prepared::$6 ← ((byte)) (signed byte) mulf8s_prepared::b#4 Eliminating Noop Cast (signed word) mulf8s_prepared::return#0 ← ((signed word)) (word) mulf8s_prepared::m#4 Eliminating Noop Cast (byte~) mulf8s_prepared::$12 ← ((byte)) *((const signed byte*) mulf8s_prepared::memA#0) -Eliminating Noop Cast (signed byte) anim::mulf8s_prepare1_a#0 ← ((signed byte)) *((byte*) COS#4 + (byte) anim::angle#12) -Eliminating Noop Cast (byte) mulf8u_prepare::a#0 ← ((byte)) (signed byte) anim::mulf8s_prepare1_a#0 -Eliminating Noop Cast (signed byte) anim::mulf8s_prepare2_a#0 ← ((signed byte)) *((byte*) SIN#10 + (byte) anim::angle#12) -Eliminating Noop Cast (byte) mulf8u_prepare::a#1 ← ((byte)) (signed byte) anim::mulf8s_prepare2_a#0 -Eliminating Noop Cast (signed byte~) anim::$15 ← ((signed byte)) (byte~) anim::$14 +Eliminating Noop Cast (signed byte) anim::cos_a#0 ← ((signed byte)) *((byte*) COS#5 + (byte) anim::angle#10) +Eliminating Noop Cast (signed byte) anim::sin_a#0 ← ((signed byte)) *((byte*) SIN#3 + (byte) anim::angle#10) +Eliminating Noop Cast (byte) mulf8u_prepare::a#0 ← ((byte)) (signed byte) anim::cos_a#0 +Eliminating Noop Cast (byte) mulf8u_prepare::a#1 ← ((byte)) (signed byte) anim::sin_a#0 +Eliminating Noop Cast (signed byte~) anim::$14 ← ((signed byte)) (byte~) anim::$13 Successful SSA optimization Pass2NopCastElimination Removing unused block anim::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value init::i#1 ← ++ init::i#2 to ++ Resolved ranged comparison value if(init::i#1!=rangelast(0,7)) goto init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 +Resolved ranged next value anim::i#1 ← ++ anim::i#10 to ++ +Resolved ranged comparison value if(anim::i#1!=rangelast(0,7)) goto anim::@7 to (byte/signed byte/word/signed word/dword/signed dword) 8 Culled Empty Block (label) @3 Culled Empty Block (label) mulf_init::@6 Culled Empty Block (label) @14 +Culled Empty Block (label) @16 Culled Empty Block (label) anim::@2 Culled Empty Block (label) anim::@5 -Culled Empty Block (label) anim::@15 -Culled Empty Block (label) anim::@18 +Culled Empty Block (label) anim::@19 +Culled Empty Block (label) anim::@22 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) mulf8u_prepared::return#0 = (word~) mulf8u_prepared::$0 -Alias (signed byte~) anim::$17 = (signed byte~) anim::$16 -Alias (byte~) anim::$22 = (byte~) anim::$21 +Alias (signed byte~) anim::$16 = (signed byte~) anim::$15 +Alias (byte~) anim::$23 = (byte~) anim::$22 Successful SSA optimization Pass2AliasElimination -Self Phi Eliminated (byte*) COS#4 -Self Phi Eliminated (signed byte) anim::x#11 -Self Phi Eliminated (signed byte) anim::y#11 -Self Phi Eliminated (byte*) SIN#10 +Self Phi Eliminated (byte*) COS#5 +Self Phi Eliminated (byte*) SIN#3 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (byte*) COS#4 (const byte*) COS#0 -Redundant Phi (signed byte) anim::x#11 (const signed byte) anim::x#0 -Redundant Phi (signed byte) anim::y#11 (const signed byte) anim::y#0 -Redundant Phi (byte*) SIN#10 (const byte*) SIN#0 +Redundant Phi (byte*) COS#5 (const byte*) COS#0 +Redundant Phi (byte*) SIN#3 (const byte*) SIN#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const signed byte) mulf8s_prepared::b#0 = anim::x#0 -Constant (const signed byte) mulf8s_prepared::b#1 = anim::y#0 -Constant (const signed byte) mulf8s_prepared::b#2 = anim::y#0 -Constant (const signed byte) mulf8s_prepared::b#3 = anim::x#0 -Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const word) mulf_init::sqr#0 Inlining constant with var siblings (const byte) mulf_init::x_2#0 Inlining constant with var siblings (const byte) mulf_init::c#0 @@ -1082,30 +1279,30 @@ Inlining constant with var siblings (const byte*) mulf_init::sqr1_lo#0 Inlining constant with var siblings (const byte) mulf_init::x_255#0 Inlining constant with var siblings (const byte*) mulf_init::sqr2_hi#0 Inlining constant with var siblings (const byte*) mulf_init::sqr2_lo#0 -Inlining constant with var siblings (const signed byte) mulf8s_prepared::b#0 -Inlining constant with var siblings (const signed byte) mulf8s_prepared::b#1 -Inlining constant with var siblings (const signed byte) mulf8s_prepared::b#2 -Inlining constant with var siblings (const signed byte) mulf8s_prepared::b#3 -Inlining constant with var siblings (const byte) init::spr_x#0 Inlining constant with var siblings (const byte) init::i#0 Inlining constant with var siblings (const byte) anim::angle#0 +Inlining constant with var siblings (const byte) anim::sprite_msb#0 +Inlining constant with var siblings (const byte) anim::i#0 Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 +Constant inlined anim::sprite_msb#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 +Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined anim::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) 70 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined $6 = -(byte/signed byte/word/signed word/dword/signed dword) 70 Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined init::$4 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256 Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf8s_prepared::b#1 = (const signed byte) anim::y#0 -Constant inlined mulf8s_prepared::b#0 = (const signed byte) anim::x#0 -Constant inlined mulf8s_prepared::b#3 = (const signed byte) anim::x#0 -Constant inlined mulf8s_prepared::b#2 = (const signed byte) anim::y#0 Constant inlined mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::spr_x#0 = (byte/signed byte/word/signed word/dword/signed dword) 60 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$3 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$3 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$2 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 Constant inlined anim::angle#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1116,8 +1313,8 @@ Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511 Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero SPRITES_XPOS#0+0 -Simplifying constant plus zero SPRITES_YPOS#0+0 +Added new block during phi lifting anim::@25(between anim::@8 and anim::@7) +Added new block during phi lifting anim::@26(between anim::@24 and anim::@8) Added new block during phi lifting mulf8s_prepared::@7(between mulf8s_prepared::@6 and mulf8s_prepared::@1) Added new block during phi lifting mulf8s_prepared::@8(between mulf8s_prepared::@1 and mulf8s_prepared::@2) Added new block during phi lifting init::@4(between init::@1 and init::@1) @@ -1129,41 +1326,48 @@ Adding NOP phi() at start of @begin Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of anim -Adding NOP phi() at start of anim::@13 -Adding NOP phi() at start of anim::@14 Adding NOP phi() at start of init Adding NOP phi() at start of mulf_init Adding NOP phi() at start of mulf_init::@7 CALL GRAPH Calls in [] to main:3 Calls in [main] to init:6 anim:8 -Calls in [anim] to mulf8u_prepare:15 mulf8s_prepared:17 mulf8s_prepared:21 mulf8u_prepare:26 mulf8s_prepared:28 mulf8s_prepared:33 -Calls in [mulf8s_prepared] to mulf8u_prepared:52 -Calls in [init] to mulf_init:79 +Calls in [anim] to mulf8u_prepare:18 mulf8s_prepared:21 mulf8s_prepared:27 mulf8u_prepare:32 mulf8s_prepared:35 mulf8s_prepared:42 +Calls in [mulf8s_prepared] to mulf8u_prepared:72 +Calls in [init] to mulf_init:99 -Created 19 initial phi equivalence classes -Coalesced [50] anim::angle#17 ← anim::angle#1 -Coalesced [59] mulf8s_prepared::m#7 ← mulf8s_prepared::m#1 -Coalesced [65] mulf8s_prepared::m#10 ← mulf8s_prepared::m#2 -Coalesced [68] mulf8s_prepared::m#9 ← mulf8s_prepared::m#5 -Coalesced [69] mulf8s_prepared::m#8 ← mulf8s_prepared::m#0 -Coalesced [91] init::i#3 ← init::i#1 -Coalesced [92] init::spr_x#3 ← init::spr_x#1 -Coalesced [100] mulf_init::sqr#8 ← mulf_init::sqr#2 -Coalesced [101] mulf_init::x_2#7 ← mulf_init::x_2#1 -Coalesced [124] mulf_init::x_255#5 ← mulf_init::x_255#1 -Coalesced [125] mulf_init::sqr2_lo#5 ← mulf_init::sqr2_lo#1 -Coalesced [126] mulf_init::sqr2_hi#5 ← mulf_init::sqr2_hi#1 -Coalesced [127] mulf_init::dir#4 ← mulf_init::dir#3 -Coalesced (already) [128] mulf_init::dir#5 ← mulf_init::dir#2 -Coalesced [129] mulf_init::c#5 ← mulf_init::c#1 -Coalesced [130] mulf_init::sqr#6 ← mulf_init::sqr#1 -Coalesced [131] mulf_init::sqr1_lo#5 ← mulf_init::sqr1_lo#1 -Coalesced [132] mulf_init::sqr1_hi#5 ← mulf_init::sqr1_hi#1 -Coalesced [133] mulf_init::x_2#5 ← mulf_init::x_2#2 -Coalesced [134] mulf_init::sqr#7 ← mulf_init::sqr#4 -Coalesced (already) [135] mulf_init::x_2#6 ← mulf_init::x_2#3 -Coalesced down to 15 phi equivalence classes +Created 21 initial phi equivalence classes +Coalesced [20] mulf8s_prepared::b#8 ← mulf8s_prepared::b#0 +Coalesced [26] mulf8s_prepared::b#10 ← mulf8s_prepared::b#1 +Coalesced [34] mulf8s_prepared::b#9 ← mulf8s_prepared::b#2 +Coalesced [41] mulf8s_prepared::b#11 ← mulf8s_prepared::b#3 +Coalesced [54] anim::sprite_msb#18 ← anim::sprite_msb#2 +Coalesced [67] anim::angle#21 ← anim::angle#1 +Coalesced [68] anim::i#15 ← anim::i#1 +Coalesced [69] anim::sprite_msb#17 ← anim::sprite_msb#5 +Coalesced [70] anim::sprite_msb#19 ← anim::sprite_msb#1 +Coalesced [79] mulf8s_prepared::m#7 ← mulf8s_prepared::m#1 +Coalesced [85] mulf8s_prepared::m#10 ← mulf8s_prepared::m#2 +Coalesced [88] mulf8s_prepared::m#9 ← mulf8s_prepared::m#5 +Coalesced [89] mulf8s_prepared::m#8 ← mulf8s_prepared::m#0 +Coalesced [107] init::i#3 ← init::i#1 +Coalesced [115] mulf_init::sqr#8 ← mulf_init::sqr#2 +Coalesced [116] mulf_init::x_2#7 ← mulf_init::x_2#1 +Coalesced [139] mulf_init::x_255#5 ← mulf_init::x_255#1 +Coalesced [140] mulf_init::sqr2_lo#5 ← mulf_init::sqr2_lo#1 +Coalesced [141] mulf_init::sqr2_hi#5 ← mulf_init::sqr2_hi#1 +Coalesced [142] mulf_init::dir#4 ← mulf_init::dir#3 +Coalesced (already) [143] mulf_init::dir#5 ← mulf_init::dir#2 +Coalesced [144] mulf_init::c#5 ← mulf_init::c#1 +Coalesced [145] mulf_init::sqr#6 ← mulf_init::sqr#1 +Coalesced [146] mulf_init::sqr1_lo#5 ← mulf_init::sqr1_lo#1 +Coalesced [147] mulf_init::sqr1_hi#5 ← mulf_init::sqr1_hi#1 +Coalesced [148] mulf_init::x_2#5 ← mulf_init::x_2#2 +Coalesced [149] mulf_init::sqr#7 ← mulf_init::sqr#4 +Coalesced (already) [150] mulf_init::x_2#6 ← mulf_init::x_2#3 +Coalesced down to 16 phi equivalence classes +Culled Empty Block (label) anim::@25 +Culled Empty Block (label) anim::@26 Culled Empty Block (label) mulf8s_prepared::@8 Culled Empty Block (label) mulf8s_prepared::@7 Culled Empty Block (label) init::@4 @@ -1175,8 +1379,6 @@ Adding NOP phi() at start of @begin Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of anim -Adding NOP phi() at start of anim::@13 -Adding NOP phi() at start of anim::@14 Adding NOP phi() at start of init Adding NOP phi() at start of mulf_init Adding NOP phi() at start of mulf_init::@12 @@ -1219,188 +1421,204 @@ main::@return: scope:[main] from main::@1 anim: scope:[anim] from main::@1 [10] phi() [ ] ( main:3::anim:8 [ ] ) to:anim::@1 -anim::@1: scope:[anim] from anim anim::@20 - [11] (byte) anim::angle#12 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@20/(byte) anim::angle#1 ) [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) +anim::@1: scope:[anim] from anim anim::@15 + [11] (byte) anim::angle#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@15/(byte) anim::angle#1 ) [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) + [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) to:anim::@6 anim::@6: scope:[anim] from anim::@4 - [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) + [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) + to:anim::@7 +anim::@7: scope:[anim] from anim::@6 anim::@8 + [14] (byte) anim::sprite_msb#10 ← phi( anim::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(byte) anim::sprite_msb#5 ) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 ] ) + [14] (byte) anim::i#10 ← phi( anim::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(byte) anim::i#1 ) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 ] ) + [15] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ) + [16] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) to:anim::mulf8s_prepare1 -anim::mulf8s_prepare1: scope:[anim] from anim::@6 - [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) - [15] call mulf8u_prepare [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - to:anim::@13 -anim::@13: scope:[anim] from anim::mulf8s_prepare1 - [16] phi() [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - [17] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 ] ) - [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) - to:anim::@16 -anim::@16: scope:[anim] from anim::@13 - [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) - [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) - [21] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ) - [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) +anim::mulf8s_prepare1: scope:[anim] from anim::@7 + [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) + [18] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) to:anim::@17 -anim::@17: scope:[anim] from anim::@16 - [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) - [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - to:anim::mulf8s_prepare2 -anim::mulf8s_prepare2: scope:[anim] from anim::@17 - [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) - [26] call mulf8u_prepare [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - to:anim::@14 -anim::@14: scope:[anim] from anim::mulf8s_prepare2 - [27] phi() [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - [28] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) - [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) - to:anim::@19 -anim::@19: scope:[anim] from anim::@14 - [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) - [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) - [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) - [33] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) - [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) +anim::@17: scope:[anim] from anim::mulf8s_prepare1 + [19] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ) + [20] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ) + [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) to:anim::@20 -anim::@20: scope:[anim] from anim::@19 - [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) - [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) - [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) - [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) - [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) - [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) - [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) - [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) - [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) - [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] ) - [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] ) - [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) - [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) - [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) +anim::@20: scope:[anim] from anim::@17 + [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) + [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) + [24] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ) + [25] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ) + [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) + to:anim::@21 +anim::@21: scope:[anim] from anim::@20 + [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) + [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + to:anim::mulf8s_prepare2 +anim::mulf8s_prepare2: scope:[anim] from anim::@21 + [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) + [30] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + to:anim::@18 +anim::@18: scope:[anim] from anim::mulf8s_prepare2 + [31] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ) + [32] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) + [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) + to:anim::@23 +anim::@23: scope:[anim] from anim::@18 + [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) + [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) + [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) + [37] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ) + [38] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) + [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) + to:anim::@24 +anim::@24: scope:[anim] from anim::@23 + [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) + [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) + [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) + [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) + [44] (signed byte~) anim::$16 ← (signed byte)(byte~) anim::$13 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ) + [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) + [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) + [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) + [48] if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) + to:anim::@14 +anim::@14: scope:[anim] from anim::@24 + [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) + to:anim::@8 +anim::@8: scope:[anim] from anim::@14 anim::@24 + [50] (byte) anim::sprite_msb#5 ← phi( anim::@14/(byte) anim::sprite_msb#2 anim::@24/(byte) anim::sprite_msb#1 ) [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::yr#1 anim::xpos#0 ] ) + [51] (byte~) anim::$23 ← > (signed word) anim::yr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ) + [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) + [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) + [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) + [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ) + [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) + [57] (byte) anim::i#1 ← ++ (byte) anim::i#10 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) + [58] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) + to:anim::@15 +anim::@15: scope:[anim] from anim::@8 + [59] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) + [60] (byte) anim::angle#1 ← ++ (byte) anim::angle#10 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) + [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) to:anim::@1 -mulf8s_prepared: scope:[mulf8s_prepared] from anim::@13 anim::@14 anim::@16 anim::@19 - [50] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@13/(const signed byte) anim::x#0 anim::@14/(const signed byte) anim::y#0 anim::@16/(const signed byte) anim::y#0 anim::@19/(const signed byte) anim::x#0 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) - [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) - [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) +mulf8s_prepared: scope:[mulf8s_prepared] from anim::@17 anim::@18 anim::@20 anim::@23 + [62] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@17/(signed byte) mulf8s_prepared::b#0 anim::@18/(signed byte) mulf8s_prepared::b#2 anim::@20/(signed byte) mulf8s_prepared::b#1 anim::@23/(signed byte) mulf8s_prepared::b#3 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) + [63] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) to:mulf8s_prepared::@6 mulf8s_prepared::@6: scope:[mulf8s_prepared] from mulf8s_prepared - [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) - [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) to:mulf8s_prepared::@3 mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@6 - [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) - [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) - [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) + [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) + [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) + [69] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) to:mulf8s_prepared::@1 mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@6 - [58] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ) - [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) + [70] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ) + [71] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) to:mulf8s_prepared::@4 mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1 - [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) - [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) - [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) + [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) + [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) + [74] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) to:mulf8s_prepared::@2 mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4 - [63] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + [75] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) to:mulf8s_prepared::@return mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2 - [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + [76] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) to:@return mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared - [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) + [77] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } - [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) to:mulf8u_prepared::@return mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared - [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + [80] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) to:@return mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2 - [69] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] ) - [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + [81] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] ) + [82] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } to:mulf8u_prepare::@return mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare - [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + [84] return [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) to:@return init: scope:[init] from main - [73] phi() [ ] ( main:3::init:6 [ ] ) - [74] call mulf_init [ ] ( main:3::init:6 [ ] ) + [85] phi() [ ] ( main:3::init:6 [ ] ) + [86] call mulf_init [ ] ( main:3::init:6 [ ] ) to:init::@3 init::@3: scope:[init] from init - [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) + [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) to:init::@1 init::@1: scope:[init] from init::@1 init::@3 - [76] (byte) init::spr_x#2 ← phi( init::@1/(byte) init::spr_x#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 60 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [76] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) - [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) - [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) - [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) - [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) + [88] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) + [91] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) + [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) to:init::@return init::@return: scope:[init] from init::@1 - [85] return [ ] ( main:3::init:6 [ ] ) + [93] return [ ] ( main:3::init:6 [ ] ) to:@return mulf_init: scope:[mulf_init] from init - [86] phi() [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [94] phi() [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 - [87] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [87] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) - [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) - [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) - [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) + [95] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [95] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) + [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) + [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) + [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) to:mulf_init::@5 mulf_init::@5: scope:[mulf_init] from mulf_init::@1 - [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) - [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) + [99] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) + [100] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) to:mulf_init::@2 mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 - [93] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [93] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) - [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) - [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) - [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) - [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) - [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [101] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [101] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) + [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) + [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) + [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) + [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [102] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [102] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) - [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) - [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) - [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [110] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) + [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) + [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) to:mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 - [108] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) - [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) - [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [116] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) + [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [111] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) - [112] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) + [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 - [113] return [ ] ( main:3::init:6::mulf_init:74 [ ] ) + [121] return [ ] ( main:3::init:6::mulf_init:86 [ ] ) to:@return mulf_init::@12: scope:[mulf_init] from mulf_init::@3 - [114] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) + [122] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) to:mulf_init::@4 @@ -1408,6 +1626,7 @@ VARIABLE REGISTER WEIGHTS (byte*) BORDERCOL (byte*) COS (byte) GREEN +(byte) LIGHT_BLUE (byte*) RASTER (byte*) SCREEN (byte*) SIN @@ -1418,47 +1637,54 @@ VARIABLE REGISTER WEIGHTS (byte*) SPRITES_XPOS (byte*) SPRITES_YPOS (void()) anim() -(signed word~) anim::$10 22.0 -(signed word~) anim::$11 22.0 -(signed word~) anim::$12 22.0 -(signed word~) anim::$13 22.0 -(byte~) anim::$14 11.0 -(signed byte~) anim::$17 22.0 -(byte~) anim::$19 22.0 -(byte~) anim::$20 22.0 -(byte~) anim::$22 22.0 -(signed word~) anim::$4 22.0 -(signed word~) anim::$6 22.0 +(signed word~) anim::$10 202.0 +(signed word~) anim::$11 202.0 +(signed word~) anim::$12 202.0 +(byte~) anim::$13 101.0 +(signed byte~) anim::$16 202.0 +(byte~) anim::$19 202.0 +(byte~) anim::$23 202.0 +(byte~) anim::$26 202.0 +(signed word~) anim::$4 202.0 +(signed word~) anim::$6 202.0 +(signed word~) anim::$9 202.0 (byte) anim::angle (byte) anim::angle#1 11.0 -(byte) anim::angle#12 0.5945945945945946 +(byte) anim::angle#10 0.4489795918367347 (signed byte) anim::cos_a +(byte) anim::i +(byte) anim::i#1 151.5 +(byte) anim::i#10 11.74418604651163 +(byte) anim::i2 +(byte) anim::i2#0 101.0 (byte~) anim::mulf8s_prepare1_$0 (signed byte) anim::mulf8s_prepare1_a (byte~) anim::mulf8s_prepare2_$0 (signed byte) anim::mulf8s_prepare2_a (signed byte) anim::sin_a +(byte) anim::sprite_msb +(byte) anim::sprite_msb#1 101.0 +(byte) anim::sprite_msb#10 6.3125 +(byte) anim::sprite_msb#2 202.0 +(byte) anim::sprite_msb#5 34.888888888888886 (signed byte) anim::x +(signed byte) anim::x#0 13.772727272727273 (signed word) anim::xpos -(signed word) anim::xpos#0 11.0 +(signed word) anim::xpos#0 33.666666666666664 (signed word) anim::xr -(signed word) anim::xr#0 1.8333333333333333 -(signed word) anim::xr#1 3.6666666666666665 +(signed word) anim::xr#0 15.538461538461538 +(signed word) anim::xr#1 28.857142857142858 (signed byte) anim::y +(signed byte) anim::y#0 20.2 (byte) anim::ypos -(byte) anim::ypos#0 22.0 +(byte) anim::ypos#0 50.5 (signed word) anim::yr -(signed word) anim::yr#0 1.6923076923076923 -(signed word) anim::yr#1 2.75 +(signed word) anim::yr#0 14.428571428571429 +(signed word) anim::yr#1 22.444444444444443 (void()) init() (byte) init::i (byte) init::i#1 16.5 -(byte) init::i#2 7.857142857142857 -(byte) init::i2 -(byte) init::i2#0 11.0 -(byte) init::spr_x -(byte) init::spr_x#1 7.333333333333333 -(byte) init::spr_x#2 7.333333333333333 +(byte) init::i#2 14.666666666666666 (byte*) init::sprites_ptr (void()) main() (signed word()) mulf8s_prepared((signed byte) mulf8s_prepared::b) @@ -1467,7 +1693,11 @@ VARIABLE REGISTER WEIGHTS (byte~) mulf8s_prepared::$16 4.0 (byte~) mulf8s_prepared::$5 4.0 (signed byte) mulf8s_prepared::b -(signed byte) mulf8s_prepared::b#4 0.15384615384615385 +(signed byte) mulf8s_prepared::b#0 202.0 +(signed byte) mulf8s_prepared::b#1 202.0 +(signed byte) mulf8s_prepared::b#2 202.0 +(signed byte) mulf8s_prepared::b#3 202.0 +(signed byte) mulf8s_prepared::b#4 31.23076923076923 (word) mulf8s_prepared::m (word) mulf8s_prepared::m#0 2.0 (word) mulf8s_prepared::m#1 4.0 @@ -1476,15 +1706,15 @@ VARIABLE REGISTER WEIGHTS (word) mulf8s_prepared::m#5 2.5 (signed byte*) mulf8s_prepared::memA (signed word) mulf8s_prepared::return -(signed word) mulf8s_prepared::return#10 22.0 -(signed word) mulf8s_prepared::return#2 22.0 -(signed word) mulf8s_prepared::return#3 22.0 -(signed word) mulf8s_prepared::return#4 22.0 +(signed word) mulf8s_prepared::return#10 202.0 +(signed word) mulf8s_prepared::return#2 202.0 +(signed word) mulf8s_prepared::return#3 202.0 +(signed word) mulf8s_prepared::return#4 202.0 (void()) mulf8u_prepare((byte) mulf8u_prepare::a) (byte) mulf8u_prepare::a -(byte) mulf8u_prepare::a#2 24.0 -(byte~) mulf8u_prepare::a#3 22.0 -(byte~) mulf8u_prepare::a#4 22.0 +(byte) mulf8u_prepare::a#2 204.0 +(byte~) mulf8u_prepare::a#3 202.0 +(byte~) mulf8u_prepare::a#4 202.0 (byte*) mulf8u_prepare::memA (word()) mulf8u_prepared((byte) mulf8u_prepared::b) (byte) mulf8u_prepared::b @@ -1531,14 +1761,17 @@ VARIABLE REGISTER WEIGHTS (byte[512]) mulf_sqr1_lo (byte[512]) mulf_sqr2_hi (byte[512]) mulf_sqr2_lo +(signed byte[8]) xs +(signed byte[8]) ys Initial phi equivalence classes -[ anim::angle#12 anim::angle#1 ] -[ mulf8s_prepared::b#4 ] +[ anim::angle#10 anim::angle#1 ] +[ anim::i#10 anim::i#1 ] +[ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +[ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] [ init::i#2 init::i#1 ] -[ init::spr_x#2 init::spr_x#1 ] [ mulf_init::c#2 mulf_init::c#1 ] [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] @@ -1548,6 +1781,8 @@ Initial phi equivalence classes [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] [ mulf_init::dir#2 mulf_init::dir#3 ] +Added variable anim::x#0 to zero page equivalence class [ anim::x#0 ] +Added variable anim::y#0 to zero page equivalence class [ anim::y#0 ] Added variable mulf8s_prepared::return#2 to zero page equivalence class [ mulf8s_prepared::return#2 ] Added variable anim::$4 to zero page equivalence class [ anim::$4 ] Added variable anim::xr#0 to zero page equivalence class [ anim::xr#0 ] @@ -1555,37 +1790,38 @@ Added variable mulf8s_prepared::return#3 to zero page equivalence class [ mulf8s Added variable anim::$6 to zero page equivalence class [ anim::$6 ] Added variable anim::yr#0 to zero page equivalence class [ anim::yr#0 ] Added variable mulf8s_prepared::return#4 to zero page equivalence class [ mulf8s_prepared::return#4 ] +Added variable anim::$9 to zero page equivalence class [ anim::$9 ] Added variable anim::$10 to zero page equivalence class [ anim::$10 ] -Added variable anim::$11 to zero page equivalence class [ anim::$11 ] Added variable anim::xr#1 to zero page equivalence class [ anim::xr#1 ] Added variable mulf8s_prepared::return#10 to zero page equivalence class [ mulf8s_prepared::return#10 ] +Added variable anim::$11 to zero page equivalence class [ anim::$11 ] Added variable anim::$12 to zero page equivalence class [ anim::$12 ] -Added variable anim::$13 to zero page equivalence class [ anim::$13 ] Added variable anim::yr#1 to zero page equivalence class [ anim::yr#1 ] -Added variable anim::$14 to zero page equivalence class [ anim::$14 ] -Added variable anim::$17 to zero page equivalence class [ anim::$17 ] +Added variable anim::$13 to zero page equivalence class [ anim::$13 ] +Added variable anim::$16 to zero page equivalence class [ anim::$16 ] Added variable anim::xpos#0 to zero page equivalence class [ anim::xpos#0 ] Added variable anim::$19 to zero page equivalence class [ anim::$19 ] -Added variable anim::$20 to zero page equivalence class [ anim::$20 ] -Added variable anim::$22 to zero page equivalence class [ anim::$22 ] +Added variable anim::$23 to zero page equivalence class [ anim::$23 ] Added variable anim::ypos#0 to zero page equivalence class [ anim::ypos#0 ] +Added variable anim::i2#0 to zero page equivalence class [ anim::i2#0 ] +Added variable anim::$26 to zero page equivalence class [ anim::$26 ] Added variable mulf8u_prepared::return#2 to zero page equivalence class [ mulf8u_prepared::return#2 ] Added variable mulf8s_prepared::$5 to zero page equivalence class [ mulf8s_prepared::$5 ] Added variable mulf8s_prepared::$15 to zero page equivalence class [ mulf8s_prepared::$15 ] Added variable mulf8s_prepared::$11 to zero page equivalence class [ mulf8s_prepared::$11 ] Added variable mulf8s_prepared::$16 to zero page equivalence class [ mulf8s_prepared::$16 ] Added variable mulf8u_prepared::return#0 to zero page equivalence class [ mulf8u_prepared::return#0 ] -Added variable init::i2#0 to zero page equivalence class [ init::i2#0 ] Added variable mulf_init::$2 to zero page equivalence class [ mulf_init::$2 ] Added variable mulf_init::$5 to zero page equivalence class [ mulf_init::$5 ] Added variable mulf_init::$6 to zero page equivalence class [ mulf_init::$6 ] Complete equivalence classes -[ anim::angle#12 anim::angle#1 ] -[ mulf8s_prepared::b#4 ] +[ anim::angle#10 anim::angle#1 ] +[ anim::i#10 anim::i#1 ] +[ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +[ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] [ init::i#2 init::i#1 ] -[ init::spr_x#2 init::spr_x#1 ] [ mulf_init::c#2 mulf_init::c#1 ] [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] @@ -1595,6 +1831,8 @@ Complete equivalence classes [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] [ mulf_init::dir#2 mulf_init::dir#3 ] +[ anim::x#0 ] +[ anim::y#0 ] [ mulf8s_prepared::return#2 ] [ anim::$4 ] [ anim::xr#0 ] @@ -1602,76 +1840,79 @@ Complete equivalence classes [ anim::$6 ] [ anim::yr#0 ] [ mulf8s_prepared::return#4 ] +[ anim::$9 ] [ anim::$10 ] -[ anim::$11 ] [ anim::xr#1 ] [ mulf8s_prepared::return#10 ] +[ anim::$11 ] [ anim::$12 ] -[ anim::$13 ] [ anim::yr#1 ] -[ anim::$14 ] -[ anim::$17 ] +[ anim::$13 ] +[ anim::$16 ] [ anim::xpos#0 ] [ anim::$19 ] -[ anim::$20 ] -[ anim::$22 ] +[ anim::$23 ] [ anim::ypos#0 ] +[ anim::i2#0 ] +[ anim::$26 ] [ mulf8u_prepared::return#2 ] [ mulf8s_prepared::$5 ] [ mulf8s_prepared::$15 ] [ mulf8s_prepared::$11 ] [ mulf8s_prepared::$16 ] [ mulf8u_prepared::return#0 ] -[ init::i2#0 ] [ mulf_init::$2 ] [ mulf_init::$5 ] [ mulf_init::$6 ] -Allocated zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] -Allocated zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Allocated zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] -Allocated zp ZP_BYTE:6 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -Allocated zp ZP_BYTE:7 [ init::i#2 init::i#1 ] -Allocated zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] -Allocated zp ZP_BYTE:9 [ mulf_init::c#2 mulf_init::c#1 ] -Allocated zp ZP_WORD:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] -Allocated zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] -Allocated zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Allocated zp ZP_WORD:15 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] -Allocated zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Allocated zp ZP_WORD:18 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] -Allocated zp ZP_WORD:20 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] -Allocated zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] -Allocated zp ZP_WORD:23 [ mulf8s_prepared::return#2 ] -Allocated zp ZP_WORD:25 [ anim::$4 ] -Allocated zp ZP_WORD:27 [ anim::xr#0 ] -Allocated zp ZP_WORD:29 [ mulf8s_prepared::return#3 ] -Allocated zp ZP_WORD:31 [ anim::$6 ] -Allocated zp ZP_WORD:33 [ anim::yr#0 ] -Allocated zp ZP_WORD:35 [ mulf8s_prepared::return#4 ] -Allocated zp ZP_WORD:37 [ anim::$10 ] -Allocated zp ZP_WORD:39 [ anim::$11 ] -Allocated zp ZP_WORD:41 [ anim::xr#1 ] -Allocated zp ZP_WORD:43 [ mulf8s_prepared::return#10 ] -Allocated zp ZP_WORD:45 [ anim::$12 ] -Allocated zp ZP_WORD:47 [ anim::$13 ] -Allocated zp ZP_WORD:49 [ anim::yr#1 ] -Allocated zp ZP_BYTE:51 [ anim::$14 ] -Allocated zp ZP_BYTE:52 [ anim::$17 ] -Allocated zp ZP_WORD:53 [ anim::xpos#0 ] -Allocated zp ZP_BYTE:55 [ anim::$19 ] -Allocated zp ZP_BYTE:56 [ anim::$20 ] -Allocated zp ZP_BYTE:57 [ anim::$22 ] -Allocated zp ZP_BYTE:58 [ anim::ypos#0 ] -Allocated zp ZP_WORD:59 [ mulf8u_prepared::return#2 ] -Allocated zp ZP_BYTE:61 [ mulf8s_prepared::$5 ] -Allocated zp ZP_BYTE:62 [ mulf8s_prepared::$15 ] -Allocated zp ZP_BYTE:63 [ mulf8s_prepared::$11 ] -Allocated zp ZP_BYTE:64 [ mulf8s_prepared::$16 ] -Allocated zp ZP_WORD:65 [ mulf8u_prepared::return#0 ] -Allocated zp ZP_BYTE:67 [ init::i2#0 ] -Allocated zp ZP_BYTE:68 [ mulf_init::$2 ] -Allocated zp ZP_BYTE:69 [ mulf_init::$5 ] -Allocated zp ZP_BYTE:70 [ mulf_init::$6 ] +Allocated zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Allocated zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Allocated zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Allocated zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +Allocated zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] +Allocated zp ZP_BYTE:8 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] +Allocated zp ZP_BYTE:9 [ init::i#2 init::i#1 ] +Allocated zp ZP_BYTE:10 [ mulf_init::c#2 mulf_init::c#1 ] +Allocated zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] +Allocated zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Allocated zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Allocated zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] +Allocated zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Allocated zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] +Allocated zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] +Allocated zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] +Allocated zp ZP_BYTE:24 [ anim::x#0 ] +Allocated zp ZP_BYTE:25 [ anim::y#0 ] +Allocated zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] +Allocated zp ZP_WORD:28 [ anim::$4 ] +Allocated zp ZP_WORD:30 [ anim::xr#0 ] +Allocated zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] +Allocated zp ZP_WORD:34 [ anim::$6 ] +Allocated zp ZP_WORD:36 [ anim::yr#0 ] +Allocated zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] +Allocated zp ZP_WORD:40 [ anim::$9 ] +Allocated zp ZP_WORD:42 [ anim::$10 ] +Allocated zp ZP_WORD:44 [ anim::xr#1 ] +Allocated zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] +Allocated zp ZP_WORD:48 [ anim::$11 ] +Allocated zp ZP_WORD:50 [ anim::$12 ] +Allocated zp ZP_WORD:52 [ anim::yr#1 ] +Allocated zp ZP_BYTE:54 [ anim::$13 ] +Allocated zp ZP_BYTE:55 [ anim::$16 ] +Allocated zp ZP_WORD:56 [ anim::xpos#0 ] +Allocated zp ZP_BYTE:58 [ anim::$19 ] +Allocated zp ZP_BYTE:59 [ anim::$23 ] +Allocated zp ZP_BYTE:60 [ anim::ypos#0 ] +Allocated zp ZP_BYTE:61 [ anim::i2#0 ] +Allocated zp ZP_BYTE:62 [ anim::$26 ] +Allocated zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] +Allocated zp ZP_BYTE:65 [ mulf8s_prepared::$5 ] +Allocated zp ZP_BYTE:66 [ mulf8s_prepared::$15 ] +Allocated zp ZP_BYTE:67 [ mulf8s_prepared::$11 ] +Allocated zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] +Allocated zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] +Allocated zp ZP_BYTE:71 [ mulf_init::$2 ] +Allocated zp ZP_BYTE:72 [ mulf_init::$5 ] +Allocated zp ZP_BYTE:73 [ mulf_init::$6 ] INITIAL ASM //SEG0 Basic Upstart @@ -1687,6 +1928,7 @@ INITIAL ASM .label BORDERCOL = $d020 .label SPRITES_COLS = $d027 .const GREEN = 5 + .const LIGHT_BLUE = $e .label SCREEN = $400 .label SPRITE = $3000 .label COS = $2000 @@ -1710,7 +1952,7 @@ main: { //SEG10 asm { sei } sei //SEG11 [6] call init [ ] ( main:3 [ ] ) - //SEG12 [73] phi from main to init [phi:main->init] + //SEG12 [85] phi from main to init [phi:main->init] init_from_main: jsr init //SEG13 [7] phi from main to main::@1 [phi:main->main::@1] @@ -1730,29 +1972,32 @@ main: { } //SEG19 anim anim: { - .const x = $59 - .const y = 0 - .label _4 = $19 - .label _6 = $1f - .label _10 = $25 - .label _11 = $27 - .label _12 = $2d - .label _13 = $2f - .label _14 = $33 - .label _17 = $34 - .label _19 = $37 - .label _20 = $38 - .label _22 = $39 - .label xr = $1b - .label yr = $21 - .label xr_1 = $29 - .label yr_1 = $31 - .label xpos = $35 - .label ypos = $3a + .label _4 = $1c + .label _6 = $22 + .label _9 = $28 + .label _10 = $2a + .label _11 = $30 + .label _12 = $32 + .label _13 = $36 + .label _16 = $37 + .label _19 = $3a + .label _23 = $3b + .label _26 = $3e + .label x = $18 + .label y = $19 + .label xr = $1e + .label yr = $24 + .label xr_1 = $2c + .label yr_1 = $34 + .label xpos = $38 + .label sprite_msb = 4 + .label ypos = $3c + .label i2 = $3d + .label i = 3 .label angle = 2 //SEG20 [11] phi from anim to anim::@1 [phi:anim->anim::@1] b1_from_anim: - //SEG21 [11] phi (byte) anim::angle#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuz1=vbuc1 + //SEG21 [11] phi (byte) anim::angle#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuz1=vbuc1 lda #0 sta angle jmp b1 @@ -1761,80 +2006,104 @@ anim: { jmp b4 //SEG23 anim::@4 b4: - //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 //SEG25 anim::@6 b6: - //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL + //SEG27 [14] phi from anim::@6 to anim::@7 [phi:anim::@6->anim::@7] + b7_from_b6: + //SEG28 [14] phi (byte) anim::sprite_msb#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#0] -- vbuz1=vbuc1 + lda #0 + sta sprite_msb + //SEG29 [14] phi (byte) anim::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#1] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b7 + //SEG30 [14] phi from anim::@8 to anim::@7 [phi:anim::@8->anim::@7] + b7_from_b8: + //SEG31 [14] phi (byte) anim::sprite_msb#10 = (byte) anim::sprite_msb#5 [phi:anim::@8->anim::@7#0] -- register_copy + //SEG32 [14] phi (byte) anim::i#10 = (byte) anim::i#1 [phi:anim::@8->anim::@7#1] -- register_copy + jmp b7 + //SEG33 anim::@7 + b7: + //SEG34 [15] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y + sta x + //SEG35 [16] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda ys,y + sta y jmp mulf8s_prepare1 - //SEG27 anim::mulf8s_prepare1 + //SEG36 anim::mulf8s_prepare1 mulf8s_prepare1: - //SEG28 [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) -- vbuz1=pbsc1_derefidx_vbuz2 + //SEG37 [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) -- vbuz1=pbsc1_derefidx_vbuz2 ldy angle lda COS,y sta mulf8u_prepare.a - //SEG29 [15] call mulf8u_prepare [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - //SEG30 [69] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] + //SEG38 [18] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) + //SEG39 [81] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] mulf8u_prepare_from_mulf8s_prepare1: - //SEG31 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy + //SEG40 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG32 [16] phi from anim::mulf8s_prepare1 to anim::@13 [phi:anim::mulf8s_prepare1->anim::@13] - b13_from_mulf8s_prepare1: - jmp b13 - //SEG33 anim::@13 - b13: - //SEG34 [17] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 ] ) - //SEG35 [50] phi from anim::@13 to mulf8s_prepared [phi:anim::@13->mulf8s_prepared] - mulf8s_prepared_from_b13: - //SEG36 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@13->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x + jmp b17 + //SEG41 anim::@17 + b17: + //SEG42 [19] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ) -- vbsz1=vbsz2 + lda x sta mulf8s_prepared.b + //SEG43 [20] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ) + //SEG44 [62] phi from anim::@17 to mulf8s_prepared [phi:anim::@17->mulf8s_prepared] + mulf8s_prepared_from_b17: + //SEG45 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#0 [phi:anim::@17->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG37 [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) -- vwsz1=vwsz2 + //SEG46 [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.m sta mulf8s_prepared.return lda mulf8s_prepared.m+1 sta mulf8s_prepared.return+1 - jmp b16 - //SEG38 anim::@16 - b16: - //SEG39 [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) -- vwsz1=vwsz2 + jmp b20 + //SEG47 anim::@20 + b20: + //SEG48 [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return sta _4 lda mulf8s_prepared.return+1 sta _4+1 - //SEG40 [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) -- vwsz1=vwsz2_rol_1 + //SEG49 [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) -- vwsz1=vwsz2_rol_1 lda _4 asl sta xr lda _4+1 rol sta xr+1 - //SEG41 [21] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ) - //SEG42 [50] phi from anim::@16 to mulf8s_prepared [phi:anim::@16->mulf8s_prepared] - mulf8s_prepared_from_b16: - //SEG43 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@16->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y + //SEG50 [24] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ) -- vbsz1=vbsz2 + lda y sta mulf8s_prepared.b + //SEG51 [25] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ) + //SEG52 [62] phi from anim::@20 to mulf8s_prepared [phi:anim::@20->mulf8s_prepared] + mulf8s_prepared_from_b20: + //SEG53 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#1 [phi:anim::@20->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG44 [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) -- vwsz1=vwsz2 + //SEG54 [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.m sta mulf8s_prepared.return_3 lda mulf8s_prepared.m+1 sta mulf8s_prepared.return_3+1 - jmp b17 - //SEG45 anim::@17 - b17: - //SEG46 [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 + jmp b21 + //SEG55 anim::@21 + b21: + //SEG56 [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return_3 sta _6 lda mulf8s_prepared.return_3+1 sta _6+1 - //SEG47 [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz2_rol_1 + //SEG57 [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz2_rol_1 lda _6 asl sta yr @@ -1842,100 +2111,100 @@ anim: { rol sta yr+1 jmp mulf8s_prepare2 - //SEG48 anim::mulf8s_prepare2 + //SEG58 anim::mulf8s_prepare2 mulf8s_prepare2: - //SEG49 [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuz1=pbsc1_derefidx_vbuz2 + //SEG59 [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuz1=pbsc1_derefidx_vbuz2 ldy angle lda SIN,y sta mulf8u_prepare.a - //SEG50 [26] call mulf8u_prepare [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - //SEG51 [69] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] + //SEG60 [30] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + //SEG61 [81] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] mulf8u_prepare_from_mulf8s_prepare2: - //SEG52 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy + //SEG62 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG53 [27] phi from anim::mulf8s_prepare2 to anim::@14 [phi:anim::mulf8s_prepare2->anim::@14] - b14_from_mulf8s_prepare2: - jmp b14 - //SEG54 anim::@14 - b14: - //SEG55 [28] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) - //SEG56 [50] phi from anim::@14 to mulf8s_prepared [phi:anim::@14->mulf8s_prepared] - mulf8s_prepared_from_b14: - //SEG57 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@14->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y + jmp b18 + //SEG63 anim::@18 + b18: + //SEG64 [31] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ) -- vbsz1=vbsz2 + lda y sta mulf8s_prepared.b + //SEG65 [32] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) + //SEG66 [62] phi from anim::@18 to mulf8s_prepared [phi:anim::@18->mulf8s_prepared] + mulf8s_prepared_from_b18: + //SEG67 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#2 [phi:anim::@18->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG58 [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) -- vwsz1=vwsz2 + //SEG68 [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.m sta mulf8s_prepared.return_4 lda mulf8s_prepared.m+1 sta mulf8s_prepared.return_4+1 - jmp b19 - //SEG59 anim::@19 - b19: - //SEG60 [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) -- vwsz1=vwsz2 + jmp b23 + //SEG69 anim::@23 + b23: + //SEG70 [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return_4 - sta _10 + sta _9 lda mulf8s_prepared.return_4+1 - sta _10+1 - //SEG61 [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) -- vwsz1=vwsz2_rol_1 - lda _10 + sta _9+1 + //SEG71 [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) -- vwsz1=vwsz2_rol_1 + lda _9 asl - sta _11 - lda _10+1 + sta _10 + lda _9+1 rol - sta _11+1 - //SEG62 [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz2_minus_vwsz3 + sta _10+1 + //SEG72 [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz2_minus_vwsz3 lda xr sec - sbc _11 + sbc _10 sta xr_1 lda xr+1 - sbc _11+1 + sbc _10+1 sta xr_1+1 - //SEG63 [33] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) - //SEG64 [50] phi from anim::@19 to mulf8s_prepared [phi:anim::@19->mulf8s_prepared] - mulf8s_prepared_from_b19: - //SEG65 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@19->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x + //SEG73 [37] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ) -- vbsz1=vbsz2 + lda x sta mulf8s_prepared.b + //SEG74 [38] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) + //SEG75 [62] phi from anim::@23 to mulf8s_prepared [phi:anim::@23->mulf8s_prepared] + mulf8s_prepared_from_b23: + //SEG76 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#3 [phi:anim::@23->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG66 [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) -- vwsz1=vwsz2 + //SEG77 [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.m sta mulf8s_prepared.return_10 lda mulf8s_prepared.m+1 sta mulf8s_prepared.return_10+1 - jmp b20 - //SEG67 anim::@20 - b20: - //SEG68 [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) -- vwsz1=vwsz2 + jmp b24 + //SEG78 anim::@24 + b24: + //SEG79 [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return_10 - sta _12 + sta _11 lda mulf8s_prepared.return_10+1 - sta _12+1 - //SEG69 [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) -- vwsz1=vwsz2_rol_1 - lda _12 + sta _11+1 + //SEG80 [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) -- vwsz1=vwsz2_rol_1 + lda _11 asl - sta _13 - lda _12+1 + sta _12 + lda _11+1 rol - sta _13+1 - //SEG70 [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz2_plus_vwsz3 + sta _12+1 + //SEG81 [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz2_plus_vwsz3 lda yr_1 clc adc yr - sta _13 + sta _12 lda yr_1+1 adc yr+1 - sta _13+1 - //SEG71 [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) -- vbuz1=_hi_vwsz2 + sta _12+1 + //SEG82 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) -- vbuz1=_hi_vwsz2 lda xr_1+1 - sta _14 - //SEG72 [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) -- vbsz1=vbsz2 - lda _14 - sta _17 - //SEG73 [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsz2_plus_vbuc1 - lda _17 + sta _13 + //SEG83 [44] (signed byte~) anim::$16 ← (signed byte)(byte~) anim::$13 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ) -- vbsz1=vbsz2 + lda _13 + sta _16 + //SEG84 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsz2_plus_vbuc1 + lda _16 sta xpos ora #$7f bmi !+ @@ -1949,132 +2218,167 @@ anim: { lda xpos+1 adc #0 sta xpos+1 - //SEG74 [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) -- vbuz1=_lo_vwsz2 - lda xpos - sta _19 - //SEG75 [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- _deref_pbuc1=vbuz1 - lda _19 - sta SPRITES_XPOS - //SEG76 [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) -- vbuz1=_hi_vwsz2 + //SEG85 [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuz1=vbuz1_ror_1 + lsr sprite_msb + //SEG86 [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) -- vbuz1=_hi_vwsz2 lda xpos+1 - sta _20 - //SEG77 [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] ) -- _deref_pbuc1=vbuz1 - lda _20 - sta SPRITES_XMSB - //SEG78 [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] ) -- vbuz1=_hi_vwsz2 + sta _19 + //SEG87 [48] if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuz1_eq_0_then_la1 + lda _19 + beq b8_from_b24 + jmp b14 + //SEG88 anim::@14 + b14: + //SEG89 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #$80 + ora sprite_msb + sta sprite_msb + //SEG90 [50] phi from anim::@14 anim::@24 to anim::@8 [phi:anim::@14/anim::@24->anim::@8] + b8_from_b14: + b8_from_b24: + //SEG91 [50] phi (byte) anim::sprite_msb#5 = (byte) anim::sprite_msb#2 [phi:anim::@14/anim::@24->anim::@8#0] -- register_copy + jmp b8 + //SEG92 anim::@8 + b8: + //SEG93 [51] (byte~) anim::$23 ← > (signed word) anim::yr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ) -- vbuz1=_hi_vwsz2 lda yr_1+1 - sta _22 - //SEG79 [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) -- vbuz1=vbuz2_plus_vbuc1 + sta _23 + //SEG94 [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) -- vbuz1=vbuz2_plus_vbuc1 lda #$59+$33 clc - adc _22 + adc _23 sta ypos - //SEG80 [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=vbuz1 + //SEG95 [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) -- vbuz1=vbuz2_rol_1 + lda i + asl + sta i2 + //SEG96 [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) -- vbuz1=_lo_vwsz2 + lda xpos + sta _26 + //SEG97 [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _26 + ldy i2 + sta SPRITES_XPOS,y + //SEG98 [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda ypos - sta SPRITES_YPOS - //SEG81 [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuz1=_inc_vbuz1 + ldy i2 + sta SPRITES_YPOS,y + //SEG99 [57] (byte) anim::i#1 ← ++ (byte) anim::i#10 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG100 [58] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b7_from_b8 + jmp b15 + //SEG101 anim::@15 + b15: + //SEG102 [59] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=vbuz1 + lda sprite_msb + sta SPRITES_XMSB + //SEG103 [60] (byte) anim::angle#1 ← ++ (byte) anim::angle#10 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuz1=_inc_vbuz1 inc angle - //SEG82 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG83 [11] phi from anim::@20 to anim::@1 [phi:anim::@20->anim::@1] - b1_from_b20: - //SEG84 [11] phi (byte) anim::angle#12 = (byte) anim::angle#1 [phi:anim::@20->anim::@1#0] -- register_copy + //SEG104 [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=vbuc2 + lda #LIGHT_BLUE + sta BORDERCOL + //SEG105 [11] phi from anim::@15 to anim::@1 [phi:anim::@15->anim::@1] + b1_from_b15: + //SEG106 [11] phi (byte) anim::angle#10 = (byte) anim::angle#1 [phi:anim::@15->anim::@1#0] -- register_copy jmp b1 } -//SEG85 mulf8s_prepared +//SEG107 mulf8s_prepared mulf8s_prepared: { .label memA = $fd - .label _5 = $3d - .label _11 = $3f - .label _15 = $3e - .label _16 = $40 - .label m = 4 - .label return = $17 - .label return_3 = $1d - .label return_4 = $23 - .label b = 3 - .label return_10 = $2b - //SEG86 [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + .label _5 = $41 + .label _11 = $43 + .label _15 = $42 + .label _16 = $44 + .label m = 6 + .label b = 5 + .label return = $1a + .label return_3 = $20 + .label return_4 = $26 + .label return_10 = $2e + //SEG108 [63] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) jsr mulf8u_prepared - //SEG87 [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) -- vwuz1=vwuz2 + //SEG109 [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) -- vwuz1=vwuz2 lda mulf8u_prepared.return sta mulf8u_prepared.return_2 lda mulf8u_prepared.return+1 sta mulf8u_prepared.return_2+1 jmp b6 - //SEG88 mulf8s_prepared::@6 + //SEG110 mulf8s_prepared::@6 b6: - //SEG89 [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- vwuz1=vwuz2 + //SEG111 [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- vwuz1=vwuz2 lda mulf8u_prepared.return_2 sta m lda mulf8u_prepared.return_2+1 sta m+1 - //SEG90 [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 + //SEG112 [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 lda memA cmp #0 bpl b1_from_b6 jmp b3 - //SEG91 mulf8s_prepared::@3 + //SEG113 mulf8s_prepared::@3 b3: - //SEG92 [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuz1=_hi_vwuz2 + //SEG114 [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuz1=_hi_vwuz2 lda m+1 sta _5 - //SEG93 [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuz1=vbuz2_minus_vbuz3 + //SEG115 [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuz1=vbuz2_minus_vbuz3 lda _5 sec sbc b sta _15 - //SEG94 [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuz2 + //SEG116 [69] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuz2 lda _15 sta m+1 - //SEG95 [58] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] + //SEG117 [70] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] b1_from_b3: b1_from_b6: - //SEG96 [58] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy + //SEG118 [70] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy jmp b1 - //SEG97 mulf8s_prepared::@1 + //SEG119 mulf8s_prepared::@1 b1: - //SEG98 [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsz1_ge_0_then_la1 + //SEG120 [71] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsz1_ge_0_then_la1 lda b cmp #0 bpl b2_from_b1 jmp b4 - //SEG99 mulf8s_prepared::@4 + //SEG121 mulf8s_prepared::@4 b4: - //SEG100 [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuz1=_hi_vwuz2 + //SEG122 [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuz1=_hi_vwuz2 lda m+1 sta _11 - //SEG101 [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuz1=vbuz2_minus__deref_pbuc1 + //SEG123 [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuz1=vbuz2_minus__deref_pbuc1 lda _11 sec sbc memA sta _16 - //SEG102 [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuz2 + //SEG124 [74] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuz2 lda _16 sta m+1 - //SEG103 [63] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] + //SEG125 [75] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] b2_from_b1: b2_from_b4: - //SEG104 [63] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy + //SEG126 [75] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy jmp b2 - //SEG105 mulf8s_prepared::@2 + //SEG127 mulf8s_prepared::@2 b2: jmp breturn - //SEG106 mulf8s_prepared::@return + //SEG128 mulf8s_prepared::@return breturn: - //SEG107 [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + //SEG129 [76] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) rts } -//SEG108 mulf8u_prepared +//SEG130 mulf8u_prepared mulf8u_prepared: { .label resL = $fe .label memB = $ff - .label return = $41 - .label return_2 = $3b - //SEG109 [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuz1 + .label return = $45 + .label return_2 = $3f + //SEG131 [77] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuz1 lda mulf8s_prepared.b sta memB - //SEG110 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } + //SEG132 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } ldx memB sec sm1: @@ -2087,25 +2391,25 @@ mulf8u_prepared: { sm4: sbc mulf_sqr2_hi,x sta memB - //SEG111 [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG133 [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda resL sta return lda memB sta return+1 jmp breturn - //SEG112 mulf8u_prepared::@return + //SEG134 mulf8u_prepared::@return breturn: - //SEG113 [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + //SEG135 [80] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) rts } -//SEG114 mulf8u_prepare +//SEG136 mulf8u_prepare mulf8u_prepare: { .label memA = $fd - .label a = 6 - //SEG115 [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuz1 + .label a = 8 + //SEG137 [82] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuz1 lda a sta memA - //SEG116 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } + //SEG138 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } lda memA sta mulf8u_prepared.sm1+1 sta mulf8u_prepared.sm3+1 @@ -2113,175 +2417,152 @@ mulf8u_prepare: { sta mulf8u_prepared.sm2+1 sta mulf8u_prepared.sm4+1 jmp breturn - //SEG117 mulf8u_prepare::@return + //SEG139 mulf8u_prepare::@return breturn: - //SEG118 [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + //SEG140 [84] return [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) rts } -//SEG119 init +//SEG141 init init: { .label sprites_ptr = SCREEN+$3f8 - .label i2 = $43 - .label spr_x = 8 - .label i = 7 - //SEG120 [74] call mulf_init [ ] ( main:3::init:6 [ ] ) - //SEG121 [86] phi from init to mulf_init [phi:init->mulf_init] + .label i = 9 + //SEG142 [86] call mulf_init [ ] ( main:3::init:6 [ ] ) + //SEG143 [94] phi from init to mulf_init [phi:init->mulf_init] mulf_init_from_init: jsr mulf_init jmp b3 - //SEG122 init::@3 + //SEG144 init::@3 b3: - //SEG123 [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG145 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE - //SEG124 [76] phi from init::@3 to init::@1 [phi:init::@3->init::@1] + //SEG146 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] b1_from_b3: - //SEG125 [76] phi (byte) init::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:init::@3->init::@1#0] -- vbuz1=vbuc1 - lda #$3c - sta spr_x - //SEG126 [76] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#1] -- vbuz1=vbuc1 + //SEG147 [88] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#0] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG127 [76] phi from init::@1 to init::@1 [phi:init::@1->init::@1] + //SEG148 [88] phi from init::@1 to init::@1 [phi:init::@1->init::@1] b1_from_b1: - //SEG128 [76] phi (byte) init::spr_x#2 = (byte) init::spr_x#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG129 [76] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy + //SEG149 [88] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#0] -- register_copy jmp b1 - //SEG130 init::@1 + //SEG150 init::@1 b1: - //SEG131 [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- vbuz1=vbuz2_rol_1 - lda i - asl - sta i2 - //SEG132 [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG151 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$ff&SPRITE/$40 sta sprites_ptr,y - //SEG133 [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda spr_x - ldy i2 - sta SPRITES_XPOS,y - //SEG134 [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda spr_x - ldy i2 - sta SPRITES_YPOS,y - //SEG135 [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG152 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #GREEN sta SPRITES_COLS,y - //SEG136 [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 - lda #$18 - clc - adc spr_x - sta spr_x - //SEG137 [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG153 [91] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG138 [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG154 [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #8 bne b1_from_b1 jmp breturn - //SEG139 init::@return + //SEG155 init::@return breturn: - //SEG140 [85] return [ ] ( main:3::init:6 [ ] ) + //SEG156 [93] return [ ] ( main:3::init:6 [ ] ) rts } -//SEG141 mulf_init +//SEG157 mulf_init mulf_init: { - .label _2 = $44 - .label _5 = $45 - .label _6 = $46 - .label c = 9 - .label sqr1_hi = $c - .label sqr = $f - .label sqr1_lo = $a - .label x_2 = $e - .label sqr2_hi = $14 - .label x_255 = $11 - .label sqr2_lo = $12 - .label dir = $16 - //SEG142 [87] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + .label _2 = $47 + .label _5 = $48 + .label _6 = $49 + .label c = $a + .label sqr1_hi = $d + .label sqr = $10 + .label sqr1_lo = $b + .label x_2 = $f + .label sqr2_hi = $15 + .label x_255 = $12 + .label sqr2_lo = $13 + .label dir = $17 + //SEG158 [95] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] b1_from_mulf_init: - //SEG143 [87] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 + //SEG159 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG144 [87] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG160 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG145 [87] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG161 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 sta sqr1_lo+1 - //SEG146 [87] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 + //SEG162 [95] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 lda #<0 sta sqr lda #>0 sta sqr+1 - //SEG147 [87] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuz1=vbuc1 + //SEG163 [95] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuz1=vbuc1 lda #0 sta c jmp b1 - //SEG148 [87] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] + //SEG164 [95] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] b1_from_b2: - //SEG149 [87] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy - //SEG150 [87] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy - //SEG151 [87] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy - //SEG152 [87] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy - //SEG153 [87] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy + //SEG165 [95] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy + //SEG166 [95] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy + //SEG167 [95] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy + //SEG168 [95] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy + //SEG169 [95] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy jmp b1 - //SEG154 mulf_init::@1 + //SEG170 mulf_init::@1 b1: - //SEG155 [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG171 [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuz1=_inc_vbuz1 inc c - //SEG156 [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 + //SEG172 [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 lda #1 and c sta _2 - //SEG157 [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuz1_neq_0_then_la1 + //SEG173 [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuz1_neq_0_then_la1 lda _2 bne b2_from_b1 jmp b5 - //SEG158 mulf_init::@5 + //SEG174 mulf_init::@5 b5: - //SEG159 [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG175 [99] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 inc x_2 - //SEG160 [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG176 [100] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 inc sqr bne !+ inc sqr+1 !: - //SEG161 [93] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] + //SEG177 [101] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] b2_from_b1: b2_from_b5: - //SEG162 [93] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy - //SEG163 [93] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy + //SEG178 [101] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy + //SEG179 [101] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy jmp b2 - //SEG164 mulf_init::@2 + //SEG180 mulf_init::@2 b2: - //SEG165 [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuz1=_lo_vwuz2 + //SEG181 [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuz1=_lo_vwuz2 lda sqr sta _5 - //SEG166 [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuz2 + //SEG182 [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuz2 lda _5 ldy #0 sta (sqr1_lo),y - //SEG167 [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuz1=_hi_vwuz2 + //SEG183 [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuz1=_hi_vwuz2 lda sqr+1 sta _6 - //SEG168 [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuz2 + //SEG184 [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuz2 lda _6 ldy #0 sta (sqr1_hi),y - //SEG169 [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG185 [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_hi bne !+ inc sqr1_hi+1 !: - //SEG170 [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 + //SEG186 [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 lda x_2 clc adc sqr @@ -2289,83 +2570,83 @@ mulf_init: { lda #0 adc sqr+1 sta sqr+1 - //SEG171 [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 + //SEG187 [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_lo bne !+ inc sqr1_lo+1 !: - //SEG172 [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG188 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 lda sqr1_lo cmp #mulf_init::@3] + //SEG189 [110] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG174 [102] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG190 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG175 [102] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG191 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG176 [102] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG192 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo sta sqr2_lo+1 - //SEG177 [102] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuz1=vbuc1 + //SEG193 [110] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuz1=vbuc1 lda #-1 sta x_255 jmp b3 - //SEG178 [102] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] + //SEG194 [110] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] b3_from_b4: - //SEG179 [102] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy - //SEG180 [102] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy - //SEG181 [102] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy - //SEG182 [102] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy + //SEG195 [110] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy + //SEG196 [110] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy + //SEG197 [110] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy + //SEG198 [110] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy jmp b3 - //SEG183 mulf_init::@3 + //SEG199 mulf_init::@3 b3: - //SEG184 [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG200 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_lo,y ldy #0 sta (sqr2_lo),y - //SEG185 [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG201 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_hi,y ldy #0 sta (sqr2_hi),y - //SEG186 [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG202 [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_hi bne !+ inc sqr2_hi+1 !: - //SEG187 [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuz1=vbuz1_plus_vbuz2 + //SEG203 [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuz1=vbuz1_plus_vbuz2 lda x_255 clc adc dir sta x_255 - //SEG188 [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuz1_neq_0_then_la1 + //SEG204 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuz1_neq_0_then_la1 lda x_255 bne b12_from_b3 - //SEG189 [108] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] + //SEG205 [116] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: - //SEG190 [108] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 + //SEG206 [116] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 lda #1 sta dir jmp b4 - //SEG191 mulf_init::@4 + //SEG207 mulf_init::@4 b4: - //SEG192 [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG208 [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_lo bne !+ inc sqr2_lo+1 !: - //SEG193 [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG209 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -2373,27 +2654,27 @@ mulf_init: { cmp #mulf_init::@12] + //SEG215 [122] phi from mulf_init::@3 to mulf_init::@12 [phi:mulf_init::@3->mulf_init::@12] b12_from_b3: jmp b12 - //SEG200 mulf_init::@12 + //SEG216 mulf_init::@12 b12: - //SEG201 [108] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] + //SEG217 [116] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] b4_from_b12: - //SEG202 [108] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy + //SEG218 [116] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy jmp b4 } .align $100 @@ -2404,6 +2685,8 @@ mulf_init: { mulf_sqr2_lo: .fill $200, 0 .align $100 mulf_sqr2_hi: .fill $200, 0 + xs: .byte -$46, -$46, -$46, 0, 0, $46, $46, $46 + ys: .byte -$46, 0, $46, -$46, $46, -$46, 0, $46 .pc = COS "Inline" { .var min = -$7fff @@ -2423,237 +2706,258 @@ mulf_init: { REGISTER UPLIFT POTENTIAL REGISTERS -Equivalence Class zp ZP_BYTE:57 [ anim::$22 ] has ALU potential. -Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] -Statement [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) always clobbers reg byte a -Statement [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) always clobbers reg byte a -Statement [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) always clobbers reg byte a -Statement [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) always clobbers reg byte a -Statement [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) always clobbers reg byte a -Statement [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) always clobbers reg byte a -Statement [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) always clobbers reg byte a -Statement [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) always clobbers reg byte a -Statement [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) always clobbers reg byte a -Statement [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) always clobbers reg byte a -Statement [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) always clobbers reg byte a -Statement [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) always clobbers reg byte a -Statement [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) always clobbers reg byte a -Statement [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a -Statement [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) always clobbers reg byte a -Statement [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a -Statement [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) always clobbers reg byte a -Statement [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a -Statement [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) always clobbers reg byte a -Statement [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) always clobbers reg byte a -Statement [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) always clobbers reg byte a -Statement [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Statement [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a -Statement [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a -Statement [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) always clobbers reg byte a -Statement [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) always clobbers reg byte a -Statement [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) always clobbers reg byte a -Statement [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) always clobbers reg byte a +Equivalence Class zp ZP_BYTE:59 [ anim::$23 ] has ALU potential. +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Statement [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ anim::x#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ anim::y#0 ] +Statement [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) always clobbers reg byte a +Statement [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) always clobbers reg byte a +Statement [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) always clobbers reg byte a +Statement [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) always clobbers reg byte a +Statement [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) always clobbers reg byte a +Statement [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) always clobbers reg byte a +Statement [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) always clobbers reg byte a +Statement [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) always clobbers reg byte a +Statement [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) always clobbers reg byte a +Statement [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) always clobbers reg byte a +Statement [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) always clobbers reg byte a +Statement [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) always clobbers reg byte a +Statement [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) always clobbers reg byte a +Statement [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a +Statement [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a +Statement [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) always clobbers reg byte a +Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a +Statement [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) always clobbers reg byte a +Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a +Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a +Statement [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ anim::ypos#0 ] +Statement [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ anim::i2#0 ] +Statement [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) always clobbers reg byte a +Statement [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) always clobbers reg byte a +Statement [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +Statement [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a +Statement [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a +Statement [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) always clobbers reg byte a +Statement [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) always clobbers reg byte a +Statement [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) always clobbers reg byte a +Statement [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) always clobbers reg byte a Statement asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } always clobbers reg byte a reg byte x -Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] -Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Statement [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:24 [ anim::x#0 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:25 [ anim::y#0 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +Statement [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } always clobbers reg byte a -Statement [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a -Statement [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ init::i#2 init::i#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] -Statement [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ init::i2#0 ] -Statement [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Statement [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) always clobbers reg byte a -Statement [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) always clobbers reg byte a -Statement [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) always clobbers reg byte a -Statement [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ mulf_init::c#2 mulf_init::c#1 ] -Statement [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a -Statement [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:9 [ mulf_init::c#2 mulf_init::c#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Statement [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a -Statement [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y -Statement [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] -Statement [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [111] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) always clobbers reg byte a -Statement [112] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) always clobbers reg byte a -Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) always clobbers reg byte a -Statement [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) always clobbers reg byte a -Statement [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) always clobbers reg byte a -Statement [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) always clobbers reg byte a -Statement [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) always clobbers reg byte a -Statement [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) always clobbers reg byte a -Statement [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) always clobbers reg byte a -Statement [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) always clobbers reg byte a -Statement [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) always clobbers reg byte a -Statement [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) always clobbers reg byte a -Statement [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) always clobbers reg byte a -Statement [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) always clobbers reg byte a -Statement [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) always clobbers reg byte a -Statement [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) always clobbers reg byte a -Statement [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a -Statement [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) always clobbers reg byte a -Statement [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a -Statement [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) always clobbers reg byte a -Statement [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a -Statement [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) always clobbers reg byte a -Statement [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) always clobbers reg byte a -Statement [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) always clobbers reg byte a -Statement [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) always clobbers reg byte a -Statement [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a -Statement [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a -Statement [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) always clobbers reg byte a -Statement [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) always clobbers reg byte a -Statement [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) always clobbers reg byte a -Statement [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) always clobbers reg byte a +Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a +Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ init::i#2 init::i#1 ] +Statement [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Statement [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ mulf_init::c#2 mulf_init::c#1 ] +Statement [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a +Statement [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ mulf_init::c#2 mulf_init::c#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Statement [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a +Statement [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y +Statement [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] +Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a +Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a +Statement [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) always clobbers reg byte a +Statement [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) always clobbers reg byte a +Statement [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) always clobbers reg byte a +Statement [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) always clobbers reg byte a +Statement [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) always clobbers reg byte a +Statement [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) always clobbers reg byte a +Statement [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) always clobbers reg byte a +Statement [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) always clobbers reg byte a +Statement [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) always clobbers reg byte a +Statement [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) always clobbers reg byte a +Statement [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) always clobbers reg byte a +Statement [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) always clobbers reg byte a +Statement [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) always clobbers reg byte a +Statement [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) always clobbers reg byte a +Statement [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a +Statement [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a +Statement [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) always clobbers reg byte a +Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a +Statement [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) always clobbers reg byte a +Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a +Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a +Statement [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) always clobbers reg byte a +Statement [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) always clobbers reg byte a +Statement [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) always clobbers reg byte a +Statement [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) always clobbers reg byte a +Statement [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) always clobbers reg byte a +Statement [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a +Statement [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) always clobbers reg byte a +Statement [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) always clobbers reg byte a +Statement [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) always clobbers reg byte a +Statement [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) always clobbers reg byte a +Statement [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) always clobbers reg byte a Statement asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } always clobbers reg byte a reg byte x -Statement [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a +Statement [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } always clobbers reg byte a -Statement [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a -Statement [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Statement [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Statement [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) always clobbers reg byte a -Statement [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) always clobbers reg byte a -Statement [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) always clobbers reg byte a -Statement [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) always clobbers reg byte a -Statement [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a -Statement [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a -Statement [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y -Statement [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a -Statement [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y -Statement [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [111] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) always clobbers reg byte a -Statement [112] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] ) always clobbers reg byte a -Potential registers zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] : zp ZP_BYTE:2 , reg byte y , -Potential registers zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] : zp ZP_BYTE:3 , reg byte y , -Potential registers zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] : zp ZP_WORD:4 , -Potential registers zp ZP_BYTE:6 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:7 [ init::i#2 init::i#1 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:9 [ mulf_init::c#2 mulf_init::c#1 ] : zp ZP_BYTE:9 , reg byte x , -Potential registers zp ZP_WORD:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] : zp ZP_WORD:10 , -Potential registers zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] : zp ZP_WORD:12 , -Potential registers zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] : zp ZP_BYTE:14 , reg byte x , -Potential registers zp ZP_WORD:15 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] : zp ZP_WORD:15 , -Potential registers zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] : zp ZP_BYTE:17 , reg byte x , -Potential registers zp ZP_WORD:18 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] : zp ZP_WORD:18 , -Potential registers zp ZP_WORD:20 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] : zp ZP_WORD:20 , -Potential registers zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] : zp ZP_BYTE:22 , reg byte x , -Potential registers zp ZP_WORD:23 [ mulf8s_prepared::return#2 ] : zp ZP_WORD:23 , -Potential registers zp ZP_WORD:25 [ anim::$4 ] : zp ZP_WORD:25 , -Potential registers zp ZP_WORD:27 [ anim::xr#0 ] : zp ZP_WORD:27 , -Potential registers zp ZP_WORD:29 [ mulf8s_prepared::return#3 ] : zp ZP_WORD:29 , -Potential registers zp ZP_WORD:31 [ anim::$6 ] : zp ZP_WORD:31 , -Potential registers zp ZP_WORD:33 [ anim::yr#0 ] : zp ZP_WORD:33 , -Potential registers zp ZP_WORD:35 [ mulf8s_prepared::return#4 ] : zp ZP_WORD:35 , -Potential registers zp ZP_WORD:37 [ anim::$10 ] : zp ZP_WORD:37 , -Potential registers zp ZP_WORD:39 [ anim::$11 ] : zp ZP_WORD:39 , -Potential registers zp ZP_WORD:41 [ anim::xr#1 ] : zp ZP_WORD:41 , -Potential registers zp ZP_WORD:43 [ mulf8s_prepared::return#10 ] : zp ZP_WORD:43 , -Potential registers zp ZP_WORD:45 [ anim::$12 ] : zp ZP_WORD:45 , -Potential registers zp ZP_WORD:47 [ anim::$13 ] : zp ZP_WORD:47 , -Potential registers zp ZP_WORD:49 [ anim::yr#1 ] : zp ZP_WORD:49 , -Potential registers zp ZP_BYTE:51 [ anim::$14 ] : zp ZP_BYTE:51 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:52 [ anim::$17 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:53 [ anim::xpos#0 ] : zp ZP_WORD:53 , -Potential registers zp ZP_BYTE:55 [ anim::$19 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:56 [ anim::$20 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:57 [ anim::$22 ] : zp ZP_BYTE:57 , reg byte a , reg byte x , reg byte y , reg byte alu , -Potential registers zp ZP_BYTE:58 [ anim::ypos#0 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:59 [ mulf8u_prepared::return#2 ] : zp ZP_WORD:59 , -Potential registers zp ZP_BYTE:61 [ mulf8s_prepared::$5 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:62 [ mulf8s_prepared::$15 ] : zp ZP_BYTE:62 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:63 [ mulf8s_prepared::$11 ] : zp ZP_BYTE:63 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:64 [ mulf8s_prepared::$16 ] : zp ZP_BYTE:64 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:65 [ mulf8u_prepared::return#0 ] : zp ZP_WORD:65 , -Potential registers zp ZP_BYTE:67 [ init::i2#0 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:68 [ mulf_init::$2 ] : zp ZP_BYTE:68 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:69 [ mulf_init::$5 ] : zp ZP_BYTE:69 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:70 [ mulf_init::$6 ] : zp ZP_BYTE:70 , reg byte a , reg byte x , reg byte y , +Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a +Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Statement [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Statement [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a +Statement [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a +Statement [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y +Statement [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a +Statement [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y +Statement [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a +Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Potential registers zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] : zp ZP_BYTE:2 , reg byte y , +Potential registers zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] : zp ZP_BYTE:3 , reg byte y , +Potential registers zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] : zp ZP_BYTE:4 , reg byte y , +Potential registers zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] : zp ZP_BYTE:5 , reg byte y , +Potential registers zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] : zp ZP_WORD:6 , +Potential registers zp ZP_BYTE:8 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] : zp ZP_BYTE:8 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:9 [ init::i#2 init::i#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:10 [ mulf_init::c#2 mulf_init::c#1 ] : zp ZP_BYTE:10 , reg byte x , +Potential registers zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] : zp ZP_WORD:11 , +Potential registers zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] : zp ZP_WORD:13 , +Potential registers zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] : zp ZP_BYTE:15 , reg byte x , +Potential registers zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] : zp ZP_WORD:16 , +Potential registers zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] : zp ZP_BYTE:18 , reg byte x , +Potential registers zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] : zp ZP_WORD:19 , +Potential registers zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] : zp ZP_WORD:21 , +Potential registers zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] : zp ZP_BYTE:23 , reg byte x , +Potential registers zp ZP_BYTE:24 [ anim::x#0 ] : zp ZP_BYTE:24 , reg byte y , +Potential registers zp ZP_BYTE:25 [ anim::y#0 ] : zp ZP_BYTE:25 , reg byte y , +Potential registers zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] : zp ZP_WORD:26 , +Potential registers zp ZP_WORD:28 [ anim::$4 ] : zp ZP_WORD:28 , +Potential registers zp ZP_WORD:30 [ anim::xr#0 ] : zp ZP_WORD:30 , +Potential registers zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] : zp ZP_WORD:32 , +Potential registers zp ZP_WORD:34 [ anim::$6 ] : zp ZP_WORD:34 , +Potential registers zp ZP_WORD:36 [ anim::yr#0 ] : zp ZP_WORD:36 , +Potential registers zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] : zp ZP_WORD:38 , +Potential registers zp ZP_WORD:40 [ anim::$9 ] : zp ZP_WORD:40 , +Potential registers zp ZP_WORD:42 [ anim::$10 ] : zp ZP_WORD:42 , +Potential registers zp ZP_WORD:44 [ anim::xr#1 ] : zp ZP_WORD:44 , +Potential registers zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] : zp ZP_WORD:46 , +Potential registers zp ZP_WORD:48 [ anim::$11 ] : zp ZP_WORD:48 , +Potential registers zp ZP_WORD:50 [ anim::$12 ] : zp ZP_WORD:50 , +Potential registers zp ZP_WORD:52 [ anim::yr#1 ] : zp ZP_WORD:52 , +Potential registers zp ZP_BYTE:54 [ anim::$13 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:55 [ anim::$16 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:56 [ anim::xpos#0 ] : zp ZP_WORD:56 , +Potential registers zp ZP_BYTE:58 [ anim::$19 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:59 [ anim::$23 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , reg byte alu , +Potential registers zp ZP_BYTE:60 [ anim::ypos#0 ] : zp ZP_BYTE:60 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:61 [ anim::i2#0 ] : zp ZP_BYTE:61 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:62 [ anim::$26 ] : zp ZP_BYTE:62 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] : zp ZP_WORD:63 , +Potential registers zp ZP_BYTE:65 [ mulf8s_prepared::$5 ] : zp ZP_BYTE:65 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:66 [ mulf8s_prepared::$15 ] : zp ZP_BYTE:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:67 [ mulf8s_prepared::$11 ] : zp ZP_BYTE:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] : zp ZP_BYTE:68 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] : zp ZP_WORD:69 , +Potential registers zp ZP_BYTE:71 [ mulf_init::$2 ] : zp ZP_BYTE:71 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:72 [ mulf_init::$5 ] : zp ZP_BYTE:72 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:73 [ mulf_init::$6 ] : zp ZP_BYTE:73 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [anim] 22: zp ZP_WORD:25 [ anim::$4 ] 22: zp ZP_WORD:31 [ anim::$6 ] 22: zp ZP_WORD:37 [ anim::$10 ] 22: zp ZP_WORD:39 [ anim::$11 ] 22: zp ZP_WORD:45 [ anim::$12 ] 22: zp ZP_WORD:47 [ anim::$13 ] 22: zp ZP_BYTE:52 [ anim::$17 ] 22: zp ZP_BYTE:55 [ anim::$19 ] 22: zp ZP_BYTE:56 [ anim::$20 ] 22: zp ZP_BYTE:57 [ anim::$22 ] 22: zp ZP_BYTE:58 [ anim::ypos#0 ] 11.59: zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] 11: zp ZP_BYTE:51 [ anim::$14 ] 11: zp ZP_WORD:53 [ anim::xpos#0 ] 3.67: zp ZP_WORD:41 [ anim::xr#1 ] 2.75: zp ZP_WORD:49 [ anim::yr#1 ] 1.83: zp ZP_WORD:27 [ anim::xr#0 ] 1.69: zp ZP_WORD:33 [ anim::yr#0 ] -Uplift Scope [mulf_init] 45.1: zp ZP_WORD:15 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] 24.36: zp ZP_BYTE:9 [ mulf_init::c#2 mulf_init::c#1 ] 24.14: zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] 22: zp ZP_BYTE:68 [ mulf_init::$2 ] 22: zp ZP_BYTE:69 [ mulf_init::$5 ] 22: zp ZP_BYTE:70 [ mulf_init::$6 ] 20.62: zp ZP_WORD:18 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] 19.04: zp ZP_WORD:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] 16.5: zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] 14.14: zp ZP_WORD:20 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] 12.05: zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] 8.5: zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] -Uplift Scope [mulf8s_prepared] 22: zp ZP_WORD:23 [ mulf8s_prepared::return#2 ] 22: zp ZP_WORD:29 [ mulf8s_prepared::return#3 ] 22: zp ZP_WORD:35 [ mulf8s_prepared::return#4 ] 22: zp ZP_WORD:43 [ mulf8s_prepared::return#10 ] 13.17: zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] 4: zp ZP_BYTE:61 [ mulf8s_prepared::$5 ] 4: zp ZP_BYTE:62 [ mulf8s_prepared::$15 ] 4: zp ZP_BYTE:63 [ mulf8s_prepared::$11 ] 4: zp ZP_BYTE:64 [ mulf8s_prepared::$16 ] 0.15: zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Uplift Scope [mulf8u_prepare] 68: zp ZP_BYTE:6 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -Uplift Scope [init] 24.36: zp ZP_BYTE:7 [ init::i#2 init::i#1 ] 14.67: zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] 11: zp ZP_BYTE:67 [ init::i2#0 ] -Uplift Scope [mulf8u_prepared] 4: zp ZP_WORD:59 [ mulf8u_prepared::return#2 ] 1.33: zp ZP_WORD:65 [ mulf8u_prepared::return#0 ] +Uplift Scope [anim] 344.2: zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] 202: zp ZP_WORD:28 [ anim::$4 ] 202: zp ZP_WORD:34 [ anim::$6 ] 202: zp ZP_WORD:40 [ anim::$9 ] 202: zp ZP_WORD:42 [ anim::$10 ] 202: zp ZP_WORD:48 [ anim::$11 ] 202: zp ZP_WORD:50 [ anim::$12 ] 202: zp ZP_BYTE:55 [ anim::$16 ] 202: zp ZP_BYTE:58 [ anim::$19 ] 202: zp ZP_BYTE:59 [ anim::$23 ] 202: zp ZP_BYTE:62 [ anim::$26 ] 163.24: zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] 101: zp ZP_BYTE:54 [ anim::$13 ] 101: zp ZP_BYTE:61 [ anim::i2#0 ] 50.5: zp ZP_BYTE:60 [ anim::ypos#0 ] 33.67: zp ZP_WORD:56 [ anim::xpos#0 ] 28.86: zp ZP_WORD:44 [ anim::xr#1 ] 22.44: zp ZP_WORD:52 [ anim::yr#1 ] 20.2: zp ZP_BYTE:25 [ anim::y#0 ] 15.54: zp ZP_WORD:30 [ anim::xr#0 ] 14.43: zp ZP_WORD:36 [ anim::yr#0 ] 13.77: zp ZP_BYTE:24 [ anim::x#0 ] 11.45: zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Uplift Scope [mulf8s_prepared] 839.23: zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] 202: zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] 202: zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] 202: zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] 202: zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] 13.17: zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] 4: zp ZP_BYTE:65 [ mulf8s_prepared::$5 ] 4: zp ZP_BYTE:66 [ mulf8s_prepared::$15 ] 4: zp ZP_BYTE:67 [ mulf8s_prepared::$11 ] 4: zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] +Uplift Scope [mulf8u_prepare] 608: zp ZP_BYTE:8 [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] +Uplift Scope [mulf_init] 45.1: zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] 24.36: zp ZP_BYTE:10 [ mulf_init::c#2 mulf_init::c#1 ] 24.14: zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] 22: zp ZP_BYTE:71 [ mulf_init::$2 ] 22: zp ZP_BYTE:72 [ mulf_init::$5 ] 22: zp ZP_BYTE:73 [ mulf_init::$6 ] 20.62: zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] 19.04: zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] 16.5: zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] 14.14: zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] 12.05: zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] 8.5: zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Uplift Scope [init] 31.17: zp ZP_BYTE:9 [ init::i#2 init::i#1 ] +Uplift Scope [mulf8u_prepared] 4: zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] 1.33: zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] Uplift Scope [main] Uplift Scope [] -Uplifting [anim] best 14275 combination zp ZP_WORD:25 [ anim::$4 ] zp ZP_WORD:31 [ anim::$6 ] zp ZP_WORD:37 [ anim::$10 ] zp ZP_WORD:39 [ anim::$11 ] zp ZP_WORD:45 [ anim::$12 ] zp ZP_WORD:47 [ anim::$13 ] reg byte a [ anim::$17 ] reg byte a [ anim::$19 ] reg byte a [ anim::$20 ] reg byte a [ anim::$22 ] zp ZP_BYTE:58 [ anim::ypos#0 ] zp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] zp ZP_BYTE:51 [ anim::$14 ] zp ZP_WORD:53 [ anim::xpos#0 ] zp ZP_WORD:41 [ anim::xr#1 ] zp ZP_WORD:49 [ anim::yr#1 ] zp ZP_WORD:27 [ anim::xr#0 ] zp ZP_WORD:33 [ anim::yr#0 ] -Limited combination testing to 100 combinations of 10240 possible. -Uplifting [mulf_init] best 14045 combination zp ZP_WORD:15 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:18 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:20 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] -Limited combination testing to 100 combinations of 1024 possible. -Uplifting [mulf8s_prepared] best 14021 combination zp ZP_WORD:23 [ mulf8s_prepared::return#2 ] zp ZP_WORD:29 [ mulf8s_prepared::return#3 ] zp ZP_WORD:35 [ mulf8s_prepared::return#4 ] zp ZP_WORD:43 [ mulf8s_prepared::return#10 ] zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] +Uplifting [anim] best 53476 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] zp ZP_WORD:28 [ anim::$4 ] zp ZP_WORD:34 [ anim::$6 ] zp ZP_WORD:40 [ anim::$9 ] zp ZP_WORD:42 [ anim::$10 ] zp ZP_WORD:48 [ anim::$11 ] zp ZP_WORD:50 [ anim::$12 ] reg byte a [ anim::$16 ] reg byte a [ anim::$19 ] reg byte a [ anim::$23 ] zp ZP_BYTE:62 [ anim::$26 ] zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] zp ZP_BYTE:54 [ anim::$13 ] zp ZP_BYTE:61 [ anim::i2#0 ] zp ZP_BYTE:60 [ anim::ypos#0 ] zp ZP_WORD:56 [ anim::xpos#0 ] zp ZP_WORD:44 [ anim::xr#1 ] zp ZP_WORD:52 [ anim::yr#1 ] zp ZP_BYTE:25 [ anim::y#0 ] zp ZP_WORD:30 [ anim::xr#0 ] zp ZP_WORD:36 [ anim::yr#0 ] zp ZP_BYTE:24 [ anim::x#0 ] zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Limited combination testing to 100 combinations of 368640 possible. +Uplifting [mulf8s_prepared] best 52255 combination reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] Limited combination testing to 100 combinations of 512 possible. -Uplifting [mulf8u_prepare] best 13958 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -Uplifting [init] best 13728 combination reg byte y [ init::i#2 init::i#1 ] zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] reg byte x [ init::i2#0 ] -Uplifting [mulf8u_prepared] best 13728 combination zp ZP_WORD:59 [ mulf8u_prepared::return#2 ] zp ZP_WORD:65 [ mulf8u_prepared::return#0 ] -Uplifting [main] best 13728 combination -Uplifting [] best 13728 combination -Attempting to uplift remaining variables inzp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Uplifting [mulf_init] best 13728 combination zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:58 [ anim::ypos#0 ] -Uplifting [anim] best 13668 combination reg byte a [ anim::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:17 [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Uplifting [mulf_init] best 13548 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] -Uplifting [init] best 13548 combination zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] -Uplifting [mulf_init] best 13548 combination zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:2 [ anim::angle#12 anim::angle#1 ] -Uplifting [anim] best 13428 combination reg byte y [ anim::angle#12 anim::angle#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:51 [ anim::$14 ] -Uplifting [anim] best 13368 combination reg byte a [ anim::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Uplifting [mulf8s_prepared] best 13368 combination zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] ] with [ zp ZP_WORD:23 [ mulf8s_prepared::return#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 ] ] with [ zp ZP_WORD:29 [ mulf8s_prepared::return#3 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 ] ] with [ zp ZP_WORD:35 [ mulf8s_prepared::return#4 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 ] ] with [ zp ZP_WORD:43 [ mulf8s_prepared::return#10 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 ] ] with [ zp ZP_WORD:59 [ mulf8u_prepared::return#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ anim::$4 ] ] with [ zp ZP_WORD:27 [ anim::xr#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:31 [ anim::$6 ] ] with [ zp ZP_WORD:33 [ anim::yr#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:37 [ anim::$10 ] ] with [ zp ZP_WORD:39 [ anim::$11 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:45 [ anim::$12 ] ] with [ zp ZP_WORD:47 [ anim::$13 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 ] ] with [ zp ZP_WORD:37 [ anim::$10 anim::$11 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 ] ] with [ zp ZP_WORD:45 [ anim::$12 anim::$13 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 ] ] with [ zp ZP_WORD:65 [ mulf8u_prepared::return#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:25 [ anim::$4 anim::xr#0 ] ] with [ zp ZP_WORD:41 [ anim::xr#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:31 [ anim::$6 anim::yr#0 ] ] with [ zp ZP_WORD:49 [ anim::yr#1 ] ] - score: 1 -Coalescing zero page register [ zp ZP_BYTE:3 [ mulf8s_prepared::b#4 ] ] with [ zp ZP_BYTE:8 [ init::spr_x#2 init::spr_x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:3 [ mulf8s_prepared::b#4 init::spr_x#2 init::spr_x#1 ] ] with [ zp ZP_BYTE:14 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:3 [ mulf8s_prepared::b#4 init::spr_x#2 init::spr_x#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] ] with [ zp ZP_BYTE:22 [ mulf_init::dir#2 mulf_init::dir#3 ] ] -Coalescing zero page register [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 ] ] with [ zp ZP_WORD:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ] -Coalescing zero page register [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ] with [ zp ZP_WORD:18 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ] -Coalescing zero page register [ zp ZP_WORD:4 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ] with [ zp ZP_WORD:53 [ anim::xpos#0 ] ] -Coalescing zero page register [ zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] ] with [ zp ZP_WORD:20 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] ] -Coalescing zero page register [ zp ZP_WORD:12 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] ] with [ zp ZP_WORD:25 [ anim::$4 anim::xr#0 anim::xr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:15 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] ] with [ zp ZP_WORD:31 [ anim::$6 anim::yr#0 anim::yr#1 ] ] -Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ mulf8s_prepared::b#4 init::spr_x#2 init::spr_x#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] -Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] -Allocated (was zp ZP_WORD:12) zp ZP_WORD:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] -Allocated (was zp ZP_WORD:15) zp ZP_WORD:7 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] +Uplifting [mulf8u_prepare] best 51652 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] +Uplifting [mulf_init] best 51422 combination zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Limited combination testing to 100 combinations of 1024 possible. +Uplifting [init] best 51272 combination reg byte x [ init::i#2 init::i#1 ] +Uplifting [mulf8u_prepared] best 51272 combination zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] +Uplifting [main] best 51272 combination +Uplifting [] best 51272 combination +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Uplifting [anim] best 51272 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:62 [ anim::$26 ] +Uplifting [anim] best 50672 combination reg byte a [ anim::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Uplifting [anim] best 50672 combination zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ anim::$13 ] +Uplifting [anim] best 50072 combination reg byte a [ anim::$13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:61 [ anim::i2#0 ] +Uplifting [anim] best 49372 combination reg byte x [ anim::i2#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:60 [ anim::ypos#0 ] +Uplifting [anim] best 49172 combination reg byte y [ anim::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Uplifting [mulf_init] best 49172 combination zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:25 [ anim::y#0 ] +Uplifting [anim] best 49172 combination zp ZP_BYTE:25 [ anim::y#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Uplifting [mulf_init] best 49052 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ anim::x#0 ] +Uplifting [anim] best 49052 combination zp ZP_BYTE:24 [ anim::x#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] +Uplifting [mulf_init] best 49052 combination zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Uplifting [anim] best 49052 combination zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:68 [ mulf8s_prepared::$16 ] +Uplifting [mulf8s_prepared] best 49046 combination reg byte a [ mulf8s_prepared::$16 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] ] with [ zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 ] ] with [ zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 ] ] with [ zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 ] ] with [ zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 ] ] with [ zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:28 [ anim::$4 ] ] with [ zp ZP_WORD:30 [ anim::xr#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:34 [ anim::$6 ] ] with [ zp ZP_WORD:36 [ anim::yr#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:40 [ anim::$9 ] ] with [ zp ZP_WORD:42 [ anim::$10 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:48 [ anim::$11 ] ] with [ zp ZP_WORD:50 [ anim::$12 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 ] ] with [ zp ZP_WORD:40 [ anim::$9 anim::$10 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 ] ] with [ zp ZP_WORD:48 [ anim::$11 anim::$12 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 ] ] with [ zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:28 [ anim::$4 anim::xr#0 ] ] with [ zp ZP_WORD:44 [ anim::xr#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:34 [ anim::$6 anim::yr#0 ] ] with [ zp ZP_WORD:52 [ anim::yr#1 ] ] - score: 1 +Coalescing zero page register [ zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] ] with [ zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] ] with [ zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 ] ] with [ zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] ] with [ zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] ] with [ zp ZP_WORD:56 [ anim::xpos#0 ] ] +Coalescing zero page register [ zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] ] with [ zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] ] +Coalescing zero page register [ zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] ] with [ zp ZP_WORD:28 [ anim::$4 anim::xr#0 anim::xr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] ] with [ zp ZP_WORD:34 [ anim::$6 anim::yr#0 anim::yr#1 ] ] +Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] +Allocated (was zp ZP_WORD:13) zp ZP_WORD:7 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] +Allocated (was zp ZP_WORD:16) zp ZP_WORD:9 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] +Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:11 [ anim::x#0 ] +Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:12 [ anim::y#0 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -2669,6 +2973,7 @@ ASSEMBLER BEFORE OPTIMIZATION .label BORDERCOL = $d020 .label SPRITES_COLS = $d027 .const GREEN = 5 + .const LIGHT_BLUE = $e .label SCREEN = $400 .label SPRITE = $3000 .label COS = $2000 @@ -2692,7 +2997,7 @@ main: { //SEG10 asm { sei } sei //SEG11 [6] call init [ ] ( main:3 [ ] ) - //SEG12 [73] phi from main to init [phi:main->init] + //SEG12 [85] phi from main to init [phi:main->init] init_from_main: jsr init //SEG13 [7] phi from main to main::@1 [phi:main->main::@1] @@ -2712,161 +3017,187 @@ main: { } //SEG19 anim anim: { - .const x = $59 - .const y = 0 - .label _4 = 5 - .label _6 = 7 - .label _10 = 3 - .label _11 = 3 - .label _12 = 3 - .label _13 = 3 - .label xr = 5 - .label yr = 7 - .label xpos = 3 + .label _4 = 7 + .label _6 = 9 + .label _9 = 5 + .label _10 = 5 + .label _11 = 5 + .label _12 = 5 + .label x = $b + .label y = $c + .label xr = 7 + .label yr = 9 + .label xpos = 5 + .label sprite_msb = 4 + .label i = 3 + .label angle = 2 //SEG20 [11] phi from anim to anim::@1 [phi:anim->anim::@1] b1_from_anim: - //SEG21 [11] phi (byte) anim::angle#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuyy=vbuc1 - ldy #0 + //SEG21 [11] phi (byte) anim::angle#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuz1=vbuc1 + lda #0 + sta angle jmp b1 //SEG22 anim::@1 b1: jmp b4 //SEG23 anim::@4 b4: - //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 //SEG25 anim::@6 b6: - //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL + //SEG27 [14] phi from anim::@6 to anim::@7 [phi:anim::@6->anim::@7] + b7_from_b6: + //SEG28 [14] phi (byte) anim::sprite_msb#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#0] -- vbuz1=vbuc1 + lda #0 + sta sprite_msb + //SEG29 [14] phi (byte) anim::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#1] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b7 + //SEG30 [14] phi from anim::@8 to anim::@7 [phi:anim::@8->anim::@7] + b7_from_b8: + //SEG31 [14] phi (byte) anim::sprite_msb#10 = (byte) anim::sprite_msb#5 [phi:anim::@8->anim::@7#0] -- register_copy + //SEG32 [14] phi (byte) anim::i#10 = (byte) anim::i#1 [phi:anim::@8->anim::@7#1] -- register_copy + jmp b7 + //SEG33 anim::@7 + b7: + //SEG34 [15] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y + sta x + //SEG35 [16] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda ys,y + sta y jmp mulf8s_prepare1 - //SEG27 anim::mulf8s_prepare1 + //SEG36 anim::mulf8s_prepare1 mulf8s_prepare1: - //SEG28 [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) -- vbuaa=pbsc1_derefidx_vbuyy + //SEG37 [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) -- vbuaa=pbsc1_derefidx_vbuz1 + ldy angle lda COS,y - //SEG29 [15] call mulf8u_prepare [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - //SEG30 [69] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] + //SEG38 [18] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) + //SEG39 [81] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] mulf8u_prepare_from_mulf8s_prepare1: - //SEG31 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy + //SEG40 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG32 [16] phi from anim::mulf8s_prepare1 to anim::@13 [phi:anim::mulf8s_prepare1->anim::@13] - b13_from_mulf8s_prepare1: - jmp b13 - //SEG33 anim::@13 - b13: - //SEG34 [17] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 ] ) - //SEG35 [50] phi from anim::@13 to mulf8s_prepared [phi:anim::@13->mulf8s_prepared] - mulf8s_prepared_from_b13: - //SEG36 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@13->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x - sta mulf8s_prepared.b + jmp b17 + //SEG41 anim::@17 + b17: + //SEG42 [19] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ) -- vbsyy=vbsz1 + ldy x + //SEG43 [20] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ) + //SEG44 [62] phi from anim::@17 to mulf8s_prepared [phi:anim::@17->mulf8s_prepared] + mulf8s_prepared_from_b17: + //SEG45 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#0 [phi:anim::@17->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG37 [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) - // (signed word) mulf8s_prepared::return#2 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - jmp b16 - //SEG38 anim::@16 - b16: - //SEG39 [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) -- vwsz1=vwsz2 + //SEG46 [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) + // (signed word) mulf8s_prepared::return#2 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + jmp b20 + //SEG47 anim::@20 + b20: + //SEG48 [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return sta _4 lda mulf8s_prepared.return+1 sta _4+1 - //SEG40 [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) -- vwsz1=vwsz1_rol_1 + //SEG49 [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) -- vwsz1=vwsz1_rol_1 asl xr rol xr+1 - //SEG41 [21] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ) - //SEG42 [50] phi from anim::@16 to mulf8s_prepared [phi:anim::@16->mulf8s_prepared] - mulf8s_prepared_from_b16: - //SEG43 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@16->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y - sta mulf8s_prepared.b + //SEG50 [24] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ) -- vbsyy=vbsz1 + ldy y + //SEG51 [25] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ) + //SEG52 [62] phi from anim::@20 to mulf8s_prepared [phi:anim::@20->mulf8s_prepared] + mulf8s_prepared_from_b20: + //SEG53 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#1 [phi:anim::@20->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG44 [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) - // (signed word) mulf8s_prepared::return#3 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - jmp b17 - //SEG45 anim::@17 - b17: - //SEG46 [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 + //SEG54 [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) + // (signed word) mulf8s_prepared::return#3 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + jmp b21 + //SEG55 anim::@21 + b21: + //SEG56 [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return sta _6 lda mulf8s_prepared.return+1 sta _6+1 - //SEG47 [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz1_rol_1 + //SEG57 [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz1_rol_1 asl yr rol yr+1 jmp mulf8s_prepare2 - //SEG48 anim::mulf8s_prepare2 + //SEG58 anim::mulf8s_prepare2 mulf8s_prepare2: - //SEG49 [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuaa=pbsc1_derefidx_vbuyy + //SEG59 [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuaa=pbsc1_derefidx_vbuz1 + ldy angle lda SIN,y - //SEG50 [26] call mulf8u_prepare [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - //SEG51 [69] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] + //SEG60 [30] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + //SEG61 [81] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] mulf8u_prepare_from_mulf8s_prepare2: - //SEG52 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy + //SEG62 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG53 [27] phi from anim::mulf8s_prepare2 to anim::@14 [phi:anim::mulf8s_prepare2->anim::@14] - b14_from_mulf8s_prepare2: - jmp b14 - //SEG54 anim::@14 - b14: - //SEG55 [28] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) - //SEG56 [50] phi from anim::@14 to mulf8s_prepared [phi:anim::@14->mulf8s_prepared] - mulf8s_prepared_from_b14: - //SEG57 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@14->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y - sta mulf8s_prepared.b + jmp b18 + //SEG63 anim::@18 + b18: + //SEG64 [31] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ) -- vbsyy=vbsz1 + ldy y + //SEG65 [32] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) + //SEG66 [62] phi from anim::@18 to mulf8s_prepared [phi:anim::@18->mulf8s_prepared] + mulf8s_prepared_from_b18: + //SEG67 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#2 [phi:anim::@18->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG58 [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) - // (signed word) mulf8s_prepared::return#4 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - jmp b19 - //SEG59 anim::@19 - b19: - //SEG60 [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) - // (signed word~) anim::$10 = (signed word) mulf8s_prepared::return#4 // register copy zp ZP_WORD:3 - //SEG61 [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) -- vwsz1=vwsz1_rol_1 - asl _11 - rol _11+1 - //SEG62 [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz1_minus_vwsz2 + //SEG68 [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) + // (signed word) mulf8s_prepared::return#4 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + jmp b23 + //SEG69 anim::@23 + b23: + //SEG70 [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) + // (signed word~) anim::$9 = (signed word) mulf8s_prepared::return#4 // register copy zp ZP_WORD:5 + //SEG71 [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) -- vwsz1=vwsz1_rol_1 + asl _10 + rol _10+1 + //SEG72 [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz1_minus_vwsz2 lda xr sec - sbc _11 + sbc _10 sta xr lda xr+1 - sbc _11+1 + sbc _10+1 sta xr+1 - //SEG63 [33] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) - //SEG64 [50] phi from anim::@19 to mulf8s_prepared [phi:anim::@19->mulf8s_prepared] - mulf8s_prepared_from_b19: - //SEG65 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@19->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x - sta mulf8s_prepared.b + //SEG73 [37] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ) -- vbsyy=vbsz1 + ldy x + //SEG74 [38] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) + //SEG75 [62] phi from anim::@23 to mulf8s_prepared [phi:anim::@23->mulf8s_prepared] + mulf8s_prepared_from_b23: + //SEG76 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#3 [phi:anim::@23->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG66 [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) - // (signed word) mulf8s_prepared::return#10 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - jmp b20 - //SEG67 anim::@20 - b20: - //SEG68 [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) - // (signed word~) anim::$12 = (signed word) mulf8s_prepared::return#10 // register copy zp ZP_WORD:3 - //SEG69 [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) -- vwsz1=vwsz1_rol_1 - asl _13 - rol _13+1 - //SEG70 [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG77 [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) + // (signed word) mulf8s_prepared::return#10 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + jmp b24 + //SEG78 anim::@24 + b24: + //SEG79 [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) + // (signed word~) anim::$11 = (signed word) mulf8s_prepared::return#10 // register copy zp ZP_WORD:5 + //SEG80 [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) -- vwsz1=vwsz1_rol_1 + asl _12 + rol _12+1 + //SEG81 [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda yr clc - adc _13 + adc _12 sta yr lda yr+1 - adc _13+1 + adc _12+1 sta yr+1 - //SEG71 [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) -- vbuaa=_hi_vwsz1 + //SEG82 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) -- vbuaa=_hi_vwsz1 lda xr+1 - //SEG72 [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) - // (signed byte~) anim::$17 = (signed byte)(byte~) anim::$14 // register copy reg byte a - //SEG73 [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsaa_plus_vbuc1 + //SEG83 [44] (signed byte~) anim::$16 ← (signed byte)(byte~) anim::$13 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ) + // (signed byte~) anim::$16 = (signed byte)(byte~) anim::$13 // register copy reg byte a + //SEG84 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsaa_plus_vbuc1 sta xpos ora #$7f bmi !+ @@ -2880,102 +3211,136 @@ anim: { lda xpos+1 adc #0 sta xpos+1 - //SEG74 [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) -- vbuaa=_lo_vwsz1 - lda xpos - //SEG75 [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_XPOS - //SEG76 [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) -- vbuaa=_hi_vwsz1 + //SEG85 [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuz1=vbuz1_ror_1 + lsr sprite_msb + //SEG86 [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) -- vbuaa=_hi_vwsz1 lda xpos+1 - //SEG77 [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_XMSB - //SEG78 [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] ) -- vbuaa=_hi_vwsz1 + //SEG87 [48] if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b8_from_b24 + jmp b14 + //SEG88 anim::@14 + b14: + //SEG89 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #$80 + ora sprite_msb + sta sprite_msb + //SEG90 [50] phi from anim::@14 anim::@24 to anim::@8 [phi:anim::@14/anim::@24->anim::@8] + b8_from_b14: + b8_from_b24: + //SEG91 [50] phi (byte) anim::sprite_msb#5 = (byte) anim::sprite_msb#2 [phi:anim::@14/anim::@24->anim::@8#0] -- register_copy + jmp b8 + //SEG92 anim::@8 + b8: + //SEG93 [51] (byte~) anim::$23 ← > (signed word) anim::yr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ) -- vbuaa=_hi_vwsz1 lda yr+1 - //SEG79 [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) -- vbuaa=vbuaa_plus_vbuc1 + //SEG94 [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) -- vbuyy=vbuaa_plus_vbuc1 clc adc #$59+$33 - //SEG80 [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_YPOS - //SEG81 [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG82 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG83 [11] phi from anim::@20 to anim::@1 [phi:anim::@20->anim::@1] - b1_from_b20: - //SEG84 [11] phi (byte) anim::angle#12 = (byte) anim::angle#1 [phi:anim::@20->anim::@1#0] -- register_copy + tay + //SEG95 [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + lda i + asl + tax + //SEG96 [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) -- vbuaa=_lo_vwsz1 + lda xpos + //SEG97 [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_XPOS,x + //SEG98 [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) -- pbuc1_derefidx_vbuxx=vbuyy + tya + sta SPRITES_YPOS,x + //SEG99 [57] (byte) anim::i#1 ← ++ (byte) anim::i#10 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG100 [58] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b7_from_b8 + jmp b15 + //SEG101 anim::@15 + b15: + //SEG102 [59] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=vbuz1 + lda sprite_msb + sta SPRITES_XMSB + //SEG103 [60] (byte) anim::angle#1 ← ++ (byte) anim::angle#10 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuz1=_inc_vbuz1 + inc angle + //SEG104 [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=vbuc2 + lda #LIGHT_BLUE + sta BORDERCOL + //SEG105 [11] phi from anim::@15 to anim::@1 [phi:anim::@15->anim::@1] + b1_from_b15: + //SEG106 [11] phi (byte) anim::angle#10 = (byte) anim::angle#1 [phi:anim::@15->anim::@1#0] -- register_copy jmp b1 } -//SEG85 mulf8s_prepared +//SEG107 mulf8s_prepared mulf8s_prepared: { .label memA = $fd - .label m = 3 - .label return = 3 - .label b = 2 - //SEG86 [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + .label m = 5 + .label return = 5 + //SEG108 [63] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) jsr mulf8u_prepared - //SEG87 [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) - // (word) mulf8u_prepared::return#2 = (word) mulf8u_prepared::return#0 // register copy zp ZP_WORD:3 + //SEG109 [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) + // (word) mulf8u_prepared::return#2 = (word) mulf8u_prepared::return#0 // register copy zp ZP_WORD:5 jmp b6 - //SEG88 mulf8s_prepared::@6 + //SEG110 mulf8s_prepared::@6 b6: - //SEG89 [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) - // (word) mulf8s_prepared::m#0 = (word) mulf8u_prepared::return#2 // register copy zp ZP_WORD:3 - //SEG90 [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 + //SEG111 [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + // (word) mulf8s_prepared::m#0 = (word) mulf8u_prepared::return#2 // register copy zp ZP_WORD:5 + //SEG112 [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 lda memA cmp #0 bpl b1_from_b6 jmp b3 - //SEG91 mulf8s_prepared::@3 + //SEG113 mulf8s_prepared::@3 b3: - //SEG92 [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuaa=_hi_vwuz1 + //SEG114 [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG93 [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuaa=vbuaa_minus_vbuz1 + //SEG115 [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuaa=vbuaa_minus_vbuyy + sty $ff sec - sbc b - //SEG94 [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa + sbc $ff + //SEG116 [69] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 - //SEG95 [58] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] + //SEG117 [70] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] b1_from_b3: b1_from_b6: - //SEG96 [58] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy + //SEG118 [70] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy jmp b1 - //SEG97 mulf8s_prepared::@1 + //SEG119 mulf8s_prepared::@1 b1: - //SEG98 [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsz1_ge_0_then_la1 - lda b - cmp #0 + //SEG120 [71] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsyy_ge_0_then_la1 + cpy #0 bpl b2_from_b1 jmp b4 - //SEG99 mulf8s_prepared::@4 + //SEG121 mulf8s_prepared::@4 b4: - //SEG100 [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuaa=_hi_vwuz1 + //SEG122 [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG101 [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuaa=vbuaa_minus__deref_pbuc1 + //SEG123 [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuaa=vbuaa_minus__deref_pbuc1 sec sbc memA - //SEG102 [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG124 [74] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 - //SEG103 [63] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] + //SEG125 [75] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] b2_from_b1: b2_from_b4: - //SEG104 [63] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy + //SEG126 [75] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy jmp b2 - //SEG105 mulf8s_prepared::@2 + //SEG127 mulf8s_prepared::@2 b2: jmp breturn - //SEG106 mulf8s_prepared::@return + //SEG128 mulf8s_prepared::@return breturn: - //SEG107 [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + //SEG129 [76] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) rts } -//SEG108 mulf8u_prepared +//SEG130 mulf8u_prepared mulf8u_prepared: { .label resL = $fe .label memB = $ff - .label return = 3 - //SEG109 [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuz1 - lda mulf8s_prepared.b - sta memB - //SEG110 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } + .label return = 5 + //SEG131 [77] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuyy + sty memB + //SEG132 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } ldx memB sec sm1: @@ -2988,23 +3353,23 @@ mulf8u_prepared: { sm4: sbc mulf_sqr2_hi,x sta memB - //SEG111 [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG133 [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda resL sta return lda memB sta return+1 jmp breturn - //SEG112 mulf8u_prepared::@return + //SEG134 mulf8u_prepared::@return breturn: - //SEG113 [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + //SEG135 [80] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) rts } -//SEG114 mulf8u_prepare +//SEG136 mulf8u_prepare mulf8u_prepare: { .label memA = $fd - //SEG115 [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuaa + //SEG137 [82] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuaa sta memA - //SEG116 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } + //SEG138 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } lda memA sta mulf8u_prepared.sm1+1 sta mulf8u_prepared.sm3+1 @@ -3012,156 +3377,136 @@ mulf8u_prepare: { sta mulf8u_prepared.sm2+1 sta mulf8u_prepared.sm4+1 jmp breturn - //SEG117 mulf8u_prepare::@return + //SEG139 mulf8u_prepare::@return breturn: - //SEG118 [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + //SEG140 [84] return [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) rts } -//SEG119 init +//SEG141 init init: { .label sprites_ptr = SCREEN+$3f8 - .label spr_x = 2 - //SEG120 [74] call mulf_init [ ] ( main:3::init:6 [ ] ) - //SEG121 [86] phi from init to mulf_init [phi:init->mulf_init] + //SEG142 [86] call mulf_init [ ] ( main:3::init:6 [ ] ) + //SEG143 [94] phi from init to mulf_init [phi:init->mulf_init] mulf_init_from_init: jsr mulf_init jmp b3 - //SEG122 init::@3 + //SEG144 init::@3 b3: - //SEG123 [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG145 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE - //SEG124 [76] phi from init::@3 to init::@1 [phi:init::@3->init::@1] + //SEG146 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] b1_from_b3: - //SEG125 [76] phi (byte) init::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:init::@3->init::@1#0] -- vbuz1=vbuc1 - lda #$3c - sta spr_x - //SEG126 [76] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#1] -- vbuyy=vbuc1 - ldy #0 + //SEG147 [88] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#0] -- vbuxx=vbuc1 + ldx #0 jmp b1 - //SEG127 [76] phi from init::@1 to init::@1 [phi:init::@1->init::@1] + //SEG148 [88] phi from init::@1 to init::@1 [phi:init::@1->init::@1] b1_from_b1: - //SEG128 [76] phi (byte) init::spr_x#2 = (byte) init::spr_x#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG129 [76] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy + //SEG149 [88] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#0] -- register_copy jmp b1 - //SEG130 init::@1 + //SEG150 init::@1 b1: - //SEG131 [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- vbuxx=vbuyy_rol_1 - tya - asl - tax - //SEG132 [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuyy=vbuc2 + //SEG151 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 - sta sprites_ptr,y - //SEG133 [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 - lda spr_x - sta SPRITES_XPOS,x - //SEG134 [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 - lda spr_x - sta SPRITES_YPOS,x - //SEG135 [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuyy=vbuc2 + sta sprites_ptr,x + //SEG152 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #GREEN - sta SPRITES_COLS,y - //SEG136 [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 - lda #$18 - clc - adc spr_x - sta spr_x - //SEG137 [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG138 [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #8 + sta SPRITES_COLS,x + //SEG153 [91] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG154 [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 bne b1_from_b1 jmp breturn - //SEG139 init::@return + //SEG155 init::@return breturn: - //SEG140 [85] return [ ] ( main:3::init:6 [ ] ) + //SEG156 [93] return [ ] ( main:3::init:6 [ ] ) rts } -//SEG141 mulf_init +//SEG157 mulf_init mulf_init: { - .label sqr1_hi = 5 - .label sqr = 7 - .label sqr1_lo = 3 + .label sqr1_hi = 7 + .label sqr = 9 + .label sqr1_lo = 5 .label x_2 = 2 - .label sqr2_hi = 5 - .label sqr2_lo = 3 + .label sqr2_hi = 7 + .label sqr2_lo = 5 .label dir = 2 - //SEG142 [87] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + //SEG158 [95] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] b1_from_mulf_init: - //SEG143 [87] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 + //SEG159 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG144 [87] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG160 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG145 [87] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG161 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 sta sqr1_lo+1 - //SEG146 [87] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 + //SEG162 [95] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 lda #<0 sta sqr lda #>0 sta sqr+1 - //SEG147 [87] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuxx=vbuc1 + //SEG163 [95] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG148 [87] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] + //SEG164 [95] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] b1_from_b2: - //SEG149 [87] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy - //SEG150 [87] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy - //SEG151 [87] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy - //SEG152 [87] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy - //SEG153 [87] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy + //SEG165 [95] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy + //SEG166 [95] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy + //SEG167 [95] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy + //SEG168 [95] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy + //SEG169 [95] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy jmp b1 - //SEG154 mulf_init::@1 + //SEG170 mulf_init::@1 b1: - //SEG155 [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuxx=_inc_vbuxx + //SEG171 [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG156 [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 + //SEG172 [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG157 [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuaa_neq_0_then_la1 + //SEG173 [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b2_from_b1 jmp b5 - //SEG158 mulf_init::@5 + //SEG174 mulf_init::@5 b5: - //SEG159 [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG175 [99] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 inc x_2 - //SEG160 [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG176 [100] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 inc sqr bne !+ inc sqr+1 !: - //SEG161 [93] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] + //SEG177 [101] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] b2_from_b1: b2_from_b5: - //SEG162 [93] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy - //SEG163 [93] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy + //SEG178 [101] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy + //SEG179 [101] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy jmp b2 - //SEG164 mulf_init::@2 + //SEG180 mulf_init::@2 b2: - //SEG165 [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuaa=_lo_vwuz1 + //SEG181 [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuaa=_lo_vwuz1 lda sqr - //SEG166 [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa + //SEG182 [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (sqr1_lo),y - //SEG167 [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuaa=_hi_vwuz1 + //SEG183 [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuaa=_hi_vwuz1 lda sqr+1 - //SEG168 [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa + //SEG184 [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (sqr1_hi),y - //SEG169 [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG185 [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_hi bne !+ inc sqr1_hi+1 !: - //SEG170 [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 + //SEG186 [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 lda x_2 clc adc sqr @@ -3169,80 +3514,80 @@ mulf_init: { lda #0 adc sqr+1 sta sqr+1 - //SEG171 [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 + //SEG187 [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_lo bne !+ inc sqr1_lo+1 !: - //SEG172 [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG188 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 lda sqr1_lo cmp #mulf_init::@3] + //SEG189 [110] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG174 [102] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG190 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG175 [102] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG191 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG176 [102] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG192 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo sta sqr2_lo+1 - //SEG177 [102] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuxx=vbuc1 + //SEG193 [110] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuxx=vbuc1 ldx #-1 jmp b3 - //SEG178 [102] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] + //SEG194 [110] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] b3_from_b4: - //SEG179 [102] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy - //SEG180 [102] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy - //SEG181 [102] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy - //SEG182 [102] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy + //SEG195 [110] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy + //SEG196 [110] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy + //SEG197 [110] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy + //SEG198 [110] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy jmp b3 - //SEG183 mulf_init::@3 + //SEG199 mulf_init::@3 b3: - //SEG184 [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG200 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG185 [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG201 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x ldy #0 sta (sqr2_hi),y - //SEG186 [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG202 [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_hi bne !+ inc sqr2_hi+1 !: - //SEG187 [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx=vbuxx_plus_vbuz1 + //SEG203 [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx=vbuxx_plus_vbuz1 txa clc adc dir tax - //SEG188 [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx_neq_0_then_la1 + //SEG204 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx_neq_0_then_la1 cpx #0 bne b12_from_b3 - //SEG189 [108] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] + //SEG205 [116] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: - //SEG190 [108] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 + //SEG206 [116] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 lda #1 sta dir jmp b4 - //SEG191 mulf_init::@4 + //SEG207 mulf_init::@4 b4: - //SEG192 [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG208 [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_lo bne !+ inc sqr2_lo+1 !: - //SEG193 [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG209 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -3250,27 +3595,27 @@ mulf_init: { cmp #mulf_init::@12] + //SEG215 [122] phi from mulf_init::@3 to mulf_init::@12 [phi:mulf_init::@3->mulf_init::@12] b12_from_b3: jmp b12 - //SEG200 mulf_init::@12 + //SEG216 mulf_init::@12 b12: - //SEG201 [108] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] + //SEG217 [116] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] b4_from_b12: - //SEG202 [108] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy + //SEG218 [116] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy jmp b4 } .align $100 @@ -3281,6 +3626,8 @@ mulf_init: { mulf_sqr2_lo: .fill $200, 0 .align $100 mulf_sqr2_hi: .fill $200, 0 + xs: .byte -$46, -$46, -$46, 0, 0, $46, $46, $46 + ys: .byte -$46, 0, $46, -$46, $46, -$46, 0, $46 .pc = COS "Inline" { .var min = -$7fff @@ -3307,14 +3654,18 @@ Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b6 +Removing instruction jmp b7 Removing instruction jmp mulf8s_prepare1 -Removing instruction jmp b13 -Removing instruction jmp b16 Removing instruction jmp b17 -Removing instruction jmp mulf8s_prepare2 -Removing instruction jmp b14 -Removing instruction jmp b19 Removing instruction jmp b20 +Removing instruction jmp b21 +Removing instruction jmp mulf8s_prepare2 +Removing instruction jmp b18 +Removing instruction jmp b23 +Removing instruction jmp b24 +Removing instruction jmp b14 +Removing instruction jmp b8 +Removing instruction jmp b15 Removing instruction jmp b6 Removing instruction jmp b3 Removing instruction jmp b1 @@ -3335,14 +3686,17 @@ Removing instruction jmp b8 Removing instruction jmp breturn Removing instruction jmp b12 Succesful ASM optimization Pass5NextJumpElimination -Replacing instruction ldx memB with TAX +Removing instruction lda #0 +Removing instruction ldy i +Removing instruction lda xpos+1 Removing instruction lda memA -Removing instruction lda spr_x Removing instruction lda #>0 Replacing instruction ldx #0 with TAX Removing instruction ldy #0 Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination +Replacing label b8_from_b24 with b8 +Replacing label b7_from_b8 with b7 Replacing label b1 with b4 Replacing label b1_from_b6 with b1 Replacing label b2_from_b1 with b2 @@ -3358,10 +3712,9 @@ Removing instruction bend_from_b17: Removing instruction b1_from_main: Removing instruction anim_from_b1: Removing instruction b1: -Removing instruction b13_from_mulf8s_prepare1: -Removing instruction mulf8s_prepared_from_b13: -Removing instruction b14_from_mulf8s_prepare2: -Removing instruction mulf8s_prepared_from_b14: +Removing instruction b7_from_b8: +Removing instruction b8_from_b14: +Removing instruction b8_from_b24: Removing instruction b1_from_b3: Removing instruction b1_from_b6: Removing instruction b2_from_b1: @@ -3382,19 +3735,24 @@ Removing instruction b1: Removing instruction breturn: Removing instruction b1_from_anim: Removing instruction b6: +Removing instruction b7_from_b6: Removing instruction mulf8s_prepare1: Removing instruction mulf8u_prepare_from_mulf8s_prepare1: -Removing instruction b13: -Removing instruction b16: -Removing instruction mulf8s_prepared_from_b16: Removing instruction b17: +Removing instruction mulf8s_prepared_from_b17: +Removing instruction b20: +Removing instruction mulf8s_prepared_from_b20: +Removing instruction b21: Removing instruction mulf8s_prepare2: Removing instruction mulf8u_prepare_from_mulf8s_prepare2: +Removing instruction b18: +Removing instruction mulf8s_prepared_from_b18: +Removing instruction b23: +Removing instruction mulf8s_prepared_from_b23: +Removing instruction b24: Removing instruction b14: -Removing instruction b19: -Removing instruction mulf8s_prepared_from_b19: -Removing instruction b20: -Removing instruction b1_from_b20: +Removing instruction b15: +Removing instruction b1_from_b15: Removing instruction b6: Removing instruction b3: Removing instruction b4: @@ -3413,6 +3771,7 @@ Removing instruction breturn: Succesful ASM optimization Pass5UnusedLabelElimination Skipping double jump to b4 in bne b12 Succesful ASM optimization Pass5DoubleJumpElimination +Removing instruction jmp b7 Removing instruction jmp b1 Removing instruction jmp b1 Removing instruction jmp b3 @@ -3421,6 +3780,7 @@ Removing instruction b12: Succesful ASM optimization Pass5UnusedLabelElimination Removing unreachable instruction jmp b4 Succesful ASM optimization Pass5UnreachableCodeElimination +Fixing long branch [133] bne b7 to beq FINAL SYMBOL TABLE (label) @17 @@ -3432,6 +3792,8 @@ FINAL SYMBOL TABLE (const byte*) COS#0 COS = ((byte*))(word/signed word/dword/signed dword) 8192 (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 +(byte) LIGHT_BLUE +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 (byte*) SCREEN @@ -3451,30 +3813,39 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) anim() -(signed word~) anim::$10 $10 zp ZP_WORD:3 22.0 -(signed word~) anim::$11 $11 zp ZP_WORD:3 22.0 -(signed word~) anim::$12 $12 zp ZP_WORD:3 22.0 -(signed word~) anim::$13 $13 zp ZP_WORD:3 22.0 -(byte~) anim::$14 reg byte a 11.0 -(signed byte~) anim::$17 reg byte a 22.0 -(byte~) anim::$19 reg byte a 22.0 -(byte~) anim::$20 reg byte a 22.0 -(byte~) anim::$22 reg byte a 22.0 -(signed word~) anim::$4 $4 zp ZP_WORD:5 22.0 -(signed word~) anim::$6 $6 zp ZP_WORD:7 22.0 +(signed word~) anim::$10 $10 zp ZP_WORD:5 202.0 +(signed word~) anim::$11 $11 zp ZP_WORD:5 202.0 +(signed word~) anim::$12 $12 zp ZP_WORD:5 202.0 +(byte~) anim::$13 reg byte a 101.0 +(signed byte~) anim::$16 reg byte a 202.0 +(byte~) anim::$19 reg byte a 202.0 +(byte~) anim::$23 reg byte a 202.0 +(byte~) anim::$26 reg byte a 202.0 +(signed word~) anim::$4 $4 zp ZP_WORD:7 202.0 +(signed word~) anim::$6 $6 zp ZP_WORD:9 202.0 +(signed word~) anim::$9 $9 zp ZP_WORD:5 202.0 (label) anim::@1 -(label) anim::@13 (label) anim::@14 -(label) anim::@16 +(label) anim::@15 (label) anim::@17 -(label) anim::@19 +(label) anim::@18 (label) anim::@20 +(label) anim::@21 +(label) anim::@23 +(label) anim::@24 (label) anim::@4 (label) anim::@6 +(label) anim::@7 +(label) anim::@8 (byte) anim::angle -(byte) anim::angle#1 reg byte y 11.0 -(byte) anim::angle#12 reg byte y 0.5945945945945946 +(byte) anim::angle#1 angle zp ZP_BYTE:2 11.0 +(byte) anim::angle#10 angle zp ZP_BYTE:2 0.4489795918367347 (signed byte) anim::cos_a +(byte) anim::i +(byte) anim::i#1 i zp ZP_BYTE:3 151.5 +(byte) anim::i#10 i zp ZP_BYTE:3 11.74418604651163 +(byte) anim::i2 +(byte) anim::i2#0 reg byte x 101.0 (label) anim::mulf8s_prepare1 (byte~) anim::mulf8s_prepare1_$0 (signed byte) anim::mulf8s_prepare1_a @@ -3482,32 +3853,32 @@ FINAL SYMBOL TABLE (byte~) anim::mulf8s_prepare2_$0 (signed byte) anim::mulf8s_prepare2_a (signed byte) anim::sin_a +(byte) anim::sprite_msb +(byte) anim::sprite_msb#1 sprite_msb zp ZP_BYTE:4 101.0 +(byte) anim::sprite_msb#10 sprite_msb zp ZP_BYTE:4 6.3125 +(byte) anim::sprite_msb#2 sprite_msb zp ZP_BYTE:4 202.0 +(byte) anim::sprite_msb#5 sprite_msb zp ZP_BYTE:4 34.888888888888886 (signed byte) anim::x -(const signed byte) anim::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 89 +(signed byte) anim::x#0 x zp ZP_BYTE:11 13.772727272727273 (signed word) anim::xpos -(signed word) anim::xpos#0 xpos zp ZP_WORD:3 11.0 +(signed word) anim::xpos#0 xpos zp ZP_WORD:5 33.666666666666664 (signed word) anim::xr -(signed word) anim::xr#0 xr zp ZP_WORD:5 1.8333333333333333 -(signed word) anim::xr#1 xr zp ZP_WORD:5 3.6666666666666665 +(signed word) anim::xr#0 xr zp ZP_WORD:7 15.538461538461538 +(signed word) anim::xr#1 xr zp ZP_WORD:7 28.857142857142858 (signed byte) anim::y -(const signed byte) anim::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) anim::y#0 y zp ZP_BYTE:12 20.2 (byte) anim::ypos -(byte) anim::ypos#0 reg byte a 22.0 +(byte) anim::ypos#0 reg byte y 50.5 (signed word) anim::yr -(signed word) anim::yr#0 yr zp ZP_WORD:7 1.6923076923076923 -(signed word) anim::yr#1 yr zp ZP_WORD:7 2.75 +(signed word) anim::yr#0 yr zp ZP_WORD:9 14.428571428571429 +(signed word) anim::yr#1 yr zp ZP_WORD:9 22.444444444444443 (void()) init() (label) init::@1 (label) init::@3 (label) init::@return (byte) init::i -(byte) init::i#1 reg byte y 16.5 -(byte) init::i#2 reg byte y 7.857142857142857 -(byte) init::i2 -(byte) init::i2#0 reg byte x 11.0 -(byte) init::spr_x -(byte) init::spr_x#1 spr_x zp ZP_BYTE:2 7.333333333333333 -(byte) init::spr_x#2 spr_x zp ZP_BYTE:2 7.333333333333333 +(byte) init::i#1 reg byte x 16.5 +(byte) init::i#2 reg byte x 14.666666666666666 (byte*) init::sprites_ptr (const byte*) init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 (void()) main() @@ -3525,26 +3896,30 @@ FINAL SYMBOL TABLE (label) mulf8s_prepared::@6 (label) mulf8s_prepared::@return (signed byte) mulf8s_prepared::b -(signed byte) mulf8s_prepared::b#4 b zp ZP_BYTE:2 0.15384615384615385 +(signed byte) mulf8s_prepared::b#0 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#1 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#2 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#3 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#4 reg byte y 31.23076923076923 (word) mulf8s_prepared::m -(word) mulf8s_prepared::m#0 m zp ZP_WORD:3 2.0 -(word) mulf8s_prepared::m#1 m zp ZP_WORD:3 4.0 -(word) mulf8s_prepared::m#2 m zp ZP_WORD:3 4.0 -(word) mulf8s_prepared::m#4 m zp ZP_WORD:3 0.6666666666666666 -(word) mulf8s_prepared::m#5 m zp ZP_WORD:3 2.5 +(word) mulf8s_prepared::m#0 m zp ZP_WORD:5 2.0 +(word) mulf8s_prepared::m#1 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#2 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#4 m zp ZP_WORD:5 0.6666666666666666 +(word) mulf8s_prepared::m#5 m zp ZP_WORD:5 2.5 (signed byte*) mulf8s_prepared::memA (const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 (signed word) mulf8s_prepared::return -(signed word) mulf8s_prepared::return#10 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#2 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#3 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#4 return zp ZP_WORD:3 22.0 +(signed word) mulf8s_prepared::return#10 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#2 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#3 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#4 return zp ZP_WORD:5 202.0 (void()) mulf8u_prepare((byte) mulf8u_prepare::a) (label) mulf8u_prepare::@return (byte) mulf8u_prepare::a -(byte) mulf8u_prepare::a#2 reg byte a 24.0 -(byte~) mulf8u_prepare::a#3 reg byte a 22.0 -(byte~) mulf8u_prepare::a#4 reg byte a 22.0 +(byte) mulf8u_prepare::a#2 reg byte a 204.0 +(byte~) mulf8u_prepare::a#3 reg byte a 202.0 +(byte~) mulf8u_prepare::a#4 reg byte a 202.0 (byte*) mulf8u_prepare::memA (const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) 253 (word()) mulf8u_prepared((byte) mulf8u_prepared::b) @@ -3555,8 +3930,8 @@ FINAL SYMBOL TABLE (byte*) mulf8u_prepared::resL (const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) 254 (word) mulf8u_prepared::return -(word) mulf8u_prepared::return#0 return zp ZP_WORD:3 1.3333333333333333 -(word) mulf8u_prepared::return#2 return zp ZP_WORD:3 4.0 +(word) mulf8u_prepared::return#0 return zp ZP_WORD:5 1.3333333333333333 +(word) mulf8u_prepared::return#2 return zp ZP_WORD:5 4.0 (void()) mulf_init() (byte~) mulf_init::$2 reg byte a 22.0 (byte~) mulf_init::$5 reg byte a 22.0 @@ -3576,22 +3951,22 @@ FINAL SYMBOL TABLE (byte) mulf_init::dir#2 dir zp ZP_BYTE:2 4.714285714285714 (byte) mulf_init::dir#3 dir zp ZP_BYTE:2 7.333333333333333 (word) mulf_init::sqr -(word) mulf_init::sqr#1 sqr zp ZP_WORD:7 7.333333333333333 -(word) mulf_init::sqr#2 sqr zp ZP_WORD:7 22.0 -(word) mulf_init::sqr#3 sqr zp ZP_WORD:7 9.166666666666666 -(word) mulf_init::sqr#4 sqr zp ZP_WORD:7 6.6000000000000005 +(word) mulf_init::sqr#1 sqr zp ZP_WORD:9 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:9 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:9 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:9 6.6000000000000005 (byte*) mulf_init::sqr1_hi -(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:5 5.5 -(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:5 3.0 +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:7 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:7 3.0 (byte*) mulf_init::sqr1_lo -(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:3 16.5 -(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:3 2.5384615384615383 +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:5 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:5 2.5384615384615383 (byte*) mulf_init::sqr2_hi -(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:5 3.142857142857143 -(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:5 11.0 +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:7 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:7 11.0 (byte*) mulf_init::sqr2_lo -(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:3 16.5 -(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:3 4.125 +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:5 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:5 4.125 (byte) mulf_init::x_2 (byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:2 11.0 (byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:2 4.888888888888889 @@ -3607,34 +3982,42 @@ FINAL SYMBOL TABLE (const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } (byte[512]) mulf_sqr2_lo (const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70 } +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70 } -reg byte y [ anim::angle#12 anim::angle#1 ] -zp ZP_BYTE:2 [ mulf8s_prepared::b#4 init::spr_x#2 init::spr_x#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] -zp ZP_WORD:3 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] +zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +zp ZP_WORD:5 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -reg byte y [ init::i#2 init::i#1 ] +reg byte x [ init::i#2 init::i#1 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] -zp ZP_WORD:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] -zp ZP_WORD:7 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] +zp ZP_WORD:7 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] +zp ZP_WORD:9 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] -reg byte a [ anim::$14 ] -reg byte a [ anim::$17 ] +zp ZP_BYTE:11 [ anim::x#0 ] +zp ZP_BYTE:12 [ anim::y#0 ] +reg byte a [ anim::$13 ] +reg byte a [ anim::$16 ] reg byte a [ anim::$19 ] -reg byte a [ anim::$20 ] -reg byte a [ anim::$22 ] -reg byte a [ anim::ypos#0 ] +reg byte a [ anim::$23 ] +reg byte y [ anim::ypos#0 ] +reg byte x [ anim::i2#0 ] +reg byte a [ anim::$26 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] -reg byte x [ init::i2#0 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] FINAL ASSEMBLER -Score: 11202 +Score: 34706 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -3649,6 +4032,7 @@ Score: 11202 .label BORDERCOL = $d020 .label SPRITES_COLS = $d027 .const GREEN = 5 + .const LIGHT_BLUE = $e .label SCREEN = $400 .label SPRITE = $3000 .label COS = $2000 @@ -3666,7 +4050,7 @@ main: { //SEG10 asm { sei } sei //SEG11 [6] call init [ ] ( main:3 [ ] ) - //SEG12 [73] phi from main to init [phi:main->init] + //SEG12 [85] phi from main to init [phi:main->init] jsr init //SEG13 [7] phi from main to main::@1 [phi:main->main::@1] //SEG14 main::@1 @@ -3679,131 +4063,153 @@ main: { } //SEG19 anim anim: { - .const x = $59 - .const y = 0 - .label _4 = 5 - .label _6 = 7 - .label _10 = 3 - .label _11 = 3 - .label _12 = 3 - .label _13 = 3 - .label xr = 5 - .label yr = 7 - .label xpos = 3 + .label _4 = 7 + .label _6 = 9 + .label _9 = 5 + .label _10 = 5 + .label _11 = 5 + .label _12 = 5 + .label x = $b + .label y = $c + .label xr = 7 + .label yr = 9 + .label xpos = 5 + .label sprite_msb = 4 + .label i = 3 + .label angle = 2 //SEG20 [11] phi from anim to anim::@1 [phi:anim->anim::@1] - //SEG21 [11] phi (byte) anim::angle#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuyy=vbuc1 - ldy #0 + //SEG21 [11] phi (byte) anim::angle#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbuz1=vbuc1 + lda #0 + sta angle //SEG22 anim::@1 //SEG23 anim::@4 b4: - //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG24 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 //SEG25 anim::@6 - //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG26 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG27 anim::mulf8s_prepare1 - //SEG28 [14] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#12) [ anim::angle#12 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#12 mulf8u_prepare::a#3 ] ) -- vbuaa=pbsc1_derefidx_vbuyy + //SEG27 [14] phi from anim::@6 to anim::@7 [phi:anim::@6->anim::@7] + //SEG28 [14] phi (byte) anim::sprite_msb#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#0] -- vbuz1=vbuc1 + lda #0 + sta sprite_msb + //SEG29 [14] phi (byte) anim::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@6->anim::@7#1] -- vbuz1=vbuc1 + sta i + //SEG30 [14] phi from anim::@8 to anim::@7 [phi:anim::@8->anim::@7] + //SEG31 [14] phi (byte) anim::sprite_msb#10 = (byte) anim::sprite_msb#5 [phi:anim::@8->anim::@7#0] -- register_copy + //SEG32 [14] phi (byte) anim::i#10 = (byte) anim::i#1 [phi:anim::@8->anim::@7#1] -- register_copy + //SEG33 anim::@7 + b7: + //SEG34 [15] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y + sta x + //SEG35 [16] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + lda ys,y + sta y + //SEG36 anim::mulf8s_prepare1 + //SEG37 [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) -- vbuaa=pbsc1_derefidx_vbuz1 + ldy angle lda COS,y - //SEG29 [15] call mulf8u_prepare [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) - //SEG30 [69] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] - //SEG31 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy + //SEG38 [18] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] ) + //SEG39 [81] phi from anim::mulf8s_prepare1 to mulf8u_prepare [phi:anim::mulf8s_prepare1->mulf8u_prepare] + //SEG40 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#3 [phi:anim::mulf8s_prepare1->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG32 [16] phi from anim::mulf8s_prepare1 to anim::@13 [phi:anim::mulf8s_prepare1->anim::@13] - //SEG33 anim::@13 - //SEG34 [17] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 ] ) - //SEG35 [50] phi from anim::@13 to mulf8s_prepared [phi:anim::@13->mulf8s_prepared] - //SEG36 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@13->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x - sta mulf8s_prepared.b + //SEG41 anim::@17 + //SEG42 [19] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#0 ] ) -- vbsyy=vbsz1 + ldy x + //SEG43 [20] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] ) + //SEG44 [62] phi from anim::@17 to mulf8s_prepared [phi:anim::@17->mulf8s_prepared] + //SEG45 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#0 [phi:anim::@17->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG37 [18] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::return#2 ] ) - // (signed word) mulf8s_prepared::return#2 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - //SEG38 anim::@16 - //SEG39 [19] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#12 anim::$4 ] ( main:3::anim:8 [ anim::angle#12 anim::$4 ] ) -- vwsz1=vwsz2 + //SEG46 [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) + // (signed word) mulf8s_prepared::return#2 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + //SEG47 anim::@20 + //SEG48 [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return sta _4 lda mulf8s_prepared.return+1 sta _4+1 - //SEG40 [20] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 ] ) -- vwsz1=vwsz1_rol_1 + //SEG49 [23] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 ] ) -- vwsz1=vwsz1_rol_1 asl xr rol xr+1 - //SEG41 [21] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 ] ) - //SEG42 [50] phi from anim::@16 to mulf8s_prepared [phi:anim::@16->mulf8s_prepared] - //SEG43 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@16->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y - sta mulf8s_prepared.b + //SEG50 [24] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#1 ] ) -- vbsyy=vbsz1 + ldy y + //SEG51 [25] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 anim::xr#0 ] ) + //SEG52 [62] phi from anim::@20 to mulf8s_prepared [phi:anim::@20->mulf8s_prepared] + //SEG53 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#1 [phi:anim::@20->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG44 [22] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 mulf8s_prepared::return#3 ] ) - // (signed word) mulf8s_prepared::return#3 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - //SEG45 anim::@17 - //SEG46 [23] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#12 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 + //SEG54 [26] (signed word) mulf8s_prepared::return#3 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::return#3 ] ) + // (signed word) mulf8s_prepared::return#3 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + //SEG55 anim::@21 + //SEG56 [27] (signed word~) anim::$6 ← (signed word) mulf8s_prepared::return#3 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::$6 ] ) -- vwsz1=vwsz2 lda mulf8s_prepared.return sta _6 lda mulf8s_prepared.return+1 sta _6+1 - //SEG47 [24] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz1_rol_1 + //SEG57 [28] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- vwsz1=vwsz1_rol_1 asl yr rol yr+1 - //SEG48 anim::mulf8s_prepare2 - //SEG49 [25] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#12) [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuaa=pbsc1_derefidx_vbuyy + //SEG58 anim::mulf8s_prepare2 + //SEG59 [29] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 mulf8u_prepare::a#4 ] ) -- vbuaa=pbsc1_derefidx_vbuz1 + ldy angle lda SIN,y - //SEG50 [26] call mulf8u_prepare [ anim::angle#12 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) - //SEG51 [69] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] - //SEG52 [69] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy + //SEG60 [30] call mulf8u_prepare [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) + //SEG61 [81] phi from anim::mulf8s_prepare2 to mulf8u_prepare [phi:anim::mulf8s_prepare2->mulf8u_prepare] + //SEG62 [81] phi (byte) mulf8u_prepare::a#2 = (byte~) mulf8u_prepare::a#4 [phi:anim::mulf8s_prepare2->mulf8u_prepare#0] -- register_copy jsr mulf8u_prepare - //SEG53 [27] phi from anim::mulf8s_prepare2 to anim::@14 [phi:anim::mulf8s_prepare2->anim::@14] - //SEG54 anim::@14 - //SEG55 [28] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) - //SEG56 [50] phi from anim::@14 to mulf8s_prepared [phi:anim::@14->mulf8s_prepared] - //SEG57 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::y#0 [phi:anim::@14->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #y - sta mulf8s_prepared.b + //SEG63 anim::@18 + //SEG64 [31] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#2 ] ) -- vbsyy=vbsz1 + ldy y + //SEG65 [32] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 mulf8s_prepared::m#4 anim::xr#0 anim::yr#0 ] ) + //SEG66 [62] phi from anim::@18 to mulf8s_prepared [phi:anim::@18->mulf8s_prepared] + //SEG67 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#2 [phi:anim::@18->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG58 [29] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) - // (signed word) mulf8s_prepared::return#4 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - //SEG59 anim::@19 - //SEG60 [30] (signed word~) anim::$10 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$10 ] ) - // (signed word~) anim::$10 = (signed word) mulf8s_prepared::return#4 // register copy zp ZP_WORD:3 - //SEG61 [31] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#0 anim::yr#0 anim::$11 ] ) -- vwsz1=vwsz1_rol_1 - asl _11 - rol _11+1 - //SEG62 [32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz1_minus_vwsz2 + //SEG68 [33] (signed word) mulf8s_prepared::return#4 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::return#4 ] ) + // (signed word) mulf8s_prepared::return#4 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + //SEG69 anim::@23 + //SEG70 [34] (signed word~) anim::$9 ← (signed word) mulf8s_prepared::return#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$9 ] ) + // (signed word~) anim::$9 = (signed word) mulf8s_prepared::return#4 // register copy zp ZP_WORD:5 + //SEG71 [35] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 anim::$10 ] ) -- vwsz1=vwsz1_rol_1 + asl _10 + rol _10+1 + //SEG72 [36] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::yr#0 anim::xr#1 ] ) -- vwsz1=vwsz1_minus_vwsz2 lda xr sec - sbc _11 + sbc _10 sta xr lda xr+1 - sbc _11+1 + sbc _10+1 sta xr+1 - //SEG63 [33] call mulf8s_prepared [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#12 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) - //SEG64 [50] phi from anim::@19 to mulf8s_prepared [phi:anim::@19->mulf8s_prepared] - //SEG65 [50] phi (signed byte) mulf8s_prepared::b#4 = (const signed byte) anim::x#0 [phi:anim::@19->mulf8s_prepared#0] -- vbsz1=vbsc1 - lda #x - sta mulf8s_prepared.b + //SEG73 [37] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#3 ] ) -- vbsyy=vbsz1 + ldy x + //SEG74 [38] call mulf8s_prepared [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 mulf8s_prepared::m#4 anim::yr#0 anim::xr#1 ] ) + //SEG75 [62] phi from anim::@23 to mulf8s_prepared [phi:anim::@23->mulf8s_prepared] + //SEG76 [62] phi (signed byte) mulf8s_prepared::b#4 = (signed byte) mulf8s_prepared::b#3 [phi:anim::@23->mulf8s_prepared#0] -- register_copy jsr mulf8s_prepared - //SEG66 [34] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) - // (signed word) mulf8s_prepared::return#10 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:3 - //SEG67 anim::@20 - //SEG68 [35] (signed word~) anim::$12 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$12 ] ) - // (signed word~) anim::$12 = (signed word) mulf8s_prepared::return#10 // register copy zp ZP_WORD:3 - //SEG69 [36] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#0 anim::xr#1 anim::$13 ] ) -- vwsz1=vwsz1_rol_1 - asl _13 - rol _13+1 - //SEG70 [37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG77 [39] (signed word) mulf8s_prepared::return#10 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::return#10 ] ) + // (signed word) mulf8s_prepared::return#10 = (signed word)(word) mulf8s_prepared::m#4 // register copy zp ZP_WORD:5 + //SEG78 anim::@24 + //SEG79 [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::return#10 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$11 ] ) + // (signed word~) anim::$11 = (signed word) mulf8s_prepared::return#10 // register copy zp ZP_WORD:5 + //SEG80 [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) -- vwsz1=vwsz1_rol_1 + asl _12 + rol _12+1 + //SEG81 [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda yr clc - adc _13 + adc _12 sta yr lda yr+1 - adc _13+1 + adc _12+1 sta yr+1 - //SEG71 [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) -- vbuaa=_hi_vwsz1 + //SEG82 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) -- vbuaa=_hi_vwsz1 lda xr+1 - //SEG72 [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) - // (signed byte~) anim::$17 = (signed byte)(byte~) anim::$14 // register copy reg byte a - //SEG73 [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsaa_plus_vbuc1 + //SEG83 [44] (signed byte~) anim::$16 ← (signed byte)(byte~) anim::$13 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$16 ] ) + // (signed byte~) anim::$16 = (signed byte)(byte~) anim::$13 // register copy reg byte a + //SEG84 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$16 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) -- vwsz1=vbsaa_plus_vbuc1 sta xpos ora #$7f bmi !+ @@ -3817,88 +4223,116 @@ anim: { lda xpos+1 adc #0 sta xpos+1 - //SEG74 [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ) -- vbuaa=_lo_vwsz1 - lda xpos - //SEG75 [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_XPOS - //SEG76 [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] ) -- vbuaa=_hi_vwsz1 - lda xpos+1 - //SEG77 [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_XMSB - //SEG78 [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] ) -- vbuaa=_hi_vwsz1 + //SEG85 [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuz1=vbuz1_ror_1 + lsr sprite_msb + //SEG86 [47] (byte~) anim::$19 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$19 ] ) -- vbuaa=_hi_vwsz1 + //SEG87 [48] if((byte~) anim::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b8 + //SEG88 anim::@14 + //SEG89 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) -- vbuz1=vbuz1_bor_vbuc1 + lda #$80 + ora sprite_msb + sta sprite_msb + //SEG90 [50] phi from anim::@14 anim::@24 to anim::@8 [phi:anim::@14/anim::@24->anim::@8] + //SEG91 [50] phi (byte) anim::sprite_msb#5 = (byte) anim::sprite_msb#2 [phi:anim::@14/anim::@24->anim::@8#0] -- register_copy + //SEG92 anim::@8 + b8: + //SEG93 [51] (byte~) anim::$23 ← > (signed word) anim::yr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::$23 ] ) -- vbuaa=_hi_vwsz1 lda yr+1 - //SEG79 [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) -- vbuaa=vbuaa_plus_vbuc1 + //SEG94 [52] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) -- vbuyy=vbuaa_plus_vbuc1 clc adc #$59+$33 - //SEG80 [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) -- _deref_pbuc1=vbuaa - sta SPRITES_YPOS - //SEG81 [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG82 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG83 [11] phi from anim::@20 to anim::@1 [phi:anim::@20->anim::@1] - //SEG84 [11] phi (byte) anim::angle#12 = (byte) anim::angle#1 [phi:anim::@20->anim::@1#0] -- register_copy + tay + //SEG95 [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + lda i + asl + tax + //SEG96 [54] (byte~) anim::$26 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$26 ] ) -- vbuaa=_lo_vwsz1 + lda xpos + //SEG97 [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_XPOS,x + //SEG98 [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) -- pbuc1_derefidx_vbuxx=vbuyy + tya + sta SPRITES_YPOS,x + //SEG99 [57] (byte) anim::i#1 ← ++ (byte) anim::i#10 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG100 [58] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#1 anim::sprite_msb#5 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + beq !b7+ + jmp b7 + !b7: + //SEG101 anim::@15 + //SEG102 [59] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) -- _deref_pbuc1=vbuz1 + lda sprite_msb + sta SPRITES_XMSB + //SEG103 [60] (byte) anim::angle#1 ← ++ (byte) anim::angle#10 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- vbuz1=_inc_vbuz1 + inc angle + //SEG104 [61] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] ) -- _deref_pbuc1=vbuc2 + lda #LIGHT_BLUE + sta BORDERCOL + //SEG105 [11] phi from anim::@15 to anim::@1 [phi:anim::@15->anim::@1] + //SEG106 [11] phi (byte) anim::angle#10 = (byte) anim::angle#1 [phi:anim::@15->anim::@1#0] -- register_copy jmp b4 } -//SEG85 mulf8s_prepared +//SEG107 mulf8s_prepared mulf8s_prepared: { .label memA = $fd - .label m = 3 - .label return = 3 - .label b = 2 - //SEG86 [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + .label m = 5 + .label return = 5 + //SEG108 [63] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) jsr mulf8u_prepared - //SEG87 [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) - // (word) mulf8u_prepared::return#2 = (word) mulf8u_prepared::return#0 // register copy zp ZP_WORD:3 - //SEG88 mulf8s_prepared::@6 - //SEG89 [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) - // (word) mulf8s_prepared::m#0 = (word) mulf8u_prepared::return#2 // register copy zp ZP_WORD:3 - //SEG90 [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 + //SEG109 [64] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) + // (word) mulf8u_prepared::return#2 = (word) mulf8u_prepared::return#0 // register copy zp ZP_WORD:5 + //SEG110 mulf8s_prepared::@6 + //SEG111 [65] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) + // (word) mulf8s_prepared::m#0 = (word) mulf8u_prepared::return#2 // register copy zp ZP_WORD:5 + //SEG112 [66] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) -- _deref_pbsc1_ge_0_then_la1 lda memA cmp #0 bpl b1 - //SEG91 mulf8s_prepared::@3 - //SEG92 [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuaa=_hi_vwuz1 + //SEG113 mulf8s_prepared::@3 + //SEG114 [67] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG93 [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuaa=vbuaa_minus_vbuz1 + //SEG115 [68] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) -- vbuaa=vbuaa_minus_vbuyy + sty $ff sec - sbc b - //SEG94 [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa + sbc $ff + //SEG116 [69] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 - //SEG95 [58] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] - //SEG96 [58] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy - //SEG97 mulf8s_prepared::@1 + //SEG117 [70] phi from mulf8s_prepared::@3 mulf8s_prepared::@6 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1] + //SEG118 [70] phi (word) mulf8s_prepared::m#5 = (word) mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@6->mulf8s_prepared::@1#0] -- register_copy + //SEG119 mulf8s_prepared::@1 b1: - //SEG98 [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsz1_ge_0_then_la1 - lda b - cmp #0 + //SEG120 [71] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) -- vbsyy_ge_0_then_la1 + cpy #0 bpl b2 - //SEG99 mulf8s_prepared::@4 - //SEG100 [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuaa=_hi_vwuz1 + //SEG121 mulf8s_prepared::@4 + //SEG122 [72] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG101 [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuaa=vbuaa_minus__deref_pbuc1 + //SEG123 [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) -- vbuaa=vbuaa_minus__deref_pbuc1 sec sbc memA - //SEG102 [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG124 [74] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 - //SEG103 [63] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] - //SEG104 [63] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy - //SEG105 mulf8s_prepared::@2 + //SEG125 [75] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2] + //SEG126 [75] phi (word) mulf8s_prepared::m#4 = (word) mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy + //SEG127 mulf8s_prepared::@2 b2: - //SEG106 mulf8s_prepared::@return - //SEG107 [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) + //SEG128 mulf8s_prepared::@return + //SEG129 [76] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:20 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:25 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:32 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:38 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) rts } -//SEG108 mulf8u_prepared +//SEG130 mulf8u_prepared mulf8u_prepared: { .label resL = $fe .label memB = $ff - .label return = 3 - //SEG109 [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuz1 - lda mulf8s_prepared.b - sta memB - //SEG110 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } - tax + .label return = 5 + //SEG131 [77] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) -- _deref_pbuc1=vbuyy + sty memB + //SEG132 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } + ldx memB sec sm1: lda mulf_sqr1_lo,x @@ -3910,154 +4344,135 @@ mulf8u_prepared: { sm4: sbc mulf_sqr2_hi,x sta memB - //SEG111 [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG133 [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda resL sta return lda memB sta return+1 - //SEG112 mulf8u_prepared::@return - //SEG113 [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) + //SEG134 mulf8u_prepared::@return + //SEG135 [80] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) rts } -//SEG114 mulf8u_prepare +//SEG136 mulf8u_prepare mulf8u_prepare: { .label memA = $fd - //SEG115 [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuaa + //SEG137 [82] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) -- _deref_pbuc1=vbuaa sta memA - //SEG116 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } + //SEG138 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } sta mulf8u_prepared.sm1+1 sta mulf8u_prepared.sm3+1 eor #$ff sta mulf8u_prepared.sm2+1 sta mulf8u_prepared.sm4+1 - //SEG117 mulf8u_prepare::@return - //SEG118 [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) + //SEG139 mulf8u_prepare::@return + //SEG140 [84] return [ ] ( main:3::anim:8::mulf8u_prepare:18 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 ] main:3::anim:8::mulf8u_prepare:30 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 anim::yr#0 ] ) rts } -//SEG119 init +//SEG141 init init: { .label sprites_ptr = SCREEN+$3f8 - .label spr_x = 2 - //SEG120 [74] call mulf_init [ ] ( main:3::init:6 [ ] ) - //SEG121 [86] phi from init to mulf_init [phi:init->mulf_init] + //SEG142 [86] call mulf_init [ ] ( main:3::init:6 [ ] ) + //SEG143 [94] phi from init to mulf_init [phi:init->mulf_init] jsr mulf_init - //SEG122 init::@3 - //SEG123 [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG144 init::@3 + //SEG145 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE - //SEG124 [76] phi from init::@3 to init::@1 [phi:init::@3->init::@1] - //SEG125 [76] phi (byte) init::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:init::@3->init::@1#0] -- vbuz1=vbuc1 - lda #$3c - sta spr_x - //SEG126 [76] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#1] -- vbuyy=vbuc1 - ldy #0 - //SEG127 [76] phi from init::@1 to init::@1 [phi:init::@1->init::@1] - //SEG128 [76] phi (byte) init::spr_x#2 = (byte) init::spr_x#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG129 [76] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy - //SEG130 init::@1 + //SEG146 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] + //SEG147 [88] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG148 [88] phi from init::@1 to init::@1 [phi:init::@1->init::@1] + //SEG149 [88] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#0] -- register_copy + //SEG150 init::@1 b1: - //SEG131 [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- vbuxx=vbuyy_rol_1 - tya - asl - tax - //SEG132 [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuyy=vbuc2 + //SEG151 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 - sta sprites_ptr,y - //SEG133 [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 - lda spr_x - sta SPRITES_XPOS,x - //SEG134 [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 - sta SPRITES_YPOS,x - //SEG135 [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) -- pbuc1_derefidx_vbuyy=vbuc2 + sta sprites_ptr,x + //SEG152 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #GREEN - sta SPRITES_COLS,y - //SEG136 [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) -- vbuz1=vbuz1_plus_vbuc1 - lda #$18 - clc - adc spr_x - sta spr_x - //SEG137 [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuyy=_inc_vbuyy - iny - //SEG138 [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) -- vbuyy_neq_vbuc1_then_la1 - cpy #8 + sta SPRITES_COLS,x + //SEG153 [91] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG154 [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 ] ( main:3::init:6 [ init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 bne b1 - //SEG139 init::@return - //SEG140 [85] return [ ] ( main:3::init:6 [ ] ) + //SEG155 init::@return + //SEG156 [93] return [ ] ( main:3::init:6 [ ] ) rts } -//SEG141 mulf_init +//SEG157 mulf_init mulf_init: { - .label sqr1_hi = 5 - .label sqr = 7 - .label sqr1_lo = 3 + .label sqr1_hi = 7 + .label sqr = 9 + .label sqr1_lo = 5 .label x_2 = 2 - .label sqr2_hi = 5 - .label sqr2_lo = 3 + .label sqr2_hi = 7 + .label sqr2_lo = 5 .label dir = 2 - //SEG142 [87] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] - //SEG143 [87] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 + //SEG158 [95] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + //SEG159 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG144 [87] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG160 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG145 [87] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG161 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 sta sqr1_lo+1 - //SEG146 [87] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 + //SEG162 [95] phi (word) mulf_init::sqr#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#3] -- vwuz1=vbuc1 lda #<0 sta sqr sta sqr+1 - //SEG147 [87] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuxx=vbuc1 + //SEG163 [95] phi (byte) mulf_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#4] -- vbuxx=vbuc1 tax - //SEG148 [87] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] - //SEG149 [87] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy - //SEG150 [87] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy - //SEG151 [87] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy - //SEG152 [87] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy - //SEG153 [87] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy - //SEG154 mulf_init::@1 + //SEG164 [95] phi from mulf_init::@2 to mulf_init::@1 [phi:mulf_init::@2->mulf_init::@1] + //SEG165 [95] phi (byte) mulf_init::x_2#3 = (byte) mulf_init::x_2#2 [phi:mulf_init::@2->mulf_init::@1#0] -- register_copy + //SEG166 [95] phi (byte*) mulf_init::sqr1_hi#2 = (byte*) mulf_init::sqr1_hi#1 [phi:mulf_init::@2->mulf_init::@1#1] -- register_copy + //SEG167 [95] phi (byte*) mulf_init::sqr1_lo#2 = (byte*) mulf_init::sqr1_lo#1 [phi:mulf_init::@2->mulf_init::@1#2] -- register_copy + //SEG168 [95] phi (word) mulf_init::sqr#4 = (word) mulf_init::sqr#1 [phi:mulf_init::@2->mulf_init::@1#3] -- register_copy + //SEG169 [95] phi (byte) mulf_init::c#2 = (byte) mulf_init::c#1 [phi:mulf_init::@2->mulf_init::@1#4] -- register_copy + //SEG170 mulf_init::@1 b1: - //SEG155 [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuxx=_inc_vbuxx + //SEG171 [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG156 [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 + //SEG172 [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG157 [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuaa_neq_0_then_la1 + //SEG173 [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b2 - //SEG158 mulf_init::@5 - //SEG159 [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG174 mulf_init::@5 + //SEG175 [99] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) -- vbuz1=_inc_vbuz1 inc x_2 - //SEG160 [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG176 [100] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) -- vwuz1=_inc_vwuz1 inc sqr bne !+ inc sqr+1 !: - //SEG161 [93] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] - //SEG162 [93] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy - //SEG163 [93] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy - //SEG164 mulf_init::@2 + //SEG177 [101] phi from mulf_init::@1 mulf_init::@5 to mulf_init::@2 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2] + //SEG178 [101] phi (byte) mulf_init::x_2#2 = (byte) mulf_init::x_2#3 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#0] -- register_copy + //SEG179 [101] phi (word) mulf_init::sqr#3 = (word) mulf_init::sqr#4 [phi:mulf_init::@1/mulf_init::@5->mulf_init::@2#1] -- register_copy + //SEG180 mulf_init::@2 b2: - //SEG165 [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuaa=_lo_vwuz1 + //SEG181 [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) -- vbuaa=_lo_vwuz1 lda sqr - //SEG166 [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa + //SEG182 [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (sqr1_lo),y - //SEG167 [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuaa=_hi_vwuz1 + //SEG183 [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) -- vbuaa=_hi_vwuz1 lda sqr+1 - //SEG168 [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa + //SEG184 [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- _deref_pbuz1=vbuaa sta (sqr1_hi),y - //SEG169 [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG185 [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_hi bne !+ inc sqr1_hi+1 !: - //SEG170 [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 + //SEG186 [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2 lda x_2 clc adc sqr @@ -4065,93 +4480,93 @@ mulf_init: { lda #0 adc sqr+1 sta sqr+1 - //SEG171 [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 + //SEG187 [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1=_inc_pbuz1 inc sqr1_lo bne !+ inc sqr1_lo+1 !: - //SEG172 [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG188 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1 lda sqr1_lo cmp #mulf_init::@3] - //SEG174 [102] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG189 [110] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] + //SEG190 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG175 [102] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG191 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG176 [102] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG192 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo sta sqr2_lo+1 - //SEG177 [102] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuxx=vbuc1 + //SEG193 [110] phi (byte) mulf_init::x_255#2 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@2->mulf_init::@3#3] -- vbuxx=vbuc1 ldx #-1 - //SEG178 [102] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] - //SEG179 [102] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy - //SEG180 [102] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy - //SEG181 [102] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy - //SEG182 [102] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy - //SEG183 mulf_init::@3 + //SEG194 [110] phi from mulf_init::@4 to mulf_init::@3 [phi:mulf_init::@4->mulf_init::@3] + //SEG195 [110] phi (byte) mulf_init::dir#2 = (byte) mulf_init::dir#3 [phi:mulf_init::@4->mulf_init::@3#0] -- register_copy + //SEG196 [110] phi (byte*) mulf_init::sqr2_hi#2 = (byte*) mulf_init::sqr2_hi#1 [phi:mulf_init::@4->mulf_init::@3#1] -- register_copy + //SEG197 [110] phi (byte*) mulf_init::sqr2_lo#2 = (byte*) mulf_init::sqr2_lo#1 [phi:mulf_init::@4->mulf_init::@3#2] -- register_copy + //SEG198 [110] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy + //SEG199 mulf_init::@3 b3: - //SEG184 [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG200 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG185 [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG201 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x sta (sqr2_hi),y - //SEG186 [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG202 [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_hi bne !+ inc sqr2_hi+1 !: - //SEG187 [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx=vbuxx_plus_vbuz1 + //SEG203 [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx=vbuxx_plus_vbuz1 txa clc adc dir tax - //SEG188 [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx_neq_0_then_la1 + //SEG204 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) -- vbuxx_neq_0_then_la1 cpx #0 bne b4 - //SEG189 [108] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] - //SEG190 [108] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 + //SEG205 [116] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] + //SEG206 [116] phi (byte) mulf_init::dir#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init::@3->mulf_init::@4#0] -- vbuz1=vbuc1 lda #1 sta dir - //SEG191 mulf_init::@4 + //SEG207 mulf_init::@4 b4: - //SEG192 [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 + //SEG208 [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1=_inc_pbuz1 inc sqr2_lo bne !+ inc sqr2_lo+1 !: - //SEG193 [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG209 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3 lda sqr2_lo cmp #mulf_init::@12] - //SEG200 mulf_init::@12 - //SEG201 [108] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] - //SEG202 [108] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy + //SEG215 [122] phi from mulf_init::@3 to mulf_init::@12 [phi:mulf_init::@3->mulf_init::@12] + //SEG216 mulf_init::@12 + //SEG217 [116] phi from mulf_init::@12 to mulf_init::@4 [phi:mulf_init::@12->mulf_init::@4] + //SEG218 [116] phi (byte) mulf_init::dir#3 = (byte) mulf_init::dir#2 [phi:mulf_init::@12->mulf_init::@4#0] -- register_copy } .align $100 mulf_sqr1_lo: .fill $200, 0 @@ -4161,6 +4576,8 @@ mulf_init: { mulf_sqr2_lo: .fill $200, 0 .align $100 mulf_sqr2_hi: .fill $200, 0 + xs: .byte -$46, -$46, -$46, 0, 0, $46, $46, $46 + ys: .byte -$46, 0, $46, -$46, $46, -$46, 0, $46 .pc = COS "Inline" { .var min = -$7fff diff --git a/src/test/ref/examples/rotate/rotate.sym b/src/test/ref/examples/rotate/rotate.sym index 043b0dc6a..c386cd7b1 100644 --- a/src/test/ref/examples/rotate/rotate.sym +++ b/src/test/ref/examples/rotate/rotate.sym @@ -7,6 +7,8 @@ (const byte*) COS#0 COS = ((byte*))(word/signed word/dword/signed dword) 8192 (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 +(byte) LIGHT_BLUE +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 (byte*) SCREEN @@ -26,30 +28,39 @@ (byte*) SPRITES_YPOS (const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) anim() -(signed word~) anim::$10 $10 zp ZP_WORD:3 22.0 -(signed word~) anim::$11 $11 zp ZP_WORD:3 22.0 -(signed word~) anim::$12 $12 zp ZP_WORD:3 22.0 -(signed word~) anim::$13 $13 zp ZP_WORD:3 22.0 -(byte~) anim::$14 reg byte a 11.0 -(signed byte~) anim::$17 reg byte a 22.0 -(byte~) anim::$19 reg byte a 22.0 -(byte~) anim::$20 reg byte a 22.0 -(byte~) anim::$22 reg byte a 22.0 -(signed word~) anim::$4 $4 zp ZP_WORD:5 22.0 -(signed word~) anim::$6 $6 zp ZP_WORD:7 22.0 +(signed word~) anim::$10 $10 zp ZP_WORD:5 202.0 +(signed word~) anim::$11 $11 zp ZP_WORD:5 202.0 +(signed word~) anim::$12 $12 zp ZP_WORD:5 202.0 +(byte~) anim::$13 reg byte a 101.0 +(signed byte~) anim::$16 reg byte a 202.0 +(byte~) anim::$19 reg byte a 202.0 +(byte~) anim::$23 reg byte a 202.0 +(byte~) anim::$26 reg byte a 202.0 +(signed word~) anim::$4 $4 zp ZP_WORD:7 202.0 +(signed word~) anim::$6 $6 zp ZP_WORD:9 202.0 +(signed word~) anim::$9 $9 zp ZP_WORD:5 202.0 (label) anim::@1 -(label) anim::@13 (label) anim::@14 -(label) anim::@16 +(label) anim::@15 (label) anim::@17 -(label) anim::@19 +(label) anim::@18 (label) anim::@20 +(label) anim::@21 +(label) anim::@23 +(label) anim::@24 (label) anim::@4 (label) anim::@6 +(label) anim::@7 +(label) anim::@8 (byte) anim::angle -(byte) anim::angle#1 reg byte y 11.0 -(byte) anim::angle#12 reg byte y 0.5945945945945946 +(byte) anim::angle#1 angle zp ZP_BYTE:2 11.0 +(byte) anim::angle#10 angle zp ZP_BYTE:2 0.4489795918367347 (signed byte) anim::cos_a +(byte) anim::i +(byte) anim::i#1 i zp ZP_BYTE:3 151.5 +(byte) anim::i#10 i zp ZP_BYTE:3 11.74418604651163 +(byte) anim::i2 +(byte) anim::i2#0 reg byte x 101.0 (label) anim::mulf8s_prepare1 (byte~) anim::mulf8s_prepare1_$0 (signed byte) anim::mulf8s_prepare1_a @@ -57,32 +68,32 @@ (byte~) anim::mulf8s_prepare2_$0 (signed byte) anim::mulf8s_prepare2_a (signed byte) anim::sin_a +(byte) anim::sprite_msb +(byte) anim::sprite_msb#1 sprite_msb zp ZP_BYTE:4 101.0 +(byte) anim::sprite_msb#10 sprite_msb zp ZP_BYTE:4 6.3125 +(byte) anim::sprite_msb#2 sprite_msb zp ZP_BYTE:4 202.0 +(byte) anim::sprite_msb#5 sprite_msb zp ZP_BYTE:4 34.888888888888886 (signed byte) anim::x -(const signed byte) anim::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 89 +(signed byte) anim::x#0 x zp ZP_BYTE:11 13.772727272727273 (signed word) anim::xpos -(signed word) anim::xpos#0 xpos zp ZP_WORD:3 11.0 +(signed word) anim::xpos#0 xpos zp ZP_WORD:5 33.666666666666664 (signed word) anim::xr -(signed word) anim::xr#0 xr zp ZP_WORD:5 1.8333333333333333 -(signed word) anim::xr#1 xr zp ZP_WORD:5 3.6666666666666665 +(signed word) anim::xr#0 xr zp ZP_WORD:7 15.538461538461538 +(signed word) anim::xr#1 xr zp ZP_WORD:7 28.857142857142858 (signed byte) anim::y -(const signed byte) anim::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) anim::y#0 y zp ZP_BYTE:12 20.2 (byte) anim::ypos -(byte) anim::ypos#0 reg byte a 22.0 +(byte) anim::ypos#0 reg byte y 50.5 (signed word) anim::yr -(signed word) anim::yr#0 yr zp ZP_WORD:7 1.6923076923076923 -(signed word) anim::yr#1 yr zp ZP_WORD:7 2.75 +(signed word) anim::yr#0 yr zp ZP_WORD:9 14.428571428571429 +(signed word) anim::yr#1 yr zp ZP_WORD:9 22.444444444444443 (void()) init() (label) init::@1 (label) init::@3 (label) init::@return (byte) init::i -(byte) init::i#1 reg byte y 16.5 -(byte) init::i#2 reg byte y 7.857142857142857 -(byte) init::i2 -(byte) init::i2#0 reg byte x 11.0 -(byte) init::spr_x -(byte) init::spr_x#1 spr_x zp ZP_BYTE:2 7.333333333333333 -(byte) init::spr_x#2 spr_x zp ZP_BYTE:2 7.333333333333333 +(byte) init::i#1 reg byte x 16.5 +(byte) init::i#2 reg byte x 14.666666666666666 (byte*) init::sprites_ptr (const byte*) init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 (void()) main() @@ -100,26 +111,30 @@ (label) mulf8s_prepared::@6 (label) mulf8s_prepared::@return (signed byte) mulf8s_prepared::b -(signed byte) mulf8s_prepared::b#4 b zp ZP_BYTE:2 0.15384615384615385 +(signed byte) mulf8s_prepared::b#0 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#1 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#2 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#3 reg byte y 202.0 +(signed byte) mulf8s_prepared::b#4 reg byte y 31.23076923076923 (word) mulf8s_prepared::m -(word) mulf8s_prepared::m#0 m zp ZP_WORD:3 2.0 -(word) mulf8s_prepared::m#1 m zp ZP_WORD:3 4.0 -(word) mulf8s_prepared::m#2 m zp ZP_WORD:3 4.0 -(word) mulf8s_prepared::m#4 m zp ZP_WORD:3 0.6666666666666666 -(word) mulf8s_prepared::m#5 m zp ZP_WORD:3 2.5 +(word) mulf8s_prepared::m#0 m zp ZP_WORD:5 2.0 +(word) mulf8s_prepared::m#1 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#2 m zp ZP_WORD:5 4.0 +(word) mulf8s_prepared::m#4 m zp ZP_WORD:5 0.6666666666666666 +(word) mulf8s_prepared::m#5 m zp ZP_WORD:5 2.5 (signed byte*) mulf8s_prepared::memA (const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 (signed word) mulf8s_prepared::return -(signed word) mulf8s_prepared::return#10 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#2 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#3 return zp ZP_WORD:3 22.0 -(signed word) mulf8s_prepared::return#4 return zp ZP_WORD:3 22.0 +(signed word) mulf8s_prepared::return#10 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#2 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#3 return zp ZP_WORD:5 202.0 +(signed word) mulf8s_prepared::return#4 return zp ZP_WORD:5 202.0 (void()) mulf8u_prepare((byte) mulf8u_prepare::a) (label) mulf8u_prepare::@return (byte) mulf8u_prepare::a -(byte) mulf8u_prepare::a#2 reg byte a 24.0 -(byte~) mulf8u_prepare::a#3 reg byte a 22.0 -(byte~) mulf8u_prepare::a#4 reg byte a 22.0 +(byte) mulf8u_prepare::a#2 reg byte a 204.0 +(byte~) mulf8u_prepare::a#3 reg byte a 202.0 +(byte~) mulf8u_prepare::a#4 reg byte a 202.0 (byte*) mulf8u_prepare::memA (const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) 253 (word()) mulf8u_prepared((byte) mulf8u_prepared::b) @@ -130,8 +145,8 @@ (byte*) mulf8u_prepared::resL (const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) 254 (word) mulf8u_prepared::return -(word) mulf8u_prepared::return#0 return zp ZP_WORD:3 1.3333333333333333 -(word) mulf8u_prepared::return#2 return zp ZP_WORD:3 4.0 +(word) mulf8u_prepared::return#0 return zp ZP_WORD:5 1.3333333333333333 +(word) mulf8u_prepared::return#2 return zp ZP_WORD:5 4.0 (void()) mulf_init() (byte~) mulf_init::$2 reg byte a 22.0 (byte~) mulf_init::$5 reg byte a 22.0 @@ -151,22 +166,22 @@ (byte) mulf_init::dir#2 dir zp ZP_BYTE:2 4.714285714285714 (byte) mulf_init::dir#3 dir zp ZP_BYTE:2 7.333333333333333 (word) mulf_init::sqr -(word) mulf_init::sqr#1 sqr zp ZP_WORD:7 7.333333333333333 -(word) mulf_init::sqr#2 sqr zp ZP_WORD:7 22.0 -(word) mulf_init::sqr#3 sqr zp ZP_WORD:7 9.166666666666666 -(word) mulf_init::sqr#4 sqr zp ZP_WORD:7 6.6000000000000005 +(word) mulf_init::sqr#1 sqr zp ZP_WORD:9 7.333333333333333 +(word) mulf_init::sqr#2 sqr zp ZP_WORD:9 22.0 +(word) mulf_init::sqr#3 sqr zp ZP_WORD:9 9.166666666666666 +(word) mulf_init::sqr#4 sqr zp ZP_WORD:9 6.6000000000000005 (byte*) mulf_init::sqr1_hi -(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:5 5.5 -(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:5 3.0 +(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:7 5.5 +(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:7 3.0 (byte*) mulf_init::sqr1_lo -(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:3 16.5 -(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:3 2.5384615384615383 +(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:5 16.5 +(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:5 2.5384615384615383 (byte*) mulf_init::sqr2_hi -(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:5 3.142857142857143 -(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:5 11.0 +(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:7 3.142857142857143 +(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:7 11.0 (byte*) mulf_init::sqr2_lo -(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:3 16.5 -(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:3 4.125 +(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:5 16.5 +(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:5 4.125 (byte) mulf_init::x_2 (byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:2 11.0 (byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:2 4.888888888888889 @@ -182,27 +197,35 @@ (const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } (byte[512]) mulf_sqr2_lo (const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70 } +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70 } -reg byte y [ anim::angle#12 anim::angle#1 ] -zp ZP_BYTE:2 [ mulf8s_prepared::b#4 init::spr_x#2 init::spr_x#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] -zp ZP_WORD:3 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$10 anim::$11 anim::$12 anim::$13 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] +zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] +zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] +zp ZP_WORD:5 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s_prepared::return#2 mulf8s_prepared::return#3 mulf8s_prepared::return#4 mulf8s_prepared::return#10 mulf8u_prepared::return#2 anim::$9 anim::$10 anim::$11 anim::$12 mulf8u_prepared::return#0 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 anim::xpos#0 ] reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -reg byte y [ init::i#2 init::i#1 ] +reg byte x [ init::i#2 init::i#1 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] -zp ZP_WORD:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] -zp ZP_WORD:7 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] +zp ZP_WORD:7 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ] +zp ZP_WORD:9 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] -reg byte a [ anim::$14 ] -reg byte a [ anim::$17 ] +zp ZP_BYTE:11 [ anim::x#0 ] +zp ZP_BYTE:12 [ anim::y#0 ] +reg byte a [ anim::$13 ] +reg byte a [ anim::$16 ] reg byte a [ anim::$19 ] -reg byte a [ anim::$20 ] -reg byte a [ anim::$22 ] -reg byte a [ anim::ypos#0 ] +reg byte a [ anim::$23 ] +reg byte y [ anim::ypos#0 ] +reg byte x [ anim::i2#0 ] +reg byte a [ anim::$26 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] -reg byte x [ init::i2#0 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ]