mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-17 10:30:43 +00:00
Added screen mirroring - optimizing to 227t cycles (from 750t).
This commit is contained in:
parent
28c1f71d5e
commit
3a919eda9d
@ -16,11 +16,11 @@ void main() {
|
||||
NUM_SQUARES = 0x30;
|
||||
init_squares();
|
||||
byte* screen = SCREEN;
|
||||
for(byte y: 0..24) {
|
||||
for(byte y: 0..12) {
|
||||
byte y2 = y*2;
|
||||
byte yd = (y2>=24)?(y2-24):(24-y2);
|
||||
word yds = sqr(yd);
|
||||
for(byte x: 0..39) {
|
||||
for(byte x: 0..19) {
|
||||
byte x2 = x*2;
|
||||
byte xd = (x2>=39)?(x2-39):(39-x2);
|
||||
word xds = sqr(xd);
|
||||
@ -28,5 +28,17 @@ void main() {
|
||||
byte d = sqrt(ds);
|
||||
*screen++ = d;
|
||||
}
|
||||
// Mirror x-axis
|
||||
byte *screen_mirror = screen;
|
||||
for(byte x: 0..19) {
|
||||
*screen++ = *--screen_mirror;
|
||||
}
|
||||
}
|
||||
// Mirror y-axis
|
||||
byte *screen_mirror = screen-40;
|
||||
for(byte y: 0..11) {
|
||||
for(byte x: 0..39) {
|
||||
*screen++ = *--screen_mirror;
|
||||
}
|
||||
}
|
||||
}
|
@ -12,12 +12,15 @@
|
||||
.label SQUARES = malloc.return
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET)/4&$f
|
||||
.label yds = $16
|
||||
.label xds = $18
|
||||
.label ds = $18
|
||||
.label screen = 4
|
||||
.label yds = $1c
|
||||
.label xds = $1e
|
||||
.label ds = $1e
|
||||
.label screen = $b
|
||||
.label x = 3
|
||||
.label screen_mirror1 = 4
|
||||
.label y = 2
|
||||
.label screen_mirror = 9
|
||||
.label y1 = 6
|
||||
jsr init_font_hex
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
@ -32,7 +35,9 @@ main: {
|
||||
lda y
|
||||
asl
|
||||
cmp #$18
|
||||
bcs b2
|
||||
bcc !b2+
|
||||
jmp b2
|
||||
!b2:
|
||||
eor #$ff
|
||||
clc
|
||||
adc #$18+1
|
||||
@ -48,7 +53,9 @@ main: {
|
||||
lda x
|
||||
asl
|
||||
cmp #$27
|
||||
bcs b6
|
||||
bcc !b6+
|
||||
jmp b6
|
||||
!b6:
|
||||
eor #$ff
|
||||
clc
|
||||
adc #$27+1
|
||||
@ -69,13 +76,67 @@ main: {
|
||||
inc screen+1
|
||||
!:
|
||||
inc x
|
||||
lda #$28
|
||||
lda #$14
|
||||
cmp x
|
||||
bne b5
|
||||
lda screen
|
||||
sta screen_mirror1
|
||||
lda screen+1
|
||||
sta screen_mirror1+1
|
||||
ldx #0
|
||||
b10:
|
||||
lda screen_mirror1
|
||||
bne !+
|
||||
dec screen_mirror1+1
|
||||
!:
|
||||
dec screen_mirror1
|
||||
ldy #0
|
||||
lda (screen_mirror1),y
|
||||
sta (screen),y
|
||||
inc screen
|
||||
bne !+
|
||||
inc screen+1
|
||||
!:
|
||||
inx
|
||||
cpx #$14
|
||||
bne b10
|
||||
inc y
|
||||
lda #$19
|
||||
lda #$d
|
||||
cmp y
|
||||
bne b1
|
||||
beq !b1+
|
||||
jmp b1
|
||||
!b1:
|
||||
lda screen
|
||||
sec
|
||||
sbc #<$28
|
||||
sta screen_mirror
|
||||
lda screen+1
|
||||
sbc #>$28
|
||||
sta screen_mirror+1
|
||||
lda #0
|
||||
sta y1
|
||||
b13:
|
||||
ldx #0
|
||||
b14:
|
||||
lda screen_mirror
|
||||
bne !+
|
||||
dec screen_mirror+1
|
||||
!:
|
||||
dec screen_mirror
|
||||
ldy #0
|
||||
lda (screen_mirror),y
|
||||
sta (screen),y
|
||||
inc screen
|
||||
bne !+
|
||||
inc screen+1
|
||||
!:
|
||||
inx
|
||||
cpx #$28
|
||||
bne b14
|
||||
inc y1
|
||||
lda #$c
|
||||
cmp y1
|
||||
bne b13
|
||||
rts
|
||||
b6:
|
||||
sec
|
||||
@ -89,12 +150,12 @@ main: {
|
||||
// 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($18) val)
|
||||
// sqrt(word zeropage($1e) val)
|
||||
sqrt: {
|
||||
.label _1 = 6
|
||||
.label _3 = 6
|
||||
.label found = 6
|
||||
.label val = $18
|
||||
.label _1 = $d
|
||||
.label _3 = $d
|
||||
.label found = $d
|
||||
.label val = $1e
|
||||
jsr bsearch16u
|
||||
lda _3
|
||||
sec
|
||||
@ -113,14 +174,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($18) key, word* zeropage(6) items, byte register(X) num)
|
||||
// bsearch16u(word zeropage($1e) key, word* zeropage($d) items, byte register(X) num)
|
||||
bsearch16u: {
|
||||
.label _2 = 6
|
||||
.label pivot = $1a
|
||||
.label result = $1c
|
||||
.label return = 6
|
||||
.label items = 6
|
||||
.label key = $18
|
||||
.label _2 = $d
|
||||
.label pivot = $20
|
||||
.label result = $22
|
||||
.label return = $d
|
||||
.label items = $d
|
||||
.label key = $1e
|
||||
lda #<SQUARES
|
||||
sta items
|
||||
lda #>SQUARES
|
||||
@ -200,8 +261,8 @@ bsearch16u: {
|
||||
// Uses a table of squares that must be initialized by calling init_squares()
|
||||
// sqr(byte register(A) val)
|
||||
sqr: {
|
||||
.label return = $18
|
||||
.label return_2 = $16
|
||||
.label return = $1e
|
||||
.label return_2 = $1c
|
||||
asl
|
||||
tay
|
||||
lda SQUARES,y
|
||||
@ -213,8 +274,8 @@ sqr: {
|
||||
// Initialize squares table
|
||||
// Uses iterative formula (x+1)^2 = x^2 + 2*x + 1
|
||||
init_squares: {
|
||||
.label squares = $b
|
||||
.label sqr = 9
|
||||
.label squares = $11
|
||||
.label sqr = $f
|
||||
jsr malloc
|
||||
ldx #0
|
||||
lda #<SQUARES
|
||||
@ -260,15 +321,15 @@ malloc: {
|
||||
rts
|
||||
}
|
||||
// Make charset from proto chars
|
||||
// init_font_hex(byte* zeropage($10) charset)
|
||||
// init_font_hex(byte* zeropage($16) charset)
|
||||
init_font_hex: {
|
||||
.label _0 = $1e
|
||||
.label idx = $15
|
||||
.label proto_lo = $12
|
||||
.label charset = $10
|
||||
.label c1 = $14
|
||||
.label proto_hi = $d
|
||||
.label c = $f
|
||||
.label _0 = $24
|
||||
.label idx = $1b
|
||||
.label proto_lo = $18
|
||||
.label charset = $16
|
||||
.label c1 = $1a
|
||||
.label proto_hi = $13
|
||||
.label c = $15
|
||||
lda #0
|
||||
sta c
|
||||
lda #<FONT_HEX_PROTO
|
||||
|
@ -13,200 +13,235 @@ main: scope:[main] from @1
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main
|
||||
[6] phi()
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::toD0181
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::toD0181
|
||||
[7] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
|
||||
[8] call init_squares
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@10 main::@9
|
||||
[9] (byte*) main::screen#10 ← phi( main::@9/(byte*) main::screen#1 main::@10/(const byte*) SCREEN#0 )
|
||||
[9] (byte) main::y#10 ← phi( main::@9/(byte) main::y#1 main::@10/(byte) 0 )
|
||||
[10] (byte) main::y2#0 ← (byte) main::y#10 << (byte) 1
|
||||
main::@1: scope:[main] from main::@11 main::@16
|
||||
[9] (byte*) main::screen#17 ← phi( main::@11/(byte*) main::screen#10 main::@16/(const byte*) SCREEN#0 )
|
||||
[9] (byte) main::y#12 ← phi( main::@11/(byte) main::y#1 main::@16/(byte) 0 )
|
||||
[10] (byte) main::y2#0 ← (byte) main::y#12 << (byte) 1
|
||||
[11] if((byte) main::y2#0>=(byte) $18) goto main::@2
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
[12] (byte~) main::$6 ← (byte) $18 - (byte) main::y2#0
|
||||
[12] (byte~) main::$7 ← (byte) $18 - (byte) main::y2#0
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2 main::@3
|
||||
[13] (byte) main::yd#0 ← phi( main::@2/(byte~) main::$8 main::@3/(byte~) main::$6 )
|
||||
[13] (byte) main::yd#0 ← phi( main::@2/(byte~) main::$9 main::@3/(byte~) main::$7 )
|
||||
[14] (byte) sqr::val#0 ← (byte) main::yd#0
|
||||
[15] call sqr
|
||||
[16] (word) sqr::return#2 ← (word) sqr::return#0
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@4
|
||||
to:main::@17
|
||||
main::@17: scope:[main] from main::@4
|
||||
[17] (word) main::yds#0 ← (word) sqr::return#2
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@11 main::@13
|
||||
[18] (byte*) main::screen#2 ← phi( main::@11/(byte*) main::screen#10 main::@13/(byte*) main::screen#1 )
|
||||
[18] (byte) main::x#2 ← phi( main::@11/(byte) 0 main::@13/(byte) main::x#1 )
|
||||
main::@5: scope:[main] from main::@17 main::@19
|
||||
[18] (byte*) main::screen#12 ← phi( main::@17/(byte*) main::screen#17 main::@19/(byte*) main::screen#1 )
|
||||
[18] (byte) main::x#2 ← phi( main::@17/(byte) 0 main::@19/(byte) main::x#1 )
|
||||
[19] (byte) main::x2#0 ← (byte) main::x#2 << (byte) 1
|
||||
[20] if((byte) main::x2#0>=(byte) $27) goto main::@6
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@5
|
||||
[21] (byte~) main::$14 ← (byte) $27 - (byte) main::x2#0
|
||||
[21] (byte~) main::$15 ← (byte) $27 - (byte) main::x2#0
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@6 main::@7
|
||||
[22] (byte) main::xd#0 ← phi( main::@6/(byte~) main::$16 main::@7/(byte~) main::$14 )
|
||||
[22] (byte) main::xd#0 ← phi( main::@6/(byte~) main::$17 main::@7/(byte~) main::$15 )
|
||||
[23] (byte) sqr::val#1 ← (byte) main::xd#0
|
||||
[24] call sqr
|
||||
[25] (word) sqr::return#3 ← (word) sqr::return#0
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@8
|
||||
to:main::@18
|
||||
main::@18: scope:[main] from main::@8
|
||||
[26] (word) main::xds#0 ← (word) sqr::return#3
|
||||
[27] (word) main::ds#0 ← (word) main::xds#0 + (word) main::yds#0
|
||||
[28] (word) sqrt::val#0 ← (word) main::ds#0
|
||||
[29] call sqrt
|
||||
[30] (byte) sqrt::return#2 ← (byte) sqrt::return#0
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
to:main::@19
|
||||
main::@19: scope:[main] from main::@18
|
||||
[31] (byte) main::d#0 ← (byte) sqrt::return#2
|
||||
[32] *((byte*) main::screen#2) ← (byte) main::d#0
|
||||
[33] (byte*) main::screen#1 ← ++ (byte*) main::screen#2
|
||||
[32] *((byte*) main::screen#12) ← (byte) main::d#0
|
||||
[33] (byte*) main::screen#1 ← ++ (byte*) main::screen#12
|
||||
[34] (byte) main::x#1 ← ++ (byte) main::x#2
|
||||
[35] if((byte) main::x#1!=(byte) $28) goto main::@5
|
||||
[35] if((byte) main::x#1!=(byte) $14) goto main::@5
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@13
|
||||
[36] (byte) main::y#1 ← ++ (byte) main::y#10
|
||||
[37] if((byte) main::y#1!=(byte) $19) goto main::@1
|
||||
main::@9: scope:[main] from main::@19
|
||||
[36] (byte*~) main::screen_mirror1#3 ← (byte*) main::screen#1
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@10 main::@9
|
||||
[37] (byte) main::x1#2 ← phi( main::@9/(byte) 0 main::@10/(byte) main::x1#1 )
|
||||
[37] (byte*) main::screen#6 ← phi( main::@9/(byte*) main::screen#1 main::@10/(byte*) main::screen#10 )
|
||||
[37] (byte*) main::screen_mirror1#2 ← phi( main::@9/(byte*~) main::screen_mirror1#3 main::@10/(byte*) main::screen_mirror1#1 )
|
||||
[38] (byte*) main::screen_mirror1#1 ← -- (byte*) main::screen_mirror1#2
|
||||
[39] *((byte*) main::screen#6) ← *((byte*) main::screen_mirror1#1)
|
||||
[40] (byte*) main::screen#10 ← ++ (byte*) main::screen#6
|
||||
[41] (byte) main::x1#1 ← ++ (byte) main::x1#2
|
||||
[42] if((byte) main::x1#1!=(byte) $14) goto main::@10
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@10
|
||||
[43] (byte) main::y#1 ← ++ (byte) main::y#12
|
||||
[44] if((byte) main::y#1!=(byte) $d) goto main::@1
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@11
|
||||
[45] (byte*) main::screen_mirror#0 ← (byte*) main::screen#10 - (byte) $28
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12 main::@15
|
||||
[46] (byte) main::y1#4 ← phi( main::@12/(byte) 0 main::@15/(byte) main::y1#1 )
|
||||
[46] (byte*) main::screen#11 ← phi( main::@12/(byte*) main::screen#10 main::@15/(byte*) main::screen#13 )
|
||||
[46] (byte*) main::screen_mirror#3 ← phi( main::@12/(byte*) main::screen_mirror#0 main::@15/(byte*) main::screen_mirror#1 )
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@13 main::@14
|
||||
[47] (byte) main::x3#2 ← phi( main::@13/(byte) 0 main::@14/(byte) main::x3#1 )
|
||||
[47] (byte*) main::screen#8 ← phi( main::@13/(byte*) main::screen#11 main::@14/(byte*) main::screen#13 )
|
||||
[47] (byte*) main::screen_mirror#2 ← phi( main::@13/(byte*) main::screen_mirror#3 main::@14/(byte*) main::screen_mirror#1 )
|
||||
[48] (byte*) main::screen_mirror#1 ← -- (byte*) main::screen_mirror#2
|
||||
[49] *((byte*) main::screen#8) ← *((byte*) main::screen_mirror#1)
|
||||
[50] (byte*) main::screen#13 ← ++ (byte*) main::screen#8
|
||||
[51] (byte) main::x3#1 ← ++ (byte) main::x3#2
|
||||
[52] if((byte) main::x3#1!=(byte) $28) goto main::@14
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@14
|
||||
[53] (byte) main::y1#1 ← ++ (byte) main::y1#4
|
||||
[54] if((byte) main::y1#1!=(byte) $c) goto main::@13
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@9
|
||||
[38] return
|
||||
main::@return: scope:[main] from main::@15
|
||||
[55] return
|
||||
to:@return
|
||||
main::@6: scope:[main] from main::@5
|
||||
[39] (byte~) main::$16 ← (byte) main::x2#0 - (byte) $27
|
||||
[56] (byte~) main::$17 ← (byte) main::x2#0 - (byte) $27
|
||||
to:main::@8
|
||||
main::@2: scope:[main] from main::@1
|
||||
[40] (byte~) main::$8 ← (byte) main::y2#0 - (byte) $18
|
||||
[57] (byte~) main::$9 ← (byte) main::y2#0 - (byte) $18
|
||||
to:main::@4
|
||||
sqrt: scope:[sqrt] from main::@12
|
||||
[41] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[42] call bsearch16u
|
||||
[43] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
sqrt: scope:[sqrt] from main::@18
|
||||
[58] (word) bsearch16u::key#0 ← (word) sqrt::val#0
|
||||
[59] call bsearch16u
|
||||
[60] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
|
||||
to:sqrt::@1
|
||||
sqrt::@1: scope:[sqrt] from sqrt
|
||||
[44] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[45] (word~) sqrt::$3 ← (word*) sqrt::found#0 - (const word*) SQUARES#1
|
||||
[46] (word~) sqrt::$1 ← (word~) sqrt::$3 >> (byte) 1
|
||||
[47] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
[61] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
|
||||
[62] (word~) sqrt::$3 ← (word*) sqrt::found#0 - (const word*) SQUARES#1
|
||||
[63] (word~) sqrt::$1 ← (word~) sqrt::$3 >> (byte) 1
|
||||
[64] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
|
||||
to:sqrt::@return
|
||||
sqrt::@return: scope:[sqrt] from sqrt::@1
|
||||
[48] return
|
||||
[65] return
|
||||
to:@return
|
||||
bsearch16u: scope:[bsearch16u] from sqrt
|
||||
[49] phi()
|
||||
[66] phi()
|
||||
to:bsearch16u::@3
|
||||
bsearch16u::@3: scope:[bsearch16u] from bsearch16u bsearch16u::@7
|
||||
[50] (word*) bsearch16u::items#2 ← phi( bsearch16u/(const word*) SQUARES#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[50] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#1 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[51] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
[67] (word*) bsearch16u::items#2 ← phi( bsearch16u/(const word*) SQUARES#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
|
||||
[67] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#1 bsearch16u::@7/(byte) bsearch16u::num#0 )
|
||||
[68] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
|
||||
to:bsearch16u::@5
|
||||
bsearch16u::@5: scope:[bsearch16u] from bsearch16u::@3
|
||||
[52] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
[69] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
|
||||
to:bsearch16u::@1
|
||||
bsearch16u::@1: scope:[bsearch16u] from bsearch16u::@5
|
||||
[53] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
|
||||
[70] (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
|
||||
[54] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
|
||||
[71] (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
|
||||
[55] (word*) bsearch16u::return#1 ← phi( bsearch16u::@8/(word*~) bsearch16u::return#6 bsearch16u::@2/(word*) bsearch16u::return#2 )
|
||||
[56] return
|
||||
[72] (word*) bsearch16u::return#1 ← phi( bsearch16u::@8/(word*~) bsearch16u::return#6 bsearch16u::@2/(word*) bsearch16u::return#2 )
|
||||
[73] return
|
||||
to:@return
|
||||
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
|
||||
[57] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[58] (byte~) bsearch16u::$16 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[59] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$16
|
||||
[60] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[61] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
[74] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
|
||||
[75] (byte~) bsearch16u::$16 ← (byte~) bsearch16u::$6 << (byte) 1
|
||||
[76] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$16
|
||||
[77] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
|
||||
[78] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
|
||||
to:bsearch16u::@8
|
||||
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
|
||||
[62] (word*~) bsearch16u::return#6 ← (word*) bsearch16u::pivot#0
|
||||
[79] (word*~) bsearch16u::return#6 ← (word*) bsearch16u::pivot#0
|
||||
to:bsearch16u::@return
|
||||
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
|
||||
[63] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
[80] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
|
||||
to:bsearch16u::@9
|
||||
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
|
||||
[64] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[65] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
[81] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
|
||||
[82] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
|
||||
to:bsearch16u::@7
|
||||
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
|
||||
[66] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[66] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[67] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
[83] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
|
||||
[83] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
|
||||
[84] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
|
||||
to:bsearch16u::@3
|
||||
sqr: scope:[sqr] from main::@4 main::@8
|
||||
[68] (byte) sqr::val#2 ← phi( main::@4/(byte) sqr::val#0 main::@8/(byte) sqr::val#1 )
|
||||
[69] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[70] (word) sqr::return#0 ← *((const word*) SQUARES#1 + (byte~) sqr::$0)
|
||||
[85] (byte) sqr::val#2 ← phi( main::@4/(byte) sqr::val#0 main::@8/(byte) sqr::val#1 )
|
||||
[86] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
|
||||
[87] (word) sqr::return#0 ← *((const word*) SQUARES#1 + (byte~) sqr::$0)
|
||||
to:sqr::@return
|
||||
sqr::@return: scope:[sqr] from sqr
|
||||
[71] return
|
||||
[88] return
|
||||
to:@return
|
||||
init_squares: scope:[init_squares] from main::@10
|
||||
[72] phi()
|
||||
[73] call malloc
|
||||
init_squares: scope:[init_squares] from main::@16
|
||||
[89] phi()
|
||||
[90] call malloc
|
||||
to:init_squares::@1
|
||||
init_squares::@1: scope:[init_squares] from init_squares init_squares::@1
|
||||
[74] (byte) init_squares::i#2 ← phi( init_squares::@1/(byte) init_squares::i#1 init_squares/(byte) 0 )
|
||||
[74] (word*) init_squares::squares#2 ← phi( init_squares::@1/(word*) init_squares::squares#1 init_squares/(const word*) SQUARES#1 )
|
||||
[74] (word) init_squares::sqr#2 ← phi( init_squares::@1/(word) init_squares::sqr#1 init_squares/(byte) 0 )
|
||||
[75] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[76] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[77] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[78] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[79] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[80] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
[81] if((byte) init_squares::i#1!=(const byte) NUM_SQUARES#1-(byte) 1+(byte) 1) goto init_squares::@1
|
||||
[91] (byte) init_squares::i#2 ← phi( init_squares::@1/(byte) init_squares::i#1 init_squares/(byte) 0 )
|
||||
[91] (word*) init_squares::squares#2 ← phi( init_squares::@1/(word*) init_squares::squares#1 init_squares/(const word*) SQUARES#1 )
|
||||
[91] (word) init_squares::sqr#2 ← phi( init_squares::@1/(word) init_squares::sqr#1 init_squares/(byte) 0 )
|
||||
[92] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
|
||||
[93] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
|
||||
[94] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
|
||||
[95] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
|
||||
[96] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
|
||||
[97] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
|
||||
[98] if((byte) init_squares::i#1!=(const byte) NUM_SQUARES#1-(byte) 1+(byte) 1) goto init_squares::@1
|
||||
to:init_squares::@return
|
||||
init_squares::@return: scope:[init_squares] from init_squares::@1
|
||||
[82] return
|
||||
[99] return
|
||||
to:@return
|
||||
malloc: scope:[malloc] from init_squares
|
||||
[83] phi()
|
||||
[100] phi()
|
||||
to:malloc::@return
|
||||
malloc::@return: scope:[malloc] from malloc
|
||||
[84] return
|
||||
[101] return
|
||||
to:@return
|
||||
init_font_hex: scope:[init_font_hex] from main
|
||||
[85] phi()
|
||||
[102] phi()
|
||||
to:init_font_hex::@1
|
||||
init_font_hex::@1: scope:[init_font_hex] from init_font_hex init_font_hex::@5
|
||||
[86] (byte) init_font_hex::c#6 ← phi( init_font_hex/(byte) 0 init_font_hex::@5/(byte) init_font_hex::c#1 )
|
||||
[86] (byte*) init_font_hex::proto_hi#6 ← phi( init_font_hex/(const byte[]) FONT_HEX_PROTO#0 init_font_hex::@5/(byte*) init_font_hex::proto_hi#1 )
|
||||
[86] (byte*) init_font_hex::charset#5 ← phi( init_font_hex/(const byte*) CHARSET#0 init_font_hex::@5/(byte*) init_font_hex::charset#0 )
|
||||
[103] (byte) init_font_hex::c#6 ← phi( init_font_hex/(byte) 0 init_font_hex::@5/(byte) init_font_hex::c#1 )
|
||||
[103] (byte*) init_font_hex::proto_hi#6 ← phi( init_font_hex/(const byte[]) FONT_HEX_PROTO#0 init_font_hex::@5/(byte*) init_font_hex::proto_hi#1 )
|
||||
[103] (byte*) init_font_hex::charset#5 ← phi( init_font_hex/(const byte*) CHARSET#0 init_font_hex::@5/(byte*) init_font_hex::charset#0 )
|
||||
to:init_font_hex::@2
|
||||
init_font_hex::@2: scope:[init_font_hex] from init_font_hex::@1 init_font_hex::@4
|
||||
[87] (byte) init_font_hex::c1#4 ← phi( init_font_hex::@1/(byte) 0 init_font_hex::@4/(byte) init_font_hex::c1#1 )
|
||||
[87] (byte*) init_font_hex::proto_lo#4 ← phi( init_font_hex::@1/(const byte[]) FONT_HEX_PROTO#0 init_font_hex::@4/(byte*) init_font_hex::proto_lo#1 )
|
||||
[87] (byte*) init_font_hex::charset#2 ← phi( init_font_hex::@1/(byte*) init_font_hex::charset#5 init_font_hex::@4/(byte*) init_font_hex::charset#0 )
|
||||
[88] *((byte*) init_font_hex::charset#2) ← (byte) 0
|
||||
[104] (byte) init_font_hex::c1#4 ← phi( init_font_hex::@1/(byte) 0 init_font_hex::@4/(byte) init_font_hex::c1#1 )
|
||||
[104] (byte*) init_font_hex::proto_lo#4 ← phi( init_font_hex::@1/(const byte[]) FONT_HEX_PROTO#0 init_font_hex::@4/(byte*) init_font_hex::proto_lo#1 )
|
||||
[104] (byte*) init_font_hex::charset#2 ← phi( init_font_hex::@1/(byte*) init_font_hex::charset#5 init_font_hex::@4/(byte*) init_font_hex::charset#0 )
|
||||
[105] *((byte*) init_font_hex::charset#2) ← (byte) 0
|
||||
to:init_font_hex::@3
|
||||
init_font_hex::@3: scope:[init_font_hex] from init_font_hex::@2 init_font_hex::@3
|
||||
[89] (byte) init_font_hex::idx#5 ← phi( init_font_hex::@2/(byte) 1 init_font_hex::@3/(byte) init_font_hex::idx#2 )
|
||||
[89] (byte) init_font_hex::i#2 ← phi( init_font_hex::@2/(byte) 0 init_font_hex::@3/(byte) init_font_hex::i#1 )
|
||||
[90] (byte~) init_font_hex::$0 ← *((byte*) init_font_hex::proto_hi#6 + (byte) init_font_hex::i#2) << (byte) 4
|
||||
[91] (byte~) init_font_hex::$1 ← *((byte*) init_font_hex::proto_lo#4 + (byte) init_font_hex::i#2) << (byte) 1
|
||||
[92] (byte~) init_font_hex::$2 ← (byte~) init_font_hex::$0 | (byte~) init_font_hex::$1
|
||||
[93] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#5) ← (byte~) init_font_hex::$2
|
||||
[94] (byte) init_font_hex::idx#2 ← ++ (byte) init_font_hex::idx#5
|
||||
[95] (byte) init_font_hex::i#1 ← ++ (byte) init_font_hex::i#2
|
||||
[96] if((byte) init_font_hex::i#1!=(byte) 5) goto init_font_hex::@3
|
||||
[106] (byte) init_font_hex::idx#5 ← phi( init_font_hex::@2/(byte) 1 init_font_hex::@3/(byte) init_font_hex::idx#2 )
|
||||
[106] (byte) init_font_hex::i#2 ← phi( init_font_hex::@2/(byte) 0 init_font_hex::@3/(byte) init_font_hex::i#1 )
|
||||
[107] (byte~) init_font_hex::$0 ← *((byte*) init_font_hex::proto_hi#6 + (byte) init_font_hex::i#2) << (byte) 4
|
||||
[108] (byte~) init_font_hex::$1 ← *((byte*) init_font_hex::proto_lo#4 + (byte) init_font_hex::i#2) << (byte) 1
|
||||
[109] (byte~) init_font_hex::$2 ← (byte~) init_font_hex::$0 | (byte~) init_font_hex::$1
|
||||
[110] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#5) ← (byte~) init_font_hex::$2
|
||||
[111] (byte) init_font_hex::idx#2 ← ++ (byte) init_font_hex::idx#5
|
||||
[112] (byte) init_font_hex::i#1 ← ++ (byte) init_font_hex::i#2
|
||||
[113] if((byte) init_font_hex::i#1!=(byte) 5) goto init_font_hex::@3
|
||||
to:init_font_hex::@4
|
||||
init_font_hex::@4: scope:[init_font_hex] from init_font_hex::@3
|
||||
[97] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#2) ← (byte) 0
|
||||
[98] (byte) init_font_hex::idx#3 ← ++ (byte) init_font_hex::idx#2
|
||||
[99] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#3) ← (byte) 0
|
||||
[100] (byte*) init_font_hex::proto_lo#1 ← (byte*) init_font_hex::proto_lo#4 + (byte) 5
|
||||
[101] (byte*) init_font_hex::charset#0 ← (byte*) init_font_hex::charset#2 + (byte) 8
|
||||
[102] (byte) init_font_hex::c1#1 ← ++ (byte) init_font_hex::c1#4
|
||||
[103] if((byte) init_font_hex::c1#1!=(byte) $10) goto init_font_hex::@2
|
||||
[114] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#2) ← (byte) 0
|
||||
[115] (byte) init_font_hex::idx#3 ← ++ (byte) init_font_hex::idx#2
|
||||
[116] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#3) ← (byte) 0
|
||||
[117] (byte*) init_font_hex::proto_lo#1 ← (byte*) init_font_hex::proto_lo#4 + (byte) 5
|
||||
[118] (byte*) init_font_hex::charset#0 ← (byte*) init_font_hex::charset#2 + (byte) 8
|
||||
[119] (byte) init_font_hex::c1#1 ← ++ (byte) init_font_hex::c1#4
|
||||
[120] if((byte) init_font_hex::c1#1!=(byte) $10) goto init_font_hex::@2
|
||||
to:init_font_hex::@5
|
||||
init_font_hex::@5: scope:[init_font_hex] from init_font_hex::@4
|
||||
[104] (byte*) init_font_hex::proto_hi#1 ← (byte*) init_font_hex::proto_hi#6 + (byte) 5
|
||||
[105] (byte) init_font_hex::c#1 ← ++ (byte) init_font_hex::c#6
|
||||
[106] if((byte) init_font_hex::c#1!=(byte) $10) goto init_font_hex::@1
|
||||
[121] (byte*) init_font_hex::proto_hi#1 ← (byte*) init_font_hex::proto_hi#6 + (byte) 5
|
||||
[122] (byte) init_font_hex::c#1 ← ++ (byte) init_font_hex::c#6
|
||||
[123] if((byte) init_font_hex::c#1!=(byte) $10) goto init_font_hex::@1
|
||||
to:init_font_hex::@return
|
||||
init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5
|
||||
[107] return
|
||||
[124] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -18,7 +18,7 @@
|
||||
(const word*) SQUARES#1 SQUARES = (word*)(const void*) malloc::return#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:6 4.0
|
||||
(word*~) bsearch16u::$2 $2 zp ZP_WORD:13 4.0
|
||||
(byte~) bsearch16u::$6 reg byte a 2002.0
|
||||
(label) bsearch16u::@1
|
||||
(label) bsearch16u::@2
|
||||
@ -31,28 +31,28 @@
|
||||
(label) bsearch16u::@9
|
||||
(label) bsearch16u::@return
|
||||
(word*) bsearch16u::items
|
||||
(word*) bsearch16u::items#0 items zp ZP_WORD:6 1001.0
|
||||
(word*) bsearch16u::items#2 items zp ZP_WORD:6 334.33333333333337
|
||||
(word*) bsearch16u::items#8 items zp ZP_WORD:6 1501.5
|
||||
(word*) bsearch16u::items#0 items zp ZP_WORD:13 1001.0
|
||||
(word*) bsearch16u::items#2 items zp ZP_WORD:13 334.33333333333337
|
||||
(word*) bsearch16u::items#8 items zp ZP_WORD:13 1501.5
|
||||
(word) bsearch16u::key
|
||||
(word) bsearch16u::key#0 key zp ZP_WORD:24 0.2857142857142857
|
||||
(word) bsearch16u::key#0 key zp ZP_WORD:30 0.2857142857142857
|
||||
(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:26 501.0
|
||||
(word*) bsearch16u::pivot#0 pivot zp ZP_WORD:32 501.0
|
||||
(signed word) bsearch16u::result
|
||||
(signed word) bsearch16u::result#0 result zp ZP_WORD:28 1501.5
|
||||
(signed word) bsearch16u::result#0 result zp ZP_WORD:34 1501.5
|
||||
(word*) bsearch16u::return
|
||||
(word*) bsearch16u::return#1 return zp ZP_WORD:6 2.0
|
||||
(word*) bsearch16u::return#2 return zp ZP_WORD:6 6.0
|
||||
(word*) bsearch16u::return#3 return zp ZP_WORD:6 4.0
|
||||
(word*~) bsearch16u::return#6 return zp ZP_WORD:6 4.0
|
||||
(word*) bsearch16u::return#1 return zp ZP_WORD:13 2.0
|
||||
(word*) bsearch16u::return#2 return zp ZP_WORD:13 6.0
|
||||
(word*) bsearch16u::return#3 return zp ZP_WORD:13 4.0
|
||||
(word*~) bsearch16u::return#6 return zp ZP_WORD:13 4.0
|
||||
(byte*) heap_head
|
||||
(void()) init_font_hex((byte*) init_font_hex::charset)
|
||||
(byte~) init_font_hex::$0 $0 zp ZP_BYTE:30 1001.0
|
||||
(byte~) init_font_hex::$0 $0 zp ZP_BYTE:36 1001.0
|
||||
(byte~) init_font_hex::$1 reg byte a 2002.0
|
||||
(byte~) init_font_hex::$2 reg byte a 2002.0
|
||||
(label) init_font_hex::@1
|
||||
@ -62,28 +62,28 @@
|
||||
(label) init_font_hex::@5
|
||||
(label) init_font_hex::@return
|
||||
(byte) init_font_hex::c
|
||||
(byte) init_font_hex::c#1 c zp ZP_BYTE:15 16.5
|
||||
(byte) init_font_hex::c#6 c zp ZP_BYTE:15 1.1578947368421053
|
||||
(byte) init_font_hex::c#1 c zp ZP_BYTE:21 16.5
|
||||
(byte) init_font_hex::c#6 c zp ZP_BYTE:21 1.1578947368421053
|
||||
(byte) init_font_hex::c1
|
||||
(byte) init_font_hex::c1#1 c1 zp ZP_BYTE:20 151.5
|
||||
(byte) init_font_hex::c1#4 c1 zp ZP_BYTE:20 13.466666666666667
|
||||
(byte) init_font_hex::c1#1 c1 zp ZP_BYTE:26 151.5
|
||||
(byte) init_font_hex::c1#4 c1 zp ZP_BYTE:26 13.466666666666667
|
||||
(byte*) init_font_hex::charset
|
||||
(byte*) init_font_hex::charset#0 charset zp ZP_WORD:16 35.5
|
||||
(byte*) init_font_hex::charset#2 charset zp ZP_WORD:16 108.35714285714285
|
||||
(byte*) init_font_hex::charset#5 charset zp ZP_WORD:16 22.0
|
||||
(byte*) init_font_hex::charset#0 charset zp ZP_WORD:22 35.5
|
||||
(byte*) init_font_hex::charset#2 charset zp ZP_WORD:22 108.35714285714285
|
||||
(byte*) init_font_hex::charset#5 charset zp ZP_WORD:22 22.0
|
||||
(byte) init_font_hex::i
|
||||
(byte) init_font_hex::i#1 reg byte x 1501.5
|
||||
(byte) init_font_hex::i#2 reg byte x 667.3333333333334
|
||||
(byte) init_font_hex::idx
|
||||
(byte) init_font_hex::idx#2 idx zp ZP_BYTE:21 551.0
|
||||
(byte) init_font_hex::idx#2 idx zp ZP_BYTE:27 551.0
|
||||
(byte) init_font_hex::idx#3 reg byte y 202.0
|
||||
(byte) init_font_hex::idx#5 idx zp ZP_BYTE:21 600.5999999999999
|
||||
(byte) init_font_hex::idx#5 idx zp ZP_BYTE:27 600.5999999999999
|
||||
(byte*) init_font_hex::proto_hi
|
||||
(byte*) init_font_hex::proto_hi#1 proto_hi zp ZP_WORD:13 7.333333333333333
|
||||
(byte*) init_font_hex::proto_hi#6 proto_hi zp ZP_WORD:13 56.83333333333334
|
||||
(byte*) init_font_hex::proto_hi#1 proto_hi zp ZP_WORD:19 7.333333333333333
|
||||
(byte*) init_font_hex::proto_hi#6 proto_hi zp ZP_WORD:19 56.83333333333334
|
||||
(byte*) init_font_hex::proto_lo
|
||||
(byte*) init_font_hex::proto_lo#1 proto_lo zp ZP_WORD:18 50.5
|
||||
(byte*) init_font_hex::proto_lo#4 proto_lo zp ZP_WORD:18 92.53846153846155
|
||||
(byte*) init_font_hex::proto_lo#1 proto_lo zp ZP_WORD:24 50.5
|
||||
(byte*) init_font_hex::proto_lo#4 proto_lo zp ZP_WORD:24 92.53846153846155
|
||||
(void()) init_squares()
|
||||
(byte~) init_squares::$3 reg byte a 22.0
|
||||
(byte~) init_squares::$4 reg byte a 22.0
|
||||
@ -93,21 +93,27 @@
|
||||
(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:9 7.333333333333333
|
||||
(word) init_squares::sqr#2 sqr zp ZP_WORD:9 6.6000000000000005
|
||||
(word) init_squares::sqr#1 sqr zp ZP_WORD:15 7.333333333333333
|
||||
(word) init_squares::sqr#2 sqr zp ZP_WORD:15 6.6000000000000005
|
||||
(word*) init_squares::squares
|
||||
(word*) init_squares::squares#1 squares zp ZP_WORD:11 3.6666666666666665
|
||||
(word*) init_squares::squares#2 squares zp ZP_WORD:11 16.5
|
||||
(word*) init_squares::squares#1 squares zp ZP_WORD:17 3.6666666666666665
|
||||
(word*) init_squares::squares#2 squares zp ZP_WORD:17 16.5
|
||||
(void()) main()
|
||||
(byte~) main::$14 reg byte a 202.0
|
||||
(byte~) main::$16 reg byte a 202.0
|
||||
(byte~) main::$6 reg byte a 22.0
|
||||
(byte~) main::$8 reg byte a 22.0
|
||||
(byte~) main::$15 reg byte a 202.0
|
||||
(byte~) main::$17 reg byte a 202.0
|
||||
(byte~) main::$7 reg byte a 22.0
|
||||
(byte~) main::$9 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::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@18
|
||||
(label) main::@19
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
@ -120,11 +126,25 @@
|
||||
(byte) main::d
|
||||
(byte) main::d#0 reg byte a 202.0
|
||||
(word) main::ds
|
||||
(word) main::ds#0 ds zp ZP_WORD:24 202.0
|
||||
(word) main::ds#0 ds zp ZP_WORD:30 202.0
|
||||
(byte*) main::screen
|
||||
(byte*) main::screen#1 screen zp ZP_WORD:4 42.599999999999994
|
||||
(byte*) main::screen#10 screen zp ZP_WORD:4 2.2
|
||||
(byte*) main::screen#2 screen zp ZP_WORD:4 19.625
|
||||
(byte*) main::screen#1 screen zp ZP_WORD:11 56.0
|
||||
(byte*) main::screen#10 screen zp ZP_WORD:11 36.16666666666667
|
||||
(byte*) main::screen#11 screen zp ZP_WORD:11 24.0
|
||||
(byte*) main::screen#12 screen zp ZP_WORD:11 19.625
|
||||
(byte*) main::screen#13 screen zp ZP_WORD:11 42.599999999999994
|
||||
(byte*) main::screen#17 screen zp ZP_WORD:11 2.2
|
||||
(byte*) main::screen#6 screen zp ZP_WORD:11 104.66666666666666
|
||||
(byte*) main::screen#8 screen zp ZP_WORD:11 104.66666666666666
|
||||
(byte*) main::screen_mirror
|
||||
(byte*) main::screen_mirror#0 screen_mirror zp ZP_WORD:9 4.0
|
||||
(byte*) main::screen_mirror#1 screen_mirror zp ZP_WORD:9 44.85714285714286
|
||||
(byte*) main::screen_mirror#2 screen_mirror zp ZP_WORD:9 213.0
|
||||
(byte*) main::screen_mirror#3 screen_mirror zp ZP_WORD:9 24.0
|
||||
(byte*) main::screen_mirror1
|
||||
(byte*) main::screen_mirror1#1 screen_mirror1 zp ZP_WORD:4 60.599999999999994
|
||||
(byte*) main::screen_mirror1#2 screen_mirror1 zp ZP_WORD:4 213.0
|
||||
(byte*~) main::screen_mirror1#3 screen_mirror1 zp ZP_WORD:4 22.0
|
||||
(label) main::toD0181
|
||||
(word~) main::toD0181_$0
|
||||
(number~) main::toD0181_$1
|
||||
@ -142,21 +162,30 @@
|
||||
(byte) main::x
|
||||
(byte) main::x#1 x zp ZP_BYTE:3 151.5
|
||||
(byte) main::x#2 x zp ZP_BYTE:3 17.823529411764707
|
||||
(byte) main::x1
|
||||
(byte) main::x1#1 reg byte x 151.5
|
||||
(byte) main::x1#2 reg byte x 50.5
|
||||
(byte) main::x2
|
||||
(byte) main::x2#0 reg byte a 202.0
|
||||
(byte) main::x3
|
||||
(byte) main::x3#1 reg byte x 151.5
|
||||
(byte) main::x3#2 reg byte x 50.5
|
||||
(byte) main::xd
|
||||
(byte) main::xd#0 reg byte a 303.0
|
||||
(word) main::xds
|
||||
(word) main::xds#0 xds zp ZP_WORD:24 202.0
|
||||
(word) main::xds#0 xds zp ZP_WORD:30 202.0
|
||||
(byte) main::y
|
||||
(byte) main::y#1 y zp ZP_BYTE:2 16.5
|
||||
(byte) main::y#10 y zp ZP_BYTE:2 1.1379310344827585
|
||||
(byte) main::y#12 y zp ZP_BYTE:2 0.9166666666666667
|
||||
(byte) main::y1
|
||||
(byte) main::y1#1 y1 zp ZP_BYTE:6 16.5
|
||||
(byte) main::y1#4 y1 zp ZP_BYTE:6 3.142857142857143
|
||||
(byte) main::y2
|
||||
(byte) main::y2#0 reg byte a 22.0
|
||||
(byte) main::yd
|
||||
(byte) main::yd#0 reg byte a 33.0
|
||||
(word) main::yds
|
||||
(word) main::yds#0 yds zp ZP_WORD:22 5.6
|
||||
(word) main::yds#0 yds zp ZP_WORD:28 5.6
|
||||
(void*()) malloc((word) malloc::size)
|
||||
(label) malloc::@return
|
||||
(byte*) malloc::mem
|
||||
@ -167,60 +196,65 @@
|
||||
(byte~) sqr::$0 reg byte a 4.0
|
||||
(label) sqr::@return
|
||||
(word) sqr::return
|
||||
(word) sqr::return#0 return zp ZP_WORD:24 28.5
|
||||
(word) sqr::return#2 return#2 zp ZP_WORD:22 22.0
|
||||
(word) sqr::return#3 return zp ZP_WORD:24 202.0
|
||||
(word) sqr::return#0 return zp ZP_WORD:30 28.5
|
||||
(word) sqr::return#2 return#2 zp ZP_WORD:28 22.0
|
||||
(word) sqr::return#3 return zp ZP_WORD:30 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:6 2.0
|
||||
(word~) sqrt::$3 $3 zp ZP_WORD:6 4.0
|
||||
(word~) sqrt::$1 $1 zp ZP_WORD:13 2.0
|
||||
(word~) sqrt::$3 $3 zp ZP_WORD:13 4.0
|
||||
(label) sqrt::@1
|
||||
(label) sqrt::@return
|
||||
(word*) sqrt::found
|
||||
(word*) sqrt::found#0 found zp ZP_WORD:6 4.0
|
||||
(word*) sqrt::found#0 found zp ZP_WORD:13 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:24 103.0
|
||||
(word) sqrt::val#0 val zp ZP_WORD:30 103.0
|
||||
|
||||
zp ZP_BYTE:2 [ main::y#10 main::y#1 ]
|
||||
reg byte a [ main::yd#0 main::$8 main::$6 ]
|
||||
zp ZP_BYTE:2 [ main::y#12 main::y#1 ]
|
||||
reg byte a [ main::yd#0 main::$9 main::$7 ]
|
||||
zp ZP_BYTE:3 [ main::x#2 main::x#1 ]
|
||||
zp ZP_WORD:4 [ main::screen#2 main::screen#10 main::screen#1 ]
|
||||
reg byte a [ main::xd#0 main::$16 main::$14 ]
|
||||
zp ZP_WORD:6 [ bsearch16u::return#1 bsearch16u::return#6 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#8 bsearch16u::$2 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$3 sqrt::$1 ]
|
||||
reg byte a [ main::xd#0 main::$17 main::$15 ]
|
||||
zp ZP_WORD:4 [ main::screen_mirror1#2 main::screen_mirror1#3 main::screen_mirror1#1 ]
|
||||
reg byte x [ main::x1#2 main::x1#1 ]
|
||||
zp ZP_BYTE:6 [ main::y1#4 main::y1#1 ]
|
||||
zp ZP_WORD:9 [ main::screen_mirror#2 main::screen_mirror#3 main::screen_mirror#0 main::screen_mirror#1 ]
|
||||
zp ZP_WORD:11 [ main::screen#8 main::screen#11 main::screen#6 main::screen#12 main::screen#17 main::screen#10 main::screen#1 main::screen#13 ]
|
||||
reg byte x [ main::x3#2 main::x3#1 ]
|
||||
zp ZP_WORD:13 [ bsearch16u::return#1 bsearch16u::return#6 bsearch16u::return#2 bsearch16u::items#2 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:9 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
zp ZP_WORD:11 [ init_squares::squares#2 init_squares::squares#1 ]
|
||||
zp ZP_WORD:15 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
zp ZP_WORD:17 [ init_squares::squares#2 init_squares::squares#1 ]
|
||||
reg byte x [ init_squares::i#2 init_squares::i#1 ]
|
||||
zp ZP_WORD:13 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ]
|
||||
zp ZP_BYTE:15 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
zp ZP_WORD:16 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ]
|
||||
zp ZP_WORD:18 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
zp ZP_BYTE:20 [ init_font_hex::c1#4 init_font_hex::c1#1 ]
|
||||
zp ZP_WORD:19 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ]
|
||||
zp ZP_BYTE:21 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
zp ZP_WORD:22 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ]
|
||||
zp ZP_WORD:24 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
zp ZP_BYTE:26 [ init_font_hex::c1#4 init_font_hex::c1#1 ]
|
||||
reg byte x [ init_font_hex::i#2 init_font_hex::i#1 ]
|
||||
zp ZP_BYTE:21 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
|
||||
zp ZP_BYTE:27 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
|
||||
reg byte a [ main::y2#0 ]
|
||||
zp ZP_WORD:22 [ sqr::return#2 main::yds#0 ]
|
||||
zp ZP_WORD:28 [ sqr::return#2 main::yds#0 ]
|
||||
reg byte a [ main::x2#0 ]
|
||||
zp ZP_WORD:24 [ sqr::return#3 main::xds#0 sqr::return#0 main::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
zp ZP_WORD:30 [ sqr::return#3 main::xds#0 sqr::return#0 main::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ main::d#0 ]
|
||||
reg byte a [ sqrt::return#0 ]
|
||||
reg byte a [ bsearch16u::$6 ]
|
||||
reg byte a [ bsearch16u::$16 ]
|
||||
zp ZP_WORD:26 [ bsearch16u::pivot#0 ]
|
||||
zp ZP_WORD:28 [ bsearch16u::result#0 ]
|
||||
zp ZP_WORD:32 [ bsearch16u::pivot#0 ]
|
||||
zp ZP_WORD:34 [ bsearch16u::result#0 ]
|
||||
reg byte a [ sqr::$0 ]
|
||||
reg byte a [ init_squares::$3 ]
|
||||
reg byte a [ init_squares::$4 ]
|
||||
zp ZP_BYTE:30 [ init_font_hex::$0 ]
|
||||
zp ZP_BYTE:36 [ init_font_hex::$0 ]
|
||||
reg byte a [ init_font_hex::$1 ]
|
||||
reg byte a [ init_font_hex::$2 ]
|
||||
reg byte y [ init_font_hex::idx#3 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user