From 808ed90f83312d8d7a55f870fa8dcc6e352c6969 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Wed, 31 Oct 2018 00:45:59 +0100 Subject: [PATCH] Added working perspective to 3D rotation. --- src/main/fragment/vbsaa_ge_vbsc1_then_la1.asm | 6 + src/main/fragment/vbsaa_ge_vbsz1_then_la1.asm | 6 + src/main/fragment/vbsaa_le_vbsc1_then_la1.asm | 2 + src/main/fragment/vbsaa_le_vbsz1_then_la1.asm | 7 + .../dk/camelot64/kickc/test/TestPrograms.java | 5 + src/test/kc/examples/3d/3d.kc | 94 +- src/test/kc/examples/3d/perspective.kc | 138 + src/test/ref/examples/3d/3d.asm | 105 +- src/test/ref/examples/3d/3d.cfg | 256 +- src/test/ref/examples/3d/3d.log | 2588 +++++++----- src/test/ref/examples/3d/3d.sym | 32 +- src/test/ref/examples/3d/perspective.asm | 301 ++ src/test/ref/examples/3d/perspective.cfg | 212 + src/test/ref/examples/3d/perspective.log | 3701 +++++++++++++++++ src/test/ref/examples/3d/perspective.sym | 142 + 15 files changed, 6283 insertions(+), 1312 deletions(-) create mode 100644 src/main/fragment/vbsaa_ge_vbsc1_then_la1.asm create mode 100644 src/main/fragment/vbsaa_ge_vbsz1_then_la1.asm create mode 100644 src/main/fragment/vbsaa_le_vbsc1_then_la1.asm create mode 100644 src/main/fragment/vbsaa_le_vbsz1_then_la1.asm create mode 100644 src/test/kc/examples/3d/perspective.kc create mode 100644 src/test/ref/examples/3d/perspective.asm create mode 100644 src/test/ref/examples/3d/perspective.cfg create mode 100644 src/test/ref/examples/3d/perspective.log create mode 100644 src/test/ref/examples/3d/perspective.sym diff --git a/src/main/fragment/vbsaa_ge_vbsc1_then_la1.asm b/src/main/fragment/vbsaa_ge_vbsc1_then_la1.asm new file mode 100644 index 000000000..97faa87f8 --- /dev/null +++ b/src/main/fragment/vbsaa_ge_vbsc1_then_la1.asm @@ -0,0 +1,6 @@ +sec +sbc #{c1} +bvc !+ +eor #$80 +!: +bpl {la1} diff --git a/src/main/fragment/vbsaa_ge_vbsz1_then_la1.asm b/src/main/fragment/vbsaa_ge_vbsz1_then_la1.asm new file mode 100644 index 000000000..817b36711 --- /dev/null +++ b/src/main/fragment/vbsaa_ge_vbsz1_then_la1.asm @@ -0,0 +1,6 @@ +sec +sbc {z1} +bvc !+ +eor #$80 +!: +bpl {la1} diff --git a/src/main/fragment/vbsaa_le_vbsc1_then_la1.asm b/src/main/fragment/vbsaa_le_vbsc1_then_la1.asm new file mode 100644 index 000000000..11697ec89 --- /dev/null +++ b/src/main/fragment/vbsaa_le_vbsc1_then_la1.asm @@ -0,0 +1,2 @@ +cmp #{c1} +beq {la1} diff --git a/src/main/fragment/vbsaa_le_vbsz1_then_la1.asm b/src/main/fragment/vbsaa_le_vbsz1_then_la1.asm new file mode 100644 index 000000000..4b04c693c --- /dev/null +++ b/src/main/fragment/vbsaa_le_vbsz1_then_la1.asm @@ -0,0 +1,7 @@ +sec +sbc {z1} +beq {la1} +bvc !+ +eor #$80 +!: +bmi {la1} diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index b2530b13d..b3b3784cb 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -44,6 +44,11 @@ public class TestPrograms { AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false); } + @Test + public void test3DPerspective() throws IOException, URISyntaxException { + compileAndCompare("examples/3d/perspective"); + } + @Test public void test3D() throws IOException, URISyntaxException { compileAndCompare("examples/3d/3d"); diff --git a/src/test/kc/examples/3d/3d.kc b/src/test/kc/examples/3d/3d.kc index de8d82f0f..0f5ef867d 100644 --- a/src/test/kc/examples/3d/3d.kc +++ b/src/test/kc/examples/3d/3d.kc @@ -4,10 +4,25 @@ // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation import "c64" +// The rotated point - updated by calling rotate_matrix() +signed byte* xr = $f0; +signed byte* yr = $f1; +signed byte* zr = $f2; + +// The rotated point with perspective +signed byte* xp = $f3; +signed byte* yp = $f4; + +// Pointers used to multiply perspective (d/z0-z) onto x- & y-coordinates. Points into mulf_sqr1 / mulf_sqr2 +word* psp1 = $f5; +word* psp2 = $f7; + void main() { asm { sei } sprites_init(); mulf_init(); + *psp1 = (word)mulf_sqr1; + *psp2 = (word)mulf_sqr2; anim(); } @@ -20,6 +35,8 @@ void anim() { signed byte sx = 0; signed byte sy = 0; signed byte sz = 0; + //signed byte xmin = 0; + //signed byte xmax = 0; while(true) { while(*RASTER!=$ff) {} (*BORDERCOL)++; @@ -28,10 +45,12 @@ void anim() { for(byte i: 0..7) { (*BORDERCOL)++; rotate_matrix(xs[i], ys[i], zs[i]); + //if(*xrxmax) xmax = *xr; byte i2 = i<<1; - SPRITES_XPOS[i2] = $80+(byte)(*xr>>1); - SPRITES_YPOS[i2] = $80+(byte)(*yr>>1); - } + SPRITES_XPOS[i2] = $80+(byte)(*xp); + SPRITES_YPOS[i2] = $80+(byte)(*yp); + } // Increment angles sz++; sy--; @@ -123,11 +142,6 @@ void store_matrix() { } } -// The rotated point - updated by calling rotate() -signed byte* xr = $f0; -signed byte* yr = $f1; -signed byte* zr = $f2; - // Rotate a 3D point (x,y,z) using the rotation matrix // The rotation matrix is prepared by calling prepare_matrix() // The passed points must be in the interval [-$3f;$3f]. @@ -151,30 +165,61 @@ void rotate_matrix(signed byte x, signed byte y, signed byte z) { I1: lda mulf_sqr1,x I2: sbc mulf_sqr2,x sta I3+1 + ldx xr //x ldy yr //y + + I3: lda #0 // I*z + G1: adc mulf_sqr1,x + G2: sbc mulf_sqr2,x + H1: adc mulf_sqr1,y + H2: sbc mulf_sqr2,y + sta zr + + sta PP+1 + PP: lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + C3: lda #0 // C*z A1: adc mulf_sqr1,x A2: sbc mulf_sqr2,x B1: adc mulf_sqr1,y B2: sbc mulf_sqr2,y sta xr + // divide x by 2 to get x below $3f for multiplication + cmp #$80 + ror + sta XX+1 + clc + F3: lda #0 // F*z D1: adc mulf_sqr1,x D2: sbc mulf_sqr2,x E1: adc mulf_sqr1,y E2: sbc mulf_sqr2,y sta yr - I3: lda #0 // I*z - G1: adc mulf_sqr1,x - G2: sbc mulf_sqr2,x - H1: adc mulf_sqr1,y - H2: sbc mulf_sqr2,y - sta zr + + + // Calculate perspective for Y-position + // divide y by 2 to get x below $3f for multiplication + cmp #$80 + ror + clc + tay + lda (psp1),y + sbc (psp2),y + sta yp + + // Calculate perspective for X-position + XX: ldy #0 + lda (psp1),y + sbc (psp2),y + sta xp } } - // Multiplication tables for seriously fast multiplication. // This version is optimized for speed over accuracy // - It can multiply signed numbers with no extra code - but only for numbers in [-$3f;$3f] @@ -218,6 +263,24 @@ kickasm(pc SPRITE, resource "balloon.png") {{ .byte pic.getSinglecolorByte(x,y) }} +// Perspective multiplication table containing (d/(z0-z)[z] for each z-value +signed byte* PERSP_Z = $2400; + +kickasm(pc PERSP_Z) {{ + { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } +}} + // Sine and Cosine Tables // Angles: $00=0, $80=PI,$100=2*PI // Half Sine/Cosine: signed fixed [-$1f,$1f] @@ -249,4 +312,3 @@ kickasm(pc COSQ) {{ } }} - diff --git a/src/test/kc/examples/3d/perspective.kc b/src/test/kc/examples/3d/perspective.kc new file mode 100644 index 000000000..1bf0a689b --- /dev/null +++ b/src/test/kc/examples/3d/perspective.kc @@ -0,0 +1,138 @@ +// 3D Rotation using a Rotation Matrix +// Based on: +// - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt +// - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation +import "c64" +import "print" + +// The rotated point - updated by calling rotate() +signed byte* xr = $f0; +signed byte* yr = $f1; +signed byte* zr = $f2; + +// Pointers used to multiply perspective (d/z0-z) onto x- & y-coordinates. Points into mulf_sqr1 / mulf_sqr2. +word* psp1 = $f3; +word* psp2 = $f5; + +void main() { + asm { sei } + mulf_init(); + *psp1 = (word)mulf_sqr1; + *psp2 = (word)mulf_sqr2; + print_cls(); + do_perspective($39, -$47, $36); + /* + signed byte xy = -$3f; + do_perspective(xy, xy, -$3f); + do_perspective(xy, xy, -$30); + do_perspective(xy, xy, -$20); + do_perspective(xy, xy, -$10); + do_perspective(xy, xy, $00); + do_perspective(xy, xy, $10); + do_perspective(xy, xy, $20); + do_perspective(xy, xy, $30); + do_perspective(xy, xy, $3f); + */ +} + + +void do_perspective(signed byte x, signed byte y, signed byte z) { + print_str("(@"); + print_sbyte(x); + print_str(",@"); + print_sbyte(y); + print_str(",@"); + print_sbyte(z); + print_str(") -> (@"); + perspective(x, y, z); + print_byte((byte)*xr); + print_str(",@"); + print_byte((byte)*yr); + print_str(")@"); + print_ln(); +} + + +// Apply perspective to a 3d-point. Result is returned in (*xr,*yr) +// Implemented in assembler to utilize seriously fast multiplication +void perspective(signed byte x, signed byte y, signed byte z) { + *xr = x; + *yr = y; + *zr = z; + asm { + + // Update index in perspective lookup + lda zr + sta PP+1 + PP: lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + + // Calculate perspective for Y-position + clc + ldy yr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta yr + + // Calculate perspective for X-position + clc + ldy xr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta xr + } +} + +// Multiplication tables for seriously fast multiplication. +// This version is optimized for speed over accuracy +// - It can multiply signed numbers with no extra code - but only for numbers in [-$3f;$3f] +// - It throws away the low part of the 32-bit result +// - It return >a*b*4 to maximize precision (when passed maximal input values $3f*$3f the result is $3e) +// See the following for information about the method +// - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication +// - http://codebase64.org/doku.php?id=magazines:chacking16 +// mulf_sqr tables will contain f(x)=int(x*x) and g(x) = f(1-x). +// f(x) = >(( x * x )) +byte[512] align($100) mulf_sqr1; +// g(x) = >((( 1 - x ) * ( 1 - x ))) +byte[512] align($100) mulf_sqr2; + +// Initialize the mulf_sqr multiplication tables with f(x)=int(x*x) and g(x) = f(1-x) +void mulf_init() { + signed word sqr = 0; + signed word add = 1; + for( byte i:0..128) { + byte val = >sqr; + mulf_sqr1[i] = val; + (mulf_sqr1+$100)[i] = val; + mulf_sqr1[-i] = val; + (mulf_sqr1+$100)[-i] = val; + mulf_sqr2[i+1] = val; + (mulf_sqr2+$100)[i+1] = val; + mulf_sqr2[1-i] = val; + (mulf_sqr2+$100)[1-i] = val; + sqr += add; + add +=2; + } +} + +// Perspective multiplication table containing (d/(z0-z)[z] for each z-value +signed byte* PERSP_Z = $2400; + +kickasm(pc PERSP_Z) {{ + { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } +}} diff --git a/src/test/ref/examples/3d/3d.asm b/src/test/ref/examples/3d/3d.asm index 995dca9f7..1540e705f 100644 --- a/src/test/ref/examples/3d/3d.asm +++ b/src/test/ref/examples/3d/3d.asm @@ -12,7 +12,12 @@ .label xr = $f0 .label yr = $f1 .label zr = $f2 + .label xp = $f3 + .label yp = $f4 + .label psp1 = $f5 + .label psp2 = $f7 .label SPRITE = $3000 + .label PERSP_Z = $2400 .label COSH = $2000 .label COSQ = $2200 .label SINH = COSH+$40 @@ -22,6 +27,14 @@ main: { sei jsr sprites_init jsr mulf_init + lda #mulf_sqr1 + sta psp1+1 + lda #mulf_sqr2 + sta psp2+1 jsr anim rts } @@ -58,17 +71,13 @@ anim: { lda i asl tax - lda xr - cmp #$80 - ror + lda #$80 clc - adc #$80 + adc xp sta SPRITES_XPOS,x - lda yr - cmp #$80 - ror + lda #$80 clc - adc #$80 + adc yp sta SPRITES_YPOS,x inc i lda i @@ -113,28 +122,6 @@ rotate_matrix: { sta I3+1 ldx xr ldy yr - C3: - lda #0 - A1: - adc mulf_sqr1,x - A2: - sbc mulf_sqr2,x - B1: - adc mulf_sqr1,y - B2: - sbc mulf_sqr2,y - sta xr - F3: - lda #0 - D1: - adc mulf_sqr1,x - D2: - sbc mulf_sqr2,x - E1: - adc mulf_sqr1,y - E2: - sbc mulf_sqr2,y - sta yr I3: lda #0 G1: @@ -146,6 +133,50 @@ rotate_matrix: { H2: sbc mulf_sqr2,y sta zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + C3: + lda #0 + A1: + adc mulf_sqr1,x + A2: + sbc mulf_sqr2,x + B1: + adc mulf_sqr1,y + B2: + sbc mulf_sqr2,y + sta xr + cmp #$80 + ror + sta XX+1 + clc + F3: + lda #0 + D1: + adc mulf_sqr1,x + D2: + sbc mulf_sqr2,x + E1: + adc mulf_sqr1,y + E2: + sbc mulf_sqr2,y + sta yr + cmp #$80 + ror + clc + tay + lda (psp1),y + sbc (psp2),y + sta yp + XX: + ldy #0 + lda (psp1),y + sbc (psp2),y + sta xp rts } store_matrix: { @@ -439,6 +470,20 @@ sprites_init: { .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + .pc = COSH "Inline" { .var min = -$1fff diff --git a/src/test/ref/examples/3d/3d.cfg b/src/test/ref/examples/3d/3d.cfg index fe7f0fda1..fe8aeae0a 100644 --- a/src/test/ref/examples/3d/3d.cfg +++ b/src/test/ref/examples/3d/3d.cfg @@ -6,6 +6,19 @@ .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) + }} + kickasm(location (const signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } }} kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff @@ -27,181 +40,180 @@ } } }} - [4] call main [ ] ( ) + [5] call main [ ] ( ) to:@end @end: scope:[] from @10 - [5] phi() [ ] ( ) + [6] phi() [ ] ( ) main: scope:[main] from @10 asm { sei } - [7] call sprites_init [ ] ( main:4 [ ] ) + [8] call sprites_init [ ] ( main:5 [ ] ) to:main::@1 main::@1: scope:[main] from main - [8] phi() [ ] ( main:4 [ ] ) - [9] call mulf_init [ ] ( main:4 [ ] ) + [9] phi() [ ] ( main:5 [ ] ) + [10] call mulf_init [ ] ( main:5 [ ] ) to:main::@2 main::@2: scope:[main] from main::@1 - [10] phi() [ ] ( main:4 [ ] ) - [11] call anim [ ] ( main:4 [ ] ) + [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) + [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) + [13] call anim [ ] ( main:5 [ ] ) to:main::@return main::@return: scope:[main] from main::@2 - [12] return [ ] ( main:4 [ ] ) + [14] return [ ] ( main:5 [ ] ) to:@return anim: scope:[anim] from main::@2 - [13] phi() [ ] ( main:4::anim:11 [ ] ) + [15] phi() [ ] ( main:5::anim:13 [ ] ) to:anim::@1 anim::@1: scope:[anim] from anim anim::@8 - [14] (signed byte) anim::sz#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sz#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [14] (signed byte) anim::sy#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sy#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [14] (signed byte) anim::sx#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sx#11 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sz#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sz#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sy#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sy#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sx#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sx#11 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@6 anim::@6: scope:[anim] from anim::@4 - [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [17] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) - [18] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) - [19] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) - [20] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [18] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [19] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) + [20] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) + [21] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) + [22] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@17 anim::@17: scope:[anim] from anim::@6 - [21] phi() [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [22] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [23] phi() [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [24] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@7 anim::@7: scope:[anim] from anim::@17 anim::@19 - [23] (byte) anim::i#2 ← phi( anim::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@19/(byte) anim::i#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [24] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [25] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) - [26] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) - [27] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) - [28] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [25] (byte) anim::i#2 ← phi( anim::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@19/(byte) anim::i#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [27] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) + [28] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) + [29] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) + [30] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) to:anim::@19 anim::@19: scope:[anim] from anim::@7 - [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) - [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) - [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) - [32] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) - [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) - [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) - [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) - [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) + [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) + [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) + [33] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) + [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) + [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) + [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) to:anim::@14 anim::@14: scope:[anim] from anim::@19 - [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) - [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) - [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) - [41] if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) + [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) + [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) + [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) + [41] if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) to:anim::@15 anim::@15: scope:[anim] from anim::@14 - [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:4::anim:11 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) + [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:5::anim:13 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) to:anim::@8 anim::@8: scope:[anim] from anim::@14 anim::@15 - [43] (signed byte) anim::sx#11 ← phi( anim::@14/(signed byte) anim::sx#6 anim::@15/(signed byte) anim::sx#1 ) [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) - [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) + [43] (signed byte) anim::sx#11 ← phi( anim::@14/(signed byte) anim::sx#6 anim::@15/(signed byte) anim::sx#1 ) [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) + [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) to:anim::@1 rotate_matrix: scope:[rotate_matrix] from anim::@7 - [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) - [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) - [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) + [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) + [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } to:rotate_matrix::@return rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix - [49] return [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [49] return [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) to:@return store_matrix: scope:[store_matrix] from anim::@17 asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1 } to:store_matrix::@return store_matrix::@return: scope:[store_matrix] from store_matrix - [51] return [ ] ( main:4::anim:11::store_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [51] return [ ] ( main:5::anim:13::store_matrix:24 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:@return calculate_matrix: scope:[calculate_matrix] from anim::@6 - [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) - [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) - [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) - [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) - [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) - [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) - [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) - [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) - [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) - [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) - [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) - [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) - [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) - [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) - [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) - [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) - [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) - [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) - [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) - [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) - [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) - [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) - [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) - [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) - [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) - [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) - [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) - [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) - [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) - [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) - [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) - [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) - [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) - [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) - [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) + [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) + [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) + [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) + [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) + [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) + [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) + [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) + [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) + [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) + [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) + [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) + [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) + [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) + [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) + [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) + [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) + [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) + [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) + [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) + [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) + [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) + [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) + [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) + [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) + [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) + [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) + [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) + [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) + [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) + [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) + [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) + [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) + [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) + [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:calculate_matrix::@return calculate_matrix::@return: scope:[calculate_matrix] from calculate_matrix - [96] return [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [96] return [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:@return mulf_init: scope:[mulf_init] from main::@1 - [97] phi() [ ] ( main:4::mulf_init:9 [ ] ) + [97] phi() [ ] ( main:5::mulf_init:10 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 - [98] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [98] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [98] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) - [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) - [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) - [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) - [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) - [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) - [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) - [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [98] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) + [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) + [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) + [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) + [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) + [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) + [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 - [116] return [ ] ( main:4::mulf_init:9 [ ] ) + [116] return [ ] ( main:5::mulf_init:10 [ ] ) to:@return sprites_init: scope:[sprites_init] from main - [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) + [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [118] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) - [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) + [118] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [123] return [ ] ( main:4::sprites_init:7 [ ] ) + [123] return [ ] ( main:5::sprites_init:8 [ ] ) to:@return diff --git a/src/test/ref/examples/3d/3d.log b/src/test/ref/examples/3d/3d.log index edb5fa5f1..431ee0133 100644 --- a/src/test/ref/examples/3d/3d.log +++ b/src/test/ref/examples/3d/3d.log @@ -1,5 +1,5 @@ -Resolved forward reference xr to (signed byte*) xr -Resolved forward reference yr to (signed byte*) yr +Resolved forward reference mulf_sqr1 to (byte[512]) mulf_sqr1 +Resolved forward reference mulf_sqr2 to (byte[512]) mulf_sqr2 Resolved forward reference SPRITE to (byte*) SPRITE Resolved forward reference COSH to (signed byte*) COSH Resolved forward reference COSH to (signed byte*) COSH @@ -47,16 +47,29 @@ CONTROL FLOW GRAPH SSA (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 + to:@3 +@3: scope:[] from @begin + (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 + (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 + (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 + (signed byte*) xp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 243 + (signed byte*) yp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 244 + (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 245 + (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 247 to:@4 main: scope:[main] from @10 (signed byte*) zr#17 ← phi( @10/(signed byte*) zr#18 ) (signed byte*) yr#17 ← phi( @10/(signed byte*) yr#18 ) (signed byte*) xr#17 ← phi( @10/(signed byte*) xr#18 ) + (signed byte*) yp#16 ← phi( @10/(signed byte*) yp#17 ) + (signed byte*) xp#16 ← phi( @10/(signed byte*) xp#17 ) (signed byte*) SINQ#14 ← phi( @10/(signed byte*) SINQ#0 ) (signed byte*) COSQ#14 ← phi( @10/(signed byte*) COSQ#0 ) (signed byte*) SINH#14 ← phi( @10/(signed byte*) SINH#0 ) (signed byte*) COSH#14 ← phi( @10/(signed byte*) COSH#0 ) (byte*) SPRITE#3 ← phi( @10/(byte*) SPRITE#0 ) + (word*) psp2#3 ← phi( @10/(word*) psp2#4 ) + (word*) psp1#3 ← phi( @10/(word*) psp1#4 ) asm { sei } call sprites_init to:main::@1 @@ -64,20 +77,32 @@ main::@1: scope:[main] from main (signed byte*) zr#16 ← phi( main/(signed byte*) zr#17 ) (signed byte*) yr#16 ← phi( main/(signed byte*) yr#17 ) (signed byte*) xr#16 ← phi( main/(signed byte*) xr#17 ) + (signed byte*) yp#15 ← phi( main/(signed byte*) yp#16 ) + (signed byte*) xp#15 ← phi( main/(signed byte*) xp#16 ) (signed byte*) SINQ#12 ← phi( main/(signed byte*) SINQ#14 ) (signed byte*) COSQ#12 ← phi( main/(signed byte*) COSQ#14 ) (signed byte*) SINH#12 ← phi( main/(signed byte*) SINH#14 ) (signed byte*) COSH#12 ← phi( main/(signed byte*) COSH#14 ) + (word*) psp2#2 ← phi( main/(word*) psp2#3 ) + (word*) psp1#2 ← phi( main/(word*) psp1#3 ) call mulf_init to:main::@2 main::@2: scope:[main] from main::@1 (signed byte*) zr#13 ← phi( main::@1/(signed byte*) zr#16 ) (signed byte*) yr#13 ← phi( main::@1/(signed byte*) yr#16 ) (signed byte*) xr#13 ← phi( main::@1/(signed byte*) xr#16 ) + (signed byte*) yp#12 ← phi( main::@1/(signed byte*) yp#15 ) + (signed byte*) xp#12 ← phi( main::@1/(signed byte*) xp#15 ) (signed byte*) SINQ#9 ← phi( main::@1/(signed byte*) SINQ#12 ) (signed byte*) COSQ#9 ← phi( main::@1/(signed byte*) COSQ#12 ) (signed byte*) SINH#9 ← phi( main::@1/(signed byte*) SINH#12 ) (signed byte*) COSH#9 ← phi( main::@1/(signed byte*) COSH#12 ) + (word*) psp2#1 ← phi( main::@1/(word*) psp2#2 ) + (word*) psp1#1 ← phi( main::@1/(word*) psp1#2 ) + (word~) main::$2 ← ((word)) (byte[512]) mulf_sqr1#0 + *((word*) psp1#1) ← (word~) main::$2 + (word~) main::$3 ← ((word)) (byte[512]) mulf_sqr2#0 + *((word*) psp2#1) ← (word~) main::$3 call anim to:main::@3 main::@3: scope:[main] from main::@2 @@ -85,7 +110,14 @@ main::@3: scope:[main] from main::@2 main::@return: scope:[main] from main::@3 return to:@return -@4: scope:[] from @begin +@4: scope:[] from @3 + (signed byte*) zr#21 ← phi( @3/(signed byte*) zr#0 ) + (signed byte*) yr#21 ← phi( @3/(signed byte*) yr#0 ) + (signed byte*) xr#21 ← phi( @3/(signed byte*) xr#0 ) + (signed byte*) yp#20 ← phi( @3/(signed byte*) yp#0 ) + (signed byte*) xp#20 ← phi( @3/(signed byte*) xp#0 ) + (word*) psp2#7 ← phi( @3/(word*) psp2#0 ) + (word*) psp1#7 ← phi( @3/(word*) psp1#0 ) (signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 @@ -106,6 +138,8 @@ anim: scope:[anim] from main::@2 (signed byte*) zr#11 ← phi( main::@2/(signed byte*) zr#13 ) (signed byte*) yr#11 ← phi( main::@2/(signed byte*) yr#13 ) (signed byte*) xr#11 ← phi( main::@2/(signed byte*) xr#13 ) + (signed byte*) yp#10 ← phi( main::@2/(signed byte*) yp#12 ) + (signed byte*) xp#10 ← phi( main::@2/(signed byte*) xp#12 ) (signed byte*) SINQ#7 ← phi( main::@2/(signed byte*) SINQ#9 ) (signed byte*) COSQ#7 ← phi( main::@2/(signed byte*) COSQ#9 ) (signed byte*) SINH#7 ← phi( main::@2/(signed byte*) SINH#9 ) @@ -118,6 +152,8 @@ anim::@1: scope:[anim] from anim anim::@8 (signed byte*) zr#10 ← phi( anim/(signed byte*) zr#11 anim::@8/(signed byte*) zr#12 ) (signed byte*) yr#10 ← phi( anim/(signed byte*) yr#11 anim::@8/(signed byte*) yr#12 ) (signed byte*) xr#10 ← phi( anim/(signed byte*) xr#11 anim::@8/(signed byte*) xr#12 ) + (signed byte*) yp#9 ← phi( anim/(signed byte*) yp#10 anim::@8/(signed byte*) yp#11 ) + (signed byte*) xp#9 ← phi( anim/(signed byte*) xp#10 anim::@8/(signed byte*) xp#11 ) (signed byte*) SINQ#6 ← phi( anim/(signed byte*) SINQ#7 anim::@8/(signed byte*) SINQ#8 ) (signed byte*) COSQ#6 ← phi( anim/(signed byte*) COSQ#7 anim::@8/(signed byte*) COSQ#8 ) (signed byte*) SINH#6 ← phi( anim/(signed byte*) SINH#7 anim::@8/(signed byte*) SINH#8 ) @@ -131,6 +167,8 @@ anim::@2: scope:[anim] from anim::@1 (signed byte*) zr#8 ← phi( anim::@1/(signed byte*) zr#10 ) (signed byte*) yr#8 ← phi( anim::@1/(signed byte*) yr#10 ) (signed byte*) xr#8 ← phi( anim::@1/(signed byte*) xr#10 ) + (signed byte*) yp#7 ← phi( anim::@1/(signed byte*) yp#9 ) + (signed byte*) xp#7 ← phi( anim::@1/(signed byte*) xp#9 ) (signed byte*) SINQ#4 ← phi( anim::@1/(signed byte*) SINQ#6 ) (signed byte*) COSQ#4 ← phi( anim::@1/(signed byte*) COSQ#6 ) (signed byte*) SINH#4 ← phi( anim::@1/(signed byte*) SINH#6 ) @@ -143,6 +181,8 @@ anim::@4: scope:[anim] from anim::@2 anim::@5 (signed byte*) zr#7 ← phi( anim::@2/(signed byte*) zr#8 anim::@5/(signed byte*) zr#9 ) (signed byte*) yr#7 ← phi( anim::@2/(signed byte*) yr#8 anim::@5/(signed byte*) yr#9 ) (signed byte*) xr#7 ← phi( anim::@2/(signed byte*) xr#8 anim::@5/(signed byte*) xr#9 ) + (signed byte*) yp#6 ← phi( anim::@2/(signed byte*) yp#7 anim::@5/(signed byte*) yp#8 ) + (signed byte*) xp#6 ← phi( anim::@2/(signed byte*) xp#7 anim::@5/(signed byte*) xp#8 ) (signed byte*) SINQ#3 ← phi( anim::@2/(signed byte*) SINQ#4 anim::@5/(signed byte*) SINQ#5 ) (signed byte*) COSQ#3 ← phi( anim::@2/(signed byte*) COSQ#4 anim::@5/(signed byte*) COSQ#5 ) (signed byte*) SINH#3 ← phi( anim::@2/(signed byte*) SINH#4 anim::@5/(signed byte*) SINH#5 ) @@ -157,6 +197,8 @@ anim::@5: scope:[anim] from anim::@4 (signed byte*) zr#9 ← phi( anim::@4/(signed byte*) zr#7 ) (signed byte*) yr#9 ← phi( anim::@4/(signed byte*) yr#7 ) (signed byte*) xr#9 ← phi( anim::@4/(signed byte*) xr#7 ) + (signed byte*) yp#8 ← phi( anim::@4/(signed byte*) yp#6 ) + (signed byte*) xp#8 ← phi( anim::@4/(signed byte*) xp#6 ) (signed byte*) SINQ#5 ← phi( anim::@4/(signed byte*) SINQ#3 ) (signed byte*) COSQ#5 ← phi( anim::@4/(signed byte*) COSQ#3 ) (signed byte*) SINH#5 ← phi( anim::@4/(signed byte*) SINH#3 ) @@ -169,6 +211,8 @@ anim::@6: scope:[anim] from anim::@4 (signed byte*) zr#6 ← phi( anim::@4/(signed byte*) zr#7 ) (signed byte*) yr#6 ← phi( anim::@4/(signed byte*) yr#7 ) (signed byte*) xr#6 ← phi( anim::@4/(signed byte*) xr#7 ) + (signed byte*) yp#5 ← phi( anim::@4/(signed byte*) yp#6 ) + (signed byte*) xp#5 ← phi( anim::@4/(signed byte*) xp#6 ) (signed byte*) SINQ#2 ← phi( anim::@4/(signed byte*) SINQ#3 ) (signed byte*) COSQ#2 ← phi( anim::@4/(signed byte*) COSQ#3 ) (signed byte*) SINH#2 ← phi( anim::@4/(signed byte*) SINH#3 ) @@ -193,6 +237,8 @@ anim::@17: scope:[anim] from anim::@6 (signed byte*) zr#5 ← phi( anim::@6/(signed byte*) zr#6 ) (signed byte*) yr#5 ← phi( anim::@6/(signed byte*) yr#6 ) (signed byte*) xr#5 ← phi( anim::@6/(signed byte*) xr#6 ) + (signed byte*) yp#4 ← phi( anim::@6/(signed byte*) yp#5 ) + (signed byte*) xp#4 ← phi( anim::@6/(signed byte*) xp#5 ) call store_matrix to:anim::@18 anim::@18: scope:[anim] from anim::@17 @@ -204,8 +250,10 @@ anim::@18: scope:[anim] from anim::@17 (signed byte) anim::sy#10 ← phi( anim::@17/(signed byte) anim::sy#12 ) (signed byte) anim::sz#10 ← phi( anim::@17/(signed byte) anim::sz#12 ) (signed byte*) zr#3 ← phi( anim::@17/(signed byte*) zr#5 ) - (signed byte*) yr#4 ← phi( anim::@17/(signed byte*) yr#5 ) - (signed byte*) xr#4 ← phi( anim::@17/(signed byte*) xr#5 ) + (signed byte*) yr#3 ← phi( anim::@17/(signed byte*) yr#5 ) + (signed byte*) xr#3 ← phi( anim::@17/(signed byte*) xr#5 ) + (signed byte*) yp#3 ← phi( anim::@17/(signed byte*) yp#4 ) + (signed byte*) xp#3 ← phi( anim::@17/(signed byte*) xp#4 ) (byte) anim::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:anim::@7 anim::@7: scope:[anim] from anim::@18 anim::@19 @@ -217,8 +265,10 @@ anim::@7: scope:[anim] from anim::@18 anim::@19 (signed byte) anim::sy#8 ← phi( anim::@18/(signed byte) anim::sy#10 anim::@19/(signed byte) anim::sy#5 ) (signed byte) anim::sz#8 ← phi( anim::@18/(signed byte) anim::sz#10 anim::@19/(signed byte) anim::sz#5 ) (signed byte*) zr#2 ← phi( anim::@18/(signed byte*) zr#3 anim::@19/(signed byte*) zr#4 ) - (signed byte*) yr#3 ← phi( anim::@18/(signed byte*) yr#4 anim::@19/(signed byte*) yr#1 ) - (signed byte*) xr#3 ← phi( anim::@18/(signed byte*) xr#4 anim::@19/(signed byte*) xr#1 ) + (signed byte*) yr#2 ← phi( anim::@18/(signed byte*) yr#3 anim::@19/(signed byte*) yr#4 ) + (signed byte*) xr#2 ← phi( anim::@18/(signed byte*) xr#3 anim::@19/(signed byte*) xr#4 ) + (signed byte*) yp#2 ← phi( anim::@18/(signed byte*) yp#3 anim::@19/(signed byte*) yp#1 ) + (signed byte*) xp#2 ← phi( anim::@18/(signed byte*) xp#3 anim::@19/(signed byte*) xp#1 ) (byte) anim::i#2 ← phi( anim::@18/(byte) anim::i#0 anim::@19/(byte) anim::i#1 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (signed byte) rotate_matrix::x#0 ← *((signed byte[8]) xs#0 + (byte) anim::i#2) @@ -233,29 +283,31 @@ anim::@19: scope:[anim] from anim::@7 (signed byte*) COSH#13 ← phi( anim::@7/(signed byte*) COSH#15 ) (signed byte) anim::sx#8 ← phi( anim::@7/(signed byte) anim::sx#10 ) (signed byte*) zr#4 ← phi( anim::@7/(signed byte*) zr#2 ) + (signed byte*) yr#4 ← phi( anim::@7/(signed byte*) yr#2 ) + (signed byte*) xr#4 ← phi( anim::@7/(signed byte*) xr#2 ) (signed byte) anim::sy#5 ← phi( anim::@7/(signed byte) anim::sy#8 ) (signed byte) anim::sz#5 ← phi( anim::@7/(signed byte) anim::sz#8 ) - (signed byte*) yr#1 ← phi( anim::@7/(signed byte*) yr#3 ) - (signed byte*) xr#1 ← phi( anim::@7/(signed byte*) xr#3 ) + (signed byte*) yp#1 ← phi( anim::@7/(signed byte*) yp#2 ) + (signed byte*) xp#1 ← phi( anim::@7/(signed byte*) xp#2 ) (byte) anim::i#3 ← phi( anim::@7/(byte) anim::i#2 ) (byte~) anim::$4 ← (byte) anim::i#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) anim::i2#0 ← (byte~) anim::$4 - (signed byte~) anim::$5 ← *((signed byte*) xr#1) >> (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte~) anim::$6 ← ((byte)) (signed byte~) anim::$5 - (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$6 - *((byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 - (signed byte~) anim::$8 ← *((signed byte*) yr#1) >> (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte~) anim::$9 ← ((byte)) (signed byte~) anim::$8 - (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$9 - *((byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 + (byte~) anim::$5 ← ((byte)) *((signed byte*) xp#1) + (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$5 + *((byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 + (byte~) anim::$7 ← ((byte)) *((signed byte*) yp#1) + (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$7 + *((byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 (byte) anim::i#1 ← (byte) anim::i#3 + rangenext(0,7) - (bool~) anim::$11 ← (byte) anim::i#1 != rangelast(0,7) - if((bool~) anim::$11) goto anim::@7 + (bool~) anim::$9 ← (byte) anim::i#1 != rangelast(0,7) + if((bool~) anim::$9) goto anim::@7 to:anim::@14 anim::@14: scope:[anim] from anim::@19 (signed byte*) zr#14 ← phi( anim::@19/(signed byte*) zr#4 ) - (signed byte*) yr#14 ← phi( anim::@19/(signed byte*) yr#1 ) - (signed byte*) xr#14 ← phi( anim::@19/(signed byte*) xr#1 ) + (signed byte*) yr#14 ← phi( anim::@19/(signed byte*) yr#4 ) + (signed byte*) xr#14 ← phi( anim::@19/(signed byte*) xr#4 ) + (signed byte*) yp#13 ← phi( anim::@19/(signed byte*) yp#1 ) + (signed byte*) xp#13 ← phi( anim::@19/(signed byte*) xp#1 ) (signed byte*) SINQ#10 ← phi( anim::@19/(signed byte*) SINQ#13 ) (signed byte*) COSQ#10 ← phi( anim::@19/(signed byte*) COSQ#13 ) (signed byte*) SINH#10 ← phi( anim::@19/(signed byte*) SINH#13 ) @@ -265,15 +317,17 @@ anim::@14: scope:[anim] from anim::@19 (signed byte) anim::sz#3 ← phi( anim::@19/(signed byte) anim::sz#5 ) (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#3 (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#3 - (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 - (bool~) anim::$13 ← (byte~) anim::$12 == (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) anim::$14 ← ! (bool~) anim::$13 - if((bool~) anim::$14) goto anim::@8 + (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 + (bool~) anim::$11 ← (byte~) anim::$10 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) anim::$12 ← ! (bool~) anim::$11 + if((bool~) anim::$12) goto anim::@8 to:anim::@15 anim::@8: scope:[anim] from anim::@14 anim::@15 (signed byte*) zr#12 ← phi( anim::@14/(signed byte*) zr#14 anim::@15/(signed byte*) zr#15 ) (signed byte*) yr#12 ← phi( anim::@14/(signed byte*) yr#14 anim::@15/(signed byte*) yr#15 ) (signed byte*) xr#12 ← phi( anim::@14/(signed byte*) xr#14 anim::@15/(signed byte*) xr#15 ) + (signed byte*) yp#11 ← phi( anim::@14/(signed byte*) yp#13 anim::@15/(signed byte*) yp#14 ) + (signed byte*) xp#11 ← phi( anim::@14/(signed byte*) xp#13 anim::@15/(signed byte*) xp#14 ) (signed byte*) SINQ#8 ← phi( anim::@14/(signed byte*) SINQ#10 anim::@15/(signed byte*) SINQ#11 ) (signed byte*) COSQ#8 ← phi( anim::@14/(signed byte*) COSQ#10 anim::@15/(signed byte*) COSQ#11 ) (signed byte*) SINH#8 ← phi( anim::@14/(signed byte*) SINH#10 anim::@15/(signed byte*) SINH#11 ) @@ -287,6 +341,8 @@ anim::@15: scope:[anim] from anim::@14 (signed byte*) zr#15 ← phi( anim::@14/(signed byte*) zr#14 ) (signed byte*) yr#15 ← phi( anim::@14/(signed byte*) yr#14 ) (signed byte*) xr#15 ← phi( anim::@14/(signed byte*) xr#14 ) + (signed byte*) yp#14 ← phi( anim::@14/(signed byte*) yp#13 ) + (signed byte*) xp#14 ← phi( anim::@14/(signed byte*) xp#13 ) (signed byte*) SINQ#11 ← phi( anim::@14/(signed byte*) SINQ#10 ) (signed byte*) COSQ#11 ← phi( anim::@14/(signed byte*) COSQ#10 ) (signed byte*) SINH#11 ← phi( anim::@14/(signed byte*) SINH#10 ) @@ -323,8 +379,15 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 return to:@return @6: scope:[] from @4 + (signed byte*) zr#20 ← phi( @4/(signed byte*) zr#21 ) + (signed byte*) yr#20 ← phi( @4/(signed byte*) yr#21 ) + (signed byte*) xr#20 ← phi( @4/(signed byte*) xr#21 ) + (signed byte*) yp#19 ← phi( @4/(signed byte*) yp#20 ) + (signed byte*) xp#19 ← phi( @4/(signed byte*) xp#20 ) + (word*) psp2#6 ← phi( @4/(word*) psp2#7 ) + (word*) psp1#6 ← phi( @4/(word*) psp1#7 ) (signed byte[9]) rotation_matrix#0 ← { fill( 9, 0) } - to:@8 + to:@9 calculate_matrix: scope:[calculate_matrix] from anim::@6 (signed byte*) SINQ#1 ← phi( anim::@6/(signed byte*) SINQ#2 ) (signed byte*) COSQ#1 ← phi( anim::@6/(signed byte*) COSQ#2 ) @@ -397,30 +460,29 @@ store_matrix: scope:[store_matrix] from anim::@17 store_matrix::@return: scope:[store_matrix] from store_matrix return to:@return -@8: scope:[] from @6 - (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 - (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 - (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 - to:@9 rotate_matrix: scope:[rotate_matrix] from anim::@7 (signed byte*) zr#1 ← phi( anim::@7/(signed byte*) zr#2 ) (signed byte) rotate_matrix::z#1 ← phi( anim::@7/(signed byte) rotate_matrix::z#0 ) - (signed byte*) yr#2 ← phi( anim::@7/(signed byte*) yr#3 ) + (signed byte*) yr#1 ← phi( anim::@7/(signed byte*) yr#2 ) (signed byte) rotate_matrix::y#1 ← phi( anim::@7/(signed byte) rotate_matrix::y#0 ) - (signed byte*) xr#2 ← phi( anim::@7/(signed byte*) xr#3 ) + (signed byte*) xr#1 ← phi( anim::@7/(signed byte*) xr#2 ) (signed byte) rotate_matrix::x#1 ← phi( anim::@7/(signed byte) rotate_matrix::x#0 ) - *((signed byte*) xr#2) ← (signed byte) rotate_matrix::x#1 - *((signed byte*) yr#2) ← (signed byte) rotate_matrix::y#1 + *((signed byte*) xr#1) ← (signed byte) rotate_matrix::x#1 + *((signed byte*) yr#1) ← (signed byte) rotate_matrix::y#1 *((signed byte*) zr#1) ← (signed byte) rotate_matrix::z#1 - asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } to:rotate_matrix::@return rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix return to:@return -@9: scope:[] from @8 - (signed byte*) zr#19 ← phi( @8/(signed byte*) zr#0 ) - (signed byte*) yr#19 ← phi( @8/(signed byte*) yr#0 ) - (signed byte*) xr#19 ← phi( @8/(signed byte*) xr#0 ) +@9: scope:[] from @6 + (signed byte*) zr#19 ← phi( @6/(signed byte*) zr#20 ) + (signed byte*) yr#19 ← phi( @6/(signed byte*) yr#20 ) + (signed byte*) xr#19 ← phi( @6/(signed byte*) xr#20 ) + (signed byte*) yp#18 ← phi( @6/(signed byte*) yp#19 ) + (signed byte*) xp#18 ← phi( @6/(signed byte*) xp#19 ) + (word*) psp2#5 ← phi( @6/(word*) psp2#6 ) + (word*) psp1#5 ← phi( @6/(word*) psp1#6 ) (byte[512]) mulf_sqr1#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2#0 ← { fill( 512, 0) } to:@10 @@ -466,11 +528,29 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@1 (signed byte*) zr#18 ← phi( @9/(signed byte*) zr#19 ) (signed byte*) yr#18 ← phi( @9/(signed byte*) yr#19 ) (signed byte*) xr#18 ← phi( @9/(signed byte*) xr#19 ) + (signed byte*) yp#17 ← phi( @9/(signed byte*) yp#18 ) + (signed byte*) xp#17 ← phi( @9/(signed byte*) xp#18 ) + (word*) psp2#4 ← phi( @9/(word*) psp2#5 ) + (word*) psp1#4 ← phi( @9/(word*) psp1#5 ) (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 kickasm(location (byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) + }} + (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 9216 + kickasm(location (signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } }} (signed byte*) COSH#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 8192 (signed byte*~) $12 ← (signed byte*) COSH#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 @@ -521,9 +601,9 @@ SYMBOL TABLE SSA (signed byte/signed word/signed dword~) $9 (label) @10 (label) @11 +(label) @3 (label) @4 (label) @6 -(label) @8 (label) @9 (label) @begin (label) @end @@ -571,6 +651,8 @@ SYMBOL TABLE SSA (byte) GREEN#0 (byte) LIGHT_BLUE (byte) LIGHT_BLUE#0 +(signed byte*) PERSP_Z +(signed byte*) PERSP_Z#0 (byte*) RASTER (byte*) RASTER#0 (signed byte*) SINH @@ -626,17 +708,15 @@ SYMBOL TABLE SSA (byte*) SPRITES_YPOS#0 (void()) anim() (bool~) anim::$0 -(byte/word/signed word/dword/signed dword~) anim::$10 +(byte~) anim::$10 (bool~) anim::$11 -(byte~) anim::$12 -(bool~) anim::$13 -(bool~) anim::$14 +(bool~) anim::$12 (byte~) anim::$4 -(signed byte~) anim::$5 -(byte~) anim::$6 -(byte/word/signed word/dword/signed dword~) anim::$7 -(signed byte~) anim::$8 -(byte~) anim::$9 +(byte~) anim::$5 +(byte/word/signed word/dword/signed dword~) anim::$6 +(byte~) anim::$7 +(byte/word/signed word/dword/signed dword~) anim::$8 +(bool~) anim::$9 (label) anim::@1 (label) anim::@14 (label) anim::@15 @@ -769,6 +849,8 @@ SYMBOL TABLE SSA (signed byte) calculate_matrix::t9 (signed byte) calculate_matrix::t9#0 (void()) main() +(word~) main::$2 +(word~) main::$3 (label) main::@1 (label) main::@2 (label) main::@3 @@ -806,6 +888,24 @@ SYMBOL TABLE SSA (byte[512]) mulf_sqr1#0 (byte[512]) mulf_sqr2 (byte[512]) mulf_sqr2#0 +(word*) psp1 +(word*) psp1#0 +(word*) psp1#1 +(word*) psp1#2 +(word*) psp1#3 +(word*) psp1#4 +(word*) psp1#5 +(word*) psp1#6 +(word*) psp1#7 +(word*) psp2 +(word*) psp2#0 +(word*) psp2#1 +(word*) psp2#2 +(word*) psp2#3 +(word*) psp2#4 +(word*) psp2#5 +(word*) psp2#6 +(word*) psp2#7 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (label) rotate_matrix::@return (signed byte) rotate_matrix::x @@ -837,6 +937,28 @@ SYMBOL TABLE SSA (byte*) sprites_init::sprites_ptr#1 (void()) store_matrix() (label) store_matrix::@return +(signed byte*) xp +(signed byte*) xp#0 +(signed byte*) xp#1 +(signed byte*) xp#10 +(signed byte*) xp#11 +(signed byte*) xp#12 +(signed byte*) xp#13 +(signed byte*) xp#14 +(signed byte*) xp#15 +(signed byte*) xp#16 +(signed byte*) xp#17 +(signed byte*) xp#18 +(signed byte*) xp#19 +(signed byte*) xp#2 +(signed byte*) xp#20 +(signed byte*) xp#3 +(signed byte*) xp#4 +(signed byte*) xp#5 +(signed byte*) xp#6 +(signed byte*) xp#7 +(signed byte*) xp#8 +(signed byte*) xp#9 (signed byte*) xr (signed byte*) xr#0 (signed byte*) xr#1 @@ -851,6 +973,8 @@ SYMBOL TABLE SSA (signed byte*) xr#18 (signed byte*) xr#19 (signed byte*) xr#2 +(signed byte*) xr#20 +(signed byte*) xr#21 (signed byte*) xr#3 (signed byte*) xr#4 (signed byte*) xr#5 @@ -860,6 +984,28 @@ SYMBOL TABLE SSA (signed byte*) xr#9 (signed byte[8]) xs (signed byte[8]) xs#0 +(signed byte*) yp +(signed byte*) yp#0 +(signed byte*) yp#1 +(signed byte*) yp#10 +(signed byte*) yp#11 +(signed byte*) yp#12 +(signed byte*) yp#13 +(signed byte*) yp#14 +(signed byte*) yp#15 +(signed byte*) yp#16 +(signed byte*) yp#17 +(signed byte*) yp#18 +(signed byte*) yp#19 +(signed byte*) yp#2 +(signed byte*) yp#20 +(signed byte*) yp#3 +(signed byte*) yp#4 +(signed byte*) yp#5 +(signed byte*) yp#6 +(signed byte*) yp#7 +(signed byte*) yp#8 +(signed byte*) yp#9 (signed byte*) yr (signed byte*) yr#0 (signed byte*) yr#1 @@ -874,6 +1020,8 @@ SYMBOL TABLE SSA (signed byte*) yr#18 (signed byte*) yr#19 (signed byte*) yr#2 +(signed byte*) yr#20 +(signed byte*) yr#21 (signed byte*) yr#3 (signed byte*) yr#4 (signed byte*) yr#5 @@ -897,6 +1045,8 @@ SYMBOL TABLE SSA (signed byte*) zr#18 (signed byte*) zr#19 (signed byte*) zr#2 +(signed byte*) zr#20 +(signed byte*) zr#21 (signed byte*) zr#3 (signed byte*) zr#4 (signed byte*) zr#5 @@ -910,15 +1060,26 @@ SYMBOL TABLE SSA Culled Empty Block (label) main::@3 Culled Empty Block (label) @11 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not (bool~) anim::$14 ← (byte~) anim::$12 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) anim::$13 ← (byte~) anim::$12 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) anim::$12 ← (byte~) anim::$10 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) anim::$11 ← (byte~) anim::$10 == (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification +Alias (word*) psp1#1 = (word*) psp1#2 (word*) psp1#3 +Alias (word*) psp2#1 = (word*) psp2#2 (word*) psp2#3 Alias (signed byte*) COSH#12 = (signed byte*) COSH#14 (signed byte*) COSH#9 Alias (signed byte*) SINH#12 = (signed byte*) SINH#14 (signed byte*) SINH#9 Alias (signed byte*) COSQ#12 = (signed byte*) COSQ#14 (signed byte*) COSQ#9 Alias (signed byte*) SINQ#12 = (signed byte*) SINQ#14 (signed byte*) SINQ#9 +Alias (signed byte*) xp#12 = (signed byte*) xp#15 (signed byte*) xp#16 +Alias (signed byte*) yp#12 = (signed byte*) yp#15 (signed byte*) yp#16 Alias (signed byte*) xr#13 = (signed byte*) xr#16 (signed byte*) xr#17 Alias (signed byte*) yr#13 = (signed byte*) yr#16 (signed byte*) yr#17 Alias (signed byte*) zr#13 = (signed byte*) zr#16 (signed byte*) zr#17 +Alias (word*) psp1#0 = (word*) psp1#7 (word*) psp1#6 (word*) psp1#5 (word*) psp1#4 +Alias (word*) psp2#0 = (word*) psp2#7 (word*) psp2#6 (word*) psp2#5 (word*) psp2#4 +Alias (signed byte*) xp#0 = (signed byte*) xp#20 (signed byte*) xp#19 (signed byte*) xp#18 (signed byte*) xp#17 +Alias (signed byte*) yp#0 = (signed byte*) yp#20 (signed byte*) yp#19 (signed byte*) yp#18 (signed byte*) yp#17 +Alias (signed byte*) xr#0 = (signed byte*) xr#21 (signed byte*) xr#20 (signed byte*) xr#19 (signed byte*) xr#18 +Alias (signed byte*) yr#0 = (signed byte*) yr#21 (signed byte*) yr#20 (signed byte*) yr#19 (signed byte*) yr#18 +Alias (signed byte*) zr#0 = (signed byte*) zr#21 (signed byte*) zr#20 (signed byte*) zr#19 (signed byte*) zr#18 Alias (signed byte) anim::sx#6 = (signed byte) anim::sx#9 Alias (signed byte) anim::sy#6 = (signed byte) anim::sy#9 Alias (signed byte) anim::sz#6 = (signed byte) anim::sz#9 @@ -926,6 +1087,8 @@ Alias (signed byte*) COSH#4 = (signed byte*) COSH#6 Alias (signed byte*) SINH#4 = (signed byte*) SINH#6 Alias (signed byte*) COSQ#4 = (signed byte*) COSQ#6 Alias (signed byte*) SINQ#4 = (signed byte*) SINQ#6 +Alias (signed byte*) xp#7 = (signed byte*) xp#9 +Alias (signed byte*) yp#7 = (signed byte*) yp#9 Alias (signed byte*) xr#10 = (signed byte*) xr#8 Alias (signed byte*) yr#10 = (signed byte*) yr#8 Alias (signed byte*) zr#10 = (signed byte*) zr#8 @@ -936,14 +1099,18 @@ Alias (signed byte*) COSH#16 = (signed byte*) COSH#5 (signed byte*) COSH#3 (sign Alias (signed byte*) SINH#16 = (signed byte*) SINH#5 (signed byte*) SINH#3 (signed byte*) SINH#2 (signed byte*) SINH#17 Alias (signed byte*) COSQ#16 = (signed byte*) COSQ#5 (signed byte*) COSQ#3 (signed byte*) COSQ#2 (signed byte*) COSQ#17 Alias (signed byte*) SINQ#16 = (signed byte*) SINQ#5 (signed byte*) SINQ#3 (signed byte*) SINQ#2 (signed byte*) SINQ#17 -Alias (signed byte*) xr#4 = (signed byte*) xr#9 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5 -Alias (signed byte*) yr#4 = (signed byte*) yr#9 (signed byte*) yr#7 (signed byte*) yr#6 (signed byte*) yr#5 +Alias (signed byte*) xp#3 = (signed byte*) xp#8 (signed byte*) xp#6 (signed byte*) xp#5 (signed byte*) xp#4 +Alias (signed byte*) yp#3 = (signed byte*) yp#8 (signed byte*) yp#6 (signed byte*) yp#5 (signed byte*) yp#4 +Alias (signed byte*) xr#3 = (signed byte*) xr#9 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5 +Alias (signed byte*) yr#3 = (signed byte*) yr#9 (signed byte*) yr#7 (signed byte*) yr#6 (signed byte*) yr#5 Alias (signed byte*) zr#3 = (signed byte*) zr#9 (signed byte*) zr#7 (signed byte*) zr#6 (signed byte*) zr#5 Alias (byte) anim::i#2 = (byte) anim::i#3 -Alias (signed byte*) xr#1 = (signed byte*) xr#3 (signed byte*) xr#14 (signed byte*) xr#15 -Alias (signed byte*) yr#1 = (signed byte*) yr#3 (signed byte*) yr#14 (signed byte*) yr#15 +Alias (signed byte*) xp#1 = (signed byte*) xp#2 (signed byte*) xp#13 (signed byte*) xp#14 +Alias (signed byte*) yp#1 = (signed byte*) yp#2 (signed byte*) yp#13 (signed byte*) yp#14 Alias (signed byte) anim::sz#3 = (signed byte) anim::sz#5 (signed byte) anim::sz#8 Alias (signed byte) anim::sy#3 = (signed byte) anim::sy#5 (signed byte) anim::sy#8 +Alias (signed byte*) xr#14 = (signed byte*) xr#4 (signed byte*) xr#2 (signed byte*) xr#15 +Alias (signed byte*) yr#14 = (signed byte*) yr#4 (signed byte*) yr#2 (signed byte*) yr#15 Alias (signed byte*) zr#14 = (signed byte*) zr#4 (signed byte*) zr#2 (signed byte*) zr#15 Alias (signed byte) anim::sx#10 = (signed byte) anim::sx#8 (signed byte) anim::sx#5 (signed byte) anim::sx#3 Alias (signed byte*) COSH#10 = (signed byte*) COSH#13 (signed byte*) COSH#15 (signed byte*) COSH#11 @@ -964,9 +1131,6 @@ Alias (signed byte) calculate_matrix::t7#0 = (signed byte~) calculate_matrix::$6 Alias (signed byte) calculate_matrix::t8#0 = (signed byte~) calculate_matrix::$7 Alias (signed byte) calculate_matrix::t9#0 = (signed byte~) calculate_matrix::$8 Alias (signed byte) calculate_matrix::t10#0 = (signed byte~) calculate_matrix::$9 -Alias (signed byte*) xr#0 = (signed byte*) xr#19 (signed byte*) xr#18 -Alias (signed byte*) yr#0 = (signed byte*) yr#19 (signed byte*) yr#18 -Alias (signed byte*) zr#0 = (signed byte*) zr#19 (signed byte*) zr#18 Alias (byte) mulf_init::val#0 = (byte~) mulf_init::$0 Alias (signed byte*) SINH#0 = (signed byte*~) $12 Alias (signed byte*) SINQ#0 = (signed byte*~) $13 @@ -977,8 +1141,10 @@ Alias (signed byte*) COSH#10 = (signed byte*) COSH#8 Alias (signed byte*) SINH#10 = (signed byte*) SINH#8 Alias (signed byte*) COSQ#10 = (signed byte*) COSQ#8 Alias (signed byte*) SINQ#10 = (signed byte*) SINQ#8 -Alias (signed byte*) xr#1 = (signed byte*) xr#12 -Alias (signed byte*) yr#1 = (signed byte*) yr#12 +Alias (signed byte*) xp#1 = (signed byte*) xp#11 +Alias (signed byte*) yp#1 = (signed byte*) yp#11 +Alias (signed byte*) xr#12 = (signed byte*) xr#14 +Alias (signed byte*) yr#12 = (signed byte*) yr#14 Alias (signed byte*) zr#12 = (signed byte*) zr#14 Successful SSA optimization Pass2AliasElimination Self Phi Eliminated (signed byte) anim::sx#12 @@ -988,11 +1154,15 @@ Self Phi Eliminated (signed byte*) COSH#16 Self Phi Eliminated (signed byte*) SINH#16 Self Phi Eliminated (signed byte*) COSQ#16 Self Phi Eliminated (signed byte*) SINQ#16 -Self Phi Eliminated (signed byte*) xr#4 -Self Phi Eliminated (signed byte*) yr#4 +Self Phi Eliminated (signed byte*) xp#3 +Self Phi Eliminated (signed byte*) yp#3 +Self Phi Eliminated (signed byte*) xr#3 +Self Phi Eliminated (signed byte*) yr#3 Self Phi Eliminated (signed byte*) zr#3 -Self Phi Eliminated (signed byte*) xr#1 -Self Phi Eliminated (signed byte*) yr#1 +Self Phi Eliminated (signed byte*) xp#1 +Self Phi Eliminated (signed byte*) yp#1 +Self Phi Eliminated (signed byte*) xr#12 +Self Phi Eliminated (signed byte*) yr#12 Self Phi Eliminated (signed byte*) zr#12 Self Phi Eliminated (signed byte) anim::sz#3 Self Phi Eliminated (signed byte) anim::sy#3 @@ -1004,11 +1174,15 @@ Self Phi Eliminated (signed byte*) SINQ#10 Self Phi Eliminated (byte*) SPRITE#1 Self Phi Eliminated (byte*) sprites_init::sprites_ptr#1 Successful SSA optimization Pass2SelfPhiElimination +Redundant Phi (word*) psp1#1 (word*) psp1#0 +Redundant Phi (word*) psp2#1 (word*) psp2#0 Redundant Phi (byte*) SPRITE#3 (byte*) SPRITE#0 Redundant Phi (signed byte*) COSH#12 (signed byte*) COSH#0 Redundant Phi (signed byte*) SINH#12 (signed byte*) SINH#0 Redundant Phi (signed byte*) COSQ#12 (signed byte*) COSQ#0 Redundant Phi (signed byte*) SINQ#12 (signed byte*) SINQ#0 +Redundant Phi (signed byte*) xp#12 (signed byte*) xp#0 +Redundant Phi (signed byte*) yp#12 (signed byte*) yp#0 Redundant Phi (signed byte*) xr#13 (signed byte*) xr#0 Redundant Phi (signed byte*) yr#13 (signed byte*) yr#0 Redundant Phi (signed byte*) zr#13 (signed byte*) zr#0 @@ -1016,6 +1190,8 @@ Redundant Phi (signed byte*) COSH#7 (signed byte*) COSH#12 Redundant Phi (signed byte*) SINH#7 (signed byte*) SINH#12 Redundant Phi (signed byte*) COSQ#7 (signed byte*) COSQ#12 Redundant Phi (signed byte*) SINQ#7 (signed byte*) SINQ#12 +Redundant Phi (signed byte*) xp#10 (signed byte*) xp#12 +Redundant Phi (signed byte*) yp#10 (signed byte*) yp#12 Redundant Phi (signed byte*) xr#11 (signed byte*) xr#13 Redundant Phi (signed byte*) yr#11 (signed byte*) yr#13 Redundant Phi (signed byte*) zr#11 (signed byte*) zr#13 @@ -1026,11 +1202,15 @@ Redundant Phi (signed byte*) COSH#16 (signed byte*) COSH#4 Redundant Phi (signed byte*) SINH#16 (signed byte*) SINH#4 Redundant Phi (signed byte*) COSQ#16 (signed byte*) COSQ#4 Redundant Phi (signed byte*) SINQ#16 (signed byte*) SINQ#4 -Redundant Phi (signed byte*) xr#4 (signed byte*) xr#10 -Redundant Phi (signed byte*) yr#4 (signed byte*) yr#10 +Redundant Phi (signed byte*) xp#3 (signed byte*) xp#7 +Redundant Phi (signed byte*) yp#3 (signed byte*) yp#7 +Redundant Phi (signed byte*) xr#3 (signed byte*) xr#10 +Redundant Phi (signed byte*) yr#3 (signed byte*) yr#10 Redundant Phi (signed byte*) zr#3 (signed byte*) zr#10 -Redundant Phi (signed byte*) xr#1 (signed byte*) xr#4 -Redundant Phi (signed byte*) yr#1 (signed byte*) yr#4 +Redundant Phi (signed byte*) xp#1 (signed byte*) xp#3 +Redundant Phi (signed byte*) yp#1 (signed byte*) yp#3 +Redundant Phi (signed byte*) xr#12 (signed byte*) xr#3 +Redundant Phi (signed byte*) yr#12 (signed byte*) yr#3 Redundant Phi (signed byte*) zr#12 (signed byte*) zr#3 Redundant Phi (signed byte) anim::sz#3 (signed byte) anim::sz#10 Redundant Phi (signed byte) anim::sy#3 (signed byte) anim::sy#10 @@ -1050,15 +1230,15 @@ Redundant Phi (signed byte*) SINH#1 (signed byte*) SINH#16 Redundant Phi (signed byte*) COSQ#1 (signed byte*) COSQ#16 Redundant Phi (signed byte*) SINQ#1 (signed byte*) SINQ#16 Redundant Phi (signed byte) rotate_matrix::x#1 (signed byte) rotate_matrix::x#0 -Redundant Phi (signed byte*) xr#2 (signed byte*) xr#1 +Redundant Phi (signed byte*) xr#1 (signed byte*) xr#12 Redundant Phi (signed byte) rotate_matrix::y#1 (signed byte) rotate_matrix::y#0 -Redundant Phi (signed byte*) yr#2 (signed byte*) yr#1 +Redundant Phi (signed byte*) yr#1 (signed byte*) yr#12 Redundant Phi (signed byte) rotate_matrix::z#1 (signed byte) rotate_matrix::z#0 Redundant Phi (signed byte*) zr#1 (signed byte*) zr#12 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) anim::$0 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@5 -Simple Condition (bool~) anim::$11 if((byte) anim::i#1!=rangelast(0,7)) goto anim::@7 -Simple Condition (bool~) anim::$14 if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 +Simple Condition (bool~) anim::$9 if((byte) anim::i#1!=rangelast(0,7)) goto anim::@7 +Simple Condition (bool~) anim::$12 if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 Simple Condition (bool~) sprites_init::$3 if((byte) sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 Simple Condition (bool~) mulf_init::$11 if((byte) mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -1070,6 +1250,13 @@ Constant (const byte*) BORDERCOL#0 = ((byte*))53280 Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 Constant (const byte) GREEN#0 = 5 Constant (const byte) LIGHT_BLUE#0 = 14 +Constant (const signed byte*) xr#0 = ((signed byte*))240 +Constant (const signed byte*) yr#0 = ((signed byte*))241 +Constant (const signed byte*) zr#0 = ((signed byte*))242 +Constant (const signed byte*) xp#0 = ((signed byte*))243 +Constant (const signed byte*) yp#0 = ((signed byte*))244 +Constant (const word*) psp1#0 = ((word*))245 +Constant (const word*) psp2#0 = ((word*))247 Constant (const signed byte/signed word/signed dword) $0 = -63 Constant (const signed byte/signed word/signed dword) $1 = -63 Constant (const signed byte/signed word/signed dword) $2 = -63 @@ -1089,18 +1276,18 @@ Constant (const byte) anim::i#0 = 0 Constant (const byte*) sprites_init::SCREEN#0 = ((byte*))1024 Constant (const byte) sprites_init::i#0 = 0 Constant (const signed byte[9]) rotation_matrix#0 = { fill( 9, 0) } -Constant (const signed byte*) xr#0 = ((signed byte*))240 -Constant (const signed byte*) yr#0 = ((signed byte*))241 -Constant (const signed byte*) zr#0 = ((signed byte*))242 Constant (const byte[512]) mulf_sqr1#0 = { fill( 512, 0) } Constant (const byte[512]) mulf_sqr2#0 = { fill( 512, 0) } Constant (const signed word) mulf_init::sqr#0 = 0 Constant (const signed word) mulf_init::add#0 = 1 Constant (const byte) mulf_init::i#0 = 0 Constant (const byte*) SPRITE#0 = ((byte*))12288 +Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))9216 Constant (const signed byte*) COSH#0 = ((signed byte*))8192 Constant (const signed byte*) COSQ#0 = ((signed byte*))8704 Successful SSA optimization Pass2ConstantIdentification +Constant (const word) main::$2 = ((word))mulf_sqr1#0 +Constant (const word) main::$3 = ((word))mulf_sqr2#0 Constant (const signed byte[8]) xs#0 = { $0, $1, $2, $3, 63, 63, 63, 63 } Constant (const signed byte[8]) ys#0 = { $4, $5, 63, 63, $6, $7, 63, 63 } Constant (const signed byte[8]) zs#0 = { $8, 63, $9, 63, $10, 63, $11, 63 } @@ -1131,8 +1318,8 @@ if() condition always true - replacing block destination if(true) goto anim::@2 Successful SSA optimization Pass2ConstantIfs Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte) mulf_init::i#2 Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$7 ← (byte) mulf_init::i#2 -Eliminating Noop Cast (byte~) anim::$6 ← ((byte)) (signed byte~) anim::$5 -Eliminating Noop Cast (byte~) anim::$9 ← ((byte)) (signed byte~) anim::$8 +Eliminating Noop Cast (byte~) anim::$5 ← ((byte)) *((signed byte*) xp#7) +Eliminating Noop Cast (byte~) anim::$7 ← ((byte)) *((signed byte*) yp#7) Successful SSA optimization Pass2NopCastElimination Removing unused block anim::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -1142,12 +1329,12 @@ Resolved ranged next value sprites_init::i#1 ← ++ sprites_init::i#2 to ++ Resolved ranged comparison value if(sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value mulf_init::i#1 ← ++ mulf_init::i#2 to ++ Resolved ranged comparison value if(mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 to (byte/word/signed word/dword/signed dword) 129 +Culled Empty Block (label) @3 Culled Empty Block (label) @4 Culled Empty Block (label) anim::@2 Culled Empty Block (label) anim::@5 Culled Empty Block (label) anim::@18 Culled Empty Block (label) @6 -Culled Empty Block (label) @8 Culled Empty Block (label) @9 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) mulf_init::i#2 = (byte~) mulf_init::$5 (byte~) mulf_init::$7 @@ -1156,6 +1343,8 @@ Self Phi Eliminated (signed byte*) COSH#4 Self Phi Eliminated (signed byte*) SINH#4 Self Phi Eliminated (signed byte*) COSQ#4 Self Phi Eliminated (signed byte*) SINQ#4 +Self Phi Eliminated (signed byte*) xp#7 +Self Phi Eliminated (signed byte*) yp#7 Self Phi Eliminated (signed byte*) xr#10 Self Phi Eliminated (signed byte*) yr#10 Self Phi Eliminated (signed byte*) zr#10 @@ -1164,6 +1353,8 @@ Redundant Phi (signed byte*) COSH#4 (const signed byte*) COSH#0 Redundant Phi (signed byte*) SINH#4 (const signed byte*) SINH#0 Redundant Phi (signed byte*) COSQ#4 (const signed byte*) COSQ#0 Redundant Phi (signed byte*) SINQ#4 (const signed byte*) SINQ#0 +Redundant Phi (signed byte*) xp#7 (const signed byte*) xp#0 +Redundant Phi (signed byte*) yp#7 (const signed byte*) yp#0 Redundant Phi (signed byte*) xr#10 (const signed byte*) xr#0 Redundant Phi (signed byte*) yr#10 (const signed byte*) yr#0 Redundant Phi (signed byte*) zr#10 (const signed byte*) zr#0 @@ -1200,8 +1391,10 @@ Constant inlined anim::sx#0 = (byte/signed byte/word/signed word/dword/signed dw Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::$9 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined main::$2 = ((word))(const byte[512]) mulf_sqr1#0 Constant inlined sprites_init::$1 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 Constant inlined sprites_init::$2 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined main::$3 = ((word))(const byte[512]) mulf_sqr2#0 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero rotation_matrix#0+0 Added new block during phi lifting anim::@20(between anim::@19 and anim::@7) @@ -1211,14 +1404,13 @@ Added new block during phi lifting sprites_init::@3(between sprites_init::@1 and Adding NOP phi() at start of @begin Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 -Adding NOP phi() at start of main::@2 Adding NOP phi() at start of anim Adding NOP phi() at start of anim::@17 Adding NOP phi() at start of mulf_init CALL GRAPH -Calls in [] to main:4 -Calls in [main] to sprites_init:7 mulf_init:9 anim:11 -Calls in [anim] to calculate_matrix:20 store_matrix:22 rotate_matrix:28 +Calls in [] to main:5 +Calls in [main] to sprites_init:8 mulf_init:10 anim:13 +Calls in [anim] to calculate_matrix:22 store_matrix:24 rotate_matrix:30 Created 9 initial phi equivalence classes Coalesced [43] anim::sx#16 ← anim::sx#1 @@ -1239,7 +1431,6 @@ Culled Empty Block (label) sprites_init::@3 Adding NOP phi() at start of @begin Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 -Adding NOP phi() at start of main::@2 Adding NOP phi() at start of anim Adding NOP phi() at start of anim::@17 Adding NOP phi() at start of mulf_init @@ -1253,6 +1444,19 @@ FINAL CONTROL FLOW GRAPH .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) + }} + kickasm(location (const signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } }} kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff @@ -1274,183 +1478,182 @@ FINAL CONTROL FLOW GRAPH } } }} - [4] call main [ ] ( ) + [5] call main [ ] ( ) to:@end @end: scope:[] from @10 - [5] phi() [ ] ( ) + [6] phi() [ ] ( ) main: scope:[main] from @10 asm { sei } - [7] call sprites_init [ ] ( main:4 [ ] ) + [8] call sprites_init [ ] ( main:5 [ ] ) to:main::@1 main::@1: scope:[main] from main - [8] phi() [ ] ( main:4 [ ] ) - [9] call mulf_init [ ] ( main:4 [ ] ) + [9] phi() [ ] ( main:5 [ ] ) + [10] call mulf_init [ ] ( main:5 [ ] ) to:main::@2 main::@2: scope:[main] from main::@1 - [10] phi() [ ] ( main:4 [ ] ) - [11] call anim [ ] ( main:4 [ ] ) + [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) + [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) + [13] call anim [ ] ( main:5 [ ] ) to:main::@return main::@return: scope:[main] from main::@2 - [12] return [ ] ( main:4 [ ] ) + [14] return [ ] ( main:5 [ ] ) to:@return anim: scope:[anim] from main::@2 - [13] phi() [ ] ( main:4::anim:11 [ ] ) + [15] phi() [ ] ( main:5::anim:13 [ ] ) to:anim::@1 anim::@1: scope:[anim] from anim anim::@8 - [14] (signed byte) anim::sz#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sz#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [14] (signed byte) anim::sy#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sy#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [14] (signed byte) anim::sx#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sx#11 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sz#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sz#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sy#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sy#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [16] (signed byte) anim::sx#6 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@8/(signed byte) anim::sx#11 ) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@6 anim::@6: scope:[anim] from anim::@4 - [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [17] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) - [18] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) - [19] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) - [20] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [18] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [19] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) + [20] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) + [21] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) + [22] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@17 anim::@17: scope:[anim] from anim::@6 - [21] phi() [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) - [22] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [23] phi() [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [24] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:anim::@7 anim::@7: scope:[anim] from anim::@17 anim::@19 - [23] (byte) anim::i#2 ← phi( anim::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@19/(byte) anim::i#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [24] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [25] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) - [26] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) - [27] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) - [28] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [25] (byte) anim::i#2 ← phi( anim::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@19/(byte) anim::i#1 ) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [27] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) + [28] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) + [29] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) + [30] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) to:anim::@19 anim::@19: scope:[anim] from anim::@7 - [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) - [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) - [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) - [32] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) - [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) - [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) - [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) - [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) + [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) + [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) + [33] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) + [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) + [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) + [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) to:anim::@14 anim::@14: scope:[anim] from anim::@19 - [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) - [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) - [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) - [41] if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) + [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) + [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) + [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) + [41] if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) to:anim::@15 anim::@15: scope:[anim] from anim::@14 - [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:4::anim:11 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) + [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:5::anim:13 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) to:anim::@8 anim::@8: scope:[anim] from anim::@14 anim::@15 - [43] (signed byte) anim::sx#11 ← phi( anim::@14/(signed byte) anim::sx#6 anim::@15/(signed byte) anim::sx#1 ) [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) - [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) + [43] (signed byte) anim::sx#11 ← phi( anim::@14/(signed byte) anim::sx#6 anim::@15/(signed byte) anim::sx#1 ) [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) + [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) to:anim::@1 rotate_matrix: scope:[rotate_matrix] from anim::@7 - [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) - [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) - [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) - asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) + [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) + [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } to:rotate_matrix::@return rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix - [49] return [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + [49] return [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) to:@return store_matrix: scope:[store_matrix] from anim::@17 asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1 } to:store_matrix::@return store_matrix::@return: scope:[store_matrix] from store_matrix - [51] return [ ] ( main:4::anim:11::store_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [51] return [ ] ( main:5::anim:13::store_matrix:24 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:@return calculate_matrix: scope:[calculate_matrix] from anim::@6 - [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) - [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) - [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) - [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) - [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) - [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) - [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) - [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) - [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) - [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) - [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) - [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) - [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) - [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) - [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) - [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) - [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) - [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) - [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) - [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) - [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) - [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) - [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) - [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) - [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) - [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) - [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) - [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) - [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) - [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) - [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) - [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) - [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) - [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) - [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) - [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) + [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) + [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) + [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) + [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) + [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) + [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) + [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) + [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) + [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) + [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) + [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) + [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) + [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) + [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) + [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) + [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) + [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) + [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) + [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) + [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) + [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) + [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) + [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) + [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) + [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) + [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) + [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) + [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) + [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) + [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) + [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) + [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) + [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) + [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) + [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:calculate_matrix::@return calculate_matrix::@return: scope:[calculate_matrix] from calculate_matrix - [96] return [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + [96] return [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) to:@return mulf_init: scope:[mulf_init] from main::@1 - [97] phi() [ ] ( main:4::mulf_init:9 [ ] ) + [97] phi() [ ] ( main:5::mulf_init:10 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 - [98] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [98] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [98] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) - [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) - [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) - [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) - [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) - [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) - [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) - [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) - [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) - [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [98] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) + [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) + [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) + [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) + [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) + [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) + [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 - [116] return [ ] ( main:4::mulf_init:9 [ ] ) + [116] return [ ] ( main:5::mulf_init:10 [ ] ) to:@return sprites_init: scope:[sprites_init] from main - [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) + [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [118] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) - [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) - [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) + [118] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [123] return [ ] ( main:4::sprites_init:7 [ ] ) + [123] return [ ] ( main:5::sprites_init:8 [ ] ) to:@return @@ -1460,6 +1663,7 @@ VARIABLE REGISTER WEIGHTS (signed byte*) COSQ (byte) GREEN (byte) LIGHT_BLUE +(signed byte*) PERSP_Z (byte*) RASTER (signed byte*) SINH (signed byte*) SINQ @@ -1469,26 +1673,24 @@ VARIABLE REGISTER WEIGHTS (byte*) SPRITES_XPOS (byte*) SPRITES_YPOS (void()) anim() -(byte/word/signed word/dword/signed dword~) anim::$10 202.0 -(byte~) anim::$12 22.0 -(signed byte~) anim::$5 101.0 -(byte/word/signed word/dword/signed dword~) anim::$7 202.0 -(signed byte~) anim::$8 101.0 +(byte~) anim::$10 22.0 +(byte/word/signed word/dword/signed dword~) anim::$6 202.0 +(byte/word/signed word/dword/signed dword~) anim::$8 202.0 (byte) anim::i (byte) anim::i#1 151.5 -(byte) anim::i#2 46.61538461538461 +(byte) anim::i#2 55.090909090909086 (byte) anim::i2 -(byte) anim::i2#0 50.5 +(byte) anim::i2#0 75.75 (signed byte) anim::sx (signed byte) anim::sx#1 22.0 (signed byte) anim::sx#11 16.5 -(signed byte) anim::sx#6 1.5714285714285714 +(signed byte) anim::sx#6 1.6923076923076923 (signed byte) anim::sy (signed byte) anim::sy#1 5.5 -(signed byte) anim::sy#6 1.32 +(signed byte) anim::sy#6 1.4347826086956523 (signed byte) anim::sz (signed byte) anim::sz#1 3.142857142857143 -(signed byte) anim::sz#6 1.375 +(signed byte) anim::sz#6 1.5 (void()) calculate_matrix((signed byte) calculate_matrix::sx , (signed byte) calculate_matrix::sy , (signed byte) calculate_matrix::sz) (signed byte~) calculate_matrix::$10 4.0 (signed byte~) calculate_matrix::$11 4.0 @@ -1560,6 +1762,8 @@ VARIABLE REGISTER WEIGHTS (byte) mulf_init::val#0 8.25 (byte[512]) mulf_sqr1 (byte[512]) mulf_sqr2 +(word*) psp1 +(word*) psp2 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (signed byte) rotate_matrix::x (signed byte) rotate_matrix::x#0 34.33333333333333 @@ -1575,8 +1779,10 @@ VARIABLE REGISTER WEIGHTS (byte) sprites_init::i#2 14.666666666666666 (byte*) sprites_init::sprites_ptr (void()) store_matrix() +(signed byte*) xp (signed byte*) xr (signed byte[8]) xs +(signed byte*) yp (signed byte*) yr (signed byte[8]) ys (signed byte*) zr @@ -1598,11 +1804,9 @@ Added variable rotate_matrix::x#0 to zero page equivalence class [ rotate_matrix Added variable rotate_matrix::y#0 to zero page equivalence class [ rotate_matrix::y#0 ] Added variable rotate_matrix::z#0 to zero page equivalence class [ rotate_matrix::z#0 ] Added variable anim::i2#0 to zero page equivalence class [ anim::i2#0 ] -Added variable anim::$5 to zero page equivalence class [ anim::$5 ] -Added variable anim::$7 to zero page equivalence class [ anim::$7 ] +Added variable anim::$6 to zero page equivalence class [ anim::$6 ] Added variable anim::$8 to zero page equivalence class [ anim::$8 ] Added variable anim::$10 to zero page equivalence class [ anim::$10 ] -Added variable anim::$12 to zero page equivalence class [ anim::$12 ] Added variable calculate_matrix::t1#0 to zero page equivalence class [ calculate_matrix::t1#0 ] Added variable calculate_matrix::t2#0 to zero page equivalence class [ calculate_matrix::t2#0 ] Added variable calculate_matrix::t3#0 to zero page equivalence class [ calculate_matrix::t3#0 ] @@ -1659,11 +1863,9 @@ Complete equivalence classes [ rotate_matrix::y#0 ] [ rotate_matrix::z#0 ] [ anim::i2#0 ] -[ anim::$5 ] -[ anim::$7 ] +[ anim::$6 ] [ anim::$8 ] [ anim::$10 ] -[ anim::$12 ] [ calculate_matrix::t1#0 ] [ calculate_matrix::t2#0 ] [ calculate_matrix::t3#0 ] @@ -1719,51 +1921,49 @@ Allocated zp ZP_BYTE:15 [ rotate_matrix::x#0 ] Allocated zp ZP_BYTE:16 [ rotate_matrix::y#0 ] Allocated zp ZP_BYTE:17 [ rotate_matrix::z#0 ] Allocated zp ZP_BYTE:18 [ anim::i2#0 ] -Allocated zp ZP_BYTE:19 [ anim::$5 ] -Allocated zp ZP_BYTE:20 [ anim::$7 ] -Allocated zp ZP_BYTE:21 [ anim::$8 ] -Allocated zp ZP_BYTE:22 [ anim::$10 ] -Allocated zp ZP_BYTE:23 [ anim::$12 ] -Allocated zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] -Allocated zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] -Allocated zp ZP_BYTE:26 [ calculate_matrix::t3#0 ] -Allocated zp ZP_BYTE:27 [ calculate_matrix::t4#0 ] -Allocated zp ZP_BYTE:28 [ calculate_matrix::t5#0 ] -Allocated zp ZP_BYTE:29 [ calculate_matrix::t6#0 ] -Allocated zp ZP_BYTE:30 [ calculate_matrix::t7#0 ] -Allocated zp ZP_BYTE:31 [ calculate_matrix::t8#0 ] -Allocated zp ZP_BYTE:32 [ calculate_matrix::t9#0 ] -Allocated zp ZP_BYTE:33 [ calculate_matrix::t10#0 ] -Allocated zp ZP_BYTE:34 [ calculate_matrix::$10 ] -Allocated zp ZP_BYTE:35 [ calculate_matrix::$11 ] -Allocated zp ZP_BYTE:36 [ calculate_matrix::$12 ] -Allocated zp ZP_BYTE:37 [ calculate_matrix::$13 ] -Allocated zp ZP_BYTE:38 [ calculate_matrix::$14 ] -Allocated zp ZP_BYTE:39 [ calculate_matrix::$15 ] -Allocated zp ZP_BYTE:40 [ calculate_matrix::$16 ] -Allocated zp ZP_BYTE:41 [ calculate_matrix::$17 ] -Allocated zp ZP_BYTE:42 [ calculate_matrix::$18 ] -Allocated zp ZP_BYTE:43 [ calculate_matrix::$19 ] -Allocated zp ZP_BYTE:44 [ calculate_matrix::$20 ] -Allocated zp ZP_BYTE:45 [ calculate_matrix::$21 ] -Allocated zp ZP_BYTE:46 [ calculate_matrix::$22 ] -Allocated zp ZP_BYTE:47 [ calculate_matrix::$23 ] -Allocated zp ZP_BYTE:48 [ calculate_matrix::$24 ] -Allocated zp ZP_BYTE:49 [ calculate_matrix::$25 ] -Allocated zp ZP_BYTE:50 [ calculate_matrix::$26 ] -Allocated zp ZP_BYTE:51 [ calculate_matrix::$27 ] -Allocated zp ZP_BYTE:52 [ calculate_matrix::$28 ] -Allocated zp ZP_BYTE:53 [ calculate_matrix::$29 ] -Allocated zp ZP_BYTE:54 [ calculate_matrix::$30 ] -Allocated zp ZP_BYTE:55 [ calculate_matrix::$31 ] -Allocated zp ZP_BYTE:56 [ calculate_matrix::$32 ] -Allocated zp ZP_BYTE:57 [ calculate_matrix::$33 ] -Allocated zp ZP_BYTE:58 [ calculate_matrix::$34 ] -Allocated zp ZP_BYTE:59 [ mulf_init::val#0 ] -Allocated zp ZP_BYTE:60 [ mulf_init::$2 ] -Allocated zp ZP_BYTE:61 [ mulf_init::$4 ] -Allocated zp ZP_BYTE:62 [ mulf_init::$8 ] -Allocated zp ZP_BYTE:63 [ mulf_init::$10 ] +Allocated zp ZP_BYTE:19 [ anim::$6 ] +Allocated zp ZP_BYTE:20 [ anim::$8 ] +Allocated zp ZP_BYTE:21 [ anim::$10 ] +Allocated zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] +Allocated zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] +Allocated zp ZP_BYTE:24 [ calculate_matrix::t3#0 ] +Allocated zp ZP_BYTE:25 [ calculate_matrix::t4#0 ] +Allocated zp ZP_BYTE:26 [ calculate_matrix::t5#0 ] +Allocated zp ZP_BYTE:27 [ calculate_matrix::t6#0 ] +Allocated zp ZP_BYTE:28 [ calculate_matrix::t7#0 ] +Allocated zp ZP_BYTE:29 [ calculate_matrix::t8#0 ] +Allocated zp ZP_BYTE:30 [ calculate_matrix::t9#0 ] +Allocated zp ZP_BYTE:31 [ calculate_matrix::t10#0 ] +Allocated zp ZP_BYTE:32 [ calculate_matrix::$10 ] +Allocated zp ZP_BYTE:33 [ calculate_matrix::$11 ] +Allocated zp ZP_BYTE:34 [ calculate_matrix::$12 ] +Allocated zp ZP_BYTE:35 [ calculate_matrix::$13 ] +Allocated zp ZP_BYTE:36 [ calculate_matrix::$14 ] +Allocated zp ZP_BYTE:37 [ calculate_matrix::$15 ] +Allocated zp ZP_BYTE:38 [ calculate_matrix::$16 ] +Allocated zp ZP_BYTE:39 [ calculate_matrix::$17 ] +Allocated zp ZP_BYTE:40 [ calculate_matrix::$18 ] +Allocated zp ZP_BYTE:41 [ calculate_matrix::$19 ] +Allocated zp ZP_BYTE:42 [ calculate_matrix::$20 ] +Allocated zp ZP_BYTE:43 [ calculate_matrix::$21 ] +Allocated zp ZP_BYTE:44 [ calculate_matrix::$22 ] +Allocated zp ZP_BYTE:45 [ calculate_matrix::$23 ] +Allocated zp ZP_BYTE:46 [ calculate_matrix::$24 ] +Allocated zp ZP_BYTE:47 [ calculate_matrix::$25 ] +Allocated zp ZP_BYTE:48 [ calculate_matrix::$26 ] +Allocated zp ZP_BYTE:49 [ calculate_matrix::$27 ] +Allocated zp ZP_BYTE:50 [ calculate_matrix::$28 ] +Allocated zp ZP_BYTE:51 [ calculate_matrix::$29 ] +Allocated zp ZP_BYTE:52 [ calculate_matrix::$30 ] +Allocated zp ZP_BYTE:53 [ calculate_matrix::$31 ] +Allocated zp ZP_BYTE:54 [ calculate_matrix::$32 ] +Allocated zp ZP_BYTE:55 [ calculate_matrix::$33 ] +Allocated zp ZP_BYTE:56 [ calculate_matrix::$34 ] +Allocated zp ZP_BYTE:57 [ mulf_init::val#0 ] +Allocated zp ZP_BYTE:58 [ mulf_init::$2 ] +Allocated zp ZP_BYTE:59 [ mulf_init::$4 ] +Allocated zp ZP_BYTE:60 [ mulf_init::$8 ] +Allocated zp ZP_BYTE:61 [ mulf_init::$10 ] INITIAL ASM //SEG0 Basic Upstart @@ -1782,7 +1982,12 @@ INITIAL ASM .label xr = $f0 .label yr = $f1 .label zr = $f2 + .label xp = $f3 + .label yp = $f4 + .label psp1 = $f5 + .label psp2 = $f7 .label SPRITE = $3000 + .label PERSP_Z = $2400 .label COSH = $2000 .label COSQ = $2200 .label SINH = COSH+$40 @@ -1793,188 +1998,185 @@ bbegin: //SEG3 @10 b10: //SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG7 [4] call main [ ] ( ) +//SEG5 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 6.0 // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG6 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG8 [5] call main [ ] ( ) jsr main -//SEG8 [5] phi from @10 to @end [phi:@10->@end] +//SEG9 [6] phi from @10 to @end [phi:@10->@end] bend_from_b10: jmp bend -//SEG9 @end +//SEG10 @end bend: -//SEG10 main +//SEG11 main main: { - //SEG11 asm { sei } + //SEG12 asm { sei } sei - //SEG12 [7] call sprites_init [ ] ( main:4 [ ] ) + //SEG13 [8] call sprites_init [ ] ( main:5 [ ] ) jsr sprites_init - //SEG13 [8] phi from main to main::@1 [phi:main->main::@1] + //SEG14 [9] phi from main to main::@1 [phi:main->main::@1] b1_from_main: jmp b1 - //SEG14 main::@1 + //SEG15 main::@1 b1: - //SEG15 [9] call mulf_init [ ] ( main:4 [ ] ) - //SEG16 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] + //SEG16 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG17 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] mulf_init_from_b1: jsr mulf_init - //SEG17 [10] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - b2_from_b1: jmp b2 //SEG18 main::@2 b2: - //SEG19 [11] call anim [ ] ( main:4 [ ] ) - //SEG20 [13] phi from main::@2 to anim [phi:main::@2->anim] + //SEG19 [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG20 [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG21 [13] call anim [ ] ( main:5 [ ] ) + //SEG22 [15] phi from main::@2 to anim [phi:main::@2->anim] anim_from_b2: jsr anim jmp breturn - //SEG21 main::@return + //SEG23 main::@return breturn: - //SEG22 [12] return [ ] ( main:4 [ ] ) + //SEG24 [14] return [ ] ( main:5 [ ] ) rts } -//SEG23 anim +//SEG25 anim anim: { - .label _5 = $13 - .label _7 = $14 - .label _8 = $15 - .label _10 = $16 - .label _12 = $17 + .label _6 = $13 + .label _8 = $14 + .label _10 = $15 .label i2 = $12 .label i = 5 .label sz = 4 .label sy = 3 .label sx = 2 - //SEG24 [14] phi from anim to anim::@1 [phi:anim->anim::@1] + //SEG26 [16] phi from anim to anim::@1 [phi:anim->anim::@1] b1_from_anim: - //SEG25 [14] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 + //SEG27 [16] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 lda #0 sta sz - //SEG26 [14] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 + //SEG28 [16] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 lda #0 sta sy - //SEG27 [14] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 + //SEG29 [16] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 lda #0 sta sx jmp b1 - //SEG28 anim::@1 + //SEG30 anim::@1 b1: jmp b4 - //SEG29 anim::@4 + //SEG31 anim::@4 b4: - //SEG30 [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG32 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 - //SEG31 anim::@6 + //SEG33 anim::@6 b6: - //SEG32 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG34 [18] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG33 [17] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsz1=vbsz2 + //SEG35 [19] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsz1=vbsz2 lda sx sta calculate_matrix.sx - //SEG34 [18] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) -- vbsz1=vbsz2 + //SEG36 [20] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) -- vbsz1=vbsz2 lda sy sta calculate_matrix.sy - //SEG35 [19] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsz1=vbsz2 + //SEG37 [21] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsz1=vbsz2 lda sz sta calculate_matrix.sz - //SEG36 [20] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG38 [22] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr calculate_matrix - //SEG37 [21] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] + //SEG39 [23] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] b17_from_b6: jmp b17 - //SEG38 anim::@17 + //SEG40 anim::@17 b17: - //SEG39 [22] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG41 [24] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr store_matrix - //SEG40 [23] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] + //SEG42 [25] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] b7_from_b17: - //SEG41 [23] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 + //SEG43 [25] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 lda #0 sta i jmp b7 - //SEG42 [23] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] + //SEG44 [25] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] b7_from_b19: - //SEG43 [23] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy + //SEG45 [25] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy jmp b7 - //SEG44 anim::@7 + //SEG46 anim::@7 b7: - //SEG45 [24] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG47 [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG46 [25] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG48 [27] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda xs,y sta rotate_matrix.x - //SEG47 [26] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG49 [28] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda ys,y sta rotate_matrix.y - //SEG48 [27] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG50 [29] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda zs,y sta rotate_matrix.z - //SEG49 [28] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG51 [30] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) jsr rotate_matrix jmp b19 - //SEG50 anim::@19 + //SEG52 anim::@19 b19: - //SEG51 [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuz1=vbuz2_rol_1 + //SEG53 [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuz1=vbuz2_rol_1 lda i asl sta i2 - //SEG52 [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) -- vbsz1=_deref_pbsc1_ror_1 - lda xr - cmp #$80 - ror - sta _5 - //SEG53 [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) -- vbuz1=vbuc1_plus_vbuz2 + //SEG54 [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) -- vbuz1=vbuc1_plus__deref_pbuc2 lda #$80 clc - adc _5 - sta _7 - //SEG54 [32] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _7 + adc xp + sta _6 + //SEG55 [33] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _6 ldy i2 sta SPRITES_XPOS,y - //SEG55 [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbsz1=_deref_pbsc1_ror_1 - lda yr - cmp #$80 - ror - sta _8 - //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) -- vbuz1=vbuc1_plus_vbuz2 + //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbuz1=vbuc1_plus__deref_pbuc2 lda #$80 clc - adc _8 - sta _10 - //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _10 + adc yp + sta _8 + //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _8 ldy i2 sta SPRITES_YPOS,y - //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #8 bne b7_from_b19 jmp b14 //SEG60 anim::@14 b14: - //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 inc sz - //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 + //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 dec sy - //SEG63 [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) -- vbuz1=vbsz2_band_vbuc1 + //SEG63 [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) -- vbuz1=vbsz2_band_vbuc1 lda sy and #1 - sta _12 - //SEG64 [41] if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuz1_neq_0_then_la1 - lda _12 + sta _10 + //SEG64 [41] if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuz1_neq_0_then_la1 + lda _10 bne b8_from_b14 jmp b15 //SEG65 anim::@15 b15: - //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:4::anim:11 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:5::anim:13 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 inc sx //SEG67 [43] phi from anim::@14 anim::@15 to anim::@8 [phi:anim::@14/anim::@15->anim::@8] b8_from_b14: @@ -1983,14 +2185,14 @@ anim: { jmp b8 //SEG69 anim::@8 b8: - //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 + //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL - //SEG71 [14] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] + //SEG71 [16] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] b1_from_b8: - //SEG72 [14] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy - //SEG73 [14] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy - //SEG74 [14] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy + //SEG72 [16] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy + //SEG73 [16] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy + //SEG74 [16] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy jmp b1 } //SEG75 rotate_matrix @@ -1998,16 +2200,16 @@ rotate_matrix: { .label x = $f .label y = $10 .label z = $11 - //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 lda x sta xr - //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 lda y sta yr - //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsz1 + //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsz1 lda z sta zr - //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } clc ldx zr C1: @@ -2027,28 +2229,6 @@ rotate_matrix: { sta I3+1 ldx xr ldy yr - C3: - lda #0 - A1: - adc mulf_sqr1,x - A2: - sbc mulf_sqr2,x - B1: - adc mulf_sqr1,y - B2: - sbc mulf_sqr2,y - sta xr - F3: - lda #0 - D1: - adc mulf_sqr1,x - D2: - sbc mulf_sqr2,x - E1: - adc mulf_sqr1,y - E2: - sbc mulf_sqr2,y - sta yr I3: lda #0 G1: @@ -2060,10 +2240,54 @@ rotate_matrix: { H2: sbc mulf_sqr2,y sta zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + C3: + lda #0 + A1: + adc mulf_sqr1,x + A2: + sbc mulf_sqr2,x + B1: + adc mulf_sqr1,y + B2: + sbc mulf_sqr2,y + sta xr + cmp #$80 + ror + sta XX+1 + clc + F3: + lda #0 + D1: + adc mulf_sqr1,x + D2: + sbc mulf_sqr2,x + E1: + adc mulf_sqr1,y + E2: + sbc mulf_sqr2,y + sta yr + cmp #$80 + ror + clc + tay + lda (psp1),y + sbc (psp2),y + sta yp + XX: + ldy #0 + lda (psp1),y + sbc (psp2),y + sta xp jmp breturn //SEG80 rotate_matrix::@return breturn: - //SEG81 [49] return [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG81 [49] return [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) rts } //SEG82 store_matrix @@ -2108,297 +2332,297 @@ store_matrix: { jmp breturn //SEG84 store_matrix::@return breturn: - //SEG85 [51] return [ ] ( main:4::anim:11::store_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG85 [51] return [ ] ( main:5::anim:13::store_matrix:24 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG86 calculate_matrix calculate_matrix: { - .label _10 = $22 - .label _11 = $23 - .label _12 = $24 - .label _13 = $25 - .label _14 = $26 - .label _15 = $27 - .label _16 = $28 - .label _17 = $29 - .label _18 = $2a - .label _19 = $2b - .label _20 = $2c - .label _21 = $2d - .label _22 = $2e - .label _23 = $2f - .label _24 = $30 - .label _25 = $31 - .label _26 = $32 - .label _27 = $33 - .label _28 = $34 - .label _29 = $35 - .label _30 = $36 - .label _31 = $37 - .label _32 = $38 - .label _33 = $39 - .label _34 = $3a + .label _10 = $20 + .label _11 = $21 + .label _12 = $22 + .label _13 = $23 + .label _14 = $24 + .label _15 = $25 + .label _16 = $26 + .label _17 = $27 + .label _18 = $28 + .label _19 = $29 + .label _20 = $2a + .label _21 = $2b + .label _22 = $2c + .label _23 = $2d + .label _24 = $2e + .label _25 = $2f + .label _26 = $30 + .label _27 = $31 + .label _28 = $32 + .label _29 = $33 + .label _30 = $34 + .label _31 = $35 + .label _32 = $36 + .label _33 = $37 + .label _34 = $38 .label sx = $c .label sy = $d .label sz = $e - .label t1 = $18 - .label t2 = $19 - .label t3 = $1a - .label t4 = $1b - .label t5 = $1c - .label t6 = $1d - .label t7 = $1e - .label t8 = $1f - .label t9 = $20 - .label t10 = $21 - //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + .label t1 = $16 + .label t2 = $17 + .label t3 = $18 + .label t4 = $19 + .label t5 = $1a + .label t6 = $1b + .label t7 = $1c + .label t8 = $1d + .label t9 = $1e + .label t10 = $1f + //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 lda sy sec sbc sz sta t1 - //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 lda sy clc adc sz sta t2 - //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 lda sx clc adc sz sta t3 - //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 lda sx sec sbc sz sta t4 - //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 lda sx clc adc t2 sta t5 - //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 lda sx sec sbc t1 sta t6 - //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 lda sx clc adc t1 sta t7 - //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 lda t2 sec sbc sx sta t8 - //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 lda sy sec sbc sx sta t9 - //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 lda sy clc adc sx sta t10 - //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 ldx t1 ldy t2 clc lda COSH,x adc COSH,y sta _10 - //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _10 sta rotation_matrix - //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 ldx t1 ldy t2 sec lda SINH,x sbc SINH,y sta _11 - //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _11 sta rotation_matrix+1 - //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz2 + //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz2 ldy sy clc lda SINH,y adc SINH,y sta _12 - //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _12 sta rotation_matrix+2 - //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 ldx t3 ldy t4 sec lda SINH,x sbc SINH,y sta _13 - //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _13 ldy t6 clc adc COSQ,y sta _14 - //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _14 ldy t5 sec sbc COSQ,y sta _15 - //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _15 ldy t8 clc adc COSQ,y sta _16 - //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _16 ldy t7 sec sbc COSQ,y sta _17 - //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _17 sta rotation_matrix+3 - //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 ldx t3 ldy t4 clc lda COSH,x adc COSH,y sta _18 - //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _18 ldy t5 clc adc SINQ,y sta _19 - //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _19 ldy t6 sec sbc SINQ,y sta _20 - //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _20 ldy t7 sec sbc SINQ,y sta _21 - //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _21 ldy t8 sec sbc SINQ,y sta _22 - //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _22 sta rotation_matrix+4 - //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 ldx t9 ldy t10 sec lda SINH,x sbc SINH,y sta _23 - //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _23 sta rotation_matrix+5 - //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 ldx t4 ldy t3 sec lda COSH,x sbc COSH,y sta _24 - //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _24 ldy t6 clc adc SINQ,y sta _25 - //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _25 ldy t5 sec sbc SINQ,y sta _26 - //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _26 ldy t8 sec sbc SINQ,y sta _27 - //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _27 ldy t7 sec sbc SINQ,y sta _28 - //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _28 sta rotation_matrix+6 - //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 ldx t3 ldy t4 clc lda SINH,x adc SINH,y sta _29 - //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _29 ldy t6 clc adc COSQ,y sta _30 - //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _30 ldy t5 sec sbc COSQ,y sta _31 - //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 lda _31 ldy t7 clc adc COSQ,y sta _32 - //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 lda _32 ldy t8 sec sbc COSQ,y sta _33 - //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _33 sta rotation_matrix+7 - //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 ldx t9 ldy t10 clc lda COSH,x adc COSH,y sta _34 - //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsz1 + //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsz1 lda _34 sta rotation_matrix+8 jmp breturn //SEG131 calculate_matrix::@return breturn: - //SEG132 [96] return [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG132 [96] return [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG133 mulf_init mulf_init: { - .label _2 = $3c - .label _4 = $3d - .label _8 = $3e - .label _10 = $3f - .label val = $3b + .label _2 = $3a + .label _4 = $3b + .label _8 = $3c + .label _10 = $3d + .label val = $39 .label sqr = 6 .label add = 9 .label i = 8 @@ -2426,64 +2650,64 @@ mulf_init: { jmp b1 //SEG142 mulf_init::@1 b1: - //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr1,y - //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr1+$100,y - //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuz1=_neg_vbuz2 + //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuz1=_neg_vbuz2 lda i eor #$ff clc adc #1 sta _2 - //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _2 sta mulf_sqr1,y - //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuz1=_neg_vbuz2 + //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuz1=_neg_vbuz2 lda i eor #$ff clc adc #1 sta _4 - //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _4 sta mulf_sqr1+$100,y - //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr2+1,y - //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr2+$100+1,y - //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuz1=vbuc1_minus_vbuz2 + //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuz1=vbuc1_minus_vbuz2 lda #1 sec sbc i sta _8 - //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _8 sta mulf_sqr2,y - //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuz1=vbuc1_minus_vbuz2 + //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuz1=vbuc1_minus_vbuz2 lda #1 sec sbc i sta _10 - //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _10 sta mulf_sqr2+$100,y - //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr clc adc add @@ -2491,7 +2715,7 @@ mulf_init: { lda sqr+1 adc add+1 sta sqr+1 - //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -2499,16 +2723,16 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$81 bne b1_from_b1 jmp breturn //SEG160 mulf_init::@return breturn: - //SEG161 [116] return [ ] ( main:4::mulf_init:9 [ ] ) + //SEG161 [116] return [ ] ( main:5::mulf_init:10 [ ] ) rts } //SEG162 sprites_init @@ -2516,7 +2740,7 @@ sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 .label i = $b - //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG164 [118] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -2531,24 +2755,24 @@ sprites_init: { jmp b1 //SEG168 sprites_init::@1 b1: - //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$ff&SPRITE/$40 sta sprites_ptr,y - //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #GREEN sta SPRITES_COLS,y - //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #8 bne b1_from_b1 jmp breturn //SEG173 sprites_init::@return breturn: - //SEG174 [123] return [ ] ( main:4::sprites_init:7 [ ] ) + //SEG174 [123] return [ ] ( main:5::sprites_init:8 [ ] ) rts } rotation_matrix: .fill 9, 0 @@ -2565,6 +2789,20 @@ sprites_init: { .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + .pc = COSH "Inline" { .var min = -$1fff @@ -2589,20 +2827,20 @@ sprites_init: { REGISTER UPLIFT POTENTIAL REGISTERS -Statement [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) always clobbers reg byte a +Statement [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) always clobbers reg byte a +Statement [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) always clobbers reg byte a +Statement [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] -Statement [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a +Statement [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] -Statement [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) always clobbers reg byte a +Statement [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ anim::i2#0 ] -Statement [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) always clobbers reg byte a -Statement [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a -Statement [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a -Statement [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) always clobbers reg byte a -Statement [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) always clobbers reg byte a -Statement asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y +Statement [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a +Statement [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) always clobbers reg byte a +Statement [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) always clobbers reg byte a +Statement asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] @@ -2612,237 +2850,237 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ an Removing always clobbered register reg byte x as potential for zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] Statement asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1 } always clobbers reg byte a -Statement [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) always clobbers reg byte a +Statement [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ calculate_matrix::sx#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ calculate_matrix::sz#0 ] -Statement [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] -Statement [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] -Statement [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ calculate_matrix::t3#0 ] -Statement [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ calculate_matrix::t4#0 ] -Statement [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ calculate_matrix::t5#0 ] -Statement [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ calculate_matrix::t6#0 ] -Statement [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ calculate_matrix::t7#0 ] -Statement [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ calculate_matrix::t8#0 ] -Statement [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ calculate_matrix::t9#0 ] -Statement [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ calculate_matrix::t10#0 ] -Statement [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) always clobbers reg byte a -Statement [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) always clobbers reg byte a -Statement [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) always clobbers reg byte a -Statement [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) always clobbers reg byte a +Statement [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] +Statement [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] +Statement [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ calculate_matrix::t3#0 ] +Statement [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ calculate_matrix::t4#0 ] +Statement [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ calculate_matrix::t5#0 ] +Statement [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ calculate_matrix::t6#0 ] +Statement [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ calculate_matrix::t7#0 ] +Statement [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ calculate_matrix::t8#0 ] +Statement [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ calculate_matrix::t9#0 ] +Statement [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ calculate_matrix::t10#0 ] +Statement [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) always clobbers reg byte a +Statement [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) always clobbers reg byte a +Statement [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) always clobbers reg byte a +Statement [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) always clobbers reg byte a Potential register analysis [70] calculate_matrix::$15 ← calculate_matrix::$14 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$14 ] reg byte a [ calculate_matrix::$15 ] reg byte x [ calculate_matrix::t5#0 ] Potential register analysis [70] calculate_matrix::$15 ← calculate_matrix::$14 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$14 ] reg byte a [ calculate_matrix::$15 ] reg byte y [ calculate_matrix::t5#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) always clobbers reg byte a -Statement [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) always clobbers reg byte a +Statement [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) always clobbers reg byte a +Statement [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) always clobbers reg byte a Potential register analysis [72] calculate_matrix::$17 ← calculate_matrix::$16 - *(COSQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$16 ] reg byte x [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$17 ] Potential register analysis [72] calculate_matrix::$17 ← calculate_matrix::$16 - *(COSQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$16 ] reg byte y [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$17 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) always clobbers reg byte a -Statement [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) always clobbers reg byte a -Statement [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) always clobbers reg byte a +Statement [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) always clobbers reg byte a +Statement [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) always clobbers reg byte a +Statement [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) always clobbers reg byte a Potential register analysis [76] calculate_matrix::$20 ← calculate_matrix::$19 - *(SINQ#0 + calculate_matrix::t6#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$20 ] reg byte x [ calculate_matrix::t6#0 ] reg byte x [ calculate_matrix::$19 ] Potential register analysis [76] calculate_matrix::$20 ← calculate_matrix::$19 - *(SINQ#0 + calculate_matrix::t6#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$20 ] reg byte y [ calculate_matrix::t6#0 ] reg byte y [ calculate_matrix::$19 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) always clobbers reg byte a +Statement [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) always clobbers reg byte a Potential register analysis [77] calculate_matrix::$21 ← calculate_matrix::$20 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$21 ] reg byte x [ calculate_matrix::$20 ] reg byte x [ calculate_matrix::t7#0 ] Potential register analysis [77] calculate_matrix::$21 ← calculate_matrix::$20 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$21 ] reg byte y [ calculate_matrix::$20 ] reg byte y [ calculate_matrix::t7#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) always clobbers reg byte a +Statement [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) always clobbers reg byte a Potential register analysis [78] calculate_matrix::$22 ← calculate_matrix::$21 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$21 ] reg byte a [ calculate_matrix::$22 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [78] calculate_matrix::$22 ← calculate_matrix::$21 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$21 ] reg byte a [ calculate_matrix::$22 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) always clobbers reg byte a -Statement [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) always clobbers reg byte a -Statement [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) always clobbers reg byte a -Statement [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) always clobbers reg byte a +Statement [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) always clobbers reg byte a +Statement [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) always clobbers reg byte a +Statement [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) always clobbers reg byte a +Statement [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) always clobbers reg byte a Potential register analysis [84] calculate_matrix::$26 ← calculate_matrix::$25 - *(SINQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$25 ] reg byte a [ calculate_matrix::$26 ] reg byte x [ calculate_matrix::t5#0 ] Potential register analysis [84] calculate_matrix::$26 ← calculate_matrix::$25 - *(SINQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$25 ] reg byte a [ calculate_matrix::$26 ] reg byte y [ calculate_matrix::t5#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) always clobbers reg byte a +Statement [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) always clobbers reg byte a Potential register analysis [85] calculate_matrix::$27 ← calculate_matrix::$26 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$27 ] reg byte x [ calculate_matrix::$26 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [85] calculate_matrix::$27 ← calculate_matrix::$26 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$27 ] reg byte y [ calculate_matrix::$26 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) always clobbers reg byte a +Statement [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) always clobbers reg byte a Potential register analysis [86] calculate_matrix::$28 ← calculate_matrix::$27 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$27 ] reg byte x [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$28 ] Potential register analysis [86] calculate_matrix::$28 ← calculate_matrix::$27 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$27 ] reg byte y [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$28 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) always clobbers reg byte a -Statement [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) always clobbers reg byte a -Statement [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) always clobbers reg byte a +Statement [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) always clobbers reg byte a +Statement [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) always clobbers reg byte a +Statement [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) always clobbers reg byte a Potential register analysis [90] calculate_matrix::$31 ← calculate_matrix::$30 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$31 ] reg byte x [ calculate_matrix::t5#0 ] reg byte x [ calculate_matrix::$30 ] Potential register analysis [90] calculate_matrix::$31 ← calculate_matrix::$30 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$31 ] reg byte y [ calculate_matrix::t5#0 ] reg byte y [ calculate_matrix::$30 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) always clobbers reg byte a -Statement [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) always clobbers reg byte a +Statement [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) always clobbers reg byte a +Statement [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) always clobbers reg byte a Potential register analysis [92] calculate_matrix::$33 ← calculate_matrix::$32 - *(COSQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$32 ] reg byte a [ calculate_matrix::$33 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [92] calculate_matrix::$33 ← calculate_matrix::$32 - *(COSQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$32 ] reg byte a [ calculate_matrix::$33 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) always clobbers reg byte a -Statement [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) always clobbers reg byte a -Statement [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) always clobbers reg byte a +Statement [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) always clobbers reg byte a +Statement [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] -Statement [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ mulf_init::val#0 ] -Statement [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a -Statement [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a -Statement [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a -Statement [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a -Statement [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a -Statement [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a -Statement [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) always clobbers reg byte a -Statement [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ mulf_init::val#0 ] +Statement [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a +Statement [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a +Statement [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a +Statement [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a +Statement [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a +Statement [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) always clobbers reg byte a +Statement [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] -Statement [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) always clobbers reg byte a -Statement [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) always clobbers reg byte a -Statement [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a -Statement [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) always clobbers reg byte a -Statement [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) always clobbers reg byte a -Statement [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a -Statement [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a -Statement [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) always clobbers reg byte a -Statement [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) always clobbers reg byte a -Statement [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) always clobbers reg byte a -Statement asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y +Statement [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) always clobbers reg byte a +Statement [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) always clobbers reg byte a +Statement [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) always clobbers reg byte a +Statement [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a +Statement [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) always clobbers reg byte a +Statement [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a +Statement [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) always clobbers reg byte a +Statement [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) always clobbers reg byte a +Statement [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) always clobbers reg byte a +Statement asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } always clobbers reg byte a reg byte x reg byte y Statement asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1 } always clobbers reg byte a -Statement [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) always clobbers reg byte a -Statement [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) always clobbers reg byte a -Statement [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) always clobbers reg byte a -Statement [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) always clobbers reg byte a -Statement [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) always clobbers reg byte a -Statement [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) always clobbers reg byte a -Statement [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) always clobbers reg byte a -Statement [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) always clobbers reg byte a -Statement [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) always clobbers reg byte a -Statement [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) always clobbers reg byte a -Statement [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) always clobbers reg byte a -Statement [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) always clobbers reg byte a -Statement [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) always clobbers reg byte a -Statement [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) always clobbers reg byte a -Statement [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) always clobbers reg byte a +Statement [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) always clobbers reg byte a +Statement [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) always clobbers reg byte a +Statement [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) always clobbers reg byte a +Statement [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) always clobbers reg byte a +Statement [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) always clobbers reg byte a +Statement [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) always clobbers reg byte a +Statement [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) always clobbers reg byte a +Statement [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) always clobbers reg byte a +Statement [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) always clobbers reg byte a +Statement [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) always clobbers reg byte a +Statement [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) always clobbers reg byte a +Statement [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) always clobbers reg byte a +Statement [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) always clobbers reg byte a +Statement [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) always clobbers reg byte a +Statement [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) always clobbers reg byte a Potential register analysis [70] calculate_matrix::$15 ← calculate_matrix::$14 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$14 ] reg byte a [ calculate_matrix::$15 ] reg byte x [ calculate_matrix::t5#0 ] Potential register analysis [70] calculate_matrix::$15 ← calculate_matrix::$14 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$14 ] reg byte a [ calculate_matrix::$15 ] reg byte y [ calculate_matrix::t5#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) always clobbers reg byte a -Statement [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) always clobbers reg byte a +Statement [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) always clobbers reg byte a +Statement [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) always clobbers reg byte a Potential register analysis [72] calculate_matrix::$17 ← calculate_matrix::$16 - *(COSQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$16 ] reg byte x [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$17 ] Potential register analysis [72] calculate_matrix::$17 ← calculate_matrix::$16 - *(COSQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$16 ] reg byte y [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$17 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) always clobbers reg byte a -Statement [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) always clobbers reg byte a -Statement [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) always clobbers reg byte a +Statement [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) always clobbers reg byte a +Statement [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) always clobbers reg byte a +Statement [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) always clobbers reg byte a Potential register analysis [76] calculate_matrix::$20 ← calculate_matrix::$19 - *(SINQ#0 + calculate_matrix::t6#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$20 ] reg byte x [ calculate_matrix::t6#0 ] reg byte x [ calculate_matrix::$19 ] Potential register analysis [76] calculate_matrix::$20 ← calculate_matrix::$19 - *(SINQ#0 + calculate_matrix::t6#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$20 ] reg byte y [ calculate_matrix::t6#0 ] reg byte y [ calculate_matrix::$19 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) always clobbers reg byte a +Statement [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) always clobbers reg byte a Potential register analysis [77] calculate_matrix::$21 ← calculate_matrix::$20 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$21 ] reg byte x [ calculate_matrix::$20 ] reg byte x [ calculate_matrix::t7#0 ] Potential register analysis [77] calculate_matrix::$21 ← calculate_matrix::$20 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$21 ] reg byte y [ calculate_matrix::$20 ] reg byte y [ calculate_matrix::t7#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) always clobbers reg byte a +Statement [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) always clobbers reg byte a Potential register analysis [78] calculate_matrix::$22 ← calculate_matrix::$21 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$21 ] reg byte a [ calculate_matrix::$22 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [78] calculate_matrix::$22 ← calculate_matrix::$21 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$21 ] reg byte a [ calculate_matrix::$22 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) always clobbers reg byte a -Statement [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) always clobbers reg byte a -Statement [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) always clobbers reg byte a -Statement [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) always clobbers reg byte a +Statement [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) always clobbers reg byte a +Statement [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) always clobbers reg byte a +Statement [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) always clobbers reg byte a +Statement [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) always clobbers reg byte a Potential register analysis [84] calculate_matrix::$26 ← calculate_matrix::$25 - *(SINQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$25 ] reg byte a [ calculate_matrix::$26 ] reg byte x [ calculate_matrix::t5#0 ] Potential register analysis [84] calculate_matrix::$26 ← calculate_matrix::$25 - *(SINQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$25 ] reg byte a [ calculate_matrix::$26 ] reg byte y [ calculate_matrix::t5#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) always clobbers reg byte a +Statement [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) always clobbers reg byte a Potential register analysis [85] calculate_matrix::$27 ← calculate_matrix::$26 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$27 ] reg byte x [ calculate_matrix::$26 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [85] calculate_matrix::$27 ← calculate_matrix::$26 - *(SINQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$27 ] reg byte y [ calculate_matrix::$26 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) always clobbers reg byte a +Statement [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) always clobbers reg byte a Potential register analysis [86] calculate_matrix::$28 ← calculate_matrix::$27 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$27 ] reg byte x [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$28 ] Potential register analysis [86] calculate_matrix::$28 ← calculate_matrix::$27 - *(SINQ#0 + calculate_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$27 ] reg byte y [ calculate_matrix::t7#0 ] reg byte a [ calculate_matrix::$28 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) always clobbers reg byte a -Statement [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) always clobbers reg byte a -Statement [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) always clobbers reg byte a +Statement [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) always clobbers reg byte a +Statement [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) always clobbers reg byte a +Statement [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) always clobbers reg byte a Potential register analysis [90] calculate_matrix::$31 ← calculate_matrix::$30 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte a [ calculate_matrix::$31 ] reg byte x [ calculate_matrix::t5#0 ] reg byte x [ calculate_matrix::$30 ] Potential register analysis [90] calculate_matrix::$31 ← calculate_matrix::$30 - *(COSQ#0 + calculate_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte a [ calculate_matrix::$31 ] reg byte y [ calculate_matrix::t5#0 ] reg byte y [ calculate_matrix::$30 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) always clobbers reg byte a -Statement [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) always clobbers reg byte a +Statement [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) always clobbers reg byte a +Statement [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) always clobbers reg byte a Potential register analysis [92] calculate_matrix::$33 ← calculate_matrix::$32 - *(COSQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ calculate_matrix::$32 ] reg byte a [ calculate_matrix::$33 ] reg byte x [ calculate_matrix::t8#0 ] Potential register analysis [92] calculate_matrix::$33 ← calculate_matrix::$32 - *(COSQ#0 + calculate_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ calculate_matrix::$32 ] reg byte a [ calculate_matrix::$33 ] reg byte y [ calculate_matrix::t8#0 ] MISSING FRAGMENTS vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy -Statement [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) always clobbers reg byte a -Statement [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) always clobbers reg byte a -Statement [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a -Statement [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a -Statement [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a -Statement [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a -Statement [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a -Statement [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a -Statement [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a -Statement [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) always clobbers reg byte a -Statement [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) always clobbers reg byte a -Statement [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) always clobbers reg byte a +Statement [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) always clobbers reg byte a +Statement [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a +Statement [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a +Statement [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a +Statement [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a +Statement [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a +Statement [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a +Statement [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) always clobbers reg byte a +Statement [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] : zp ZP_BYTE:2 , Potential registers zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] : zp ZP_BYTE:3 , Potential registers zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] : zp ZP_BYTE:4 , @@ -2858,179 +3096,173 @@ Potential registers zp ZP_BYTE:15 [ rotate_matrix::x#0 ] : zp ZP_BYTE:15 , reg b Potential registers zp ZP_BYTE:16 [ rotate_matrix::y#0 ] : zp ZP_BYTE:16 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:17 [ rotate_matrix::z#0 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:18 [ anim::i2#0 ] : zp ZP_BYTE:18 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:19 [ anim::$5 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:20 [ anim::$7 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:21 [ anim::$8 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:22 [ anim::$10 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:23 [ anim::$12 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ calculate_matrix::t3#0 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:27 [ calculate_matrix::t4#0 ] : zp ZP_BYTE:27 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:28 [ calculate_matrix::t5#0 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:29 [ calculate_matrix::t6#0 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:30 [ calculate_matrix::t7#0 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:31 [ calculate_matrix::t8#0 ] : zp ZP_BYTE:31 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:32 [ calculate_matrix::t9#0 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ calculate_matrix::t10#0 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:34 [ calculate_matrix::$10 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:35 [ calculate_matrix::$11 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:36 [ calculate_matrix::$12 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:37 [ calculate_matrix::$13 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ calculate_matrix::$14 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ calculate_matrix::$15 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ calculate_matrix::$16 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:41 [ calculate_matrix::$17 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:42 [ calculate_matrix::$18 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:43 [ calculate_matrix::$19 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:44 [ calculate_matrix::$20 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:45 [ calculate_matrix::$21 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:46 [ calculate_matrix::$22 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:47 [ calculate_matrix::$23 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:48 [ calculate_matrix::$24 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:49 [ calculate_matrix::$25 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:50 [ calculate_matrix::$26 ] : zp ZP_BYTE:50 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:51 [ calculate_matrix::$27 ] : zp ZP_BYTE:51 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:52 [ calculate_matrix::$28 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:53 [ calculate_matrix::$29 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:54 [ calculate_matrix::$30 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:55 [ calculate_matrix::$31 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:56 [ calculate_matrix::$32 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:57 [ calculate_matrix::$33 ] : zp ZP_BYTE:57 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:58 [ calculate_matrix::$34 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:59 [ mulf_init::val#0 ] : zp ZP_BYTE:59 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:60 [ mulf_init::$2 ] : zp ZP_BYTE:60 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:61 [ mulf_init::$4 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:62 [ mulf_init::$8 ] : zp ZP_BYTE:62 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:63 [ mulf_init::$10 ] : zp ZP_BYTE:63 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:19 [ anim::$6 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:20 [ anim::$8 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:21 [ anim::$10 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ calculate_matrix::t3#0 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:25 [ calculate_matrix::t4#0 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:26 [ calculate_matrix::t5#0 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:27 [ calculate_matrix::t6#0 ] : zp ZP_BYTE:27 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:28 [ calculate_matrix::t7#0 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ calculate_matrix::t8#0 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ calculate_matrix::t9#0 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ calculate_matrix::t10#0 ] : zp ZP_BYTE:31 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ calculate_matrix::$10 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ calculate_matrix::$11 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:34 [ calculate_matrix::$12 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:35 [ calculate_matrix::$13 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:36 [ calculate_matrix::$14 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:37 [ calculate_matrix::$15 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:38 [ calculate_matrix::$16 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:39 [ calculate_matrix::$17 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ calculate_matrix::$18 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ calculate_matrix::$19 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ calculate_matrix::$20 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ calculate_matrix::$21 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ calculate_matrix::$22 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ calculate_matrix::$23 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:46 [ calculate_matrix::$24 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:47 [ calculate_matrix::$25 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:48 [ calculate_matrix::$26 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:49 [ calculate_matrix::$27 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:50 [ calculate_matrix::$28 ] : zp ZP_BYTE:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:51 [ calculate_matrix::$29 ] : zp ZP_BYTE:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:52 [ calculate_matrix::$30 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:53 [ calculate_matrix::$31 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:54 [ calculate_matrix::$32 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:55 [ calculate_matrix::$33 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:56 [ calculate_matrix::$34 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:57 [ mulf_init::val#0 ] : zp ZP_BYTE:57 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:58 [ mulf_init::$2 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:59 [ mulf_init::$4 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:60 [ mulf_init::$8 ] : zp ZP_BYTE:60 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:61 [ mulf_init::$10 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [anim] 202: zp ZP_BYTE:20 [ anim::$7 ] 202: zp ZP_BYTE:22 [ anim::$10 ] 198.12: zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] 101: zp ZP_BYTE:19 [ anim::$5 ] 101: zp ZP_BYTE:21 [ anim::$8 ] 50.5: zp ZP_BYTE:18 [ anim::i2#0 ] 40.07: zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] 22: zp ZP_BYTE:23 [ anim::$12 ] 6.82: zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] 4.52: zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] -Uplift Scope [mulf_init] 23.38: zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] 22: zp ZP_BYTE:60 [ mulf_init::$2 ] 22: zp ZP_BYTE:61 [ mulf_init::$4 ] 22: zp ZP_BYTE:62 [ mulf_init::$8 ] 22: zp ZP_BYTE:63 [ mulf_init::$10 ] 9.53: zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] 8.25: zp ZP_BYTE:59 [ mulf_init::val#0 ] 7.86: zp ZP_WORD:6 [ mulf_init::sqr#2 mulf_init::sqr#1 ] -Uplift Scope [calculate_matrix] 4.75: zp ZP_BYTE:14 [ calculate_matrix::sz#0 ] 4: zp ZP_BYTE:34 [ calculate_matrix::$10 ] 4: zp ZP_BYTE:35 [ calculate_matrix::$11 ] 4: zp ZP_BYTE:36 [ calculate_matrix::$12 ] 4: zp ZP_BYTE:37 [ calculate_matrix::$13 ] 4: zp ZP_BYTE:38 [ calculate_matrix::$14 ] 4: zp ZP_BYTE:39 [ calculate_matrix::$15 ] 4: zp ZP_BYTE:40 [ calculate_matrix::$16 ] 4: zp ZP_BYTE:41 [ calculate_matrix::$17 ] 4: zp ZP_BYTE:42 [ calculate_matrix::$18 ] 4: zp ZP_BYTE:43 [ calculate_matrix::$19 ] 4: zp ZP_BYTE:44 [ calculate_matrix::$20 ] 4: zp ZP_BYTE:45 [ calculate_matrix::$21 ] 4: zp ZP_BYTE:46 [ calculate_matrix::$22 ] 4: zp ZP_BYTE:47 [ calculate_matrix::$23 ] 4: zp ZP_BYTE:48 [ calculate_matrix::$24 ] 4: zp ZP_BYTE:49 [ calculate_matrix::$25 ] 4: zp ZP_BYTE:50 [ calculate_matrix::$26 ] 4: zp ZP_BYTE:51 [ calculate_matrix::$27 ] 4: zp ZP_BYTE:52 [ calculate_matrix::$28 ] 4: zp ZP_BYTE:53 [ calculate_matrix::$29 ] 4: zp ZP_BYTE:54 [ calculate_matrix::$30 ] 4: zp ZP_BYTE:55 [ calculate_matrix::$31 ] 4: zp ZP_BYTE:56 [ calculate_matrix::$32 ] 4: zp ZP_BYTE:57 [ calculate_matrix::$33 ] 4: zp ZP_BYTE:58 [ calculate_matrix::$34 ] 2.25: zp ZP_BYTE:12 [ calculate_matrix::sx#0 ] 1.44: zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] 0.91: zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] 0.83: zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] 0.31: zp ZP_BYTE:29 [ calculate_matrix::t6#0 ] 0.3: zp ZP_BYTE:27 [ calculate_matrix::t4#0 ] 0.3: zp ZP_BYTE:30 [ calculate_matrix::t7#0 ] 0.3: zp ZP_BYTE:31 [ calculate_matrix::t8#0 ] 0.29: zp ZP_BYTE:26 [ calculate_matrix::t3#0 ] 0.29: zp ZP_BYTE:28 [ calculate_matrix::t5#0 ] 0.18: zp ZP_BYTE:33 [ calculate_matrix::t10#0 ] 0.18: zp ZP_BYTE:32 [ calculate_matrix::t9#0 ] +Uplift Scope [anim] 206.59: zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] 202: zp ZP_BYTE:19 [ anim::$6 ] 202: zp ZP_BYTE:20 [ anim::$8 ] 75.75: zp ZP_BYTE:18 [ anim::i2#0 ] 40.19: zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] 22: zp ZP_BYTE:21 [ anim::$10 ] 6.93: zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] 4.64: zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] +Uplift Scope [mulf_init] 23.38: zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] 22: zp ZP_BYTE:58 [ mulf_init::$2 ] 22: zp ZP_BYTE:59 [ mulf_init::$4 ] 22: zp ZP_BYTE:60 [ mulf_init::$8 ] 22: zp ZP_BYTE:61 [ mulf_init::$10 ] 9.53: zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] 8.25: zp ZP_BYTE:57 [ mulf_init::val#0 ] 7.86: zp ZP_WORD:6 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +Uplift Scope [calculate_matrix] 4.75: zp ZP_BYTE:14 [ calculate_matrix::sz#0 ] 4: zp ZP_BYTE:32 [ calculate_matrix::$10 ] 4: zp ZP_BYTE:33 [ calculate_matrix::$11 ] 4: zp ZP_BYTE:34 [ calculate_matrix::$12 ] 4: zp ZP_BYTE:35 [ calculate_matrix::$13 ] 4: zp ZP_BYTE:36 [ calculate_matrix::$14 ] 4: zp ZP_BYTE:37 [ calculate_matrix::$15 ] 4: zp ZP_BYTE:38 [ calculate_matrix::$16 ] 4: zp ZP_BYTE:39 [ calculate_matrix::$17 ] 4: zp ZP_BYTE:40 [ calculate_matrix::$18 ] 4: zp ZP_BYTE:41 [ calculate_matrix::$19 ] 4: zp ZP_BYTE:42 [ calculate_matrix::$20 ] 4: zp ZP_BYTE:43 [ calculate_matrix::$21 ] 4: zp ZP_BYTE:44 [ calculate_matrix::$22 ] 4: zp ZP_BYTE:45 [ calculate_matrix::$23 ] 4: zp ZP_BYTE:46 [ calculate_matrix::$24 ] 4: zp ZP_BYTE:47 [ calculate_matrix::$25 ] 4: zp ZP_BYTE:48 [ calculate_matrix::$26 ] 4: zp ZP_BYTE:49 [ calculate_matrix::$27 ] 4: zp ZP_BYTE:50 [ calculate_matrix::$28 ] 4: zp ZP_BYTE:51 [ calculate_matrix::$29 ] 4: zp ZP_BYTE:52 [ calculate_matrix::$30 ] 4: zp ZP_BYTE:53 [ calculate_matrix::$31 ] 4: zp ZP_BYTE:54 [ calculate_matrix::$32 ] 4: zp ZP_BYTE:55 [ calculate_matrix::$33 ] 4: zp ZP_BYTE:56 [ calculate_matrix::$34 ] 2.25: zp ZP_BYTE:12 [ calculate_matrix::sx#0 ] 1.44: zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] 0.91: zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] 0.83: zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] 0.31: zp ZP_BYTE:27 [ calculate_matrix::t6#0 ] 0.3: zp ZP_BYTE:25 [ calculate_matrix::t4#0 ] 0.3: zp ZP_BYTE:28 [ calculate_matrix::t7#0 ] 0.3: zp ZP_BYTE:29 [ calculate_matrix::t8#0 ] 0.29: zp ZP_BYTE:24 [ calculate_matrix::t3#0 ] 0.29: zp ZP_BYTE:26 [ calculate_matrix::t5#0 ] 0.18: zp ZP_BYTE:31 [ calculate_matrix::t10#0 ] 0.18: zp ZP_BYTE:30 [ calculate_matrix::t9#0 ] Uplift Scope [rotate_matrix] 34.33: zp ZP_BYTE:15 [ rotate_matrix::x#0 ] 34.33: zp ZP_BYTE:16 [ rotate_matrix::y#0 ] 34.33: zp ZP_BYTE:17 [ rotate_matrix::z#0 ] Uplift Scope [sprites_init] 31.17: zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] Uplift Scope [main] Uplift Scope [store_matrix] Uplift Scope [] -Uplifting [anim] best 18719 combination reg byte a [ anim::$7 ] reg byte a [ anim::$10 ] zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] reg byte a [ anim::$5 ] reg byte a [ anim::$8 ] zp ZP_BYTE:18 [ anim::i2#0 ] zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] zp ZP_BYTE:23 [ anim::$12 ] zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] -Limited combination testing to 100 combinations of 3072 possible. -Uplifting [mulf_init] best 18389 combination reg byte x [ mulf_init::i#2 mulf_init::i#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$8 ] zp ZP_BYTE:63 [ mulf_init::$10 ] zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] zp ZP_BYTE:59 [ mulf_init::val#0 ] zp ZP_WORD:6 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +Uplifting [anim] best 17527 combination zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] reg byte a [ anim::$6 ] reg byte a [ anim::$8 ] reg byte x [ anim::i2#0 ] zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] reg byte a [ anim::$10 ] zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] +Limited combination testing to 100 combinations of 192 possible. +Uplifting [mulf_init] best 17197 combination reg byte x [ mulf_init::i#2 mulf_init::i#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$8 ] zp ZP_BYTE:61 [ mulf_init::$10 ] zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] zp ZP_BYTE:57 [ mulf_init::val#0 ] zp ZP_WORD:6 [ mulf_init::sqr#2 mulf_init::sqr#1 ] Limited combination testing to 100 combinations of 2304 possible. -Uplifting [rotate_matrix] best 17987 combination zp ZP_BYTE:15 [ rotate_matrix::x#0 ] reg byte y [ rotate_matrix::y#0 ] reg byte x [ rotate_matrix::z#0 ] -Uplifting [sprites_init] best 17837 combination reg byte x [ sprites_init::i#2 sprites_init::i#1 ] -Uplifting [main] best 17837 combination -Uplifting [store_matrix] best 17837 combination -Uplifting [] best 17837 combination +Uplifting [rotate_matrix] best 16795 combination zp ZP_BYTE:15 [ rotate_matrix::x#0 ] reg byte y [ rotate_matrix::y#0 ] reg byte x [ rotate_matrix::z#0 ] +Uplifting [sprites_init] best 16645 combination reg byte x [ sprites_init::i#2 sprites_init::i#1 ] +Uplifting [main] best 16645 combination +Uplifting [store_matrix] best 16645 combination +Uplifting [] best 16645 combination Attempting to uplift remaining variables inzp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] -Uplifting [anim] best 17837 combination zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:18 [ anim::i2#0 ] -Uplifting [anim] best 17137 combination reg byte x [ anim::i2#0 ] +Uplifting [anim] best 16645 combination zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] -Uplifting [anim] best 17137 combination zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] +Uplifting [anim] best 16645 combination zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ rotate_matrix::x#0 ] -Uplifting [rotate_matrix] best 17137 combination zp ZP_BYTE:15 [ rotate_matrix::x#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:23 [ anim::$12 ] -Uplifting [anim] best 17097 combination reg byte a [ anim::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:63 [ mulf_init::$10 ] -Uplifting [mulf_init] best 17057 combination reg byte a [ mulf_init::$10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:59 [ mulf_init::val#0 ] -Uplifting [mulf_init] best 17057 combination zp ZP_BYTE:59 [ mulf_init::val#0 ] +Uplifting [rotate_matrix] best 16645 combination zp ZP_BYTE:15 [ rotate_matrix::x#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:61 [ mulf_init::$10 ] +Uplifting [mulf_init] best 16605 combination reg byte a [ mulf_init::$10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:57 [ mulf_init::val#0 ] +Uplifting [mulf_init] best 16605 combination zp ZP_BYTE:57 [ mulf_init::val#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] -Uplifting [anim] best 17057 combination zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] +Uplifting [anim] best 16605 combination zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ calculate_matrix::sz#0 ] -Uplifting [calculate_matrix] best 17027 combination reg byte x [ calculate_matrix::sz#0 ] +Uplifting [calculate_matrix] best 16575 combination reg byte x [ calculate_matrix::sz#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] -Uplifting [anim] best 17027 combination zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:34 [ calculate_matrix::$10 ] -Uplifting [calculate_matrix] best 17021 combination reg byte a [ calculate_matrix::$10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:35 [ calculate_matrix::$11 ] -Uplifting [calculate_matrix] best 17015 combination reg byte a [ calculate_matrix::$11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:36 [ calculate_matrix::$12 ] -Uplifting [calculate_matrix] best 17009 combination reg byte a [ calculate_matrix::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:37 [ calculate_matrix::$13 ] -Uplifting [calculate_matrix] best 17003 combination reg byte a [ calculate_matrix::$13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:38 [ calculate_matrix::$14 ] -Uplifting [calculate_matrix] best 16997 combination reg byte a [ calculate_matrix::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ calculate_matrix::$15 ] -Uplifting [calculate_matrix] best 16991 combination reg byte a [ calculate_matrix::$15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ calculate_matrix::$16 ] -Uplifting [calculate_matrix] best 16985 combination reg byte a [ calculate_matrix::$16 ] -Attempting to uplift remaining variables inzp ZP_BYTE:41 [ calculate_matrix::$17 ] -Uplifting [calculate_matrix] best 16979 combination reg byte a [ calculate_matrix::$17 ] -Attempting to uplift remaining variables inzp ZP_BYTE:42 [ calculate_matrix::$18 ] -Uplifting [calculate_matrix] best 16973 combination reg byte a [ calculate_matrix::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:43 [ calculate_matrix::$19 ] -Uplifting [calculate_matrix] best 16967 combination reg byte a [ calculate_matrix::$19 ] -Attempting to uplift remaining variables inzp ZP_BYTE:44 [ calculate_matrix::$20 ] -Uplifting [calculate_matrix] best 16961 combination reg byte a [ calculate_matrix::$20 ] -Attempting to uplift remaining variables inzp ZP_BYTE:45 [ calculate_matrix::$21 ] -Uplifting [calculate_matrix] best 16955 combination reg byte a [ calculate_matrix::$21 ] -Attempting to uplift remaining variables inzp ZP_BYTE:46 [ calculate_matrix::$22 ] -Uplifting [calculate_matrix] best 16949 combination reg byte a [ calculate_matrix::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:47 [ calculate_matrix::$23 ] -Uplifting [calculate_matrix] best 16943 combination reg byte a [ calculate_matrix::$23 ] -Attempting to uplift remaining variables inzp ZP_BYTE:48 [ calculate_matrix::$24 ] -Uplifting [calculate_matrix] best 16937 combination reg byte a [ calculate_matrix::$24 ] -Attempting to uplift remaining variables inzp ZP_BYTE:49 [ calculate_matrix::$25 ] -Uplifting [calculate_matrix] best 16931 combination reg byte a [ calculate_matrix::$25 ] -Attempting to uplift remaining variables inzp ZP_BYTE:50 [ calculate_matrix::$26 ] -Uplifting [calculate_matrix] best 16925 combination reg byte a [ calculate_matrix::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:51 [ calculate_matrix::$27 ] -Uplifting [calculate_matrix] best 16919 combination reg byte a [ calculate_matrix::$27 ] -Attempting to uplift remaining variables inzp ZP_BYTE:52 [ calculate_matrix::$28 ] -Uplifting [calculate_matrix] best 16913 combination reg byte a [ calculate_matrix::$28 ] -Attempting to uplift remaining variables inzp ZP_BYTE:53 [ calculate_matrix::$29 ] -Uplifting [calculate_matrix] best 16907 combination reg byte a [ calculate_matrix::$29 ] -Attempting to uplift remaining variables inzp ZP_BYTE:54 [ calculate_matrix::$30 ] -Uplifting [calculate_matrix] best 16901 combination reg byte a [ calculate_matrix::$30 ] -Attempting to uplift remaining variables inzp ZP_BYTE:55 [ calculate_matrix::$31 ] -Uplifting [calculate_matrix] best 16895 combination reg byte a [ calculate_matrix::$31 ] -Attempting to uplift remaining variables inzp ZP_BYTE:56 [ calculate_matrix::$32 ] -Uplifting [calculate_matrix] best 16889 combination reg byte a [ calculate_matrix::$32 ] -Attempting to uplift remaining variables inzp ZP_BYTE:57 [ calculate_matrix::$33 ] -Uplifting [calculate_matrix] best 16883 combination reg byte a [ calculate_matrix::$33 ] -Attempting to uplift remaining variables inzp ZP_BYTE:58 [ calculate_matrix::$34 ] -Uplifting [calculate_matrix] best 16877 combination reg byte a [ calculate_matrix::$34 ] +Uplifting [anim] best 16575 combination zp ZP_BYTE:4 [ anim::sz#6 anim::sz#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:32 [ calculate_matrix::$10 ] +Uplifting [calculate_matrix] best 16569 combination reg byte a [ calculate_matrix::$10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ calculate_matrix::$11 ] +Uplifting [calculate_matrix] best 16563 combination reg byte a [ calculate_matrix::$11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:34 [ calculate_matrix::$12 ] +Uplifting [calculate_matrix] best 16557 combination reg byte a [ calculate_matrix::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:35 [ calculate_matrix::$13 ] +Uplifting [calculate_matrix] best 16551 combination reg byte a [ calculate_matrix::$13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:36 [ calculate_matrix::$14 ] +Uplifting [calculate_matrix] best 16545 combination reg byte a [ calculate_matrix::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:37 [ calculate_matrix::$15 ] +Uplifting [calculate_matrix] best 16539 combination reg byte a [ calculate_matrix::$15 ] +Attempting to uplift remaining variables inzp ZP_BYTE:38 [ calculate_matrix::$16 ] +Uplifting [calculate_matrix] best 16533 combination reg byte a [ calculate_matrix::$16 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ calculate_matrix::$17 ] +Uplifting [calculate_matrix] best 16527 combination reg byte a [ calculate_matrix::$17 ] +Attempting to uplift remaining variables inzp ZP_BYTE:40 [ calculate_matrix::$18 ] +Uplifting [calculate_matrix] best 16521 combination reg byte a [ calculate_matrix::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:41 [ calculate_matrix::$19 ] +Uplifting [calculate_matrix] best 16515 combination reg byte a [ calculate_matrix::$19 ] +Attempting to uplift remaining variables inzp ZP_BYTE:42 [ calculate_matrix::$20 ] +Uplifting [calculate_matrix] best 16509 combination reg byte a [ calculate_matrix::$20 ] +Attempting to uplift remaining variables inzp ZP_BYTE:43 [ calculate_matrix::$21 ] +Uplifting [calculate_matrix] best 16503 combination reg byte a [ calculate_matrix::$21 ] +Attempting to uplift remaining variables inzp ZP_BYTE:44 [ calculate_matrix::$22 ] +Uplifting [calculate_matrix] best 16497 combination reg byte a [ calculate_matrix::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:45 [ calculate_matrix::$23 ] +Uplifting [calculate_matrix] best 16491 combination reg byte a [ calculate_matrix::$23 ] +Attempting to uplift remaining variables inzp ZP_BYTE:46 [ calculate_matrix::$24 ] +Uplifting [calculate_matrix] best 16485 combination reg byte a [ calculate_matrix::$24 ] +Attempting to uplift remaining variables inzp ZP_BYTE:47 [ calculate_matrix::$25 ] +Uplifting [calculate_matrix] best 16479 combination reg byte a [ calculate_matrix::$25 ] +Attempting to uplift remaining variables inzp ZP_BYTE:48 [ calculate_matrix::$26 ] +Uplifting [calculate_matrix] best 16473 combination reg byte a [ calculate_matrix::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:49 [ calculate_matrix::$27 ] +Uplifting [calculate_matrix] best 16467 combination reg byte a [ calculate_matrix::$27 ] +Attempting to uplift remaining variables inzp ZP_BYTE:50 [ calculate_matrix::$28 ] +Uplifting [calculate_matrix] best 16461 combination reg byte a [ calculate_matrix::$28 ] +Attempting to uplift remaining variables inzp ZP_BYTE:51 [ calculate_matrix::$29 ] +Uplifting [calculate_matrix] best 16455 combination reg byte a [ calculate_matrix::$29 ] +Attempting to uplift remaining variables inzp ZP_BYTE:52 [ calculate_matrix::$30 ] +Uplifting [calculate_matrix] best 16449 combination reg byte a [ calculate_matrix::$30 ] +Attempting to uplift remaining variables inzp ZP_BYTE:53 [ calculate_matrix::$31 ] +Uplifting [calculate_matrix] best 16443 combination reg byte a [ calculate_matrix::$31 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ calculate_matrix::$32 ] +Uplifting [calculate_matrix] best 16437 combination reg byte a [ calculate_matrix::$32 ] +Attempting to uplift remaining variables inzp ZP_BYTE:55 [ calculate_matrix::$33 ] +Uplifting [calculate_matrix] best 16431 combination reg byte a [ calculate_matrix::$33 ] +Attempting to uplift remaining variables inzp ZP_BYTE:56 [ calculate_matrix::$34 ] +Uplifting [calculate_matrix] best 16425 combination reg byte a [ calculate_matrix::$34 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ calculate_matrix::sx#0 ] -Uplifting [calculate_matrix] best 16849 combination reg byte y [ calculate_matrix::sx#0 ] +Uplifting [calculate_matrix] best 16397 combination reg byte y [ calculate_matrix::sx#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:13 [ calculate_matrix::sy#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:25 [ calculate_matrix::t2#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ calculate_matrix::t1#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:29 [ calculate_matrix::t6#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:29 [ calculate_matrix::t6#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:27 [ calculate_matrix::t4#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:27 [ calculate_matrix::t4#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:30 [ calculate_matrix::t7#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:30 [ calculate_matrix::t7#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:31 [ calculate_matrix::t8#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:31 [ calculate_matrix::t8#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:26 [ calculate_matrix::t3#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:26 [ calculate_matrix::t3#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:28 [ calculate_matrix::t5#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:28 [ calculate_matrix::t5#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:33 [ calculate_matrix::t10#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:33 [ calculate_matrix::t10#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ calculate_matrix::t9#0 ] -Uplifting [calculate_matrix] best 16849 combination zp ZP_BYTE:32 [ calculate_matrix::t9#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:23 [ calculate_matrix::t2#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:22 [ calculate_matrix::t1#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:27 [ calculate_matrix::t6#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:27 [ calculate_matrix::t6#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:25 [ calculate_matrix::t4#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:25 [ calculate_matrix::t4#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:28 [ calculate_matrix::t7#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:28 [ calculate_matrix::t7#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:29 [ calculate_matrix::t8#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:29 [ calculate_matrix::t8#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ calculate_matrix::t3#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:24 [ calculate_matrix::t3#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:26 [ calculate_matrix::t5#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:26 [ calculate_matrix::t5#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:31 [ calculate_matrix::t10#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:31 [ calculate_matrix::t10#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:30 [ calculate_matrix::t9#0 ] +Uplifting [calculate_matrix] best 16397 combination zp ZP_BYTE:30 [ calculate_matrix::t9#0 ] Coalescing zero page register with common assignment [ zp ZP_BYTE:3 [ anim::sy#6 anim::sy#1 ] ] with [ zp ZP_BYTE:13 [ calculate_matrix::sy#0 ] ] - score: 1 -Coalescing zero page register [ zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] ] with [ zp ZP_BYTE:59 [ mulf_init::val#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] ] with [ zp ZP_BYTE:24 [ calculate_matrix::t1#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:15 [ rotate_matrix::x#0 ] ] with [ zp ZP_BYTE:25 [ calculate_matrix::t2#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ anim::sx#6 anim::sx#11 anim::sx#1 ] ] with [ zp ZP_BYTE:57 [ mulf_init::val#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ anim::i#2 anim::i#1 ] ] with [ zp ZP_BYTE:22 [ calculate_matrix::t1#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:15 [ rotate_matrix::x#0 ] ] with [ zp ZP_BYTE:23 [ calculate_matrix::t2#0 ] ] Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] Allocated (was zp ZP_BYTE:15) zp ZP_BYTE:10 [ rotate_matrix::x#0 calculate_matrix::t2#0 ] -Allocated (was zp ZP_BYTE:26) zp ZP_BYTE:11 [ calculate_matrix::t3#0 ] -Allocated (was zp ZP_BYTE:27) zp ZP_BYTE:12 [ calculate_matrix::t4#0 ] -Allocated (was zp ZP_BYTE:28) zp ZP_BYTE:13 [ calculate_matrix::t5#0 ] -Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:14 [ calculate_matrix::t6#0 ] -Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:15 [ calculate_matrix::t7#0 ] -Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:16 [ calculate_matrix::t8#0 ] -Allocated (was zp ZP_BYTE:32) zp ZP_BYTE:17 [ calculate_matrix::t9#0 ] -Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:18 [ calculate_matrix::t10#0 ] +Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:11 [ calculate_matrix::t3#0 ] +Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:12 [ calculate_matrix::t4#0 ] +Allocated (was zp ZP_BYTE:26) zp ZP_BYTE:13 [ calculate_matrix::t5#0 ] +Allocated (was zp ZP_BYTE:27) zp ZP_BYTE:14 [ calculate_matrix::t6#0 ] +Allocated (was zp ZP_BYTE:28) zp ZP_BYTE:15 [ calculate_matrix::t7#0 ] +Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:16 [ calculate_matrix::t8#0 ] +Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:17 [ calculate_matrix::t9#0 ] +Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:18 [ calculate_matrix::t10#0 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -3049,7 +3281,12 @@ ASSEMBLER BEFORE OPTIMIZATION .label xr = $f0 .label yr = $f1 .label zr = $f2 + .label xp = $f3 + .label yp = $f4 + .label psp1 = $f5 + .label psp2 = $f7 .label SPRITE = $3000 + .label PERSP_Z = $2400 .label COSH = $2000 .label COSQ = $2200 .label SINH = COSH+$40 @@ -3060,167 +3297,170 @@ bbegin: //SEG3 @10 b10: //SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG7 [4] call main [ ] ( ) +//SEG5 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 6.0 // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG6 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG8 [5] call main [ ] ( ) jsr main -//SEG8 [5] phi from @10 to @end [phi:@10->@end] +//SEG9 [6] phi from @10 to @end [phi:@10->@end] bend_from_b10: jmp bend -//SEG9 @end +//SEG10 @end bend: -//SEG10 main +//SEG11 main main: { - //SEG11 asm { sei } + //SEG12 asm { sei } sei - //SEG12 [7] call sprites_init [ ] ( main:4 [ ] ) + //SEG13 [8] call sprites_init [ ] ( main:5 [ ] ) jsr sprites_init - //SEG13 [8] phi from main to main::@1 [phi:main->main::@1] + //SEG14 [9] phi from main to main::@1 [phi:main->main::@1] b1_from_main: jmp b1 - //SEG14 main::@1 + //SEG15 main::@1 b1: - //SEG15 [9] call mulf_init [ ] ( main:4 [ ] ) - //SEG16 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] + //SEG16 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG17 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] mulf_init_from_b1: jsr mulf_init - //SEG17 [10] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - b2_from_b1: jmp b2 //SEG18 main::@2 b2: - //SEG19 [11] call anim [ ] ( main:4 [ ] ) - //SEG20 [13] phi from main::@2 to anim [phi:main::@2->anim] + //SEG19 [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG20 [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG21 [13] call anim [ ] ( main:5 [ ] ) + //SEG22 [15] phi from main::@2 to anim [phi:main::@2->anim] anim_from_b2: jsr anim jmp breturn - //SEG21 main::@return + //SEG23 main::@return breturn: - //SEG22 [12] return [ ] ( main:4 [ ] ) + //SEG24 [14] return [ ] ( main:5 [ ] ) rts } -//SEG23 anim +//SEG25 anim anim: { .label i = 5 .label sz = 4 .label sy = 3 .label sx = 2 - //SEG24 [14] phi from anim to anim::@1 [phi:anim->anim::@1] + //SEG26 [16] phi from anim to anim::@1 [phi:anim->anim::@1] b1_from_anim: - //SEG25 [14] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 + //SEG27 [16] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 lda #0 sta sz - //SEG26 [14] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 + //SEG28 [16] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 lda #0 sta sy - //SEG27 [14] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 + //SEG29 [16] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 lda #0 sta sx jmp b1 - //SEG28 anim::@1 + //SEG30 anim::@1 b1: jmp b4 - //SEG29 anim::@4 + //SEG31 anim::@4 b4: - //SEG30 [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG32 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 - //SEG31 anim::@6 + //SEG33 anim::@6 b6: - //SEG32 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG34 [18] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG33 [17] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsyy=vbsz1 + //SEG35 [19] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsyy=vbsz1 ldy sx - //SEG34 [18] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) + //SEG36 [20] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) // (signed byte) calculate_matrix::sy#0 = (signed byte) anim::sy#6 // register copy zp ZP_BYTE:3 - //SEG35 [19] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsxx=vbsz1 + //SEG37 [21] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsxx=vbsz1 ldx sz - //SEG36 [20] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG38 [22] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr calculate_matrix - //SEG37 [21] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] + //SEG39 [23] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] b17_from_b6: jmp b17 - //SEG38 anim::@17 + //SEG40 anim::@17 b17: - //SEG39 [22] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG41 [24] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr store_matrix - //SEG40 [23] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] + //SEG42 [25] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] b7_from_b17: - //SEG41 [23] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 + //SEG43 [25] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 lda #0 sta i jmp b7 - //SEG42 [23] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] + //SEG44 [25] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] b7_from_b19: - //SEG43 [23] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy + //SEG45 [25] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy jmp b7 - //SEG44 anim::@7 + //SEG46 anim::@7 b7: - //SEG45 [24] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG47 [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG46 [25] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG48 [27] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda xs,y sta rotate_matrix.x - //SEG47 [26] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 + //SEG49 [28] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 ldx i ldy ys,x - //SEG48 [27] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 + //SEG50 [29] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 ldx i lda zs,x tax - //SEG49 [28] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG51 [30] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) jsr rotate_matrix jmp b19 - //SEG50 anim::@19 + //SEG52 anim::@19 b19: - //SEG51 [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + //SEG53 [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 lda i asl tax - //SEG52 [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) -- vbsaa=_deref_pbsc1_ror_1 - lda xr - cmp #$80 - ror - //SEG53 [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) -- vbuaa=vbuc1_plus_vbuaa + //SEG54 [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) -- vbuaa=vbuc1_plus__deref_pbuc2 + lda #$80 clc - adc #$80 - //SEG54 [32] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + adc xp + //SEG55 [33] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_XPOS,x - //SEG55 [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbsaa=_deref_pbsc1_ror_1 - lda yr - cmp #$80 - ror - //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) -- vbuaa=vbuc1_plus_vbuaa + //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbuaa=vbuc1_plus__deref_pbuc2 + lda #$80 clc - adc #$80 - //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + adc yp + //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_YPOS,x - //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #8 bne b7_from_b19 jmp b14 //SEG60 anim::@14 b14: - //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 inc sz - //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 + //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 dec sy - //SEG63 [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) -- vbuaa=vbsz1_band_vbuc1 + //SEG63 [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) -- vbuaa=vbsz1_band_vbuc1 lda sy and #1 - //SEG64 [41] if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuaa_neq_0_then_la1 + //SEG64 [41] if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b8_from_b14 jmp b15 //SEG65 anim::@15 b15: - //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:4::anim:11 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:5::anim:13 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 inc sx //SEG67 [43] phi from anim::@14 anim::@15 to anim::@8 [phi:anim::@14/anim::@15->anim::@8] b8_from_b14: @@ -3229,29 +3469,29 @@ anim: { jmp b8 //SEG69 anim::@8 b8: - //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 + //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL - //SEG71 [14] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] + //SEG71 [16] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] b1_from_b8: - //SEG72 [14] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy - //SEG73 [14] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy - //SEG74 [14] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy + //SEG72 [16] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy + //SEG73 [16] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy + //SEG74 [16] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy jmp b1 } //SEG75 rotate_matrix rotate_matrix: { .label x = $a - //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 lda x sta xr - //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsyy + //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsyy tya sta yr - //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsxx + //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsxx txa sta zr - //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } clc ldx zr C1: @@ -3271,28 +3511,6 @@ rotate_matrix: { sta I3+1 ldx xr ldy yr - C3: - lda #0 - A1: - adc mulf_sqr1,x - A2: - sbc mulf_sqr2,x - B1: - adc mulf_sqr1,y - B2: - sbc mulf_sqr2,y - sta xr - F3: - lda #0 - D1: - adc mulf_sqr1,x - D2: - sbc mulf_sqr2,x - E1: - adc mulf_sqr1,y - E2: - sbc mulf_sqr2,y - sta yr I3: lda #0 G1: @@ -3304,10 +3522,54 @@ rotate_matrix: { H2: sbc mulf_sqr2,y sta zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + C3: + lda #0 + A1: + adc mulf_sqr1,x + A2: + sbc mulf_sqr2,x + B1: + adc mulf_sqr1,y + B2: + sbc mulf_sqr2,y + sta xr + cmp #$80 + ror + sta XX+1 + clc + F3: + lda #0 + D1: + adc mulf_sqr1,x + D2: + sbc mulf_sqr2,x + E1: + adc mulf_sqr1,y + E2: + sbc mulf_sqr2,y + sta yr + cmp #$80 + ror + clc + tay + lda (psp1),y + sbc (psp2),y + sta yp + XX: + ldy #0 + lda (psp1),y + sbc (psp2),y + sta xp jmp breturn //SEG80 rotate_matrix::@return breturn: - //SEG81 [49] return [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG81 [49] return [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) rts } //SEG82 store_matrix @@ -3352,7 +3614,7 @@ store_matrix: { jmp breturn //SEG84 store_matrix::@return breturn: - //SEG85 [51] return [ ] ( main:4::anim:11::store_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG85 [51] return [ ] ( main:5::anim:13::store_matrix:24 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG86 calculate_matrix @@ -3368,200 +3630,200 @@ calculate_matrix: { .label t8 = $10 .label t9 = $11 .label t10 = $12 - //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx + //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx txa eor #$ff sec adc sy sta t1 - //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx + //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx txa clc adc sy sta t2 - //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx + //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx txa sty $ff clc adc $ff sta t3 - //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx + //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx tya stx $ff sec sbc $ff sta t4 - //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 tya clc adc t2 sta t5 - //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 + //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 tya sec sbc t1 sta t6 - //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 tya clc adc t1 sta t7 - //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy tya eor #$ff sec adc t2 sta t8 - //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy tya eor #$ff sec adc sy sta t9 - //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy + //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy tya clc adc sy sta t10 - //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t1 ldy t2 clc lda COSH,x adc COSH,y - //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix - //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t1 ldy t2 sec lda SINH,x sbc SINH,y - //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+1 - //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 + //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 ldy sy clc lda SINH,y adc SINH,y - //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+2 - //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t3 ldy t4 sec lda SINH,x sbc SINH,y - //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc COSQ,y - //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc COSQ,y - //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t8 clc adc COSQ,y - //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc COSQ,y - //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+3 - //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t3 ldy t4 clc lda COSH,x adc COSH,y - //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t5 clc adc SINQ,y - //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t6 sec sbc SINQ,y - //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc SINQ,y - //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc SINQ,y - //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+4 - //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t9 ldy t10 sec lda SINH,x sbc SINH,y - //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+5 - //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t4 ldy t3 sec lda COSH,x sbc COSH,y - //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc SINQ,y - //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc SINQ,y - //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc SINQ,y - //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc SINQ,y - //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+6 - //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t3 ldy t4 clc lda SINH,x adc SINH,y - //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc COSQ,y - //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc COSQ,y - //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t7 clc adc COSQ,y - //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc COSQ,y - //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+7 - //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t9 ldy t10 clc lda COSH,x adc COSH,y - //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsaa + //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+8 jmp breturn //SEG131 calculate_matrix::@return breturn: - //SEG132 [96] return [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG132 [96] return [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG133 mulf_init @@ -3592,58 +3854,58 @@ mulf_init: { jmp b1 //SEG142 mulf_init::@1 b1: - //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr1,x - //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr1+$100,x - //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx + //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx txa eor #$ff clc adc #1 - //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1,y - //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx + //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx txa eor #$ff clc adc #1 - //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1+$100,y - //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr2+1,x - //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr2+$100+1,x - //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx + //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 - //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2,y - //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx + //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 - //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2+$100,y - //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr clc adc add @@ -3651,7 +3913,7 @@ mulf_init: { lda sqr+1 adc add+1 sta sqr+1 - //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -3659,22 +3921,22 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1_from_b1 jmp breturn //SEG160 mulf_init::@return breturn: - //SEG161 [116] return [ ] ( main:4::mulf_init:9 [ ] ) + //SEG161 [116] return [ ] ( main:5::mulf_init:10 [ ] ) rts } //SEG162 sprites_init sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 - //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG164 [118] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -3688,21 +3950,21 @@ sprites_init: { jmp b1 //SEG168 sprites_init::@1 b1: - //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x - //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #GREEN sta SPRITES_COLS,x - //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx + //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b1_from_b1 jmp breturn //SEG173 sprites_init::@return breturn: - //SEG174 [123] return [ ] ( main:4::sprites_init:7 [ ] ) + //SEG174 [123] return [ ] ( main:5::sprites_init:8 [ ] ) rts } rotation_matrix: .fill 9, 0 @@ -3719,6 +3981,20 @@ sprites_init: { .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + .pc = COSH "Inline" { .var min = -$1fff @@ -3789,8 +4065,6 @@ Removing instruction bbegin: Removing instruction bend_from_b10: Removing instruction b1_from_main: Removing instruction mulf_init_from_b1: -Removing instruction b2_from_b1: -Removing instruction anim_from_b2: Removing instruction b1: Removing instruction b17_from_b6: Removing instruction b7_from_b19: @@ -3803,6 +4077,7 @@ Removing instruction b10: Removing instruction bend: Removing instruction b1: Removing instruction b2: +Removing instruction anim_from_b2: Removing instruction breturn: Removing instruction b1_from_anim: Removing instruction b6: @@ -3839,6 +4114,8 @@ FINAL SYMBOL TABLE (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 +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 (signed byte*) SINH @@ -3856,11 +4133,9 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) anim() -(byte/word/signed word/dword/signed dword~) anim::$10 reg byte a 202.0 -(byte~) anim::$12 reg byte a 22.0 -(signed byte~) anim::$5 reg byte a 101.0 -(byte/word/signed word/dword/signed dword~) anim::$7 reg byte a 202.0 -(signed byte~) anim::$8 reg byte a 101.0 +(byte~) anim::$10 reg byte a 22.0 +(byte/word/signed word/dword/signed dword~) anim::$6 reg byte a 202.0 +(byte/word/signed word/dword/signed dword~) anim::$8 reg byte a 202.0 (label) anim::@1 (label) anim::@14 (label) anim::@15 @@ -3872,19 +4147,19 @@ FINAL SYMBOL TABLE (label) anim::@8 (byte) anim::i (byte) anim::i#1 i zp ZP_BYTE:5 151.5 -(byte) anim::i#2 i zp ZP_BYTE:5 46.61538461538461 +(byte) anim::i#2 i zp ZP_BYTE:5 55.090909090909086 (byte) anim::i2 -(byte) anim::i2#0 reg byte x 50.5 +(byte) anim::i2#0 reg byte x 75.75 (signed byte) anim::sx (signed byte) anim::sx#1 sx zp ZP_BYTE:2 22.0 (signed byte) anim::sx#11 sx zp ZP_BYTE:2 16.5 -(signed byte) anim::sx#6 sx zp ZP_BYTE:2 1.5714285714285714 +(signed byte) anim::sx#6 sx zp ZP_BYTE:2 1.6923076923076923 (signed byte) anim::sy (signed byte) anim::sy#1 sy zp ZP_BYTE:3 5.5 -(signed byte) anim::sy#6 sy zp ZP_BYTE:3 1.32 +(signed byte) anim::sy#6 sy zp ZP_BYTE:3 1.4347826086956523 (signed byte) anim::sz (signed byte) anim::sz#1 sz zp ZP_BYTE:4 3.142857142857143 -(signed byte) anim::sz#6 sz zp ZP_BYTE:4 1.375 +(signed byte) anim::sz#6 sz zp ZP_BYTE:4 1.5 (void()) calculate_matrix((signed byte) calculate_matrix::sx , (signed byte) calculate_matrix::sy , (signed byte) calculate_matrix::sz) (signed byte~) calculate_matrix::$10 reg byte a 4.0 (signed byte~) calculate_matrix::$11 reg byte a 4.0 @@ -3964,6 +4239,10 @@ FINAL SYMBOL TABLE (const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } (byte[512]) mulf_sqr2 (const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(word*) psp1 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(word*) psp2 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 247 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (label) rotate_matrix::@return (signed byte) rotate_matrix::x @@ -3986,10 +4265,14 @@ FINAL SYMBOL TABLE (const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) 1016 (void()) store_matrix() (label) store_matrix::@return +(signed byte*) xp +(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) 243 (signed byte*) xr (const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 (signed byte[8]) xs (const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +(signed byte*) yp +(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) 244 (signed byte*) yr (const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 (signed byte[8]) ys @@ -4013,11 +4296,9 @@ zp ZP_BYTE:10 [ rotate_matrix::x#0 calculate_matrix::t2#0 ] reg byte y [ rotate_matrix::y#0 ] reg byte x [ rotate_matrix::z#0 ] reg byte x [ anim::i2#0 ] -reg byte a [ anim::$5 ] -reg byte a [ anim::$7 ] +reg byte a [ anim::$6 ] reg byte a [ anim::$8 ] reg byte a [ anim::$10 ] -reg byte a [ anim::$12 ] zp ZP_BYTE:11 [ calculate_matrix::t3#0 ] zp ZP_BYTE:12 [ calculate_matrix::t4#0 ] zp ZP_BYTE:13 [ calculate_matrix::t5#0 ] @@ -4058,7 +4339,7 @@ reg byte a [ mulf_init::$10 ] FINAL ASSEMBLER -Score: 14397 +Score: 13945 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -4076,7 +4357,12 @@ Score: 14397 .label xr = $f0 .label yr = $f1 .label zr = $f2 + .label xp = $f3 + .label yp = $f4 + .label psp1 = $f5 + .label psp2 = $f7 .label SPRITE = $3000 + .label PERSP_Z = $2400 .label COSH = $2000 .label COSQ = $2200 .label SINH = COSH+$40 @@ -4084,159 +4370,163 @@ Score: 14397 //SEG2 @begin //SEG3 @10 //SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG7 [4] call main [ ] ( ) +//SEG5 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 6.0 // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG6 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG8 [5] call main [ ] ( ) jsr main -//SEG8 [5] phi from @10 to @end [phi:@10->@end] -//SEG9 @end -//SEG10 main +//SEG9 [6] phi from @10 to @end [phi:@10->@end] +//SEG10 @end +//SEG11 main main: { - //SEG11 asm { sei } + //SEG12 asm { sei } sei - //SEG12 [7] call sprites_init [ ] ( main:4 [ ] ) + //SEG13 [8] call sprites_init [ ] ( main:5 [ ] ) jsr sprites_init - //SEG13 [8] phi from main to main::@1 [phi:main->main::@1] - //SEG14 main::@1 - //SEG15 [9] call mulf_init [ ] ( main:4 [ ] ) - //SEG16 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] + //SEG14 [9] phi from main to main::@1 [phi:main->main::@1] + //SEG15 main::@1 + //SEG16 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG17 [97] phi from main::@1 to mulf_init [phi:main::@1->mulf_init] jsr mulf_init - //SEG17 [10] phi from main::@1 to main::@2 [phi:main::@1->main::@2] //SEG18 main::@2 - //SEG19 [11] call anim [ ] ( main:4 [ ] ) - //SEG20 [13] phi from main::@2 to anim [phi:main::@2->anim] + //SEG19 [11] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG20 [12] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:5 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG21 [13] call anim [ ] ( main:5 [ ] ) + //SEG22 [15] phi from main::@2 to anim [phi:main::@2->anim] jsr anim - //SEG21 main::@return - //SEG22 [12] return [ ] ( main:4 [ ] ) + //SEG23 main::@return + //SEG24 [14] return [ ] ( main:5 [ ] ) rts } -//SEG23 anim +//SEG25 anim anim: { .label i = 5 .label sz = 4 .label sy = 3 .label sx = 2 - //SEG24 [14] phi from anim to anim::@1 [phi:anim->anim::@1] - //SEG25 [14] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 + //SEG26 [16] phi from anim to anim::@1 [phi:anim->anim::@1] + //SEG27 [16] phi (signed byte) anim::sz#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#0] -- vbsz1=vbuc1 lda #0 sta sz - //SEG26 [14] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 + //SEG28 [16] phi (signed byte) anim::sy#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#1] -- vbsz1=vbuc1 sta sy - //SEG27 [14] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 + //SEG29 [16] phi (signed byte) anim::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#2] -- vbsz1=vbuc1 sta sx - //SEG28 anim::@1 - //SEG29 anim::@4 + //SEG30 anim::@1 + //SEG31 anim::@4 b4: - //SEG30 [15] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG32 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG31 anim::@6 - //SEG32 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG33 anim::@6 + //SEG34 [18] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG33 [17] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsyy=vbsz1 + //SEG35 [19] (signed byte) calculate_matrix::sx#0 ← (signed byte) anim::sx#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 ] ) -- vbsyy=vbsz1 ldy sx - //SEG34 [18] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) + //SEG36 [20] (signed byte) calculate_matrix::sy#0 ← (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 ] ) // (signed byte) calculate_matrix::sy#0 = (signed byte) anim::sy#6 // register copy zp ZP_BYTE:3 - //SEG35 [19] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsxx=vbsz1 + //SEG37 [21] (signed byte) calculate_matrix::sz#0 ← (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 ] ) -- vbsxx=vbsz1 ldx sz - //SEG36 [20] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG38 [22] call calculate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr calculate_matrix - //SEG37 [21] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] - //SEG38 anim::@17 - //SEG39 [22] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG39 [23] phi from anim::@6 to anim::@17 [phi:anim::@6->anim::@17] + //SEG40 anim::@17 + //SEG41 [24] call store_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) jsr store_matrix - //SEG40 [23] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] - //SEG41 [23] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 + //SEG42 [25] phi from anim::@17 to anim::@7 [phi:anim::@17->anim::@7] + //SEG43 [25] phi (byte) anim::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim::@17->anim::@7#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG42 [23] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] - //SEG43 [23] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy - //SEG44 anim::@7 + //SEG44 [25] phi from anim::@19 to anim::@7 [phi:anim::@19->anim::@7] + //SEG45 [25] phi (byte) anim::i#2 = (byte) anim::i#1 [phi:anim::@19->anim::@7#0] -- register_copy + //SEG46 anim::@7 b7: - //SEG45 [24] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG47 [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG46 [25] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG48 [27] (signed byte) rotate_matrix::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda xs,y sta rotate_matrix.x - //SEG47 [26] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 + //SEG49 [28] (signed byte) rotate_matrix::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 ldx i ldy ys,x - //SEG48 [27] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 + //SEG50 [29] (signed byte) rotate_matrix::z#0 ← *((const signed byte[8]) zs#0 + (byte) anim::i#2) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::x#0 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 lda zs,x tax - //SEG49 [28] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG51 [30] call rotate_matrix [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) jsr rotate_matrix - //SEG50 anim::@19 - //SEG51 [29] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + //SEG52 anim::@19 + //SEG53 [31] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- vbuxx=vbuz1_rol_1 lda i asl tax - //SEG52 [30] (signed byte~) anim::$5 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$5 ] ) -- vbsaa=_deref_pbsc1_ror_1 - lda xr - cmp #$80 - ror - //SEG53 [31] (byte/word/signed word/dword/signed dword~) anim::$7 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$5 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$7 ] ) -- vbuaa=vbuc1_plus_vbuaa + //SEG54 [32] (byte/word/signed word/dword/signed dword~) anim::$6 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$6 ] ) -- vbuaa=vbuc1_plus__deref_pbuc2 + lda #$80 clc - adc #$80 - //SEG54 [32] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + adc xp + //SEG55 [33] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$6 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_XPOS,x - //SEG55 [33] (signed byte~) anim::$8 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbsaa=_deref_pbsc1_ror_1 - lda yr - cmp #$80 - ror - //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$10 ] ) -- vbuaa=vbuc1_plus_vbuaa + //SEG56 [34] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 anim::i2#0 anim::$8 ] ) -- vbuaa=vbuc1_plus__deref_pbuc2 + lda #$80 clc - adc #$80 - //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + adc yp + //SEG57 [35] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_YPOS,x - //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG58 [36] (byte) anim::i#1 ← ++ (byte) anim::i#2 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG59 [37] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@7 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #8 bne b7 //SEG60 anim::@14 - //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG61 [38] (signed byte) anim::sz#1 ← ++ (signed byte) anim::sz#6 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#6 anim::sz#1 ] ) -- vbsz1=_inc_vbsz1 inc sz - //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 + //SEG62 [39] (signed byte) anim::sy#1 ← -- (signed byte) anim::sy#6 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbsz1=_dec_vbsz1 dec sy - //SEG63 [40] (byte~) anim::$12 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$12 ] ) -- vbuaa=vbsz1_band_vbuc1 + //SEG63 [40] (byte~) anim::$10 ← (signed byte) anim::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 anim::$10 ] ) -- vbuaa=vbsz1_band_vbuc1 lda sy and #1 - //SEG64 [41] if((byte~) anim::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuaa_neq_0_then_la1 + //SEG64 [41] if((byte~) anim::$10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#6 anim::sy#1 anim::sz#1 ] ) -- vbuaa_neq_0_then_la1 cmp #0 bne b8 //SEG65 anim::@15 - //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:4::anim:11 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 + //SEG66 [42] (signed byte) anim::sx#1 ← ++ (signed byte) anim::sx#6 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ( main:5::anim:13 [ anim::sy#1 anim::sz#1 anim::sx#1 ] ) -- vbsz1=_inc_vbsz1 inc sx //SEG67 [43] phi from anim::@14 anim::@15 to anim::@8 [phi:anim::@14/anim::@15->anim::@8] //SEG68 [43] phi (signed byte) anim::sx#11 = (signed byte) anim::sx#6 [phi:anim::@14/anim::@15->anim::@8#0] -- register_copy //SEG69 anim::@8 b8: - //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:4::anim:11 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 + //SEG70 [44] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ( main:5::anim:13 [ anim::sx#11 anim::sy#1 anim::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL - //SEG71 [14] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] - //SEG72 [14] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy - //SEG73 [14] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy - //SEG74 [14] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy + //SEG71 [16] phi from anim::@8 to anim::@1 [phi:anim::@8->anim::@1] + //SEG72 [16] phi (signed byte) anim::sz#6 = (signed byte) anim::sz#1 [phi:anim::@8->anim::@1#0] -- register_copy + //SEG73 [16] phi (signed byte) anim::sy#6 = (signed byte) anim::sy#1 [phi:anim::@8->anim::@1#1] -- register_copy + //SEG74 [16] phi (signed byte) anim::sx#6 = (signed byte) anim::sx#11 [phi:anim::@8->anim::@1#2] -- register_copy jmp b4 } //SEG75 rotate_matrix rotate_matrix: { .label x = $a - //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 + //SEG76 [45] *((const signed byte*) xr#0) ← (signed byte) rotate_matrix::x#0 [ rotate_matrix::y#0 rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::y#0 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsz1 lda x sta xr - //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsyy + //SEG77 [46] *((const signed byte*) yr#0) ← (signed byte) rotate_matrix::y#0 [ rotate_matrix::z#0 ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 rotate_matrix::z#0 ] ) -- _deref_pbsc1=vbsyy tya sta yr - //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsxx + //SEG78 [47] *((const signed byte*) zr#0) ← (signed byte) rotate_matrix::z#0 [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) -- _deref_pbsc1=vbsxx txa sta zr - //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG79 asm { clc ldxzr C1: ldamulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr cmp#$80 ror staXX+1 clc F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr cmp#$80 ror clc tay lda(psp1),y sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sbc(psp2),y staxp } clc tax C1: @@ -4256,28 +4546,6 @@ rotate_matrix: { sta I3+1 ldx xr ldy yr - C3: - lda #0 - A1: - adc mulf_sqr1,x - A2: - sbc mulf_sqr2,x - B1: - adc mulf_sqr1,y - B2: - sbc mulf_sqr2,y - sta xr - F3: - lda #0 - D1: - adc mulf_sqr1,x - D2: - sbc mulf_sqr2,x - E1: - adc mulf_sqr1,y - E2: - sbc mulf_sqr2,y - sta yr I3: lda #0 G1: @@ -4289,8 +4557,52 @@ rotate_matrix: { H2: sbc mulf_sqr2,y sta zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + C3: + lda #0 + A1: + adc mulf_sqr1,x + A2: + sbc mulf_sqr2,x + B1: + adc mulf_sqr1,y + B2: + sbc mulf_sqr2,y + sta xr + cmp #$80 + ror + sta XX+1 + clc + F3: + lda #0 + D1: + adc mulf_sqr1,x + D2: + sbc mulf_sqr2,x + E1: + adc mulf_sqr1,y + E2: + sbc mulf_sqr2,y + sta yr + cmp #$80 + ror + clc + tay + lda (psp1),y + sbc (psp2),y + sta yp + XX: + ldy #0 + lda (psp1),y + sbc (psp2),y + sta xp //SEG80 rotate_matrix::@return - //SEG81 [49] return [ ] ( main:4::anim:11::rotate_matrix:28 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) + //SEG81 [49] return [ ] ( main:5::anim:13::rotate_matrix:30 [ anim::sx#6 anim::sy#6 anim::sz#6 anim::i#2 ] ) rts } //SEG82 store_matrix @@ -4333,7 +4645,7 @@ store_matrix: { eor #$ff sta rotate_matrix.I2+1 //SEG84 store_matrix::@return - //SEG85 [51] return [ ] ( main:4::anim:11::store_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG85 [51] return [ ] ( main:5::anim:13::store_matrix:24 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG86 calculate_matrix @@ -4349,195 +4661,195 @@ calculate_matrix: { .label t8 = $10 .label t9 = $11 .label t10 = $12 - //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx + //SEG87 [52] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx txa eor #$ff sec adc sy sta t1 - //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx + //SEG88 [53] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx txa clc adc sy sta t2 - //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx + //SEG89 [54] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::sz#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx txa sty $ff clc adc $ff sta t3 - //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx + //SEG90 [55] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::sz#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx tya stx $ff sec sbc $ff sta t4 - //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + //SEG91 [56] (signed byte) calculate_matrix::t5#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t2#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 tya clc adc t2 sta t5 - //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 + //SEG92 [57] (signed byte) calculate_matrix::t6#0 ← (signed byte) calculate_matrix::sx#0 - (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 tya sec sbc t1 sta t6 - //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + //SEG93 [58] (signed byte) calculate_matrix::t7#0 ← (signed byte) calculate_matrix::sx#0 + (signed byte) calculate_matrix::t1#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 tya clc adc t1 sta t7 - //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + //SEG94 [59] (signed byte) calculate_matrix::t8#0 ← (signed byte) calculate_matrix::t2#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy tya eor #$ff sec adc t2 sta t8 - //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + //SEG95 [60] (signed byte) calculate_matrix::t9#0 ← (signed byte) calculate_matrix::sy#0 - (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sx#0 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy tya eor #$ff sec adc sy sta t9 - //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy + //SEG96 [61] (signed byte) calculate_matrix::t10#0 ← (signed byte) calculate_matrix::sy#0 + (signed byte) calculate_matrix::sx#0 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy tya clc adc sy sta t10 - //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG97 [62] (signed byte~) calculate_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t1 ldy t2 clc lda COSH,x adc COSH,y - //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG98 [63] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) calculate_matrix::$10 [ calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t1#0 calculate_matrix::t2#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix - //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG99 [64] (signed byte~) calculate_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t2#0) [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 sec lda SINH,x sbc SINH,y - //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG100 [65] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) calculate_matrix::$11 [ calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::sy#0 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+1 - //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 + //SEG101 [66] (signed byte~) calculate_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::sy#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 ldy sy clc lda SINH,y adc SINH,y - //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG102 [67] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) calculate_matrix::$12 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+2 - //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG103 [68] (signed byte~) calculate_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t3 ldy t4 sec lda SINH,x sbc SINH,y - //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG104 [69] (signed byte~) calculate_matrix::$14 ← (signed byte~) calculate_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc COSQ,y - //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG105 [70] (signed byte~) calculate_matrix::$15 ← (signed byte~) calculate_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc COSQ,y - //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG106 [71] (signed byte~) calculate_matrix::$16 ← (signed byte~) calculate_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t8 clc adc COSQ,y - //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG107 [72] (signed byte~) calculate_matrix::$17 ← (signed byte~) calculate_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc COSQ,y - //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG108 [73] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) calculate_matrix::$17 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+3 - //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG109 [74] (signed byte~) calculate_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldy t4 clc lda COSH,x adc COSH,y - //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG110 [75] (signed byte~) calculate_matrix::$19 ← (signed byte~) calculate_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t5 clc adc SINQ,y - //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG111 [76] (signed byte~) calculate_matrix::$20 ← (signed byte~) calculate_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t6 sec sbc SINQ,y - //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG112 [77] (signed byte~) calculate_matrix::$21 ← (signed byte~) calculate_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc SINQ,y - //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG113 [78] (signed byte~) calculate_matrix::$22 ← (signed byte~) calculate_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc SINQ,y - //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG114 [79] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) calculate_matrix::$22 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+4 - //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG115 [80] (signed byte~) calculate_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t9 ldy t10 sec lda SINH,x sbc SINH,y - //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG116 [81] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) calculate_matrix::$23 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+5 - //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + //SEG117 [82] (signed byte~) calculate_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t3#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 ldx t4 ldy t3 sec lda COSH,x sbc COSH,y - //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG118 [83] (signed byte~) calculate_matrix::$25 ← (signed byte~) calculate_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc SINQ,y - //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG119 [84] (signed byte~) calculate_matrix::$26 ← (signed byte~) calculate_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc SINQ,y - //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG120 [85] (signed byte~) calculate_matrix::$27 ← (signed byte~) calculate_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc SINQ,y - //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG121 [86] (signed byte~) calculate_matrix::$28 ← (signed byte~) calculate_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t7 sec sbc SINQ,y - //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG122 [87] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) calculate_matrix::$28 [ calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t3#0 calculate_matrix::t4#0 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+6 - //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG123 [88] (signed byte~) calculate_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) calculate_matrix::t4#0) [ calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t6#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t3 ldy t4 clc lda SINH,x adc SINH,y - //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG124 [89] (signed byte~) calculate_matrix::$30 ← (signed byte~) calculate_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t6#0) [ calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t5#0 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t6 clc adc COSQ,y - //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG125 [90] (signed byte~) calculate_matrix::$31 ← (signed byte~) calculate_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t5#0) [ calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t7#0 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t5 sec sbc COSQ,y - //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + //SEG126 [91] (signed byte~) calculate_matrix::$32 ← (signed byte~) calculate_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t7#0) [ calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t8#0 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 ldy t7 clc adc COSQ,y - //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + //SEG127 [92] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculate_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) calculate_matrix::t8#0) [ calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 calculate_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 ldy t8 sec sbc COSQ,y - //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa + //SEG128 [93] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) calculate_matrix::$33 [ calculate_matrix::t9#0 calculate_matrix::t10#0 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::t9#0 calculate_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+7 - //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + //SEG129 [94] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 calculate_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 ldx t9 ldy t10 clc lda COSH,x adc COSH,y - //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsaa + //SEG130 [95] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) calculate_matrix::$34 [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+8 //SEG131 calculate_matrix::@return - //SEG132 [96] return [ ] ( main:4::anim:11::calculate_matrix:20 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) + //SEG132 [96] return [ ] ( main:5::anim:13::calculate_matrix:22 [ anim::sx#6 anim::sy#6 anim::sz#6 ] ) rts } //SEG133 mulf_init @@ -4562,54 +4874,54 @@ mulf_init: { //SEG141 [98] phi (signed word) mulf_init::sqr#2 = (signed word) mulf_init::sqr#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy //SEG142 mulf_init::@1 b1: - //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + //SEG143 [99] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG144 [100] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr1,x - //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG145 [101] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr1+$100,x - //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx + //SEG146 [102] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx txa eor #$ff clc adc #1 - //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG147 [103] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1,y - //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx + //SEG148 [104] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx txa eor #$ff clc adc #1 - //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG149 [105] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1+$100,y - //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG150 [106] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr2+1,x - //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG151 [107] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr2+$100+1,x - //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx + //SEG152 [108] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 - //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG153 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2,y - //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx + //SEG154 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 - //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:9 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG155 [111] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2+$100,y - //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG156 [112] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr clc adc add @@ -4617,7 +4929,7 @@ mulf_init: { lda sqr+1 adc add+1 sta sqr+1 - //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG157 [113] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -4625,20 +4937,20 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + //SEG158 [114] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:9 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG159 [115] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1 //SEG160 mulf_init::@return - //SEG161 [116] return [ ] ( main:4::mulf_init:9 [ ] ) + //SEG161 [116] return [ ] ( main:5::mulf_init:10 [ ] ) rts } //SEG162 sprites_init sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 - //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::sprites_init:7 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG163 [117] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG164 [118] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -4648,19 +4960,19 @@ sprites_init: { //SEG167 [118] phi (byte) sprites_init::i#2 = (byte) sprites_init::i#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy //SEG168 sprites_init::@1 b1: - //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG169 [119] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x - //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:4::sprites_init:7 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG170 [120] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 lda #GREEN sta SPRITES_COLS,x - //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx + //SEG171 [121] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:4::sprites_init:7 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG172 [122] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b1 //SEG173 sprites_init::@return - //SEG174 [123] return [ ] ( main:4::sprites_init:7 [ ] ) + //SEG174 [123] return [ ] ( main:5::sprites_init:8 [ ] ) rts } rotation_matrix: .fill 9, 0 @@ -4677,6 +4989,20 @@ sprites_init: { .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 6.0 + // These values of d/z0 result in table values from $20 to $40 (effectively max is $3f) + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + .pc = COSH "Inline" { .var min = -$1fff diff --git a/src/test/ref/examples/3d/3d.sym b/src/test/ref/examples/3d/3d.sym index 9db93544c..e5aec7863 100644 --- a/src/test/ref/examples/3d/3d.sym +++ b/src/test/ref/examples/3d/3d.sym @@ -11,6 +11,8 @@ (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 +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 (signed byte*) SINH @@ -28,11 +30,9 @@ (byte*) SPRITES_YPOS (const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) anim() -(byte/word/signed word/dword/signed dword~) anim::$10 reg byte a 202.0 -(byte~) anim::$12 reg byte a 22.0 -(signed byte~) anim::$5 reg byte a 101.0 -(byte/word/signed word/dword/signed dword~) anim::$7 reg byte a 202.0 -(signed byte~) anim::$8 reg byte a 101.0 +(byte~) anim::$10 reg byte a 22.0 +(byte/word/signed word/dword/signed dword~) anim::$6 reg byte a 202.0 +(byte/word/signed word/dword/signed dword~) anim::$8 reg byte a 202.0 (label) anim::@1 (label) anim::@14 (label) anim::@15 @@ -44,19 +44,19 @@ (label) anim::@8 (byte) anim::i (byte) anim::i#1 i zp ZP_BYTE:5 151.5 -(byte) anim::i#2 i zp ZP_BYTE:5 46.61538461538461 +(byte) anim::i#2 i zp ZP_BYTE:5 55.090909090909086 (byte) anim::i2 -(byte) anim::i2#0 reg byte x 50.5 +(byte) anim::i2#0 reg byte x 75.75 (signed byte) anim::sx (signed byte) anim::sx#1 sx zp ZP_BYTE:2 22.0 (signed byte) anim::sx#11 sx zp ZP_BYTE:2 16.5 -(signed byte) anim::sx#6 sx zp ZP_BYTE:2 1.5714285714285714 +(signed byte) anim::sx#6 sx zp ZP_BYTE:2 1.6923076923076923 (signed byte) anim::sy (signed byte) anim::sy#1 sy zp ZP_BYTE:3 5.5 -(signed byte) anim::sy#6 sy zp ZP_BYTE:3 1.32 +(signed byte) anim::sy#6 sy zp ZP_BYTE:3 1.4347826086956523 (signed byte) anim::sz (signed byte) anim::sz#1 sz zp ZP_BYTE:4 3.142857142857143 -(signed byte) anim::sz#6 sz zp ZP_BYTE:4 1.375 +(signed byte) anim::sz#6 sz zp ZP_BYTE:4 1.5 (void()) calculate_matrix((signed byte) calculate_matrix::sx , (signed byte) calculate_matrix::sy , (signed byte) calculate_matrix::sz) (signed byte~) calculate_matrix::$10 reg byte a 4.0 (signed byte~) calculate_matrix::$11 reg byte a 4.0 @@ -136,6 +136,10 @@ (const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } (byte[512]) mulf_sqr2 (const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(word*) psp1 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(word*) psp2 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 247 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (label) rotate_matrix::@return (signed byte) rotate_matrix::x @@ -158,10 +162,14 @@ (const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) 1016 (void()) store_matrix() (label) store_matrix::@return +(signed byte*) xp +(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) 243 (signed byte*) xr (const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 (signed byte[8]) xs (const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +(signed byte*) yp +(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) 244 (signed byte*) yr (const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 (signed byte[8]) ys @@ -185,11 +193,9 @@ zp ZP_BYTE:10 [ rotate_matrix::x#0 calculate_matrix::t2#0 ] reg byte y [ rotate_matrix::y#0 ] reg byte x [ rotate_matrix::z#0 ] reg byte x [ anim::i2#0 ] -reg byte a [ anim::$5 ] -reg byte a [ anim::$7 ] +reg byte a [ anim::$6 ] reg byte a [ anim::$8 ] reg byte a [ anim::$10 ] -reg byte a [ anim::$12 ] zp ZP_BYTE:11 [ calculate_matrix::t3#0 ] zp ZP_BYTE:12 [ calculate_matrix::t4#0 ] zp ZP_BYTE:13 [ calculate_matrix::t5#0 ] diff --git a/src/test/ref/examples/3d/perspective.asm b/src/test/ref/examples/3d/perspective.asm new file mode 100644 index 000000000..eca0c8640 --- /dev/null +++ b/src/test/ref/examples/3d/perspective.asm @@ -0,0 +1,301 @@ +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" + .label xr = $f0 + .label yr = $f1 + .label zr = $f2 + .label psp1 = $f3 + .label psp2 = $f5 + .label PERSP_Z = $2400 + .label print_char_cursor = 4 + .label print_line_cursor = 2 + jsr main +main: { + sei + jsr mulf_init + lda #mulf_sqr1 + sta psp1+1 + lda #mulf_sqr2 + sta psp2+1 + jsr print_cls + jsr do_perspective + rts +} +do_perspective: { + .label y = -$47 + .label x = $39 + .label z = $36 + lda #<$400 + sta print_char_cursor + lda #>$400 + sta print_char_cursor+1 + lda #str + sta print_str.str+1 + jsr print_str + ldx #x + jsr print_sbyte + lda #str1 + sta print_str.str+1 + jsr print_str + ldx #y + jsr print_sbyte + lda #str2 + sta print_str.str+1 + jsr print_str + ldx #z + jsr print_sbyte + lda #str3 + sta print_str.str+1 + jsr print_str + jsr perspective + ldx xr + jsr print_byte + lda #str4 + sta print_str.str+1 + jsr print_str + ldx yr + jsr print_byte + lda #str5 + sta print_str.str+1 + jsr print_str + jsr print_ln + rts + str: .text "(@" + str1: .text ",@" + str2: .text ",@" + str3: .text ") -> (@" + str4: .text ",@" + str5: .text ")@" +} +print_ln: { + lda #<$400 + sta print_line_cursor + lda #>$400 + sta print_line_cursor+1 + b1: + lda print_line_cursor + clc + adc #$28 + sta print_line_cursor + bcc !+ + inc print_line_cursor+1 + !: + lda print_line_cursor+1 + cmp print_char_cursor+1 + bcc b1 + bne !+ + lda print_line_cursor + cmp print_char_cursor + bcc b1 + !: + rts +} +print_str: { + .label str = 2 + b1: + ldy #0 + lda (str),y + cmp #'@' + bne b2 + rts + b2: + ldy #0 + lda (str),y + sta (print_char_cursor),y + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + inc str + bne !+ + inc str+1 + !: + jmp b1 +} +print_byte: { + txa + lsr + lsr + lsr + lsr + tay + lda print_hextab,y + jsr print_char + txa + and #$f + tay + lda print_hextab,y + jsr print_char + rts +} +print_char: { + ldy #0 + sta (print_char_cursor),y + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + rts +} +perspective: { + lda #do_perspective.x + sta xr + lda #do_perspective.y + sta yr + lda #do_perspective.z + sta zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + clc + ldy yr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta yr + clc + ldy xr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta xr + rts +} +print_sbyte: { + cpx #0 + bpl b1 + lda #'-' + jsr print_char + txa + eor #$ff + clc + adc #1 + tax + b1: + jsr print_byte + rts +} +print_cls: { + .label sc = 2 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + b1: + lda #' ' + ldy #0 + sta (sc),y + inc sc + bne !+ + inc sc+1 + !: + lda sc+1 + cmp #>$400+$3e8 + bne b1 + lda sc + cmp #<$400+$3e8 + bne b1 + rts +} +mulf_init: { + .label val = 6 + .label sqr = 2 + .label add = 4 + lda #<1 + sta add + lda #>1 + sta add+1 + tax + sta sqr + sta sqr+1 + b1: + lda sqr+1 + sta val + sta mulf_sqr1,x + sta mulf_sqr1+$100,x + txa + eor #$ff + clc + adc #1 + tay + lda val + sta mulf_sqr1,y + txa + eor #$ff + clc + adc #1 + tay + lda val + sta mulf_sqr1+$100,y + sta mulf_sqr2+1,x + sta mulf_sqr2+$100+1,x + txa + eor #$ff + clc + adc #1+1 + tay + lda val + sta mulf_sqr2,y + txa + eor #$ff + clc + adc #1+1 + tay + lda val + sta mulf_sqr2+$100,y + lda sqr + clc + adc add + sta sqr + lda sqr+1 + adc add+1 + sta sqr+1 + lda add + clc + adc #2 + sta add + bcc !+ + inc add+1 + !: + inx + cpx #$81 + bne b1 + rts +} + print_hextab: .text "0123456789abcdef" + .align $100 + mulf_sqr1: .fill $200, 0 + .align $100 + mulf_sqr2: .fill $200, 0 +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + diff --git a/src/test/ref/examples/3d/perspective.cfg b/src/test/ref/examples/3d/perspective.cfg new file mode 100644 index 000000000..1da2353d6 --- /dev/null +++ b/src/test/ref/examples/3d/perspective.cfg @@ -0,0 +1,212 @@ +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@21 +@21: scope:[] from @begin + kickasm(location (const signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + }} + [2] call main [ ] ( ) + to:@end +@end: scope:[] from @21 + [3] phi() [ ] ( ) +main: scope:[main] from @21 + asm { sei } + [5] call mulf_init [ ] ( main:2 [ ] ) + to:main::@1 +main::@1: scope:[main] from main + [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) + [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) + [8] call print_cls [ ] ( main:2 [ ] ) + to:main::@2 +main::@2: scope:[main] from main::@1 + [9] phi() [ ] ( main:2 [ ] ) + [10] call do_perspective [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main::@2 + [11] return [ ] ( main:2 [ ] ) + to:@return +do_perspective: scope:[do_perspective] from main::@2 + [12] phi() [ ] ( main:2::do_perspective:10 [ ] ) + [13] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@1 +do_perspective::@1: scope:[do_perspective] from do_perspective + [14] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [15] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@2 +do_perspective::@2: scope:[do_perspective] from do_perspective::@1 + [16] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [17] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@3 +do_perspective::@3: scope:[do_perspective] from do_perspective::@2 + [18] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [19] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@4 +do_perspective::@4: scope:[do_perspective] from do_perspective::@3 + [20] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [21] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@5 +do_perspective::@5: scope:[do_perspective] from do_perspective::@4 + [22] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [23] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@6 +do_perspective::@6: scope:[do_perspective] from do_perspective::@5 + [24] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [25] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@7 +do_perspective::@7: scope:[do_perspective] from do_perspective::@6 + [26] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [27] call perspective [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@8 +do_perspective::@8: scope:[do_perspective] from do_perspective::@7 + [28] (byte~) print_byte::b#6 ← (byte)*((const signed byte*) xr#0) [ print_byte::b#6 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#6 print_char_cursor#2 ] ) + [29] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@9 +do_perspective::@9: scope:[do_perspective] from do_perspective::@8 + [30] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [31] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@10 +do_perspective::@10: scope:[do_perspective] from do_perspective::@9 + [32] (byte~) print_byte::b#5 ← (byte)*((const signed byte*) yr#0) [ print_byte::b#5 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#5 print_char_cursor#2 ] ) + [33] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@11 +do_perspective::@11: scope:[do_perspective] from do_perspective::@10 + [34] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [35] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@12 +do_perspective::@12: scope:[do_perspective] from do_perspective::@11 + [36] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [37] call print_ln [ ] ( main:2::do_perspective:10 [ ] ) + to:do_perspective::@return +do_perspective::@return: scope:[do_perspective] from do_perspective::@12 + [38] return [ ] ( main:2::do_perspective:10 [ ] ) + to:@return +print_ln: scope:[print_ln] from do_perspective::@12 + [39] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_char_cursor#2 ] ) + to:print_ln::@1 +print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 + [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) [ print_line_cursor#11 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#11 print_char_cursor#2 ] ) + [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) + [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) + to:print_ln::@return +print_ln::@return: scope:[print_ln] from print_ln::@1 + [43] return [ ] ( main:2::do_perspective:10::print_ln:37 [ ] ) + to:@return +print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 + [44] (byte*) print_char_cursor#71 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#11 do_perspective::@2/(byte*) print_char_cursor#11 do_perspective::@4/(byte*) print_char_cursor#11 do_perspective::@6/(byte*) print_char_cursor#11 do_perspective::@9/(byte*) print_char_cursor#11 ) [ print_str::str#9 print_char_cursor#71 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:17 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:21 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:25 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:31 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:35 [ print_str::str#9 print_char_cursor#71 ] ) + [44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str2 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str4 ) [ print_str::str#9 print_char_cursor#71 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:17 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:21 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:25 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:31 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:35 [ print_str::str#9 print_char_cursor#71 ] ) + to:print_str::@1 +print_str::@1: scope:[print_str] from print_str print_str::@2 + [45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#71 print_str::@2/(byte*) print_char_cursor#1 ) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 ) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + to:print_str::@return +print_str::@return: scope:[print_str] from print_str::@1 + [47] return [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 ] ) + to:@return +print_str::@2: scope:[print_str] from print_str::@1 + [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [49] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#7 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#7 print_char_cursor#1 ] ) + [50] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#0 print_char_cursor#1 ] ) + to:print_str::@1 +print_byte: scope:[print_byte] from do_perspective::@10 do_perspective::@8 print_sbyte::@1 + [51] (byte*) print_char_cursor#66 ← phi( do_perspective::@10/(byte*) print_char_cursor#2 do_perspective::@8/(byte*) print_char_cursor#2 print_sbyte::@1/(byte*) print_char_cursor#64 ) [ print_byte::b#3 print_char_cursor#66 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] ) + [51] (byte) print_byte::b#3 ← phi( do_perspective::@10/(byte~) print_byte::b#5 do_perspective::@8/(byte~) print_byte::b#6 print_sbyte::@1/(byte~) print_byte::b#7 ) [ print_byte::b#3 print_char_cursor#66 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] ) + [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) + [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ) + [54] call print_char [ print_char_cursor#11 print_byte::b#3 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] ) + to:print_byte::@1 +print_byte::@1: scope:[print_byte] from print_byte + [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) + [56] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] ) + [57] call print_char [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + to:print_byte::@return +print_byte::@return: scope:[print_byte] from print_byte::@1 + [58] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + to:@return +print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@2 + [59] (byte*) print_char_cursor#42 ← phi( print_byte/(byte*) print_char_cursor#66 print_byte::@1/(byte*) print_char_cursor#11 print_sbyte::@2/(byte*) print_char_cursor#2 ) [ print_char::ch#3 print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] ) + [59] (byte) print_char::ch#3 ← phi( print_byte/(byte) print_char::ch#1 print_byte::@1/(byte) print_char::ch#2 print_sbyte::@2/(byte) '-' ) [ print_char::ch#3 print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] ) + [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) + [61] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + to:print_char::@return +print_char::@return: scope:[print_char] from print_char + [62] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + to:@return +perspective: scope:[perspective] from do_perspective::@7 + [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + to:perspective::@return +perspective::@return: scope:[perspective] from perspective + [67] return [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + to:@return +print_sbyte: scope:[print_sbyte] from do_perspective::@1 do_perspective::@3 do_perspective::@5 + [68] (signed byte) print_sbyte::b#4 ← phi( do_perspective::@1/(const signed byte) do_perspective::x#0 do_perspective::@3/(const signed byte) do_perspective::y#0 do_perspective::@5/(const signed byte) do_perspective::z#0 ) [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + [69] if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + to:print_sbyte::@2 +print_sbyte::@2: scope:[print_sbyte] from print_sbyte + [70] phi() [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + [71] call print_char [ print_char_cursor#11 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#4 ] ) + to:print_sbyte::@4 +print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@2 + [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) + to:print_sbyte::@1 +print_sbyte::@1: scope:[print_sbyte] from print_sbyte print_sbyte::@4 + [73] (byte*) print_char_cursor#64 ← phi( print_sbyte/(byte*) print_char_cursor#2 print_sbyte::@4/(byte*) print_char_cursor#11 ) [ print_char_cursor#64 print_sbyte::b#5 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#64 print_sbyte::b#5 ] ) + [73] (signed byte) print_sbyte::b#5 ← phi( print_sbyte/(signed byte) print_sbyte::b#4 print_sbyte::@4/(signed byte) print_sbyte::b#0 ) [ print_char_cursor#64 print_sbyte::b#5 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#64 print_sbyte::b#5 ] ) + [74] (byte~) print_byte::b#7 ← (byte)(signed byte) print_sbyte::b#5 [ print_byte::b#7 print_char_cursor#64 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:19 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:23 [ print_byte::b#7 print_char_cursor#64 ] ) + [75] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + to:print_sbyte::@return +print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 + [76] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + to:@return +print_cls: scope:[print_cls] from main::@1 + [77] phi() [ ] ( main:2::print_cls:8 [ ] ) + to:print_cls::@1 +print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 + [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) + [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) + [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) + [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) + to:print_cls::@return +print_cls::@return: scope:[print_cls] from print_cls::@1 + [82] return [ ] ( main:2::print_cls:8 [ ] ) + to:@return +mulf_init: scope:[mulf_init] from main + [83] phi() [ ] ( main:2::mulf_init:5 [ ] ) + to:mulf_init::@1 +mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 + [84] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [84] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [84] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) + [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) + [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) + [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) + [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) + [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) + [100] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [101] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + to:mulf_init::@return +mulf_init::@return: scope:[mulf_init] from mulf_init::@1 + [102] return [ ] ( main:2::mulf_init:5 [ ] ) + to:@return diff --git a/src/test/ref/examples/3d/perspective.log b/src/test/ref/examples/3d/perspective.log new file mode 100644 index 000000000..72d4937fa --- /dev/null +++ b/src/test/ref/examples/3d/perspective.log @@ -0,0 +1,3701 @@ +Resolved forward reference mulf_sqr1 to (byte[512]) mulf_sqr1 +Resolved forward reference mulf_sqr2 to (byte[512]) mulf_sqr2 +Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx + +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + to:@3 +@3: scope:[] from @begin + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_line_cursor#0 ← (byte*) print_screen#0 + (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 + to:@13 +print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 + (byte*) print_char_cursor#71 ← phi( do_perspective/(byte*) print_char_cursor#68 do_perspective::@11/(byte*) print_char_cursor#27 do_perspective::@2/(byte*) print_char_cursor#19 do_perspective::@4/(byte*) print_char_cursor#21 do_perspective::@6/(byte*) print_char_cursor#23 do_perspective::@9/(byte*) print_char_cursor#25 ) + (byte*) print_str::str#9 ← phi( do_perspective/(byte*) print_str::str#1 do_perspective::@11/(byte*) print_str::str#6 do_perspective::@2/(byte*) print_str::str#2 do_perspective::@4/(byte*) print_str::str#3 do_perspective::@6/(byte*) print_str::str#4 do_perspective::@9/(byte*) print_str::str#5 ) + to:print_str::@1 +print_str::@1: scope:[print_str] from print_str print_str::@2 + (byte*) print_char_cursor#62 ← phi( print_str/(byte*) print_char_cursor#71 print_str::@2/(byte*) print_char_cursor#1 ) + (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 ) + (bool~) print_str::$0 ← *((byte*) print_str::str#7) != (byte) '@' + if((bool~) print_str::$0) goto print_str::@2 + to:print_str::@return +print_str::@2: scope:[print_str] from print_str::@1 + (byte*) print_char_cursor#32 ← phi( print_str::@1/(byte*) print_char_cursor#62 ) + (byte*) print_str::str#8 ← phi( print_str::@1/(byte*) print_str::str#7 ) + *((byte*) print_char_cursor#32) ← *((byte*) print_str::str#8) + (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#32 + (byte*) print_str::str#0 ← ++ (byte*) print_str::str#8 + to:print_str::@1 +print_str::@return: scope:[print_str] from print_str::@1 + (byte*) print_char_cursor#33 ← phi( print_str::@1/(byte*) print_char_cursor#62 ) + (byte*) print_char_cursor#2 ← (byte*) print_char_cursor#33 + return + to:@return +print_ln: scope:[print_ln] from do_perspective::@12 + (byte*) print_char_cursor#63 ← phi( do_perspective::@12/(byte*) print_char_cursor#28 ) + (byte*) print_line_cursor#21 ← phi( do_perspective::@12/(byte*) print_line_cursor#23 ) + to:print_ln::@1 +print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 + (byte*) print_char_cursor#34 ← phi( print_ln/(byte*) print_char_cursor#63 print_ln::@1/(byte*) print_char_cursor#34 ) + (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 ) + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 + (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#34 + if((bool~) print_ln::$1) goto print_ln::@1 + to:print_ln::@2 +print_ln::@2: scope:[print_ln] from print_ln::@1 + (byte*) print_line_cursor#12 ← phi( print_ln::@1/(byte*) print_line_cursor#1 ) + (byte*) print_char_cursor#3 ← (byte*) print_line_cursor#12 + to:print_ln::@return +print_ln::@return: scope:[print_ln] from print_ln::@2 + (byte*) print_char_cursor#35 ← phi( print_ln::@2/(byte*) print_char_cursor#3 ) + (byte*) print_line_cursor#13 ← phi( print_ln::@2/(byte*) print_line_cursor#12 ) + (byte*) print_line_cursor#2 ← (byte*) print_line_cursor#13 + (byte*) print_char_cursor#4 ← (byte*) print_char_cursor#35 + return + to:@return +print_sbyte: scope:[print_sbyte] from do_perspective::@1 do_perspective::@3 do_perspective::@5 + (byte*) print_char_cursor#72 ← phi( do_perspective::@1/(byte*) print_char_cursor#18 do_perspective::@3/(byte*) print_char_cursor#20 do_perspective::@5/(byte*) print_char_cursor#22 ) + (signed byte) print_sbyte::b#4 ← phi( do_perspective::@1/(signed byte) print_sbyte::b#1 do_perspective::@3/(signed byte) print_sbyte::b#2 do_perspective::@5/(signed byte) print_sbyte::b#3 ) + (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#4 < (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) print_sbyte::$1 ← ! (bool~) print_sbyte::$0 + if((bool~) print_sbyte::$1) goto print_sbyte::@1 + to:print_sbyte::@2 +print_sbyte::@1: scope:[print_sbyte] from print_sbyte print_sbyte::@4 + (byte*) print_char_cursor#64 ← phi( print_sbyte/(byte*) print_char_cursor#72 print_sbyte::@4/(byte*) print_char_cursor#6 ) + (signed byte) print_sbyte::b#5 ← phi( print_sbyte/(signed byte) print_sbyte::b#4 print_sbyte::@4/(signed byte) print_sbyte::b#0 ) + (byte~) print_sbyte::$4 ← ((byte)) (signed byte) print_sbyte::b#5 + (byte) print_byte::b#0 ← (byte~) print_sbyte::$4 + call print_byte + to:print_sbyte::@3 +print_sbyte::@3: scope:[print_sbyte] from print_sbyte::@1 + (byte*) print_char_cursor#36 ← phi( print_sbyte::@1/(byte*) print_char_cursor#10 ) + (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#36 + to:print_sbyte::@return +print_sbyte::@2: scope:[print_sbyte] from print_sbyte + (signed byte) print_sbyte::b#7 ← phi( print_sbyte/(signed byte) print_sbyte::b#4 ) + (byte*) print_char_cursor#65 ← phi( print_sbyte/(byte*) print_char_cursor#72 ) + (byte) print_char::ch#0 ← (byte) '-' + call print_char + to:print_sbyte::@4 +print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@2 + (signed byte) print_sbyte::b#6 ← phi( print_sbyte::@2/(signed byte) print_sbyte::b#7 ) + (byte*) print_char_cursor#37 ← phi( print_sbyte::@2/(byte*) print_char_cursor#12 ) + (byte*) print_char_cursor#6 ← (byte*) print_char_cursor#37 + (signed byte~) print_sbyte::$3 ← - (signed byte) print_sbyte::b#6 + (signed byte) print_sbyte::b#0 ← (signed byte~) print_sbyte::$3 + to:print_sbyte::@1 +print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@3 + (byte*) print_char_cursor#38 ← phi( print_sbyte::@3/(byte*) print_char_cursor#5 ) + (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#38 + return + to:@return +@13: scope:[] from @3 + (byte*) print_screen#9 ← phi( @3/(byte*) print_screen#0 ) + (byte*) print_char_cursor#76 ← phi( @3/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#30 ← phi( @3/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@17 +print_byte: scope:[print_byte] from do_perspective::@10 do_perspective::@8 print_sbyte::@1 + (byte*) print_char_cursor#66 ← phi( do_perspective::@10/(byte*) print_char_cursor#26 do_perspective::@8/(byte*) print_char_cursor#69 print_sbyte::@1/(byte*) print_char_cursor#64 ) + (byte) print_byte::b#3 ← phi( do_perspective::@10/(byte) print_byte::b#2 do_perspective::@8/(byte) print_byte::b#1 print_sbyte::@1/(byte) print_byte::b#0 ) + (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) + call print_char + to:print_byte::@1 +print_byte::@1: scope:[print_byte] from print_byte + (byte) print_byte::b#4 ← phi( print_byte/(byte) print_byte::b#3 ) + (byte*) print_char_cursor#39 ← phi( print_byte/(byte*) print_char_cursor#12 ) + (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#39 + (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) + call print_char + to:print_byte::@2 +print_byte::@2: scope:[print_byte] from print_byte::@1 + (byte*) print_char_cursor#40 ← phi( print_byte::@1/(byte*) print_char_cursor#12 ) + (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#40 + to:print_byte::@return +print_byte::@return: scope:[print_byte] from print_byte::@2 + (byte*) print_char_cursor#41 ← phi( print_byte::@2/(byte*) print_char_cursor#9 ) + (byte*) print_char_cursor#10 ← (byte*) print_char_cursor#41 + return + to:@return +print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@2 + (byte*) print_char_cursor#42 ← phi( print_byte/(byte*) print_char_cursor#66 print_byte::@1/(byte*) print_char_cursor#8 print_sbyte::@2/(byte*) print_char_cursor#65 ) + (byte) print_char::ch#3 ← phi( print_byte/(byte) print_char::ch#1 print_byte::@1/(byte) print_char::ch#2 print_sbyte::@2/(byte) print_char::ch#0 ) + *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 + (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 + to:print_char::@return +print_char::@return: scope:[print_char] from print_char + (byte*) print_char_cursor#43 ← phi( print_char/(byte*) print_char_cursor#11 ) + (byte*) print_char_cursor#12 ← (byte*) print_char_cursor#43 + return + to:@return +print_cls: scope:[print_cls] from main::@1 + (byte*) print_screen#1 ← phi( main::@1/(byte*) print_screen#4 ) + (byte*) print_cls::sc#0 ← (byte*) print_screen#1 + to:print_cls::@1 +print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 + (byte*) print_screen#2 ← phi( print_cls/(byte*) print_screen#1 print_cls::@1/(byte*) print_screen#2 ) + (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) + *((byte*) print_cls::sc#2) ← (byte) ' ' + (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 + if((bool~) print_cls::$1) goto print_cls::@1 + to:print_cls::@2 +print_cls::@2: scope:[print_cls] from print_cls::@1 + (byte*) print_screen#3 ← phi( print_cls::@1/(byte*) print_screen#2 ) + (byte*) print_line_cursor#3 ← (byte*) print_screen#3 + (byte*) print_char_cursor#13 ← (byte*) print_line_cursor#3 + to:print_cls::@return +print_cls::@return: scope:[print_cls] from print_cls::@2 + (byte*) print_char_cursor#44 ← phi( print_cls::@2/(byte*) print_char_cursor#13 ) + (byte*) print_line_cursor#14 ← phi( print_cls::@2/(byte*) print_line_cursor#3 ) + (byte*) print_line_cursor#4 ← (byte*) print_line_cursor#14 + (byte*) print_char_cursor#14 ← (byte*) print_char_cursor#44 + return + to:@return +@17: scope:[] from @13 + (byte*) print_screen#8 ← phi( @13/(byte*) print_screen#9 ) + (byte*) print_char_cursor#75 ← phi( @13/(byte*) print_char_cursor#76 ) + (byte*) print_line_cursor#29 ← phi( @13/(byte*) print_line_cursor#30 ) + (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 + (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 + (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 + (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 243 + (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 245 + to:@20 +main: scope:[main] from @21 + (signed byte*) zr#12 ← phi( @21/(signed byte*) zr#13 ) + (signed byte*) yr#15 ← phi( @21/(signed byte*) yr#16 ) + (signed byte*) xr#13 ← phi( @21/(signed byte*) xr#14 ) + (byte*) print_char_cursor#73 ← phi( @21/(byte*) print_char_cursor#70 ) + (byte*) print_line_cursor#25 ← phi( @21/(byte*) print_line_cursor#24 ) + (byte*) print_screen#5 ← phi( @21/(byte*) print_screen#6 ) + (word*) psp2#2 ← phi( @21/(word*) psp2#3 ) + (word*) psp1#2 ← phi( @21/(word*) psp1#3 ) + asm { sei } + call mulf_init + to:main::@1 +main::@1: scope:[main] from main + (signed byte*) zr#11 ← phi( main/(signed byte*) zr#12 ) + (signed byte*) yr#14 ← phi( main/(signed byte*) yr#15 ) + (signed byte*) xr#12 ← phi( main/(signed byte*) xr#13 ) + (byte*) print_char_cursor#67 ← phi( main/(byte*) print_char_cursor#73 ) + (byte*) print_line_cursor#22 ← phi( main/(byte*) print_line_cursor#25 ) + (byte*) print_screen#4 ← phi( main/(byte*) print_screen#5 ) + (word*) psp2#1 ← phi( main/(word*) psp2#2 ) + (word*) psp1#1 ← phi( main/(word*) psp1#2 ) + (word~) main::$1 ← ((word)) (byte[512]) mulf_sqr1#0 + *((word*) psp1#1) ← (word~) main::$1 + (word~) main::$2 ← ((word)) (byte[512]) mulf_sqr2#0 + *((word*) psp2#1) ← (word~) main::$2 + call print_cls + to:main::@2 +main::@2: scope:[main] from main::@1 + (signed byte*) zr#10 ← phi( main::@1/(signed byte*) zr#11 ) + (signed byte*) yr#13 ← phi( main::@1/(signed byte*) yr#14 ) + (signed byte*) xr#11 ← phi( main::@1/(signed byte*) xr#12 ) + (byte*) print_char_cursor#45 ← phi( main::@1/(byte*) print_char_cursor#14 ) + (byte*) print_line_cursor#15 ← phi( main::@1/(byte*) print_line_cursor#4 ) + (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#15 + (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#45 + (signed byte/signed word/signed dword~) main::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 71 + (signed byte) do_perspective::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 + (signed byte) do_perspective::y#0 ← (signed byte/signed word/signed dword~) main::$4 + (signed byte) do_perspective::z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 + call do_perspective + to:main::@3 +main::@3: scope:[main] from main::@2 + (byte*) print_line_cursor#16 ← phi( main::@2/(byte*) print_line_cursor#9 ) + (byte*) print_char_cursor#46 ← phi( main::@2/(byte*) print_char_cursor#30 ) + (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#46 + (byte*) print_line_cursor#6 ← (byte*) print_line_cursor#16 + to:main::@return +main::@return: scope:[main] from main::@3 + (byte*) print_char_cursor#47 ← phi( main::@3/(byte*) print_char_cursor#16 ) + (byte*) print_line_cursor#17 ← phi( main::@3/(byte*) print_line_cursor#6 ) + (byte*) print_line_cursor#7 ← (byte*) print_line_cursor#17 + (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#47 + return + to:@return +do_perspective: scope:[do_perspective] from main::@2 + (byte*) print_line_cursor#40 ← phi( main::@2/(byte*) print_line_cursor#5 ) + (signed byte*) zr#9 ← phi( main::@2/(signed byte*) zr#10 ) + (signed byte*) yr#12 ← phi( main::@2/(signed byte*) yr#13 ) + (signed byte*) xr#10 ← phi( main::@2/(signed byte*) xr#11 ) + (signed byte) do_perspective::z#8 ← phi( main::@2/(signed byte) do_perspective::z#0 ) + (signed byte) do_perspective::y#7 ← phi( main::@2/(signed byte) do_perspective::y#0 ) + (signed byte) do_perspective::x#3 ← phi( main::@2/(signed byte) do_perspective::x#0 ) + (byte*) print_char_cursor#68 ← phi( main::@2/(byte*) print_char_cursor#15 ) + (byte*) print_str::str#1 ← (const string) do_perspective::str + call print_str + to:do_perspective::@1 +do_perspective::@1: scope:[do_perspective] from do_perspective + (byte*) print_line_cursor#39 ← phi( do_perspective/(byte*) print_line_cursor#40 ) + (signed byte*) zr#8 ← phi( do_perspective/(signed byte*) zr#9 ) + (signed byte*) yr#11 ← phi( do_perspective/(signed byte*) yr#12 ) + (signed byte*) xr#9 ← phi( do_perspective/(signed byte*) xr#10 ) + (signed byte) do_perspective::z#7 ← phi( do_perspective/(signed byte) do_perspective::z#8 ) + (signed byte) do_perspective::y#5 ← phi( do_perspective/(signed byte) do_perspective::y#7 ) + (signed byte) do_perspective::x#1 ← phi( do_perspective/(signed byte) do_perspective::x#3 ) + (byte*) print_char_cursor#48 ← phi( do_perspective/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#48 + (signed byte) print_sbyte::b#1 ← (signed byte) do_perspective::x#1 + call print_sbyte + to:do_perspective::@2 +do_perspective::@2: scope:[do_perspective] from do_perspective::@1 + (byte*) print_line_cursor#38 ← phi( do_perspective::@1/(byte*) print_line_cursor#39 ) + (signed byte*) zr#7 ← phi( do_perspective::@1/(signed byte*) zr#8 ) + (signed byte*) yr#10 ← phi( do_perspective::@1/(signed byte*) yr#11 ) + (signed byte*) xr#8 ← phi( do_perspective::@1/(signed byte*) xr#9 ) + (signed byte) do_perspective::x#8 ← phi( do_perspective::@1/(signed byte) do_perspective::x#1 ) + (signed byte) do_perspective::z#6 ← phi( do_perspective::@1/(signed byte) do_perspective::z#7 ) + (signed byte) do_perspective::y#3 ← phi( do_perspective::@1/(signed byte) do_perspective::y#5 ) + (byte*) print_char_cursor#49 ← phi( do_perspective::@1/(byte*) print_char_cursor#7 ) + (byte*) print_char_cursor#19 ← (byte*) print_char_cursor#49 + (byte*) print_str::str#2 ← (const string) do_perspective::str1 + call print_str + to:do_perspective::@3 +do_perspective::@3: scope:[do_perspective] from do_perspective::@2 + (byte*) print_line_cursor#37 ← phi( do_perspective::@2/(byte*) print_line_cursor#38 ) + (signed byte*) zr#6 ← phi( do_perspective::@2/(signed byte*) zr#7 ) + (signed byte*) yr#9 ← phi( do_perspective::@2/(signed byte*) yr#10 ) + (signed byte*) xr#7 ← phi( do_perspective::@2/(signed byte*) xr#8 ) + (signed byte) do_perspective::x#7 ← phi( do_perspective::@2/(signed byte) do_perspective::x#8 ) + (signed byte) do_perspective::z#5 ← phi( do_perspective::@2/(signed byte) do_perspective::z#6 ) + (signed byte) do_perspective::y#1 ← phi( do_perspective::@2/(signed byte) do_perspective::y#3 ) + (byte*) print_char_cursor#50 ← phi( do_perspective::@2/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#50 + (signed byte) print_sbyte::b#2 ← (signed byte) do_perspective::y#1 + call print_sbyte + to:do_perspective::@4 +do_perspective::@4: scope:[do_perspective] from do_perspective::@3 + (byte*) print_line_cursor#36 ← phi( do_perspective::@3/(byte*) print_line_cursor#37 ) + (signed byte*) zr#5 ← phi( do_perspective::@3/(signed byte*) zr#6 ) + (signed byte*) yr#8 ← phi( do_perspective::@3/(signed byte*) yr#9 ) + (signed byte*) xr#6 ← phi( do_perspective::@3/(signed byte*) xr#7 ) + (signed byte) do_perspective::y#8 ← phi( do_perspective::@3/(signed byte) do_perspective::y#1 ) + (signed byte) do_perspective::x#6 ← phi( do_perspective::@3/(signed byte) do_perspective::x#7 ) + (signed byte) do_perspective::z#3 ← phi( do_perspective::@3/(signed byte) do_perspective::z#5 ) + (byte*) print_char_cursor#51 ← phi( do_perspective::@3/(byte*) print_char_cursor#7 ) + (byte*) print_char_cursor#21 ← (byte*) print_char_cursor#51 + (byte*) print_str::str#3 ← (const string) do_perspective::str2 + call print_str + to:do_perspective::@5 +do_perspective::@5: scope:[do_perspective] from do_perspective::@4 + (byte*) print_line_cursor#35 ← phi( do_perspective::@4/(byte*) print_line_cursor#36 ) + (signed byte*) zr#4 ← phi( do_perspective::@4/(signed byte*) zr#5 ) + (signed byte*) yr#7 ← phi( do_perspective::@4/(signed byte*) yr#8 ) + (signed byte*) xr#5 ← phi( do_perspective::@4/(signed byte*) xr#6 ) + (signed byte) do_perspective::y#6 ← phi( do_perspective::@4/(signed byte) do_perspective::y#8 ) + (signed byte) do_perspective::x#5 ← phi( do_perspective::@4/(signed byte) do_perspective::x#6 ) + (signed byte) do_perspective::z#1 ← phi( do_perspective::@4/(signed byte) do_perspective::z#3 ) + (byte*) print_char_cursor#52 ← phi( do_perspective::@4/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#22 ← (byte*) print_char_cursor#52 + (signed byte) print_sbyte::b#3 ← (signed byte) do_perspective::z#1 + call print_sbyte + to:do_perspective::@6 +do_perspective::@6: scope:[do_perspective] from do_perspective::@5 + (byte*) print_line_cursor#34 ← phi( do_perspective::@5/(byte*) print_line_cursor#35 ) + (signed byte*) zr#3 ← phi( do_perspective::@5/(signed byte*) zr#4 ) + (signed byte*) yr#5 ← phi( do_perspective::@5/(signed byte*) yr#7 ) + (signed byte*) xr#4 ← phi( do_perspective::@5/(signed byte*) xr#5 ) + (signed byte) do_perspective::z#4 ← phi( do_perspective::@5/(signed byte) do_perspective::z#1 ) + (signed byte) do_perspective::y#4 ← phi( do_perspective::@5/(signed byte) do_perspective::y#6 ) + (signed byte) do_perspective::x#4 ← phi( do_perspective::@5/(signed byte) do_perspective::x#5 ) + (byte*) print_char_cursor#53 ← phi( do_perspective::@5/(byte*) print_char_cursor#7 ) + (byte*) print_char_cursor#23 ← (byte*) print_char_cursor#53 + (byte*) print_str::str#4 ← (const string) do_perspective::str3 + call print_str + to:do_perspective::@7 +do_perspective::@7: scope:[do_perspective] from do_perspective::@6 + (byte*) print_line_cursor#33 ← phi( do_perspective::@6/(byte*) print_line_cursor#34 ) + (signed byte*) zr#2 ← phi( do_perspective::@6/(signed byte*) zr#3 ) + (signed byte*) yr#4 ← phi( do_perspective::@6/(signed byte*) yr#5 ) + (signed byte*) xr#3 ← phi( do_perspective::@6/(signed byte*) xr#4 ) + (signed byte) do_perspective::z#2 ← phi( do_perspective::@6/(signed byte) do_perspective::z#4 ) + (signed byte) do_perspective::y#2 ← phi( do_perspective::@6/(signed byte) do_perspective::y#4 ) + (signed byte) do_perspective::x#2 ← phi( do_perspective::@6/(signed byte) do_perspective::x#4 ) + (byte*) print_char_cursor#54 ← phi( do_perspective::@6/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#24 ← (byte*) print_char_cursor#54 + (signed byte) perspective::x#0 ← (signed byte) do_perspective::x#2 + (signed byte) perspective::y#0 ← (signed byte) do_perspective::y#2 + (signed byte) perspective::z#0 ← (signed byte) do_perspective::z#2 + call perspective + to:do_perspective::@8 +do_perspective::@8: scope:[do_perspective] from do_perspective::@7 + (byte*) print_line_cursor#32 ← phi( do_perspective::@7/(byte*) print_line_cursor#33 ) + (signed byte*) yr#6 ← phi( do_perspective::@7/(signed byte*) yr#4 ) + (byte*) print_char_cursor#69 ← phi( do_perspective::@7/(byte*) print_char_cursor#24 ) + (signed byte*) xr#1 ← phi( do_perspective::@7/(signed byte*) xr#3 ) + (byte~) do_perspective::$8 ← ((byte)) *((signed byte*) xr#1) + (byte) print_byte::b#1 ← (byte~) do_perspective::$8 + call print_byte + to:do_perspective::@9 +do_perspective::@9: scope:[do_perspective] from do_perspective::@8 + (byte*) print_line_cursor#31 ← phi( do_perspective::@8/(byte*) print_line_cursor#32 ) + (signed byte*) yr#3 ← phi( do_perspective::@8/(signed byte*) yr#6 ) + (byte*) print_char_cursor#55 ← phi( do_perspective::@8/(byte*) print_char_cursor#10 ) + (byte*) print_char_cursor#25 ← (byte*) print_char_cursor#55 + (byte*) print_str::str#5 ← (const string) do_perspective::str4 + call print_str + to:do_perspective::@10 +do_perspective::@10: scope:[do_perspective] from do_perspective::@9 + (byte*) print_line_cursor#28 ← phi( do_perspective::@9/(byte*) print_line_cursor#31 ) + (signed byte*) yr#1 ← phi( do_perspective::@9/(signed byte*) yr#3 ) + (byte*) print_char_cursor#56 ← phi( do_perspective::@9/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#26 ← (byte*) print_char_cursor#56 + (byte~) do_perspective::$11 ← ((byte)) *((signed byte*) yr#1) + (byte) print_byte::b#2 ← (byte~) do_perspective::$11 + call print_byte + to:do_perspective::@11 +do_perspective::@11: scope:[do_perspective] from do_perspective::@10 + (byte*) print_line_cursor#26 ← phi( do_perspective::@10/(byte*) print_line_cursor#28 ) + (byte*) print_char_cursor#57 ← phi( do_perspective::@10/(byte*) print_char_cursor#10 ) + (byte*) print_char_cursor#27 ← (byte*) print_char_cursor#57 + (byte*) print_str::str#6 ← (const string) do_perspective::str5 + call print_str + to:do_perspective::@12 +do_perspective::@12: scope:[do_perspective] from do_perspective::@11 + (byte*) print_line_cursor#23 ← phi( do_perspective::@11/(byte*) print_line_cursor#26 ) + (byte*) print_char_cursor#58 ← phi( do_perspective::@11/(byte*) print_char_cursor#2 ) + (byte*) print_char_cursor#28 ← (byte*) print_char_cursor#58 + call print_ln + to:do_perspective::@13 +do_perspective::@13: scope:[do_perspective] from do_perspective::@12 + (byte*) print_char_cursor#59 ← phi( do_perspective::@12/(byte*) print_char_cursor#4 ) + (byte*) print_line_cursor#18 ← phi( do_perspective::@12/(byte*) print_line_cursor#2 ) + (byte*) print_line_cursor#8 ← (byte*) print_line_cursor#18 + (byte*) print_char_cursor#29 ← (byte*) print_char_cursor#59 + to:do_perspective::@return +do_perspective::@return: scope:[do_perspective] from do_perspective::@13 + (byte*) print_line_cursor#19 ← phi( do_perspective::@13/(byte*) print_line_cursor#8 ) + (byte*) print_char_cursor#60 ← phi( do_perspective::@13/(byte*) print_char_cursor#29 ) + (byte*) print_char_cursor#30 ← (byte*) print_char_cursor#60 + (byte*) print_line_cursor#9 ← (byte*) print_line_cursor#19 + return + to:@return +perspective: scope:[perspective] from do_perspective::@7 + (signed byte*) zr#1 ← phi( do_perspective::@7/(signed byte*) zr#2 ) + (signed byte) perspective::z#1 ← phi( do_perspective::@7/(signed byte) perspective::z#0 ) + (signed byte*) yr#2 ← phi( do_perspective::@7/(signed byte*) yr#4 ) + (signed byte) perspective::y#1 ← phi( do_perspective::@7/(signed byte) perspective::y#0 ) + (signed byte*) xr#2 ← phi( do_perspective::@7/(signed byte*) xr#3 ) + (signed byte) perspective::x#1 ← phi( do_perspective::@7/(signed byte) perspective::x#0 ) + *((signed byte*) xr#2) ← (signed byte) perspective::x#1 + *((signed byte*) yr#2) ← (signed byte) perspective::y#1 + *((signed byte*) zr#1) ← (signed byte) perspective::z#1 + asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + to:perspective::@return +perspective::@return: scope:[perspective] from perspective + return + to:@return +@20: scope:[] from @17 + (signed byte*) zr#14 ← phi( @17/(signed byte*) zr#0 ) + (signed byte*) yr#17 ← phi( @17/(signed byte*) yr#0 ) + (signed byte*) xr#15 ← phi( @17/(signed byte*) xr#0 ) + (byte*) print_screen#7 ← phi( @17/(byte*) print_screen#8 ) + (word*) psp2#4 ← phi( @17/(word*) psp2#0 ) + (word*) psp1#4 ← phi( @17/(word*) psp1#0 ) + (byte*) print_char_cursor#74 ← phi( @17/(byte*) print_char_cursor#75 ) + (byte*) print_line_cursor#27 ← phi( @17/(byte*) print_line_cursor#29 ) + (byte[512]) mulf_sqr1#0 ← { fill( 512, 0) } + (byte[512]) mulf_sqr2#0 ← { fill( 512, 0) } + to:@21 +mulf_init: scope:[mulf_init] from main + (signed word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed word) mulf_init::add#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:mulf_init::@1 +mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 + (signed word) mulf_init::add#2 ← phi( mulf_init/(signed word) mulf_init::add#0 mulf_init::@1/(signed word) mulf_init::add#1 ) + (byte) mulf_init::i#2 ← phi( mulf_init/(byte) mulf_init::i#0 mulf_init::@1/(byte) mulf_init::i#1 ) + (signed word) mulf_init::sqr#2 ← phi( mulf_init/(signed word) mulf_init::sqr#0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) + (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr#2 + (byte) mulf_init::val#0 ← (byte~) mulf_init::$0 + *((byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 + *((byte*~) mulf_init::$1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 + *((byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$3 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 + *((byte*~) mulf_init::$3 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$6 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$7 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte*~) mulf_init::$6 + (byte/signed word/word/dword/signed dword~) mulf_init::$7) ← (byte) mulf_init::val#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 + *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$9 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 + *((byte*~) mulf_init::$9 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 + (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 + (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) mulf_init::i#1 ← (byte) mulf_init::i#2 + rangenext(0,128) + (bool~) mulf_init::$11 ← (byte) mulf_init::i#1 != rangelast(0,128) + if((bool~) mulf_init::$11) goto mulf_init::@1 + to:mulf_init::@return +mulf_init::@return: scope:[mulf_init] from mulf_init::@1 + return + to:@return +@21: scope:[] from @20 + (signed byte*) zr#13 ← phi( @20/(signed byte*) zr#14 ) + (signed byte*) yr#16 ← phi( @20/(signed byte*) yr#17 ) + (signed byte*) xr#14 ← phi( @20/(signed byte*) xr#15 ) + (byte*) print_screen#6 ← phi( @20/(byte*) print_screen#7 ) + (word*) psp2#3 ← phi( @20/(word*) psp2#4 ) + (word*) psp1#3 ← phi( @20/(word*) psp1#4 ) + (byte*) print_char_cursor#70 ← phi( @20/(byte*) print_char_cursor#74 ) + (byte*) print_line_cursor#24 ← phi( @20/(byte*) print_line_cursor#27 ) + (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 9216 + kickasm(location (signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + }} + call main + to:@22 +@22: scope:[] from @21 + (byte*) print_char_cursor#61 ← phi( @21/(byte*) print_char_cursor#17 ) + (byte*) print_line_cursor#20 ← phi( @21/(byte*) print_line_cursor#7 ) + (byte*) print_line_cursor#10 ← (byte*) print_line_cursor#20 + (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#61 + to:@end +@end: scope:[] from @22 + +SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @13 +(label) @17 +(label) @20 +(label) @21 +(label) @22 +(label) @3 +(label) @begin +(label) @end +(signed byte*) PERSP_Z +(signed byte*) PERSP_Z#0 +(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z) +(byte~) do_perspective::$11 +(byte~) do_perspective::$8 +(label) do_perspective::@1 +(label) do_perspective::@10 +(label) do_perspective::@11 +(label) do_perspective::@12 +(label) do_perspective::@13 +(label) do_perspective::@2 +(label) do_perspective::@3 +(label) do_perspective::@4 +(label) do_perspective::@5 +(label) do_perspective::@6 +(label) do_perspective::@7 +(label) do_perspective::@8 +(label) do_perspective::@9 +(label) do_perspective::@return +(const string) do_perspective::str = (string) "(@" +(const string) do_perspective::str1 = (string) ",@" +(const string) do_perspective::str2 = (string) ",@" +(const string) do_perspective::str3 = (string) ") -> (@" +(const string) do_perspective::str4 = (string) ",@" +(const string) do_perspective::str5 = (string) ")@" +(signed byte) do_perspective::x +(signed byte) do_perspective::x#0 +(signed byte) do_perspective::x#1 +(signed byte) do_perspective::x#2 +(signed byte) do_perspective::x#3 +(signed byte) do_perspective::x#4 +(signed byte) do_perspective::x#5 +(signed byte) do_perspective::x#6 +(signed byte) do_perspective::x#7 +(signed byte) do_perspective::x#8 +(signed byte) do_perspective::y +(signed byte) do_perspective::y#0 +(signed byte) do_perspective::y#1 +(signed byte) do_perspective::y#2 +(signed byte) do_perspective::y#3 +(signed byte) do_perspective::y#4 +(signed byte) do_perspective::y#5 +(signed byte) do_perspective::y#6 +(signed byte) do_perspective::y#7 +(signed byte) do_perspective::y#8 +(signed byte) do_perspective::z +(signed byte) do_perspective::z#0 +(signed byte) do_perspective::z#1 +(signed byte) do_perspective::z#2 +(signed byte) do_perspective::z#3 +(signed byte) do_perspective::z#4 +(signed byte) do_perspective::z#5 +(signed byte) do_perspective::z#6 +(signed byte) do_perspective::z#7 +(signed byte) do_perspective::z#8 +(void()) main() +(word~) main::$1 +(word~) main::$2 +(signed byte/signed word/signed dword~) main::$4 +(label) main::@1 +(label) main::@2 +(label) main::@3 +(label) main::@return +(void()) mulf_init() +(byte~) mulf_init::$0 +(byte*~) mulf_init::$1 +(byte/signed word/word/dword/signed dword~) mulf_init::$10 +(bool~) mulf_init::$11 +(byte~) mulf_init::$2 +(byte*~) mulf_init::$3 +(byte~) mulf_init::$4 +(byte/signed word/word/dword/signed dword~) mulf_init::$5 +(byte*~) mulf_init::$6 +(byte/signed word/word/dword/signed dword~) mulf_init::$7 +(byte/signed word/word/dword/signed dword~) mulf_init::$8 +(byte*~) mulf_init::$9 +(label) mulf_init::@1 +(label) mulf_init::@return +(signed word) mulf_init::add +(signed word) mulf_init::add#0 +(signed word) mulf_init::add#1 +(signed word) mulf_init::add#2 +(byte) mulf_init::i +(byte) mulf_init::i#0 +(byte) mulf_init::i#1 +(byte) mulf_init::i#2 +(signed word) mulf_init::sqr +(signed word) mulf_init::sqr#0 +(signed word) mulf_init::sqr#1 +(signed word) mulf_init::sqr#2 +(byte) mulf_init::val +(byte) mulf_init::val#0 +(byte[512]) mulf_sqr1 +(byte[512]) mulf_sqr1#0 +(byte[512]) mulf_sqr2 +(byte[512]) mulf_sqr2#0 +(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) +(label) perspective::@return +(signed byte) perspective::x +(signed byte) perspective::x#0 +(signed byte) perspective::x#1 +(signed byte) perspective::y +(signed byte) perspective::y#0 +(signed byte) perspective::y#1 +(signed byte) perspective::z +(signed byte) perspective::z#0 +(signed byte) perspective::z#1 +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 +(byte~) print_byte::$2 +(label) print_byte::@1 +(label) print_byte::@2 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#0 +(byte) print_byte::b#1 +(byte) print_byte::b#2 +(byte) print_byte::b#3 +(byte) print_byte::b#4 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#0 +(byte) print_char::ch#1 +(byte) print_char::ch#2 +(byte) print_char::ch#3 +(byte*) print_char_cursor +(byte*) print_char_cursor#0 +(byte*) print_char_cursor#1 +(byte*) print_char_cursor#10 +(byte*) print_char_cursor#11 +(byte*) print_char_cursor#12 +(byte*) print_char_cursor#13 +(byte*) print_char_cursor#14 +(byte*) print_char_cursor#15 +(byte*) print_char_cursor#16 +(byte*) print_char_cursor#17 +(byte*) print_char_cursor#18 +(byte*) print_char_cursor#19 +(byte*) print_char_cursor#2 +(byte*) print_char_cursor#20 +(byte*) print_char_cursor#21 +(byte*) print_char_cursor#22 +(byte*) print_char_cursor#23 +(byte*) print_char_cursor#24 +(byte*) print_char_cursor#25 +(byte*) print_char_cursor#26 +(byte*) print_char_cursor#27 +(byte*) print_char_cursor#28 +(byte*) print_char_cursor#29 +(byte*) print_char_cursor#3 +(byte*) print_char_cursor#30 +(byte*) print_char_cursor#31 +(byte*) print_char_cursor#32 +(byte*) print_char_cursor#33 +(byte*) print_char_cursor#34 +(byte*) print_char_cursor#35 +(byte*) print_char_cursor#36 +(byte*) print_char_cursor#37 +(byte*) print_char_cursor#38 +(byte*) print_char_cursor#39 +(byte*) print_char_cursor#4 +(byte*) print_char_cursor#40 +(byte*) print_char_cursor#41 +(byte*) print_char_cursor#42 +(byte*) print_char_cursor#43 +(byte*) print_char_cursor#44 +(byte*) print_char_cursor#45 +(byte*) print_char_cursor#46 +(byte*) print_char_cursor#47 +(byte*) print_char_cursor#48 +(byte*) print_char_cursor#49 +(byte*) print_char_cursor#5 +(byte*) print_char_cursor#50 +(byte*) print_char_cursor#51 +(byte*) print_char_cursor#52 +(byte*) print_char_cursor#53 +(byte*) print_char_cursor#54 +(byte*) print_char_cursor#55 +(byte*) print_char_cursor#56 +(byte*) print_char_cursor#57 +(byte*) print_char_cursor#58 +(byte*) print_char_cursor#59 +(byte*) print_char_cursor#6 +(byte*) print_char_cursor#60 +(byte*) print_char_cursor#61 +(byte*) print_char_cursor#62 +(byte*) print_char_cursor#63 +(byte*) print_char_cursor#64 +(byte*) print_char_cursor#65 +(byte*) print_char_cursor#66 +(byte*) print_char_cursor#67 +(byte*) print_char_cursor#68 +(byte*) print_char_cursor#69 +(byte*) print_char_cursor#7 +(byte*) print_char_cursor#70 +(byte*) print_char_cursor#71 +(byte*) print_char_cursor#72 +(byte*) print_char_cursor#73 +(byte*) print_char_cursor#74 +(byte*) print_char_cursor#75 +(byte*) print_char_cursor#76 +(byte*) print_char_cursor#8 +(byte*) print_char_cursor#9 +(void()) print_cls() +(byte*~) print_cls::$0 +(bool~) print_cls::$1 +(label) print_cls::@1 +(label) print_cls::@2 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#0 +(byte*) print_cls::sc#1 +(byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 +(byte*) print_line_cursor +(byte*) print_line_cursor#0 +(byte*) print_line_cursor#1 +(byte*) print_line_cursor#10 +(byte*) print_line_cursor#11 +(byte*) print_line_cursor#12 +(byte*) print_line_cursor#13 +(byte*) print_line_cursor#14 +(byte*) print_line_cursor#15 +(byte*) print_line_cursor#16 +(byte*) print_line_cursor#17 +(byte*) print_line_cursor#18 +(byte*) print_line_cursor#19 +(byte*) print_line_cursor#2 +(byte*) print_line_cursor#20 +(byte*) print_line_cursor#21 +(byte*) print_line_cursor#22 +(byte*) print_line_cursor#23 +(byte*) print_line_cursor#24 +(byte*) print_line_cursor#25 +(byte*) print_line_cursor#26 +(byte*) print_line_cursor#27 +(byte*) print_line_cursor#28 +(byte*) print_line_cursor#29 +(byte*) print_line_cursor#3 +(byte*) print_line_cursor#30 +(byte*) print_line_cursor#31 +(byte*) print_line_cursor#32 +(byte*) print_line_cursor#33 +(byte*) print_line_cursor#34 +(byte*) print_line_cursor#35 +(byte*) print_line_cursor#36 +(byte*) print_line_cursor#37 +(byte*) print_line_cursor#38 +(byte*) print_line_cursor#39 +(byte*) print_line_cursor#4 +(byte*) print_line_cursor#40 +(byte*) print_line_cursor#5 +(byte*) print_line_cursor#6 +(byte*) print_line_cursor#7 +(byte*) print_line_cursor#8 +(byte*) print_line_cursor#9 +(void()) print_ln() +(byte*~) print_ln::$0 +(bool~) print_ln::$1 +(label) print_ln::@1 +(label) print_ln::@2 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(bool~) print_sbyte::$0 +(bool~) print_sbyte::$1 +(signed byte~) print_sbyte::$3 +(byte~) print_sbyte::$4 +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@3 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 +(signed byte) print_sbyte::b#1 +(signed byte) print_sbyte::b#2 +(signed byte) print_sbyte::b#3 +(signed byte) print_sbyte::b#4 +(signed byte) print_sbyte::b#5 +(signed byte) print_sbyte::b#6 +(signed byte) print_sbyte::b#7 +(byte*) print_screen +(byte*) print_screen#0 +(byte*) print_screen#1 +(byte*) print_screen#2 +(byte*) print_screen#3 +(byte*) print_screen#4 +(byte*) print_screen#5 +(byte*) print_screen#6 +(byte*) print_screen#7 +(byte*) print_screen#8 +(byte*) print_screen#9 +(void()) print_str((byte*) print_str::str) +(bool~) print_str::$0 +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 +(byte*) print_str::str#1 +(byte*) print_str::str#2 +(byte*) print_str::str#3 +(byte*) print_str::str#4 +(byte*) print_str::str#5 +(byte*) print_str::str#6 +(byte*) print_str::str#7 +(byte*) print_str::str#8 +(byte*) print_str::str#9 +(word*) psp1 +(word*) psp1#0 +(word*) psp1#1 +(word*) psp1#2 +(word*) psp1#3 +(word*) psp1#4 +(word*) psp2 +(word*) psp2#0 +(word*) psp2#1 +(word*) psp2#2 +(word*) psp2#3 +(word*) psp2#4 +(signed byte*) xr +(signed byte*) xr#0 +(signed byte*) xr#1 +(signed byte*) xr#10 +(signed byte*) xr#11 +(signed byte*) xr#12 +(signed byte*) xr#13 +(signed byte*) xr#14 +(signed byte*) xr#15 +(signed byte*) xr#2 +(signed byte*) xr#3 +(signed byte*) xr#4 +(signed byte*) xr#5 +(signed byte*) xr#6 +(signed byte*) xr#7 +(signed byte*) xr#8 +(signed byte*) xr#9 +(signed byte*) yr +(signed byte*) yr#0 +(signed byte*) yr#1 +(signed byte*) yr#10 +(signed byte*) yr#11 +(signed byte*) yr#12 +(signed byte*) yr#13 +(signed byte*) yr#14 +(signed byte*) yr#15 +(signed byte*) yr#16 +(signed byte*) yr#17 +(signed byte*) yr#2 +(signed byte*) yr#3 +(signed byte*) yr#4 +(signed byte*) yr#5 +(signed byte*) yr#6 +(signed byte*) yr#7 +(signed byte*) yr#8 +(signed byte*) yr#9 +(signed byte*) zr +(signed byte*) zr#0 +(signed byte*) zr#1 +(signed byte*) zr#10 +(signed byte*) zr#11 +(signed byte*) zr#12 +(signed byte*) zr#13 +(signed byte*) zr#14 +(signed byte*) zr#2 +(signed byte*) zr#3 +(signed byte*) zr#4 +(signed byte*) zr#5 +(signed byte*) zr#6 +(signed byte*) zr#7 +(signed byte*) zr#8 +(signed byte*) zr#9 + +Inversing boolean not (bool~) print_sbyte::$1 ← (signed byte) print_sbyte::b#4 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#4 < (byte/signed byte/word/signed word/dword/signed dword) 0 +Successful SSA optimization Pass2UnaryNotSimplification +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#30 (byte*) print_char_cursor#76 (byte*) print_screen#9 (byte*) print_line_cursor#29 (byte*) print_char_cursor#75 (byte*) print_screen#8 (byte*) print_line_cursor#27 (byte*) print_char_cursor#74 (byte*) print_screen#7 (byte*) print_line_cursor#24 (byte*) print_char_cursor#70 (byte*) print_screen#6 +Alias (byte*) print_str::str#7 = (byte*) print_str::str#8 +Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#32 (byte*) print_char_cursor#62 (byte*) print_char_cursor#33 +Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#3 (byte*) print_line_cursor#13 (byte*) print_char_cursor#35 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 +Alias (byte) print_byte::b#0 = (byte~) print_sbyte::$4 +Alias (byte*) print_char_cursor#36 = (byte*) print_char_cursor#5 (byte*) print_char_cursor#38 (byte*) print_char_cursor#7 +Alias (byte*) print_char_cursor#65 = (byte*) print_char_cursor#72 +Alias (signed byte) print_sbyte::b#4 = (signed byte) print_sbyte::b#7 (signed byte) print_sbyte::b#6 +Alias (byte*) print_char_cursor#37 = (byte*) print_char_cursor#6 +Alias (signed byte) print_sbyte::b#0 = (signed byte~) print_sbyte::$3 +Alias (byte) print_byte::b#3 = (byte) print_byte::b#4 +Alias (byte*) print_char_cursor#39 = (byte*) print_char_cursor#8 +Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#9 (byte*) print_char_cursor#40 (byte*) print_char_cursor#41 +Alias (byte*) print_char_cursor#11 = (byte*) print_char_cursor#43 (byte*) print_char_cursor#12 +Alias (byte*) print_line_cursor#14 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_line_cursor#3 (byte*) print_char_cursor#13 (byte*) print_char_cursor#44 (byte*) print_line_cursor#4 (byte*) print_char_cursor#14 +Alias (word*) psp1#1 = (word*) psp1#2 +Alias (word*) psp2#1 = (word*) psp2#2 +Alias (byte*) print_screen#4 = (byte*) print_screen#5 +Alias (byte*) print_line_cursor#22 = (byte*) print_line_cursor#25 +Alias (byte*) print_char_cursor#67 = (byte*) print_char_cursor#73 +Alias (signed byte*) xr#11 = (signed byte*) xr#12 (signed byte*) xr#13 +Alias (signed byte*) yr#13 = (signed byte*) yr#14 (signed byte*) yr#15 +Alias (signed byte*) zr#10 = (signed byte*) zr#11 (signed byte*) zr#12 +Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#5 +Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#45 +Alias (signed byte) do_perspective::y#0 = (signed byte/signed word/signed dword~) main::$4 +Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#46 (byte*) print_char_cursor#47 (byte*) print_char_cursor#17 +Alias (byte*) print_line_cursor#16 = (byte*) print_line_cursor#6 (byte*) print_line_cursor#17 (byte*) print_line_cursor#7 +Alias (signed byte) do_perspective::x#1 = (signed byte) do_perspective::x#3 (signed byte) do_perspective::x#8 (signed byte) do_perspective::x#7 (signed byte) do_perspective::x#6 (signed byte) do_perspective::x#5 (signed byte) do_perspective::x#4 (signed byte) do_perspective::x#2 +Alias (signed byte) do_perspective::y#1 = (signed byte) do_perspective::y#5 (signed byte) do_perspective::y#7 (signed byte) do_perspective::y#3 (signed byte) do_perspective::y#8 (signed byte) do_perspective::y#6 (signed byte) do_perspective::y#4 (signed byte) do_perspective::y#2 +Alias (signed byte) do_perspective::z#1 = (signed byte) do_perspective::z#7 (signed byte) do_perspective::z#8 (signed byte) do_perspective::z#6 (signed byte) do_perspective::z#5 (signed byte) do_perspective::z#3 (signed byte) do_perspective::z#4 (signed byte) do_perspective::z#2 +Alias (signed byte*) xr#1 = (signed byte*) xr#9 (signed byte*) xr#10 (signed byte*) xr#8 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5 (signed byte*) xr#4 (signed byte*) xr#3 +Alias (signed byte*) yr#1 = (signed byte*) yr#11 (signed byte*) yr#12 (signed byte*) yr#10 (signed byte*) yr#9 (signed byte*) yr#8 (signed byte*) yr#7 (signed byte*) yr#5 (signed byte*) yr#4 (signed byte*) yr#6 (signed byte*) yr#3 +Alias (signed byte*) zr#2 = (signed byte*) zr#8 (signed byte*) zr#9 (signed byte*) zr#7 (signed byte*) zr#6 (signed byte*) zr#5 (signed byte*) zr#4 (signed byte*) zr#3 +Alias (byte*) print_line_cursor#23 = (byte*) print_line_cursor#39 (byte*) print_line_cursor#40 (byte*) print_line_cursor#38 (byte*) print_line_cursor#37 (byte*) print_line_cursor#36 (byte*) print_line_cursor#35 (byte*) print_line_cursor#34 (byte*) print_line_cursor#33 (byte*) print_line_cursor#32 (byte*) print_line_cursor#31 (byte*) print_line_cursor#28 (byte*) print_line_cursor#26 +Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#48 +Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#49 +Alias (byte*) print_char_cursor#20 = (byte*) print_char_cursor#50 +Alias (byte*) print_char_cursor#21 = (byte*) print_char_cursor#51 +Alias (byte*) print_char_cursor#22 = (byte*) print_char_cursor#52 +Alias (byte*) print_char_cursor#23 = (byte*) print_char_cursor#53 +Alias (byte*) print_char_cursor#24 = (byte*) print_char_cursor#54 (byte*) print_char_cursor#69 +Alias (byte) print_byte::b#1 = (byte~) do_perspective::$8 +Alias (byte*) print_char_cursor#25 = (byte*) print_char_cursor#55 +Alias (byte*) print_char_cursor#26 = (byte*) print_char_cursor#56 +Alias (byte) print_byte::b#2 = (byte~) do_perspective::$11 +Alias (byte*) print_char_cursor#27 = (byte*) print_char_cursor#57 +Alias (byte*) print_char_cursor#28 = (byte*) print_char_cursor#58 +Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#8 (byte*) print_line_cursor#19 (byte*) print_line_cursor#9 +Alias (byte*) print_char_cursor#29 = (byte*) print_char_cursor#59 (byte*) print_char_cursor#60 (byte*) print_char_cursor#30 +Alias (word*) psp1#0 = (word*) psp1#4 (word*) psp1#3 +Alias (word*) psp2#0 = (word*) psp2#4 (word*) psp2#3 +Alias (signed byte*) xr#0 = (signed byte*) xr#15 (signed byte*) xr#14 +Alias (signed byte*) yr#0 = (signed byte*) yr#17 (signed byte*) yr#16 +Alias (signed byte*) zr#0 = (signed byte*) zr#14 (signed byte*) zr#13 +Alias (byte) mulf_init::val#0 = (byte~) mulf_init::$0 +Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#20 +Alias (byte*) print_char_cursor#31 = (byte*) print_char_cursor#61 +Successful SSA optimization Pass2AliasElimination +Self Phi Eliminated (byte*) print_char_cursor#34 +Self Phi Eliminated (byte*) print_line_cursor#14 +Successful SSA optimization Pass2SelfPhiElimination +Redundant Phi (byte*) print_line_cursor#21 (byte*) print_line_cursor#23 +Redundant Phi (byte*) print_char_cursor#63 (byte*) print_char_cursor#28 +Redundant Phi (byte*) print_char_cursor#34 (byte*) print_char_cursor#63 +Redundant Phi (byte*) print_char_cursor#36 (byte*) print_char_cursor#10 +Redundant Phi (byte*) print_char_cursor#37 (byte*) print_char_cursor#11 +Redundant Phi (byte*) print_char_cursor#39 (byte*) print_char_cursor#11 +Redundant Phi (byte*) print_char_cursor#10 (byte*) print_char_cursor#11 +Redundant Phi (byte*) print_screen#1 (byte*) print_screen#4 +Redundant Phi (byte*) print_line_cursor#14 (byte*) print_screen#1 +Redundant Phi (word*) psp1#1 (word*) psp1#0 +Redundant Phi (word*) psp2#1 (word*) psp2#0 +Redundant Phi (byte*) print_screen#4 (byte*) print_line_cursor#0 +Redundant Phi (byte*) print_line_cursor#22 (byte*) print_line_cursor#0 +Redundant Phi (byte*) print_char_cursor#67 (byte*) print_line_cursor#0 +Redundant Phi (signed byte*) xr#11 (signed byte*) xr#0 +Redundant Phi (signed byte*) yr#13 (signed byte*) yr#0 +Redundant Phi (signed byte*) zr#10 (signed byte*) zr#0 +Redundant Phi (byte*) print_line_cursor#15 (byte*) print_line_cursor#14 +Redundant Phi (byte*) print_char_cursor#15 (byte*) print_line_cursor#14 +Redundant Phi (byte*) print_char_cursor#16 (byte*) print_char_cursor#29 +Redundant Phi (byte*) print_line_cursor#16 (byte*) print_line_cursor#18 +Redundant Phi (byte*) print_char_cursor#68 (byte*) print_char_cursor#15 +Redundant Phi (signed byte) do_perspective::x#1 (signed byte) do_perspective::x#0 +Redundant Phi (signed byte) do_perspective::y#1 (signed byte) do_perspective::y#0 +Redundant Phi (signed byte) do_perspective::z#1 (signed byte) do_perspective::z#0 +Redundant Phi (signed byte*) xr#1 (signed byte*) xr#11 +Redundant Phi (signed byte*) yr#1 (signed byte*) yr#13 +Redundant Phi (signed byte*) zr#2 (signed byte*) zr#10 +Redundant Phi (byte*) print_line_cursor#23 (byte*) print_line_cursor#15 +Redundant Phi (byte*) print_char_cursor#18 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_char_cursor#19 (byte*) print_char_cursor#36 +Redundant Phi (byte*) print_char_cursor#20 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_char_cursor#21 (byte*) print_char_cursor#36 +Redundant Phi (byte*) print_char_cursor#22 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_char_cursor#23 (byte*) print_char_cursor#36 +Redundant Phi (byte*) print_char_cursor#24 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_char_cursor#25 (byte*) print_char_cursor#10 +Redundant Phi (byte*) print_char_cursor#26 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_char_cursor#27 (byte*) print_char_cursor#10 +Redundant Phi (byte*) print_char_cursor#28 (byte*) print_char_cursor#2 +Redundant Phi (byte*) print_line_cursor#18 (byte*) print_line_cursor#1 +Redundant Phi (byte*) print_char_cursor#29 (byte*) print_line_cursor#1 +Redundant Phi (signed byte) perspective::x#1 (signed byte) perspective::x#0 +Redundant Phi (signed byte*) xr#2 (signed byte*) xr#1 +Redundant Phi (signed byte) perspective::y#1 (signed byte) perspective::y#0 +Redundant Phi (signed byte*) yr#2 (signed byte*) yr#1 +Redundant Phi (signed byte) perspective::z#1 (signed byte) perspective::z#0 +Redundant Phi (signed byte*) zr#1 (signed byte*) zr#2 +Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#16 +Redundant Phi (byte*) print_char_cursor#31 (byte*) print_char_cursor#16 +Successful SSA optimization Pass2RedundantPhiElimination +Redundant Phi (byte*) print_char_cursor#65 (byte*) print_char_cursor#2 +Successful SSA optimization Pass2RedundantPhiElimination +Simple Condition (bool~) print_str::$0 if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 +Simple Condition (bool~) print_ln::$1 if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 +Simple Condition (bool~) print_sbyte::$1 if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 +Simple Condition (bool~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 +Simple Condition (bool~) mulf_init::$11 if((byte) mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 +Successful SSA optimization Pass2ConditionalJumpSimplification +Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte) print_char::ch#0 = '-' +Constant (const byte[]) print_hextab#0 = $0 +Constant (const signed byte*) xr#0 = ((signed byte*))240 +Constant (const signed byte*) yr#0 = ((signed byte*))241 +Constant (const signed byte*) zr#0 = ((signed byte*))242 +Constant (const word*) psp1#0 = ((word*))243 +Constant (const word*) psp2#0 = ((word*))245 +Constant (const signed byte) do_perspective::y#0 = -71 +Constant (const signed byte) do_perspective::x#0 = 57 +Constant (const signed byte) do_perspective::z#0 = 54 +Constant (const byte*) print_str::str#1 = do_perspective::str +Constant (const byte*) print_str::str#2 = do_perspective::str1 +Constant (const byte*) print_str::str#3 = do_perspective::str2 +Constant (const byte*) print_str::str#4 = do_perspective::str3 +Constant (const byte*) print_str::str#5 = do_perspective::str4 +Constant (const byte*) print_str::str#6 = do_perspective::str5 +Constant (const byte[512]) mulf_sqr1#0 = { fill( 512, 0) } +Constant (const byte[512]) mulf_sqr2#0 = { fill( 512, 0) } +Constant (const signed word) mulf_init::sqr#0 = 0 +Constant (const signed word) mulf_init::add#0 = 1 +Constant (const byte) mulf_init::i#0 = 0 +Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))9216 +Successful SSA optimization Pass2ConstantIdentification +Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const word) main::$1 = ((word))mulf_sqr1#0 +Constant (const word) main::$2 = ((word))mulf_sqr2#0 +Constant (const signed byte) print_sbyte::b#1 = do_perspective::x#0 +Constant (const signed byte) print_sbyte::b#2 = do_perspective::y#0 +Constant (const signed byte) print_sbyte::b#3 = do_perspective::z#0 +Constant (const signed byte) perspective::x#0 = do_perspective::x#0 +Constant (const signed byte) perspective::y#0 = do_perspective::y#0 +Constant (const signed byte) perspective::z#0 = do_perspective::z#0 +Constant (const byte*) mulf_init::$1 = mulf_sqr1#0+256 +Constant (const byte*) mulf_init::$3 = mulf_sqr1#0+256 +Constant (const byte*) mulf_init::$6 = mulf_sqr2#0+256 +Constant (const byte*) mulf_init::$9 = mulf_sqr2#0+256 +Successful SSA optimization Pass2ConstantIdentification +Consolidated array index constant in assignment *(mulf_sqr2#0+1 + mulf_init::$5) +Consolidated array index constant in assignment *(mulf_init::$6+1 + mulf_init::$7) +Successful SSA optimization Pass2ConstantAdditionElimination +Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte) mulf_init::i#2 +Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$7 ← (byte) mulf_init::i#2 +Eliminating Noop Cast (byte) print_byte::b#0 ← ((byte)) (signed byte) print_sbyte::b#5 +Eliminating Noop Cast (byte) print_byte::b#1 ← ((byte)) *((const signed byte*) xr#0) +Eliminating Noop Cast (byte) print_byte::b#2 ← ((byte)) *((const signed byte*) yr#0) +Successful SSA optimization Pass2NopCastElimination +Resolved ranged next value mulf_init::i#1 ← ++ mulf_init::i#2 to ++ +Resolved ranged comparison value if(mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 to (byte/word/signed word/dword/signed dword) 129 +Culled Empty Block (label) @3 +Culled Empty Block (label) print_ln::@2 +Culled Empty Block (label) print_sbyte::@3 +Culled Empty Block (label) @13 +Culled Empty Block (label) print_byte::@2 +Culled Empty Block (label) print_cls::@2 +Culled Empty Block (label) @17 +Culled Empty Block (label) main::@3 +Culled Empty Block (label) do_perspective::@13 +Culled Empty Block (label) @20 +Culled Empty Block (label) @22 +Successful SSA optimization Pass2CullEmptyBlocks +Alias (byte) mulf_init::i#2 = (byte~) mulf_init::$5 (byte~) mulf_init::$7 +Successful SSA optimization Pass2AliasElimination +Inlining constant with var siblings (const byte*) print_str::str#1 +Inlining constant with var siblings (const byte*) print_str::str#2 +Inlining constant with var siblings (const byte*) print_str::str#3 +Inlining constant with var siblings (const byte*) print_str::str#4 +Inlining constant with var siblings (const byte*) print_str::str#5 +Inlining constant with var siblings (const byte*) print_str::str#6 +Inlining constant with var siblings (const signed byte) print_sbyte::b#1 +Inlining constant with var siblings (const signed byte) print_sbyte::b#2 +Inlining constant with var siblings (const signed byte) print_sbyte::b#3 +Inlining constant with var siblings (const byte) print_char::ch#0 +Inlining constant with var siblings (const byte*) print_cls::sc#0 +Inlining constant with var siblings (const signed word) mulf_init::sqr#0 +Inlining constant with var siblings (const signed word) mulf_init::add#0 +Inlining constant with var siblings (const byte) mulf_init::i#0 +Inlining constant with var siblings (const byte*) print_line_cursor#0 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_sbyte::b#1 = (const signed byte) do_perspective::x#0 +Constant inlined print_sbyte::b#2 = (const signed byte) do_perspective::y#0 +Constant inlined print_sbyte::b#3 = (const signed byte) do_perspective::z#0 +Constant inlined mulf_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined mulf_init::$1 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 +Constant inlined $0 = (const byte[]) print_hextab#0 +Constant inlined mulf_init::$3 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$6 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::add#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined perspective::z#0 = (const signed byte) do_perspective::z#0 +Constant inlined perspective::y#0 = (const signed byte) do_perspective::y#0 +Constant inlined perspective::x#0 = (const signed byte) do_perspective::x#0 +Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined mulf_init::$9 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined main::$1 = ((word))(const byte[512]) mulf_sqr1#0 +Constant inlined main::$2 = ((word))(const byte[512]) mulf_sqr2#0 +Constant inlined print_char::ch#0 = (byte) '-' +Constant inlined print_str::str#4 = (const string) do_perspective::str3 +Constant inlined print_str::str#3 = (const string) do_perspective::str2 +Constant inlined print_str::str#2 = (const string) do_perspective::str1 +Constant inlined print_str::str#1 = (const string) do_perspective::str +Constant inlined print_str::str#6 = (const string) do_perspective::str5 +Constant inlined print_str::str#5 = (const string) do_perspective::str4 +Successful SSA optimization Pass2ConstantInlining +Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) +Added new block during phi lifting print_sbyte::@5(between print_sbyte and print_sbyte::@1) +Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) +Added new block during phi lifting mulf_init::@3(between mulf_init::@1 and mulf_init::@1) +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @end +Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of do_perspective +Adding NOP phi() at start of do_perspective::@1 +Adding NOP phi() at start of do_perspective::@3 +Adding NOP phi() at start of do_perspective::@5 +Adding NOP phi() at start of do_perspective::@7 +Adding NOP phi() at start of do_perspective::@12 +Adding NOP phi() at start of print_ln +Adding NOP phi() at start of print_cls +Adding NOP phi() at start of mulf_init +CALL GRAPH +Calls in [] to main:2 +Calls in [main] to mulf_init:5 print_cls:8 do_perspective:10 +Calls in [do_perspective] to print_str:13 print_sbyte:15 print_str:17 print_sbyte:19 print_str:21 print_sbyte:23 print_str:25 perspective:27 print_byte:30 print_str:32 print_byte:35 print_str:37 print_ln:39 +Calls in [print_byte] to print_char:63 print_char:68 +Calls in [print_sbyte] to print_char:82 print_byte:89 + +Created 16 initial phi equivalence classes +Coalesced [16] print_char_cursor#78 ← print_char_cursor#11 +Coalesced (already) [20] print_char_cursor#79 ← print_char_cursor#11 +Coalesced (already) [24] print_char_cursor#80 ← print_char_cursor#11 +Coalesced [29] print_char_cursor#85 ← print_char_cursor#2 +Coalesced (already) [31] print_char_cursor#81 ← print_char_cursor#11 +Coalesced (already) [34] print_char_cursor#84 ← print_char_cursor#2 +Coalesced (already) [36] print_char_cursor#77 ← print_char_cursor#11 +Coalesced [46] print_line_cursor#41 ← print_line_cursor#1 +Coalesced [48] print_str::str#10 ← print_str::str#9 +Coalesced [49] print_char_cursor#82 ← print_char_cursor#71 +Coalesced [56] print_str::str#11 ← print_str::str#0 +Coalesced [57] print_char_cursor#83 ← print_char_cursor#1 +Coalesced [61] print_char::ch#4 ← print_char::ch#1 +Coalesced [62] print_char_cursor#87 ← print_char_cursor#66 +Coalesced [66] print_char::ch#5 ← print_char::ch#2 +Coalesced (already) [67] print_char_cursor#88 ← print_char_cursor#11 +Coalesced (already) [81] print_char_cursor#89 ← print_char_cursor#2 +Coalesced [84] print_sbyte::b#9 ← print_sbyte::b#0 +Coalesced [85] print_char_cursor#91 ← print_char_cursor#11 +Coalesced (already) [88] print_char_cursor#86 ← print_char_cursor#64 +Coalesced [91] print_sbyte::b#8 ← print_sbyte::b#4 +Coalesced (already) [92] print_char_cursor#90 ← print_char_cursor#2 +Coalesced [99] print_cls::sc#3 ← print_cls::sc#1 +Coalesced [120] mulf_init::sqr#3 ← mulf_init::sqr#1 +Coalesced [121] mulf_init::i#3 ← mulf_init::i#1 +Coalesced [122] mulf_init::add#3 ← mulf_init::add#1 +Coalesced down to 10 phi equivalence classes +Culled Empty Block (label) print_ln::@3 +Culled Empty Block (label) print_sbyte::@5 +Culled Empty Block (label) print_cls::@3 +Culled Empty Block (label) mulf_init::@3 +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @end +Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of do_perspective +Adding NOP phi() at start of do_perspective::@1 +Adding NOP phi() at start of do_perspective::@2 +Adding NOP phi() at start of do_perspective::@3 +Adding NOP phi() at start of do_perspective::@4 +Adding NOP phi() at start of do_perspective::@5 +Adding NOP phi() at start of do_perspective::@6 +Adding NOP phi() at start of do_perspective::@7 +Adding NOP phi() at start of do_perspective::@9 +Adding NOP phi() at start of do_perspective::@11 +Adding NOP phi() at start of do_perspective::@12 +Adding NOP phi() at start of print_ln +Adding NOP phi() at start of print_sbyte::@2 +Adding NOP phi() at start of print_cls +Adding NOP phi() at start of mulf_init + +FINAL CONTROL FLOW GRAPH +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@21 +@21: scope:[] from @begin + kickasm(location (const signed byte*) PERSP_Z#0) {{ { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + }} + [2] call main [ ] ( ) + to:@end +@end: scope:[] from @21 + [3] phi() [ ] ( ) +main: scope:[main] from @21 + asm { sei } + [5] call mulf_init [ ] ( main:2 [ ] ) + to:main::@1 +main::@1: scope:[main] from main + [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) + [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) + [8] call print_cls [ ] ( main:2 [ ] ) + to:main::@2 +main::@2: scope:[main] from main::@1 + [9] phi() [ ] ( main:2 [ ] ) + [10] call do_perspective [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main::@2 + [11] return [ ] ( main:2 [ ] ) + to:@return +do_perspective: scope:[do_perspective] from main::@2 + [12] phi() [ ] ( main:2::do_perspective:10 [ ] ) + [13] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@1 +do_perspective::@1: scope:[do_perspective] from do_perspective + [14] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [15] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@2 +do_perspective::@2: scope:[do_perspective] from do_perspective::@1 + [16] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [17] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@3 +do_perspective::@3: scope:[do_perspective] from do_perspective::@2 + [18] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [19] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@4 +do_perspective::@4: scope:[do_perspective] from do_perspective::@3 + [20] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [21] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@5 +do_perspective::@5: scope:[do_perspective] from do_perspective::@4 + [22] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [23] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@6 +do_perspective::@6: scope:[do_perspective] from do_perspective::@5 + [24] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [25] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@7 +do_perspective::@7: scope:[do_perspective] from do_perspective::@6 + [26] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [27] call perspective [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@8 +do_perspective::@8: scope:[do_perspective] from do_perspective::@7 + [28] (byte~) print_byte::b#6 ← (byte)*((const signed byte*) xr#0) [ print_byte::b#6 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#6 print_char_cursor#2 ] ) + [29] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@9 +do_perspective::@9: scope:[do_perspective] from do_perspective::@8 + [30] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [31] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@10 +do_perspective::@10: scope:[do_perspective] from do_perspective::@9 + [32] (byte~) print_byte::b#5 ← (byte)*((const signed byte*) yr#0) [ print_byte::b#5 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#5 print_char_cursor#2 ] ) + [33] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + to:do_perspective::@11 +do_perspective::@11: scope:[do_perspective] from do_perspective::@10 + [34] phi() [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + [35] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + to:do_perspective::@12 +do_perspective::@12: scope:[do_perspective] from do_perspective::@11 + [36] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + [37] call print_ln [ ] ( main:2::do_perspective:10 [ ] ) + to:do_perspective::@return +do_perspective::@return: scope:[do_perspective] from do_perspective::@12 + [38] return [ ] ( main:2::do_perspective:10 [ ] ) + to:@return +print_ln: scope:[print_ln] from do_perspective::@12 + [39] phi() [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_char_cursor#2 ] ) + to:print_ln::@1 +print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 + [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) [ print_line_cursor#11 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#11 print_char_cursor#2 ] ) + [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) + [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) + to:print_ln::@return +print_ln::@return: scope:[print_ln] from print_ln::@1 + [43] return [ ] ( main:2::do_perspective:10::print_ln:37 [ ] ) + to:@return +print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 + [44] (byte*) print_char_cursor#71 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#11 do_perspective::@2/(byte*) print_char_cursor#11 do_perspective::@4/(byte*) print_char_cursor#11 do_perspective::@6/(byte*) print_char_cursor#11 do_perspective::@9/(byte*) print_char_cursor#11 ) [ print_str::str#9 print_char_cursor#71 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:17 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:21 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:25 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:31 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:35 [ print_str::str#9 print_char_cursor#71 ] ) + [44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str2 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str4 ) [ print_str::str#9 print_char_cursor#71 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:17 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:21 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:25 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:31 [ print_str::str#9 print_char_cursor#71 ] main:2::do_perspective:10::print_str:35 [ print_str::str#9 print_char_cursor#71 ] ) + to:print_str::@1 +print_str::@1: scope:[print_str] from print_str print_str::@2 + [45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#71 print_str::@2/(byte*) print_char_cursor#1 ) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 ) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + to:print_str::@return +print_str::@return: scope:[print_str] from print_str::@1 + [47] return [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 ] ) + to:@return +print_str::@2: scope:[print_str] from print_str::@1 + [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) + [49] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#7 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#7 print_char_cursor#1 ] ) + [50] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#0 print_char_cursor#1 ] ) + to:print_str::@1 +print_byte: scope:[print_byte] from do_perspective::@10 do_perspective::@8 print_sbyte::@1 + [51] (byte*) print_char_cursor#66 ← phi( do_perspective::@10/(byte*) print_char_cursor#2 do_perspective::@8/(byte*) print_char_cursor#2 print_sbyte::@1/(byte*) print_char_cursor#64 ) [ print_byte::b#3 print_char_cursor#66 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] ) + [51] (byte) print_byte::b#3 ← phi( do_perspective::@10/(byte~) print_byte::b#5 do_perspective::@8/(byte~) print_byte::b#6 print_sbyte::@1/(byte~) print_byte::b#7 ) [ print_byte::b#3 print_char_cursor#66 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 ] ) + [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) + [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ) + [54] call print_char [ print_char_cursor#11 print_byte::b#3 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] ) + to:print_byte::@1 +print_byte::@1: scope:[print_byte] from print_byte + [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) + [56] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] ) + [57] call print_char [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + to:print_byte::@return +print_byte::@return: scope:[print_byte] from print_byte::@1 + [58] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + to:@return +print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@2 + [59] (byte*) print_char_cursor#42 ← phi( print_byte/(byte*) print_char_cursor#66 print_byte::@1/(byte*) print_char_cursor#11 print_sbyte::@2/(byte*) print_char_cursor#2 ) [ print_char::ch#3 print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] ) + [59] (byte) print_char::ch#3 ← phi( print_byte/(byte) print_char::ch#1 print_byte::@1/(byte) print_char::ch#2 print_sbyte::@2/(byte) '-' ) [ print_char::ch#3 print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char::ch#3 print_char_cursor#42 ] ) + [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) + [61] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + to:print_char::@return +print_char::@return: scope:[print_char] from print_char + [62] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + to:@return +perspective: scope:[perspective] from do_perspective::@7 + [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + to:perspective::@return +perspective::@return: scope:[perspective] from perspective + [67] return [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + to:@return +print_sbyte: scope:[print_sbyte] from do_perspective::@1 do_perspective::@3 do_perspective::@5 + [68] (signed byte) print_sbyte::b#4 ← phi( do_perspective::@1/(const signed byte) do_perspective::x#0 do_perspective::@3/(const signed byte) do_perspective::y#0 do_perspective::@5/(const signed byte) do_perspective::z#0 ) [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + [69] if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + to:print_sbyte::@2 +print_sbyte::@2: scope:[print_sbyte] from print_sbyte + [70] phi() [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) + [71] call print_char [ print_char_cursor#11 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#4 ] ) + to:print_sbyte::@4 +print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@2 + [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) + to:print_sbyte::@1 +print_sbyte::@1: scope:[print_sbyte] from print_sbyte print_sbyte::@4 + [73] (byte*) print_char_cursor#64 ← phi( print_sbyte/(byte*) print_char_cursor#2 print_sbyte::@4/(byte*) print_char_cursor#11 ) [ print_char_cursor#64 print_sbyte::b#5 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#64 print_sbyte::b#5 ] ) + [73] (signed byte) print_sbyte::b#5 ← phi( print_sbyte/(signed byte) print_sbyte::b#4 print_sbyte::@4/(signed byte) print_sbyte::b#0 ) [ print_char_cursor#64 print_sbyte::b#5 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#64 print_sbyte::b#5 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#64 print_sbyte::b#5 ] ) + [74] (byte~) print_byte::b#7 ← (byte)(signed byte) print_sbyte::b#5 [ print_byte::b#7 print_char_cursor#64 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:19 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:23 [ print_byte::b#7 print_char_cursor#64 ] ) + [75] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + to:print_sbyte::@return +print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 + [76] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + to:@return +print_cls: scope:[print_cls] from main::@1 + [77] phi() [ ] ( main:2::print_cls:8 [ ] ) + to:print_cls::@1 +print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 + [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) + [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) + [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) + [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) + to:print_cls::@return +print_cls::@return: scope:[print_cls] from print_cls::@1 + [82] return [ ] ( main:2::print_cls:8 [ ] ) + to:@return +mulf_init: scope:[mulf_init] from main + [83] phi() [ ] ( main:2::mulf_init:5 [ ] ) + to:mulf_init::@1 +mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 + [84] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [84] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [84] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) + [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) + [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) + [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) + [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) + [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) + [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) + [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) + [100] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + [101] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) + to:mulf_init::@return +mulf_init::@return: scope:[mulf_init] from mulf_init::@1 + [102] return [ ] ( main:2::mulf_init:5 [ ] ) + to:@return + + +VARIABLE REGISTER WEIGHTS +(signed byte*) PERSP_Z +(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z) +(signed byte) do_perspective::x +(signed byte) do_perspective::y +(signed byte) do_perspective::z +(void()) main() +(void()) mulf_init() +(byte/signed word/word/dword/signed dword~) mulf_init::$10 22.0 +(byte~) mulf_init::$2 22.0 +(byte~) mulf_init::$4 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$8 22.0 +(signed word) mulf_init::add +(signed word) mulf_init::add#1 7.333333333333333 +(signed word) mulf_init::add#2 2.1999999999999997 +(byte) mulf_init::i +(byte) mulf_init::i#1 16.5 +(byte) mulf_init::i#2 6.875 +(signed word) mulf_init::sqr +(signed word) mulf_init::sqr#1 5.5 +(signed word) mulf_init::sqr#2 2.357142857142857 +(byte) mulf_init::val +(byte) mulf_init::val#0 8.25 +(byte[512]) mulf_sqr1 +(byte[512]) mulf_sqr2 +(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) +(signed byte) perspective::x +(signed byte) perspective::y +(signed byte) perspective::z +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 4.0 +(byte~) print_byte::$2 4.0 +(byte) print_byte::b +(byte) print_byte::b#3 2.5 +(byte~) print_byte::b#5 4.0 +(byte~) print_byte::b#6 4.0 +(byte~) print_byte::b#7 4.0 +(void()) print_char((byte) print_char::ch) +(byte) print_char::ch +(byte) print_char::ch#1 4.0 +(byte) print_char::ch#2 4.0 +(byte) print_char::ch#3 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 11.0 +(byte*) print_char_cursor#11 0.7619047619047619 +(byte*) print_char_cursor#2 2.16 +(byte*) print_char_cursor#42 5.0 +(byte*) print_char_cursor#64 3.0 +(byte*) print_char_cursor#66 2.6666666666666665 +(byte*) print_char_cursor#71 12.0 +(void()) print_cls() +(byte*) print_cls::sc +(byte*) print_cls::sc#1 16.5 +(byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab +(byte*) print_line_cursor +(byte*) print_line_cursor#1 16.5 +(byte*) print_line_cursor#11 22.0 +(void()) print_ln() +(void()) print_sbyte((signed byte) print_sbyte::b) +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 4.0 +(signed byte) print_sbyte::b#4 1.5 +(signed byte) print_sbyte::b#5 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(byte*) print_str::str +(byte*) print_str::str#0 22.0 +(byte*) print_str::str#7 11.5 +(byte*) print_str::str#9 2.0 +(word*) psp1 +(word*) psp2 +(signed byte*) xr +(signed byte*) yr +(signed byte*) zr + +Initial phi equivalence classes +[ print_line_cursor#11 print_line_cursor#1 ] +[ print_str::str#7 print_str::str#9 print_str::str#0 ] +[ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +[ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +[ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] +[ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +[ print_cls::sc#2 print_cls::sc#1 ] +[ mulf_init::sqr#2 mulf_init::sqr#1 ] +[ mulf_init::i#2 mulf_init::i#1 ] +[ mulf_init::add#2 mulf_init::add#1 ] +Added variable print_byte::$0 to zero page equivalence class [ print_byte::$0 ] +Added variable print_byte::$2 to zero page equivalence class [ print_byte::$2 ] +Added variable mulf_init::val#0 to zero page equivalence class [ mulf_init::val#0 ] +Added variable mulf_init::$2 to zero page equivalence class [ mulf_init::$2 ] +Added variable mulf_init::$4 to zero page equivalence class [ mulf_init::$4 ] +Added variable mulf_init::$8 to zero page equivalence class [ mulf_init::$8 ] +Added variable mulf_init::$10 to zero page equivalence class [ mulf_init::$10 ] +Complete equivalence classes +[ print_line_cursor#11 print_line_cursor#1 ] +[ print_str::str#7 print_str::str#9 print_str::str#0 ] +[ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +[ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +[ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] +[ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +[ print_cls::sc#2 print_cls::sc#1 ] +[ mulf_init::sqr#2 mulf_init::sqr#1 ] +[ mulf_init::i#2 mulf_init::i#1 ] +[ mulf_init::add#2 mulf_init::add#1 ] +[ print_byte::$0 ] +[ print_byte::$2 ] +[ mulf_init::val#0 ] +[ mulf_init::$2 ] +[ mulf_init::$4 ] +[ mulf_init::$8 ] +[ mulf_init::$10 ] +Allocated zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] +Allocated zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] +Allocated zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +Allocated zp ZP_BYTE:7 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +Allocated zp ZP_WORD:8 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] +Allocated zp ZP_BYTE:10 [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +Allocated zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] +Allocated zp ZP_WORD:13 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +Allocated zp ZP_BYTE:15 [ mulf_init::i#2 mulf_init::i#1 ] +Allocated zp ZP_WORD:16 [ mulf_init::add#2 mulf_init::add#1 ] +Allocated zp ZP_BYTE:18 [ print_byte::$0 ] +Allocated zp ZP_BYTE:19 [ print_byte::$2 ] +Allocated zp ZP_BYTE:20 [ mulf_init::val#0 ] +Allocated zp ZP_BYTE:21 [ mulf_init::$2 ] +Allocated zp ZP_BYTE:22 [ mulf_init::$4 ] +Allocated zp ZP_BYTE:23 [ mulf_init::$8 ] +Allocated zp ZP_BYTE:24 [ mulf_init::$10 ] + +INITIAL ASM +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label xr = $f0 + .label yr = $f1 + .label zr = $f2 + .label psp1 = $f3 + .label psp2 = $f5 + .label PERSP_Z = $2400 + .label print_char_cursor = 8 + .label print_line_cursor = 2 +//SEG2 @begin +bbegin: + jmp b21 +//SEG3 @21 +b21: +//SEG4 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG5 [2] call main [ ] ( ) + jsr main +//SEG6 [3] phi from @21 to @end [phi:@21->@end] +bend_from_b21: + jmp bend +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 asm { sei } + sei + //SEG10 [5] call mulf_init [ ] ( main:2 [ ] ) + //SEG11 [83] phi from main to mulf_init [phi:main->mulf_init] + mulf_init_from_main: + jsr mulf_init + jmp b1 + //SEG12 main::@1 + b1: + //SEG13 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG14 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG15 [8] call print_cls [ ] ( main:2 [ ] ) + //SEG16 [77] phi from main::@1 to print_cls [phi:main::@1->print_cls] + print_cls_from_b1: + jsr print_cls + //SEG17 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + b2_from_b1: + jmp b2 + //SEG18 main::@2 + b2: + //SEG19 [10] call do_perspective [ ] ( main:2 [ ] ) + //SEG20 [12] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] + do_perspective_from_b2: + jsr do_perspective + jmp breturn + //SEG21 main::@return + breturn: + //SEG22 [11] return [ ] ( main:2 [ ] ) + rts +} +//SEG23 do_perspective +do_perspective: { + .label y = -$47 + .label x = $39 + .label z = $36 + //SEG24 [13] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG25 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] + print_str_from_do_perspective: + //SEG26 [44] phi (byte*) print_char_cursor#71 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_char_cursor + lda #>$400 + sta print_char_cursor+1 + //SEG27 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1 + lda #str + sta print_str.str+1 + jsr print_str + //SEG28 [14] phi from do_perspective to do_perspective::@1 [phi:do_perspective->do_perspective::@1] + b1_from_do_perspective: + jmp b1 + //SEG29 do_perspective::@1 + b1: + //SEG30 [15] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG31 [68] phi from do_perspective::@1 to print_sbyte [phi:do_perspective::@1->print_sbyte] + print_sbyte_from_b1: + //SEG32 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::x#0 [phi:do_perspective::@1->print_sbyte#0] -- vbsz1=vbsc1 + lda #x + sta print_sbyte.b + jsr print_sbyte + //SEG33 [16] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2] + b2_from_b1: + jmp b2 + //SEG34 do_perspective::@2 + b2: + //SEG35 [17] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG36 [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str] + print_str_from_b2: + //SEG37 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy + //SEG38 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1 + lda #str1 + sta print_str.str+1 + jsr print_str + //SEG39 [18] phi from do_perspective::@2 to do_perspective::@3 [phi:do_perspective::@2->do_perspective::@3] + b3_from_b2: + jmp b3 + //SEG40 do_perspective::@3 + b3: + //SEG41 [19] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG42 [68] phi from do_perspective::@3 to print_sbyte [phi:do_perspective::@3->print_sbyte] + print_sbyte_from_b3: + //SEG43 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::y#0 [phi:do_perspective::@3->print_sbyte#0] -- vbsz1=vbsc1 + lda #y + sta print_sbyte.b + jsr print_sbyte + //SEG44 [20] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4] + b4_from_b3: + jmp b4 + //SEG45 do_perspective::@4 + b4: + //SEG46 [21] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG47 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str] + print_str_from_b4: + //SEG48 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy + //SEG49 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1 + lda #str2 + sta print_str.str+1 + jsr print_str + //SEG50 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5] + b5_from_b4: + jmp b5 + //SEG51 do_perspective::@5 + b5: + //SEG52 [23] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG53 [68] phi from do_perspective::@5 to print_sbyte [phi:do_perspective::@5->print_sbyte] + print_sbyte_from_b5: + //SEG54 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::z#0 [phi:do_perspective::@5->print_sbyte#0] -- vbsz1=vbsc1 + lda #z + sta print_sbyte.b + jsr print_sbyte + //SEG55 [24] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6] + b6_from_b5: + jmp b6 + //SEG56 do_perspective::@6 + b6: + //SEG57 [25] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG58 [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str] + print_str_from_b6: + //SEG59 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy + //SEG60 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1 + lda #str3 + sta print_str.str+1 + jsr print_str + //SEG61 [26] phi from do_perspective::@6 to do_perspective::@7 [phi:do_perspective::@6->do_perspective::@7] + b7_from_b6: + jmp b7 + //SEG62 do_perspective::@7 + b7: + //SEG63 [27] call perspective [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + jsr perspective + jmp b8 + //SEG64 do_perspective::@8 + b8: + //SEG65 [28] (byte~) print_byte::b#6 ← (byte)*((const signed byte*) xr#0) [ print_byte::b#6 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#6 print_char_cursor#2 ] ) -- vbuz1=_deref_pbuc1 + lda xr + sta print_byte.b + //SEG66 [29] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG67 [51] phi from do_perspective::@8 to print_byte [phi:do_perspective::@8->print_byte] + print_byte_from_b8: + //SEG68 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@8->print_byte#0] -- register_copy + //SEG69 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#6 [phi:do_perspective::@8->print_byte#1] -- register_copy + jsr print_byte + //SEG70 [30] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9] + b9_from_b8: + jmp b9 + //SEG71 do_perspective::@9 + b9: + //SEG72 [31] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG73 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str] + print_str_from_b9: + //SEG74 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy + //SEG75 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1 + lda #str4 + sta print_str.str+1 + jsr print_str + jmp b10 + //SEG76 do_perspective::@10 + b10: + //SEG77 [32] (byte~) print_byte::b#5 ← (byte)*((const signed byte*) yr#0) [ print_byte::b#5 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#5 print_char_cursor#2 ] ) -- vbuz1=_deref_pbuc1 + lda yr + sta print_byte.b + //SEG78 [33] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG79 [51] phi from do_perspective::@10 to print_byte [phi:do_perspective::@10->print_byte] + print_byte_from_b10: + //SEG80 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@10->print_byte#0] -- register_copy + //SEG81 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#5 [phi:do_perspective::@10->print_byte#1] -- register_copy + jsr print_byte + //SEG82 [34] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11] + b11_from_b10: + jmp b11 + //SEG83 do_perspective::@11 + b11: + //SEG84 [35] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG85 [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str] + print_str_from_b11: + //SEG86 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy + //SEG87 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1 + lda #str5 + sta print_str.str+1 + jsr print_str + //SEG88 [36] phi from do_perspective::@11 to do_perspective::@12 [phi:do_perspective::@11->do_perspective::@12] + b12_from_b11: + jmp b12 + //SEG89 do_perspective::@12 + b12: + //SEG90 [37] call print_ln [ ] ( main:2::do_perspective:10 [ ] ) + //SEG91 [39] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] + print_ln_from_b12: + jsr print_ln + jmp breturn + //SEG92 do_perspective::@return + breturn: + //SEG93 [38] return [ ] ( main:2::do_perspective:10 [ ] ) + rts + str: .text "(@" + str1: .text ",@" + str2: .text ",@" + str3: .text ") -> (@" + str4: .text ",@" + str5: .text ")@" +} +//SEG94 print_ln +print_ln: { + //SEG95 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] + b1_from_print_ln: + //SEG96 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_line_cursor + lda #>$400 + sta print_line_cursor+1 + jmp b1 + //SEG97 [40] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] + b1_from_b1: + //SEG98 [40] phi (byte*) print_line_cursor#11 = (byte*) print_line_cursor#1 [phi:print_ln::@1->print_ln::@1#0] -- register_copy + jmp b1 + //SEG99 print_ln::@1 + b1: + //SEG100 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda print_line_cursor + clc + adc #$28 + sta print_line_cursor + bcc !+ + inc print_line_cursor+1 + !: + //SEG101 [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1_lt_pbuz2_then_la1 + lda print_line_cursor+1 + cmp print_char_cursor+1 + bcc b1_from_b1 + bne !+ + lda print_line_cursor + cmp print_char_cursor + bcc b1_from_b1 + !: + jmp breturn + //SEG102 print_ln::@return + breturn: + //SEG103 [43] return [ ] ( main:2::do_perspective:10::print_ln:37 [ ] ) + rts +} +//SEG104 print_str +print_str: { + .label str = 4 + //SEG105 [45] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1] + b1_from_print_str: + b1_from_b2: + //SEG106 [45] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#71 [phi:print_str/print_str::@2->print_str::@1#0] -- register_copy + //SEG107 [45] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy + jmp b1 + //SEG108 print_str::@1 + b1: + //SEG109 [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + ldy #0 + lda (str),y + cmp #'@' + bne b2 + jmp breturn + //SEG110 print_str::@return + breturn: + //SEG111 [47] return [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 ] ) + rts + //SEG112 print_str::@2 + b2: + //SEG113 [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1=_deref_pbuz2 + ldy #0 + lda (str),y + ldy #0 + sta (print_char_cursor),y + //SEG114 [49] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#7 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#7 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + //SEG115 [50] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc str + bne !+ + inc str+1 + !: + jmp b1_from_b2 +} +//SEG116 print_byte +print_byte: { + .label _0 = $12 + .label _2 = $13 + .label b = 6 + //SEG117 [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) -- vbuz1=vbuz2_ror_4 + lda b + lsr + lsr + lsr + lsr + sta _0 + //SEG118 [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy _0 + lda print_hextab,y + sta print_char.ch + //SEG119 [54] call print_char [ print_char_cursor#11 print_byte::b#3 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] ) + //SEG120 [59] phi from print_byte to print_char [phi:print_byte->print_char] + print_char_from_print_byte: + //SEG121 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#66 [phi:print_byte->print_char#0] -- register_copy + //SEG122 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#1 [phi:print_byte->print_char#1] -- register_copy + jsr print_char + jmp b1 + //SEG123 print_byte::@1 + b1: + //SEG124 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and b + sta _2 + //SEG125 [56] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy _2 + lda print_hextab,y + sta print_char.ch + //SEG126 [57] call print_char [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + //SEG127 [59] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] + print_char_from_b1: + //SEG128 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#11 [phi:print_byte::@1->print_char#0] -- register_copy + //SEG129 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#2 [phi:print_byte::@1->print_char#1] -- register_copy + jsr print_char + jmp breturn + //SEG130 print_byte::@return + breturn: + //SEG131 [58] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + rts +} +//SEG132 print_char +print_char: { + .label ch = 7 + //SEG133 [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) -- _deref_pbuz1=vbuz2 + lda ch + ldy #0 + sta (print_char_cursor),y + //SEG134 [61] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + jmp breturn + //SEG135 print_char::@return + breturn: + //SEG136 [62] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + rts +} +//SEG137 perspective +perspective: { + //SEG138 [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.x + sta xr + //SEG139 [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.y + sta yr + //SEG140 [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.z + sta zr + //SEG141 asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + lda zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + clc + ldy yr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta yr + clc + ldy xr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta xr + jmp breturn + //SEG142 perspective::@return + breturn: + //SEG143 [67] return [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + rts +} +//SEG144 print_sbyte +print_sbyte: { + .label b = $a + //SEG145 [69] if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) -- vbsz1_ge_0_then_la1 + lda b + cmp #0 + bpl b1_from_print_sbyte + //SEG146 [70] phi from print_sbyte to print_sbyte::@2 [phi:print_sbyte->print_sbyte::@2] + b2_from_print_sbyte: + jmp b2 + //SEG147 print_sbyte::@2 + b2: + //SEG148 [71] call print_char [ print_char_cursor#11 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#4 ] ) + //SEG149 [59] phi from print_sbyte::@2 to print_char [phi:print_sbyte::@2->print_char] + print_char_from_b2: + //SEG150 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#2 [phi:print_sbyte::@2->print_char#0] -- register_copy + //SEG151 [59] phi (byte) print_char::ch#3 = (byte) '-' [phi:print_sbyte::@2->print_char#1] -- vbuz1=vbuc1 + lda #'-' + sta print_char.ch + jsr print_char + jmp b4 + //SEG152 print_sbyte::@4 + b4: + //SEG153 [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) -- vbsz1=_neg_vbsz1 + lda b + eor #$ff + clc + adc #1 + sta b + //SEG154 [73] phi from print_sbyte print_sbyte::@4 to print_sbyte::@1 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1] + b1_from_print_sbyte: + b1_from_b4: + //SEG155 [73] phi (byte*) print_char_cursor#64 = (byte*) print_char_cursor#2 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#0] -- register_copy + //SEG156 [73] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#4 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#1] -- register_copy + jmp b1 + //SEG157 print_sbyte::@1 + b1: + //SEG158 [74] (byte~) print_byte::b#7 ← (byte)(signed byte) print_sbyte::b#5 [ print_byte::b#7 print_char_cursor#64 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:19 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:23 [ print_byte::b#7 print_char_cursor#64 ] ) -- vbuz1=vbuz2 + lda b + sta print_byte.b + //SEG159 [75] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + //SEG160 [51] phi from print_sbyte::@1 to print_byte [phi:print_sbyte::@1->print_byte] + print_byte_from_b1: + //SEG161 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#64 [phi:print_sbyte::@1->print_byte#0] -- register_copy + //SEG162 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#7 [phi:print_sbyte::@1->print_byte#1] -- register_copy + jsr print_byte + jmp breturn + //SEG163 print_sbyte::@return + breturn: + //SEG164 [76] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + rts +} +//SEG165 print_cls +print_cls: { + .label sc = $b + //SEG166 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + b1_from_print_cls: + //SEG167 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + jmp b1 + //SEG168 [78] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + b1_from_b1: + //SEG169 [78] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + jmp b1 + //SEG170 print_cls::@1 + b1: + //SEG171 [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG172 [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG173 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bne b1_from_b1 + lda sc + cmp #<$400+$3e8 + bne b1_from_b1 + jmp breturn + //SEG174 print_cls::@return + breturn: + //SEG175 [82] return [ ] ( main:2::print_cls:8 [ ] ) + rts +} +//SEG176 mulf_init +mulf_init: { + .label _2 = $15 + .label _4 = $16 + .label _8 = $17 + .label _10 = $18 + .label val = $14 + .label sqr = $d + .label add = $10 + .label i = $f + //SEG177 [84] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + b1_from_mulf_init: + //SEG178 [84] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + lda #<1 + sta add + lda #>1 + sta add+1 + //SEG179 [84] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuz1=vbuc1 + lda #0 + sta i + //SEG180 [84] phi (signed word) mulf_init::sqr#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + lda #<0 + sta sqr + lda #>0 + sta sqr+1 + jmp b1 + //SEG181 [84] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + b1_from_b1: + //SEG182 [84] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG183 [84] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG184 [84] phi (signed word) mulf_init::sqr#2 = (signed word) mulf_init::sqr#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + jmp b1 + //SEG185 mulf_init::@1 + b1: + //SEG186 [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + lda sqr+1 + sta val + //SEG187 [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy i + sta mulf_sqr1,y + //SEG188 [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy i + sta mulf_sqr1+$100,y + //SEG189 [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuz1=_neg_vbuz2 + lda i + eor #$ff + clc + adc #1 + sta _2 + //SEG190 [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy _2 + sta mulf_sqr1,y + //SEG191 [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuz1=_neg_vbuz2 + lda i + eor #$ff + clc + adc #1 + sta _4 + //SEG192 [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy _4 + sta mulf_sqr1+$100,y + //SEG193 [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy i + sta mulf_sqr2+1,y + //SEG194 [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy i + sta mulf_sqr2+$100+1,y + //SEG195 [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuz1=vbuc1_minus_vbuz2 + lda #1 + sec + sbc i + sta _8 + //SEG196 [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy _8 + sta mulf_sqr2,y + //SEG197 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuz1=vbuc1_minus_vbuz2 + lda #1 + sec + sbc i + sta _10 + //SEG198 [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda val + ldy _10 + sta mulf_sqr2+$100,y + //SEG199 [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + lda sqr + clc + adc add + sta sqr + lda sqr+1 + adc add+1 + sta sqr+1 + //SEG200 [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + lda add + clc + adc #2 + sta add + bcc !+ + inc add+1 + !: + //SEG201 [100] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG202 [101] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #$81 + bne b1_from_b1 + jmp breturn + //SEG203 mulf_init::@return + breturn: + //SEG204 [102] return [ ] ( main:2::mulf_init:5 [ ] ) + rts +} + print_hextab: .text "0123456789abcdef" + .align $100 + mulf_sqr1: .fill $200, 0 + .align $100 + mulf_sqr2: .fill $200, 0 +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + + +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y +Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y +Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a +Statement [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +Statement [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } always clobbers reg byte a reg byte y +Statement [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) always clobbers reg byte a +Statement [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ mulf_init::i#2 mulf_init::i#1 ] +Statement [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ mulf_init::val#0 ] +Statement [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a +Statement [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a +Statement [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a +Statement [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a +Statement [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a +Statement [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y +Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y +Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) always clobbers reg byte a +Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a +Statement [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) always clobbers reg byte y +Statement [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a +Statement asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } always clobbers reg byte a reg byte y +Statement [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) always clobbers reg byte a +Statement [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a +Statement [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a +Statement [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a +Statement [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a +Statement [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a +Statement [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a +Potential registers zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] : zp ZP_WORD:2 , +Potential registers zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] : zp ZP_WORD:4 , +Potential registers zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] : zp ZP_BYTE:6 , reg byte x , +Potential registers zp ZP_BYTE:7 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] : zp ZP_BYTE:7 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:8 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] : zp ZP_WORD:8 , +Potential registers zp ZP_BYTE:10 [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , +Potential registers zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:11 , +Potential registers zp ZP_WORD:13 [ mulf_init::sqr#2 mulf_init::sqr#1 ] : zp ZP_WORD:13 , +Potential registers zp ZP_BYTE:15 [ mulf_init::i#2 mulf_init::i#1 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:16 [ mulf_init::add#2 mulf_init::add#1 ] : zp ZP_WORD:16 , +Potential registers zp ZP_BYTE:18 [ print_byte::$0 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:19 [ print_byte::$2 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:20 [ mulf_init::val#0 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:21 [ mulf_init::$2 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:22 [ mulf_init::$4 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ mulf_init::$8 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ mulf_init::$10 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y , + +REGISTER UPLIFT SCOPES +Uplift Scope [mulf_init] 23.38: zp ZP_BYTE:15 [ mulf_init::i#2 mulf_init::i#1 ] 22: zp ZP_BYTE:21 [ mulf_init::$2 ] 22: zp ZP_BYTE:22 [ mulf_init::$4 ] 22: zp ZP_BYTE:23 [ mulf_init::$8 ] 22: zp ZP_BYTE:24 [ mulf_init::$10 ] 9.53: zp ZP_WORD:16 [ mulf_init::add#2 mulf_init::add#1 ] 8.25: zp ZP_BYTE:20 [ mulf_init::val#0 ] 7.86: zp ZP_WORD:13 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +Uplift Scope [] 38.5: zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] 36.59: zp ZP_WORD:8 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] +Uplift Scope [print_str] 35.5: zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] +Uplift Scope [print_cls] 33: zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] +Uplift Scope [print_byte] 14.5: zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] 4: zp ZP_BYTE:18 [ print_byte::$0 ] 4: zp ZP_BYTE:19 [ print_byte::$2 ] +Uplift Scope [print_char] 14: zp ZP_BYTE:7 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +Uplift Scope [print_sbyte] 9.5: zp ZP_BYTE:10 [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +Uplift Scope [print_ln] +Uplift Scope [main] +Uplift Scope [do_perspective] +Uplift Scope [perspective] + +Uplifting [mulf_init] best 4483 combination reg byte x [ mulf_init::i#2 mulf_init::i#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$8 ] zp ZP_BYTE:24 [ mulf_init::$10 ] zp ZP_WORD:16 [ mulf_init::add#2 mulf_init::add#1 ] zp ZP_BYTE:20 [ mulf_init::val#0 ] zp ZP_WORD:13 [ mulf_init::sqr#2 mulf_init::sqr#1 ] +Limited combination testing to 100 combinations of 2304 possible. +Uplifting [] best 4483 combination zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] zp ZP_WORD:8 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] +Uplifting [print_str] best 4483 combination zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] +Uplifting [print_cls] best 4483 combination zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [print_byte] best 4464 combination reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] +Uplifting [print_char] best 4452 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +Uplifting [print_sbyte] best 4435 combination reg byte x [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +Uplifting [print_ln] best 4435 combination +Uplifting [main] best 4435 combination +Uplifting [do_perspective] best 4435 combination +Uplifting [perspective] best 4435 combination +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ mulf_init::$10 ] +Uplifting [mulf_init] best 4395 combination reg byte a [ mulf_init::$10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:20 [ mulf_init::val#0 ] +Uplifting [mulf_init] best 4395 combination zp ZP_BYTE:20 [ mulf_init::val#0 ] +Coalescing zero page register [ zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] ] with [ zp ZP_WORD:4 [ print_str::str#7 print_str::str#9 print_str::str#0 ] ] +Coalescing zero page register [ zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 ] ] with [ zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] ] +Coalescing zero page register [ zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:13 [ mulf_init::sqr#2 mulf_init::sqr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:8 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 ] ] with [ zp ZP_WORD:16 [ mulf_init::add#2 mulf_init::add#1 ] ] +Allocated (was zp ZP_WORD:8) zp ZP_WORD:4 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 mulf_init::add#2 mulf_init::add#1 ] +Allocated (was zp ZP_BYTE:20) zp ZP_BYTE:6 [ mulf_init::val#0 ] + +ASSEMBLER BEFORE OPTIMIZATION +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label xr = $f0 + .label yr = $f1 + .label zr = $f2 + .label psp1 = $f3 + .label psp2 = $f5 + .label PERSP_Z = $2400 + .label print_char_cursor = 4 + .label print_line_cursor = 2 +//SEG2 @begin +bbegin: + jmp b21 +//SEG3 @21 +b21: +//SEG4 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG5 [2] call main [ ] ( ) + jsr main +//SEG6 [3] phi from @21 to @end [phi:@21->@end] +bend_from_b21: + jmp bend +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 asm { sei } + sei + //SEG10 [5] call mulf_init [ ] ( main:2 [ ] ) + //SEG11 [83] phi from main to mulf_init [phi:main->mulf_init] + mulf_init_from_main: + jsr mulf_init + jmp b1 + //SEG12 main::@1 + b1: + //SEG13 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG14 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG15 [8] call print_cls [ ] ( main:2 [ ] ) + //SEG16 [77] phi from main::@1 to print_cls [phi:main::@1->print_cls] + print_cls_from_b1: + jsr print_cls + //SEG17 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + b2_from_b1: + jmp b2 + //SEG18 main::@2 + b2: + //SEG19 [10] call do_perspective [ ] ( main:2 [ ] ) + //SEG20 [12] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] + do_perspective_from_b2: + jsr do_perspective + jmp breturn + //SEG21 main::@return + breturn: + //SEG22 [11] return [ ] ( main:2 [ ] ) + rts +} +//SEG23 do_perspective +do_perspective: { + .label y = -$47 + .label x = $39 + .label z = $36 + //SEG24 [13] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG25 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] + print_str_from_do_perspective: + //SEG26 [44] phi (byte*) print_char_cursor#71 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_char_cursor + lda #>$400 + sta print_char_cursor+1 + //SEG27 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1 + lda #str + sta print_str.str+1 + jsr print_str + //SEG28 [14] phi from do_perspective to do_perspective::@1 [phi:do_perspective->do_perspective::@1] + b1_from_do_perspective: + jmp b1 + //SEG29 do_perspective::@1 + b1: + //SEG30 [15] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG31 [68] phi from do_perspective::@1 to print_sbyte [phi:do_perspective::@1->print_sbyte] + print_sbyte_from_b1: + //SEG32 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::x#0 [phi:do_perspective::@1->print_sbyte#0] -- vbsxx=vbsc1 + ldx #x + jsr print_sbyte + //SEG33 [16] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2] + b2_from_b1: + jmp b2 + //SEG34 do_perspective::@2 + b2: + //SEG35 [17] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG36 [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str] + print_str_from_b2: + //SEG37 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy + //SEG38 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1 + lda #str1 + sta print_str.str+1 + jsr print_str + //SEG39 [18] phi from do_perspective::@2 to do_perspective::@3 [phi:do_perspective::@2->do_perspective::@3] + b3_from_b2: + jmp b3 + //SEG40 do_perspective::@3 + b3: + //SEG41 [19] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG42 [68] phi from do_perspective::@3 to print_sbyte [phi:do_perspective::@3->print_sbyte] + print_sbyte_from_b3: + //SEG43 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::y#0 [phi:do_perspective::@3->print_sbyte#0] -- vbsxx=vbsc1 + ldx #y + jsr print_sbyte + //SEG44 [20] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4] + b4_from_b3: + jmp b4 + //SEG45 do_perspective::@4 + b4: + //SEG46 [21] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG47 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str] + print_str_from_b4: + //SEG48 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy + //SEG49 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1 + lda #str2 + sta print_str.str+1 + jsr print_str + //SEG50 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5] + b5_from_b4: + jmp b5 + //SEG51 do_perspective::@5 + b5: + //SEG52 [23] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG53 [68] phi from do_perspective::@5 to print_sbyte [phi:do_perspective::@5->print_sbyte] + print_sbyte_from_b5: + //SEG54 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::z#0 [phi:do_perspective::@5->print_sbyte#0] -- vbsxx=vbsc1 + ldx #z + jsr print_sbyte + //SEG55 [24] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6] + b6_from_b5: + jmp b6 + //SEG56 do_perspective::@6 + b6: + //SEG57 [25] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG58 [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str] + print_str_from_b6: + //SEG59 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy + //SEG60 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1 + lda #str3 + sta print_str.str+1 + jsr print_str + //SEG61 [26] phi from do_perspective::@6 to do_perspective::@7 [phi:do_perspective::@6->do_perspective::@7] + b7_from_b6: + jmp b7 + //SEG62 do_perspective::@7 + b7: + //SEG63 [27] call perspective [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + jsr perspective + jmp b8 + //SEG64 do_perspective::@8 + b8: + //SEG65 [28] (byte~) print_byte::b#6 ← (byte)*((const signed byte*) xr#0) [ print_byte::b#6 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#6 print_char_cursor#2 ] ) -- vbuxx=_deref_pbuc1 + ldx xr + //SEG66 [29] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG67 [51] phi from do_perspective::@8 to print_byte [phi:do_perspective::@8->print_byte] + print_byte_from_b8: + //SEG68 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@8->print_byte#0] -- register_copy + //SEG69 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#6 [phi:do_perspective::@8->print_byte#1] -- register_copy + jsr print_byte + //SEG70 [30] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9] + b9_from_b8: + jmp b9 + //SEG71 do_perspective::@9 + b9: + //SEG72 [31] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG73 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str] + print_str_from_b9: + //SEG74 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy + //SEG75 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1 + lda #str4 + sta print_str.str+1 + jsr print_str + jmp b10 + //SEG76 do_perspective::@10 + b10: + //SEG77 [32] (byte~) print_byte::b#5 ← (byte)*((const signed byte*) yr#0) [ print_byte::b#5 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#5 print_char_cursor#2 ] ) -- vbuxx=_deref_pbuc1 + ldx yr + //SEG78 [33] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG79 [51] phi from do_perspective::@10 to print_byte [phi:do_perspective::@10->print_byte] + print_byte_from_b10: + //SEG80 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@10->print_byte#0] -- register_copy + //SEG81 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#5 [phi:do_perspective::@10->print_byte#1] -- register_copy + jsr print_byte + //SEG82 [34] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11] + b11_from_b10: + jmp b11 + //SEG83 do_perspective::@11 + b11: + //SEG84 [35] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG85 [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str] + print_str_from_b11: + //SEG86 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy + //SEG87 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1 + lda #str5 + sta print_str.str+1 + jsr print_str + //SEG88 [36] phi from do_perspective::@11 to do_perspective::@12 [phi:do_perspective::@11->do_perspective::@12] + b12_from_b11: + jmp b12 + //SEG89 do_perspective::@12 + b12: + //SEG90 [37] call print_ln [ ] ( main:2::do_perspective:10 [ ] ) + //SEG91 [39] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] + print_ln_from_b12: + jsr print_ln + jmp breturn + //SEG92 do_perspective::@return + breturn: + //SEG93 [38] return [ ] ( main:2::do_perspective:10 [ ] ) + rts + str: .text "(@" + str1: .text ",@" + str2: .text ",@" + str3: .text ") -> (@" + str4: .text ",@" + str5: .text ")@" +} +//SEG94 print_ln +print_ln: { + //SEG95 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] + b1_from_print_ln: + //SEG96 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_line_cursor + lda #>$400 + sta print_line_cursor+1 + jmp b1 + //SEG97 [40] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] + b1_from_b1: + //SEG98 [40] phi (byte*) print_line_cursor#11 = (byte*) print_line_cursor#1 [phi:print_ln::@1->print_ln::@1#0] -- register_copy + jmp b1 + //SEG99 print_ln::@1 + b1: + //SEG100 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda print_line_cursor + clc + adc #$28 + sta print_line_cursor + bcc !+ + inc print_line_cursor+1 + !: + //SEG101 [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1_lt_pbuz2_then_la1 + lda print_line_cursor+1 + cmp print_char_cursor+1 + bcc b1_from_b1 + bne !+ + lda print_line_cursor + cmp print_char_cursor + bcc b1_from_b1 + !: + jmp breturn + //SEG102 print_ln::@return + breturn: + //SEG103 [43] return [ ] ( main:2::do_perspective:10::print_ln:37 [ ] ) + rts +} +//SEG104 print_str +print_str: { + .label str = 2 + //SEG105 [45] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1] + b1_from_print_str: + b1_from_b2: + //SEG106 [45] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#71 [phi:print_str/print_str::@2->print_str::@1#0] -- register_copy + //SEG107 [45] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy + jmp b1 + //SEG108 print_str::@1 + b1: + //SEG109 [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + ldy #0 + lda (str),y + cmp #'@' + bne b2 + jmp breturn + //SEG110 print_str::@return + breturn: + //SEG111 [47] return [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 ] ) + rts + //SEG112 print_str::@2 + b2: + //SEG113 [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1=_deref_pbuz2 + ldy #0 + lda (str),y + ldy #0 + sta (print_char_cursor),y + //SEG114 [49] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#7 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#7 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + //SEG115 [50] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc str + bne !+ + inc str+1 + !: + jmp b1_from_b2 +} +//SEG116 print_byte +print_byte: { + //SEG117 [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) -- vbuaa=vbuxx_ror_4 + txa + lsr + lsr + lsr + lsr + //SEG118 [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda print_hextab,y + //SEG119 [54] call print_char [ print_char_cursor#11 print_byte::b#3 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] ) + //SEG120 [59] phi from print_byte to print_char [phi:print_byte->print_char] + print_char_from_print_byte: + //SEG121 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#66 [phi:print_byte->print_char#0] -- register_copy + //SEG122 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#1 [phi:print_byte->print_char#1] -- register_copy + jsr print_char + jmp b1 + //SEG123 print_byte::@1 + b1: + //SEG124 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 + txa + and #$f + //SEG125 [56] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda print_hextab,y + //SEG126 [57] call print_char [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + //SEG127 [59] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] + print_char_from_b1: + //SEG128 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#11 [phi:print_byte::@1->print_char#0] -- register_copy + //SEG129 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#2 [phi:print_byte::@1->print_char#1] -- register_copy + jsr print_char + jmp breturn + //SEG130 print_byte::@return + breturn: + //SEG131 [58] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + rts +} +//SEG132 print_char +print_char: { + //SEG133 [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) -- _deref_pbuz1=vbuaa + ldy #0 + sta (print_char_cursor),y + //SEG134 [61] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + jmp breturn + //SEG135 print_char::@return + breturn: + //SEG136 [62] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + rts +} +//SEG137 perspective +perspective: { + //SEG138 [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.x + sta xr + //SEG139 [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.y + sta yr + //SEG140 [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.z + sta zr + //SEG141 asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + lda zr + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + clc + ldy yr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta yr + clc + ldy xr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta xr + jmp breturn + //SEG142 perspective::@return + breturn: + //SEG143 [67] return [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + rts +} +//SEG144 print_sbyte +print_sbyte: { + //SEG145 [69] if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) -- vbsxx_ge_0_then_la1 + cpx #0 + bpl b1_from_print_sbyte + //SEG146 [70] phi from print_sbyte to print_sbyte::@2 [phi:print_sbyte->print_sbyte::@2] + b2_from_print_sbyte: + jmp b2 + //SEG147 print_sbyte::@2 + b2: + //SEG148 [71] call print_char [ print_char_cursor#11 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#4 ] ) + //SEG149 [59] phi from print_sbyte::@2 to print_char [phi:print_sbyte::@2->print_char] + print_char_from_b2: + //SEG150 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#2 [phi:print_sbyte::@2->print_char#0] -- register_copy + //SEG151 [59] phi (byte) print_char::ch#3 = (byte) '-' [phi:print_sbyte::@2->print_char#1] -- vbuaa=vbuc1 + lda #'-' + jsr print_char + jmp b4 + //SEG152 print_sbyte::@4 + b4: + //SEG153 [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) -- vbsxx=_neg_vbsxx + txa + eor #$ff + clc + adc #1 + tax + //SEG154 [73] phi from print_sbyte print_sbyte::@4 to print_sbyte::@1 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1] + b1_from_print_sbyte: + b1_from_b4: + //SEG155 [73] phi (byte*) print_char_cursor#64 = (byte*) print_char_cursor#2 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#0] -- register_copy + //SEG156 [73] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#4 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#1] -- register_copy + jmp b1 + //SEG157 print_sbyte::@1 + b1: + //SEG158 [74] (byte~) print_byte::b#7 ← (byte)(signed byte) print_sbyte::b#5 [ print_byte::b#7 print_char_cursor#64 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:19 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:23 [ print_byte::b#7 print_char_cursor#64 ] ) + // (byte~) print_byte::b#7 = (byte)(signed byte) print_sbyte::b#5 // register copy reg byte x + //SEG159 [75] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + //SEG160 [51] phi from print_sbyte::@1 to print_byte [phi:print_sbyte::@1->print_byte] + print_byte_from_b1: + //SEG161 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#64 [phi:print_sbyte::@1->print_byte#0] -- register_copy + //SEG162 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#7 [phi:print_sbyte::@1->print_byte#1] -- register_copy + jsr print_byte + jmp breturn + //SEG163 print_sbyte::@return + breturn: + //SEG164 [76] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + rts +} +//SEG165 print_cls +print_cls: { + .label sc = 2 + //SEG166 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + b1_from_print_cls: + //SEG167 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + jmp b1 + //SEG168 [78] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + b1_from_b1: + //SEG169 [78] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + jmp b1 + //SEG170 print_cls::@1 + b1: + //SEG171 [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG172 [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG173 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bne b1_from_b1 + lda sc + cmp #<$400+$3e8 + bne b1_from_b1 + jmp breturn + //SEG174 print_cls::@return + breturn: + //SEG175 [82] return [ ] ( main:2::print_cls:8 [ ] ) + rts +} +//SEG176 mulf_init +mulf_init: { + .label val = 6 + .label sqr = 2 + .label add = 4 + //SEG177 [84] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + b1_from_mulf_init: + //SEG178 [84] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + lda #<1 + sta add + lda #>1 + sta add+1 + //SEG179 [84] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 + ldx #0 + //SEG180 [84] phi (signed word) mulf_init::sqr#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + lda #<0 + sta sqr + lda #>0 + sta sqr+1 + jmp b1 + //SEG181 [84] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + b1_from_b1: + //SEG182 [84] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG183 [84] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG184 [84] phi (signed word) mulf_init::sqr#2 = (signed word) mulf_init::sqr#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + jmp b1 + //SEG185 mulf_init::@1 + b1: + //SEG186 [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + lda sqr+1 + sta val + //SEG187 [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + lda val + sta mulf_sqr1,x + //SEG188 [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + lda val + sta mulf_sqr1+$100,x + //SEG189 [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + //SEG190 [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr1,y + //SEG191 [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + //SEG192 [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr1+$100,y + //SEG193 [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + lda val + sta mulf_sqr2+1,x + //SEG194 [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + lda val + sta mulf_sqr2+$100+1,x + //SEG195 [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + //SEG196 [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr2,y + //SEG197 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + //SEG198 [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr2+$100,y + //SEG199 [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + lda sqr + clc + adc add + sta sqr + lda sqr+1 + adc add+1 + sta sqr+1 + //SEG200 [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + lda add + clc + adc #2 + sta add + bcc !+ + inc add+1 + !: + //SEG201 [100] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG202 [101] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$81 + bne b1_from_b1 + jmp breturn + //SEG203 mulf_init::@return + breturn: + //SEG204 [102] return [ ] ( main:2::mulf_init:5 [ ] ) + rts +} + print_hextab: .text "0123456789abcdef" + .align $100 + mulf_sqr1: .fill $200, 0 + .align $100 + mulf_sqr2: .fill $200, 0 +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp b21 +Removing instruction jmp bend +Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp b3 +Removing instruction jmp b4 +Removing instruction jmp b5 +Removing instruction jmp b6 +Removing instruction jmp b7 +Removing instruction jmp b8 +Removing instruction jmp b9 +Removing instruction jmp b10 +Removing instruction jmp b11 +Removing instruction jmp b12 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn +Removing instruction jmp breturn +Removing instruction jmp breturn +Removing instruction jmp b2 +Removing instruction jmp b4 +Removing instruction jmp b1 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn +Succesful ASM optimization Pass5NextJumpElimination +Removing instruction ldy #0 +Removing instruction lda zr +Replacing instruction ldx #0 with TAX +Removing instruction lda #<0 +Removing instruction lda #>0 +Removing instruction lda val +Removing instruction lda val +Removing instruction lda val +Removing instruction lda val +Succesful ASM optimization Pass5UnnecesaryLoadElimination +Replacing label b1_from_b1 with b1 +Replacing label b1_from_b1 with b1 +Replacing label b1_from_b2 with b1 +Replacing label b1_from_print_sbyte with b1 +Replacing label b1_from_b1 with b1 +Replacing label b1_from_b1 with b1 +Replacing label b1_from_b1 with b1 +Removing instruction bbegin: +Removing instruction bend_from_b21: +Removing instruction b2_from_b1: +Removing instruction do_perspective_from_b2: +Removing instruction b1_from_do_perspective: +Removing instruction print_sbyte_from_b1: +Removing instruction b2_from_b1: +Removing instruction print_str_from_b2: +Removing instruction b3_from_b2: +Removing instruction print_sbyte_from_b3: +Removing instruction b4_from_b3: +Removing instruction print_str_from_b4: +Removing instruction b5_from_b4: +Removing instruction print_sbyte_from_b5: +Removing instruction b6_from_b5: +Removing instruction print_str_from_b6: +Removing instruction b7_from_b6: +Removing instruction b9_from_b8: +Removing instruction print_str_from_b9: +Removing instruction b11_from_b10: +Removing instruction print_str_from_b11: +Removing instruction b12_from_b11: +Removing instruction print_ln_from_b12: +Removing instruction b1_from_b1: +Removing instruction b1_from_print_str: +Removing instruction b1_from_b2: +Removing instruction b2_from_print_sbyte: +Removing instruction print_char_from_b2: +Removing instruction b1_from_print_sbyte: +Removing instruction b1_from_b4: +Removing instruction b1_from_b1: +Removing instruction b1_from_b1: +Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction b21: +Removing instruction bend: +Removing instruction mulf_init_from_main: +Removing instruction b1: +Removing instruction print_cls_from_b1: +Removing instruction b2: +Removing instruction breturn: +Removing instruction print_str_from_do_perspective: +Removing instruction b1: +Removing instruction b2: +Removing instruction b3: +Removing instruction b4: +Removing instruction b5: +Removing instruction b6: +Removing instruction b7: +Removing instruction b8: +Removing instruction print_byte_from_b8: +Removing instruction b9: +Removing instruction b10: +Removing instruction print_byte_from_b10: +Removing instruction b11: +Removing instruction b12: +Removing instruction breturn: +Removing instruction b1_from_print_ln: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction print_char_from_print_byte: +Removing instruction b1: +Removing instruction print_char_from_b1: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction breturn: +Removing instruction b2: +Removing instruction b4: +Removing instruction print_byte_from_b1: +Removing instruction breturn: +Removing instruction b1_from_print_cls: +Removing instruction breturn: +Removing instruction b1_from_mulf_init: +Removing instruction breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +Removing instruction jmp b1 +Removing instruction jmp b1 +Removing instruction jmp b1 +Succesful ASM optimization Pass5NextJumpElimination + +FINAL SYMBOL TABLE +(label) @21 +(label) @begin +(label) @end +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 +(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z) +(label) do_perspective::@1 +(label) do_perspective::@10 +(label) do_perspective::@11 +(label) do_perspective::@12 +(label) do_perspective::@2 +(label) do_perspective::@3 +(label) do_perspective::@4 +(label) do_perspective::@5 +(label) do_perspective::@6 +(label) do_perspective::@7 +(label) do_perspective::@8 +(label) do_perspective::@9 +(label) do_perspective::@return +(const string) do_perspective::str str = (string) "(@" +(const string) do_perspective::str1 str1 = (string) ",@" +(const string) do_perspective::str2 str2 = (string) ",@" +(const string) do_perspective::str3 str3 = (string) ") -> (@" +(const string) do_perspective::str4 str4 = (string) ",@" +(const string) do_perspective::str5 str5 = (string) ")@" +(signed byte) do_perspective::x +(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57 +(signed byte) do_perspective::y +(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) 71 +(signed byte) do_perspective::z +(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) 54 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(void()) mulf_init() +(byte/signed word/word/dword/signed dword~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$2 reg byte a 22.0 +(byte~) mulf_init::$4 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$8 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@return +(signed word) mulf_init::add +(signed word) mulf_init::add#1 add zp ZP_WORD:4 7.333333333333333 +(signed word) mulf_init::add#2 add zp ZP_WORD:4 2.1999999999999997 +(byte) mulf_init::i +(byte) mulf_init::i#1 reg byte x 16.5 +(byte) mulf_init::i#2 reg byte x 6.875 +(signed word) mulf_init::sqr +(signed word) mulf_init::sqr#1 sqr zp ZP_WORD:2 5.5 +(signed word) mulf_init::sqr#2 sqr zp ZP_WORD:2 2.357142857142857 +(byte) mulf_init::val +(byte) mulf_init::val#0 val zp ZP_BYTE:6 8.25 +(byte[512]) mulf_sqr1 +(const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } +(byte[512]) mulf_sqr2 +(const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) +(label) perspective::@return +(signed byte) perspective::x +(signed byte) perspective::y +(signed byte) perspective::z +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#3 reg byte x 2.5 +(byte~) print_byte::b#5 reg byte x 4.0 +(byte~) print_byte::b#6 reg byte x 4.0 +(byte~) print_byte::b#7 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:4 11.0 +(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:4 0.7619047619047619 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:4 2.16 +(byte*) print_char_cursor#42 print_char_cursor zp ZP_WORD:4 5.0 +(byte*) print_char_cursor#64 print_char_cursor zp ZP_WORD:4 3.0 +(byte*) print_char_cursor#66 print_char_cursor zp ZP_WORD:4 2.6666666666666665 +(byte*) print_char_cursor#71 print_char_cursor zp ZP_WORD:4 12.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 16.5 +(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:2 22.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 reg byte x 4.0 +(signed byte) print_sbyte::b#4 reg byte x 1.5 +(signed byte) print_sbyte::b#5 reg byte x 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:2 22.0 +(byte*) print_str::str#7 str zp ZP_WORD:2 11.5 +(byte*) print_str::str#9 str zp ZP_WORD:2 2.0 +(word*) psp1 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 243 +(word*) psp2 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(signed byte*) xr +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(signed byte*) yr +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(signed byte*) zr +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 + +zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 print_cls::sc#2 print_cls::sc#1 mulf_init::sqr#2 mulf_init::sqr#1 ] +reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +zp ZP_WORD:4 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 mulf_init::add#2 mulf_init::add#1 ] +reg byte x [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +reg byte x [ mulf_init::i#2 mulf_init::i#1 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +zp ZP_BYTE:6 [ mulf_init::val#0 ] +reg byte a [ mulf_init::$2 ] +reg byte a [ mulf_init::$4 ] +reg byte a [ mulf_init::$8 ] +reg byte a [ mulf_init::$10 ] + + +FINAL ASSEMBLER +Score: 3776 + +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .label xr = $f0 + .label yr = $f1 + .label zr = $f2 + .label psp1 = $f3 + .label psp2 = $f5 + .label PERSP_Z = $2400 + .label print_char_cursor = 4 + .label print_line_cursor = 2 +//SEG2 @begin +//SEG3 @21 +//SEG4 kickasm(location (const signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { .if(z>127) { .byte round(d / (z0 - ((z - 256) / 64.0))); } else { .byte round(d / (z0 - (z / 64.0))); } } } }} +//SEG5 [2] call main [ ] ( ) + jsr main +//SEG6 [3] phi from @21 to @end [phi:@21->@end] +//SEG7 @end +//SEG8 main +main: { + //SEG9 asm { sei } + sei + //SEG10 [5] call mulf_init [ ] ( main:2 [ ] ) + //SEG11 [83] phi from main to mulf_init [phi:main->mulf_init] + jsr mulf_init + //SEG12 main::@1 + //SEG13 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr1 + sta psp1+1 + //SEG14 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) -- _deref_pwuc1=vwuc2 + lda #mulf_sqr2 + sta psp2+1 + //SEG15 [8] call print_cls [ ] ( main:2 [ ] ) + //SEG16 [77] phi from main::@1 to print_cls [phi:main::@1->print_cls] + jsr print_cls + //SEG17 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + //SEG18 main::@2 + //SEG19 [10] call do_perspective [ ] ( main:2 [ ] ) + //SEG20 [12] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] + jsr do_perspective + //SEG21 main::@return + //SEG22 [11] return [ ] ( main:2 [ ] ) + rts +} +//SEG23 do_perspective +do_perspective: { + .label y = -$47 + .label x = $39 + .label z = $36 + //SEG24 [13] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG25 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] + //SEG26 [44] phi (byte*) print_char_cursor#71 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_char_cursor + lda #>$400 + sta print_char_cursor+1 + //SEG27 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1 + lda #str + sta print_str.str+1 + jsr print_str + //SEG28 [14] phi from do_perspective to do_perspective::@1 [phi:do_perspective->do_perspective::@1] + //SEG29 do_perspective::@1 + //SEG30 [15] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG31 [68] phi from do_perspective::@1 to print_sbyte [phi:do_perspective::@1->print_sbyte] + //SEG32 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::x#0 [phi:do_perspective::@1->print_sbyte#0] -- vbsxx=vbsc1 + ldx #x + jsr print_sbyte + //SEG33 [16] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2] + //SEG34 do_perspective::@2 + //SEG35 [17] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG36 [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str] + //SEG37 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy + //SEG38 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1 + lda #str1 + sta print_str.str+1 + jsr print_str + //SEG39 [18] phi from do_perspective::@2 to do_perspective::@3 [phi:do_perspective::@2->do_perspective::@3] + //SEG40 do_perspective::@3 + //SEG41 [19] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG42 [68] phi from do_perspective::@3 to print_sbyte [phi:do_perspective::@3->print_sbyte] + //SEG43 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::y#0 [phi:do_perspective::@3->print_sbyte#0] -- vbsxx=vbsc1 + ldx #y + jsr print_sbyte + //SEG44 [20] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4] + //SEG45 do_perspective::@4 + //SEG46 [21] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG47 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str] + //SEG48 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy + //SEG49 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1 + lda #str2 + sta print_str.str+1 + jsr print_str + //SEG50 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5] + //SEG51 do_perspective::@5 + //SEG52 [23] call print_sbyte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG53 [68] phi from do_perspective::@5 to print_sbyte [phi:do_perspective::@5->print_sbyte] + //SEG54 [68] phi (signed byte) print_sbyte::b#4 = (const signed byte) do_perspective::z#0 [phi:do_perspective::@5->print_sbyte#0] -- vbsxx=vbsc1 + ldx #z + jsr print_sbyte + //SEG55 [24] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6] + //SEG56 do_perspective::@6 + //SEG57 [25] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG58 [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str] + //SEG59 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy + //SEG60 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1 + lda #str3 + sta print_str.str+1 + jsr print_str + //SEG61 [26] phi from do_perspective::@6 to do_perspective::@7 [phi:do_perspective::@6->do_perspective::@7] + //SEG62 do_perspective::@7 + //SEG63 [27] call perspective [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + jsr perspective + //SEG64 do_perspective::@8 + //SEG65 [28] (byte~) print_byte::b#6 ← (byte)*((const signed byte*) xr#0) [ print_byte::b#6 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#6 print_char_cursor#2 ] ) -- vbuxx=_deref_pbuc1 + ldx xr + //SEG66 [29] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG67 [51] phi from do_perspective::@8 to print_byte [phi:do_perspective::@8->print_byte] + //SEG68 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@8->print_byte#0] -- register_copy + //SEG69 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#6 [phi:do_perspective::@8->print_byte#1] -- register_copy + jsr print_byte + //SEG70 [30] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9] + //SEG71 do_perspective::@9 + //SEG72 [31] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG73 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str] + //SEG74 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy + //SEG75 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1 + lda #str4 + sta print_str.str+1 + jsr print_str + //SEG76 do_perspective::@10 + //SEG77 [32] (byte~) print_byte::b#5 ← (byte)*((const signed byte*) yr#0) [ print_byte::b#5 print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_byte::b#5 print_char_cursor#2 ] ) -- vbuxx=_deref_pbuc1 + ldx yr + //SEG78 [33] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10 [ print_char_cursor#11 ] ) + //SEG79 [51] phi from do_perspective::@10 to print_byte [phi:do_perspective::@10->print_byte] + //SEG80 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:do_perspective::@10->print_byte#0] -- register_copy + //SEG81 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#5 [phi:do_perspective::@10->print_byte#1] -- register_copy + jsr print_byte + //SEG82 [34] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11] + //SEG83 do_perspective::@11 + //SEG84 [35] call print_str [ print_char_cursor#2 ] ( main:2::do_perspective:10 [ print_char_cursor#2 ] ) + //SEG85 [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str] + //SEG86 [44] phi (byte*) print_char_cursor#71 = (byte*) print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy + //SEG87 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1 + lda #str5 + sta print_str.str+1 + jsr print_str + //SEG88 [36] phi from do_perspective::@11 to do_perspective::@12 [phi:do_perspective::@11->do_perspective::@12] + //SEG89 do_perspective::@12 + //SEG90 [37] call print_ln [ ] ( main:2::do_perspective:10 [ ] ) + //SEG91 [39] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] + jsr print_ln + //SEG92 do_perspective::@return + //SEG93 [38] return [ ] ( main:2::do_perspective:10 [ ] ) + rts + str: .text "(@" + str1: .text ",@" + str2: .text ",@" + str3: .text ") -> (@" + str4: .text ",@" + str5: .text ")@" +} +//SEG94 print_ln +print_ln: { + //SEG95 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] + //SEG96 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta print_line_cursor + lda #>$400 + sta print_line_cursor+1 + //SEG97 [40] phi from print_ln::@1 to print_ln::@1 [phi:print_ln::@1->print_ln::@1] + //SEG98 [40] phi (byte*) print_line_cursor#11 = (byte*) print_line_cursor#1 [phi:print_ln::@1->print_ln::@1#0] -- register_copy + //SEG99 print_ln::@1 + b1: + //SEG100 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda print_line_cursor + clc + adc #$28 + sta print_line_cursor + bcc !+ + inc print_line_cursor+1 + !: + //SEG101 [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) -- pbuz1_lt_pbuz2_then_la1 + lda print_line_cursor+1 + cmp print_char_cursor+1 + bcc b1 + bne !+ + lda print_line_cursor + cmp print_char_cursor + bcc b1 + !: + //SEG102 print_ln::@return + //SEG103 [43] return [ ] ( main:2::do_perspective:10::print_ln:37 [ ] ) + rts +} +//SEG104 print_str +print_str: { + .label str = 2 + //SEG105 [45] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1] + //SEG106 [45] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#71 [phi:print_str/print_str::@2->print_str::@1#0] -- register_copy + //SEG107 [45] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy + //SEG108 print_str::@1 + b1: + //SEG109 [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + ldy #0 + lda (str),y + cmp #'@' + bne b2 + //SEG110 print_str::@return + //SEG111 [47] return [ print_char_cursor#2 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 ] ) + rts + //SEG112 print_str::@2 + b2: + //SEG113 [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) -- _deref_pbuz1=_deref_pbuz2 + ldy #0 + lda (str),y + sta (print_char_cursor),y + //SEG114 [49] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#7 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#7 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#7 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + //SEG115 [50] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 print_char_cursor#1 ] ( main:2::do_perspective:10::print_str:13 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:17 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:21 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:25 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:31 [ print_str::str#0 print_char_cursor#1 ] main:2::do_perspective:10::print_str:35 [ print_str::str#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + inc str + bne !+ + inc str+1 + !: + jmp b1 +} +//SEG116 print_byte +print_byte: { + //SEG117 [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_byte::$0 ] ) -- vbuaa=vbuxx_ror_4 + txa + lsr + lsr + lsr + lsr + //SEG118 [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_byte::b#3 print_char_cursor#66 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda print_hextab,y + //SEG119 [54] call print_char [ print_char_cursor#11 print_byte::b#3 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::b#3 ] ) + //SEG120 [59] phi from print_byte to print_char [phi:print_byte->print_char] + //SEG121 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#66 [phi:print_byte->print_char#0] -- register_copy + //SEG122 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#1 [phi:print_byte->print_char#1] -- register_copy + jsr print_char + //SEG123 print_byte::@1 + //SEG124 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 + txa + and #$f + //SEG125 [56] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + tay + lda print_hextab,y + //SEG126 [57] call print_char [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + //SEG127 [59] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] + //SEG128 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#11 [phi:print_byte::@1->print_char#0] -- register_copy + //SEG129 [59] phi (byte) print_char::ch#3 = (byte) print_char::ch#2 [phi:print_byte::@1->print_char#1] -- register_copy + jsr print_char + //SEG130 print_byte::@return + //SEG131 [58] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75 [ print_char_cursor#11 ] ) + rts +} +//SEG132 print_char +print_char: { + //SEG133 [60] *((byte*) print_char_cursor#42) ← (byte) print_char::ch#3 [ print_char_cursor#42 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#42 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#42 ] ) -- _deref_pbuz1=vbuaa + ldy #0 + sta (print_char_cursor),y + //SEG134 [61] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#42 [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) -- pbuz1=_inc_pbuz1 + inc print_char_cursor + bne !+ + inc print_char_cursor+1 + !: + //SEG135 print_char::@return + //SEG136 [62] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:54 [ print_byte::b#3 print_char_cursor#11 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_byte:75::print_char:57 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#11 ] ) + rts +} +//SEG137 perspective +perspective: { + //SEG138 [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.x + sta xr + //SEG139 [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.y + sta yr + //SEG140 [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspective::z#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) -- _deref_pbsc1=vbsc2 + lda #do_perspective.z + sta zr + //SEG141 asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } + sta PP+1 + PP: + lda PERSP_Z + sta psp1 + eor #$ff + sta psp2 + clc + ldy yr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta yr + clc + ldy xr + lda (psp1),y + sbc (psp2),y + adc #$80 + sta xr + //SEG142 perspective::@return + //SEG143 [67] return [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) + rts +} +//SEG144 print_sbyte +print_sbyte: { + //SEG145 [69] if((signed byte) print_sbyte::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#2 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#2 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#2 print_sbyte::b#4 ] ) -- vbsxx_ge_0_then_la1 + cpx #0 + bpl b1 + //SEG146 [70] phi from print_sbyte to print_sbyte::@2 [phi:print_sbyte->print_sbyte::@2] + //SEG147 print_sbyte::@2 + //SEG148 [71] call print_char [ print_char_cursor#11 print_sbyte::b#4 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#4 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#4 ] ) + //SEG149 [59] phi from print_sbyte::@2 to print_char [phi:print_sbyte::@2->print_char] + //SEG150 [59] phi (byte*) print_char_cursor#42 = (byte*) print_char_cursor#2 [phi:print_sbyte::@2->print_char#0] -- register_copy + //SEG151 [59] phi (byte) print_char::ch#3 = (byte) '-' [phi:print_sbyte::@2->print_char#1] -- vbuaa=vbuc1 + lda #'-' + jsr print_char + //SEG152 print_sbyte::@4 + //SEG153 [72] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#11 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 print_sbyte::b#0 ] ) -- vbsxx=_neg_vbsxx + txa + eor #$ff + clc + adc #1 + tax + //SEG154 [73] phi from print_sbyte print_sbyte::@4 to print_sbyte::@1 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1] + //SEG155 [73] phi (byte*) print_char_cursor#64 = (byte*) print_char_cursor#2 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#0] -- register_copy + //SEG156 [73] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#4 [phi:print_sbyte/print_sbyte::@4->print_sbyte::@1#1] -- register_copy + //SEG157 print_sbyte::@1 + b1: + //SEG158 [74] (byte~) print_byte::b#7 ← (byte)(signed byte) print_sbyte::b#5 [ print_byte::b#7 print_char_cursor#64 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:19 [ print_byte::b#7 print_char_cursor#64 ] main:2::do_perspective:10::print_sbyte:23 [ print_byte::b#7 print_char_cursor#64 ] ) + // (byte~) print_byte::b#7 = (byte)(signed byte) print_sbyte::b#5 // register copy reg byte x + //SEG159 [75] call print_byte [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + //SEG160 [51] phi from print_sbyte::@1 to print_byte [phi:print_sbyte::@1->print_byte] + //SEG161 [51] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#64 [phi:print_sbyte::@1->print_byte#0] -- register_copy + //SEG162 [51] phi (byte) print_byte::b#3 = (byte~) print_byte::b#7 [phi:print_sbyte::@1->print_byte#1] -- register_copy + jsr print_byte + //SEG163 print_sbyte::@return + //SEG164 [76] return [ print_char_cursor#11 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#11 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#11 ] ) + rts +} +//SEG165 print_cls +print_cls: { + .label sc = 2 + //SEG166 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + //SEG167 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + lda #<$400 + sta sc + lda #>$400 + sta sc+1 + //SEG168 [78] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG169 [78] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG170 print_cls::@1 + b1: + //SEG171 [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + lda #' ' + ldy #0 + sta (sc),y + //SEG172 [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + inc sc + bne !+ + inc sc+1 + !: + //SEG173 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + lda sc+1 + cmp #>$400+$3e8 + bne b1 + lda sc + cmp #<$400+$3e8 + bne b1 + //SEG174 print_cls::@return + //SEG175 [82] return [ ] ( main:2::print_cls:8 [ ] ) + rts +} +//SEG176 mulf_init +mulf_init: { + .label val = 6 + .label sqr = 2 + .label add = 4 + //SEG177 [84] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + //SEG178 [84] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + lda #<1 + sta add + lda #>1 + sta add+1 + //SEG179 [84] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 + tax + //SEG180 [84] phi (signed word) mulf_init::sqr#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + sta sqr + sta sqr+1 + //SEG181 [84] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + //SEG182 [84] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG183 [84] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG184 [84] phi (signed word) mulf_init::sqr#2 = (signed word) mulf_init::sqr#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + //SEG185 mulf_init::@1 + b1: + //SEG186 [85] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- vbuz1=_hi_vwsz2 + lda sqr+1 + sta val + //SEG187 [86] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + sta mulf_sqr1,x + //SEG188 [87] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + sta mulf_sqr1+$100,x + //SEG189 [88] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) -- vbuaa=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + //SEG190 [89] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr1,y + //SEG191 [90] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) -- vbuaa=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + //SEG192 [91] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr1+$100,y + //SEG193 [92] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + sta mulf_sqr2+1,x + //SEG194 [93] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuxx=vbuz1 + sta mulf_sqr2+$100+1,x + //SEG195 [94] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) -- vbuaa=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + //SEG196 [95] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr2,y + //SEG197 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) -- vbuaa=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + //SEG198 [97] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuaa=vbuz1 + tay + lda val + sta mulf_sqr2+$100,y + //SEG199 [98] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + lda sqr + clc + adc add + sta sqr + lda sqr+1 + adc add+1 + sta sqr+1 + //SEG200 [99] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + lda add + clc + adc #2 + sta add + bcc !+ + inc add+1 + !: + //SEG201 [100] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG202 [101] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$81 + bne b1 + //SEG203 mulf_init::@return + //SEG204 [102] return [ ] ( main:2::mulf_init:5 [ ] ) + rts +} + print_hextab: .text "0123456789abcdef" + .align $100 + mulf_sqr1: .fill $200, 0 + .align $100 + mulf_sqr2: .fill $200, 0 +.pc = PERSP_Z "Inline" + { + .var d = 256.0 + .var z0 = 5.0 + .for(var z=0;z<$100;z++) { + .if(z>127) { + .byte round(d / (z0 - ((z - 256) / 64.0))); + } else { + .byte round(d / (z0 - (z / 64.0))); + } + } + } + + diff --git a/src/test/ref/examples/3d/perspective.sym b/src/test/ref/examples/3d/perspective.sym new file mode 100644 index 000000000..65db251b5 --- /dev/null +++ b/src/test/ref/examples/3d/perspective.sym @@ -0,0 +1,142 @@ +(label) @21 +(label) @begin +(label) @end +(signed byte*) PERSP_Z +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 +(void()) do_perspective((signed byte) do_perspective::x , (signed byte) do_perspective::y , (signed byte) do_perspective::z) +(label) do_perspective::@1 +(label) do_perspective::@10 +(label) do_perspective::@11 +(label) do_perspective::@12 +(label) do_perspective::@2 +(label) do_perspective::@3 +(label) do_perspective::@4 +(label) do_perspective::@5 +(label) do_perspective::@6 +(label) do_perspective::@7 +(label) do_perspective::@8 +(label) do_perspective::@9 +(label) do_perspective::@return +(const string) do_perspective::str str = (string) "(@" +(const string) do_perspective::str1 str1 = (string) ",@" +(const string) do_perspective::str2 str2 = (string) ",@" +(const string) do_perspective::str3 str3 = (string) ") -> (@" +(const string) do_perspective::str4 str4 = (string) ",@" +(const string) do_perspective::str5 str5 = (string) ")@" +(signed byte) do_perspective::x +(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57 +(signed byte) do_perspective::y +(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) 71 +(signed byte) do_perspective::z +(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) 54 +(void()) main() +(label) main::@1 +(label) main::@2 +(label) main::@return +(void()) mulf_init() +(byte/signed word/word/dword/signed dword~) mulf_init::$10 reg byte a 22.0 +(byte~) mulf_init::$2 reg byte a 22.0 +(byte~) mulf_init::$4 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$8 reg byte a 22.0 +(label) mulf_init::@1 +(label) mulf_init::@return +(signed word) mulf_init::add +(signed word) mulf_init::add#1 add zp ZP_WORD:4 7.333333333333333 +(signed word) mulf_init::add#2 add zp ZP_WORD:4 2.1999999999999997 +(byte) mulf_init::i +(byte) mulf_init::i#1 reg byte x 16.5 +(byte) mulf_init::i#2 reg byte x 6.875 +(signed word) mulf_init::sqr +(signed word) mulf_init::sqr#1 sqr zp ZP_WORD:2 5.5 +(signed word) mulf_init::sqr#2 sqr zp ZP_WORD:2 2.357142857142857 +(byte) mulf_init::val +(byte) mulf_init::val#0 val zp ZP_BYTE:6 8.25 +(byte[512]) mulf_sqr1 +(const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } +(byte[512]) mulf_sqr2 +(const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) +(label) perspective::@return +(signed byte) perspective::x +(signed byte) perspective::y +(signed byte) perspective::z +(void()) print_byte((byte) print_byte::b) +(byte~) print_byte::$0 reg byte a 4.0 +(byte~) print_byte::$2 reg byte a 4.0 +(label) print_byte::@1 +(label) print_byte::@return +(byte) print_byte::b +(byte) print_byte::b#3 reg byte x 2.5 +(byte~) print_byte::b#5 reg byte x 4.0 +(byte~) print_byte::b#6 reg byte x 4.0 +(byte~) print_byte::b#7 reg byte x 4.0 +(void()) print_char((byte) print_char::ch) +(label) print_char::@return +(byte) print_char::ch +(byte) print_char::ch#1 reg byte a 4.0 +(byte) print_char::ch#2 reg byte a 4.0 +(byte) print_char::ch#3 reg byte a 6.0 +(byte*) print_char_cursor +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:4 11.0 +(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:4 0.7619047619047619 +(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:4 2.16 +(byte*) print_char_cursor#42 print_char_cursor zp ZP_WORD:4 5.0 +(byte*) print_char_cursor#64 print_char_cursor zp ZP_WORD:4 3.0 +(byte*) print_char_cursor#66 print_char_cursor zp ZP_WORD:4 2.6666666666666665 +(byte*) print_char_cursor#71 print_char_cursor zp ZP_WORD:4 12.0 +(void()) print_cls() +(label) print_cls::@1 +(label) print_cls::@return +(byte*) print_cls::sc +(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" +(byte*) print_line_cursor +(byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:2 16.5 +(byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:2 22.0 +(void()) print_ln() +(label) print_ln::@1 +(label) print_ln::@return +(void()) print_sbyte((signed byte) print_sbyte::b) +(label) print_sbyte::@1 +(label) print_sbyte::@2 +(label) print_sbyte::@4 +(label) print_sbyte::@return +(signed byte) print_sbyte::b +(signed byte) print_sbyte::b#0 reg byte x 4.0 +(signed byte) print_sbyte::b#4 reg byte x 1.5 +(signed byte) print_sbyte::b#5 reg byte x 4.0 +(byte*) print_screen +(void()) print_str((byte*) print_str::str) +(label) print_str::@1 +(label) print_str::@2 +(label) print_str::@return +(byte*) print_str::str +(byte*) print_str::str#0 str zp ZP_WORD:2 22.0 +(byte*) print_str::str#7 str zp ZP_WORD:2 11.5 +(byte*) print_str::str#9 str zp ZP_WORD:2 2.0 +(word*) psp1 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 243 +(word*) psp2 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(signed byte*) xr +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(signed byte*) yr +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(signed byte*) zr +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 + +zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 print_cls::sc#2 print_cls::sc#1 mulf_init::sqr#2 mulf_init::sqr#1 ] +reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] +reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +zp ZP_WORD:4 [ print_char_cursor#42 print_char_cursor#66 print_char_cursor#2 print_char_cursor#71 print_char_cursor#11 print_char_cursor#1 print_char_cursor#64 mulf_init::add#2 mulf_init::add#1 ] +reg byte x [ print_sbyte::b#5 print_sbyte::b#4 print_sbyte::b#0 ] +reg byte x [ mulf_init::i#2 mulf_init::i#1 ] +reg byte a [ print_byte::$0 ] +reg byte a [ print_byte::$2 ] +zp ZP_BYTE:6 [ mulf_init::val#0 ] +reg byte a [ mulf_init::$2 ] +reg byte a [ mulf_init::$4 ] +reg byte a [ mulf_init::$8 ] +reg byte a [ mulf_init::$10 ]