mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-27 04:49:27 +00:00
Updated to 256 buckets & parametrized screen.
This commit is contained in:
parent
bf0d399b2c
commit
91a428d22b
6
src/main/fragment/_deref_pptz1=pwuz2.asm
Normal file
6
src/main/fragment/_deref_pptz1=pwuz2.asm
Normal file
@ -0,0 +1,6 @@
|
||||
ldy #0
|
||||
lda {z2}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda {z2}+1
|
||||
sta ({z1}),y
|
8
src/main/fragment/pwuz1=_deref_pptz1.asm
Normal file
8
src/main/fragment/pwuz1=_deref_pptz1.asm
Normal file
@ -0,0 +1,8 @@
|
||||
ldy #0
|
||||
lda ({z1}),y
|
||||
pha
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {z1}+1
|
||||
pla
|
||||
sta {z1}
|
6
src/main/fragment/pwuz1=_deref_pptz2.asm
Normal file
6
src/main/fragment/pwuz1=_deref_pptz2.asm
Normal file
@ -0,0 +1,6 @@
|
||||
ldy #0
|
||||
lda ({z2}),y
|
||||
sta {z1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
sta {z1}+1
|
7
src/main/fragment/vwuz1=_deref_pbuz2_rol_1.asm
Normal file
7
src/main/fragment/vwuz1=_deref_pbuz2_rol_1.asm
Normal file
@ -0,0 +1,7 @@
|
||||
ldy #0
|
||||
lda {z2}
|
||||
asl
|
||||
sta {z1}
|
||||
lda #0
|
||||
rol
|
||||
sta {z1}+1
|
@ -11,6 +11,8 @@ const byte[1000] SCREEN_DIST; // = malloc(1000);
|
||||
// Screen containing angle to center
|
||||
const byte[1000] SCREEN_ANGLE; // = malloc(1000);
|
||||
// Screen containing angle to center
|
||||
const byte[1000] SCREEN_MIX; // = malloc(1000);
|
||||
// Screen containing angle to center
|
||||
const byte* SCREEN_FILL = 0x0400;
|
||||
|
||||
// Char to fill with
|
||||
@ -19,7 +21,15 @@ const byte FILL_CHAR = '@';
|
||||
void main() {
|
||||
init_dist_screen(SCREEN_DIST);
|
||||
init_angle_screen(SCREEN_ANGLE);
|
||||
init_buckets();
|
||||
{
|
||||
byte* dist = SCREEN_DIST;
|
||||
byte* angle = SCREEN_ANGLE;
|
||||
byte* mix = SCREEN_MIX;
|
||||
for( word i:0..999)
|
||||
*mix++ = (*dist++)*4 + (*angle++)/2;
|
||||
}
|
||||
|
||||
init_buckets(SCREEN_MIX);
|
||||
|
||||
// Test buckets by animating them
|
||||
byte bucket_idx = 0;
|
||||
@ -31,7 +41,7 @@ void main() {
|
||||
// First clear the current bucket
|
||||
byte bucket_size = BUCKET_SIZES[bucket_idx];
|
||||
if(bucket_size>0) {
|
||||
word* bucket = BUCKETS[bucket_idx];
|
||||
word* bucket = BUCKETS[(word)bucket_idx];
|
||||
for( byte i=0;i<bucket_size;i++) {
|
||||
byte* sc = SCREEN_FILL+bucket[i];
|
||||
*sc = ' ';
|
||||
@ -40,14 +50,14 @@ void main() {
|
||||
}
|
||||
// Increase bucket index
|
||||
bucket_idx++;
|
||||
if(bucket_idx==NUM_BUCKETS) {
|
||||
bucket_idx = 0;
|
||||
}
|
||||
//if(bucket_idx==NUM_BUCKETS) {
|
||||
// bucket_idx = 0;
|
||||
//}
|
||||
{
|
||||
// Plot char in the bucket
|
||||
byte bucket_size = BUCKET_SIZES[bucket_idx];
|
||||
if(bucket_size>0) {
|
||||
word* bucket = BUCKETS[bucket_idx];
|
||||
word* bucket = BUCKETS[(word)bucket_idx];
|
||||
for( byte i=0;i<bucket_size;i++) {
|
||||
byte* sc = SCREEN_FILL+bucket[i];
|
||||
*sc = '*';
|
||||
@ -87,7 +97,7 @@ void main() {
|
||||
}
|
||||
|
||||
// The number of buckets in our bucket sort
|
||||
const byte NUM_BUCKETS = 0x30;
|
||||
const word NUM_BUCKETS = 0x100;
|
||||
|
||||
// Array containing the bucket size for each of the distance buckets
|
||||
const byte[NUM_BUCKETS] BUCKET_SIZES; // = malloc(NUM_BUCKETS*sizeof(byte));
|
||||
@ -101,26 +111,26 @@ const word*[NUM_BUCKETS] BUCKETS; // = malloc(NUM_BUCKETS*sizeof(word*));
|
||||
const byte[NUM_BUCKETS] BUCKET_IDX; // = malloc(NUM_BUCKETS*sizeof(byte));
|
||||
|
||||
// Initialize buckets containing indices of chars on the screen with specific distances to the center.
|
||||
void init_buckets() {
|
||||
void init_buckets(byte* screen) {
|
||||
// Init bucket sizes to 0
|
||||
for(byte i:0..NUM_BUCKETS-1) BUCKET_SIZES[i]=0;
|
||||
// first find bucket sizes - by counting number of chars with each distance value
|
||||
byte* dist = SCREEN_DIST;
|
||||
byte* dist = screen;
|
||||
for( word i:0..999) {
|
||||
BUCKET_SIZES[*dist]++;
|
||||
dist++;
|
||||
}
|
||||
// Allocate the buckets
|
||||
for( byte i:0..NUM_BUCKETS-1) {
|
||||
for( word i:0..NUM_BUCKETS-1) {
|
||||
BUCKETS[i] = malloc(BUCKET_SIZES[i]*sizeof(byte*));
|
||||
}
|
||||
// Iterate all distances and fill the buckets with indices into the screens
|
||||
for(byte i:0..NUM_BUCKETS-1) BUCKET_IDX[i]=0;
|
||||
dist = SCREEN_DIST;
|
||||
dist = screen;
|
||||
for(word i:0..999) {
|
||||
byte distance = *dist;
|
||||
word* bucket = BUCKETS[distance];
|
||||
bucket[BUCKET_IDX[distance]] = dist-SCREEN_DIST;
|
||||
word* bucket = BUCKETS[(word)distance];
|
||||
bucket[BUCKET_IDX[distance]] = dist-screen;
|
||||
BUCKET_IDX[distance]++;
|
||||
*dist++;
|
||||
}
|
||||
|
@ -14,47 +14,120 @@
|
||||
// Screen containing angle to center
|
||||
.label SCREEN_FILL = $400
|
||||
// The number of buckets in our bucket sort
|
||||
.const NUM_BUCKETS = $30
|
||||
µ .const NUM_BUCKETS = $100
|
||||
.const NUM_SQUARES = $30
|
||||
.label heap_head = $b
|
||||
.label SQUARES = $d
|
||||
.label heap_head = $15
|
||||
.label SQUARES = $17
|
||||
main: {
|
||||
.label bucket_size = $2d
|
||||
.label bucket_idx = 2
|
||||
.label bucket = $2e
|
||||
.label sc = $30
|
||||
.label bucket_size1 = $32
|
||||
.label bucket1 = $33
|
||||
.label sc1 = $35
|
||||
.label _3 = $37
|
||||
.label _11 = $39
|
||||
.label _16 = $3e
|
||||
.label _19 = $39
|
||||
.label _21 = $3e
|
||||
.label mix = 6
|
||||
.label dist = 2
|
||||
.label angle = 4
|
||||
.label i = 8
|
||||
.label bucket_size = $38
|
||||
.label bucket_idx = $a
|
||||
.label bucket_size1 = $3d
|
||||
.label bucket = $39
|
||||
.label sc = $3b
|
||||
.label bucket1 = $3e
|
||||
.label sc1 = $40
|
||||
.label _23 = $39
|
||||
.label _24 = $3e
|
||||
jsr init_dist_screen
|
||||
jsr init_angle_screen
|
||||
lda #<0
|
||||
sta i
|
||||
sta i+1
|
||||
lda #<SCREEN_MIX
|
||||
sta mix
|
||||
lda #>SCREEN_MIX
|
||||
sta mix+1
|
||||
lda #<SCREEN_ANGLE
|
||||
sta angle
|
||||
lda #>SCREEN_ANGLE
|
||||
sta angle+1
|
||||
lda #<SCREEN_DIST
|
||||
sta dist
|
||||
lda #>SCREEN_DIST
|
||||
sta dist+1
|
||||
b1:
|
||||
ldy #0
|
||||
lda (dist),y
|
||||
asl
|
||||
asl
|
||||
sta _3
|
||||
lda (angle),y
|
||||
lsr
|
||||
clc
|
||||
adc _3
|
||||
sta (mix),y
|
||||
inc mix
|
||||
bne !+
|
||||
inc mix+1
|
||||
!:
|
||||
inc dist
|
||||
bne !+
|
||||
inc dist+1
|
||||
!:
|
||||
inc angle
|
||||
bne !+
|
||||
inc angle+1
|
||||
!:
|
||||
inc i
|
||||
bne !+
|
||||
inc i+1
|
||||
!:
|
||||
lda i+1
|
||||
cmp #>$3e8
|
||||
bne b1
|
||||
lda i
|
||||
cmp #<$3e8
|
||||
bne b1
|
||||
jsr init_buckets
|
||||
lda #0
|
||||
sta bucket_idx
|
||||
b2:
|
||||
b4:
|
||||
lda #$fe
|
||||
cmp RASTER
|
||||
bne b2
|
||||
b3:
|
||||
bne b4
|
||||
b5:
|
||||
lda #$ff
|
||||
cmp RASTER
|
||||
bne b3
|
||||
bne b5
|
||||
inc BORDERCOL
|
||||
// First clear the current bucket
|
||||
ldy bucket_idx
|
||||
lda BUCKET_SIZES,y
|
||||
sta bucket_size
|
||||
cmp #0
|
||||
beq b6
|
||||
beq b8
|
||||
tya
|
||||
asl
|
||||
tay
|
||||
lda BUCKETS,y
|
||||
sta bucket
|
||||
lda BUCKETS+1,y
|
||||
sta _11
|
||||
lda #0
|
||||
sta _11+1
|
||||
asl _19
|
||||
rol _19+1
|
||||
clc
|
||||
lda _23
|
||||
adc #<BUCKETS
|
||||
sta _23
|
||||
lda _23+1
|
||||
adc #>BUCKETS
|
||||
sta _23+1
|
||||
ldy #0
|
||||
lda (bucket),y
|
||||
pha
|
||||
iny
|
||||
lda (bucket),y
|
||||
sta bucket+1
|
||||
pla
|
||||
sta bucket
|
||||
ldx #0
|
||||
b7:
|
||||
b9:
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
@ -71,30 +144,38 @@ main: {
|
||||
sta (sc),y
|
||||
inx
|
||||
cpx bucket_size
|
||||
bcc b7
|
||||
b6:
|
||||
inc bucket_idx
|
||||
lda #NUM_BUCKETS
|
||||
cmp bucket_idx
|
||||
bne b8
|
||||
lda #0
|
||||
sta bucket_idx
|
||||
bcc b9
|
||||
b8:
|
||||
inc bucket_idx
|
||||
// Plot char in the bucket
|
||||
ldy bucket_idx
|
||||
lda BUCKET_SIZES,y
|
||||
sta bucket_size1
|
||||
cmp #0
|
||||
beq b9
|
||||
beq b11
|
||||
tya
|
||||
asl
|
||||
tay
|
||||
lda BUCKETS,y
|
||||
sta bucket1
|
||||
lda BUCKETS+1,y
|
||||
sta _16
|
||||
lda #0
|
||||
sta _16+1
|
||||
asl _21
|
||||
rol _21+1
|
||||
clc
|
||||
lda _24
|
||||
adc #<BUCKETS
|
||||
sta _24
|
||||
lda _24+1
|
||||
adc #>BUCKETS
|
||||
sta _24+1
|
||||
ldy #0
|
||||
lda (bucket1),y
|
||||
pha
|
||||
iny
|
||||
lda (bucket1),y
|
||||
sta bucket1+1
|
||||
pla
|
||||
sta bucket1
|
||||
ldx #0
|
||||
b10:
|
||||
b12:
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
@ -111,34 +192,41 @@ main: {
|
||||
sta (sc1),y
|
||||
inx
|
||||
cpx bucket_size1
|
||||
bcc b10
|
||||
b9:
|
||||
bcc b12
|
||||
b11:
|
||||
dec BORDERCOL
|
||||
jmp b2
|
||||
jmp b4
|
||||
}
|
||||
// Initialize buckets containing indices of chars on the screen with specific distances to the center.
|
||||
init_buckets: {
|
||||
.label _5 = $d
|
||||
.label _9 = $39
|
||||
.label dist = 3
|
||||
.label i1 = 5
|
||||
.label bucket = $37
|
||||
.label dist_3 = 7
|
||||
.label i4 = 9
|
||||
.label dist_5 = 7
|
||||
.label _5 = $17
|
||||
.label _9 = $44
|
||||
.label _10 = $46
|
||||
.label _12 = $42
|
||||
.label _13 = $44
|
||||
.label dist = $b
|
||||
.label i1 = $d
|
||||
.label i2 = $f
|
||||
.label bucket = $44
|
||||
.label dist_3 = $11
|
||||
.label i4 = $13
|
||||
.label dist_5 = $11
|
||||
.label _15 = $17
|
||||
.label _16 = $42
|
||||
.label _17 = $44
|
||||
ldx #0
|
||||
// Init bucket sizes to 0
|
||||
b1:
|
||||
lda #0
|
||||
sta BUCKET_SIZES,x
|
||||
inx
|
||||
cpx #NUM_BUCKETS-1+1
|
||||
cpx #0
|
||||
bne b1
|
||||
sta i1
|
||||
sta i1+1
|
||||
lda #<SCREEN_DIST
|
||||
lda #<SCREEN_MIX
|
||||
sta dist
|
||||
lda #>SCREEN_DIST
|
||||
lda #>SCREEN_MIX
|
||||
sta dist+1
|
||||
b2:
|
||||
ldy #0
|
||||
@ -159,25 +247,54 @@ init_buckets: {
|
||||
lda i1
|
||||
cmp #<$3e8
|
||||
bne b2
|
||||
ldx #0
|
||||
lda #<0
|
||||
sta i2
|
||||
sta i2+1
|
||||
// Allocate the buckets
|
||||
b3:
|
||||
lda BUCKET_SIZES,x
|
||||
lda i2
|
||||
clc
|
||||
adc #<BUCKET_SIZES
|
||||
sta _15
|
||||
lda i2+1
|
||||
adc #>BUCKET_SIZES
|
||||
sta _15+1
|
||||
ldy #0
|
||||
lda (malloc.size),y
|
||||
asl
|
||||
sta malloc.size
|
||||
lda #0
|
||||
tya
|
||||
rol
|
||||
sta malloc.size+1
|
||||
jsr malloc
|
||||
txa
|
||||
lda i2
|
||||
asl
|
||||
tay
|
||||
sta _12
|
||||
lda i2+1
|
||||
rol
|
||||
sta _12+1
|
||||
clc
|
||||
lda _16
|
||||
adc #<BUCKETS
|
||||
sta _16
|
||||
lda _16+1
|
||||
adc #>BUCKETS
|
||||
sta _16+1
|
||||
ldy #0
|
||||
lda _5
|
||||
sta BUCKETS,y
|
||||
sta (_16),y
|
||||
iny
|
||||
lda _5+1
|
||||
sta BUCKETS+1,y
|
||||
inx
|
||||
cpx #NUM_BUCKETS-1+1
|
||||
sta (_16),y
|
||||
inc i2
|
||||
bne !+
|
||||
inc i2+1
|
||||
!:
|
||||
lda i2+1
|
||||
cmp #>NUM_BUCKETS-1+1
|
||||
bne b3
|
||||
lda i2
|
||||
cmp #<NUM_BUCKETS-1+1
|
||||
bne b3
|
||||
ldx #0
|
||||
// Iterate all distances and fill the buckets with indices into the screens
|
||||
@ -185,39 +302,52 @@ init_buckets: {
|
||||
lda #0
|
||||
sta BUCKET_IDX,x
|
||||
inx
|
||||
cpx #NUM_BUCKETS-1+1
|
||||
cpx #0
|
||||
bne b4
|
||||
sta i4
|
||||
sta i4+1
|
||||
lda #<SCREEN_DIST
|
||||
lda #<SCREEN_MIX
|
||||
sta dist_5
|
||||
lda #>SCREEN_DIST
|
||||
lda #>SCREEN_MIX
|
||||
sta dist_5+1
|
||||
b5:
|
||||
ldy #0
|
||||
lda (dist_5),y
|
||||
tax
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
lda BUCKETS,y
|
||||
sta bucket
|
||||
lda BUCKETS+1,y
|
||||
sta _9
|
||||
tya
|
||||
sta _9+1
|
||||
asl _13
|
||||
rol _13+1
|
||||
clc
|
||||
lda _17
|
||||
adc #<BUCKETS
|
||||
sta _17
|
||||
lda _17+1
|
||||
adc #>BUCKETS
|
||||
sta _17+1
|
||||
lda (bucket),y
|
||||
pha
|
||||
iny
|
||||
lda (bucket),y
|
||||
sta bucket+1
|
||||
pla
|
||||
sta bucket
|
||||
lda dist_5
|
||||
sec
|
||||
sbc #<SCREEN_DIST
|
||||
sta _9
|
||||
sbc #<SCREEN_MIX
|
||||
sta _10
|
||||
lda dist_5+1
|
||||
sbc #>SCREEN_DIST
|
||||
sta _9+1
|
||||
sbc #>SCREEN_MIX
|
||||
sta _10+1
|
||||
lda BUCKET_IDX,x
|
||||
asl
|
||||
tay
|
||||
lda _9
|
||||
lda _10
|
||||
sta (bucket),y
|
||||
iny
|
||||
lda _9+1
|
||||
lda _10+1
|
||||
sta (bucket),y
|
||||
inc BUCKET_IDX,x
|
||||
inc dist_3
|
||||
@ -238,10 +368,10 @@ init_buckets: {
|
||||
}
|
||||
// Allocates a block of size bytes of memory, returning a pointer to the beginning of the block.
|
||||
// The content of the newly allocated block of memory is not initialized, remaining with indeterminate values.
|
||||
// malloc(word zeropage($d) size)
|
||||
// malloc(word zeropage($17) size)
|
||||
malloc: {
|
||||
.label mem = $d
|
||||
.label size = $d
|
||||
.label mem = $17
|
||||
.label size = $17
|
||||
lda heap_head
|
||||
sec
|
||||
sbc mem
|
||||
@ -258,16 +388,16 @@ malloc: {
|
||||
// Populates 1000 bytes (a screen) with values representing the angle to the center.
|
||||
// Utilizes symmetry around the center
|
||||
init_angle_screen: {
|
||||
.label _10 = $1a
|
||||
.label xw = $3b
|
||||
.label yw = $3d
|
||||
.label angle_w = $1a
|
||||
.label ang_w = $3f
|
||||
.label x = $14
|
||||
.label xb = $15
|
||||
.label screen_topline = $12
|
||||
.label screen_bottomline = $10
|
||||
.label y = $f
|
||||
.label _10 = $24
|
||||
.label xw = $48
|
||||
.label yw = $4a
|
||||
.label angle_w = $24
|
||||
.label ang_w = $4c
|
||||
.label x = $1e
|
||||
.label xb = $1f
|
||||
.label screen_topline = $1c
|
||||
.label screen_bottomline = $1a
|
||||
.label y = $19
|
||||
lda #<SCREEN_ANGLE+$28*$c
|
||||
sta screen_topline
|
||||
lda #>SCREEN_ANGLE+$28*$c
|
||||
@ -349,18 +479,18 @@ init_angle_screen: {
|
||||
// Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y)
|
||||
// Finding the angle requires a binary search using CORDIC_ITERATIONS_16
|
||||
// Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI)
|
||||
// atan2_16(signed word zeropage($3b) x, signed word zeropage($3d) y)
|
||||
// atan2_16(signed word zeropage($48) x, signed word zeropage($4a) y)
|
||||
atan2_16: {
|
||||
.label _2 = $16
|
||||
.label _7 = $18
|
||||
.label yi = $16
|
||||
.label xi = $18
|
||||
.label angle = $1a
|
||||
.label xd = $1e
|
||||
.label yd = $1c
|
||||
.label return = $1a
|
||||
.label x = $3b
|
||||
.label y = $3d
|
||||
.label _2 = $20
|
||||
.label _7 = $22
|
||||
.label yi = $20
|
||||
.label xi = $22
|
||||
.label angle = $24
|
||||
.label xd = $28
|
||||
.label yd = $26
|
||||
.label return = $24
|
||||
.label x = $48
|
||||
.label y = $4a
|
||||
lda y+1
|
||||
bmi !b1+
|
||||
jmp b1
|
||||
@ -539,14 +669,14 @@ atan2_16: {
|
||||
// The actual value stored is distance*2 to increase precision
|
||||
// Utilizes symmetry around the center
|
||||
init_dist_screen: {
|
||||
.label yds = $40
|
||||
.label xds = $42
|
||||
.label ds = $42
|
||||
.label x = $25
|
||||
.label xb = $26
|
||||
.label screen_topline = $21
|
||||
.label screen_bottomline = $23
|
||||
.label y = $20
|
||||
.label yds = $4d
|
||||
.label xds = $4f
|
||||
.label ds = $4f
|
||||
.label x = $2f
|
||||
.label xb = $30
|
||||
.label screen_topline = $2b
|
||||
.label screen_bottomline = $2d
|
||||
.label y = $2a
|
||||
jsr init_squares
|
||||
lda #<SCREEN_DIST+$28*$18
|
||||
sta screen_bottomline
|
||||
@ -636,12 +766,12 @@ init_dist_screen: {
|
||||
// Find the (integer) square root of a word value
|
||||
// If the square is not an integer then it returns the largest integer N where N*N <= val
|
||||
// Uses a table of squares that must be initialized by calling init_squares()
|
||||
// sqrt(word zeropage($42) val)
|
||||
// sqrt(word zeropage($4f) val)
|
||||
sqrt: {
|
||||
.label _1 = $27
|
||||
.label _3 = $27
|
||||
.label found = $27
|
||||
.label val = $42
|
||||
.label _1 = $31
|
||||
.label _3 = $31
|
||||
.label found = $31
|
||||
.label val = $4f
|
||||
lda SQUARES
|
||||
sta bsearch16u.items
|
||||
lda SQUARES+1
|
||||
@ -664,14 +794,14 @@ sqrt: {
|
||||
// - items - Pointer to the start of the array to search in
|
||||
// - num - The number of items in the array
|
||||
// Returns pointer to an entry in the array that matches the search key
|
||||
// bsearch16u(word zeropage($42) key, word* zeropage($27) items, byte register(X) num)
|
||||
// bsearch16u(word zeropage($4f) key, word* zeropage($31) items, byte register(X) num)
|
||||
bsearch16u: {
|
||||
.label _2 = $27
|
||||
.label pivot = $44
|
||||
.label result = $46
|
||||
.label return = $27
|
||||
.label items = $27
|
||||
.label key = $42
|
||||
.label _2 = $31
|
||||
.label pivot = $51
|
||||
.label result = $53
|
||||
.label return = $31
|
||||
.label items = $31
|
||||
.label key = $4f
|
||||
ldx #NUM_SQUARES
|
||||
b3:
|
||||
cpx #0
|
||||
@ -747,8 +877,8 @@ bsearch16u: {
|
||||
// Uses a table of squares that must be initialized by calling init_squares()
|
||||
// sqr(byte register(A) val)
|
||||
sqr: {
|
||||
.label return = $42
|
||||
.label return_2 = $40
|
||||
.label return = $4f
|
||||
.label return_2 = $4d
|
||||
asl
|
||||
tay
|
||||
lda (SQUARES),y
|
||||
@ -761,8 +891,8 @@ sqr: {
|
||||
// Initialize squares table
|
||||
// Uses iterative formula (x+1)^2 = x^2 + 2*x + 1
|
||||
init_squares: {
|
||||
.label squares = $2b
|
||||
.label sqr = $29
|
||||
.label squares = $35
|
||||
.label sqr = $33
|
||||
lda #NUM_SQUARES*SIZEOF_WORD
|
||||
sta malloc.size
|
||||
lda #0
|
||||
@ -819,6 +949,9 @@ CORDIC_ATAN2_ANGLES_16:
|
||||
// = malloc(1000);
|
||||
// Screen containing angle to center
|
||||
SCREEN_ANGLE: .fill $3e8, 0
|
||||
// = malloc(1000);
|
||||
// Screen containing angle to center
|
||||
SCREEN_MIX: .fill $3e8, 0
|
||||
// Array containing the bucket size for each of the distance buckets
|
||||
BUCKET_SIZES: .fill NUM_BUCKETS, 0
|
||||
// Buckets containing screen indices for each distance from the center.
|
||||
|
@ -10,427 +10,443 @@
|
||||
main: scope:[main] from @1
|
||||
[4] phi()
|
||||
[5] call init_dist_screen
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main
|
||||
[6] phi()
|
||||
[7] call init_angle_screen
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[8] phi()
|
||||
[9] call init_buckets
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@13 main::@9
|
||||
[10] (byte) main::bucket_idx#11 ← phi( main::@9/(byte) main::bucket_idx#6 main::@13/(byte) 0 )
|
||||
main::@1: scope:[main] from main::@1 main::@13
|
||||
[8] (word) main::i#2 ← phi( main::@1/(word) main::i#1 main::@13/(word) 0 )
|
||||
[8] (byte*) main::mix#2 ← phi( main::@1/(byte*) main::mix#1 main::@13/(const byte[$3e8]) SCREEN_MIX#0 )
|
||||
[8] (byte*) main::angle#2 ← phi( main::@1/(byte*) main::angle#1 main::@13/(const byte[$3e8]) SCREEN_ANGLE#0 )
|
||||
[8] (byte*) main::dist#2 ← phi( main::@1/(byte*) main::dist#1 main::@13/(const byte[$3e8]) SCREEN_DIST#0 )
|
||||
[9] (byte~) main::$3 ← *((byte*) main::dist#2) << (byte) 2
|
||||
[10] (byte~) main::$4 ← *((byte*) main::angle#2) >> (byte) 1
|
||||
[11] (byte~) main::$5 ← (byte~) main::$3 + (byte~) main::$4
|
||||
[12] *((byte*) main::mix#2) ← (byte~) main::$5
|
||||
[13] (byte*) main::mix#1 ← ++ (byte*) main::mix#2
|
||||
[14] (byte*) main::dist#1 ← ++ (byte*) main::dist#2
|
||||
[15] (byte*) main::angle#1 ← ++ (byte*) main::angle#2
|
||||
[16] (word) main::i#1 ← ++ (word) main::i#2
|
||||
[17] if((word) main::i#1!=(word) $3e8) goto main::@1
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1 main::@2
|
||||
[11] if(*((const byte*) RASTER#0)!=(byte) $fe) goto main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[18] phi()
|
||||
[19] call init_buckets
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
[12] if(*((const byte*) RASTER#0)!=(byte) $ff) goto main::@3
|
||||
main::@3: scope:[main] from main::@11 main::@2
|
||||
[20] (byte) main::bucket_idx#9 ← phi( main::@11/(byte) main::bucket_idx#1 main::@2/(byte) 0 )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
|
||||
[14] (byte) main::bucket_size#0 ← *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) main::bucket_idx#11)
|
||||
[15] if((byte) main::bucket_size#0<=(byte) 0) goto main::@6
|
||||
main::@4: scope:[main] from main::@3 main::@4
|
||||
[21] if(*((const byte*) RASTER#0)!=(byte) $fe) goto main::@4
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[16] (byte~) main::$15 ← (byte) main::bucket_idx#11 << (byte) 1
|
||||
[17] (word*) main::bucket#0 ← *((const word*[NUM_BUCKETS#0]) BUCKETS#0 + (byte~) main::$15)
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@5 main::@7
|
||||
[18] (byte) main::i#2 ← phi( main::@7/(byte) main::i#1 main::@5/(byte) 0 )
|
||||
[19] (byte~) main::$16 ← (byte) main::i#2 << (byte) 1
|
||||
[20] (byte*) main::sc#0 ← (const byte*) SCREEN_FILL#0 + *((word*) main::bucket#0 + (byte~) main::$16)
|
||||
[21] *((byte*) main::sc#0) ← (byte) ' '
|
||||
[22] (byte) main::i#1 ← ++ (byte) main::i#2
|
||||
[23] if((byte) main::i#1<(byte) main::bucket_size#0) goto main::@7
|
||||
main::@5: scope:[main] from main::@4 main::@5
|
||||
[22] if(*((const byte*) RASTER#0)!=(byte) $ff) goto main::@5
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@4 main::@7
|
||||
[24] (byte) main::bucket_idx#1 ← ++ (byte) main::bucket_idx#11
|
||||
[25] if((byte) main::bucket_idx#1!=(const byte) NUM_BUCKETS#0) goto main::@14
|
||||
to:main::@8
|
||||
main::@14: scope:[main] from main::@6
|
||||
[26] phi()
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@14 main::@6
|
||||
[27] (byte) main::bucket_idx#6 ← phi( main::@6/(byte) 0 main::@14/(byte) main::bucket_idx#1 )
|
||||
[28] (byte) main::bucket_size1#0 ← *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) main::bucket_idx#6)
|
||||
[29] if((byte) main::bucket_size1#0<=(byte) 0) goto main::@9
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@8
|
||||
[30] (byte~) main::$17 ← (byte) main::bucket_idx#6 << (byte) 1
|
||||
[31] (word*) main::bucket1#0 ← *((const word*[NUM_BUCKETS#0]) BUCKETS#0 + (byte~) main::$17)
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@10 main::@11
|
||||
[32] (byte) main::i1#2 ← phi( main::@10/(byte) main::i1#1 main::@11/(byte) 0 )
|
||||
[33] (byte~) main::$18 ← (byte) main::i1#2 << (byte) 1
|
||||
[34] (byte*) main::sc1#0 ← (const byte*) SCREEN_FILL#0 + *((word*) main::bucket1#0 + (byte~) main::$18)
|
||||
[35] *((byte*) main::sc1#0) ← (byte) '*'
|
||||
[36] (byte) main::i1#1 ← ++ (byte) main::i1#2
|
||||
[37] if((byte) main::i1#1<(byte) main::bucket_size1#0) goto main::@10
|
||||
main::@6: scope:[main] from main::@5
|
||||
[23] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
|
||||
[24] (byte) main::bucket_size#0 ← *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) main::bucket_idx#9)
|
||||
[25] if((byte) main::bucket_size#0<=(byte) 0) goto main::@8
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[26] (word~) main::$11 ← (word)(byte) main::bucket_idx#9
|
||||
[27] (word~) main::$19 ← (word~) main::$11 << (byte) 1
|
||||
[28] (word**~) main::$23 ← (const word*[NUM_BUCKETS#0]) BUCKETS#0 + (word~) main::$19
|
||||
[29] (word*) main::bucket#0 ← *((word**~) main::$23)
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@10 main::@8
|
||||
[38] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
to:main::@1
|
||||
init_buckets: scope:[init_buckets] from main::@13
|
||||
[39] phi()
|
||||
main::@9: scope:[main] from main::@7 main::@9
|
||||
[30] (byte) main::i1#2 ← phi( main::@7/(byte) 0 main::@9/(byte) main::i1#1 )
|
||||
[31] (byte~) main::$20 ← (byte) main::i1#2 << (byte) 1
|
||||
[32] (byte*) main::sc#0 ← (const byte*) SCREEN_FILL#0 + *((word*) main::bucket#0 + (byte~) main::$20)
|
||||
[33] *((byte*) main::sc#0) ← (byte) ' '
|
||||
[34] (byte) main::i1#1 ← ++ (byte) main::i1#2
|
||||
[35] if((byte) main::i1#1<(byte) main::bucket_size#0) goto main::@9
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@6 main::@9
|
||||
[36] (byte) main::bucket_idx#1 ← ++ (byte) main::bucket_idx#9
|
||||
[37] (byte) main::bucket_size1#0 ← *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) main::bucket_idx#1)
|
||||
[38] if((byte) main::bucket_size1#0<=(byte) 0) goto main::@11
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@8
|
||||
[39] (word~) main::$16 ← (word)(byte) main::bucket_idx#1
|
||||
[40] (word~) main::$21 ← (word~) main::$16 << (byte) 1
|
||||
[41] (word**~) main::$24 ← (const word*[NUM_BUCKETS#0]) BUCKETS#0 + (word~) main::$21
|
||||
[42] (word*) main::bucket1#0 ← *((word**~) main::$24)
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@10 main::@12
|
||||
[43] (byte) main::i2#2 ← phi( main::@10/(byte) 0 main::@12/(byte) main::i2#1 )
|
||||
[44] (byte~) main::$22 ← (byte) main::i2#2 << (byte) 1
|
||||
[45] (byte*) main::sc1#0 ← (const byte*) SCREEN_FILL#0 + *((word*) main::bucket1#0 + (byte~) main::$22)
|
||||
[46] *((byte*) main::sc1#0) ← (byte) '*'
|
||||
[47] (byte) main::i2#1 ← ++ (byte) main::i2#2
|
||||
[48] if((byte) main::i2#1<(byte) main::bucket_size1#0) goto main::@12
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@12 main::@8
|
||||
[49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
to:main::@3
|
||||
init_buckets: scope:[init_buckets] from main::@2
|
||||
[50] phi()
|
||||
to:init_buckets::@1
|
||||
init_buckets::@1: scope:[init_buckets] from init_buckets init_buckets::@1
|
||||
[40] (byte) init_buckets::i#2 ← phi( init_buckets/(byte) 0 init_buckets::@1/(byte) init_buckets::i#1 )
|
||||
[41] *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) init_buckets::i#2) ← (byte) 0
|
||||
[42] (byte) init_buckets::i#1 ← ++ (byte) init_buckets::i#2
|
||||
[43] if((byte) init_buckets::i#1!=(const byte) NUM_BUCKETS#0-(byte) 1+(byte) 1) goto init_buckets::@1
|
||||
[51] (byte) init_buckets::i#2 ← phi( init_buckets/(byte) 0 init_buckets::@1/(byte) init_buckets::i#1 )
|
||||
[52] *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) init_buckets::i#2) ← (byte) 0
|
||||
[53] (byte) init_buckets::i#1 ← ++ (byte) init_buckets::i#2
|
||||
[54] if((byte) init_buckets::i#1!=(byte) 0) goto init_buckets::@1
|
||||
to:init_buckets::@2
|
||||
init_buckets::@2: scope:[init_buckets] from init_buckets::@1 init_buckets::@2
|
||||
[44] (word) init_buckets::i1#2 ← phi( init_buckets::@1/(word) 0 init_buckets::@2/(word) init_buckets::i1#1 )
|
||||
[44] (byte*) init_buckets::dist#4 ← phi( init_buckets::@1/(const byte[$3e8]) SCREEN_DIST#0 init_buckets::@2/(byte*) init_buckets::dist#1 )
|
||||
[45] *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + *((byte*) init_buckets::dist#4)) ← ++ *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + *((byte*) init_buckets::dist#4))
|
||||
[46] (byte*) init_buckets::dist#1 ← ++ (byte*) init_buckets::dist#4
|
||||
[47] (word) init_buckets::i1#1 ← ++ (word) init_buckets::i1#2
|
||||
[48] if((word) init_buckets::i1#1!=(word) $3e8) goto init_buckets::@2
|
||||
[55] (word) init_buckets::i1#2 ← phi( init_buckets::@1/(word) 0 init_buckets::@2/(word) init_buckets::i1#1 )
|
||||
[55] (byte*) init_buckets::dist#4 ← phi( init_buckets::@1/(const byte[$3e8]) SCREEN_MIX#0 init_buckets::@2/(byte*) init_buckets::dist#1 )
|
||||
[56] *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + *((byte*) init_buckets::dist#4)) ← ++ *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + *((byte*) init_buckets::dist#4))
|
||||
[57] (byte*) init_buckets::dist#1 ← ++ (byte*) init_buckets::dist#4
|
||||
[58] (word) init_buckets::i1#1 ← ++ (word) init_buckets::i1#2
|
||||
[59] if((word) init_buckets::i1#1!=(word) $3e8) goto init_buckets::@2
|
||||
to:init_buckets::@3
|
||||
init_buckets::@3: scope:[init_buckets] from init_buckets::@2 init_buckets::@6
|
||||
[49] (byte) init_buckets::i2#2 ← phi( init_buckets::@6/(byte) init_buckets::i2#1 init_buckets::@2/(byte) 0 )
|
||||
[50] (word) malloc::size#1 ← *((const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (byte) init_buckets::i2#2) << (byte) 1
|
||||
[51] call malloc
|
||||
[60] (word) init_buckets::i2#2 ← phi( init_buckets::@6/(word) init_buckets::i2#1 init_buckets::@2/(word) 0 )
|
||||
[61] (byte*~) init_buckets::$15 ← (const byte[NUM_BUCKETS#0]) BUCKET_SIZES#0 + (word) init_buckets::i2#2
|
||||
[62] (word) malloc::size#1 ← *((byte*~) init_buckets::$15) << (byte) 1
|
||||
[63] call malloc
|
||||
to:init_buckets::@6
|
||||
init_buckets::@6: scope:[init_buckets] from init_buckets::@3
|
||||
[52] (void*~) init_buckets::$5 ← (void*)(byte*) malloc::mem#0
|
||||
[53] (byte~) init_buckets::$11 ← (byte) init_buckets::i2#2 << (byte) 1
|
||||
[54] *((const word*[NUM_BUCKETS#0]) BUCKETS#0 + (byte~) init_buckets::$11) ← (word*)(void*~) init_buckets::$5
|
||||
[55] (byte) init_buckets::i2#1 ← ++ (byte) init_buckets::i2#2
|
||||
[56] if((byte) init_buckets::i2#1!=(const byte) NUM_BUCKETS#0-(byte) 1+(byte) 1) goto init_buckets::@3
|
||||
[64] (void*~) init_buckets::$5 ← (void*)(byte*) malloc::mem#0
|
||||
[65] (word~) init_buckets::$12 ← (word) init_buckets::i2#2 << (byte) 1
|
||||
[66] (word**~) init_buckets::$16 ← (const word*[NUM_BUCKETS#0]) BUCKETS#0 + (word~) init_buckets::$12
|
||||
[67] *((word**~) init_buckets::$16) ← (word*)(void*~) init_buckets::$5
|
||||
[68] (word) init_buckets::i2#1 ← ++ (word) init_buckets::i2#2
|
||||
[69] if((word) init_buckets::i2#1!=(const word) NUM_BUCKETS#0-(byte) 1+(byte) 1) goto init_buckets::@3
|
||||
to:init_buckets::@4
|
||||
init_buckets::@4: scope:[init_buckets] from init_buckets::@4 init_buckets::@6
|
||||
[57] (byte) init_buckets::i3#2 ← phi( init_buckets::@6/(byte) 0 init_buckets::@4/(byte) init_buckets::i3#1 )
|
||||
[58] *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::i3#2) ← (byte) 0
|
||||
[59] (byte) init_buckets::i3#1 ← ++ (byte) init_buckets::i3#2
|
||||
[60] if((byte) init_buckets::i3#1!=(const byte) NUM_BUCKETS#0-(byte) 1+(byte) 1) goto init_buckets::@4
|
||||
[70] (byte) init_buckets::i3#2 ← phi( init_buckets::@6/(byte) 0 init_buckets::@4/(byte) init_buckets::i3#1 )
|
||||
[71] *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::i3#2) ← (byte) 0
|
||||
[72] (byte) init_buckets::i3#1 ← ++ (byte) init_buckets::i3#2
|
||||
[73] if((byte) init_buckets::i3#1!=(byte) 0) goto init_buckets::@4
|
||||
to:init_buckets::@5
|
||||
init_buckets::@5: scope:[init_buckets] from init_buckets::@4 init_buckets::@5
|
||||
[61] (word) init_buckets::i4#2 ← phi( init_buckets::@4/(word) 0 init_buckets::@5/(word) init_buckets::i4#1 )
|
||||
[61] (byte*) init_buckets::dist#5 ← phi( init_buckets::@4/(const byte[$3e8]) SCREEN_DIST#0 init_buckets::@5/(byte*) init_buckets::dist#3 )
|
||||
[62] (byte) init_buckets::distance#0 ← *((byte*) init_buckets::dist#5)
|
||||
[63] (byte~) init_buckets::$12 ← (byte) init_buckets::distance#0 << (byte) 1
|
||||
[64] (word*) init_buckets::bucket#0 ← *((const word*[NUM_BUCKETS#0]) BUCKETS#0 + (byte~) init_buckets::$12)
|
||||
[65] (word~) init_buckets::$9 ← (byte*) init_buckets::dist#5 - (const byte[$3e8]) SCREEN_DIST#0
|
||||
[66] (byte~) init_buckets::$13 ← *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0) << (byte) 1
|
||||
[67] *((word*) init_buckets::bucket#0 + (byte~) init_buckets::$13) ← (word~) init_buckets::$9
|
||||
[68] *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0) ← ++ *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0)
|
||||
[69] (byte*) init_buckets::dist#3 ← ++ (byte*) init_buckets::dist#5
|
||||
[70] (word) init_buckets::i4#1 ← ++ (word) init_buckets::i4#2
|
||||
[71] if((word) init_buckets::i4#1!=(word) $3e8) goto init_buckets::@5
|
||||
[74] (word) init_buckets::i4#2 ← phi( init_buckets::@4/(word) 0 init_buckets::@5/(word) init_buckets::i4#1 )
|
||||
[74] (byte*) init_buckets::dist#5 ← phi( init_buckets::@4/(const byte[$3e8]) SCREEN_MIX#0 init_buckets::@5/(byte*) init_buckets::dist#3 )
|
||||
[75] (byte) init_buckets::distance#0 ← *((byte*) init_buckets::dist#5)
|
||||
[76] (word~) init_buckets::$9 ← (word)(byte) init_buckets::distance#0
|
||||
[77] (word~) init_buckets::$13 ← (word~) init_buckets::$9 << (byte) 1
|
||||
[78] (word**~) init_buckets::$17 ← (const word*[NUM_BUCKETS#0]) BUCKETS#0 + (word~) init_buckets::$13
|
||||
[79] (word*) init_buckets::bucket#0 ← *((word**~) init_buckets::$17)
|
||||
[80] (word~) init_buckets::$10 ← (byte*) init_buckets::dist#5 - (const byte[$3e8]) SCREEN_MIX#0
|
||||
[81] (byte~) init_buckets::$14 ← *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0) << (byte) 1
|
||||
[82] *((word*) init_buckets::bucket#0 + (byte~) init_buckets::$14) ← (word~) init_buckets::$10
|
||||
[83] *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0) ← ++ *((const byte[NUM_BUCKETS#0]) BUCKET_IDX#0 + (byte) init_buckets::distance#0)
|
||||
[84] (byte*) init_buckets::dist#3 ← ++ (byte*) init_buckets::dist#5
|
||||
[85] (word) init_buckets::i4#1 ← ++ (word) init_buckets::i4#2
|
||||
[86] if((word) init_buckets::i4#1!=(word) $3e8) goto init_buckets::@5
|
||||
to:init_buckets::@return
|
||||
init_buckets::@return: scope:[init_buckets] from init_buckets::@5
|
||||
[72] return
|
||||
[87] return
|
||||
to:@return
|
||||
malloc: scope:[malloc] from init_buckets::@3 init_squares
|
||||
[73] (word) malloc::size#2 ← phi( init_buckets::@3/(word) malloc::size#1 init_squares/(const byte) NUM_SQUARES#3*(const byte) SIZEOF_WORD )
|
||||
[73] (byte*) heap_head#13 ← phi( init_buckets::@3/(byte*) heap_head#1 init_squares/(const byte*) HEAP_TOP#0 )
|
||||
[74] (byte*) malloc::mem#0 ← (byte*) heap_head#13 - (word) malloc::size#2
|
||||
[75] (byte*) heap_head#1 ← (byte*) malloc::mem#0
|
||||
[88] (word) malloc::size#2 ← phi( init_buckets::@3/(word) malloc::size#1 init_squares/(const byte) NUM_SQUARES#3*(const byte) SIZEOF_WORD )
|
||||
[88] (byte*) heap_head#13 ← phi( init_buckets::@3/(byte*) heap_head#1 init_squares/(const byte*) HEAP_TOP#0 )
|
||||
[89] (byte*) malloc::mem#0 ← (byte*) heap_head#13 - (word) malloc::size#2
|
||||
[90] (byte*) heap_head#1 ← (byte*) malloc::mem#0
|
||||
to:malloc::@return
|
||||
malloc::@return: scope:[malloc] from malloc
|
||||
[76] return
|
||||
[91] return
|
||||
to:@return
|
||||
init_angle_screen: scope:[init_angle_screen] from main::@12
|
||||
[77] phi()
|
||||
init_angle_screen: scope:[init_angle_screen] from main::@13
|
||||
[92] phi()
|
||||
to:init_angle_screen::@1
|
||||
init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@3
|
||||
[78] (byte*) init_angle_screen::screen_topline#5 ← phi( init_angle_screen/(const byte[$3e8]) SCREEN_ANGLE#0+(word)(number) $28*(number) $c init_angle_screen::@3/(byte*) init_angle_screen::screen_topline#1 )
|
||||
[78] (byte*) init_angle_screen::screen_bottomline#5 ← phi( init_angle_screen/(const byte[$3e8]) SCREEN_ANGLE#0+(word)(number) $28*(number) $c init_angle_screen::@3/(byte*) init_angle_screen::screen_bottomline#1 )
|
||||
[78] (byte) init_angle_screen::y#4 ← phi( init_angle_screen/(byte) 0 init_angle_screen::@3/(byte) init_angle_screen::y#1 )
|
||||
[93] (byte*) init_angle_screen::screen_topline#5 ← phi( init_angle_screen/(const byte[$3e8]) SCREEN_ANGLE#0+(word)(number) $28*(number) $c init_angle_screen::@3/(byte*) init_angle_screen::screen_topline#1 )
|
||||
[93] (byte*) init_angle_screen::screen_bottomline#5 ← phi( init_angle_screen/(const byte[$3e8]) SCREEN_ANGLE#0+(word)(number) $28*(number) $c init_angle_screen::@3/(byte*) init_angle_screen::screen_bottomline#1 )
|
||||
[93] (byte) init_angle_screen::y#4 ← phi( init_angle_screen/(byte) 0 init_angle_screen::@3/(byte) init_angle_screen::y#1 )
|
||||
to:init_angle_screen::@2
|
||||
init_angle_screen::@2: scope:[init_angle_screen] from init_angle_screen::@1 init_angle_screen::@4
|
||||
[79] (byte) init_angle_screen::xb#2 ← phi( init_angle_screen::@1/(byte) $27 init_angle_screen::@4/(byte) init_angle_screen::xb#1 )
|
||||
[79] (byte) init_angle_screen::x#2 ← phi( init_angle_screen::@1/(byte) 0 init_angle_screen::@4/(byte) init_angle_screen::x#1 )
|
||||
[80] (byte~) init_angle_screen::$2 ← (byte) init_angle_screen::x#2 << (byte) 1
|
||||
[81] (byte~) init_angle_screen::$3 ← (byte) $27 - (byte~) init_angle_screen::$2
|
||||
[82] (word) init_angle_screen::xw#0 ← (byte~) init_angle_screen::$3 w= (byte) 0
|
||||
[83] (byte~) init_angle_screen::$6 ← (byte) init_angle_screen::y#4 << (byte) 1
|
||||
[84] (word) init_angle_screen::yw#0 ← (byte~) init_angle_screen::$6 w= (byte) 0
|
||||
[85] (signed word) atan2_16::x#0 ← (signed word)(word) init_angle_screen::xw#0
|
||||
[86] (signed word) atan2_16::y#0 ← (signed word)(word) init_angle_screen::yw#0
|
||||
[87] call atan2_16
|
||||
[88] (word) atan2_16::return#2 ← (word) atan2_16::return#0
|
||||
[94] (byte) init_angle_screen::xb#2 ← phi( init_angle_screen::@1/(byte) $27 init_angle_screen::@4/(byte) init_angle_screen::xb#1 )
|
||||
[94] (byte) init_angle_screen::x#2 ← phi( init_angle_screen::@1/(byte) 0 init_angle_screen::@4/(byte) init_angle_screen::x#1 )
|
||||
[95] (byte~) init_angle_screen::$2 ← (byte) init_angle_screen::x#2 << (byte) 1
|
||||
[96] (byte~) init_angle_screen::$3 ← (byte) $27 - (byte~) init_angle_screen::$2
|
||||
[97] (word) init_angle_screen::xw#0 ← (byte~) init_angle_screen::$3 w= (byte) 0
|
||||
[98] (byte~) init_angle_screen::$6 ← (byte) init_angle_screen::y#4 << (byte) 1
|
||||
[99] (word) init_angle_screen::yw#0 ← (byte~) init_angle_screen::$6 w= (byte) 0
|
||||
[100] (signed word) atan2_16::x#0 ← (signed word)(word) init_angle_screen::xw#0
|
||||
[101] (signed word) atan2_16::y#0 ← (signed word)(word) init_angle_screen::yw#0
|
||||
[102] call atan2_16
|
||||
[103] (word) atan2_16::return#2 ← (word) atan2_16::return#0
|
||||
to:init_angle_screen::@4
|
||||
init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[89] (word) init_angle_screen::angle_w#0 ← (word) atan2_16::return#2
|
||||
[90] (word~) init_angle_screen::$10 ← (word) init_angle_screen::angle_w#0 + (byte) $80
|
||||
[91] (byte) init_angle_screen::ang_w#0 ← > (word~) init_angle_screen::$10
|
||||
[92] *((byte*) init_angle_screen::screen_bottomline#5 + (byte) init_angle_screen::xb#2) ← (byte) init_angle_screen::ang_w#0
|
||||
[93] (byte~) init_angle_screen::$12 ← - (byte) init_angle_screen::ang_w#0
|
||||
[94] *((byte*) init_angle_screen::screen_topline#5 + (byte) init_angle_screen::xb#2) ← (byte~) init_angle_screen::$12
|
||||
[95] (byte~) init_angle_screen::$13 ← (byte) $80 + (byte) init_angle_screen::ang_w#0
|
||||
[96] *((byte*) init_angle_screen::screen_topline#5 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$13
|
||||
[97] (byte~) init_angle_screen::$14 ← (byte) $80 - (byte) init_angle_screen::ang_w#0
|
||||
[98] *((byte*) init_angle_screen::screen_bottomline#5 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$14
|
||||
[99] (byte) init_angle_screen::x#1 ← ++ (byte) init_angle_screen::x#2
|
||||
[100] (byte) init_angle_screen::xb#1 ← -- (byte) init_angle_screen::xb#2
|
||||
[101] if((byte) init_angle_screen::x#1<(byte) $13+(byte) 1) goto init_angle_screen::@2
|
||||
[104] (word) init_angle_screen::angle_w#0 ← (word) atan2_16::return#2
|
||||
[105] (word~) init_angle_screen::$10 ← (word) init_angle_screen::angle_w#0 + (byte) $80
|
||||
[106] (byte) init_angle_screen::ang_w#0 ← > (word~) init_angle_screen::$10
|
||||
[107] *((byte*) init_angle_screen::screen_bottomline#5 + (byte) init_angle_screen::xb#2) ← (byte) init_angle_screen::ang_w#0
|
||||
[108] (byte~) init_angle_screen::$12 ← - (byte) init_angle_screen::ang_w#0
|
||||
[109] *((byte*) init_angle_screen::screen_topline#5 + (byte) init_angle_screen::xb#2) ← (byte~) init_angle_screen::$12
|
||||
[110] (byte~) init_angle_screen::$13 ← (byte) $80 + (byte) init_angle_screen::ang_w#0
|
||||
[111] *((byte*) init_angle_screen::screen_topline#5 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$13
|
||||
[112] (byte~) init_angle_screen::$14 ← (byte) $80 - (byte) init_angle_screen::ang_w#0
|
||||
[113] *((byte*) init_angle_screen::screen_bottomline#5 + (byte) init_angle_screen::x#2) ← (byte~) init_angle_screen::$14
|
||||
[114] (byte) init_angle_screen::x#1 ← ++ (byte) init_angle_screen::x#2
|
||||
[115] (byte) init_angle_screen::xb#1 ← -- (byte) init_angle_screen::xb#2
|
||||
[116] if((byte) init_angle_screen::x#1<(byte) $13+(byte) 1) goto init_angle_screen::@2
|
||||
to:init_angle_screen::@3
|
||||
init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
[102] (byte*) init_angle_screen::screen_topline#1 ← (byte*) init_angle_screen::screen_topline#5 - (byte) $28
|
||||
[103] (byte*) init_angle_screen::screen_bottomline#1 ← (byte*) init_angle_screen::screen_bottomline#5 + (byte) $28
|
||||
[104] (byte) init_angle_screen::y#1 ← ++ (byte) init_angle_screen::y#4
|
||||
[105] if((byte) init_angle_screen::y#1!=(byte) $d) goto init_angle_screen::@1
|
||||
[117] (byte*) init_angle_screen::screen_topline#1 ← (byte*) init_angle_screen::screen_topline#5 - (byte) $28
|
||||
[118] (byte*) init_angle_screen::screen_bottomline#1 ← (byte*) init_angle_screen::screen_bottomline#5 + (byte) $28
|
||||
[119] (byte) init_angle_screen::y#1 ← ++ (byte) init_angle_screen::y#4
|
||||
[120] if((byte) init_angle_screen::y#1!=(byte) $d) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[106] return
|
||||
[121] return
|
||||
to:@return
|
||||
atan2_16: scope:[atan2_16] from init_angle_screen::@2
|
||||
[107] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
|
||||
[122] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
|
||||
to:atan2_16::@2
|
||||
atan2_16::@2: scope:[atan2_16] from atan2_16
|
||||
[108] (signed word~) atan2_16::$2 ← - (signed word) atan2_16::y#0
|
||||
[123] (signed word~) atan2_16::$2 ← - (signed word) atan2_16::y#0
|
||||
to:atan2_16::@3
|
||||
atan2_16::@3: scope:[atan2_16] from atan2_16::@1 atan2_16::@2
|
||||
[109] (signed word) atan2_16::yi#0 ← phi( atan2_16::@1/(signed word~) atan2_16::yi#16 atan2_16::@2/(signed word~) atan2_16::$2 )
|
||||
[110] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
|
||||
[124] (signed word) atan2_16::yi#0 ← phi( atan2_16::@1/(signed word~) atan2_16::yi#16 atan2_16::@2/(signed word~) atan2_16::$2 )
|
||||
[125] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
|
||||
to:atan2_16::@5
|
||||
atan2_16::@5: scope:[atan2_16] from atan2_16::@3
|
||||
[111] (signed word~) atan2_16::$7 ← - (signed word) atan2_16::x#0
|
||||
[126] (signed word~) atan2_16::$7 ← - (signed word) atan2_16::x#0
|
||||
to:atan2_16::@6
|
||||
atan2_16::@6: scope:[atan2_16] from atan2_16::@4 atan2_16::@5
|
||||
[112] (signed word) atan2_16::xi#0 ← phi( atan2_16::@4/(signed word~) atan2_16::xi#13 atan2_16::@5/(signed word~) atan2_16::$7 )
|
||||
[127] (signed word) atan2_16::xi#0 ← phi( atan2_16::@4/(signed word~) atan2_16::xi#13 atan2_16::@5/(signed word~) atan2_16::$7 )
|
||||
to:atan2_16::@10
|
||||
atan2_16::@10: scope:[atan2_16] from atan2_16::@19 atan2_16::@6
|
||||
[113] (word) atan2_16::angle#12 ← phi( atan2_16::@19/(word) atan2_16::angle#13 atan2_16::@6/(byte) 0 )
|
||||
[113] (byte) atan2_16::i#2 ← phi( atan2_16::@19/(byte) atan2_16::i#1 atan2_16::@6/(byte) 0 )
|
||||
[113] (signed word) atan2_16::xi#3 ← phi( atan2_16::@19/(signed word) atan2_16::xi#8 atan2_16::@6/(signed word) atan2_16::xi#0 )
|
||||
[113] (signed word) atan2_16::yi#3 ← phi( atan2_16::@19/(signed word) atan2_16::yi#8 atan2_16::@6/(signed word) atan2_16::yi#0 )
|
||||
[114] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@11
|
||||
[128] (word) atan2_16::angle#12 ← phi( atan2_16::@19/(word) atan2_16::angle#13 atan2_16::@6/(byte) 0 )
|
||||
[128] (byte) atan2_16::i#2 ← phi( atan2_16::@19/(byte) atan2_16::i#1 atan2_16::@6/(byte) 0 )
|
||||
[128] (signed word) atan2_16::xi#3 ← phi( atan2_16::@19/(signed word) atan2_16::xi#8 atan2_16::@6/(signed word) atan2_16::xi#0 )
|
||||
[128] (signed word) atan2_16::yi#3 ← phi( atan2_16::@19/(signed word) atan2_16::yi#8 atan2_16::@6/(signed word) atan2_16::yi#0 )
|
||||
[129] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@11
|
||||
to:atan2_16::@12
|
||||
atan2_16::@12: scope:[atan2_16] from atan2_16::@10 atan2_16::@19
|
||||
[115] (word) atan2_16::angle#6 ← phi( atan2_16::@10/(word) atan2_16::angle#12 atan2_16::@19/(word) atan2_16::angle#13 )
|
||||
[116] (word) atan2_16::angle#1 ← (word) atan2_16::angle#6 >> (byte) 1
|
||||
[117] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
|
||||
[130] (word) atan2_16::angle#6 ← phi( atan2_16::@10/(word) atan2_16::angle#12 atan2_16::@19/(word) atan2_16::angle#13 )
|
||||
[131] (word) atan2_16::angle#1 ← (word) atan2_16::angle#6 >> (byte) 1
|
||||
[132] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
|
||||
to:atan2_16::@21
|
||||
atan2_16::@21: scope:[atan2_16] from atan2_16::@12
|
||||
[118] (word) atan2_16::angle#4 ← (word) $8000 - (word) atan2_16::angle#1
|
||||
[133] (word) atan2_16::angle#4 ← (word) $8000 - (word) atan2_16::angle#1
|
||||
to:atan2_16::@7
|
||||
atan2_16::@7: scope:[atan2_16] from atan2_16::@12 atan2_16::@21
|
||||
[119] (word) atan2_16::angle#11 ← phi( atan2_16::@12/(word) atan2_16::angle#1 atan2_16::@21/(word) atan2_16::angle#4 )
|
||||
[120] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
|
||||
[134] (word) atan2_16::angle#11 ← phi( atan2_16::@12/(word) atan2_16::angle#1 atan2_16::@21/(word) atan2_16::angle#4 )
|
||||
[135] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
|
||||
to:atan2_16::@9
|
||||
atan2_16::@9: scope:[atan2_16] from atan2_16::@7
|
||||
[121] (word) atan2_16::angle#5 ← - (word) atan2_16::angle#11
|
||||
[136] (word) atan2_16::angle#5 ← - (word) atan2_16::angle#11
|
||||
to:atan2_16::@8
|
||||
atan2_16::@8: scope:[atan2_16] from atan2_16::@7 atan2_16::@9
|
||||
[122] (word) atan2_16::return#0 ← phi( atan2_16::@9/(word) atan2_16::angle#5 atan2_16::@7/(word) atan2_16::angle#11 )
|
||||
[137] (word) atan2_16::return#0 ← phi( atan2_16::@9/(word) atan2_16::angle#5 atan2_16::@7/(word) atan2_16::angle#11 )
|
||||
to:atan2_16::@return
|
||||
atan2_16::@return: scope:[atan2_16] from atan2_16::@8
|
||||
[123] return
|
||||
[138] return
|
||||
to:@return
|
||||
atan2_16::@11: scope:[atan2_16] from atan2_16::@10
|
||||
[124] (byte~) atan2_16::shift#5 ← (byte) atan2_16::i#2
|
||||
[125] (signed word~) atan2_16::xd#10 ← (signed word) atan2_16::xi#3
|
||||
[126] (signed word~) atan2_16::yd#10 ← (signed word) atan2_16::yi#3
|
||||
[139] (byte~) atan2_16::shift#5 ← (byte) atan2_16::i#2
|
||||
[140] (signed word~) atan2_16::xd#10 ← (signed word) atan2_16::xi#3
|
||||
[141] (signed word~) atan2_16::yd#10 ← (signed word) atan2_16::yi#3
|
||||
to:atan2_16::@13
|
||||
atan2_16::@13: scope:[atan2_16] from atan2_16::@11 atan2_16::@14
|
||||
[127] (signed word) atan2_16::yd#3 ← phi( atan2_16::@11/(signed word~) atan2_16::yd#10 atan2_16::@14/(signed word) atan2_16::yd#1 )
|
||||
[127] (signed word) atan2_16::xd#3 ← phi( atan2_16::@11/(signed word~) atan2_16::xd#10 atan2_16::@14/(signed word) atan2_16::xd#1 )
|
||||
[127] (byte) atan2_16::shift#2 ← phi( atan2_16::@11/(byte~) atan2_16::shift#5 atan2_16::@14/(byte) atan2_16::shift#1 )
|
||||
[128] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@14
|
||||
[142] (signed word) atan2_16::yd#3 ← phi( atan2_16::@11/(signed word~) atan2_16::yd#10 atan2_16::@14/(signed word) atan2_16::yd#1 )
|
||||
[142] (signed word) atan2_16::xd#3 ← phi( atan2_16::@11/(signed word~) atan2_16::xd#10 atan2_16::@14/(signed word) atan2_16::xd#1 )
|
||||
[142] (byte) atan2_16::shift#2 ← phi( atan2_16::@11/(byte~) atan2_16::shift#5 atan2_16::@14/(byte) atan2_16::shift#1 )
|
||||
[143] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@14
|
||||
to:atan2_16::@15
|
||||
atan2_16::@15: scope:[atan2_16] from atan2_16::@13
|
||||
[129] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@17
|
||||
[144] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@17
|
||||
to:atan2_16::@16
|
||||
atan2_16::@16: scope:[atan2_16] from atan2_16::@15
|
||||
[130] (signed word) atan2_16::xd#2 ← (signed word) atan2_16::xd#3 >> (signed byte) 1
|
||||
[131] (signed word) atan2_16::yd#2 ← (signed word) atan2_16::yd#3 >> (signed byte) 1
|
||||
[145] (signed word) atan2_16::xd#2 ← (signed word) atan2_16::xd#3 >> (signed byte) 1
|
||||
[146] (signed word) atan2_16::yd#2 ← (signed word) atan2_16::yd#3 >> (signed byte) 1
|
||||
to:atan2_16::@17
|
||||
atan2_16::@17: scope:[atan2_16] from atan2_16::@15 atan2_16::@16
|
||||
[132] (signed word) atan2_16::xd#5 ← phi( atan2_16::@15/(signed word) atan2_16::xd#3 atan2_16::@16/(signed word) atan2_16::xd#2 )
|
||||
[132] (signed word) atan2_16::yd#5 ← phi( atan2_16::@15/(signed word) atan2_16::yd#3 atan2_16::@16/(signed word) atan2_16::yd#2 )
|
||||
[133] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@18
|
||||
[147] (signed word) atan2_16::xd#5 ← phi( atan2_16::@15/(signed word) atan2_16::xd#3 atan2_16::@16/(signed word) atan2_16::xd#2 )
|
||||
[147] (signed word) atan2_16::yd#5 ← phi( atan2_16::@15/(signed word) atan2_16::yd#3 atan2_16::@16/(signed word) atan2_16::yd#2 )
|
||||
[148] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@18
|
||||
to:atan2_16::@20
|
||||
atan2_16::@20: scope:[atan2_16] from atan2_16::@17
|
||||
[134] (signed word) atan2_16::xi#2 ← (signed word) atan2_16::xi#3 - (signed word) atan2_16::yd#5
|
||||
[135] (signed word) atan2_16::yi#2 ← (signed word) atan2_16::yi#3 + (signed word) atan2_16::xd#5
|
||||
[136] (byte~) atan2_16::$24 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[137] (word) atan2_16::angle#3 ← (word) atan2_16::angle#12 - *((const word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16#0 + (byte~) atan2_16::$24)
|
||||
[149] (signed word) atan2_16::xi#2 ← (signed word) atan2_16::xi#3 - (signed word) atan2_16::yd#5
|
||||
[150] (signed word) atan2_16::yi#2 ← (signed word) atan2_16::yi#3 + (signed word) atan2_16::xd#5
|
||||
[151] (byte~) atan2_16::$24 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[152] (word) atan2_16::angle#3 ← (word) atan2_16::angle#12 - *((const word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16#0 + (byte~) atan2_16::$24)
|
||||
to:atan2_16::@19
|
||||
atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20
|
||||
[138] (signed word) atan2_16::xi#8 ← phi( atan2_16::@18/(signed word) atan2_16::xi#1 atan2_16::@20/(signed word) atan2_16::xi#2 )
|
||||
[138] (word) atan2_16::angle#13 ← phi( atan2_16::@18/(word) atan2_16::angle#2 atan2_16::@20/(word) atan2_16::angle#3 )
|
||||
[138] (signed word) atan2_16::yi#8 ← phi( atan2_16::@18/(signed word) atan2_16::yi#1 atan2_16::@20/(signed word) atan2_16::yi#2 )
|
||||
[139] (byte) atan2_16::i#1 ← ++ (byte) atan2_16::i#2
|
||||
[140] if((byte) atan2_16::i#1==(const byte) CORDIC_ITERATIONS_16#0-(byte) 1+(byte) 1) goto atan2_16::@12
|
||||
[153] (signed word) atan2_16::xi#8 ← phi( atan2_16::@18/(signed word) atan2_16::xi#1 atan2_16::@20/(signed word) atan2_16::xi#2 )
|
||||
[153] (word) atan2_16::angle#13 ← phi( atan2_16::@18/(word) atan2_16::angle#2 atan2_16::@20/(word) atan2_16::angle#3 )
|
||||
[153] (signed word) atan2_16::yi#8 ← phi( atan2_16::@18/(signed word) atan2_16::yi#1 atan2_16::@20/(signed word) atan2_16::yi#2 )
|
||||
[154] (byte) atan2_16::i#1 ← ++ (byte) atan2_16::i#2
|
||||
[155] if((byte) atan2_16::i#1==(const byte) CORDIC_ITERATIONS_16#0-(byte) 1+(byte) 1) goto atan2_16::@12
|
||||
to:atan2_16::@10
|
||||
atan2_16::@18: scope:[atan2_16] from atan2_16::@17
|
||||
[141] (signed word) atan2_16::xi#1 ← (signed word) atan2_16::xi#3 + (signed word) atan2_16::yd#5
|
||||
[142] (signed word) atan2_16::yi#1 ← (signed word) atan2_16::yi#3 - (signed word) atan2_16::xd#5
|
||||
[143] (byte~) atan2_16::$23 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[144] (word) atan2_16::angle#2 ← (word) atan2_16::angle#12 + *((const word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16#0 + (byte~) atan2_16::$23)
|
||||
[156] (signed word) atan2_16::xi#1 ← (signed word) atan2_16::xi#3 + (signed word) atan2_16::yd#5
|
||||
[157] (signed word) atan2_16::yi#1 ← (signed word) atan2_16::yi#3 - (signed word) atan2_16::xd#5
|
||||
[158] (byte~) atan2_16::$23 ← (byte) atan2_16::i#2 << (byte) 1
|
||||
[159] (word) atan2_16::angle#2 ← (word) atan2_16::angle#12 + *((const word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16#0 + (byte~) atan2_16::$23)
|
||||
to:atan2_16::@19
|
||||
atan2_16::@14: scope:[atan2_16] from atan2_16::@13
|
||||
[145] (signed word) atan2_16::xd#1 ← (signed word) atan2_16::xd#3 >> (signed byte) 2
|
||||
[146] (signed word) atan2_16::yd#1 ← (signed word) atan2_16::yd#3 >> (signed byte) 2
|
||||
[147] (byte) atan2_16::shift#1 ← (byte) atan2_16::shift#2 - (byte) 2
|
||||
[160] (signed word) atan2_16::xd#1 ← (signed word) atan2_16::xd#3 >> (signed byte) 2
|
||||
[161] (signed word) atan2_16::yd#1 ← (signed word) atan2_16::yd#3 >> (signed byte) 2
|
||||
[162] (byte) atan2_16::shift#1 ← (byte) atan2_16::shift#2 - (byte) 2
|
||||
to:atan2_16::@13
|
||||
atan2_16::@4: scope:[atan2_16] from atan2_16::@3
|
||||
[148] (signed word~) atan2_16::xi#13 ← (signed word) atan2_16::x#0
|
||||
[163] (signed word~) atan2_16::xi#13 ← (signed word) atan2_16::x#0
|
||||
to:atan2_16::@6
|
||||
atan2_16::@1: scope:[atan2_16] from atan2_16
|
||||
[149] (signed word~) atan2_16::yi#16 ← (signed word) atan2_16::y#0
|
||||
[164] (signed word~) atan2_16::yi#16 ← (signed word) atan2_16::y#0
|
||||
to:atan2_16::@3
|
||||
init_dist_screen: scope:[init_dist_screen] from main
|
||||
[150] phi()
|
||||
[151] call init_squares
|
||||
[165] phi()
|
||||
[166] call init_squares
|
||||
to:init_dist_screen::@1
|
||||
init_dist_screen::@1: scope:[init_dist_screen] from init_dist_screen init_dist_screen::@9
|
||||
[152] (byte*) init_dist_screen::screen_bottomline#10 ← phi( init_dist_screen::@9/(byte*) init_dist_screen::screen_bottomline#1 init_dist_screen/(const byte[$3e8]) SCREEN_DIST#0+(word)(number) $28*(number) $18 )
|
||||
[152] (byte*) init_dist_screen::screen_topline#10 ← phi( init_dist_screen::@9/(byte*) init_dist_screen::screen_topline#1 init_dist_screen/(const byte[$3e8]) SCREEN_DIST#0 )
|
||||
[152] (byte) init_dist_screen::y#10 ← phi( init_dist_screen::@9/(byte) init_dist_screen::y#1 init_dist_screen/(byte) 0 )
|
||||
[153] (byte) init_dist_screen::y2#0 ← (byte) init_dist_screen::y#10 << (byte) 1
|
||||
[154] if((byte) init_dist_screen::y2#0>=(byte) $18) goto init_dist_screen::@2
|
||||
[167] (byte*) init_dist_screen::screen_bottomline#10 ← phi( init_dist_screen::@9/(byte*) init_dist_screen::screen_bottomline#1 init_dist_screen/(const byte[$3e8]) SCREEN_DIST#0+(word)(number) $28*(number) $18 )
|
||||
[167] (byte*) init_dist_screen::screen_topline#10 ← phi( init_dist_screen::@9/(byte*) init_dist_screen::screen_topline#1 init_dist_screen/(const byte[$3e8]) SCREEN_DIST#0 )
|
||||
[167] (byte) init_dist_screen::y#10 ← phi( init_dist_screen::@9/(byte) init_dist_screen::y#1 init_dist_screen/(byte) 0 )
|
||||
[168] (byte) init_dist_screen::y2#0 ← (byte) init_dist_screen::y#10 << (byte) 1
|
||||
[169] if((byte) init_dist_screen::y2#0>=(byte) $18) goto init_dist_screen::@2
|
||||
to:init_dist_screen::@3
|
||||
init_dist_screen::@3: scope:[init_dist_screen] from init_dist_screen::@1
|
||||
[155] (byte~) init_dist_screen::$5 ← (byte) $18 - (byte) init_dist_screen::y2#0
|
||||
[170] (byte~) init_dist_screen::$5 ← (byte) $18 - (byte) init_dist_screen::y2#0
|
||||
to:init_dist_screen::@4
|
||||
init_dist_screen::@4: scope:[init_dist_screen] from init_dist_screen::@2 init_dist_screen::@3
|
||||
[156] (byte) init_dist_screen::yd#0 ← phi( init_dist_screen::@2/(byte~) init_dist_screen::$7 init_dist_screen::@3/(byte~) init_dist_screen::$5 )
|
||||
[157] (byte) sqr::val#0 ← (byte) init_dist_screen::yd#0
|
||||
[158] call sqr
|
||||
[159] (word) sqr::return#2 ← (word) sqr::return#0
|
||||
[171] (byte) init_dist_screen::yd#0 ← phi( init_dist_screen::@2/(byte~) init_dist_screen::$7 init_dist_screen::@3/(byte~) init_dist_screen::$5 )
|
||||
[172] (byte) sqr::val#0 ← (byte) init_dist_screen::yd#0
|
||||
[173] call sqr
|
||||
[174] (word) sqr::return#2 ← (word) sqr::return#0
|
||||
to:init_dist_screen::@10
|
||||
init_dist_screen::@10: scope:[init_dist_screen] from init_dist_screen::@4
|
||||
[160] (word) init_dist_screen::yds#0 ← (word) sqr::return#2
|
||||
[175] (word) init_dist_screen::yds#0 ← (word) sqr::return#2
|
||||
to:init_dist_screen::@5
|
||||
init_dist_screen::@5: scope:[init_dist_screen] from init_dist_screen::@10 init_dist_screen::@12
|
||||
[161] (byte) init_dist_screen::xb#2 ← phi( init_dist_screen::@10/(byte) $27 init_dist_screen::@12/(byte) init_dist_screen::xb#1 )
|
||||
[161] (byte) init_dist_screen::x#2 ← phi( init_dist_screen::@10/(byte) 0 init_dist_screen::@12/(byte) init_dist_screen::x#1 )
|
||||
[162] (byte) init_dist_screen::x2#0 ← (byte) init_dist_screen::x#2 << (byte) 1
|
||||
[163] if((byte) init_dist_screen::x2#0>=(byte) $27) goto init_dist_screen::@6
|
||||
[176] (byte) init_dist_screen::xb#2 ← phi( init_dist_screen::@10/(byte) $27 init_dist_screen::@12/(byte) init_dist_screen::xb#1 )
|
||||
[176] (byte) init_dist_screen::x#2 ← phi( init_dist_screen::@10/(byte) 0 init_dist_screen::@12/(byte) init_dist_screen::x#1 )
|
||||
[177] (byte) init_dist_screen::x2#0 ← (byte) init_dist_screen::x#2 << (byte) 1
|
||||
[178] if((byte) init_dist_screen::x2#0>=(byte) $27) goto init_dist_screen::@6
|
||||
to:init_dist_screen::@7
|
||||
init_dist_screen::@7: scope:[init_dist_screen] from init_dist_screen::@5
|
||||
[164] (byte~) init_dist_screen::$13 ← (byte) $27 - (byte) init_dist_screen::x2#0
|
||||
[179] (byte~) init_dist_screen::$13 ← (byte) $27 - (byte) init_dist_screen::x2#0
|
||||
to:init_dist_screen::@8
|
||||
init_dist_screen::@8: scope:[init_dist_screen] from init_dist_screen::@6 init_dist_screen::@7
|
||||
[165] (byte) init_dist_screen::xd#0 ← phi( init_dist_screen::@6/(byte~) init_dist_screen::$15 init_dist_screen::@7/(byte~) init_dist_screen::$13 )
|
||||
[166] (byte) sqr::val#1 ← (byte) init_dist_screen::xd#0
|
||||
[167] call sqr
|
||||
[168] (word) sqr::return#3 ← (word) sqr::return#0
|
||||
[180] (byte) init_dist_screen::xd#0 ← phi( init_dist_screen::@6/(byte~) init_dist_screen::$15 init_dist_screen::@7/(byte~) init_dist_screen::$13 )
|
||||
[181] (byte) sqr::val#1 ← (byte) init_dist_screen::xd#0
|
||||
[182] call sqr
|
||||
[183] (word) sqr::return#3 ← (word) sqr::return#0
|
||||
to:init_dist_screen::@11
|
||||
init_dist_screen::@11: scope:[init_dist_screen] from init_dist_screen::@8
|
||||
[169] (word) init_dist_screen::xds#0 ← (word) sqr::return#3
|
||||
[170] (word) init_dist_screen::ds#0 ← (word) init_dist_screen::xds#0 + (word) init_dist_screen::yds#0
|
||||
[171] (word) sqrt::val#0 ← (word) init_dist_screen::ds#0
|
||||
[172] call sqrt
|
||||
[173] (byte) sqrt::return#2 ← (byte) sqrt::return#0
|
||||
[184] (word) init_dist_screen::xds#0 ← (word) sqr::return#3
|
||||
[185] (word) init_dist_screen::ds#0 ← (word) init_dist_screen::xds#0 + (word) init_dist_screen::yds#0
|
||||
[186] (word) sqrt::val#0 ← (word) init_dist_screen::ds#0
|
||||
[187] call sqrt
|
||||
[188] (byte) sqrt::return#2 ← (byte) sqrt::return#0
|
||||
to:init_dist_screen::@12
|
||||
init_dist_screen::@12: scope:[init_dist_screen] from init_dist_screen::@11
|
||||
[174] (byte) init_dist_screen::d#0 ← (byte) sqrt::return#2
|
||||
[175] *((byte*) init_dist_screen::screen_topline#10 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[176] *((byte*) init_dist_screen::screen_bottomline#10 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[177] *((byte*) init_dist_screen::screen_topline#10 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[178] *((byte*) init_dist_screen::screen_bottomline#10 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[179] (byte) init_dist_screen::x#1 ← ++ (byte) init_dist_screen::x#2
|
||||
[180] (byte) init_dist_screen::xb#1 ← -- (byte) init_dist_screen::xb#2
|
||||
[181] if((byte) init_dist_screen::x#1<(byte) $13+(byte) 1) goto init_dist_screen::@5
|
||||
[189] (byte) init_dist_screen::d#0 ← (byte) sqrt::return#2
|
||||
[190] *((byte*) init_dist_screen::screen_topline#10 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[191] *((byte*) init_dist_screen::screen_bottomline#10 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
|
||||
[192] *((byte*) init_dist_screen::screen_topline#10 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[193] *((byte*) init_dist_screen::screen_bottomline#10 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
|
||||
[194] (byte) init_dist_screen::x#1 ← ++ (byte) init_dist_screen::x#2
|
||||
[195] (byte) init_dist_screen::xb#1 ← -- (byte) init_dist_screen::xb#2
|
||||
[196] if((byte) init_dist_screen::x#1<(byte) $13+(byte) 1) goto init_dist_screen::@5
|
||||
to:init_dist_screen::@9
|
||||
init_dist_screen::@9: scope:[init_dist_screen] from init_dist_screen::@12
|
||||
[182] (byte*) init_dist_screen::screen_topline#1 ← (byte*) init_dist_screen::screen_topline#10 + (byte) $28
|
||||
[183] (byte*) init_dist_screen::screen_bottomline#1 ← (byte*) init_dist_screen::screen_bottomline#10 - (byte) $28
|
||||
[184] (byte) init_dist_screen::y#1 ← ++ (byte) init_dist_screen::y#10
|
||||
[185] if((byte) init_dist_screen::y#1!=(byte) $d) goto init_dist_screen::@1
|
||||
[197] (byte*) init_dist_screen::screen_topline#1 ← (byte*) init_dist_screen::screen_topline#10 + (byte) $28
|
||||
[198] (byte*) init_dist_screen::screen_bottomline#1 ← (byte*) init_dist_screen::screen_bottomline#10 - (byte) $28
|
||||
[199] (byte) init_dist_screen::y#1 ← ++ (byte) init_dist_screen::y#10
|
||||
[200] if((byte) init_dist_screen::y#1!=(byte) $d) goto init_dist_screen::@1
|
||||
to:init_dist_screen::@return
|
||||
init_dist_screen::@return: scope:[init_dist_screen] from init_dist_screen::@9
|
||||
[186] return
|
||||
[201] return
|
||||
to:@return
|
||||
init_dist_screen::@6: scope:[init_dist_screen] from init_dist_screen::@5
|
||||
[187] (byte~) init_dist_screen::$15 ← (byte) init_dist_screen::x2#0 - (byte) $27
|
||||
[202] (byte~) init_dist_screen::$15 ← (byte) init_dist_screen::x2#0 - (byte) $27
|
||||
to:init_dist_screen::@8
|
||||
init_dist_screen::@2: scope:[init_dist_screen] from init_dist_screen::@1
|
||||
[188] (byte~) init_dist_screen::$7 ← (byte) init_dist_screen::y2#0 - (byte) $18
|
||||
[203] (byte~) init_dist_screen::$7 ← (byte) init_dist_screen::y2#0 - (byte) $18
|
||||
to:init_dist_screen::@4
|
||||
sqrt: scope:[sqrt] from init_dist_screen::@11
|
||||
[189] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[190] (word*) bsearch16u::items#1 ← (word*)(void*) SQUARES#1
|
||||
[191] call bsearch16u
|
||||
[192] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
[204] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[205] (word*) bsearch16u::items#1 ← (word*)(void*) SQUARES#1
|
||||
[206] call bsearch16u
|
||||
[207] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
to:sqrt::@1
|
||||
sqrt::@1: scope:[sqrt] from sqrt
|
||||
[193] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[194] (word~) sqrt::$3 ← (word*) sqrt::found#0 - (word*)(void*) SQUARES#1
|
||||
[195] (word~) sqrt::$1 ← (word~) sqrt::$3 >> (byte) 1
|
||||
[196] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
[208] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[209] (word~) sqrt::$3 ← (word*) sqrt::found#0 - (word*)(void*) SQUARES#1
|
||||
[210] (word~) sqrt::$1 ← (word~) sqrt::$3 >> (byte) 1
|
||||
[211] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
to:sqrt::@return
|
||||
sqrt::@return: scope:[sqrt] from sqrt::@1
|
||||
[197] return
|
||||
[212] return
|
||||
to:@return
|
||||
bsearch16u: scope:[bsearch16u] from sqrt
|
||||
[198] phi()
|
||||
[213] phi()
|
||||
to:bsearch16u::@3
|
||||
bsearch16u::@3: scope:[bsearch16u] from bsearch16u bsearch16u::@7
|
||||
[199] (word*) bsearch16u::items#2 ← phi( bsearch16u/(word*) bsearch16u::items#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[199] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#3 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[200] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
[214] (word*) bsearch16u::items#2 ← phi( bsearch16u/(word*) bsearch16u::items#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[214] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#3 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[215] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
to:bsearch16u::@5
|
||||
bsearch16u::@5: scope:[bsearch16u] from bsearch16u::@3
|
||||
[201] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
[216] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
to:bsearch16u::@1
|
||||
bsearch16u::@1: scope:[bsearch16u] from bsearch16u::@5
|
||||
[202] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
|
||||
[217] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
|
||||
to:bsearch16u::@2
|
||||
bsearch16u::@2: scope:[bsearch16u] from bsearch16u::@1 bsearch16u::@5
|
||||
[203] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
|
||||
[218] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@return: scope:[bsearch16u] from bsearch16u::@2 bsearch16u::@8
|
||||
[204] (word*) bsearch16u::return#1 ← phi( bsearch16u::@8/(word*~) bsearch16u::return#6 bsearch16u::@2/(word*) bsearch16u::return#2 )
|
||||
[205] return
|
||||
to:@return
|
||||
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
|
||||
[206] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[207] (byte~) bsearch16u::$16 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[208] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$16
|
||||
[209] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[210] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
to:bsearch16u::@8
|
||||
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
|
||||
[211] (word*~) bsearch16u::return#6 ← (word*) bsearch16u::pivot#0
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
|
||||
[212] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
to:bsearch16u::@9
|
||||
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
|
||||
[213] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[214] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
to:bsearch16u::@7
|
||||
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
|
||||
[215] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[215] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[216] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
to:bsearch16u::@3
|
||||
sqr: scope:[sqr] from init_dist_screen::@4 init_dist_screen::@8
|
||||
[217] (byte) sqr::val#2 ← phi( init_dist_screen::@4/(byte) sqr::val#0 init_dist_screen::@8/(byte) sqr::val#1 )
|
||||
[218] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[219] (word) sqr::return#0 ← *((word*)(void*) SQUARES#1 + (byte~) sqr::$0)
|
||||
to:sqr::@return
|
||||
sqr::@return: scope:[sqr] from sqr
|
||||
[219] (word*) bsearch16u::return#1 ← phi( bsearch16u::@8/(word*~) bsearch16u::return#6 bsearch16u::@2/(word*) bsearch16u::return#2 )
|
||||
[220] return
|
||||
to:@return
|
||||
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
|
||||
[221] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[222] (byte~) bsearch16u::$16 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[223] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$16
|
||||
[224] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[225] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
to:bsearch16u::@8
|
||||
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
|
||||
[226] (word*~) bsearch16u::return#6 ← (word*) bsearch16u::pivot#0
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
|
||||
[227] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
to:bsearch16u::@9
|
||||
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
|
||||
[228] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[229] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
to:bsearch16u::@7
|
||||
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
|
||||
[230] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[230] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[231] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
to:bsearch16u::@3
|
||||
sqr: scope:[sqr] from init_dist_screen::@4 init_dist_screen::@8
|
||||
[232] (byte) sqr::val#2 ← phi( init_dist_screen::@4/(byte) sqr::val#0 init_dist_screen::@8/(byte) sqr::val#1 )
|
||||
[233] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[234] (word) sqr::return#0 ← *((word*)(void*) SQUARES#1 + (byte~) sqr::$0)
|
||||
to:sqr::@return
|
||||
sqr::@return: scope:[sqr] from sqr
|
||||
[235] return
|
||||
to:@return
|
||||
init_squares: scope:[init_squares] from init_dist_screen
|
||||
[221] phi()
|
||||
[222] call malloc
|
||||
[236] phi()
|
||||
[237] call malloc
|
||||
to:init_squares::@2
|
||||
init_squares::@2: scope:[init_squares] from init_squares
|
||||
[223] (void*) SQUARES#1 ← (void*)(byte*) malloc::mem#0
|
||||
[224] (word*) init_squares::squares#0 ← (word*)(void*) SQUARES#1
|
||||
[238] (void*) SQUARES#1 ← (void*)(byte*) malloc::mem#0
|
||||
[239] (word*) init_squares::squares#0 ← (word*)(void*) SQUARES#1
|
||||
to:init_squares::@1
|
||||
init_squares::@1: scope:[init_squares] from init_squares::@1 init_squares::@2
|
||||
[225] (byte) init_squares::i#2 ← phi( init_squares::@1/(byte) init_squares::i#1 init_squares::@2/(byte) 0 )
|
||||
[225] (word*) init_squares::squares#2 ← phi( init_squares::@1/(word*) init_squares::squares#1 init_squares::@2/(word*) init_squares::squares#0 )
|
||||
[225] (word) init_squares::sqr#2 ← phi( init_squares::@1/(word) init_squares::sqr#1 init_squares::@2/(byte) 0 )
|
||||
[226] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[227] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[228] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[229] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[230] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[231] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
[232] if((byte) init_squares::i#1!=(const byte) NUM_SQUARES#3-(byte) 1+(byte) 1) goto init_squares::@1
|
||||
[240] (byte) init_squares::i#2 ← phi( init_squares::@1/(byte) init_squares::i#1 init_squares::@2/(byte) 0 )
|
||||
[240] (word*) init_squares::squares#2 ← phi( init_squares::@1/(word*) init_squares::squares#1 init_squares::@2/(word*) init_squares::squares#0 )
|
||||
[240] (word) init_squares::sqr#2 ← phi( init_squares::@1/(word) init_squares::sqr#1 init_squares::@2/(byte) 0 )
|
||||
[241] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[242] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[243] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[244] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[245] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[246] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
[247] if((byte) init_squares::i#1!=(const byte) NUM_SQUARES#3-(byte) 1+(byte) 1) goto init_squares::@1
|
||||
to:init_squares::@return
|
||||
init_squares::@return: scope:[init_squares] from init_squares::@1
|
||||
[233] return
|
||||
[248] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -17,8 +17,8 @@
|
||||
(const byte) CORDIC_ITERATIONS_16#0 CORDIC_ITERATIONS_16 = (byte) $f
|
||||
(byte*) HEAP_TOP
|
||||
(const byte*) HEAP_TOP#0 HEAP_TOP = (byte*) 40960
|
||||
(byte) NUM_BUCKETS
|
||||
(const byte) NUM_BUCKETS#0 NUM_BUCKETS = (byte) $30
|
||||
(word) NUM_BUCKETS
|
||||
(const word) NUM_BUCKETS#0 NUM_BUCKETS = (word) $100
|
||||
(byte) NUM_SQUARES
|
||||
(const byte) NUM_SQUARES#3 NUM_SQUARES = (byte) $30
|
||||
(byte*) RASTER
|
||||
@ -29,14 +29,16 @@
|
||||
(const byte[$3e8]) SCREEN_DIST#0 SCREEN_DIST = { fill( $3e8, 0) }
|
||||
(byte*) SCREEN_FILL
|
||||
(const byte*) SCREEN_FILL#0 SCREEN_FILL = (byte*) 1024
|
||||
(byte[$3e8]) SCREEN_MIX
|
||||
(const byte[$3e8]) SCREEN_MIX#0 SCREEN_MIX = { fill( $3e8, 0) }
|
||||
(const byte) SIZEOF_WORD SIZEOF_WORD = (byte) 2
|
||||
(word*) SQUARES
|
||||
(void*) SQUARES#1 SQUARES zp ZP_WORD:13 0.03278688524590164
|
||||
(void*) SQUARES#1 SQUARES zp ZP_WORD:23 0.03278688524590164
|
||||
(word()) atan2_16((signed word) atan2_16::x , (signed word) atan2_16::y)
|
||||
(signed word~) atan2_16::$2 $2 zp ZP_WORD:22 4.0
|
||||
(signed word~) atan2_16::$2 $2 zp ZP_WORD:32 4.0
|
||||
(byte~) atan2_16::$23 reg byte a 2002.0
|
||||
(byte~) atan2_16::$24 reg byte a 2002.0
|
||||
(signed word~) atan2_16::$7 $7 zp ZP_WORD:24 4.0
|
||||
(signed word~) atan2_16::$7 $7 zp ZP_WORD:34 4.0
|
||||
(label) atan2_16::@1
|
||||
(label) atan2_16::@10
|
||||
(label) atan2_16::@11
|
||||
@ -60,58 +62,58 @@
|
||||
(label) atan2_16::@9
|
||||
(label) atan2_16::@return
|
||||
(word) atan2_16::angle
|
||||
(word) atan2_16::angle#1 angle zp ZP_WORD:26 3.0
|
||||
(word) atan2_16::angle#11 angle zp ZP_WORD:26 4.0
|
||||
(word) atan2_16::angle#12 angle zp ZP_WORD:26 190.66666666666666
|
||||
(word) atan2_16::angle#13 angle zp ZP_WORD:26 1334.6666666666667
|
||||
(word) atan2_16::angle#2 angle zp ZP_WORD:26 2002.0
|
||||
(word) atan2_16::angle#3 angle zp ZP_WORD:26 2002.0
|
||||
(word) atan2_16::angle#4 angle zp ZP_WORD:26 4.0
|
||||
(word) atan2_16::angle#5 angle zp ZP_WORD:26 4.0
|
||||
(word) atan2_16::angle#6 angle zp ZP_WORD:26 2004.0
|
||||
(word) atan2_16::angle#1 angle zp ZP_WORD:36 3.0
|
||||
(word) atan2_16::angle#11 angle zp ZP_WORD:36 4.0
|
||||
(word) atan2_16::angle#12 angle zp ZP_WORD:36 190.66666666666666
|
||||
(word) atan2_16::angle#13 angle zp ZP_WORD:36 1334.6666666666667
|
||||
(word) atan2_16::angle#2 angle zp ZP_WORD:36 2002.0
|
||||
(word) atan2_16::angle#3 angle zp ZP_WORD:36 2002.0
|
||||
(word) atan2_16::angle#4 angle zp ZP_WORD:36 4.0
|
||||
(word) atan2_16::angle#5 angle zp ZP_WORD:36 4.0
|
||||
(word) atan2_16::angle#6 angle zp ZP_WORD:36 2004.0
|
||||
(byte) atan2_16::i
|
||||
(byte) atan2_16::i#1 reg byte x 1501.5
|
||||
(byte) atan2_16::i#2 reg byte x 208.54166666666669
|
||||
(word) atan2_16::return
|
||||
(word) atan2_16::return#0 return zp ZP_WORD:26 34.99999999999999
|
||||
(word) atan2_16::return#2 return zp ZP_WORD:26 202.0
|
||||
(word) atan2_16::return#0 return zp ZP_WORD:36 34.99999999999999
|
||||
(word) atan2_16::return#2 return zp ZP_WORD:36 202.0
|
||||
(byte) atan2_16::shift
|
||||
(byte) atan2_16::shift#1 reg byte y 20002.0
|
||||
(byte) atan2_16::shift#2 reg byte y 8001.25
|
||||
(byte~) atan2_16::shift#5 reg byte y 667.3333333333334
|
||||
(signed word) atan2_16::x
|
||||
(signed word) atan2_16::x#0 x zp ZP_WORD:59 2.8684210526315796
|
||||
(signed word) atan2_16::x#0 x zp ZP_WORD:72 2.8684210526315796
|
||||
(signed word) atan2_16::xd
|
||||
(signed word) atan2_16::xd#1 xd zp ZP_WORD:30 6667.333333333333
|
||||
(signed word~) atan2_16::xd#10 xd zp ZP_WORD:30 1001.0
|
||||
(signed word) atan2_16::xd#2 xd zp ZP_WORD:30 1001.0
|
||||
(signed word) atan2_16::xd#3 xd zp ZP_WORD:30 7668.333333333332
|
||||
(signed word) atan2_16::xd#5 xd zp ZP_WORD:30 1001.0
|
||||
(signed word) atan2_16::xd#1 xd zp ZP_WORD:40 6667.333333333333
|
||||
(signed word~) atan2_16::xd#10 xd zp ZP_WORD:40 1001.0
|
||||
(signed word) atan2_16::xd#2 xd zp ZP_WORD:40 1001.0
|
||||
(signed word) atan2_16::xd#3 xd zp ZP_WORD:40 7668.333333333332
|
||||
(signed word) atan2_16::xd#5 xd zp ZP_WORD:40 1001.0
|
||||
(signed word) atan2_16::xi
|
||||
(signed word) atan2_16::xi#0 xi zp ZP_WORD:24 6.0
|
||||
(signed word) atan2_16::xi#1 xi zp ZP_WORD:24 500.5
|
||||
(signed word~) atan2_16::xi#13 xi zp ZP_WORD:24 4.0
|
||||
(signed word) atan2_16::xi#2 xi zp ZP_WORD:24 500.5
|
||||
(signed word) atan2_16::xi#3 xi zp ZP_WORD:24 267.0666666666667
|
||||
(signed word) atan2_16::xi#8 xi zp ZP_WORD:24 1001.0
|
||||
(signed word) atan2_16::xi#0 xi zp ZP_WORD:34 6.0
|
||||
(signed word) atan2_16::xi#1 xi zp ZP_WORD:34 500.5
|
||||
(signed word~) atan2_16::xi#13 xi zp ZP_WORD:34 4.0
|
||||
(signed word) atan2_16::xi#2 xi zp ZP_WORD:34 500.5
|
||||
(signed word) atan2_16::xi#3 xi zp ZP_WORD:34 267.0666666666667
|
||||
(signed word) atan2_16::xi#8 xi zp ZP_WORD:34 1001.0
|
||||
(signed word) atan2_16::y
|
||||
(signed word) atan2_16::y#0 y zp ZP_WORD:61 2.724999999999999
|
||||
(signed word) atan2_16::y#0 y zp ZP_WORD:74 2.724999999999999
|
||||
(signed word) atan2_16::yd
|
||||
(signed word) atan2_16::yd#1 yd zp ZP_WORD:28 10001.0
|
||||
(signed word~) atan2_16::yd#10 yd zp ZP_WORD:28 2002.0
|
||||
(signed word) atan2_16::yd#2 yd zp ZP_WORD:28 2002.0
|
||||
(signed word) atan2_16::yd#3 yd zp ZP_WORD:28 4601.0
|
||||
(signed word) atan2_16::yd#5 yd zp ZP_WORD:28 2002.0
|
||||
(signed word) atan2_16::yd#1 yd zp ZP_WORD:38 10001.0
|
||||
(signed word~) atan2_16::yd#10 yd zp ZP_WORD:38 2002.0
|
||||
(signed word) atan2_16::yd#2 yd zp ZP_WORD:38 2002.0
|
||||
(signed word) atan2_16::yd#3 yd zp ZP_WORD:38 4601.0
|
||||
(signed word) atan2_16::yd#5 yd zp ZP_WORD:38 2002.0
|
||||
(signed word) atan2_16::yi
|
||||
(signed word) atan2_16::yi#0 yi zp ZP_WORD:22 1.2000000000000002
|
||||
(signed word) atan2_16::yi#1 yi zp ZP_WORD:22 667.3333333333334
|
||||
(signed word~) atan2_16::yi#16 yi zp ZP_WORD:22 4.0
|
||||
(signed word) atan2_16::yi#2 yi zp ZP_WORD:22 667.3333333333334
|
||||
(signed word) atan2_16::yi#3 yi zp ZP_WORD:22 353.4117647058823
|
||||
(signed word) atan2_16::yi#8 yi zp ZP_WORD:22 1001.0
|
||||
(signed word) atan2_16::yi#0 yi zp ZP_WORD:32 1.2000000000000002
|
||||
(signed word) atan2_16::yi#1 yi zp ZP_WORD:32 667.3333333333334
|
||||
(signed word~) atan2_16::yi#16 yi zp ZP_WORD:32 4.0
|
||||
(signed word) atan2_16::yi#2 yi zp ZP_WORD:32 667.3333333333334
|
||||
(signed word) atan2_16::yi#3 yi zp ZP_WORD:32 353.4117647058823
|
||||
(signed word) atan2_16::yi#8 yi zp ZP_WORD:32 1001.0
|
||||
(word*()) bsearch16u((word) bsearch16u::key , (word*) bsearch16u::items , (byte) bsearch16u::num)
|
||||
(byte~) bsearch16u::$16 reg byte a 2002.0
|
||||
(word*~) bsearch16u::$2 $2 zp ZP_WORD:39 4.0
|
||||
(word*~) bsearch16u::$2 $2 zp ZP_WORD:49 4.0
|
||||
(byte~) bsearch16u::$6 reg byte a 2002.0
|
||||
(label) bsearch16u::@1
|
||||
(label) bsearch16u::@2
|
||||
@ -124,31 +126,31 @@
|
||||
(label) bsearch16u::@9
|
||||
(label) bsearch16u::@return
|
||||
(word*) bsearch16u::items
|
||||
(word*) bsearch16u::items#0 items zp ZP_WORD:39 1001.0
|
||||
(word*) bsearch16u::items#1 items zp ZP_WORD:39 2.0
|
||||
(word*) bsearch16u::items#2 items zp ZP_WORD:39 334.5555555555556
|
||||
(word*) bsearch16u::items#8 items zp ZP_WORD:39 1501.5
|
||||
(word*) bsearch16u::items#0 items zp ZP_WORD:49 1001.0
|
||||
(word*) bsearch16u::items#1 items zp ZP_WORD:49 2.0
|
||||
(word*) bsearch16u::items#2 items zp ZP_WORD:49 334.5555555555556
|
||||
(word*) bsearch16u::items#8 items zp ZP_WORD:49 1501.5
|
||||
(word) bsearch16u::key
|
||||
(word) bsearch16u::key#0 key zp ZP_WORD:66 0.26666666666666666
|
||||
(word) bsearch16u::key#0 key zp ZP_WORD:79 0.26666666666666666
|
||||
(byte) bsearch16u::num
|
||||
(byte) bsearch16u::num#0 reg byte x 2002.0
|
||||
(byte) bsearch16u::num#1 reg byte x 2002.0
|
||||
(byte) bsearch16u::num#3 reg byte x 556.1111111111111
|
||||
(byte) bsearch16u::num#5 reg byte x 3003.0
|
||||
(word*) bsearch16u::pivot
|
||||
(word*) bsearch16u::pivot#0 pivot zp ZP_WORD:68 501.0
|
||||
(word*) bsearch16u::pivot#0 pivot zp ZP_WORD:81 501.0
|
||||
(signed word) bsearch16u::result
|
||||
(signed word) bsearch16u::result#0 result zp ZP_WORD:70 1501.5
|
||||
(signed word) bsearch16u::result#0 result zp ZP_WORD:83 1501.5
|
||||
(word*) bsearch16u::return
|
||||
(word*) bsearch16u::return#1 return zp ZP_WORD:39 2.0
|
||||
(word*) bsearch16u::return#2 return zp ZP_WORD:39 6.0
|
||||
(word*) bsearch16u::return#3 return zp ZP_WORD:39 4.0
|
||||
(word*~) bsearch16u::return#6 return zp ZP_WORD:39 4.0
|
||||
(word*) bsearch16u::return#1 return zp ZP_WORD:49 2.0
|
||||
(word*) bsearch16u::return#2 return zp ZP_WORD:49 6.0
|
||||
(word*) bsearch16u::return#3 return zp ZP_WORD:49 4.0
|
||||
(word*~) bsearch16u::return#6 return zp ZP_WORD:49 4.0
|
||||
(byte*) heap_head
|
||||
(byte*) heap_head#1 heap_head zp ZP_WORD:11 0.17567567567567569
|
||||
(byte*) heap_head#13 heap_head zp ZP_WORD:11 13.0
|
||||
(byte*) heap_head#1 heap_head zp ZP_WORD:21 0.1511627906976744
|
||||
(byte*) heap_head#13 heap_head zp ZP_WORD:21 13.0
|
||||
(void()) init_angle_screen((byte*) init_angle_screen::screen)
|
||||
(word~) init_angle_screen::$10 $10 zp ZP_WORD:26 202.0
|
||||
(word~) init_angle_screen::$10 $10 zp ZP_WORD:36 202.0
|
||||
(byte~) init_angle_screen::$12 reg byte a 202.0
|
||||
(byte~) init_angle_screen::$13 reg byte a 202.0
|
||||
(byte~) init_angle_screen::$14 reg byte a 202.0
|
||||
@ -161,35 +163,39 @@
|
||||
(label) init_angle_screen::@4
|
||||
(label) init_angle_screen::@return
|
||||
(byte) init_angle_screen::ang_w
|
||||
(byte) init_angle_screen::ang_w#0 ang_w zp ZP_BYTE:63 84.16666666666666
|
||||
(byte) init_angle_screen::ang_w#0 ang_w zp ZP_BYTE:76 84.16666666666666
|
||||
(word) init_angle_screen::angle_w
|
||||
(word) init_angle_screen::angle_w#0 angle_w zp ZP_WORD:26 202.0
|
||||
(word) init_angle_screen::angle_w#0 angle_w zp ZP_WORD:36 202.0
|
||||
(byte*) init_angle_screen::screen
|
||||
(byte*) init_angle_screen::screen_bottomline
|
||||
(byte*) init_angle_screen::screen_bottomline#1 screen_bottomline zp ZP_WORD:16 7.333333333333333
|
||||
(byte*) init_angle_screen::screen_bottomline#5 screen_bottomline zp ZP_WORD:16 8.959999999999999
|
||||
(byte*) init_angle_screen::screen_bottomline#1 screen_bottomline zp ZP_WORD:26 7.333333333333333
|
||||
(byte*) init_angle_screen::screen_bottomline#5 screen_bottomline zp ZP_WORD:26 8.959999999999999
|
||||
(byte*) init_angle_screen::screen_topline
|
||||
(byte*) init_angle_screen::screen_topline#1 screen_topline zp ZP_WORD:18 5.5
|
||||
(byte*) init_angle_screen::screen_topline#5 screen_topline zp ZP_WORD:18 9.333333333333334
|
||||
(byte*) init_angle_screen::screen_topline#1 screen_topline zp ZP_WORD:28 5.5
|
||||
(byte*) init_angle_screen::screen_topline#5 screen_topline zp ZP_WORD:28 9.333333333333334
|
||||
(byte) init_angle_screen::x
|
||||
(byte) init_angle_screen::x#1 x zp ZP_BYTE:20 101.0
|
||||
(byte) init_angle_screen::x#2 x zp ZP_BYTE:20 25.25
|
||||
(byte) init_angle_screen::x#1 x zp ZP_BYTE:30 101.0
|
||||
(byte) init_angle_screen::x#2 x zp ZP_BYTE:30 25.25
|
||||
(byte) init_angle_screen::xb
|
||||
(byte) init_angle_screen::xb#1 xb zp ZP_BYTE:21 101.0
|
||||
(byte) init_angle_screen::xb#2 xb zp ZP_BYTE:21 19.238095238095237
|
||||
(byte) init_angle_screen::xb#1 xb zp ZP_BYTE:31 101.0
|
||||
(byte) init_angle_screen::xb#2 xb zp ZP_BYTE:31 19.238095238095237
|
||||
(signed word) init_angle_screen::xw
|
||||
(word) init_angle_screen::xw#0 xw zp ZP_WORD:59 33.666666666666664
|
||||
(word) init_angle_screen::xw#0 xw zp ZP_WORD:72 33.666666666666664
|
||||
(byte) init_angle_screen::y
|
||||
(byte) init_angle_screen::y#1 y zp ZP_BYTE:15 16.5
|
||||
(byte) init_angle_screen::y#4 y zp ZP_BYTE:15 4.730769230769231
|
||||
(byte) init_angle_screen::y#1 y zp ZP_BYTE:25 16.5
|
||||
(byte) init_angle_screen::y#4 y zp ZP_BYTE:25 4.730769230769231
|
||||
(signed word) init_angle_screen::yw
|
||||
(word) init_angle_screen::yw#0 yw zp ZP_WORD:61 50.5
|
||||
(void()) init_buckets()
|
||||
(byte~) init_buckets::$11 reg byte a 22.0
|
||||
(byte~) init_buckets::$12 reg byte a 22.0
|
||||
(byte~) init_buckets::$13 reg byte a 22.0
|
||||
(void*~) init_buckets::$5 $5 zp ZP_WORD:13 5.5
|
||||
(word~) init_buckets::$9 $9 zp ZP_WORD:57 11.0
|
||||
(word) init_angle_screen::yw#0 yw zp ZP_WORD:74 50.5
|
||||
(void()) init_buckets((byte*) init_buckets::screen)
|
||||
(word~) init_buckets::$10 $10 zp ZP_WORD:70 11.0
|
||||
(word~) init_buckets::$12 $12 zp ZP_WORD:66 22.0
|
||||
(word~) init_buckets::$13 $13 zp ZP_WORD:68 22.0
|
||||
(byte~) init_buckets::$14 reg byte a 22.0
|
||||
(byte*~) init_buckets::$15 $15 zp ZP_WORD:23 22.0
|
||||
(word**~) init_buckets::$16 $16 zp ZP_WORD:66 22.0
|
||||
(word**~) init_buckets::$17 $17 zp ZP_WORD:68 22.0
|
||||
(void*~) init_buckets::$5 $5 zp ZP_WORD:23 3.6666666666666665
|
||||
(word~) init_buckets::$9 $9 zp ZP_WORD:68 22.0
|
||||
(label) init_buckets::@1
|
||||
(label) init_buckets::@2
|
||||
(label) init_buckets::@3
|
||||
@ -198,29 +204,30 @@
|
||||
(label) init_buckets::@6
|
||||
(label) init_buckets::@return
|
||||
(word*) init_buckets::bucket
|
||||
(word*) init_buckets::bucket#0 bucket zp ZP_WORD:55 7.333333333333333
|
||||
(word*) init_buckets::bucket#0 bucket zp ZP_WORD:68 7.333333333333333
|
||||
(byte*) init_buckets::dist
|
||||
(byte*) init_buckets::dist#1 dist zp ZP_WORD:3 7.333333333333333
|
||||
(byte*) init_buckets::dist#3 dist#3 zp ZP_WORD:7 7.333333333333333
|
||||
(byte*) init_buckets::dist#4 dist zp ZP_WORD:3 22.0
|
||||
(byte*) init_buckets::dist#5 dist#5 zp ZP_WORD:7 5.5
|
||||
(byte*) init_buckets::dist#1 dist zp ZP_WORD:11 7.333333333333333
|
||||
(byte*) init_buckets::dist#3 dist#3 zp ZP_WORD:17 7.333333333333333
|
||||
(byte*) init_buckets::dist#4 dist zp ZP_WORD:11 22.0
|
||||
(byte*) init_buckets::dist#5 dist#5 zp ZP_WORD:17 4.4
|
||||
(byte) init_buckets::distance
|
||||
(byte) init_buckets::distance#0 reg byte x 9.166666666666666
|
||||
(byte) init_buckets::distance#0 reg byte x 5.5
|
||||
(byte) init_buckets::i
|
||||
(byte) init_buckets::i#1 reg byte x 16.5
|
||||
(byte) init_buckets::i#2 reg byte x 16.5
|
||||
(word) init_buckets::i1
|
||||
(word) init_buckets::i1#1 i1 zp ZP_WORD:5 16.5
|
||||
(word) init_buckets::i1#2 i1 zp ZP_WORD:5 7.333333333333333
|
||||
(byte) init_buckets::i2
|
||||
(byte) init_buckets::i2#1 reg byte x 16.5
|
||||
(byte) init_buckets::i2#2 reg byte x 7.333333333333333
|
||||
(word) init_buckets::i1#1 i1 zp ZP_WORD:13 16.5
|
||||
(word) init_buckets::i1#2 i1 zp ZP_WORD:13 7.333333333333333
|
||||
(word) init_buckets::i2
|
||||
(word) init_buckets::i2#1 i2 zp ZP_WORD:15 16.5
|
||||
(word) init_buckets::i2#2 i2 zp ZP_WORD:15 5.5
|
||||
(byte) init_buckets::i3
|
||||
(byte) init_buckets::i3#1 reg byte x 16.5
|
||||
(byte) init_buckets::i3#2 reg byte x 16.5
|
||||
(word) init_buckets::i4
|
||||
(word) init_buckets::i4#1 i4 zp ZP_WORD:9 16.5
|
||||
(word) init_buckets::i4#2 i4 zp ZP_WORD:9 2.4444444444444446
|
||||
(word) init_buckets::i4#1 i4 zp ZP_WORD:19 16.5
|
||||
(word) init_buckets::i4#2 i4 zp ZP_WORD:19 2.0
|
||||
(byte*) init_buckets::screen
|
||||
(void()) init_dist_screen((byte*) init_dist_screen::screen)
|
||||
(byte~) init_dist_screen::$13 reg byte a 202.0
|
||||
(byte~) init_dist_screen::$15 reg byte a 202.0
|
||||
@ -242,35 +249,35 @@
|
||||
(byte) init_dist_screen::d
|
||||
(byte) init_dist_screen::d#0 reg byte a 126.25
|
||||
(word) init_dist_screen::ds
|
||||
(word) init_dist_screen::ds#0 ds zp ZP_WORD:66 202.0
|
||||
(word) init_dist_screen::ds#0 ds zp ZP_WORD:79 202.0
|
||||
(byte*) init_dist_screen::screen
|
||||
(byte*) init_dist_screen::screen_bottomline
|
||||
(byte*) init_dist_screen::screen_bottomline#1 screen_bottomline zp ZP_WORD:35 7.333333333333333
|
||||
(byte*) init_dist_screen::screen_bottomline#10 screen_bottomline zp ZP_WORD:35 6.787878787878788
|
||||
(byte*) init_dist_screen::screen_bottomline#1 screen_bottomline zp ZP_WORD:45 7.333333333333333
|
||||
(byte*) init_dist_screen::screen_bottomline#10 screen_bottomline zp ZP_WORD:45 6.787878787878788
|
||||
(byte*) init_dist_screen::screen_topline
|
||||
(byte*) init_dist_screen::screen_topline#1 screen_topline zp ZP_WORD:33 5.5
|
||||
(byte*) init_dist_screen::screen_topline#10 screen_topline zp ZP_WORD:33 7.0
|
||||
(byte*) init_dist_screen::screen_topline#1 screen_topline zp ZP_WORD:43 5.5
|
||||
(byte*) init_dist_screen::screen_topline#10 screen_topline zp ZP_WORD:43 7.0
|
||||
(byte) init_dist_screen::x
|
||||
(byte) init_dist_screen::x#1 x zp ZP_BYTE:37 101.0
|
||||
(byte) init_dist_screen::x#2 x zp ZP_BYTE:37 26.578947368421055
|
||||
(byte) init_dist_screen::x#1 x zp ZP_BYTE:47 101.0
|
||||
(byte) init_dist_screen::x#2 x zp ZP_BYTE:47 26.578947368421055
|
||||
(byte) init_dist_screen::x2
|
||||
(byte) init_dist_screen::x2#0 reg byte a 202.0
|
||||
(byte) init_dist_screen::xb
|
||||
(byte) init_dist_screen::xb#1 xb zp ZP_BYTE:38 101.0
|
||||
(byte) init_dist_screen::xb#2 xb zp ZP_BYTE:38 20.2
|
||||
(byte) init_dist_screen::xb#1 xb zp ZP_BYTE:48 101.0
|
||||
(byte) init_dist_screen::xb#2 xb zp ZP_BYTE:48 20.2
|
||||
(byte) init_dist_screen::xd
|
||||
(byte) init_dist_screen::xd#0 reg byte a 303.0
|
||||
(word) init_dist_screen::xds
|
||||
(word) init_dist_screen::xds#0 xds zp ZP_WORD:66 202.0
|
||||
(word) init_dist_screen::xds#0 xds zp ZP_WORD:79 202.0
|
||||
(byte) init_dist_screen::y
|
||||
(byte) init_dist_screen::y#1 y zp ZP_BYTE:32 16.5
|
||||
(byte) init_dist_screen::y#10 y zp ZP_BYTE:32 0.9705882352941178
|
||||
(byte) init_dist_screen::y#1 y zp ZP_BYTE:42 16.5
|
||||
(byte) init_dist_screen::y#10 y zp ZP_BYTE:42 0.9705882352941178
|
||||
(byte) init_dist_screen::y2
|
||||
(byte) init_dist_screen::y2#0 reg byte a 22.0
|
||||
(byte) init_dist_screen::yd
|
||||
(byte) init_dist_screen::yd#0 reg byte a 33.0
|
||||
(word) init_dist_screen::yds
|
||||
(word) init_dist_screen::yds#0 yds zp ZP_WORD:64 4.869565217391305
|
||||
(word) init_dist_screen::yds#0 yds zp ZP_WORD:77 4.869565217391305
|
||||
(void()) init_squares()
|
||||
(byte~) init_squares::$3 reg byte a 22.0
|
||||
(byte~) init_squares::$4 reg byte a 22.0
|
||||
@ -281,23 +288,29 @@
|
||||
(byte) init_squares::i#1 reg byte x 16.5
|
||||
(byte) init_squares::i#2 reg byte x 5.5
|
||||
(word) init_squares::sqr
|
||||
(word) init_squares::sqr#1 sqr zp ZP_WORD:41 7.333333333333333
|
||||
(word) init_squares::sqr#2 sqr zp ZP_WORD:41 6.6000000000000005
|
||||
(word) init_squares::sqr#1 sqr zp ZP_WORD:51 7.333333333333333
|
||||
(word) init_squares::sqr#2 sqr zp ZP_WORD:51 6.6000000000000005
|
||||
(word*) init_squares::squares
|
||||
(word*) init_squares::squares#0 squares zp ZP_WORD:43 4.0
|
||||
(word*) init_squares::squares#1 squares zp ZP_WORD:43 3.6666666666666665
|
||||
(word*) init_squares::squares#2 squares zp ZP_WORD:43 17.5
|
||||
(word*) init_squares::squares#0 squares zp ZP_WORD:53 4.0
|
||||
(word*) init_squares::squares#1 squares zp ZP_WORD:53 3.6666666666666665
|
||||
(word*) init_squares::squares#2 squares zp ZP_WORD:53 17.5
|
||||
(void()) main()
|
||||
(byte~) main::$15 reg byte a 22.0
|
||||
(byte~) main::$16 reg byte a 202.0
|
||||
(byte~) main::$17 reg byte a 22.0
|
||||
(byte~) main::$18 reg byte a 202.0
|
||||
(word~) main::$11 $11 zp ZP_WORD:57 22.0
|
||||
(word~) main::$16 $16 zp ZP_WORD:62 22.0
|
||||
(word~) main::$19 $19 zp ZP_WORD:57 22.0
|
||||
(byte~) main::$20 reg byte a 202.0
|
||||
(word~) main::$21 $21 zp ZP_WORD:62 22.0
|
||||
(byte~) main::$22 reg byte a 202.0
|
||||
(word**~) main::$23 $23 zp ZP_WORD:57 22.0
|
||||
(word**~) main::$24 $24 zp ZP_WORD:62 22.0
|
||||
(byte~) main::$3 $3 zp ZP_BYTE:55 11.0
|
||||
(byte~) main::$4 reg byte a 22.0
|
||||
(byte~) main::$5 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
(label) main::@12
|
||||
(label) main::@13
|
||||
(label) main::@14
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
@ -306,136 +319,151 @@
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(byte*) main::angle
|
||||
(byte*) main::angle#1 angle zp ZP_WORD:4 7.333333333333333
|
||||
(byte*) main::angle#2 angle zp ZP_WORD:4 4.714285714285714
|
||||
(word*) main::bucket
|
||||
(word*) main::bucket#0 bucket zp ZP_WORD:46 16.0
|
||||
(word*) main::bucket#0 bucket zp ZP_WORD:57 16.0
|
||||
(word*) main::bucket1
|
||||
(word*) main::bucket1#0 bucket1 zp ZP_WORD:51 16.0
|
||||
(word*) main::bucket1#0 bucket1 zp ZP_WORD:62 16.0
|
||||
(byte) main::bucket_idx
|
||||
(byte) main::bucket_idx#1 bucket_idx zp ZP_BYTE:2 11.0
|
||||
(byte) main::bucket_idx#11 bucket_idx zp ZP_BYTE:2 3.142857142857143
|
||||
(byte) main::bucket_idx#6 bucket_idx zp ZP_BYTE:2 3.6666666666666665
|
||||
(byte) main::bucket_idx#1 bucket_idx zp ZP_BYTE:10 2.357142857142857
|
||||
(byte) main::bucket_idx#9 bucket_idx zp ZP_BYTE:10 2.0625
|
||||
(byte) main::bucket_size
|
||||
(byte) main::bucket_size#0 bucket_size zp ZP_BYTE:45 12.3
|
||||
(byte) main::bucket_size#0 bucket_size zp ZP_BYTE:56 10.25
|
||||
(byte) main::bucket_size1
|
||||
(byte) main::bucket_size1#0 bucket_size1 zp ZP_BYTE:50 12.3
|
||||
(byte) main::i
|
||||
(byte) main::i#1 reg byte x 151.5
|
||||
(byte) main::i#2 reg byte x 75.75
|
||||
(byte) main::bucket_size1#0 bucket_size1 zp ZP_BYTE:61 10.25
|
||||
(byte*) main::dist
|
||||
(byte*) main::dist#1 dist zp ZP_WORD:2 5.5
|
||||
(byte*) main::dist#2 dist zp ZP_WORD:2 5.5
|
||||
(word) main::i
|
||||
(word) main::i#1 i zp ZP_WORD:8 16.5
|
||||
(word) main::i#2 i zp ZP_WORD:8 2.75
|
||||
(byte) main::i1
|
||||
(byte) main::i1#1 reg byte x 151.5
|
||||
(byte) main::i1#2 reg byte x 75.75
|
||||
(byte) main::i2
|
||||
(byte) main::i2#1 reg byte x 151.5
|
||||
(byte) main::i2#2 reg byte x 75.75
|
||||
(byte*) main::mix
|
||||
(byte*) main::mix#1 mix zp ZP_WORD:6 4.4
|
||||
(byte*) main::mix#2 mix zp ZP_WORD:6 6.6000000000000005
|
||||
(byte*) main::sc
|
||||
(byte*) main::sc#0 sc zp ZP_WORD:48 202.0
|
||||
(byte*) main::sc#0 sc zp ZP_WORD:59 202.0
|
||||
(byte*) main::sc1
|
||||
(byte*) main::sc1#0 sc1 zp ZP_WORD:53 202.0
|
||||
(byte*) main::sc1#0 sc1 zp ZP_WORD:64 202.0
|
||||
(void*()) malloc((word) malloc::size)
|
||||
(label) malloc::@return
|
||||
(byte*) malloc::mem
|
||||
(byte*) malloc::mem#0 mem zp ZP_WORD:13 0.8
|
||||
(byte*) malloc::mem#0 mem zp ZP_WORD:23 0.8
|
||||
(void*) malloc::return
|
||||
(word) malloc::size
|
||||
(word) malloc::size#1 size zp ZP_WORD:13 22.0
|
||||
(word) malloc::size#2 size zp ZP_WORD:13 13.0
|
||||
(word) malloc::size#1 size zp ZP_WORD:23 22.0
|
||||
(word) malloc::size#2 size zp ZP_WORD:23 13.0
|
||||
(word()) sqr((byte) sqr::val)
|
||||
(byte~) sqr::$0 reg byte a 4.0
|
||||
(label) sqr::@return
|
||||
(word) sqr::return
|
||||
(word) sqr::return#0 return zp ZP_WORD:66 28.5
|
||||
(word) sqr::return#2 return#2 zp ZP_WORD:64 22.0
|
||||
(word) sqr::return#3 return zp ZP_WORD:66 202.0
|
||||
(word) sqr::return#0 return zp ZP_WORD:79 28.5
|
||||
(word) sqr::return#2 return#2 zp ZP_WORD:77 22.0
|
||||
(word) sqr::return#3 return zp ZP_WORD:79 202.0
|
||||
(byte) sqr::val
|
||||
(byte) sqr::val#0 reg byte a 22.0
|
||||
(byte) sqr::val#1 reg byte a 202.0
|
||||
(byte) sqr::val#2 reg byte a 114.0
|
||||
(byte()) sqrt((word) sqrt::val)
|
||||
(word~) sqrt::$1 $1 zp ZP_WORD:39 2.0
|
||||
(word~) sqrt::$3 $3 zp ZP_WORD:39 4.0
|
||||
(word~) sqrt::$1 $1 zp ZP_WORD:49 2.0
|
||||
(word~) sqrt::$3 $3 zp ZP_WORD:49 4.0
|
||||
(label) sqrt::@1
|
||||
(label) sqrt::@return
|
||||
(word*) sqrt::found
|
||||
(word*) sqrt::found#0 found zp ZP_WORD:39 4.0
|
||||
(word*) sqrt::found#0 found zp ZP_WORD:49 4.0
|
||||
(byte) sqrt::return
|
||||
(byte) sqrt::return#0 reg byte a 34.33333333333333
|
||||
(byte) sqrt::return#2 reg byte a 202.0
|
||||
(byte) sqrt::sq
|
||||
(word) sqrt::val
|
||||
(word) sqrt::val#0 val zp ZP_WORD:66 103.0
|
||||
(word) sqrt::val#0 val zp ZP_WORD:79 103.0
|
||||
|
||||
zp ZP_BYTE:2 [ main::bucket_idx#11 main::bucket_idx#6 main::bucket_idx#1 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:2 [ main::dist#2 main::dist#1 ]
|
||||
zp ZP_WORD:4 [ main::angle#2 main::angle#1 ]
|
||||
zp ZP_WORD:6 [ main::mix#2 main::mix#1 ]
|
||||
zp ZP_WORD:8 [ main::i#2 main::i#1 ]
|
||||
zp ZP_BYTE:10 [ main::bucket_idx#9 main::bucket_idx#1 ]
|
||||
reg byte x [ main::i1#2 main::i1#1 ]
|
||||
reg byte x [ main::i2#2 main::i2#1 ]
|
||||
reg byte x [ init_buckets::i#2 init_buckets::i#1 ]
|
||||
zp ZP_WORD:3 [ init_buckets::dist#4 init_buckets::dist#1 ]
|
||||
zp ZP_WORD:5 [ init_buckets::i1#2 init_buckets::i1#1 ]
|
||||
reg byte x [ init_buckets::i2#2 init_buckets::i2#1 ]
|
||||
zp ZP_WORD:11 [ init_buckets::dist#4 init_buckets::dist#1 ]
|
||||
zp ZP_WORD:13 [ init_buckets::i1#2 init_buckets::i1#1 ]
|
||||
zp ZP_WORD:15 [ init_buckets::i2#2 init_buckets::i2#1 ]
|
||||
reg byte x [ init_buckets::i3#2 init_buckets::i3#1 ]
|
||||
zp ZP_WORD:7 [ init_buckets::dist#5 init_buckets::dist#3 ]
|
||||
zp ZP_WORD:9 [ init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
zp ZP_WORD:11 [ heap_head#13 heap_head#1 ]
|
||||
zp ZP_WORD:13 [ malloc::size#2 malloc::size#1 malloc::mem#0 init_buckets::$5 SQUARES#1 ]
|
||||
zp ZP_BYTE:15 [ init_angle_screen::y#4 init_angle_screen::y#1 ]
|
||||
zp ZP_WORD:16 [ init_angle_screen::screen_bottomline#5 init_angle_screen::screen_bottomline#1 ]
|
||||
zp ZP_WORD:18 [ init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#1 ]
|
||||
zp ZP_BYTE:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
zp ZP_BYTE:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
zp ZP_WORD:22 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ]
|
||||
zp ZP_WORD:24 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
||||
zp ZP_WORD:17 [ init_buckets::dist#5 init_buckets::dist#3 ]
|
||||
zp ZP_WORD:19 [ init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
zp ZP_WORD:21 [ heap_head#13 heap_head#1 ]
|
||||
zp ZP_WORD:23 [ malloc::size#2 malloc::size#1 init_buckets::$15 malloc::mem#0 init_buckets::$5 SQUARES#1 ]
|
||||
zp ZP_BYTE:25 [ init_angle_screen::y#4 init_angle_screen::y#1 ]
|
||||
zp ZP_WORD:26 [ init_angle_screen::screen_bottomline#5 init_angle_screen::screen_bottomline#1 ]
|
||||
zp ZP_WORD:28 [ init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#1 ]
|
||||
zp ZP_BYTE:30 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
zp ZP_BYTE:31 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
zp ZP_WORD:32 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ]
|
||||
zp ZP_WORD:34 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
zp ZP_WORD:26 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#5 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$10 ]
|
||||
zp ZP_WORD:36 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#5 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$10 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp ZP_WORD:28 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp ZP_WORD:30 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
zp ZP_BYTE:32 [ init_dist_screen::y#10 init_dist_screen::y#1 ]
|
||||
zp ZP_WORD:33 [ init_dist_screen::screen_topline#10 init_dist_screen::screen_topline#1 ]
|
||||
zp ZP_WORD:35 [ init_dist_screen::screen_bottomline#10 init_dist_screen::screen_bottomline#1 ]
|
||||
zp ZP_WORD:38 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp ZP_WORD:40 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
zp ZP_BYTE:42 [ init_dist_screen::y#10 init_dist_screen::y#1 ]
|
||||
zp ZP_WORD:43 [ init_dist_screen::screen_topline#10 init_dist_screen::screen_topline#1 ]
|
||||
zp ZP_WORD:45 [ init_dist_screen::screen_bottomline#10 init_dist_screen::screen_bottomline#1 ]
|
||||
reg byte a [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ]
|
||||
zp ZP_BYTE:37 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
zp ZP_BYTE:38 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
zp ZP_BYTE:47 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
zp ZP_BYTE:48 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
reg byte a [ init_dist_screen::xd#0 init_dist_screen::$15 init_dist_screen::$13 ]
|
||||
zp ZP_WORD:39 [ bsearch16u::return#1 bsearch16u::return#6 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$3 sqrt::$1 ]
|
||||
zp ZP_WORD:49 [ bsearch16u::return#1 bsearch16u::return#6 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$3 sqrt::$1 ]
|
||||
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
|
||||
reg byte a [ sqr::val#2 sqr::val#0 sqr::val#1 ]
|
||||
zp ZP_WORD:41 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
zp ZP_WORD:43 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
|
||||
zp ZP_WORD:51 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
zp ZP_WORD:53 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
|
||||
reg byte x [ init_squares::i#2 init_squares::i#1 ]
|
||||
zp ZP_BYTE:45 [ main::bucket_size#0 ]
|
||||
reg byte a [ main::$15 ]
|
||||
zp ZP_WORD:46 [ main::bucket#0 ]
|
||||
reg byte a [ main::$16 ]
|
||||
zp ZP_WORD:48 [ main::sc#0 ]
|
||||
zp ZP_BYTE:50 [ main::bucket_size1#0 ]
|
||||
reg byte a [ main::$17 ]
|
||||
zp ZP_WORD:51 [ main::bucket1#0 ]
|
||||
reg byte a [ main::$18 ]
|
||||
zp ZP_WORD:53 [ main::sc1#0 ]
|
||||
reg byte a [ init_buckets::$11 ]
|
||||
zp ZP_BYTE:55 [ main::$3 ]
|
||||
reg byte a [ main::$4 ]
|
||||
reg byte a [ main::$5 ]
|
||||
zp ZP_BYTE:56 [ main::bucket_size#0 ]
|
||||
zp ZP_WORD:57 [ main::$11 main::$19 main::$23 main::bucket#0 ]
|
||||
reg byte a [ main::$20 ]
|
||||
zp ZP_WORD:59 [ main::sc#0 ]
|
||||
zp ZP_BYTE:61 [ main::bucket_size1#0 ]
|
||||
zp ZP_WORD:62 [ main::$16 main::$21 main::$24 main::bucket1#0 ]
|
||||
reg byte a [ main::$22 ]
|
||||
zp ZP_WORD:64 [ main::sc1#0 ]
|
||||
zp ZP_WORD:66 [ init_buckets::$12 init_buckets::$16 ]
|
||||
reg byte x [ init_buckets::distance#0 ]
|
||||
reg byte a [ init_buckets::$12 ]
|
||||
zp ZP_WORD:55 [ init_buckets::bucket#0 ]
|
||||
zp ZP_WORD:57 [ init_buckets::$9 ]
|
||||
reg byte a [ init_buckets::$13 ]
|
||||
zp ZP_WORD:68 [ init_buckets::$9 init_buckets::$13 init_buckets::$17 init_buckets::bucket#0 ]
|
||||
zp ZP_WORD:70 [ init_buckets::$10 ]
|
||||
reg byte a [ init_buckets::$14 ]
|
||||
reg byte a [ init_angle_screen::$2 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
zp ZP_WORD:59 [ init_angle_screen::xw#0 atan2_16::x#0 ]
|
||||
zp ZP_WORD:72 [ init_angle_screen::xw#0 atan2_16::x#0 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp ZP_WORD:61 [ init_angle_screen::yw#0 atan2_16::y#0 ]
|
||||
zp ZP_BYTE:63 [ init_angle_screen::ang_w#0 ]
|
||||
zp ZP_WORD:74 [ init_angle_screen::yw#0 atan2_16::y#0 ]
|
||||
zp ZP_BYTE:76 [ init_angle_screen::ang_w#0 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte a [ init_angle_screen::$14 ]
|
||||
reg byte a [ atan2_16::$24 ]
|
||||
reg byte a [ atan2_16::$23 ]
|
||||
reg byte a [ init_dist_screen::y2#0 ]
|
||||
zp ZP_WORD:64 [ sqr::return#2 init_dist_screen::yds#0 ]
|
||||
zp ZP_WORD:77 [ sqr::return#2 init_dist_screen::yds#0 ]
|
||||
reg byte a [ init_dist_screen::x2#0 ]
|
||||
zp ZP_WORD:66 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
zp ZP_WORD:79 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ sqrt::return#0 ]
|
||||
reg byte a [ bsearch16u::$6 ]
|
||||
reg byte a [ bsearch16u::$16 ]
|
||||
zp ZP_WORD:68 [ bsearch16u::pivot#0 ]
|
||||
zp ZP_WORD:70 [ bsearch16u::result#0 ]
|
||||
zp ZP_WORD:81 [ bsearch16u::pivot#0 ]
|
||||
zp ZP_WORD:83 [ bsearch16u::result#0 ]
|
||||
reg byte a [ sqr::$0 ]
|
||||
reg byte a [ init_squares::$3 ]
|
||||
reg byte a [ init_squares::$4 ]
|
||||
|
Loading…
Reference in New Issue
Block a user