mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-08 13:31:03 +00:00
Added splie test creating a (slowly) rotating truetype c.
This commit is contained in:
parent
b70b969fe6
commit
9231fe18d6
@ -0,0 +1,7 @@
|
||||
clc
|
||||
lda {z1}
|
||||
adc {c1},x
|
||||
sta {c1},x
|
||||
lda {z1}+1
|
||||
adc {c1}+1,x
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
clc
|
||||
lda {z1}
|
||||
adc {c1},y
|
||||
sta {c1},y
|
||||
lda {z1}+1
|
||||
adc {c1}+1,y
|
||||
sta {c1}+1,y
|
1
src/main/fragment/vbuaa=_hi_pwsc1_derefidx_vbuxx.asm
Normal file
1
src/main/fragment/vbuaa=_hi_pwsc1_derefidx_vbuxx.asm
Normal file
@ -0,0 +1 @@
|
||||
lda {c1}+1,x
|
1
src/main/fragment/vbuaa=_hi_pwsc1_derefidx_vbuyy.asm
Normal file
1
src/main/fragment/vbuaa=_hi_pwsc1_derefidx_vbuyy.asm
Normal file
@ -0,0 +1 @@
|
||||
lda {c1}+1,y
|
4
src/main/fragment/vwsz1=_sword_vdsz2.asm
Normal file
4
src/main/fragment/vwsz1=_sword_vdsz2.asm
Normal file
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
8
src/main/fragment/vwsz1=pwsc1_derefidx_vbuxx_rol_1.asm
Normal file
8
src/main/fragment/vwsz1=pwsc1_derefidx_vbuxx_rol_1.asm
Normal file
@ -0,0 +1,8 @@
|
||||
clc
|
||||
lda {c1},x
|
||||
asl
|
||||
sta {z1}
|
||||
lda {c1}+1,x
|
||||
rol
|
||||
sta {z1}+1
|
||||
|
8
src/main/fragment/vwsz1=pwsc1_derefidx_vbuyy_rol_1.asm
Normal file
8
src/main/fragment/vwsz1=pwsc1_derefidx_vbuyy_rol_1.asm
Normal file
@ -0,0 +1,8 @@
|
||||
clc
|
||||
lda {c1},y
|
||||
asl
|
||||
sta {z1}
|
||||
lda {c1}+1,y
|
||||
rol
|
||||
sta {z1}+1
|
||||
|
@ -75,8 +75,8 @@ public class TestPrograms {
|
||||
|
||||
|
||||
@Test
|
||||
public void testSplines() throws IOException, URISyntaxException {
|
||||
compileAndCompare("complex/splines/simple-splines");
|
||||
public void testTrueTypeSplines() throws IOException, URISyntaxException {
|
||||
compileAndCompare("complex/splines/truetype-splines");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -4,6 +4,7 @@ import "splines"
|
||||
import "bitmap2"
|
||||
import "time"
|
||||
import "print"
|
||||
import "fastmultiply"
|
||||
import "c64"
|
||||
|
||||
const char* PRINT_SCREEN = 0x0400;
|
||||
@ -17,7 +18,7 @@ struct Segment {
|
||||
};
|
||||
|
||||
// True type letter c
|
||||
struct Segment[21] letter_c;
|
||||
struct Segment[22] letter_c;
|
||||
|
||||
void main() {
|
||||
letter_c[0] = { MOVE_TO, {108,146}, {0,0} };
|
||||
@ -43,30 +44,56 @@ void main() {
|
||||
letter_c[20] = { SPLINE_TO, {104,144}, {98,160} };
|
||||
letter_c[21] = { LINE_TO, {108,146}, {0,0} };
|
||||
|
||||
mulf_init();
|
||||
bitmap_init(BITMAP_GRAPHICS, BITMAP_SCREEN);
|
||||
bitmap_clear(BLACK, WHITE);
|
||||
vicSelectGfxBank(BITMAP_SCREEN);
|
||||
*D018 = toD018(BITMAP_SCREEN, BITMAP_GRAPHICS);
|
||||
*D011 = VIC_BMM|VIC_DEN|VIC_RSEL|3;
|
||||
|
||||
char angle = 0;
|
||||
while(true) {
|
||||
bitmap_clear(BLACK, WHITE);
|
||||
show_letter(angle);
|
||||
for ( byte w: 0..60) {
|
||||
do {} while(*RASTER!=0xfe);
|
||||
do {} while(*RASTER!=0xff);
|
||||
}
|
||||
angle += 9;
|
||||
}
|
||||
|
||||
while(true) { (*(PRINT_SCREEN+999))++; }
|
||||
}
|
||||
|
||||
void show_letter(char angle) {
|
||||
struct SplineVector16 current = {0,0};
|
||||
for( byte i: 0..sizeof(letter_c)/sizeof(struct Segment)) {
|
||||
struct Segment segment = letter_c[i];
|
||||
for( byte i: 0..21) {
|
||||
struct SplineVector16 to = { letter_c[i].to.x, letter_c[i].to.y };
|
||||
to = { to.x - 50, to.y - 150};
|
||||
to = rotate(to, angle);
|
||||
to = { to.x + 100, to.y + 100};
|
||||
struct SplineVector16 via = { letter_c[i].via.x, letter_c[i].via.y };
|
||||
via = { via.x - 50, via.y - 150};
|
||||
via = rotate(via, angle);
|
||||
via = { via.x + 100, via.y + 100};
|
||||
struct Segment segment = { letter_c[i].type, to, via};
|
||||
if(segment.type==MOVE_TO) {
|
||||
//bitmap_plot((unsigned int)segment.to.x, (unsigned char)segment.to.y);
|
||||
current = segment.to;
|
||||
} else if(segment.type==SPLINE_TO) {
|
||||
spline_8segB(current, segment.via, segment.to);
|
||||
bitmap_plot_spline_8seg();
|
||||
//bitmap_plot((unsigned int)segment.to.x, (unsigned char)segment.to.y);
|
||||
//bitmap_plot((unsigned int)segment.via.x, (unsigned char)segment.via.y);
|
||||
current = segment.to;
|
||||
} else {
|
||||
bitmap_line((unsigned int)current.x, (unsigned int)current.y, (unsigned int)segment.to.x, (unsigned int)segment.to.y);
|
||||
current = segment.to;
|
||||
}
|
||||
}
|
||||
|
||||
while(true) { (*(PRINT_SCREEN+999))++; }
|
||||
}
|
||||
|
||||
|
||||
// Plot the spline in the SPLINE_8SEG array
|
||||
void bitmap_plot_spline_8seg() {
|
||||
struct SplineVector16 current = SPLINE_8SEG[0];
|
||||
@ -76,3 +103,25 @@ void bitmap_plot_spline_8seg() {
|
||||
current = SPLINE_8SEG[n];
|
||||
}
|
||||
}
|
||||
|
||||
// Sine and Cosine tables
|
||||
// Angles: $00=0, $80=PI,$100=2*PI
|
||||
// Sine/Cosine: signed fixed [-$7f,$7f]
|
||||
signed char[0x140] align(0x40) SIN = kickasm {{
|
||||
.for(var i=0;i<$140;i++)
|
||||
.byte >round($7fff*sin(i*2*PI/256))
|
||||
}};
|
||||
|
||||
signed char* COS = SIN+$40; // sin(x) = cos(x+PI/2)
|
||||
|
||||
// 2D-rotate a vector by an angle
|
||||
struct SplineVector16 rotate(struct SplineVector16 vector, char angle) {
|
||||
signed int cos_a = (signed int) COS[angle]; // signed fixed[0.7]
|
||||
signed int xr = (signed int )mulf16s(cos_a, vector.x)*2; // signed fixed[8.8]
|
||||
signed int yr = (signed int )mulf16s(cos_a, vector.y)*2; // signed fixed[8.8]
|
||||
signed int sin_a = (signed int) SIN[angle]; // signed fixed[0.7]
|
||||
xr -= (signed int)mulf16s(sin_a, vector.y)*2; // signed fixed[8.8]
|
||||
yr += (signed int)mulf16s(sin_a, vector.x)*2; // signed fixed[8.8]
|
||||
struct SplineVector16 rotated = { (signed int)(signed char)>xr, (signed int)(signed char)>yr };
|
||||
return rotated;
|
||||
}
|
@ -2,25 +2,20 @@
|
||||
|
||||
import "c64"
|
||||
import "fastmultiply"
|
||||
import "time"
|
||||
import "print"
|
||||
|
||||
byte* SCREEN = $0400;
|
||||
|
||||
// Sine and Cosine tables
|
||||
// Angles: $00=0, $80=PI,$100=2*PI
|
||||
// Sine/Cosine: signed fixed [-$7f,$7f]
|
||||
byte[0x140] align(0x40) COS = kickasm {{
|
||||
{
|
||||
.var min = -$7fff
|
||||
.var max = $7fff
|
||||
.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))
|
||||
}
|
||||
}
|
||||
byte[0x140] align(0x40) SIN = kickasm {{
|
||||
.for(var i=0;i<$140;i++)
|
||||
.byte >round($7fff*sin(i*2*PI/256))
|
||||
}};
|
||||
|
||||
byte* SIN = COS+$40; // sin(x) = cos(x+PI/2)
|
||||
byte* COS = SIN+$40; // sin(x) = cos(x+PI/2)
|
||||
|
||||
void main() {
|
||||
asm { sei }
|
||||
@ -46,11 +41,12 @@ void anim() {
|
||||
byte angle = 0;
|
||||
while(true) {
|
||||
while(*RASTER!=$ff) {}
|
||||
(*BORDERCOL)++;
|
||||
(*BORDERCOL)++;
|
||||
clock_start();
|
||||
signed byte cos_a = (signed byte) COS[angle]; // signed fixed[0.7]
|
||||
signed byte sin_a = (signed byte) SIN[angle]; // signed fixed[0.7]
|
||||
byte sprite_msb = 0;
|
||||
for(byte i: 0..7) {
|
||||
for(byte i: 0..7) {
|
||||
signed byte x = xs[i]; // signed fixed[7.0]
|
||||
signed byte y = ys[i]; // signed fixed[7.0]
|
||||
mulf8s_prepare(cos_a);
|
||||
@ -64,13 +60,17 @@ void anim() {
|
||||
if(>xpos!=0) {
|
||||
sprite_msb |= $80;
|
||||
}
|
||||
byte ypos = (>yr) + 89 /*center*/+ 51 /*border*/;
|
||||
byte ypos = (>yr) + 89 /*center*/+ 51 /*border*/;
|
||||
byte i2 = i*2;
|
||||
SPRITES_XPOS[i2] = <xpos;
|
||||
SPRITES_YPOS[i2] = ypos;
|
||||
}
|
||||
*SPRITES_XMSB = sprite_msb;
|
||||
angle++;
|
||||
// Calculate the cycle count - 0x12 is the base usage of start/read
|
||||
dword cyclecount = clock()-CLOCKS_PER_INIT;
|
||||
// Print cycle count
|
||||
print_dword_at(cyclecount, SCREEN);
|
||||
*BORDERCOL = LIGHT_BLUE;
|
||||
}
|
||||
}
|
||||
|
1757
src/test/ref/complex/splines/truetype-splines.asm
Normal file
1757
src/test/ref/complex/splines/truetype-splines.asm
Normal file
File diff suppressed because it is too large
Load Diff
688
src/test/ref/complex/splines/truetype-splines.cfg
Normal file
688
src/test/ref/complex/splines/truetype-splines.cfg
Normal file
@ -0,0 +1,688 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@1
|
||||
@1: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
[3] phi()
|
||||
main: scope:[main] from @1
|
||||
[4] *((byte*)(const struct Segment[$16]) letter_c#0) ← (const byte) MOVE_TO
|
||||
[5] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO) ← (signed byte) $6c
|
||||
[6] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y) ← (signed word) $92
|
||||
[7] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA) ← (signed byte) 0
|
||||
[8] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y) ← (signed byte) 0
|
||||
[9] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 1*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[10] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 1*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $59
|
||||
[11] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 1*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $b6
|
||||
[12] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 1*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $67
|
||||
[13] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 1*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $a9
|
||||
[14] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 2*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[15] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 2*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $3b
|
||||
[16] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 2*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $c3
|
||||
[17] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 2*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4b
|
||||
[18] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 2*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $c3
|
||||
[19] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 3*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[20] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 3*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $17
|
||||
[21] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 3*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $b2
|
||||
[22] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 3*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $26
|
||||
[23] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 3*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $c3
|
||||
[24] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 4*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[25] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 4*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) 9
|
||||
[26] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 4*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $84
|
||||
[27] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 4*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) 9
|
||||
[28] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 4*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $a1
|
||||
[29] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 5*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[30] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 5*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $19
|
||||
[31] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 5*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $57
|
||||
[32] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 5*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) 9
|
||||
[33] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 5*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $68
|
||||
[34] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 6*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[35] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 6*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $41
|
||||
[36] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 6*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $45
|
||||
[37] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 6*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $2a
|
||||
[38] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 6*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $45
|
||||
[39] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 7*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[40] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 7*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $5d
|
||||
[41] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 7*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4f
|
||||
[42] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 7*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $52
|
||||
[43] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 7*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $45
|
||||
[44] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 8*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[45] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 8*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $69
|
||||
[46] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 8*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $62
|
||||
[47] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 8*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $69
|
||||
[48] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 8*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $58
|
||||
[49] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) 9*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[50] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) 9*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $66
|
||||
[51] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 9*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $6a
|
||||
[52] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) 9*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $69
|
||||
[53] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 9*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $67
|
||||
[54] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $a*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[55] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $a*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $5d
|
||||
[56] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $a*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $6d
|
||||
[57] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $a*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $62
|
||||
[58] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $a*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $6d
|
||||
[59] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $b*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[60] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $b*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $51
|
||||
[61] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $b*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $68
|
||||
[62] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $b*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $55
|
||||
[63] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $b*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $6d
|
||||
[64] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $c*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[65] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $c*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4e
|
||||
[66] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $c*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $5d
|
||||
[67] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $c*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4f
|
||||
[68] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $c*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $65
|
||||
[69] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $d*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[70] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $d*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $49
|
||||
[71] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $d*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $52
|
||||
[72] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $d*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4e
|
||||
[73] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $d*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $56
|
||||
[74] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $e*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[75] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $e*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $3d
|
||||
[76] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $e*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4e
|
||||
[77] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $e*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $45
|
||||
[78] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $e*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4e
|
||||
[79] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $f*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[80] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $f*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $28
|
||||
[81] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $f*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $58
|
||||
[82] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $f*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $30
|
||||
[83] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $f*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $4e
|
||||
[84] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $10*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[85] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $10*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $1d
|
||||
[86] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $10*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $79
|
||||
[87] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $10*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $1d
|
||||
[88] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $10*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $64
|
||||
[89] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $11*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[90] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $11*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $28
|
||||
[91] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $11*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $9e
|
||||
[92] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $11*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $1d
|
||||
[93] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $11*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $8e
|
||||
[94] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $12*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[95] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $12*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $44
|
||||
[96] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $12*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $ae
|
||||
[97] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $12*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $32
|
||||
[98] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $12*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $ae
|
||||
[99] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $13*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[100] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $13*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $5b
|
||||
[101] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $13*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $a6
|
||||
[102] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $13*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $50
|
||||
[103] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $13*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $ae
|
||||
[104] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $14*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) SPLINE_TO
|
||||
[105] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $14*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $68
|
||||
[106] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $14*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $90
|
||||
[107] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $14*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $62
|
||||
[108] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $14*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $a0
|
||||
[109] *((byte*)(const struct Segment[$16]) letter_c#0+(byte) $15*(const byte) SIZEOF_STRUCT_SEGMENT) ← (const byte) LINE_TO
|
||||
[110] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(byte) $15*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) $6c
|
||||
[111] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $15*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed word) $92
|
||||
[112] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(byte) $15*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) 0
|
||||
[113] *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) $15*(const byte) SIZEOF_STRUCT_SEGMENT) ← (signed byte) 0
|
||||
[114] call mulf_init
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main
|
||||
[115] phi()
|
||||
[116] call bitmap_init
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[117] phi()
|
||||
[118] call bitmap_clear
|
||||
to:main::vicSelectGfxBank1
|
||||
main::vicSelectGfxBank1: scope:[main] from main::@9
|
||||
[119] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte) 3
|
||||
to:main::vicSelectGfxBank1_toDd001
|
||||
main::vicSelectGfxBank1_toDd001: scope:[main] from main::vicSelectGfxBank1
|
||||
[120] phi()
|
||||
to:main::vicSelectGfxBank1_@1
|
||||
main::vicSelectGfxBank1_@1: scope:[main] from main::vicSelectGfxBank1_toDd001
|
||||
[121] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGfxBank1_toDd001_return#0
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main::vicSelectGfxBank1_@1
|
||||
[122] phi()
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::toD0181
|
||||
[123] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
|
||||
[124] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@6 main::@7
|
||||
[125] (byte) main::angle#2 ← phi( main::@7/(byte) 0 main::@6/(byte) main::angle#1 )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[126] phi()
|
||||
[127] call bitmap_clear
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@2
|
||||
[128] (byte) show_letter::angle#0 ← (byte) main::angle#2
|
||||
[129] call show_letter
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@10 main::@3 main::@5
|
||||
[130] (byte) main::w#4 ← phi( main::@10/(byte) 0 main::@5/(byte) main::w#1 )
|
||||
[131] if(*((const byte*) RASTER#0)!=(byte) $fe) goto main::@3
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3 main::@4
|
||||
[132] if(*((const byte*) RASTER#0)!=(byte) $ff) goto main::@4
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[133] (byte) main::w#1 ← ++ (byte) main::w#4
|
||||
[134] if((byte) main::w#1!=(byte) $3d) goto main::@3
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[135] (byte) main::angle#1 ← (byte) main::angle#2 + (byte) 9
|
||||
to:main::@1
|
||||
show_letter: scope:[show_letter] from main::@10
|
||||
[136] phi()
|
||||
to:show_letter::@1
|
||||
show_letter::@1: scope:[show_letter] from show_letter show_letter::@9
|
||||
[137] (signed word) show_letter::current_y#4 ← phi( show_letter/(signed byte) 0 show_letter::@9/(signed word~) show_letter::current_y#11 )
|
||||
[137] (signed word) show_letter::current_x#4 ← phi( show_letter/(signed byte) 0 show_letter::@9/(signed word~) show_letter::current_x#11 )
|
||||
[137] (byte) show_letter::i#10 ← phi( show_letter/(byte) 0 show_letter::@9/(byte) show_letter::i#1 )
|
||||
[138] (byte) show_letter::$32 ← (byte) show_letter::i#10 << (byte) 3
|
||||
[139] (byte~) show_letter::$20 ← (byte) show_letter::$32 + (byte) show_letter::i#10
|
||||
[140] (signed word) show_letter::to_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO + (byte~) show_letter::$20)
|
||||
[141] (signed word) show_letter::to_y#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) show_letter::$20)
|
||||
[142] (signed word) show_letter::to_x#1 ← (signed word) show_letter::to_x#0 - (signed byte) $32
|
||||
[143] (signed word) show_letter::to_y#1 ← (signed word) show_letter::to_y#0 - (signed word) $96
|
||||
[144] (signed word) rotate::vector_x#0 ← (signed word) show_letter::to_x#1
|
||||
[145] (signed word) rotate::vector_y#0 ← (signed word) show_letter::to_y#1
|
||||
[146] (byte) rotate::angle#0 ← (byte) show_letter::angle#0
|
||||
[147] call rotate
|
||||
[148] (signed word) rotate::return_x#0 ← (signed word) rotate::return_x#2
|
||||
[149] (signed word) rotate::return_y#0 ← (signed word) rotate::return_y#2
|
||||
to:show_letter::@6
|
||||
show_letter::@6: scope:[show_letter] from show_letter::@1
|
||||
[150] (signed word) show_letter::to_x#2 ← (signed word) rotate::return_x#0
|
||||
[151] (signed word) show_letter::to_y#2 ← (signed word) rotate::return_y#0
|
||||
[152] (signed word) show_letter::current_x#10 ← (signed word) show_letter::to_x#2 + (signed byte) $64
|
||||
[153] (signed word) show_letter::current_y#10 ← (signed word) show_letter::to_y#2 + (signed byte) $64
|
||||
[154] (byte) show_letter::$34 ← (byte) show_letter::i#10 << (byte) 3
|
||||
[155] (byte~) show_letter::$21 ← (byte) show_letter::$34 + (byte) show_letter::i#10
|
||||
[156] (signed word) show_letter::via_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA + (byte~) show_letter::$21)
|
||||
[157] (signed word) show_letter::via_y#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment[$16]) letter_c#0+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) show_letter::$21)
|
||||
[158] (signed word) show_letter::via_x#1 ← (signed word) show_letter::via_x#0 - (signed byte) $32
|
||||
[159] (signed word) show_letter::via_y#1 ← (signed word) show_letter::via_y#0 - (signed word) $96
|
||||
[160] (signed word) rotate::vector_x#1 ← (signed word) show_letter::via_x#1
|
||||
[161] (signed word) rotate::vector_y#1 ← (signed word) show_letter::via_y#1
|
||||
[162] (byte) rotate::angle#1 ← (byte) show_letter::angle#0
|
||||
[163] call rotate
|
||||
[164] (signed word) rotate::return_x#1 ← (signed word) rotate::return_x#2
|
||||
[165] (signed word) rotate::return_y#1 ← (signed word) rotate::return_y#2
|
||||
to:show_letter::@7
|
||||
show_letter::@7: scope:[show_letter] from show_letter::@6
|
||||
[166] (signed word) show_letter::via_x#2 ← (signed word) rotate::return_x#1
|
||||
[167] (signed word) show_letter::via_y#2 ← (signed word) rotate::return_y#1
|
||||
[168] (signed word) show_letter::segment_via_x#0 ← (signed word) show_letter::via_x#2 + (signed byte) $64
|
||||
[169] (signed word) show_letter::segment_via_y#0 ← (signed word) show_letter::via_y#2 + (signed byte) $64
|
||||
[170] (byte) show_letter::$36 ← (byte) show_letter::i#10 << (byte) 3
|
||||
[171] (byte~) show_letter::$22 ← (byte) show_letter::$36 + (byte) show_letter::i#10
|
||||
[172] (byte) show_letter::segment_type#0 ← *((byte*)(const struct Segment[$16]) letter_c#0 + (byte~) show_letter::$22)
|
||||
[173] if((byte) show_letter::segment_type#0==(const byte) MOVE_TO) goto show_letter::@3
|
||||
to:show_letter::@4
|
||||
show_letter::@4: scope:[show_letter] from show_letter::@7
|
||||
[174] if((byte) show_letter::segment_type#0==(const byte) SPLINE_TO) goto show_letter::@2
|
||||
to:show_letter::@5
|
||||
show_letter::@5: scope:[show_letter] from show_letter::@4
|
||||
[175] (word) bitmap_line::x1#0 ← (word)(signed word) show_letter::current_x#4
|
||||
[176] (word) bitmap_line::y1#0 ← (word)(signed word) show_letter::current_y#4
|
||||
[177] (word) bitmap_line::x2#0 ← (word)(signed word) show_letter::current_x#10
|
||||
[178] (word) bitmap_line::y2#0 ← (word)(signed word) show_letter::current_y#10
|
||||
[179] call bitmap_line
|
||||
to:show_letter::@3
|
||||
show_letter::@3: scope:[show_letter] from show_letter::@5 show_letter::@7 show_letter::@8
|
||||
[180] (byte) show_letter::i#1 ← ++ (byte) show_letter::i#10
|
||||
[181] if((byte) show_letter::i#1!=(byte) $16) goto show_letter::@9
|
||||
to:show_letter::@return
|
||||
show_letter::@return: scope:[show_letter] from show_letter::@3
|
||||
[182] return
|
||||
to:@return
|
||||
show_letter::@9: scope:[show_letter] from show_letter::@3
|
||||
[183] (signed word~) show_letter::current_x#11 ← (signed word) show_letter::current_x#10
|
||||
[184] (signed word~) show_letter::current_y#11 ← (signed word) show_letter::current_y#10
|
||||
to:show_letter::@1
|
||||
show_letter::@2: scope:[show_letter] from show_letter::@4
|
||||
[185] (signed word) spline_8segB::p0_x#0 ← (signed word) show_letter::current_x#4
|
||||
[186] (signed word) spline_8segB::p0_y#0 ← (signed word) show_letter::current_y#4
|
||||
[187] (signed word) spline_8segB::p1_x#0 ← (signed word) show_letter::segment_via_x#0
|
||||
[188] (signed word) spline_8segB::p1_y#0 ← (signed word) show_letter::segment_via_y#0
|
||||
[189] (signed word) spline_8segB::p2_x#0 ← (signed word) show_letter::current_x#10
|
||||
[190] (signed word) spline_8segB::p2_y#0 ← (signed word) show_letter::current_y#10
|
||||
[191] call spline_8segB
|
||||
to:show_letter::@8
|
||||
show_letter::@8: scope:[show_letter] from show_letter::@2
|
||||
[192] phi()
|
||||
[193] call bitmap_plot_spline_8seg
|
||||
to:show_letter::@3
|
||||
bitmap_plot_spline_8seg: scope:[bitmap_plot_spline_8seg] from show_letter::@8
|
||||
[194] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0)
|
||||
[195] (signed word) bitmap_plot_spline_8seg::current_y#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y)
|
||||
to:bitmap_plot_spline_8seg::@1
|
||||
bitmap_plot_spline_8seg::@1: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg bitmap_plot_spline_8seg::@2
|
||||
[196] (byte) bitmap_plot_spline_8seg::n#2 ← phi( bitmap_plot_spline_8seg/(byte) 1 bitmap_plot_spline_8seg::@2/(byte) bitmap_plot_spline_8seg::n#1 )
|
||||
[196] (signed word) bitmap_plot_spline_8seg::current_y#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::@2/(signed word) bitmap_plot_spline_8seg::current_y#1 )
|
||||
[196] (signed word) bitmap_plot_spline_8seg::current_x#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::@2/(signed word) bitmap_plot_spline_8seg::current_x#1 )
|
||||
[197] (word) bitmap_line::x1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_x#2
|
||||
[198] (word) bitmap_line::y1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_y#2
|
||||
[199] (byte~) bitmap_plot_spline_8seg::$8 ← (byte) bitmap_plot_spline_8seg::n#2 << (byte) 2
|
||||
[200] (word~) bitmap_line::x2#13 ← (word)*((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) bitmap_plot_spline_8seg::$8)
|
||||
[201] (word~) bitmap_line::y2#13 ← (word)*((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) bitmap_plot_spline_8seg::$8)
|
||||
[202] call bitmap_line
|
||||
to:bitmap_plot_spline_8seg::@2
|
||||
bitmap_plot_spline_8seg::@2: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg::@1
|
||||
[203] (byte~) bitmap_plot_spline_8seg::$9 ← (byte) bitmap_plot_spline_8seg::n#2 << (byte) 2
|
||||
[204] (signed word) bitmap_plot_spline_8seg::current_x#1 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) bitmap_plot_spline_8seg::$9)
|
||||
[205] (signed word) bitmap_plot_spline_8seg::current_y#1 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) bitmap_plot_spline_8seg::$9)
|
||||
[206] (byte) bitmap_plot_spline_8seg::n#1 ← ++ (byte) bitmap_plot_spline_8seg::n#2
|
||||
[207] if((byte) bitmap_plot_spline_8seg::n#1!=(byte) 9) goto bitmap_plot_spline_8seg::@1
|
||||
to:bitmap_plot_spline_8seg::@return
|
||||
bitmap_plot_spline_8seg::@return: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg::@2
|
||||
[208] return
|
||||
to:@return
|
||||
bitmap_line: scope:[bitmap_line] from bitmap_plot_spline_8seg::@1 show_letter::@5
|
||||
[209] (word) bitmap_line::y2#11 ← phi( bitmap_plot_spline_8seg::@1/(word~) bitmap_line::y2#13 show_letter::@5/(word) bitmap_line::y2#0 )
|
||||
[209] (word) bitmap_line::x2#10 ← phi( bitmap_plot_spline_8seg::@1/(word~) bitmap_line::x2#13 show_letter::@5/(word) bitmap_line::x2#0 )
|
||||
[209] (word) bitmap_line::y#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::y1#1 show_letter::@5/(word) bitmap_line::y1#0 )
|
||||
[209] (word) bitmap_line::x#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::x1#1 show_letter::@5/(word) bitmap_line::x1#0 )
|
||||
[210] (word) abs_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
|
||||
[211] call abs_u16
|
||||
[212] (word) abs_u16::return#0 ← (word) abs_u16::return#4
|
||||
to:bitmap_line::@12
|
||||
bitmap_line::@12: scope:[bitmap_line] from bitmap_line
|
||||
[213] (word) bitmap_line::dx#0 ← (word) abs_u16::return#0
|
||||
[214] (word) abs_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
|
||||
[215] call abs_u16
|
||||
[216] (word) abs_u16::return#1 ← (word) abs_u16::return#4
|
||||
to:bitmap_line::@13
|
||||
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
|
||||
[217] (word) bitmap_line::dy#0 ← (word) abs_u16::return#1
|
||||
[218] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
|
||||
to:bitmap_line::@18
|
||||
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13
|
||||
[219] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
|
||||
to:bitmap_line::@1
|
||||
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18
|
||||
[220] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
|
||||
[221] call sgn_u16
|
||||
[222] (word) sgn_u16::return#0 ← (word) sgn_u16::return#4
|
||||
to:bitmap_line::@14
|
||||
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1
|
||||
[223] (word) bitmap_line::sx#0 ← (word) sgn_u16::return#0
|
||||
[224] (word) sgn_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
|
||||
[225] call sgn_u16
|
||||
[226] (word) sgn_u16::return#1 ← (word) sgn_u16::return#4
|
||||
to:bitmap_line::@15
|
||||
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14
|
||||
[227] (word) bitmap_line::sy#0 ← (word) sgn_u16::return#1
|
||||
[228] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
|
||||
to:bitmap_line::@5
|
||||
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@15
|
||||
[229] (word) bitmap_line::e#0 ← (word) bitmap_line::dx#0 >> (byte) 1
|
||||
to:bitmap_line::@6
|
||||
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7
|
||||
[230] (word) bitmap_line::e#3 ← phi( bitmap_line::@5/(word) bitmap_line::e#0 bitmap_line::@7/(word) bitmap_line::e#6 )
|
||||
[230] (word) bitmap_line::x#13 ← phi( bitmap_line::@5/(word) bitmap_line::x#0 bitmap_line::@7/(word) bitmap_line::x#12 )
|
||||
[230] (word) bitmap_line::y#4 ← phi( bitmap_line::@5/(word) bitmap_line::y#0 bitmap_line::@7/(word) bitmap_line::y#1 )
|
||||
[231] (byte) bitmap_plot::y#1 ← (byte)(word) bitmap_line::y#4
|
||||
[232] (word) bitmap_plot::x#1 ← (word) bitmap_line::x#13
|
||||
[233] call bitmap_plot
|
||||
to:bitmap_line::@16
|
||||
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6
|
||||
[234] (word) bitmap_line::y#1 ← (word) bitmap_line::y#4 + (word) bitmap_line::sy#0
|
||||
[235] (word) bitmap_line::e#1 ← (word) bitmap_line::e#3 + (word) bitmap_line::dx#0
|
||||
[236] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@7
|
||||
to:bitmap_line::@8
|
||||
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@16
|
||||
[237] (word) bitmap_line::x#1 ← (word) bitmap_line::x#13 + (word) bitmap_line::sx#0
|
||||
[238] (word) bitmap_line::e#2 ← (word) bitmap_line::e#1 - (word) bitmap_line::dy#0
|
||||
to:bitmap_line::@7
|
||||
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@16 bitmap_line::@8
|
||||
[239] (word) bitmap_line::e#6 ← phi( bitmap_line::@16/(word) bitmap_line::e#1 bitmap_line::@8/(word) bitmap_line::e#2 )
|
||||
[239] (word) bitmap_line::x#12 ← phi( bitmap_line::@16/(word) bitmap_line::x#13 bitmap_line::@8/(word) bitmap_line::x#1 )
|
||||
[240] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#11) goto bitmap_line::@6
|
||||
to:bitmap_line::@3
|
||||
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7
|
||||
[241] (word) bitmap_line::x#6 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@7/(word) bitmap_line::x#12 )
|
||||
[241] (word) bitmap_line::y#7 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@7/(word) bitmap_line::y#1 )
|
||||
[242] (byte) bitmap_plot::y#2 ← (byte)(word) bitmap_line::y#7
|
||||
[243] (word) bitmap_plot::x#2 ← (word) bitmap_line::x#6
|
||||
[244] call bitmap_plot
|
||||
to:bitmap_line::@return
|
||||
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4
|
||||
[245] return
|
||||
to:@return
|
||||
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
|
||||
[246] (word) bitmap_line::e1#0 ← (word) bitmap_line::dy#0 >> (byte) 1
|
||||
to:bitmap_line::@9
|
||||
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2
|
||||
[247] (word) bitmap_line::e1#3 ← phi( bitmap_line::@10/(word) bitmap_line::e1#6 bitmap_line::@2/(word) bitmap_line::e1#0 )
|
||||
[247] (word) bitmap_line::x#7 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@2/(word) bitmap_line::x#0 )
|
||||
[247] (word) bitmap_line::y#15 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@2/(word) bitmap_line::y#0 )
|
||||
[248] (byte) bitmap_plot::y#3 ← (byte)(word) bitmap_line::y#15
|
||||
[249] (word) bitmap_plot::x#3 ← (word) bitmap_line::x#7
|
||||
[250] call bitmap_plot
|
||||
to:bitmap_line::@17
|
||||
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9
|
||||
[251] (word) bitmap_line::x#15 ← (word) bitmap_line::x#7 + (word) bitmap_line::sx#0
|
||||
[252] (word) bitmap_line::e1#1 ← (word) bitmap_line::e1#3 + (word) bitmap_line::dy#0
|
||||
[253] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@10
|
||||
to:bitmap_line::@11
|
||||
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@17
|
||||
[254] (word) bitmap_line::y#2 ← (word) bitmap_line::y#15 + (word) bitmap_line::sy#0
|
||||
[255] (word) bitmap_line::e1#2 ← (word) bitmap_line::e1#1 - (word) bitmap_line::dx#0
|
||||
to:bitmap_line::@10
|
||||
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17
|
||||
[256] (word) bitmap_line::e1#6 ← phi( bitmap_line::@11/(word) bitmap_line::e1#2 bitmap_line::@17/(word) bitmap_line::e1#1 )
|
||||
[256] (word) bitmap_line::y#13 ← phi( bitmap_line::@11/(word) bitmap_line::y#2 bitmap_line::@17/(word) bitmap_line::y#15 )
|
||||
[257] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#10) goto bitmap_line::@9
|
||||
to:bitmap_line::@3
|
||||
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
|
||||
[258] (byte) bitmap_plot::y#0 ← (byte)(word) bitmap_line::y#0
|
||||
[259] (word) bitmap_plot::x#0 ← (word) bitmap_line::x#0
|
||||
[260] call bitmap_plot
|
||||
to:bitmap_line::@return
|
||||
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
|
||||
[261] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
|
||||
[261] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
|
||||
[262] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4)
|
||||
[263] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#4 & (word) $fff8
|
||||
[264] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
|
||||
[265] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#4
|
||||
[266] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2)
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[267] return
|
||||
to:@return
|
||||
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
|
||||
[268] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(word) sgn_u16::w#1 )
|
||||
[269] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
|
||||
[270] (byte~) sgn_u16::$1 ← (byte~) sgn_u16::$0 & (byte) $80
|
||||
[271] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
|
||||
to:sgn_u16::@return
|
||||
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
|
||||
[272] phi()
|
||||
to:sgn_u16::@return
|
||||
sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
|
||||
[273] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
|
||||
[274] return
|
||||
to:@return
|
||||
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
|
||||
[275] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(word) abs_u16::w#1 )
|
||||
[276] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
|
||||
[277] (byte~) abs_u16::$1 ← (byte~) abs_u16::$0 & (byte) $80
|
||||
[278] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
|
||||
to:abs_u16::@return
|
||||
abs_u16::@1: scope:[abs_u16] from abs_u16
|
||||
[279] (word) abs_u16::return#2 ← - (word) abs_u16::w#2
|
||||
to:abs_u16::@return
|
||||
abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
|
||||
[280] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
|
||||
[281] return
|
||||
to:@return
|
||||
spline_8segB: scope:[spline_8segB] from show_letter::@2
|
||||
[282] (signed word~) spline_8segB::$0 ← (signed word) spline_8segB::p1_x#0 << (byte) 1
|
||||
[283] (signed word~) spline_8segB::$1 ← (signed word) spline_8segB::p2_x#0 - (signed word~) spline_8segB::$0
|
||||
[284] (signed word) spline_8segB::a_x#0 ← (signed word~) spline_8segB::$1 + (signed word) spline_8segB::p0_x#0
|
||||
[285] (signed word~) spline_8segB::$3 ← (signed word) spline_8segB::p1_y#0 << (byte) 1
|
||||
[286] (signed word~) spline_8segB::$4 ← (signed word) spline_8segB::p2_y#0 - (signed word~) spline_8segB::$3
|
||||
[287] (signed word) spline_8segB::a_y#0 ← (signed word~) spline_8segB::$4 + (signed word) spline_8segB::p0_y#0
|
||||
[288] (signed word~) spline_8segB::$6 ← (signed word) spline_8segB::p1_x#0 - (signed word) spline_8segB::p0_x#0
|
||||
[289] (signed word) spline_8segB::b_x#0 ← (signed word~) spline_8segB::$6 << (byte) 1
|
||||
[290] (signed word~) spline_8segB::$8 ← (signed word) spline_8segB::p1_y#0 - (signed word) spline_8segB::p0_y#0
|
||||
[291] (signed word) spline_8segB::b_y#0 ← (signed word~) spline_8segB::$8 << (byte) 1
|
||||
[292] (signed word~) spline_8segB::$10 ← (signed word) spline_8segB::b_x#0 << (byte) 3
|
||||
[293] (signed word) spline_8segB::i_x#0 ← (signed word) spline_8segB::a_x#0 + (signed word~) spline_8segB::$10
|
||||
[294] (signed word~) spline_8segB::$12 ← (signed word) spline_8segB::b_y#0 << (byte) 3
|
||||
[295] (signed word) spline_8segB::i_y#0 ← (signed word) spline_8segB::a_y#0 + (signed word~) spline_8segB::$12
|
||||
[296] (signed word) spline_8segB::j_x#0 ← (signed word) spline_8segB::a_x#0 << (byte) 1
|
||||
[297] (signed word) spline_8segB::j_y#0 ← (signed word) spline_8segB::a_y#0 << (byte) 1
|
||||
[298] (signed word) spline_8segB::p_x#0 ← (signed word) spline_8segB::p0_x#0 << (byte) 6
|
||||
[299] (signed word) spline_8segB::p_y#0 ← (signed word) spline_8segB::p0_y#0 << (byte) 6
|
||||
to:spline_8segB::@1
|
||||
spline_8segB::@1: scope:[spline_8segB] from spline_8segB spline_8segB::@1
|
||||
[300] (signed word) spline_8segB::i_y#2 ← phi( spline_8segB/(signed word) spline_8segB::i_y#0 spline_8segB::@1/(signed word) spline_8segB::i_y#1 )
|
||||
[300] (signed word) spline_8segB::i_x#2 ← phi( spline_8segB/(signed word) spline_8segB::i_x#0 spline_8segB::@1/(signed word) spline_8segB::i_x#1 )
|
||||
[300] (byte) spline_8segB::n#2 ← phi( spline_8segB/(byte) 0 spline_8segB::@1/(byte) spline_8segB::n#1 )
|
||||
[300] (signed word) spline_8segB::p_y#2 ← phi( spline_8segB/(signed word) spline_8segB::p_y#0 spline_8segB::@1/(signed word) spline_8segB::p_y#1 )
|
||||
[300] (signed word) spline_8segB::p_x#2 ← phi( spline_8segB/(signed word) spline_8segB::p_x#0 spline_8segB::@1/(signed word) spline_8segB::p_x#1 )
|
||||
[301] (signed word~) spline_8segB::$22 ← (signed word) spline_8segB::p_x#2 + (signed byte) $20
|
||||
[302] (signed word~) spline_8segB::$23 ← (signed word~) spline_8segB::$22 >> (byte) 6
|
||||
[303] (signed word~) spline_8segB::$24 ← (signed word) spline_8segB::p_y#2 + (signed byte) $20
|
||||
[304] (signed word~) spline_8segB::$25 ← (signed word~) spline_8segB::$24 >> (byte) 6
|
||||
[305] (byte~) spline_8segB::$31 ← (byte) spline_8segB::n#2 << (byte) 2
|
||||
[306] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$23
|
||||
[307] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$25
|
||||
[308] (signed word) spline_8segB::p_x#1 ← (signed word) spline_8segB::p_x#2 + (signed word) spline_8segB::i_x#2
|
||||
[309] (signed word) spline_8segB::p_y#1 ← (signed word) spline_8segB::p_y#2 + (signed word) spline_8segB::i_y#2
|
||||
[310] (signed word) spline_8segB::i_x#1 ← (signed word) spline_8segB::i_x#2 + (signed word) spline_8segB::j_x#0
|
||||
[311] (signed word) spline_8segB::i_y#1 ← (signed word) spline_8segB::i_y#2 + (signed word) spline_8segB::j_y#0
|
||||
[312] (byte) spline_8segB::n#1 ← ++ (byte) spline_8segB::n#2
|
||||
[313] if((byte) spline_8segB::n#1!=(byte) 8) goto spline_8segB::@1
|
||||
to:spline_8segB::@2
|
||||
spline_8segB::@2: scope:[spline_8segB] from spline_8segB::@1
|
||||
[314] (signed word~) spline_8segB::$18 ← (signed word) spline_8segB::p_x#1 + (signed byte) $20
|
||||
[315] (signed word~) spline_8segB::$19 ← (signed word~) spline_8segB::$18 >> (byte) 6
|
||||
[316] (signed word~) spline_8segB::$20 ← (signed word) spline_8segB::p_y#1 + (signed byte) $20
|
||||
[317] (signed word~) spline_8segB::$21 ← (signed word~) spline_8segB::$20 >> (byte) 6
|
||||
[318] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$19
|
||||
[319] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$21
|
||||
to:spline_8segB::@return
|
||||
spline_8segB::@return: scope:[spline_8segB] from spline_8segB::@2
|
||||
[320] return
|
||||
to:@return
|
||||
rotate: scope:[rotate] from show_letter::@1 show_letter::@6
|
||||
[321] (signed word) rotate::vector_y#2 ← phi( show_letter::@1/(signed word) rotate::vector_y#0 show_letter::@6/(signed word) rotate::vector_y#1 )
|
||||
[321] (signed word) rotate::vector_x#2 ← phi( show_letter::@1/(signed word) rotate::vector_x#0 show_letter::@6/(signed word) rotate::vector_x#1 )
|
||||
[321] (byte) rotate::angle#2 ← phi( show_letter::@1/(byte) rotate::angle#0 show_letter::@6/(byte) rotate::angle#1 )
|
||||
[322] (signed word) rotate::cos_a#0 ← (signed word)*((const signed byte*) COS#0 + (byte) rotate::angle#2)
|
||||
[323] (signed word) mulf16s::a#0 ← (signed word) rotate::cos_a#0
|
||||
[324] (signed word) mulf16s::b#0 ← (signed word) rotate::vector_x#2
|
||||
[325] call mulf16s
|
||||
[326] (signed dword) mulf16s::return#2 ← (signed dword) mulf16s::return#0
|
||||
to:rotate::@1
|
||||
rotate::@1: scope:[rotate] from rotate
|
||||
[327] (signed dword~) rotate::$1 ← (signed dword) mulf16s::return#2
|
||||
[328] (signed word~) rotate::$2 ← (signed word)(signed dword~) rotate::$1
|
||||
[329] (signed word) rotate::xr#0 ← (signed word~) rotate::$2 << (byte) 1
|
||||
[330] (signed word) mulf16s::a#1 ← (signed word) rotate::cos_a#0
|
||||
[331] (signed word) mulf16s::b#1 ← (signed word) rotate::vector_y#2
|
||||
[332] call mulf16s
|
||||
[333] (signed dword) mulf16s::return#3 ← (signed dword) mulf16s::return#0
|
||||
to:rotate::@2
|
||||
rotate::@2: scope:[rotate] from rotate::@1
|
||||
[334] (signed dword~) rotate::$4 ← (signed dword) mulf16s::return#3
|
||||
[335] (signed word~) rotate::$5 ← (signed word)(signed dword~) rotate::$4
|
||||
[336] (signed word) rotate::yr#0 ← (signed word~) rotate::$5 << (byte) 1
|
||||
[337] (signed word) rotate::sin_a#0 ← (signed word)*((const signed byte[$140]) SIN#0 + (byte) rotate::angle#2)
|
||||
[338] (signed word) mulf16s::a#2 ← (signed word) rotate::sin_a#0
|
||||
[339] (signed word) mulf16s::b#2 ← (signed word) rotate::vector_y#2
|
||||
[340] call mulf16s
|
||||
[341] (signed dword) mulf16s::return#4 ← (signed dword) mulf16s::return#0
|
||||
to:rotate::@3
|
||||
rotate::@3: scope:[rotate] from rotate::@2
|
||||
[342] (signed dword~) rotate::$8 ← (signed dword) mulf16s::return#4
|
||||
[343] (signed word~) rotate::$9 ← (signed word)(signed dword~) rotate::$8
|
||||
[344] (signed word~) rotate::$10 ← (signed word~) rotate::$9 << (byte) 1
|
||||
[345] (signed word) rotate::xr#1 ← (signed word) rotate::xr#0 - (signed word~) rotate::$10
|
||||
[346] (signed word) mulf16s::a#3 ← (signed word) rotate::sin_a#0
|
||||
[347] (signed word) mulf16s::b#3 ← (signed word) rotate::vector_x#2
|
||||
[348] call mulf16s
|
||||
[349] (signed dword) mulf16s::return#10 ← (signed dword) mulf16s::return#0
|
||||
to:rotate::@4
|
||||
rotate::@4: scope:[rotate] from rotate::@3
|
||||
[350] (signed dword~) rotate::$11 ← (signed dword) mulf16s::return#10
|
||||
[351] (signed word~) rotate::$12 ← (signed word)(signed dword~) rotate::$11
|
||||
[352] (signed word~) rotate::$13 ← (signed word~) rotate::$12 << (byte) 1
|
||||
[353] (signed word) rotate::yr#1 ← (signed word) rotate::yr#0 + (signed word~) rotate::$13
|
||||
[354] (byte~) rotate::$15 ← > (signed word) rotate::xr#1
|
||||
[355] (signed word) rotate::return_x#2 ← (signed word)(signed byte)(byte~) rotate::$15
|
||||
[356] (byte~) rotate::$18 ← > (signed word) rotate::yr#1
|
||||
[357] (signed word) rotate::return_y#2 ← (signed word)(signed byte)(byte~) rotate::$18
|
||||
to:rotate::@return
|
||||
rotate::@return: scope:[rotate] from rotate::@4
|
||||
[358] return
|
||||
to:@return
|
||||
mulf16s: scope:[mulf16s] from rotate rotate::@1 rotate::@2 rotate::@3
|
||||
[359] (signed word) mulf16s::b#4 ← phi( rotate/(signed word) mulf16s::b#0 rotate::@1/(signed word) mulf16s::b#1 rotate::@2/(signed word) mulf16s::b#2 rotate::@3/(signed word) mulf16s::b#3 )
|
||||
[359] (signed word) mulf16s::a#4 ← phi( rotate/(signed word) mulf16s::a#0 rotate::@1/(signed word) mulf16s::a#1 rotate::@2/(signed word) mulf16s::a#2 rotate::@3/(signed word) mulf16s::a#3 )
|
||||
[360] (word) mulf16u::a#0 ← (word)(signed word) mulf16s::a#4
|
||||
[361] (word) mulf16u::b#0 ← (word)(signed word) mulf16s::b#4
|
||||
[362] call mulf16u
|
||||
[363] (dword) mulf16u::return#2 ← (dword) mulf16u::return#0
|
||||
to:mulf16s::@5
|
||||
mulf16s::@5: scope:[mulf16s] from mulf16s
|
||||
[364] (dword) mulf16s::m#0 ← (dword) mulf16u::return#2
|
||||
[365] if((signed word) mulf16s::a#4>=(signed byte) 0) goto mulf16s::@1
|
||||
to:mulf16s::@3
|
||||
mulf16s::@3: scope:[mulf16s] from mulf16s::@5
|
||||
[366] (word~) mulf16s::$9 ← > (dword) mulf16s::m#0
|
||||
[367] (word~) mulf16s::$16 ← (word~) mulf16s::$9 - (word)(signed word) mulf16s::b#4
|
||||
[368] (dword) mulf16s::m#1 ← (dword) mulf16s::m#0 hi= (word~) mulf16s::$16
|
||||
to:mulf16s::@1
|
||||
mulf16s::@1: scope:[mulf16s] from mulf16s::@3 mulf16s::@5
|
||||
[369] (dword) mulf16s::m#5 ← phi( mulf16s::@3/(dword) mulf16s::m#1 mulf16s::@5/(dword) mulf16s::m#0 )
|
||||
[370] if((signed word) mulf16s::b#4>=(signed byte) 0) goto mulf16s::@2
|
||||
to:mulf16s::@4
|
||||
mulf16s::@4: scope:[mulf16s] from mulf16s::@1
|
||||
[371] (word~) mulf16s::$13 ← > (dword) mulf16s::m#5
|
||||
[372] (word~) mulf16s::$17 ← (word~) mulf16s::$13 - (word)(signed word) mulf16s::a#4
|
||||
[373] (dword) mulf16s::m#2 ← (dword) mulf16s::m#5 hi= (word~) mulf16s::$17
|
||||
to:mulf16s::@2
|
||||
mulf16s::@2: scope:[mulf16s] from mulf16s::@1 mulf16s::@4
|
||||
[374] (dword) mulf16s::m#4 ← phi( mulf16s::@1/(dword) mulf16s::m#5 mulf16s::@4/(dword) mulf16s::m#2 )
|
||||
[375] (signed dword) mulf16s::return#0 ← (signed dword)(dword) mulf16s::m#4
|
||||
to:mulf16s::@return
|
||||
mulf16s::@return: scope:[mulf16s] from mulf16s::@2
|
||||
[376] return
|
||||
to:@return
|
||||
mulf16u: scope:[mulf16u] from mulf16s
|
||||
[377] *((const word*) mulf16u::memA#0) ← (word) mulf16u::a#0
|
||||
[378] *((const word*) mulf16u::memB#0) ← (word) mulf16u::b#0
|
||||
asm { ldamemA stasm1a+1 stasm3a+1 stasm5a+1 stasm7a+1 eor#$ff stasm2a+1 stasm4a+1 stasm6a+1 stasm8a+1 ldamemA+1 stasm1b+1 stasm3b+1 stasm5b+1 stasm7b+1 eor#$ff stasm2b+1 stasm4b+1 stasm6b+1 stasm8b+1 ldxmemB sec sm1a: ldamulf_sqr1_lo,x sm2a: sbcmulf_sqr2_lo,x stamemR+0 sm3a: ldamulf_sqr1_hi,x sm4a: sbcmulf_sqr2_hi,x sta_AA+1 sec sm1b: ldamulf_sqr1_lo,x sm2b: sbcmulf_sqr2_lo,x sta_cc+1 sm3b: ldamulf_sqr1_hi,x sm4b: sbcmulf_sqr2_hi,x sta_CC+1 ldxmemB+1 sec sm5a: ldamulf_sqr1_lo,x sm6a: sbcmulf_sqr2_lo,x sta_bb+1 sm7a: ldamulf_sqr1_hi,x sm8a: sbcmulf_sqr2_hi,x sta_BB+1 sec sm5b: ldamulf_sqr1_lo,x sm6b: sbcmulf_sqr2_lo,x sta_dd+1 sm7b: ldamulf_sqr1_hi,x sm8b: sbcmulf_sqr2_hi,x stamemR+3 clc _AA: lda#0 _bb: adc#0 stamemR+1 _BB: lda#0 _CC: adc#0 stamemR+2 bcc!+ incmemR+3 clc !: _cc: lda#0 adcmemR+1 stamemR+1 _dd: lda#0 adcmemR+2 stamemR+2 bcc!+ incmemR+3 !: }
|
||||
[380] (dword) mulf16u::return#0 ← *((const dword*) mulf16u::memR#0)
|
||||
to:mulf16u::@return
|
||||
mulf16u::@return: scope:[mulf16u] from mulf16u
|
||||
[381] return
|
||||
to:@return
|
||||
bitmap_clear: scope:[bitmap_clear] from main::@2 main::@9
|
||||
[382] phi()
|
||||
[383] call memset
|
||||
to:bitmap_clear::@1
|
||||
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
|
||||
[384] phi()
|
||||
[385] call memset
|
||||
to:bitmap_clear::@return
|
||||
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
|
||||
[386] return
|
||||
to:@return
|
||||
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
|
||||
[387] (byte) memset::c#3 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
|
||||
[387] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) BITMAP_SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP_GRAPHICS#0 )
|
||||
[387] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
|
||||
[388] if((word) memset::num#2<=(byte) 0) goto memset::@return
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset
|
||||
[389] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
|
||||
[390] (byte*~) memset::dst#3 ← (byte*)(void*) memset::str#3
|
||||
to:memset::@2
|
||||
memset::@2: scope:[memset] from memset::@1 memset::@2
|
||||
[391] (byte*) memset::dst#2 ← phi( memset::@1/(byte*~) memset::dst#3 memset::@2/(byte*) memset::dst#1 )
|
||||
[392] *((byte*) memset::dst#2) ← (byte) memset::c#3
|
||||
[393] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
[394] if((byte*) memset::dst#1!=(byte*) memset::end#0) goto memset::@2
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset memset::@2
|
||||
[395] return
|
||||
to:@return
|
||||
bitmap_init: scope:[bitmap_init] from main::@8
|
||||
[396] phi()
|
||||
to:bitmap_init::@1
|
||||
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
||||
[397] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
|
||||
[397] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
|
||||
[398] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
|
||||
[399] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
|
||||
[400] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
|
||||
to:bitmap_init::@2
|
||||
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
|
||||
[401] phi()
|
||||
to:bitmap_init::@2
|
||||
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
|
||||
[402] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
|
||||
[403] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
|
||||
[404] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
|
||||
to:bitmap_init::@3
|
||||
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
||||
[405] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP_GRAPHICS#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
|
||||
[405] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
|
||||
[406] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
|
||||
[407] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
|
||||
[408] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
|
||||
[409] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
|
||||
[410] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
|
||||
[411] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
|
||||
[412] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
|
||||
to:bitmap_init::@5
|
||||
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
|
||||
[413] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
|
||||
to:bitmap_init::@4
|
||||
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
|
||||
[414] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
|
||||
[415] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
|
||||
[416] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
|
||||
to:bitmap_init::@return
|
||||
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
|
||||
[417] return
|
||||
to:@return
|
||||
mulf_init: scope:[mulf_init] from main
|
||||
[418] phi()
|
||||
to:mulf_init::@1
|
||||
mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2
|
||||
[419] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::x_2#2 )
|
||||
[419] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 )
|
||||
[419] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 )
|
||||
[419] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte) 0 mulf_init::@2/(word) mulf_init::sqr#1 )
|
||||
[419] (byte) mulf_init::c#2 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::c#1 )
|
||||
[420] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2
|
||||
[421] (byte~) mulf_init::$7 ← (byte) mulf_init::c#1 & (byte) 1
|
||||
[422] if((byte~) mulf_init::$7!=(byte) 0) goto mulf_init::@2
|
||||
to:mulf_init::@3
|
||||
mulf_init::@3: scope:[mulf_init] from mulf_init::@1
|
||||
[423] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3
|
||||
[424] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4
|
||||
to:mulf_init::@2
|
||||
mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@3
|
||||
[425] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@3/(byte) mulf_init::x_2#1 )
|
||||
[425] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@3/(word) mulf_init::sqr#2 )
|
||||
[426] (byte~) mulf_init::$10 ← < (word) mulf_init::sqr#3
|
||||
[427] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$10
|
||||
[428] (byte~) mulf_init::$11 ← > (word) mulf_init::sqr#3
|
||||
[429] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$11
|
||||
[430] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2
|
||||
[431] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2
|
||||
[432] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2
|
||||
[433] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word) $200) goto mulf_init::@1
|
||||
to:mulf_init::@4
|
||||
mulf_init::@4: scope:[mulf_init] from mulf_init::@2 mulf_init::@5
|
||||
[434] (byte) mulf_init::dir#2 ← phi( mulf_init::@2/(byte) $ff mulf_init::@5/(byte) mulf_init::dir#3 )
|
||||
[434] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 mulf_init::@5/(byte*) mulf_init::sqr2_hi#1 )
|
||||
[434] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 mulf_init::@5/(byte*) mulf_init::sqr2_lo#1 )
|
||||
[434] (byte) mulf_init::x_255#2 ← phi( mulf_init::@2/(byte) -1 mulf_init::@5/(byte) mulf_init::x_255#1 )
|
||||
[435] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2)
|
||||
[436] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2)
|
||||
[437] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2
|
||||
[438] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2
|
||||
[439] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@7
|
||||
to:mulf_init::@5
|
||||
mulf_init::@7: scope:[mulf_init] from mulf_init::@4
|
||||
[440] phi()
|
||||
to:mulf_init::@5
|
||||
mulf_init::@5: scope:[mulf_init] from mulf_init::@4 mulf_init::@7
|
||||
[441] (byte) mulf_init::dir#3 ← phi( mulf_init::@7/(byte) mulf_init::dir#2 mulf_init::@4/(byte) 1 )
|
||||
[442] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2
|
||||
[443] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) goto mulf_init::@4
|
||||
to:mulf_init::@6
|
||||
mulf_init::@6: scope:[mulf_init] from mulf_init::@5
|
||||
[444] *((const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word) $100)
|
||||
[445] *((const byte[$200]) mulf_sqr2_hi#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word) $100)
|
||||
to:mulf_init::@return
|
||||
mulf_init::@return: scope:[mulf_init] from mulf_init::@6
|
||||
[446] return
|
||||
to:@return
|
18568
src/test/ref/complex/splines/truetype-splines.log
Normal file
18568
src/test/ref/complex/splines/truetype-splines.log
Normal file
File diff suppressed because it is too large
Load Diff
652
src/test/ref/complex/splines/truetype-splines.sym
Normal file
652
src/test/ref/complex/splines/truetype-splines.sym
Normal file
@ -0,0 +1,652 @@
|
||||
(label) @1
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BITMAP_GRAPHICS
|
||||
(const byte*) BITMAP_GRAPHICS#0 BITMAP_GRAPHICS = (byte*) 24576
|
||||
(byte*) BITMAP_SCREEN
|
||||
(const byte*) BITMAP_SCREEN#0 BITMAP_SCREEN = (byte*) 23552
|
||||
(byte) BLACK
|
||||
(byte*) CIA2_PORT_A
|
||||
(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = (byte*) 56576
|
||||
(byte*) CIA2_PORT_A_DDR
|
||||
(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = (byte*) 56578
|
||||
(signed byte*) COS
|
||||
(const signed byte*) COS#0 COS = (const signed byte[$140]) SIN#0+(byte) $40
|
||||
(byte*) D011
|
||||
(const byte*) D011#0 D011 = (byte*) 53265
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (byte*) 53272
|
||||
(const byte) LINE_TO LINE_TO = (byte) 2
|
||||
(const byte) MOVE_TO MOVE_TO = (byte) 0
|
||||
(const byte) OFFSET_STRUCT_SEGMENT_TO OFFSET_STRUCT_SEGMENT_TO = (byte) 1
|
||||
(const byte) OFFSET_STRUCT_SEGMENT_VIA OFFSET_STRUCT_SEGMENT_VIA = (byte) 5
|
||||
(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y OFFSET_STRUCT_SPLINEVECTOR16_Y = (byte) 2
|
||||
(byte*) PRINT_SCREEN
|
||||
(const byte) RADIX::BINARY BINARY = (number) 2
|
||||
(const byte) RADIX::DECIMAL DECIMAL = (number) $a
|
||||
(const byte) RADIX::HEXADECIMAL HEXADECIMAL = (number) $10
|
||||
(const byte) RADIX::OCTAL OCTAL = (number) 8
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (byte*) 53266
|
||||
(signed byte[$140]) SIN
|
||||
(const signed byte[$140]) SIN#0 SIN = kickasm {{ .for(var i=0;i<$140;i++)
|
||||
.byte >round($7fff*sin(i*2*PI/256))
|
||||
}}
|
||||
(const byte) SIZEOF_STRUCT_SEGMENT SIZEOF_STRUCT_SEGMENT = (byte) 9
|
||||
(const byte) SIZEOF_STRUCT_SPLINEVECTOR16 SIZEOF_STRUCT_SPLINEVECTOR16 = (byte) 4
|
||||
(struct SplineVector16[9]) SPLINE_8SEG
|
||||
(const struct SplineVector16[9]) SPLINE_8SEG#0 SPLINE_8SEG = { fill( 9, 0) }
|
||||
(const byte) SPLINE_TO SPLINE_TO = (byte) 1
|
||||
(const byte) Segment::SegmentType::LINE_TO LINE_TO = (byte) 2
|
||||
(const byte) Segment::SegmentType::MOVE_TO MOVE_TO = (byte) 0
|
||||
(const byte) Segment::SegmentType::SPLINE_TO SPLINE_TO = (byte) 1
|
||||
(struct SplineVector16) Segment::to
|
||||
(byte) Segment::type
|
||||
(struct SplineVector16) Segment::via
|
||||
(signed word) SplineVector16::x
|
||||
(signed word) SplineVector16::y
|
||||
(signed dword) SplineVector32::x
|
||||
(signed dword) SplineVector32::y
|
||||
(byte) VIC_BMM
|
||||
(const byte) VIC_BMM#0 VIC_BMM = (byte) $20
|
||||
(byte) VIC_DEN
|
||||
(const byte) VIC_DEN#0 VIC_DEN = (byte) $10
|
||||
(byte) VIC_RSEL
|
||||
(const byte) VIC_RSEL#0 VIC_RSEL = (byte) 8
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte) 1
|
||||
(word()) abs_u16((word) abs_u16::w)
|
||||
(byte~) abs_u16::$0 reg byte a 4.0
|
||||
(byte~) abs_u16::$1 reg byte a 4.0
|
||||
(label) abs_u16::@1
|
||||
(label) abs_u16::@return
|
||||
(word) abs_u16::return
|
||||
(word) abs_u16::return#0 return zp ZP_WORD:21 4.0
|
||||
(word) abs_u16::return#1 return zp ZP_WORD:21 4.0
|
||||
(word) abs_u16::return#2 return zp ZP_WORD:21 4.0
|
||||
(word) abs_u16::return#4 return zp ZP_WORD:21 2.0
|
||||
(word) abs_u16::w
|
||||
(word) abs_u16::w#0 w zp ZP_WORD:21 4.0
|
||||
(word) abs_u16::w#1 w zp ZP_WORD:21 4.0
|
||||
(word) abs_u16::w#2 w zp ZP_WORD:21 2.5
|
||||
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
|
||||
(label) bitmap_clear::@1
|
||||
(label) bitmap_clear::@return
|
||||
(byte) bitmap_clear::bgcol
|
||||
(byte) bitmap_clear::col
|
||||
(const byte) bitmap_clear::col#0 col = (const byte) WHITE#0<<(byte) 4
|
||||
(byte) bitmap_clear::fgcol
|
||||
(byte*) bitmap_gfx
|
||||
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
|
||||
(byte~) bitmap_init::$4 reg byte a 22.0
|
||||
(byte~) bitmap_init::$5 reg byte a 22.0
|
||||
(byte~) bitmap_init::$6 reg byte a 22.0
|
||||
(byte~) bitmap_init::$7 $7 zp ZP_BYTE:93 5.5
|
||||
(label) bitmap_init::@1
|
||||
(label) bitmap_init::@2
|
||||
(label) bitmap_init::@3
|
||||
(label) bitmap_init::@4
|
||||
(label) bitmap_init::@5
|
||||
(label) bitmap_init::@6
|
||||
(label) bitmap_init::@return
|
||||
(byte) bitmap_init::bits
|
||||
(byte) bitmap_init::bits#1 reg byte a 11.0
|
||||
(byte) bitmap_init::bits#3 reg byte a 16.5
|
||||
(byte) bitmap_init::bits#4 reg byte a 7.333333333333333
|
||||
(byte*) bitmap_init::gfx
|
||||
(byte*) bitmap_init::screen
|
||||
(byte) bitmap_init::x
|
||||
(byte) bitmap_init::x#1 reg byte x 16.5
|
||||
(byte) bitmap_init::x#2 reg byte x 5.5
|
||||
(byte) bitmap_init::y
|
||||
(byte) bitmap_init::y#1 reg byte x 16.5
|
||||
(byte) bitmap_init::y#2 reg byte x 5.5
|
||||
(byte*) bitmap_init::yoffs
|
||||
(byte*) bitmap_init::yoffs#1 yoffs zp ZP_WORD:43 22.0
|
||||
(byte*) bitmap_init::yoffs#2 yoffs zp ZP_WORD:43 6.875
|
||||
(byte*) bitmap_init::yoffs#4 yoffs zp ZP_WORD:43 11.0
|
||||
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
|
||||
(label) bitmap_line::@1
|
||||
(label) bitmap_line::@10
|
||||
(label) bitmap_line::@11
|
||||
(label) bitmap_line::@12
|
||||
(label) bitmap_line::@13
|
||||
(label) bitmap_line::@14
|
||||
(label) bitmap_line::@15
|
||||
(label) bitmap_line::@16
|
||||
(label) bitmap_line::@17
|
||||
(label) bitmap_line::@18
|
||||
(label) bitmap_line::@2
|
||||
(label) bitmap_line::@3
|
||||
(label) bitmap_line::@4
|
||||
(label) bitmap_line::@5
|
||||
(label) bitmap_line::@6
|
||||
(label) bitmap_line::@7
|
||||
(label) bitmap_line::@8
|
||||
(label) bitmap_line::@9
|
||||
(label) bitmap_line::@return
|
||||
(word) bitmap_line::dx
|
||||
(word) bitmap_line::dx#0 dx zp ZP_WORD:61 75.275
|
||||
(word) bitmap_line::dy
|
||||
(word) bitmap_line::dy#0 dy zp ZP_WORD:21 83.6388888888889
|
||||
(word) bitmap_line::e
|
||||
(word) bitmap_line::e#0 e zp ZP_WORD:13 4.0
|
||||
(word) bitmap_line::e#1 e zp ZP_WORD:13 1334.6666666666667
|
||||
(word) bitmap_line::e#2 e zp ZP_WORD:13 2002.0
|
||||
(word) bitmap_line::e#3 e zp ZP_WORD:13 400.79999999999995
|
||||
(word) bitmap_line::e#6 e zp ZP_WORD:13 1501.5
|
||||
(word) bitmap_line::e1
|
||||
(word) bitmap_line::e1#0 e1 zp ZP_WORD:15 4.0
|
||||
(word) bitmap_line::e1#1 e1 zp ZP_WORD:15 1334.6666666666667
|
||||
(word) bitmap_line::e1#2 e1 zp ZP_WORD:15 2002.0
|
||||
(word) bitmap_line::e1#3 e1 zp ZP_WORD:15 400.79999999999995
|
||||
(word) bitmap_line::e1#6 e1 zp ZP_WORD:15 1501.5
|
||||
(word) bitmap_line::sx
|
||||
(word) bitmap_line::sx#0 sx zp ZP_WORD:63 66.80000000000001
|
||||
(word) bitmap_line::sy
|
||||
(word) bitmap_line::sy#0 sy zp ZP_WORD:19 77.07692307692308
|
||||
(word) bitmap_line::x
|
||||
(word) bitmap_line::x#0 x zp ZP_WORD:4 48.34782608695653
|
||||
(word) bitmap_line::x#1 x zp ZP_WORD:4 1001.0
|
||||
(word) bitmap_line::x#12 x zp ZP_WORD:4 2002.0
|
||||
(word) bitmap_line::x#13 x zp ZP_WORD:4 572.2857142857142
|
||||
(word) bitmap_line::x#15 x zp ZP_WORD:4 572.0
|
||||
(word) bitmap_line::x#6 x zp ZP_WORD:4 1002.0
|
||||
(word) bitmap_line::x#7 x zp ZP_WORD:4 751.25
|
||||
(word) bitmap_line::x1
|
||||
(word) bitmap_line::x1#0 x1 zp ZP_WORD:4 50.5
|
||||
(word) bitmap_line::x1#1 x1 zp ZP_WORD:4 400.4
|
||||
(word) bitmap_line::x2
|
||||
(word) bitmap_line::x2#0 x2 zp ZP_WORD:9 101.0
|
||||
(word) bitmap_line::x2#10 x2 zp ZP_WORD:9 65.84375
|
||||
(word~) bitmap_line::x2#13 x2 zp ZP_WORD:9 1001.0
|
||||
(word) bitmap_line::y
|
||||
(word) bitmap_line::y#0 y zp ZP_WORD:6 50.45454545454547
|
||||
(word) bitmap_line::y#1 y zp ZP_WORD:6 572.0
|
||||
(word) bitmap_line::y#13 y zp ZP_WORD:6 2002.0
|
||||
(word) bitmap_line::y#15 y zp ZP_WORD:6 429.2857142857143
|
||||
(word) bitmap_line::y#2 y zp ZP_WORD:6 1001.0
|
||||
(word) bitmap_line::y#4 y zp ZP_WORD:6 501.0
|
||||
(word) bitmap_line::y#7 y zp ZP_WORD:6 2002.0
|
||||
(word) bitmap_line::y1
|
||||
(word) bitmap_line::y1#0 y1 zp ZP_WORD:6 67.33333333333333
|
||||
(word) bitmap_line::y1#1 y1 zp ZP_WORD:6 500.5
|
||||
(word) bitmap_line::y2
|
||||
(word) bitmap_line::y2#0 y2 zp ZP_WORD:11 202.0
|
||||
(word) bitmap_line::y2#11 y2 zp ZP_WORD:11 65.84375
|
||||
(word~) bitmap_line::y2#13 y2 zp ZP_WORD:11 2002.0
|
||||
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
|
||||
(word~) bitmap_plot::$1 $1 zp ZP_WORD:67 4.0
|
||||
(byte~) bitmap_plot::$2 reg byte a 4.0
|
||||
(label) bitmap_plot::@return
|
||||
(byte*) bitmap_plot::plotter
|
||||
(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:65 1.0
|
||||
(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:65 3.0
|
||||
(word) bitmap_plot::x
|
||||
(word) bitmap_plot::x#0 x zp ZP_WORD:4 4.0
|
||||
(word) bitmap_plot::x#1 x zp ZP_WORD:4 2002.0
|
||||
(word) bitmap_plot::x#2 x zp ZP_WORD:4 4.0
|
||||
(word) bitmap_plot::x#3 x zp ZP_WORD:4 2002.0
|
||||
(word) bitmap_plot::x#4 x zp ZP_WORD:4 502.5
|
||||
(byte) bitmap_plot::y
|
||||
(byte) bitmap_plot::y#0 reg byte x 2.0
|
||||
(byte) bitmap_plot::y#1 reg byte x 1001.0
|
||||
(byte) bitmap_plot::y#2 reg byte x 2.0
|
||||
(byte) bitmap_plot::y#3 reg byte x 1001.0
|
||||
(byte) bitmap_plot::y#4 reg byte x 2010.0
|
||||
(byte[$100]) bitmap_plot_bit
|
||||
(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) }
|
||||
(void()) bitmap_plot_spline_8seg()
|
||||
(byte~) bitmap_plot_spline_8seg::$8 reg byte x 500.5
|
||||
(byte~) bitmap_plot_spline_8seg::$9 reg byte x 1501.5
|
||||
(label) bitmap_plot_spline_8seg::@1
|
||||
(label) bitmap_plot_spline_8seg::@2
|
||||
(label) bitmap_plot_spline_8seg::@return
|
||||
(signed word) bitmap_plot_spline_8seg::current_x
|
||||
(signed word) bitmap_plot_spline_8seg::current_x#0 current_x zp ZP_WORD:4 2.0
|
||||
(signed word) bitmap_plot_spline_8seg::current_x#1 current_x zp ZP_WORD:4 500.5
|
||||
(signed word) bitmap_plot_spline_8seg::current_x#2 current_x zp ZP_WORD:4 1003.0
|
||||
(signed word) bitmap_plot_spline_8seg::current_y
|
||||
(signed word) bitmap_plot_spline_8seg::current_y#0 current_y zp ZP_WORD:6 4.0
|
||||
(signed word) bitmap_plot_spline_8seg::current_y#1 current_y zp ZP_WORD:6 667.3333333333334
|
||||
(signed word) bitmap_plot_spline_8seg::current_y#2 current_y zp ZP_WORD:6 501.5
|
||||
(byte) bitmap_plot_spline_8seg::n
|
||||
(byte) bitmap_plot_spline_8seg::n#1 n zp ZP_BYTE:8 1501.5
|
||||
(byte) bitmap_plot_spline_8seg::n#2 n zp ZP_BYTE:8 400.4
|
||||
(byte[$100]) bitmap_plot_yhi
|
||||
(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) }
|
||||
(byte[$100]) bitmap_plot_ylo
|
||||
(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) }
|
||||
(byte*) bitmap_screen
|
||||
(struct Segment[$16]) letter_c
|
||||
(const struct Segment[$16]) letter_c#0 letter_c = { fill( $16, 0) }
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(byte) main::angle
|
||||
(byte) main::angle#1 angle zp ZP_BYTE:2 22.0
|
||||
(byte) main::angle#2 angle zp ZP_BYTE:2 3.3000000000000003
|
||||
(label) main::toD0181
|
||||
(word~) main::toD0181_$0
|
||||
(number~) main::toD0181_$1
|
||||
(number~) main::toD0181_$2
|
||||
(number~) main::toD0181_$3
|
||||
(word~) main::toD0181_$4
|
||||
(byte~) main::toD0181_$5
|
||||
(number~) main::toD0181_$6
|
||||
(number~) main::toD0181_$7
|
||||
(number~) main::toD0181_$8
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) BITMAP_SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) BITMAP_GRAPHICS#0/(byte) 4&(byte) $f
|
||||
(byte*) main::toD0181_screen
|
||||
(label) main::vicSelectGfxBank1
|
||||
(byte~) main::vicSelectGfxBank1_$0
|
||||
(label) main::vicSelectGfxBank1_@1
|
||||
(byte*) main::vicSelectGfxBank1_gfx
|
||||
(label) main::vicSelectGfxBank1_toDd001
|
||||
(word~) main::vicSelectGfxBank1_toDd001_$0
|
||||
(byte~) main::vicSelectGfxBank1_toDd001_$1
|
||||
(number~) main::vicSelectGfxBank1_toDd001_$2
|
||||
(number~) main::vicSelectGfxBank1_toDd001_$3
|
||||
(byte*) main::vicSelectGfxBank1_toDd001_gfx
|
||||
(byte) main::vicSelectGfxBank1_toDd001_return
|
||||
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte) 3^>(word)(const byte*) BITMAP_SCREEN#0/(byte) $40
|
||||
(byte) main::w
|
||||
(byte) main::w#1 reg byte x 151.5
|
||||
(byte) main::w#4 reg byte x 67.33333333333333
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
(label) memset::@return
|
||||
(byte) memset::c
|
||||
(byte) memset::c#3 reg byte x 12.625
|
||||
(byte*) memset::dst
|
||||
(byte*) memset::dst#1 dst zp ZP_WORD:41 151.5
|
||||
(byte*) memset::dst#2 dst zp ZP_WORD:41 152.5
|
||||
(byte*~) memset::dst#3 dst zp ZP_WORD:41 4.0
|
||||
(byte*) memset::end
|
||||
(byte*) memset::end#0 end zp ZP_WORD:39 17.166666666666664
|
||||
(word) memset::num
|
||||
(word) memset::num#2 num zp ZP_WORD:39 2.0
|
||||
(void*) memset::return
|
||||
(void*) memset::str
|
||||
(void*) memset::str#3 str zp ZP_WORD:41
|
||||
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
|
||||
(word~) mulf16s::$13 $13 zp ZP_WORD:91 4.0
|
||||
(word~) mulf16s::$16 $16 zp ZP_WORD:89 4.0
|
||||
(word~) mulf16s::$17 $17 zp ZP_WORD:91 4.0
|
||||
(word~) mulf16s::$9 $9 zp ZP_WORD:89 4.0
|
||||
(label) mulf16s::@1
|
||||
(label) mulf16s::@2
|
||||
(label) mulf16s::@3
|
||||
(label) mulf16s::@4
|
||||
(label) mulf16s::@5
|
||||
(label) mulf16s::@return
|
||||
(signed word) mulf16s::a
|
||||
(signed word) mulf16s::a#0 a zp ZP_WORD:31 2.0
|
||||
(signed word) mulf16s::a#1 a zp ZP_WORD:31 2.0
|
||||
(signed word) mulf16s::a#2 a zp ZP_WORD:31 2.0
|
||||
(signed word) mulf16s::a#3 a zp ZP_WORD:31 2.0
|
||||
(signed word) mulf16s::a#4 a zp ZP_WORD:31 0.7692307692307693
|
||||
(signed word) mulf16s::b
|
||||
(signed word) mulf16s::b#0 b zp ZP_WORD:33 4.0
|
||||
(signed word) mulf16s::b#1 b zp ZP_WORD:33 4.0
|
||||
(signed word) mulf16s::b#2 b zp ZP_WORD:33 4.0
|
||||
(signed word) mulf16s::b#3 b zp ZP_WORD:33 4.0
|
||||
(signed word) mulf16s::b#4 b zp ZP_WORD:33 0.9090909090909092
|
||||
(dword) mulf16s::m
|
||||
(dword) mulf16s::m#0 m zp ZP_DWORD:35 2.0
|
||||
(dword) mulf16s::m#1 m zp ZP_DWORD:35 4.0
|
||||
(dword) mulf16s::m#2 m zp ZP_DWORD:35 4.0
|
||||
(dword) mulf16s::m#4 m zp ZP_DWORD:35 4.0
|
||||
(dword) mulf16s::m#5 m zp ZP_DWORD:35 2.5
|
||||
(signed dword) mulf16s::return
|
||||
(signed dword) mulf16s::return#0 return zp ZP_DWORD:35 1.6666666666666665
|
||||
(signed dword) mulf16s::return#10 return zp ZP_DWORD:35 4.0
|
||||
(signed dword) mulf16s::return#2 return zp ZP_DWORD:35 4.0
|
||||
(signed dword) mulf16s::return#3 return zp ZP_DWORD:35 4.0
|
||||
(signed dword) mulf16s::return#4 return zp ZP_DWORD:35 4.0
|
||||
(dword()) mulf16u((word) mulf16u::a , (word) mulf16u::b)
|
||||
(label) mulf16u::@return
|
||||
(word) mulf16u::a
|
||||
(word) mulf16u::a#0 a zp ZP_WORD:85 2.0
|
||||
(word) mulf16u::b
|
||||
(word) mulf16u::b#0 b zp ZP_WORD:87 2.0
|
||||
(word*) mulf16u::memA
|
||||
(const word*) mulf16u::memA#0 memA = (word*) 248
|
||||
(word*) mulf16u::memB
|
||||
(const word*) mulf16u::memB#0 memB = (word*) 250
|
||||
(dword*) mulf16u::memR
|
||||
(const dword*) mulf16u::memR#0 memR = (dword*) 252
|
||||
(dword) mulf16u::return
|
||||
(dword) mulf16u::return#0 return zp ZP_DWORD:35 1.3333333333333333
|
||||
(dword) mulf16u::return#2 return zp ZP_DWORD:35 4.0
|
||||
(void()) mulf_init()
|
||||
(byte~) mulf_init::$10 reg byte a 22.0
|
||||
(byte~) mulf_init::$11 reg byte a 22.0
|
||||
(byte~) mulf_init::$7 reg byte a 22.0
|
||||
(label) mulf_init::@1
|
||||
(label) mulf_init::@2
|
||||
(label) mulf_init::@3
|
||||
(label) mulf_init::@4
|
||||
(label) mulf_init::@5
|
||||
(label) mulf_init::@6
|
||||
(label) mulf_init::@7
|
||||
(label) mulf_init::@return
|
||||
(byte) mulf_init::c
|
||||
(byte) mulf_init::c#1 reg byte x 2.357142857142857
|
||||
(byte) mulf_init::c#2 reg byte x 22.0
|
||||
(byte) mulf_init::dir
|
||||
(byte) mulf_init::dir#2 dir zp ZP_BYTE:56 4.714285714285714
|
||||
(byte) mulf_init::dir#3 dir zp ZP_BYTE:56 7.333333333333333
|
||||
(word) mulf_init::sqr
|
||||
(word) mulf_init::sqr#1 sqr zp ZP_WORD:50 7.333333333333333
|
||||
(word) mulf_init::sqr#2 sqr zp ZP_WORD:50 22.0
|
||||
(word) mulf_init::sqr#3 sqr zp ZP_WORD:50 9.166666666666666
|
||||
(word) mulf_init::sqr#4 sqr zp ZP_WORD:50 6.6000000000000005
|
||||
(byte*) mulf_init::sqr1_hi
|
||||
(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:47 5.5
|
||||
(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:47 3.0
|
||||
(byte*) mulf_init::sqr1_lo
|
||||
(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:45 16.5
|
||||
(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:45 2.5384615384615383
|
||||
(byte*) mulf_init::sqr2_hi
|
||||
(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:54 3.142857142857143
|
||||
(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:54 11.0
|
||||
(byte*) mulf_init::sqr2_lo
|
||||
(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:52 16.5
|
||||
(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:52 4.125
|
||||
(byte) mulf_init::x_2
|
||||
(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:49 11.0
|
||||
(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:49 4.888888888888889
|
||||
(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:49 8.25
|
||||
(byte) mulf_init::x_255
|
||||
(byte) mulf_init::x_255#1 reg byte x 5.5
|
||||
(byte) mulf_init::x_255#2 reg byte x 11.0
|
||||
(byte[$200]) mulf_sqr1_hi
|
||||
(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) }
|
||||
(byte[$200]) mulf_sqr1_lo
|
||||
(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) }
|
||||
(byte[$200]) mulf_sqr2_hi
|
||||
(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) }
|
||||
(byte[$200]) mulf_sqr2_lo
|
||||
(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) }
|
||||
(struct SplineVector16()) rotate((signed word) rotate::vector_x , (signed word) rotate::vector_y , (byte) rotate::angle)
|
||||
(signed dword~) rotate::$1 $1 zp ZP_DWORD:35 2.0
|
||||
(signed word~) rotate::$10 $10 zp ZP_WORD:81 4.0
|
||||
(signed dword~) rotate::$11 $11 zp ZP_DWORD:35 2.0
|
||||
(signed word~) rotate::$12 $12 zp ZP_WORD:83 4.0
|
||||
(signed word~) rotate::$13 $13 zp ZP_WORD:83 4.0
|
||||
(byte~) rotate::$15 reg byte a 2.0
|
||||
(byte~) rotate::$18 reg byte a 2.0
|
||||
(signed word~) rotate::$2 $2 zp ZP_WORD:77 4.0
|
||||
(signed dword~) rotate::$4 $4 zp ZP_DWORD:35 2.0
|
||||
(signed word~) rotate::$5 $5 zp ZP_WORD:79 4.0
|
||||
(signed dword~) rotate::$8 $8 zp ZP_DWORD:35 2.0
|
||||
(signed word~) rotate::$9 $9 zp ZP_WORD:81 4.0
|
||||
(label) rotate::@1
|
||||
(label) rotate::@2
|
||||
(label) rotate::@3
|
||||
(label) rotate::@4
|
||||
(label) rotate::@return
|
||||
(byte) rotate::angle
|
||||
(byte) rotate::angle#0 reg byte y 202.0
|
||||
(byte) rotate::angle#1 reg byte y 202.0
|
||||
(byte) rotate::angle#2 reg byte y 12.625
|
||||
(signed word) rotate::cos_a
|
||||
(signed word) rotate::cos_a#0 cos_a zp ZP_WORD:31 0.75
|
||||
(struct SplineVector16) rotate::return
|
||||
(signed word) rotate::return_x
|
||||
(signed word) rotate::return_x#0 return_x zp ZP_WORD:23 101.0
|
||||
(signed word) rotate::return_x#1 return_x zp ZP_WORD:23 101.0
|
||||
(signed word) rotate::return_x#2 return_x zp ZP_WORD:23 34.0
|
||||
(signed word) rotate::return_y
|
||||
(signed word) rotate::return_y#0 return_y zp ZP_WORD:25 101.0
|
||||
(signed word) rotate::return_y#1 return_y zp ZP_WORD:25 101.0
|
||||
(signed word) rotate::return_y#2 return_y zp ZP_WORD:25 34.0
|
||||
(signed word) rotate::rotated_x
|
||||
(signed word) rotate::rotated_y
|
||||
(signed word) rotate::sin_a
|
||||
(signed word) rotate::sin_a#0 sin_a zp ZP_WORD:31 0.6666666666666666
|
||||
(struct SplineVector16) rotate::vector
|
||||
(signed word) rotate::vector_x
|
||||
(signed word) rotate::vector_x#0 vector_x zp ZP_WORD:27 67.33333333333333
|
||||
(signed word) rotate::vector_x#1 vector_x zp ZP_WORD:27 67.33333333333333
|
||||
(signed word) rotate::vector_x#2 vector_x zp ZP_WORD:27 7.9230769230769225
|
||||
(signed word) rotate::vector_y
|
||||
(signed word) rotate::vector_y#0 vector_y zp ZP_WORD:29 101.0
|
||||
(signed word) rotate::vector_y#1 vector_y zp ZP_WORD:29 101.0
|
||||
(signed word) rotate::vector_y#2 vector_y zp ZP_WORD:29 11.444444444444443
|
||||
(signed word) rotate::xr
|
||||
(signed word) rotate::xr#0 xr zp ZP_WORD:77 0.25
|
||||
(signed word) rotate::xr#1 xr zp ZP_WORD:77 0.4444444444444444
|
||||
(signed word) rotate::yr
|
||||
(signed word) rotate::yr#0 yr zp ZP_WORD:79 0.23529411764705882
|
||||
(signed word) rotate::yr#1 yr zp ZP_WORD:79 1.3333333333333333
|
||||
(word()) sgn_u16((word) sgn_u16::w)
|
||||
(byte~) sgn_u16::$0 reg byte a 4.0
|
||||
(byte~) sgn_u16::$1 reg byte a 4.0
|
||||
(label) sgn_u16::@1
|
||||
(label) sgn_u16::@return
|
||||
(word) sgn_u16::return
|
||||
(word) sgn_u16::return#0 return zp ZP_WORD:19 4.0
|
||||
(word) sgn_u16::return#1 return zp ZP_WORD:19 4.0
|
||||
(word) sgn_u16::return#4 return zp ZP_WORD:19 1.0
|
||||
(word) sgn_u16::w
|
||||
(word) sgn_u16::w#0 w zp ZP_WORD:17 4.0
|
||||
(word) sgn_u16::w#1 w zp ZP_WORD:17 4.0
|
||||
(word) sgn_u16::w#2 w zp ZP_WORD:17 6.0
|
||||
(void()) show_letter((byte) show_letter::angle)
|
||||
(struct SplineVector16~) show_letter::$2
|
||||
(byte~) show_letter::$20 reg byte x 151.5
|
||||
(byte~) show_letter::$21 reg byte x 151.5
|
||||
(byte~) show_letter::$22 reg byte a 202.0
|
||||
(byte) show_letter::$32 reg byte a 202.0
|
||||
(byte) show_letter::$34 reg byte a 202.0
|
||||
(byte) show_letter::$36 reg byte a 202.0
|
||||
(struct SplineVector16~) show_letter::$7
|
||||
(label) show_letter::@1
|
||||
(label) show_letter::@2
|
||||
(label) show_letter::@3
|
||||
(label) show_letter::@4
|
||||
(label) show_letter::@5
|
||||
(label) show_letter::@6
|
||||
(label) show_letter::@7
|
||||
(label) show_letter::@8
|
||||
(label) show_letter::@9
|
||||
(label) show_letter::@return
|
||||
(byte) show_letter::angle
|
||||
(byte) show_letter::angle#0 angle zp ZP_BYTE:2 3.6724137931034484
|
||||
(signed word) show_letter::current_x
|
||||
(signed word) show_letter::current_x#10 current_x#10 zp ZP_WORD:57 7.76923076923077
|
||||
(signed word~) show_letter::current_x#11 current_x zp ZP_WORD:4 101.0
|
||||
(signed word) show_letter::current_x#4 current_x zp ZP_WORD:4 5.315789473684211
|
||||
(signed word) show_letter::current_y
|
||||
(signed word) show_letter::current_y#10 current_y#10 zp ZP_WORD:59 7.76923076923077
|
||||
(signed word~) show_letter::current_y#11 current_y zp ZP_WORD:6 202.0
|
||||
(signed word) show_letter::current_y#4 current_y zp ZP_WORD:6 5.05
|
||||
(byte) show_letter::i
|
||||
(byte) show_letter::i#1 i zp ZP_BYTE:3 75.75
|
||||
(byte) show_letter::i#10 i zp ZP_BYTE:3 15.538461538461537
|
||||
(signed word) show_letter::segment_to_x
|
||||
(signed word) show_letter::segment_to_y
|
||||
(byte) show_letter::segment_type
|
||||
(byte) show_letter::segment_type#0 reg byte a 151.5
|
||||
(signed word) show_letter::segment_via_x
|
||||
(signed word) show_letter::segment_via_x#0 segment_via_x zp ZP_WORD:23 22.444444444444443
|
||||
(signed word) show_letter::segment_via_y
|
||||
(signed word) show_letter::segment_via_y#0 segment_via_y zp ZP_WORD:25 22.444444444444443
|
||||
(signed word) show_letter::to_x
|
||||
(signed word) show_letter::to_x#0 to_x zp ZP_WORD:27 101.0
|
||||
(signed word) show_letter::to_x#1 to_x zp ZP_WORD:27 101.0
|
||||
(signed word) show_letter::to_x#2 to_x#2 zp ZP_WORD:23 101.0
|
||||
(signed word) show_letter::to_y
|
||||
(signed word) show_letter::to_y#0 to_y zp ZP_WORD:29 101.0
|
||||
(signed word) show_letter::to_y#1 to_y zp ZP_WORD:29 101.0
|
||||
(signed word) show_letter::to_y#2 to_y#2 zp ZP_WORD:25 101.0
|
||||
(signed word) show_letter::via_x
|
||||
(signed word) show_letter::via_x#0 via_x zp ZP_WORD:27 101.0
|
||||
(signed word) show_letter::via_x#1 via_x zp ZP_WORD:27 101.0
|
||||
(signed word) show_letter::via_x#2 via_x#2 zp ZP_WORD:23 101.0
|
||||
(signed word) show_letter::via_y
|
||||
(signed word) show_letter::via_y#0 via_y zp ZP_WORD:29 101.0
|
||||
(signed word) show_letter::via_y#1 via_y zp ZP_WORD:29 101.0
|
||||
(signed word) show_letter::via_y#2 via_y#2 zp ZP_WORD:25 101.0
|
||||
(void()) spline_8segB((signed word) spline_8segB::p0_x , (signed word) spline_8segB::p0_y , (signed word) spline_8segB::p1_x , (signed word) spline_8segB::p1_y , (signed word) spline_8segB::p2_x , (signed word) spline_8segB::p2_y)
|
||||
(signed word~) spline_8segB::$0 $0 zp ZP_WORD:69 4.0
|
||||
(signed word~) spline_8segB::$1 $1 zp ZP_WORD:69 4.0
|
||||
(signed word~) spline_8segB::$10 $10 zp ZP_WORD:23 4.0
|
||||
(signed word~) spline_8segB::$12 $12 zp ZP_WORD:25 4.0
|
||||
(signed word~) spline_8segB::$18 $18 zp ZP_WORD:4 4.0
|
||||
(signed word~) spline_8segB::$19 $19 zp ZP_WORD:4 1.3333333333333333
|
||||
(signed word~) spline_8segB::$20 $20 zp ZP_WORD:6 4.0
|
||||
(signed word~) spline_8segB::$21 $21 zp ZP_WORD:6 2.0
|
||||
(signed word~) spline_8segB::$22 $22 zp ZP_WORD:73 2002.0
|
||||
(signed word~) spline_8segB::$23 $23 zp ZP_WORD:73 500.5
|
||||
(signed word~) spline_8segB::$24 $24 zp ZP_WORD:75 2002.0
|
||||
(signed word~) spline_8segB::$25 $25 zp ZP_WORD:75 667.3333333333334
|
||||
(signed word~) spline_8segB::$3 $3 zp ZP_WORD:71 4.0
|
||||
(byte~) spline_8segB::$31 reg byte x 1501.5
|
||||
(signed word~) spline_8segB::$4 $4 zp ZP_WORD:71 4.0
|
||||
(signed word~) spline_8segB::$6 $6 zp ZP_WORD:23 4.0
|
||||
(signed word~) spline_8segB::$8 $8 zp ZP_WORD:25 4.0
|
||||
(label) spline_8segB::@1
|
||||
(label) spline_8segB::@2
|
||||
(label) spline_8segB::@return
|
||||
(signed word) spline_8segB::a_x
|
||||
(signed word) spline_8segB::a_x#0 a_x zp ZP_WORD:69 0.5
|
||||
(signed word) spline_8segB::a_y
|
||||
(signed word) spline_8segB::a_y#0 a_y zp ZP_WORD:71 0.6000000000000001
|
||||
(signed word) spline_8segB::b_x
|
||||
(signed word) spline_8segB::b_x#0 b_x zp ZP_WORD:23 1.3333333333333333
|
||||
(signed word) spline_8segB::b_y
|
||||
(signed word) spline_8segB::b_y#0 b_y zp ZP_WORD:25 1.3333333333333333
|
||||
(signed word) spline_8segB::i_x
|
||||
(signed word) spline_8segB::i_x#0 i_x zp ZP_WORD:23 0.5714285714285714
|
||||
(signed word) spline_8segB::i_x#1 i_x zp ZP_WORD:23 500.5
|
||||
(signed word) spline_8segB::i_x#2 i_x zp ZP_WORD:23 300.5
|
||||
(signed word) spline_8segB::i_y
|
||||
(signed word) spline_8segB::i_y#0 i_y zp ZP_WORD:25 0.8
|
||||
(signed word) spline_8segB::i_y#1 i_y zp ZP_WORD:25 667.3333333333334
|
||||
(signed word) spline_8segB::i_y#2 i_y zp ZP_WORD:25 273.1818181818182
|
||||
(signed word) spline_8segB::j_x
|
||||
(signed word) spline_8segB::j_x#0 j_x zp ZP_WORD:69 55.72222222222223
|
||||
(signed word) spline_8segB::j_y
|
||||
(signed word) spline_8segB::j_y#0 j_y zp ZP_WORD:71 59.0
|
||||
(byte) spline_8segB::n
|
||||
(byte) spline_8segB::n#1 reg byte y 1501.5
|
||||
(byte) spline_8segB::n#2 reg byte y 250.25
|
||||
(struct SplineVector16) spline_8segB::p0
|
||||
(signed word) spline_8segB::p0_x
|
||||
(signed word) spline_8segB::p0_x#0 p0_x zp ZP_WORD:4 4.863636363636363
|
||||
(signed word) spline_8segB::p0_y
|
||||
(signed word) spline_8segB::p0_y#0 p0_y zp ZP_WORD:6 4.863636363636363
|
||||
(struct SplineVector16) spline_8segB::p1
|
||||
(signed word) spline_8segB::p1_x
|
||||
(signed word) spline_8segB::p1_x#0 p1_x zp ZP_WORD:23 10.499999999999998
|
||||
(signed word) spline_8segB::p1_y
|
||||
(signed word) spline_8segB::p1_y#0 p1_y zp ZP_WORD:25 9.545454545454545
|
||||
(struct SplineVector16) spline_8segB::p2
|
||||
(signed word) spline_8segB::p2_x
|
||||
(signed word) spline_8segB::p2_x#0 p2_x zp ZP_WORD:57 34.33333333333333
|
||||
(signed word) spline_8segB::p2_y
|
||||
(signed word) spline_8segB::p2_y#0 p2_y zp ZP_WORD:59 20.599999999999998
|
||||
(signed word) spline_8segB::p_x
|
||||
(signed word) spline_8segB::p_x#0 p_x zp ZP_WORD:4 2.0
|
||||
(signed word) spline_8segB::p_x#1 p_x zp ZP_WORD:4 334.0
|
||||
(signed word) spline_8segB::p_x#2 p_x zp ZP_WORD:4 375.625
|
||||
(signed word) spline_8segB::p_y
|
||||
(signed word) spline_8segB::p_y#0 p_y zp ZP_WORD:6 4.0
|
||||
(signed word) spline_8segB::p_y#1 p_y zp ZP_WORD:6 286.2857142857143
|
||||
(signed word) spline_8segB::p_y#2 p_y zp ZP_WORD:6 333.8888888888889
|
||||
|
||||
zp ZP_BYTE:2 [ main::angle#2 main::angle#1 show_letter::angle#0 ]
|
||||
reg byte x [ main::w#4 main::w#1 ]
|
||||
zp ZP_BYTE:3 [ show_letter::i#10 show_letter::i#1 ]
|
||||
zp ZP_WORD:4 [ show_letter::current_x#4 show_letter::current_x#11 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#0 bitmap_line::x1#1 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#3 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 spline_8segB::p0_x#0 bitmap_plot_spline_8seg::current_x#2 bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::current_x#1 spline_8segB::p_x#2 spline_8segB::p_x#0 spline_8segB::p_x#1 spline_8segB::$18 spline_8segB::$19 ]
|
||||
zp ZP_WORD:6 [ show_letter::current_y#4 show_letter::current_y#11 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#0 bitmap_line::y1#1 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 spline_8segB::p0_y#0 bitmap_plot_spline_8seg::current_y#2 bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::current_y#1 spline_8segB::p_y#2 spline_8segB::p_y#0 spline_8segB::p_y#1 spline_8segB::$20 spline_8segB::$21 ]
|
||||
zp ZP_BYTE:8 [ bitmap_plot_spline_8seg::n#2 bitmap_plot_spline_8seg::n#1 ]
|
||||
zp ZP_WORD:9 [ bitmap_line::x2#10 bitmap_line::x2#13 bitmap_line::x2#0 ]
|
||||
zp ZP_WORD:11 [ bitmap_line::y2#11 bitmap_line::y2#13 bitmap_line::y2#0 ]
|
||||
zp ZP_WORD:13 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
|
||||
zp ZP_WORD:15 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
|
||||
reg byte x [ bitmap_plot::y#4 bitmap_plot::y#3 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ]
|
||||
zp ZP_WORD:17 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp ZP_WORD:19 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
||||
zp ZP_WORD:21 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
||||
reg byte y [ spline_8segB::n#2 spline_8segB::n#1 ]
|
||||
zp ZP_WORD:23 [ spline_8segB::i_x#2 spline_8segB::i_x#0 spline_8segB::i_x#1 spline_8segB::$10 spline_8segB::$6 spline_8segB::b_x#0 show_letter::segment_via_x#0 spline_8segB::p1_x#0 rotate::return_x#0 show_letter::to_x#2 rotate::return_x#2 rotate::return_x#1 show_letter::via_x#2 ]
|
||||
zp ZP_WORD:25 [ spline_8segB::i_y#2 spline_8segB::i_y#0 spline_8segB::i_y#1 spline_8segB::$12 spline_8segB::$8 spline_8segB::b_y#0 show_letter::segment_via_y#0 spline_8segB::p1_y#0 rotate::return_y#0 show_letter::to_y#2 rotate::return_y#2 rotate::return_y#1 show_letter::via_y#2 ]
|
||||
reg byte y [ rotate::angle#2 rotate::angle#0 rotate::angle#1 ]
|
||||
zp ZP_WORD:27 [ rotate::vector_x#2 rotate::vector_x#0 rotate::vector_x#1 show_letter::to_x#1 show_letter::via_x#1 show_letter::to_x#0 show_letter::via_x#0 ]
|
||||
zp ZP_WORD:29 [ rotate::vector_y#2 rotate::vector_y#0 rotate::vector_y#1 show_letter::to_y#1 show_letter::via_y#1 show_letter::to_y#0 show_letter::via_y#0 ]
|
||||
zp ZP_WORD:31 [ mulf16s::a#4 mulf16s::a#0 mulf16s::a#1 mulf16s::a#2 mulf16s::a#3 rotate::cos_a#0 rotate::sin_a#0 ]
|
||||
zp ZP_WORD:33 [ mulf16s::b#4 mulf16s::b#0 mulf16s::b#1 mulf16s::b#2 mulf16s::b#3 ]
|
||||
zp ZP_DWORD:35 [ mulf16s::m#4 mulf16s::m#5 mulf16s::m#1 mulf16s::m#0 mulf16s::m#2 mulf16u::return#2 mulf16s::return#0 mulf16s::return#2 rotate::$1 mulf16s::return#3 rotate::$4 mulf16s::return#4 rotate::$8 mulf16s::return#10 rotate::$11 mulf16u::return#0 ]
|
||||
zp ZP_WORD:39 [ memset::num#2 memset::end#0 ]
|
||||
zp ZP_WORD:41 [ memset::str#3 memset::dst#2 memset::dst#3 memset::dst#1 ]
|
||||
reg byte x [ memset::c#3 ]
|
||||
reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
||||
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
|
||||
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
|
||||
zp ZP_WORD:43 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
||||
reg byte x [ mulf_init::c#2 mulf_init::c#1 ]
|
||||
zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
|
||||
zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
||||
zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
|
||||
zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
|
||||
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||
zp ZP_WORD:52 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
|
||||
zp ZP_WORD:54 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
|
||||
zp ZP_BYTE:56 [ mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
reg byte a [ show_letter::$32 ]
|
||||
reg byte x [ show_letter::$20 ]
|
||||
zp ZP_WORD:57 [ show_letter::current_x#10 spline_8segB::p2_x#0 ]
|
||||
zp ZP_WORD:59 [ show_letter::current_y#10 spline_8segB::p2_y#0 ]
|
||||
reg byte a [ show_letter::$34 ]
|
||||
reg byte x [ show_letter::$21 ]
|
||||
reg byte a [ show_letter::$36 ]
|
||||
reg byte a [ show_letter::$22 ]
|
||||
reg byte a [ show_letter::segment_type#0 ]
|
||||
reg byte x [ bitmap_plot_spline_8seg::$8 ]
|
||||
reg byte x [ bitmap_plot_spline_8seg::$9 ]
|
||||
zp ZP_WORD:61 [ bitmap_line::dx#0 ]
|
||||
zp ZP_WORD:63 [ bitmap_line::sx#0 ]
|
||||
zp ZP_WORD:65 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ]
|
||||
zp ZP_WORD:67 [ bitmap_plot::$1 ]
|
||||
reg byte a [ bitmap_plot::$2 ]
|
||||
reg byte a [ sgn_u16::$0 ]
|
||||
reg byte a [ sgn_u16::$1 ]
|
||||
reg byte a [ abs_u16::$0 ]
|
||||
reg byte a [ abs_u16::$1 ]
|
||||
zp ZP_WORD:69 [ spline_8segB::$0 spline_8segB::$1 spline_8segB::a_x#0 spline_8segB::j_x#0 ]
|
||||
zp ZP_WORD:71 [ spline_8segB::$3 spline_8segB::$4 spline_8segB::a_y#0 spline_8segB::j_y#0 ]
|
||||
zp ZP_WORD:73 [ spline_8segB::$22 spline_8segB::$23 ]
|
||||
zp ZP_WORD:75 [ spline_8segB::$24 spline_8segB::$25 ]
|
||||
reg byte x [ spline_8segB::$31 ]
|
||||
zp ZP_WORD:77 [ rotate::$2 rotate::xr#0 rotate::xr#1 ]
|
||||
zp ZP_WORD:79 [ rotate::$5 rotate::yr#0 rotate::yr#1 ]
|
||||
zp ZP_WORD:81 [ rotate::$9 rotate::$10 ]
|
||||
zp ZP_WORD:83 [ rotate::$12 rotate::$13 ]
|
||||
reg byte a [ rotate::$15 ]
|
||||
reg byte a [ rotate::$18 ]
|
||||
zp ZP_WORD:85 [ mulf16u::a#0 ]
|
||||
zp ZP_WORD:87 [ mulf16u::b#0 ]
|
||||
zp ZP_WORD:89 [ mulf16s::$9 mulf16s::$16 ]
|
||||
zp ZP_WORD:91 [ mulf16s::$13 mulf16s::$17 ]
|
||||
zp ZP_BYTE:93 [ bitmap_init::$7 ]
|
||||
reg byte a [ bitmap_init::$4 ]
|
||||
reg byte a [ bitmap_init::$5 ]
|
||||
reg byte a [ bitmap_init::$6 ]
|
||||
reg byte a [ mulf_init::$7 ]
|
||||
reg byte a [ mulf_init::$10 ]
|
||||
reg byte a [ mulf_init::$11 ]
|
@ -9,12 +9,27 @@
|
||||
.label SPRITES_ENABLE = $d015
|
||||
.label BORDERCOL = $d020
|
||||
.label SPRITES_COLS = $d027
|
||||
// CIA #2 Timer A+B Value (32-bit)
|
||||
.label CIA2_TIMER_AB = $dd04
|
||||
// CIA #2 Timer A Control Register
|
||||
.label CIA2_TIMER_A_CONTROL = $dd0e
|
||||
// CIA #2 Timer B Control Register
|
||||
.label CIA2_TIMER_B_CONTROL = $dd0f
|
||||
// Timer Control - Start/stop timer (0:stop, 1: start)
|
||||
.const CIA_TIMER_CONTROL_START = 1
|
||||
// Timer Control - Time CONTINUOUS/ONE-SHOT (0:CONTINUOUS, 1: ONE-SHOT)
|
||||
.const CIA_TIMER_CONTROL_CONTINUOUS = 0
|
||||
// Timer B Control - Timer counts (00:system cycles, 01: CNT pulses, 10: timer A underflow, 11: time A underflow while CNT is high)
|
||||
.const CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40
|
||||
.const GREEN = 5
|
||||
.const LIGHT_BLUE = $e
|
||||
// Clock cycles used to start & read the cycle clock by calling clock_start() and clock() once. Can be subtracted when calculating the number of cycles used by a routine.
|
||||
// To make precise cycle measurements interrupts and the display must be disabled so neither steals any cycles from the code.
|
||||
.const CLOCKS_PER_INIT = $12
|
||||
.label SCREEN = $400
|
||||
// A single sprite
|
||||
.label SPRITE = $3000
|
||||
.label SIN = COS+$40
|
||||
.label COS = SIN+$40
|
||||
// sin(x) = cos(x+PI/2)
|
||||
main: {
|
||||
sei
|
||||
@ -23,20 +38,22 @@ main: {
|
||||
rts
|
||||
}
|
||||
anim: {
|
||||
.label _4 = 5
|
||||
.label _6 = 5
|
||||
.label _9 = 5
|
||||
.label _10 = 5
|
||||
.label _11 = 5
|
||||
.label _12 = 5
|
||||
.label x = $13
|
||||
.label y = $14
|
||||
.label xr = $15
|
||||
.label yr = $17
|
||||
.label xpos = $19
|
||||
.label _5 = $c
|
||||
.label _7 = $c
|
||||
.label _10 = $c
|
||||
.label _11 = $c
|
||||
.label _12 = $c
|
||||
.label _13 = $c
|
||||
.label _28 = $22
|
||||
.label x = $1a
|
||||
.label y = $1b
|
||||
.label xr = $1c
|
||||
.label yr = $1e
|
||||
.label xpos = $20
|
||||
.label sprite_msb = 4
|
||||
.label i = 3
|
||||
.label angle = 2
|
||||
.label cyclecount = $22
|
||||
lda #0
|
||||
sta angle
|
||||
b2:
|
||||
@ -44,6 +61,7 @@ anim: {
|
||||
cmp RASTER
|
||||
bne b2
|
||||
inc BORDERCOL
|
||||
jsr clock_start
|
||||
lda #0
|
||||
sta sprite_msb
|
||||
sta i
|
||||
@ -59,18 +77,18 @@ anim: {
|
||||
jsr mulf8u_prepare
|
||||
ldy x
|
||||
jsr mulf8s_prepared
|
||||
lda _4
|
||||
lda _5
|
||||
asl
|
||||
sta xr
|
||||
lda _4+1
|
||||
lda _5+1
|
||||
rol
|
||||
sta xr+1
|
||||
ldy y
|
||||
jsr mulf8s_prepared
|
||||
lda _6
|
||||
lda _7
|
||||
asl
|
||||
sta yr
|
||||
lda _6+1
|
||||
lda _7+1
|
||||
rol
|
||||
sta yr+1
|
||||
ldy angle
|
||||
@ -78,26 +96,26 @@ anim: {
|
||||
jsr mulf8u_prepare
|
||||
ldy y
|
||||
jsr mulf8s_prepared
|
||||
asl _10
|
||||
rol _10+1
|
||||
asl _11
|
||||
rol _11+1
|
||||
lda xr
|
||||
sec
|
||||
sbc _10
|
||||
sbc _11
|
||||
sta xr
|
||||
lda xr+1
|
||||
sbc _10+1
|
||||
sbc _11+1
|
||||
sta xr+1
|
||||
ldy x
|
||||
jsr mulf8s_prepared
|
||||
asl _12
|
||||
rol _12+1
|
||||
asl _13
|
||||
rol _13+1
|
||||
// signed fixed[8.8]
|
||||
lda yr
|
||||
clc
|
||||
adc _12
|
||||
adc _13
|
||||
sta yr
|
||||
lda yr+1
|
||||
adc _12+1
|
||||
adc _13+1
|
||||
sta yr+1
|
||||
lda xr+1
|
||||
tax
|
||||
@ -138,16 +156,134 @@ anim: {
|
||||
lda sprite_msb
|
||||
sta SPRITES_XMSB
|
||||
inc angle
|
||||
jsr clock
|
||||
lda cyclecount
|
||||
sec
|
||||
sbc #<CLOCKS_PER_INIT
|
||||
sta cyclecount
|
||||
lda cyclecount+1
|
||||
sbc #>CLOCKS_PER_INIT
|
||||
sta cyclecount+1
|
||||
lda cyclecount+2
|
||||
sbc #<CLOCKS_PER_INIT>>$10
|
||||
sta cyclecount+2
|
||||
lda cyclecount+3
|
||||
sbc #>CLOCKS_PER_INIT>>$10
|
||||
sta cyclecount+3
|
||||
jsr print_dword_at
|
||||
lda #LIGHT_BLUE
|
||||
sta BORDERCOL
|
||||
jmp b2
|
||||
}
|
||||
// Print a dword as HEX at a specific position
|
||||
// print_dword_at(dword zeropage($22) dw)
|
||||
print_dword_at: {
|
||||
.label dw = $22
|
||||
lda dw+2
|
||||
sta print_word_at.w
|
||||
lda dw+3
|
||||
sta print_word_at.w+1
|
||||
lda #<SCREEN
|
||||
sta print_word_at.at
|
||||
lda #>SCREEN
|
||||
sta print_word_at.at+1
|
||||
jsr print_word_at
|
||||
lda dw
|
||||
sta print_word_at.w
|
||||
lda dw+1
|
||||
sta print_word_at.w+1
|
||||
lda #<SCREEN+4
|
||||
sta print_word_at.at
|
||||
lda #>SCREEN+4
|
||||
sta print_word_at.at+1
|
||||
jsr print_word_at
|
||||
rts
|
||||
}
|
||||
// Print a word as HEX at a specific position
|
||||
// print_word_at(word zeropage(5) w, byte* zeropage(7) at)
|
||||
print_word_at: {
|
||||
.label w = 5
|
||||
.label at = 7
|
||||
lda w+1
|
||||
sta print_byte_at.b
|
||||
jsr print_byte_at
|
||||
lda w
|
||||
sta print_byte_at.b
|
||||
lda print_byte_at.at
|
||||
clc
|
||||
adc #2
|
||||
sta print_byte_at.at
|
||||
bcc !+
|
||||
inc print_byte_at.at+1
|
||||
!:
|
||||
jsr print_byte_at
|
||||
rts
|
||||
}
|
||||
// Print a byte as HEX at a specific position
|
||||
// print_byte_at(byte zeropage(9) b, byte* zeropage(7) at)
|
||||
print_byte_at: {
|
||||
.label b = 9
|
||||
.label at = 7
|
||||
lda b
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
ldx print_hextab,y
|
||||
lda at
|
||||
sta print_char_at.at
|
||||
lda at+1
|
||||
sta print_char_at.at+1
|
||||
jsr print_char_at
|
||||
lda #$f
|
||||
and b
|
||||
tay
|
||||
lda at
|
||||
clc
|
||||
adc #1
|
||||
sta print_char_at.at
|
||||
lda at+1
|
||||
adc #0
|
||||
sta print_char_at.at+1
|
||||
ldx print_hextab,y
|
||||
jsr print_char_at
|
||||
rts
|
||||
}
|
||||
// Print a single char
|
||||
// print_char_at(byte register(X) ch, byte* zeropage($a) at)
|
||||
print_char_at: {
|
||||
.label at = $a
|
||||
txa
|
||||
ldy #0
|
||||
sta (at),y
|
||||
rts
|
||||
}
|
||||
// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program).
|
||||
// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start()
|
||||
clock: {
|
||||
.label return = $22
|
||||
lda #<$ffffffff
|
||||
sec
|
||||
sbc CIA2_TIMER_AB
|
||||
sta return
|
||||
lda #>$ffffffff
|
||||
sbc CIA2_TIMER_AB+1
|
||||
sta return+1
|
||||
lda #<$ffffffff>>$10
|
||||
sbc CIA2_TIMER_AB+2
|
||||
sta return+2
|
||||
lda #>$ffffffff>>$10
|
||||
sbc CIA2_TIMER_AB+3
|
||||
sta return+3
|
||||
rts
|
||||
}
|
||||
// Calculate fast multiply with a prepared unsigned byte to a word result
|
||||
// The prepared number is set by calling mulf8s_prepare(byte a)
|
||||
// mulf8s_prepared(signed byte register(Y) b)
|
||||
mulf8s_prepared: {
|
||||
.label memA = $fd
|
||||
.label m = 5
|
||||
.label m = $c
|
||||
tya
|
||||
jsr mulf8u_prepared
|
||||
lda memA
|
||||
@ -174,7 +310,7 @@ mulf8s_prepared: {
|
||||
mulf8u_prepared: {
|
||||
.label resL = $fe
|
||||
.label memB = $ff
|
||||
.label return = 5
|
||||
.label return = $c
|
||||
sta memB
|
||||
tax
|
||||
sec
|
||||
@ -206,6 +342,28 @@ mulf8u_prepare: {
|
||||
sta mulf8u_prepared.sm4+1
|
||||
rts
|
||||
}
|
||||
// Reset & start the processor clock time. The value can be read using clock().
|
||||
// This uses CIA #2 Timer A+B on the C64
|
||||
clock_start: {
|
||||
// Setup CIA#2 timer A to count (down) CPU cycles
|
||||
lda #CIA_TIMER_CONTROL_CONTINUOUS
|
||||
sta CIA2_TIMER_A_CONTROL
|
||||
lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
|
||||
sta CIA2_TIMER_B_CONTROL
|
||||
lda #<$ffffffff
|
||||
sta CIA2_TIMER_AB
|
||||
lda #>$ffffffff
|
||||
sta CIA2_TIMER_AB+1
|
||||
lda #<$ffffffff>>$10
|
||||
sta CIA2_TIMER_AB+2
|
||||
lda #>$ffffffff>>$10
|
||||
sta CIA2_TIMER_AB+3
|
||||
lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
|
||||
sta CIA2_TIMER_B_CONTROL
|
||||
lda #CIA_TIMER_CONTROL_START
|
||||
sta CIA2_TIMER_A_CONTROL
|
||||
rts
|
||||
}
|
||||
init: {
|
||||
.label sprites_ptr = SCREEN+$3f8
|
||||
jsr mulf_init
|
||||
@ -224,13 +382,13 @@ init: {
|
||||
}
|
||||
// Initialize the mulf_sqr multiplication tables with f(x)=int(x*x/4)
|
||||
mulf_init: {
|
||||
.label sqr1_hi = 9
|
||||
.label sqr = $c
|
||||
.label sqr1_lo = 7
|
||||
.label x_2 = $b
|
||||
.label sqr2_hi = $10
|
||||
.label sqr2_lo = $e
|
||||
.label dir = $12
|
||||
.label sqr1_hi = $10
|
||||
.label sqr = $13
|
||||
.label sqr1_lo = $e
|
||||
.label x_2 = $12
|
||||
.label sqr2_hi = $17
|
||||
.label sqr2_lo = $15
|
||||
.label dir = $19
|
||||
lda #0
|
||||
sta x_2
|
||||
lda #<mulf_sqr1_hi+1
|
||||
@ -343,20 +501,14 @@ mulf_init: {
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
// Sine and Cosine tables
|
||||
// Angles: $00=0, $80=PI,$100=2*PI
|
||||
// Sine/Cosine: signed fixed [-$7f,$7f]
|
||||
.align $40
|
||||
COS:
|
||||
{
|
||||
.var min = -$7fff
|
||||
.var max = $7fff
|
||||
.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))
|
||||
}
|
||||
}
|
||||
SIN:
|
||||
.for(var i=0;i<$140;i++)
|
||||
.byte >round($7fff*sin(i*2*PI/256))
|
||||
|
||||
// Positions to rotate
|
||||
xs: .byte -$46, -$46, -$46, 0, 0, $46, $46, $46
|
||||
|
@ -25,198 +25,276 @@ main::@return: scope:[main] from main::@1
|
||||
anim: scope:[anim] from main::@1
|
||||
[9] phi()
|
||||
to:anim::@1
|
||||
anim::@1: scope:[anim] from anim anim::@7
|
||||
[10] (byte) anim::angle#6 ← phi( anim/(byte) 0 anim::@7/(byte) anim::angle#1 )
|
||||
anim::@1: scope:[anim] from anim anim::@15
|
||||
[10] (byte) anim::angle#9 ← phi( anim/(byte) 0 anim::@15/(byte) anim::angle#1 )
|
||||
to:anim::@2
|
||||
anim::@2: scope:[anim] from anim::@1 anim::@2
|
||||
[11] if(*((const byte*) RASTER#0)!=(byte) $ff) goto anim::@2
|
||||
to:anim::@3
|
||||
anim::@3: scope:[anim] from anim::@2
|
||||
[12] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
|
||||
[13] call clock_start
|
||||
to:anim::@4
|
||||
anim::@4: scope:[anim] from anim::@3 anim::@5
|
||||
[13] (byte) anim::sprite_msb#10 ← phi( anim::@5/(byte) anim::sprite_msb#5 anim::@3/(byte) 0 )
|
||||
[13] (byte) anim::i#10 ← phi( anim::@5/(byte) anim::i#1 anim::@3/(byte) 0 )
|
||||
[14] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10)
|
||||
[15] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10)
|
||||
[14] (byte) anim::sprite_msb#10 ← phi( anim::@5/(byte) anim::sprite_msb#5 anim::@3/(byte) 0 )
|
||||
[14] (byte) anim::i#10 ← phi( anim::@5/(byte) anim::i#1 anim::@3/(byte) 0 )
|
||||
[15] (signed byte) anim::x#0 ← *((const signed byte[8]) xs#0 + (byte) anim::i#10)
|
||||
[16] (signed byte) anim::y#0 ← *((const signed byte[8]) ys#0 + (byte) anim::i#10)
|
||||
to:anim::mulf8s_prepare1
|
||||
anim::mulf8s_prepare1: scope:[anim] from anim::@4
|
||||
[16] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte[$140]) COS#0 + (byte) anim::angle#6)
|
||||
[17] call mulf8u_prepare
|
||||
[17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#9)
|
||||
[18] call mulf8u_prepare
|
||||
to:anim::@8
|
||||
anim::@8: scope:[anim] from anim::mulf8s_prepare1
|
||||
[18] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0
|
||||
[19] call mulf8s_prepared
|
||||
[19] (signed byte) mulf8s_prepared::b#0 ← (signed byte) anim::x#0
|
||||
[20] call mulf8s_prepared
|
||||
to:anim::@10
|
||||
anim::@10: scope:[anim] from anim::@8
|
||||
[20] (signed word~) anim::$4 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[21] (signed word) anim::xr#0 ← (signed word~) anim::$4 << (byte) 1
|
||||
[22] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0
|
||||
[23] call mulf8s_prepared
|
||||
[21] (signed word~) anim::$5 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[22] (signed word) anim::xr#0 ← (signed word~) anim::$5 << (byte) 1
|
||||
[23] (signed byte) mulf8s_prepared::b#1 ← (signed byte) anim::y#0
|
||||
[24] call mulf8s_prepared
|
||||
to:anim::@11
|
||||
anim::@11: scope:[anim] from anim::@10
|
||||
[24] (signed word~) anim::$6 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[25] (signed word) anim::yr#0 ← (signed word~) anim::$6 << (byte) 1
|
||||
[25] (signed word~) anim::$7 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[26] (signed word) anim::yr#0 ← (signed word~) anim::$7 << (byte) 1
|
||||
to:anim::mulf8s_prepare2
|
||||
anim::mulf8s_prepare2: scope:[anim] from anim::@11
|
||||
[26] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte*) SIN#0 + (byte) anim::angle#6)
|
||||
[27] call mulf8u_prepare
|
||||
[27] (byte~) mulf8u_prepare::a#4 ← (byte)(signed byte)*((const byte[$140]) SIN#0 + (byte) anim::angle#9)
|
||||
[28] call mulf8u_prepare
|
||||
to:anim::@9
|
||||
anim::@9: scope:[anim] from anim::mulf8s_prepare2
|
||||
[28] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0
|
||||
[29] call mulf8s_prepared
|
||||
[29] (signed byte) mulf8s_prepared::b#2 ← (signed byte) anim::y#0
|
||||
[30] call mulf8s_prepared
|
||||
to:anim::@12
|
||||
anim::@12: scope:[anim] from anim::@9
|
||||
[30] (signed word~) anim::$9 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[31] (signed word~) anim::$10 ← (signed word~) anim::$9 << (byte) 1
|
||||
[32] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$10
|
||||
[33] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0
|
||||
[34] call mulf8s_prepared
|
||||
[31] (signed word~) anim::$10 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[32] (signed word~) anim::$11 ← (signed word~) anim::$10 << (byte) 1
|
||||
[33] (signed word) anim::xr#1 ← (signed word) anim::xr#0 - (signed word~) anim::$11
|
||||
[34] (signed byte) mulf8s_prepared::b#3 ← (signed byte) anim::x#0
|
||||
[35] call mulf8s_prepared
|
||||
to:anim::@13
|
||||
anim::@13: scope:[anim] from anim::@12
|
||||
[35] (signed word~) anim::$11 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[36] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte) 1
|
||||
[37] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12
|
||||
[38] (byte~) anim::$15 ← > (signed word) anim::xr#1
|
||||
[39] (signed word) anim::xpos#0 ← (signed byte)(byte~) anim::$15 + (signed byte) $18+(signed word) $95
|
||||
[40] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte) 1
|
||||
[41] (byte~) anim::$18 ← > (signed word) anim::xpos#0
|
||||
[42] if((byte~) anim::$18==(byte) 0) goto anim::@5
|
||||
[36] (signed word~) anim::$12 ← (signed word)(word) mulf8s_prepared::m#4
|
||||
[37] (signed word~) anim::$13 ← (signed word~) anim::$12 << (byte) 1
|
||||
[38] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$13
|
||||
[39] (byte~) anim::$16 ← > (signed word) anim::xr#1
|
||||
[40] (signed word) anim::xpos#0 ← (signed byte)(byte~) anim::$16 + (signed byte) $18+(signed word) $95
|
||||
[41] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte) 1
|
||||
[42] (byte~) anim::$19 ← > (signed word) anim::xpos#0
|
||||
[43] if((byte~) anim::$19==(byte) 0) goto anim::@5
|
||||
to:anim::@6
|
||||
anim::@6: scope:[anim] from anim::@13
|
||||
[43] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte) $80
|
||||
[44] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte) $80
|
||||
to:anim::@5
|
||||
anim::@5: scope:[anim] from anim::@13 anim::@6
|
||||
[44] (byte) anim::sprite_msb#5 ← phi( anim::@6/(byte) anim::sprite_msb#2 anim::@13/(byte) anim::sprite_msb#1 )
|
||||
[45] (byte~) anim::$22 ← > (signed word) anim::yr#1
|
||||
[46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte) $59+(byte) $33
|
||||
[47] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte) 1
|
||||
[48] (byte~) anim::$25 ← < (signed word) anim::xpos#0
|
||||
[49] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$25
|
||||
[50] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0
|
||||
[51] (byte) anim::i#1 ← ++ (byte) anim::i#10
|
||||
[52] if((byte) anim::i#1!=(byte) 8) goto anim::@4
|
||||
[45] (byte) anim::sprite_msb#5 ← phi( anim::@6/(byte) anim::sprite_msb#2 anim::@13/(byte) anim::sprite_msb#1 )
|
||||
[46] (byte~) anim::$23 ← > (signed word) anim::yr#1
|
||||
[47] (byte) anim::ypos#0 ← (byte~) anim::$23 + (byte) $59+(byte) $33
|
||||
[48] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte) 1
|
||||
[49] (byte~) anim::$26 ← < (signed word) anim::xpos#0
|
||||
[50] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$26
|
||||
[51] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0
|
||||
[52] (byte) anim::i#1 ← ++ (byte) anim::i#10
|
||||
[53] if((byte) anim::i#1!=(byte) 8) goto anim::@4
|
||||
to:anim::@7
|
||||
anim::@7: scope:[anim] from anim::@5
|
||||
[53] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5
|
||||
[54] (byte) anim::angle#1 ← ++ (byte) anim::angle#6
|
||||
[55] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0
|
||||
[54] *((const byte*) SPRITES_XMSB#0) ← (byte) anim::sprite_msb#5
|
||||
[55] (byte) anim::angle#1 ← ++ (byte) anim::angle#9
|
||||
[56] call clock
|
||||
[57] (dword) clock::return#2 ← (dword) clock::return#0
|
||||
to:anim::@14
|
||||
anim::@14: scope:[anim] from anim::@7
|
||||
[58] (dword~) anim::$28 ← (dword) clock::return#2
|
||||
[59] (dword) anim::cyclecount#0 ← (dword~) anim::$28 - (const dword) CLOCKS_PER_INIT#0
|
||||
[60] (dword) print_dword_at::dw#0 ← (dword) anim::cyclecount#0
|
||||
[61] call print_dword_at
|
||||
to:anim::@15
|
||||
anim::@15: scope:[anim] from anim::@14
|
||||
[62] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0
|
||||
to:anim::@1
|
||||
mulf8s_prepared: scope:[mulf8s_prepared] from anim::@10 anim::@12 anim::@8 anim::@9
|
||||
[56] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@8/(signed byte) mulf8s_prepared::b#0 anim::@9/(signed byte) mulf8s_prepared::b#2 anim::@10/(signed byte) mulf8s_prepared::b#1 anim::@12/(signed byte) mulf8s_prepared::b#3 )
|
||||
[57] (byte) mulf8u_prepared::b#0 ← (byte)(signed byte) mulf8s_prepared::b#4
|
||||
[58] call mulf8u_prepared
|
||||
[59] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0
|
||||
to:mulf8s_prepared::@5
|
||||
mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
|
||||
[60] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2
|
||||
[61] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(signed byte) 0) goto mulf8s_prepared::@1
|
||||
to:mulf8s_prepared::@3
|
||||
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
|
||||
[62] (byte~) mulf8s_prepared::$8 ← > (word) mulf8s_prepared::m#0
|
||||
[63] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$8 - (byte)(signed byte) mulf8s_prepared::b#4
|
||||
[64] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15
|
||||
to:mulf8s_prepared::@1
|
||||
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
|
||||
[65] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@5/(word) mulf8s_prepared::m#0 )
|
||||
[66] if((signed byte) mulf8s_prepared::b#4>=(signed byte) 0) goto mulf8s_prepared::@2
|
||||
to:mulf8s_prepared::@4
|
||||
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
|
||||
[67] (byte~) mulf8s_prepared::$12 ← > (word) mulf8s_prepared::m#5
|
||||
[68] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$12 - (byte)*((const signed byte*) mulf8s_prepared::memA#0)
|
||||
[69] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16
|
||||
to:mulf8s_prepared::@2
|
||||
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
|
||||
[70] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 )
|
||||
to:mulf8s_prepared::@return
|
||||
mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2
|
||||
[71] return
|
||||
print_dword_at: scope:[print_dword_at] from anim::@14
|
||||
[63] (word) print_word_at::w#0 ← > (dword) print_dword_at::dw#0
|
||||
[64] call print_word_at
|
||||
to:print_dword_at::@1
|
||||
print_dword_at::@1: scope:[print_dword_at] from print_dword_at
|
||||
[65] (word) print_word_at::w#1 ← < (dword) print_dword_at::dw#0
|
||||
[66] call print_word_at
|
||||
to:print_dword_at::@return
|
||||
print_dword_at::@return: scope:[print_dword_at] from print_dword_at::@1
|
||||
[67] return
|
||||
to:@return
|
||||
mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared
|
||||
[72] *((const byte*) mulf8u_prepared::memB#0) ← (byte) mulf8u_prepared::b#0
|
||||
asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB }
|
||||
[74] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0)
|
||||
to:mulf8u_prepared::@return
|
||||
mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared
|
||||
print_word_at: scope:[print_word_at] from print_dword_at print_dword_at::@1
|
||||
[68] (byte*) print_word_at::at#2 ← phi( print_dword_at/(const byte*) SCREEN#0 print_dword_at::@1/(const byte*) SCREEN#0+(byte) 4 )
|
||||
[68] (word) print_word_at::w#2 ← phi( print_dword_at/(word) print_word_at::w#0 print_dword_at::@1/(word) print_word_at::w#1 )
|
||||
[69] (byte) print_byte_at::b#0 ← > (word) print_word_at::w#2
|
||||
[70] (byte*) print_byte_at::at#0 ← (byte*) print_word_at::at#2
|
||||
[71] call print_byte_at
|
||||
to:print_word_at::@1
|
||||
print_word_at::@1: scope:[print_word_at] from print_word_at
|
||||
[72] (byte) print_byte_at::b#1 ← < (word) print_word_at::w#2
|
||||
[73] (byte*) print_byte_at::at#1 ← (byte*) print_word_at::at#2 + (byte) 2
|
||||
[74] call print_byte_at
|
||||
to:print_word_at::@return
|
||||
print_word_at::@return: scope:[print_word_at] from print_word_at::@1
|
||||
[75] return
|
||||
to:@return
|
||||
print_byte_at: scope:[print_byte_at] from print_word_at print_word_at::@1
|
||||
[76] (byte*) print_byte_at::at#2 ← phi( print_word_at/(byte*) print_byte_at::at#0 print_word_at::@1/(byte*) print_byte_at::at#1 )
|
||||
[76] (byte) print_byte_at::b#2 ← phi( print_word_at/(byte) print_byte_at::b#0 print_word_at::@1/(byte) print_byte_at::b#1 )
|
||||
[77] (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#2 >> (byte) 4
|
||||
[78] (byte) print_char_at::ch#0 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$0)
|
||||
[79] (byte*) print_char_at::at#0 ← (byte*) print_byte_at::at#2
|
||||
[80] call print_char_at
|
||||
to:print_byte_at::@1
|
||||
print_byte_at::@1: scope:[print_byte_at] from print_byte_at
|
||||
[81] (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte) $f
|
||||
[82] (byte*) print_char_at::at#1 ← (byte*) print_byte_at::at#2 + (byte) 1
|
||||
[83] (byte) print_char_at::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2)
|
||||
[84] call print_char_at
|
||||
to:print_byte_at::@return
|
||||
print_byte_at::@return: scope:[print_byte_at] from print_byte_at::@1
|
||||
[85] return
|
||||
to:@return
|
||||
print_char_at: scope:[print_char_at] from print_byte_at print_byte_at::@1
|
||||
[86] (byte*) print_char_at::at#2 ← phi( print_byte_at/(byte*) print_char_at::at#0 print_byte_at::@1/(byte*) print_char_at::at#1 )
|
||||
[86] (byte) print_char_at::ch#2 ← phi( print_byte_at/(byte) print_char_at::ch#0 print_byte_at::@1/(byte) print_char_at::ch#1 )
|
||||
[87] *((byte*) print_char_at::at#2) ← (byte) print_char_at::ch#2
|
||||
to:print_char_at::@return
|
||||
print_char_at::@return: scope:[print_char_at] from print_char_at
|
||||
[88] return
|
||||
to:@return
|
||||
clock: scope:[clock] from anim::@7
|
||||
[89] (dword) clock::return#0 ← (dword) $ffffffff - *((const dword*) CIA2_TIMER_AB#0)
|
||||
to:clock::@return
|
||||
clock::@return: scope:[clock] from clock
|
||||
[90] return
|
||||
to:@return
|
||||
mulf8s_prepared: scope:[mulf8s_prepared] from anim::@10 anim::@12 anim::@8 anim::@9
|
||||
[91] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@8/(signed byte) mulf8s_prepared::b#0 anim::@9/(signed byte) mulf8s_prepared::b#2 anim::@10/(signed byte) mulf8s_prepared::b#1 anim::@12/(signed byte) mulf8s_prepared::b#3 )
|
||||
[92] (byte) mulf8u_prepared::b#0 ← (byte)(signed byte) mulf8s_prepared::b#4
|
||||
[93] call mulf8u_prepared
|
||||
[94] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0
|
||||
to:mulf8s_prepared::@5
|
||||
mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
|
||||
[95] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2
|
||||
[96] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(signed byte) 0) goto mulf8s_prepared::@1
|
||||
to:mulf8s_prepared::@3
|
||||
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
|
||||
[97] (byte~) mulf8s_prepared::$8 ← > (word) mulf8s_prepared::m#0
|
||||
[98] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$8 - (byte)(signed byte) mulf8s_prepared::b#4
|
||||
[99] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15
|
||||
to:mulf8s_prepared::@1
|
||||
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
|
||||
[100] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@5/(word) mulf8s_prepared::m#0 )
|
||||
[101] if((signed byte) mulf8s_prepared::b#4>=(signed byte) 0) goto mulf8s_prepared::@2
|
||||
to:mulf8s_prepared::@4
|
||||
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
|
||||
[102] (byte~) mulf8s_prepared::$12 ← > (word) mulf8s_prepared::m#5
|
||||
[103] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$12 - (byte)*((const signed byte*) mulf8s_prepared::memA#0)
|
||||
[104] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16
|
||||
to:mulf8s_prepared::@2
|
||||
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
|
||||
[105] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 )
|
||||
to:mulf8s_prepared::@return
|
||||
mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2
|
||||
[106] return
|
||||
to:@return
|
||||
mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared
|
||||
[107] *((const byte*) mulf8u_prepared::memB#0) ← (byte) mulf8u_prepared::b#0
|
||||
asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB }
|
||||
[109] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0)
|
||||
to:mulf8u_prepared::@return
|
||||
mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared
|
||||
[110] return
|
||||
to:@return
|
||||
mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2
|
||||
[76] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 )
|
||||
[77] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2
|
||||
[111] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 )
|
||||
[112] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2
|
||||
asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 }
|
||||
to:mulf8u_prepare::@return
|
||||
mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare
|
||||
[79] return
|
||||
[114] return
|
||||
to:@return
|
||||
clock_start: scope:[clock_start] from anim::@3
|
||||
[115] *((const byte*) CIA2_TIMER_A_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_CONTINUOUS#0
|
||||
[116] *((const byte*) CIA2_TIMER_B_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A#0
|
||||
[117] *((const dword*) CIA2_TIMER_AB#0) ← (dword) $ffffffff
|
||||
[118] *((const byte*) CIA2_TIMER_B_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_START#0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A#0
|
||||
[119] *((const byte*) CIA2_TIMER_A_CONTROL#0) ← (const byte) CIA_TIMER_CONTROL_START#0
|
||||
to:clock_start::@return
|
||||
clock_start::@return: scope:[clock_start] from clock_start
|
||||
[120] return
|
||||
to:@return
|
||||
init: scope:[init] from main
|
||||
[80] phi()
|
||||
[81] call mulf_init
|
||||
[121] phi()
|
||||
[122] call mulf_init
|
||||
to:init::@2
|
||||
init::@2: scope:[init] from init
|
||||
[82] *((const byte*) SPRITES_ENABLE#0) ← (byte) $ff
|
||||
[123] *((const byte*) SPRITES_ENABLE#0) ← (byte) $ff
|
||||
to:init::@1
|
||||
init::@1: scope:[init] from init::@1 init::@2
|
||||
[83] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@2/(byte) 0 )
|
||||
[84] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← (byte)(const byte*) SPRITE#0/(byte) $40
|
||||
[85] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0
|
||||
[86] (byte) init::i#1 ← ++ (byte) init::i#2
|
||||
[87] if((byte) init::i#1!=(byte) 8) goto init::@1
|
||||
[124] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@2/(byte) 0 )
|
||||
[125] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← (byte)(const byte*) SPRITE#0/(byte) $40
|
||||
[126] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0
|
||||
[127] (byte) init::i#1 ← ++ (byte) init::i#2
|
||||
[128] if((byte) init::i#1!=(byte) 8) goto init::@1
|
||||
to:init::@return
|
||||
init::@return: scope:[init] from init::@1
|
||||
[88] return
|
||||
[129] return
|
||||
to:@return
|
||||
mulf_init: scope:[mulf_init] from init
|
||||
[89] phi()
|
||||
[130] phi()
|
||||
to:mulf_init::@1
|
||||
mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2
|
||||
[90] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::x_2#2 )
|
||||
[90] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 )
|
||||
[90] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 )
|
||||
[90] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte) 0 mulf_init::@2/(word) mulf_init::sqr#1 )
|
||||
[90] (byte) mulf_init::c#2 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::c#1 )
|
||||
[91] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2
|
||||
[92] (byte~) mulf_init::$7 ← (byte) mulf_init::c#1 & (byte) 1
|
||||
[93] if((byte~) mulf_init::$7!=(byte) 0) goto mulf_init::@2
|
||||
[131] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::x_2#2 )
|
||||
[131] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 )
|
||||
[131] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 )
|
||||
[131] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte) 0 mulf_init::@2/(word) mulf_init::sqr#1 )
|
||||
[131] (byte) mulf_init::c#2 ← phi( mulf_init/(byte) 0 mulf_init::@2/(byte) mulf_init::c#1 )
|
||||
[132] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2
|
||||
[133] (byte~) mulf_init::$7 ← (byte) mulf_init::c#1 & (byte) 1
|
||||
[134] if((byte~) mulf_init::$7!=(byte) 0) goto mulf_init::@2
|
||||
to:mulf_init::@3
|
||||
mulf_init::@3: scope:[mulf_init] from mulf_init::@1
|
||||
[94] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3
|
||||
[95] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4
|
||||
[135] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3
|
||||
[136] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4
|
||||
to:mulf_init::@2
|
||||
mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@3
|
||||
[96] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@3/(byte) mulf_init::x_2#1 )
|
||||
[96] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@3/(word) mulf_init::sqr#2 )
|
||||
[97] (byte~) mulf_init::$10 ← < (word) mulf_init::sqr#3
|
||||
[98] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$10
|
||||
[99] (byte~) mulf_init::$11 ← > (word) mulf_init::sqr#3
|
||||
[100] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$11
|
||||
[101] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2
|
||||
[102] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2
|
||||
[103] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2
|
||||
[104] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word) $200) goto mulf_init::@1
|
||||
[137] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@3/(byte) mulf_init::x_2#1 )
|
||||
[137] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@3/(word) mulf_init::sqr#2 )
|
||||
[138] (byte~) mulf_init::$10 ← < (word) mulf_init::sqr#3
|
||||
[139] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$10
|
||||
[140] (byte~) mulf_init::$11 ← > (word) mulf_init::sqr#3
|
||||
[141] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$11
|
||||
[142] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2
|
||||
[143] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2
|
||||
[144] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2
|
||||
[145] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word) $200) goto mulf_init::@1
|
||||
to:mulf_init::@4
|
||||
mulf_init::@4: scope:[mulf_init] from mulf_init::@2 mulf_init::@5
|
||||
[105] (byte) mulf_init::dir#2 ← phi( mulf_init::@2/(byte) $ff mulf_init::@5/(byte) mulf_init::dir#3 )
|
||||
[105] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 mulf_init::@5/(byte*) mulf_init::sqr2_hi#1 )
|
||||
[105] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 mulf_init::@5/(byte*) mulf_init::sqr2_lo#1 )
|
||||
[105] (byte) mulf_init::x_255#2 ← phi( mulf_init::@2/(byte) -1 mulf_init::@5/(byte) mulf_init::x_255#1 )
|
||||
[106] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2)
|
||||
[107] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2)
|
||||
[108] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2
|
||||
[109] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2
|
||||
[110] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@7
|
||||
[146] (byte) mulf_init::dir#2 ← phi( mulf_init::@2/(byte) $ff mulf_init::@5/(byte) mulf_init::dir#3 )
|
||||
[146] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 mulf_init::@5/(byte*) mulf_init::sqr2_hi#1 )
|
||||
[146] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 mulf_init::@5/(byte*) mulf_init::sqr2_lo#1 )
|
||||
[146] (byte) mulf_init::x_255#2 ← phi( mulf_init::@2/(byte) -1 mulf_init::@5/(byte) mulf_init::x_255#1 )
|
||||
[147] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2)
|
||||
[148] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2)
|
||||
[149] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2
|
||||
[150] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2
|
||||
[151] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@7
|
||||
to:mulf_init::@5
|
||||
mulf_init::@7: scope:[mulf_init] from mulf_init::@4
|
||||
[111] phi()
|
||||
[152] phi()
|
||||
to:mulf_init::@5
|
||||
mulf_init::@5: scope:[mulf_init] from mulf_init::@4 mulf_init::@7
|
||||
[112] (byte) mulf_init::dir#3 ← phi( mulf_init::@7/(byte) mulf_init::dir#2 mulf_init::@4/(byte) 1 )
|
||||
[113] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2
|
||||
[114] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) goto mulf_init::@4
|
||||
[153] (byte) mulf_init::dir#3 ← phi( mulf_init::@7/(byte) mulf_init::dir#2 mulf_init::@4/(byte) 1 )
|
||||
[154] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2
|
||||
[155] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) goto mulf_init::@4
|
||||
to:mulf_init::@6
|
||||
mulf_init::@6: scope:[mulf_init] from mulf_init::@5
|
||||
[115] *((const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word) $100)
|
||||
[116] *((const byte[$200]) mulf_sqr2_hi#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word) $100)
|
||||
[156] *((const byte[$200]) mulf_sqr2_lo#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word) $100)
|
||||
[157] *((const byte[$200]) mulf_sqr2_hi#0+(word) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word) $100)
|
||||
to:mulf_init::@return
|
||||
mulf_init::@return: scope:[mulf_init] from mulf_init::@6
|
||||
[117] return
|
||||
[158] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,27 +3,40 @@
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
(const byte*) BORDERCOL#0 BORDERCOL = (byte*) 53280
|
||||
(byte[$140]) COS
|
||||
(const byte[$140]) COS#0 COS = kickasm {{ {
|
||||
.var min = -$7fff
|
||||
.var max = $7fff
|
||||
.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))
|
||||
}
|
||||
}
|
||||
}}
|
||||
(dword*) CIA2_TIMER_AB
|
||||
(const dword*) CIA2_TIMER_AB#0 CIA2_TIMER_AB = (dword*) 56580
|
||||
(byte*) CIA2_TIMER_A_CONTROL
|
||||
(const byte*) CIA2_TIMER_A_CONTROL#0 CIA2_TIMER_A_CONTROL = (byte*) 56590
|
||||
(byte*) CIA2_TIMER_B_CONTROL
|
||||
(const byte*) CIA2_TIMER_B_CONTROL#0 CIA2_TIMER_B_CONTROL = (byte*) 56591
|
||||
(byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
|
||||
(byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
|
||||
(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A#0 CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = (byte) $40
|
||||
(byte) CIA_TIMER_CONTROL_CONTINUOUS
|
||||
(const byte) CIA_TIMER_CONTROL_CONTINUOUS#0 CIA_TIMER_CONTROL_CONTINUOUS = (byte) 0
|
||||
(byte) CIA_TIMER_CONTROL_START
|
||||
(const byte) CIA_TIMER_CONTROL_START#0 CIA_TIMER_CONTROL_START = (byte) 1
|
||||
(byte) CIA_TIMER_CONTROL_STOP
|
||||
(dword) CLOCKS_PER_INIT
|
||||
(const dword) CLOCKS_PER_INIT#0 CLOCKS_PER_INIT = (byte) $12
|
||||
(byte*) COS
|
||||
(const byte*) COS#0 COS = (const byte[$140]) SIN#0+(byte) $40
|
||||
(byte) GREEN
|
||||
(const byte) GREEN#0 GREEN = (byte) 5
|
||||
(byte) LIGHT_BLUE
|
||||
(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte) $e
|
||||
(const byte) RADIX::BINARY BINARY = (number) 2
|
||||
(const byte) RADIX::DECIMAL DECIMAL = (number) $a
|
||||
(const byte) RADIX::HEXADECIMAL HEXADECIMAL = (number) $10
|
||||
(const byte) RADIX::OCTAL OCTAL = (number) 8
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (byte*) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (byte*) 1024
|
||||
(byte*) SIN
|
||||
(const byte*) SIN#0 SIN = (const byte[$140]) COS#0+(byte) $40
|
||||
(byte[$140]) SIN
|
||||
(const byte[$140]) SIN#0 SIN = kickasm {{ .for(var i=0;i<$140;i++)
|
||||
.byte >round($7fff*sin(i*2*PI/256))
|
||||
}}
|
||||
(byte*) SPRITE
|
||||
(const byte*) SPRITE#0 SPRITE = (byte*) 12288
|
||||
(byte*) SPRITES_COLS
|
||||
@ -37,21 +50,24 @@
|
||||
(byte*) SPRITES_YPOS
|
||||
(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = (byte*) 53249
|
||||
(void()) anim()
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:5 202.0
|
||||
(signed word~) anim::$11 $11 zp ZP_WORD:5 202.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:5 202.0
|
||||
(byte~) anim::$15 reg byte a 101.0
|
||||
(byte~) anim::$18 reg byte a 202.0
|
||||
(byte~) anim::$22 reg byte a 202.0
|
||||
(byte~) anim::$25 reg byte a 202.0
|
||||
(signed word~) anim::$4 $4 zp ZP_WORD:5 202.0
|
||||
(signed word~) anim::$6 $6 zp ZP_WORD:5 202.0
|
||||
(signed word~) anim::$9 $9 zp ZP_WORD:5 202.0
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:12 202.0
|
||||
(signed word~) anim::$11 $11 zp ZP_WORD:12 202.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:12 202.0
|
||||
(signed word~) anim::$13 $13 zp ZP_WORD:12 202.0
|
||||
(byte~) anim::$16 reg byte a 101.0
|
||||
(byte~) anim::$19 reg byte a 202.0
|
||||
(byte~) anim::$23 reg byte a 202.0
|
||||
(byte~) anim::$26 reg byte a 202.0
|
||||
(dword~) anim::$28 $28 zp ZP_DWORD:34 22.0
|
||||
(signed word~) anim::$5 $5 zp ZP_WORD:12 202.0
|
||||
(signed word~) anim::$7 $7 zp ZP_WORD:12 202.0
|
||||
(label) anim::@1
|
||||
(label) anim::@10
|
||||
(label) anim::@11
|
||||
(label) anim::@12
|
||||
(label) anim::@13
|
||||
(label) anim::@14
|
||||
(label) anim::@15
|
||||
(label) anim::@2
|
||||
(label) anim::@3
|
||||
(label) anim::@4
|
||||
@ -61,9 +77,11 @@
|
||||
(label) anim::@8
|
||||
(label) anim::@9
|
||||
(byte) anim::angle
|
||||
(byte) anim::angle#1 angle zp ZP_BYTE:2 11.0
|
||||
(byte) anim::angle#6 angle zp ZP_BYTE:2 0.5
|
||||
(byte) anim::angle#1 angle zp ZP_BYTE:2 2.75
|
||||
(byte) anim::angle#9 angle zp ZP_BYTE:2 0.4888888888888889
|
||||
(signed byte) anim::cos_a
|
||||
(dword) anim::cyclecount
|
||||
(dword) anim::cyclecount#0 cyclecount zp ZP_DWORD:34 22.0
|
||||
(byte) anim::i
|
||||
(byte) anim::i#1 i zp ZP_BYTE:3 151.5
|
||||
(byte) anim::i#10 i zp ZP_BYTE:3 13.289473684210527
|
||||
@ -82,19 +100,26 @@
|
||||
(byte) anim::sprite_msb#2 sprite_msb zp ZP_BYTE:4 202.0
|
||||
(byte) anim::sprite_msb#5 sprite_msb zp ZP_BYTE:4 34.888888888888886
|
||||
(signed byte) anim::x
|
||||
(signed byte) anim::x#0 x zp ZP_BYTE:19 15.947368421052632
|
||||
(signed byte) anim::x#0 x zp ZP_BYTE:26 15.947368421052632
|
||||
(signed word) anim::xpos
|
||||
(signed word) anim::xpos#0 xpos zp ZP_WORD:25 33.666666666666664
|
||||
(signed word) anim::xpos#0 xpos zp ZP_WORD:32 33.666666666666664
|
||||
(signed word) anim::xr
|
||||
(signed word) anim::xr#0 xr zp ZP_WORD:21 18.363636363636363
|
||||
(signed word) anim::xr#1 xr zp ZP_WORD:21 33.666666666666664
|
||||
(signed word) anim::xr#0 xr zp ZP_WORD:28 18.363636363636363
|
||||
(signed word) anim::xr#1 xr zp ZP_WORD:28 33.666666666666664
|
||||
(signed byte) anim::y
|
||||
(signed byte) anim::y#0 y zp ZP_BYTE:20 23.307692307692307
|
||||
(signed byte) anim::y#0 y zp ZP_BYTE:27 23.307692307692307
|
||||
(byte) anim::ypos
|
||||
(byte) anim::ypos#0 reg byte y 50.5
|
||||
(signed word) anim::yr
|
||||
(signed word) anim::yr#0 yr zp ZP_WORD:23 16.833333333333332
|
||||
(signed word) anim::yr#1 yr zp ZP_WORD:23 25.25
|
||||
(signed word) anim::yr#0 yr zp ZP_WORD:30 16.833333333333332
|
||||
(signed word) anim::yr#1 yr zp ZP_WORD:30 25.25
|
||||
(dword()) clock()
|
||||
(label) clock::@return
|
||||
(dword) clock::return
|
||||
(dword) clock::return#0 return zp ZP_DWORD:34 4.333333333333333
|
||||
(dword) clock::return#2 return zp ZP_DWORD:34 22.0
|
||||
(void()) clock_start()
|
||||
(label) clock_start::@return
|
||||
(void()) init()
|
||||
(label) init::@1
|
||||
(label) init::@2
|
||||
@ -125,11 +150,11 @@
|
||||
(signed byte) mulf8s_prepared::b#3 reg byte y 202.0
|
||||
(signed byte) mulf8s_prepared::b#4 reg byte y 40.6
|
||||
(word) mulf8s_prepared::m
|
||||
(word) mulf8s_prepared::m#0 m zp ZP_WORD:5 2.0
|
||||
(word) mulf8s_prepared::m#1 m zp ZP_WORD:5 4.0
|
||||
(word) mulf8s_prepared::m#2 m zp ZP_WORD:5 4.0
|
||||
(word) mulf8s_prepared::m#4 m zp ZP_WORD:5 0.6666666666666666
|
||||
(word) mulf8s_prepared::m#5 m zp ZP_WORD:5 2.5
|
||||
(word) mulf8s_prepared::m#0 m zp ZP_WORD:12 2.0
|
||||
(word) mulf8s_prepared::m#1 m zp ZP_WORD:12 4.0
|
||||
(word) mulf8s_prepared::m#2 m zp ZP_WORD:12 4.0
|
||||
(word) mulf8s_prepared::m#4 m zp ZP_WORD:12 0.6666666666666666
|
||||
(word) mulf8s_prepared::m#5 m zp ZP_WORD:12 2.5
|
||||
(signed byte*) mulf8s_prepared::memA
|
||||
(const signed byte*) mulf8s_prepared::memA#0 memA = (signed byte*) 253
|
||||
(signed word) mulf8s_prepared::return
|
||||
@ -150,8 +175,8 @@
|
||||
(byte*) mulf8u_prepared::resL
|
||||
(const byte*) mulf8u_prepared::resL#0 resL = (byte*) 254
|
||||
(word) mulf8u_prepared::return
|
||||
(word) mulf8u_prepared::return#0 return zp ZP_WORD:5 1.3333333333333333
|
||||
(word) mulf8u_prepared::return#2 return zp ZP_WORD:5 4.0
|
||||
(word) mulf8u_prepared::return#0 return zp ZP_WORD:12 1.3333333333333333
|
||||
(word) mulf8u_prepared::return#2 return zp ZP_WORD:12 4.0
|
||||
(void()) mulf_init()
|
||||
(byte~) mulf_init::$10 reg byte a 22.0
|
||||
(byte~) mulf_init::$11 reg byte a 22.0
|
||||
@ -168,29 +193,29 @@
|
||||
(byte) mulf_init::c#1 reg byte x 2.357142857142857
|
||||
(byte) mulf_init::c#2 reg byte x 22.0
|
||||
(byte) mulf_init::dir
|
||||
(byte) mulf_init::dir#2 dir zp ZP_BYTE:18 4.714285714285714
|
||||
(byte) mulf_init::dir#3 dir zp ZP_BYTE:18 7.333333333333333
|
||||
(byte) mulf_init::dir#2 dir zp ZP_BYTE:25 4.714285714285714
|
||||
(byte) mulf_init::dir#3 dir zp ZP_BYTE:25 7.333333333333333
|
||||
(word) mulf_init::sqr
|
||||
(word) mulf_init::sqr#1 sqr zp ZP_WORD:12 7.333333333333333
|
||||
(word) mulf_init::sqr#2 sqr zp ZP_WORD:12 22.0
|
||||
(word) mulf_init::sqr#3 sqr zp ZP_WORD:12 9.166666666666666
|
||||
(word) mulf_init::sqr#4 sqr zp ZP_WORD:12 6.6000000000000005
|
||||
(word) mulf_init::sqr#1 sqr zp ZP_WORD:19 7.333333333333333
|
||||
(word) mulf_init::sqr#2 sqr zp ZP_WORD:19 22.0
|
||||
(word) mulf_init::sqr#3 sqr zp ZP_WORD:19 9.166666666666666
|
||||
(word) mulf_init::sqr#4 sqr zp ZP_WORD:19 6.6000000000000005
|
||||
(byte*) mulf_init::sqr1_hi
|
||||
(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:9 5.5
|
||||
(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:9 3.0
|
||||
(byte*) mulf_init::sqr1_hi#1 sqr1_hi zp ZP_WORD:16 5.5
|
||||
(byte*) mulf_init::sqr1_hi#2 sqr1_hi zp ZP_WORD:16 3.0
|
||||
(byte*) mulf_init::sqr1_lo
|
||||
(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:7 16.5
|
||||
(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:7 2.5384615384615383
|
||||
(byte*) mulf_init::sqr1_lo#1 sqr1_lo zp ZP_WORD:14 16.5
|
||||
(byte*) mulf_init::sqr1_lo#2 sqr1_lo zp ZP_WORD:14 2.5384615384615383
|
||||
(byte*) mulf_init::sqr2_hi
|
||||
(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:16 3.142857142857143
|
||||
(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:16 11.0
|
||||
(byte*) mulf_init::sqr2_hi#1 sqr2_hi zp ZP_WORD:23 3.142857142857143
|
||||
(byte*) mulf_init::sqr2_hi#2 sqr2_hi zp ZP_WORD:23 11.0
|
||||
(byte*) mulf_init::sqr2_lo
|
||||
(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:14 16.5
|
||||
(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:14 4.125
|
||||
(byte*) mulf_init::sqr2_lo#1 sqr2_lo zp ZP_WORD:21 16.5
|
||||
(byte*) mulf_init::sqr2_lo#2 sqr2_lo zp ZP_WORD:21 4.125
|
||||
(byte) mulf_init::x_2
|
||||
(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:11 11.0
|
||||
(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:11 4.888888888888889
|
||||
(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:11 8.25
|
||||
(byte) mulf_init::x_2#1 x_2 zp ZP_BYTE:18 11.0
|
||||
(byte) mulf_init::x_2#2 x_2 zp ZP_BYTE:18 4.888888888888889
|
||||
(byte) mulf_init::x_2#3 x_2 zp ZP_BYTE:18 8.25
|
||||
(byte) mulf_init::x_255
|
||||
(byte) mulf_init::x_255#1 reg byte x 5.5
|
||||
(byte) mulf_init::x_255#2 reg byte x 11.0
|
||||
@ -202,38 +227,86 @@
|
||||
(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) }
|
||||
(byte[$200]) mulf_sqr2_lo
|
||||
(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) }
|
||||
(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at)
|
||||
(byte~) print_byte_at::$0 reg byte a 4.0
|
||||
(byte~) print_byte_at::$2 reg byte y 2.0
|
||||
(label) print_byte_at::@1
|
||||
(label) print_byte_at::@return
|
||||
(byte*) print_byte_at::at
|
||||
(byte*) print_byte_at::at#0 at zp ZP_WORD:7 4.0
|
||||
(byte*) print_byte_at::at#1 at zp ZP_WORD:7 4.0
|
||||
(byte*) print_byte_at::at#2 at zp ZP_WORD:7 1.3333333333333333
|
||||
(byte) print_byte_at::b
|
||||
(byte) print_byte_at::b#0 b zp ZP_BYTE:9 2.0
|
||||
(byte) print_byte_at::b#1 b zp ZP_BYTE:9 2.0
|
||||
(byte) print_byte_at::b#2 b zp ZP_BYTE:9 1.6
|
||||
(void()) print_char_at((byte) print_char_at::ch , (byte*) print_char_at::at)
|
||||
(label) print_char_at::@return
|
||||
(byte*) print_char_at::at
|
||||
(byte*) print_char_at::at#0 at zp ZP_WORD:10 4.0
|
||||
(byte*) print_char_at::at#1 at zp ZP_WORD:10 2.0
|
||||
(byte*) print_char_at::at#2 at zp ZP_WORD:10 6.0
|
||||
(byte) print_char_at::ch
|
||||
(byte) print_char_at::ch#0 reg byte x 2.0
|
||||
(byte) print_char_at::ch#1 reg byte x 4.0
|
||||
(byte) print_char_at::ch#2 reg byte x 6.0
|
||||
(void()) print_dword_at((dword) print_dword_at::dw , (byte*) print_dword_at::at)
|
||||
(label) print_dword_at::@1
|
||||
(label) print_dword_at::@return
|
||||
(byte*) print_dword_at::at
|
||||
(dword) print_dword_at::dw
|
||||
(dword) print_dword_at::dw#0 dw zp ZP_DWORD:34 5.0
|
||||
(byte[]) print_hextab
|
||||
(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef"
|
||||
(void()) print_word_at((word) print_word_at::w , (byte*) print_word_at::at)
|
||||
(label) print_word_at::@1
|
||||
(label) print_word_at::@return
|
||||
(byte*) print_word_at::at
|
||||
(byte*) print_word_at::at#2 at zp ZP_WORD:7 0.8
|
||||
(word) print_word_at::w
|
||||
(word) print_word_at::w#0 w zp ZP_WORD:5 4.0
|
||||
(word) print_word_at::w#1 w zp ZP_WORD:5 4.0
|
||||
(word) print_word_at::w#2 w zp ZP_WORD:5 2.0
|
||||
(signed byte[8]) xs
|
||||
(const signed byte[8]) xs#0 xs = { (signed byte) -$46, (signed byte) -$46, (signed byte) -$46, (signed byte) 0, (signed byte) 0, (signed byte) $46, (signed byte) $46, (signed byte) $46 }
|
||||
(signed byte[8]) ys
|
||||
(const signed byte[8]) ys#0 ys = { (signed byte) -$46, (signed byte) 0, (signed byte) $46, (signed byte) -$46, (signed byte) $46, (signed byte) -$46, (signed byte) 0, (signed byte) $46 }
|
||||
|
||||
zp ZP_BYTE:2 [ anim::angle#6 anim::angle#1 ]
|
||||
zp ZP_BYTE:2 [ anim::angle#9 anim::angle#1 ]
|
||||
zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ]
|
||||
zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ]
|
||||
zp ZP_WORD:5 [ print_word_at::w#2 print_word_at::w#0 print_word_at::w#1 ]
|
||||
zp ZP_WORD:7 [ print_word_at::at#2 print_byte_at::at#2 print_byte_at::at#0 print_byte_at::at#1 ]
|
||||
zp ZP_BYTE:9 [ print_byte_at::b#2 print_byte_at::b#0 print_byte_at::b#1 ]
|
||||
reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ]
|
||||
zp ZP_WORD:10 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
|
||||
reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ]
|
||||
zp ZP_WORD:5 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 anim::$4 anim::$6 anim::$9 anim::$11 mulf8u_prepared::return#2 anim::$10 anim::$12 mulf8u_prepared::return#0 ]
|
||||
zp ZP_WORD:12 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 anim::$5 anim::$7 anim::$10 anim::$12 mulf8u_prepared::return#2 anim::$11 anim::$13 mulf8u_prepared::return#0 ]
|
||||
reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ]
|
||||
reg byte x [ init::i#2 init::i#1 ]
|
||||
reg byte x [ mulf_init::c#2 mulf_init::c#1 ]
|
||||
zp ZP_WORD:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
|
||||
zp ZP_WORD:9 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
||||
zp ZP_BYTE:11 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
|
||||
zp ZP_WORD:12 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
|
||||
zp ZP_WORD:14 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ]
|
||||
zp ZP_WORD:16 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
||||
zp ZP_BYTE:18 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ]
|
||||
zp ZP_WORD:19 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
|
||||
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||
zp ZP_WORD:14 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
|
||||
zp ZP_WORD:16 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
|
||||
zp ZP_BYTE:18 [ mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_BYTE:19 [ anim::x#0 ]
|
||||
zp ZP_BYTE:20 [ anim::y#0 ]
|
||||
zp ZP_WORD:21 [ anim::xr#0 anim::xr#1 ]
|
||||
zp ZP_WORD:23 [ anim::yr#0 anim::yr#1 ]
|
||||
reg byte a [ anim::$15 ]
|
||||
zp ZP_WORD:25 [ anim::xpos#0 ]
|
||||
reg byte a [ anim::$18 ]
|
||||
reg byte a [ anim::$22 ]
|
||||
zp ZP_WORD:21 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ]
|
||||
zp ZP_WORD:23 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
|
||||
zp ZP_BYTE:25 [ mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_BYTE:26 [ anim::x#0 ]
|
||||
zp ZP_BYTE:27 [ anim::y#0 ]
|
||||
zp ZP_WORD:28 [ anim::xr#0 anim::xr#1 ]
|
||||
zp ZP_WORD:30 [ anim::yr#0 anim::yr#1 ]
|
||||
reg byte a [ anim::$16 ]
|
||||
zp ZP_WORD:32 [ anim::xpos#0 ]
|
||||
reg byte a [ anim::$19 ]
|
||||
reg byte a [ anim::$23 ]
|
||||
reg byte y [ anim::ypos#0 ]
|
||||
reg byte x [ anim::i2#0 ]
|
||||
reg byte a [ anim::$25 ]
|
||||
reg byte a [ anim::$26 ]
|
||||
zp ZP_DWORD:34 [ clock::return#2 anim::$28 clock::return#0 anim::cyclecount#0 print_dword_at::dw#0 ]
|
||||
reg byte a [ print_byte_at::$0 ]
|
||||
reg byte y [ print_byte_at::$2 ]
|
||||
reg byte a [ mulf8u_prepared::b#0 ]
|
||||
reg byte a [ mulf8s_prepared::$8 ]
|
||||
reg byte a [ mulf8s_prepared::$15 ]
|
||||
|
Loading…
Reference in New Issue
Block a user