1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 02:54:41 +00:00

Implemented z-rotation for 8 sprites.

This commit is contained in:
jespergravgaard 2018-10-20 20:43:26 +02:00
parent 2f1f530128
commit 87933460f3
5 changed files with 2451 additions and 1978 deletions

View File

@ -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;
*SPRITES_XMSB = >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] = <xpos;
SPRITES_YPOS[i2] = ypos;
}
*SPRITES_XMSB = sprite_msb;
angle++;
(*BORDERCOL)--;
*BORDERCOL = LIGHT_BLUE;
}
}

View File

@ -9,6 +9,7 @@
.label BORDERCOL = $d020
.label SPRITES_COLS = $d027
.const GREEN = 5
.const LIGHT_BLUE = $e
.label SCREEN = $400
.label SPRITE = $3000
.label COS = $2000
@ -21,27 +22,40 @@ main: {
rts
}
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
ldy #0
.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
lda #0
sta angle
b4:
lda RASTER
cmp #$ff
bne b4
inc BORDERCOL
lda #0
sta sprite_msb
sta i
b7:
ldy i
lda xs,y
sta x
lda ys,y
sta y
ldy angle
lda COS,y
jsr mulf8u_prepare
lda #x
sta mulf8s_prepared.b
ldy x
jsr mulf8s_prepared
lda mulf8s_prepared.return
sta _4
@ -49,8 +63,7 @@ anim: {
sta _4+1
asl xr
rol xr+1
lda #y
sta mulf8s_prepared.b
ldy y
jsr mulf8s_prepared
lda mulf8s_prepared.return
sta _6
@ -58,31 +71,30 @@ anim: {
sta _6+1
asl yr
rol yr+1
ldy angle
lda SIN,y
jsr mulf8u_prepare
lda #y
sta mulf8s_prepared.b
ldy y
jsr mulf8s_prepared
asl _11
rol _11+1
asl _10
rol _10+1
lda xr
sec
sbc _11
sbc _10
sta xr
lda xr+1
sbc _11+1
sbc _10+1
sta xr+1
lda #x
sta mulf8s_prepared.b
ldy x
jsr mulf8s_prepared
asl _13
rol _13+1
asl _12
rol _12+1
lda yr
clc
adc _13
adc _12
sta yr
lda yr+1
adc _13+1
adc _12+1
sta yr+1
lda xr+1
sta xpos
@ -98,34 +110,52 @@ anim: {
lda xpos+1
adc #0
sta xpos+1
lda xpos
sta SPRITES_XPOS
lda xpos+1
sta SPRITES_XMSB
lsr sprite_msb
cmp #0
beq b8
lda #$80
ora sprite_msb
sta sprite_msb
b8:
lda yr+1
clc
adc #$59+$33
sta SPRITES_YPOS
iny
dec BORDERCOL
tay
lda i
asl
tax
lda xpos
sta SPRITES_XPOS,x
tya
sta SPRITES_YPOS,x
inc i
lda i
cmp #8
beq !b7+
jmp b7
!b7:
lda sprite_msb
sta SPRITES_XMSB
inc angle
lda #LIGHT_BLUE
sta BORDERCOL
jmp b4
}
mulf8s_prepared: {
.label memA = $fd
.label m = 3
.label return = 3
.label b = 2
.label m = 5
.label return = 5
jsr mulf8u_prepared
lda memA
cmp #0
bpl b1
lda m+1
sty $ff
sec
sbc b
sbc $ff
sta m+1
b1:
lda b
cmp #0
cpy #0
bpl b2
lda m+1
sec
@ -137,10 +167,9 @@ mulf8s_prepared: {
mulf8u_prepared: {
.label resL = $fe
.label memB = $ff
.label return = 3
lda mulf8s_prepared.b
sta memB
tax
.label return = 5
sty memB
ldx memB
sec
sm1:
lda mulf_sqr1_lo,x
@ -170,40 +199,27 @@ mulf8u_prepare: {
}
init: {
.label sprites_ptr = SCREEN+$3f8
.label spr_x = 2
jsr mulf_init
lda #$ff
sta SPRITES_ENABLE
lda #$3c
sta spr_x
ldy #0
ldx #0
b1:
tya
asl
tax
lda #$ff&SPRITE/$40
sta sprites_ptr,y
lda spr_x
sta SPRITES_XPOS,x
sta SPRITES_YPOS,x
sta sprites_ptr,x
lda #GREEN
sta SPRITES_COLS,y
lda #$18
clc
adc spr_x
sta spr_x
iny
cpy #8
sta SPRITES_COLS,x
inx
cpx #8
bne b1
rts
}
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
lda #0
sta x_2
@ -311,6 +327,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

View File

@ -35,186 +35,202 @@ 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

File diff suppressed because it is too large Load Diff

View File

@ -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 ]