mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-09 21:37:31 +00:00
Fixed problem with overlapping variables in threads.
This commit is contained in:
parent
a2fece2ea2
commit
de8c42eba8
src
main/java/dk/camelot64/kickc/passes
test
@ -109,7 +109,7 @@ public class Pass4ZeroPageCoalesce extends Pass2Base {
|
||||
* @return True if the two equivalence classes can be coalesced into one without problems.
|
||||
*/
|
||||
private static boolean canCoalesceThreads(LiveRangeEquivalenceClass ec1, LiveRangeEquivalenceClass ec2, Collection<ScopeRef> threadHeads, Program program) {
|
||||
if(threadHeads.size()>=1) {
|
||||
if(threadHeads.size()<=1) {
|
||||
return true;
|
||||
}
|
||||
CallGraph callGraph = program.getCallGraph();
|
||||
|
@ -74,12 +74,12 @@ interrupt(kernel_min) void plex_irq() {
|
||||
// The raster loop
|
||||
void loop() {
|
||||
// The current index into the y-sinus
|
||||
volatile byte sin_idx = 0; // without volatile gives wrong asm
|
||||
byte sin_idx = 0;
|
||||
while(true) {
|
||||
while(!framedone) { }
|
||||
*BORDERCOL = RED;
|
||||
// Assign sinus positions
|
||||
volatile byte y_idx = sin_idx; // without volatile gives wrong asm
|
||||
byte y_idx = sin_idx;
|
||||
for(byte sy: 0..PLEX_COUNT-1) {
|
||||
PLEX_YPOS[sy] = YSIN[y_idx];
|
||||
y_idx += 8;
|
||||
|
@ -93,9 +93,9 @@ sub_main: {
|
||||
rts
|
||||
}
|
||||
irq: {
|
||||
.label k = 4
|
||||
.label j = 3
|
||||
.label i = 2
|
||||
.label k = 8
|
||||
.label j = 7
|
||||
.label i = 6
|
||||
inc BGCOL
|
||||
lda #0
|
||||
sta i
|
||||
@ -129,7 +129,7 @@ irq: {
|
||||
jmp $ea81
|
||||
}
|
||||
sub_irq: {
|
||||
.label i = 5
|
||||
.label i = 9
|
||||
lda #0
|
||||
sta i
|
||||
b1:
|
||||
|
@ -1349,10 +1349,10 @@ Attempting to uplift remaining variables inzp ZP_BYTE:9 [ irq::j#4 irq::j#1 ]
|
||||
Uplifting [irq] best 424175705 combination zp ZP_BYTE:9 [ irq::j#4 irq::j#1 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ irq::i#7 irq::i#1 ]
|
||||
Uplifting [irq] best 424175705 combination zp ZP_BYTE:8 [ irq::i#7 irq::i#1 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ main::i#7 main::i#1 ] ] with [ zp ZP_BYTE:8 [ irq::i#7 irq::i#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ main::j#5 main::j#1 ] ] with [ zp ZP_BYTE:9 [ irq::j#4 irq::j#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ main::k#2 main::k#1 ] ] with [ zp ZP_BYTE:10 [ irq::k#2 irq::k#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 ] ] with [ zp ZP_BYTE:11 [ sub_irq::i#6 sub_irq::i#1 ] ]
|
||||
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:6 [ irq::i#7 irq::i#1 ]
|
||||
Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:7 [ irq::j#4 irq::j#1 ]
|
||||
Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:8 [ irq::k#2 irq::k#1 ]
|
||||
Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 File Comments
|
||||
@ -1578,9 +1578,9 @@ sub_main: {
|
||||
}
|
||||
//SEG77 irq
|
||||
irq: {
|
||||
.label k = 4
|
||||
.label j = 3
|
||||
.label i = 2
|
||||
.label k = 8
|
||||
.label j = 7
|
||||
.label i = 6
|
||||
//SEG78 entry interrupt(KERNEL_MIN)
|
||||
//SEG79 [39] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
||||
inc BGCOL
|
||||
@ -1676,7 +1676,7 @@ irq: {
|
||||
}
|
||||
//SEG114 sub_irq
|
||||
sub_irq: {
|
||||
.label i = 5
|
||||
.label i = 9
|
||||
//SEG115 [57] phi from sub_irq to sub_irq::@1 [phi:sub_irq->sub_irq::@1]
|
||||
b1_from_sub_irq:
|
||||
//SEG116 [57] phi (byte) sub_irq::i#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sub_irq->sub_irq::@1#0] -- vbuz1=vbuc1
|
||||
@ -1906,14 +1906,14 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(label) irq::@7
|
||||
(label) irq::@return
|
||||
(byte) irq::i
|
||||
(byte) irq::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) irq::i#7 i zp ZP_BYTE:2 93.0
|
||||
(byte) irq::i#1 i zp ZP_BYTE:6 16.5
|
||||
(byte) irq::i#7 i zp ZP_BYTE:6 93.0
|
||||
(byte) irq::j
|
||||
(byte) irq::j#1 j zp ZP_BYTE:3 151.5
|
||||
(byte) irq::j#4 j zp ZP_BYTE:3 150.375
|
||||
(byte) irq::j#1 j zp ZP_BYTE:7 151.5
|
||||
(byte) irq::j#4 j zp ZP_BYTE:7 150.375
|
||||
(byte) irq::k
|
||||
(byte) irq::k#1 k zp ZP_BYTE:4 1501.5
|
||||
(byte) irq::k#2 k zp ZP_BYTE:4 600.5999999999999
|
||||
(byte) irq::k#1 k zp ZP_BYTE:8 1501.5
|
||||
(byte) irq::k#2 k zp ZP_BYTE:8 600.5999999999999
|
||||
(void()) main()
|
||||
(byte~) main::$1 reg byte a 20002.0
|
||||
(byte~) main::$2 reg byte a 20002.0
|
||||
@ -1943,8 +1943,8 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(label) sub_irq::@5
|
||||
(label) sub_irq::@return
|
||||
(byte) sub_irq::i
|
||||
(byte) sub_irq::i#1 i zp ZP_BYTE:5 15001.5
|
||||
(byte) sub_irq::i#6 i zp ZP_BYTE:5 102000.30000000002
|
||||
(byte) sub_irq::i#1 i zp ZP_BYTE:9 15001.5
|
||||
(byte) sub_irq::i#6 i zp ZP_BYTE:9 102000.30000000002
|
||||
(byte) sub_irq::j
|
||||
(byte) sub_irq::j#1 reg byte x 150001.5
|
||||
(byte) sub_irq::j#4 reg byte x 171428.99999999997
|
||||
@ -1970,12 +1970,16 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(byte) sub_main::k#1 reg byte y 1.50000015E7
|
||||
(byte) sub_main::k#2 reg byte y 7500000.75
|
||||
|
||||
zp ZP_BYTE:2 [ main::i#7 main::i#1 irq::i#7 irq::i#1 ]
|
||||
zp ZP_BYTE:3 [ main::j#5 main::j#1 irq::j#4 irq::j#1 ]
|
||||
zp ZP_BYTE:4 [ main::k#2 main::k#1 irq::k#2 irq::k#1 ]
|
||||
zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 sub_irq::i#6 sub_irq::i#1 ]
|
||||
zp ZP_BYTE:2 [ main::i#7 main::i#1 ]
|
||||
zp ZP_BYTE:3 [ main::j#5 main::j#1 ]
|
||||
zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
|
||||
zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 ]
|
||||
reg byte x [ sub_main::j#4 sub_main::j#1 ]
|
||||
reg byte y [ sub_main::k#2 sub_main::k#1 ]
|
||||
zp ZP_BYTE:6 [ irq::i#7 irq::i#1 ]
|
||||
zp ZP_BYTE:7 [ irq::j#4 irq::j#1 ]
|
||||
zp ZP_BYTE:8 [ irq::k#2 irq::k#1 ]
|
||||
zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ]
|
||||
reg byte x [ sub_irq::j#4 sub_irq::j#1 ]
|
||||
reg byte y [ sub_irq::k#2 sub_irq::k#1 ]
|
||||
reg byte a [ main::$1 ]
|
||||
@ -2164,9 +2168,9 @@ sub_main: {
|
||||
}
|
||||
//SEG77 irq
|
||||
irq: {
|
||||
.label k = 4
|
||||
.label j = 3
|
||||
.label i = 2
|
||||
.label k = 8
|
||||
.label j = 7
|
||||
.label i = 6
|
||||
//SEG78 entry interrupt(KERNEL_MIN)
|
||||
//SEG79 [39] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
||||
inc BGCOL
|
||||
@ -2237,7 +2241,7 @@ irq: {
|
||||
}
|
||||
//SEG114 sub_irq
|
||||
sub_irq: {
|
||||
.label i = 5
|
||||
.label i = 9
|
||||
//SEG115 [57] phi from sub_irq to sub_irq::@1 [phi:sub_irq->sub_irq::@1]
|
||||
//SEG116 [57] phi (byte) sub_irq::i#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sub_irq->sub_irq::@1#0] -- vbuz1=vbuc1
|
||||
lda #0
|
||||
|
@ -33,14 +33,14 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(label) irq::@7
|
||||
(label) irq::@return
|
||||
(byte) irq::i
|
||||
(byte) irq::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) irq::i#7 i zp ZP_BYTE:2 93.0
|
||||
(byte) irq::i#1 i zp ZP_BYTE:6 16.5
|
||||
(byte) irq::i#7 i zp ZP_BYTE:6 93.0
|
||||
(byte) irq::j
|
||||
(byte) irq::j#1 j zp ZP_BYTE:3 151.5
|
||||
(byte) irq::j#4 j zp ZP_BYTE:3 150.375
|
||||
(byte) irq::j#1 j zp ZP_BYTE:7 151.5
|
||||
(byte) irq::j#4 j zp ZP_BYTE:7 150.375
|
||||
(byte) irq::k
|
||||
(byte) irq::k#1 k zp ZP_BYTE:4 1501.5
|
||||
(byte) irq::k#2 k zp ZP_BYTE:4 600.5999999999999
|
||||
(byte) irq::k#1 k zp ZP_BYTE:8 1501.5
|
||||
(byte) irq::k#2 k zp ZP_BYTE:8 600.5999999999999
|
||||
(void()) main()
|
||||
(byte~) main::$1 reg byte a 20002.0
|
||||
(byte~) main::$2 reg byte a 20002.0
|
||||
@ -70,8 +70,8 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(label) sub_irq::@5
|
||||
(label) sub_irq::@return
|
||||
(byte) sub_irq::i
|
||||
(byte) sub_irq::i#1 i zp ZP_BYTE:5 15001.5
|
||||
(byte) sub_irq::i#6 i zp ZP_BYTE:5 102000.30000000002
|
||||
(byte) sub_irq::i#1 i zp ZP_BYTE:9 15001.5
|
||||
(byte) sub_irq::i#6 i zp ZP_BYTE:9 102000.30000000002
|
||||
(byte) sub_irq::j
|
||||
(byte) sub_irq::j#1 reg byte x 150001.5
|
||||
(byte) sub_irq::j#4 reg byte x 171428.99999999997
|
||||
@ -97,12 +97,16 @@ interrupt(KERNEL_MIN)(void()) irq()
|
||||
(byte) sub_main::k#1 reg byte y 1.50000015E7
|
||||
(byte) sub_main::k#2 reg byte y 7500000.75
|
||||
|
||||
zp ZP_BYTE:2 [ main::i#7 main::i#1 irq::i#7 irq::i#1 ]
|
||||
zp ZP_BYTE:3 [ main::j#5 main::j#1 irq::j#4 irq::j#1 ]
|
||||
zp ZP_BYTE:4 [ main::k#2 main::k#1 irq::k#2 irq::k#1 ]
|
||||
zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 sub_irq::i#6 sub_irq::i#1 ]
|
||||
zp ZP_BYTE:2 [ main::i#7 main::i#1 ]
|
||||
zp ZP_BYTE:3 [ main::j#5 main::j#1 ]
|
||||
zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
|
||||
zp ZP_BYTE:5 [ sub_main::i#6 sub_main::i#1 ]
|
||||
reg byte x [ sub_main::j#4 sub_main::j#1 ]
|
||||
reg byte y [ sub_main::k#2 sub_main::k#1 ]
|
||||
zp ZP_BYTE:6 [ irq::i#7 irq::i#1 ]
|
||||
zp ZP_BYTE:7 [ irq::j#4 irq::j#1 ]
|
||||
zp ZP_BYTE:8 [ irq::k#2 irq::k#1 ]
|
||||
zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ]
|
||||
reg byte x [ sub_irq::j#4 sub_irq::j#1 ]
|
||||
reg byte y [ sub_irq::k#2 sub_irq::k#1 ]
|
||||
reg byte a [ main::$1 ]
|
||||
|
@ -34,14 +34,14 @@
|
||||
.label YSIN = $2100
|
||||
// The address of the sprite pointers on the current screen (screen+$3f8).
|
||||
.label PLEX_SCREEN_PTR = $400+$3f8
|
||||
.label plex_show_idx = 9
|
||||
.label plex_sprite_idx = 8
|
||||
.label plex_sprite_msb = $b
|
||||
.label plex_sprite_idx_1 = $e
|
||||
.label plex_free_next = $f
|
||||
.label plex_show_idx = 8
|
||||
.label plex_sprite_idx = 7
|
||||
.label plex_sprite_msb = $a
|
||||
.label plex_sprite_idx_1 = $d
|
||||
.label plex_free_next = $e
|
||||
.label framedone = 2
|
||||
.label plex_free_next_27 = $a
|
||||
.label plex_free_next_31 = $a
|
||||
.label plex_free_next_27 = 9
|
||||
.label plex_free_next_31 = 9
|
||||
bbegin:
|
||||
// The index in the PLEX tables of the next sprite to show
|
||||
lda #0
|
||||
@ -66,12 +66,8 @@ main: {
|
||||
// The raster loop
|
||||
loop: {
|
||||
.label sin_idx = 3
|
||||
.label y_idx = 4
|
||||
// The current index into the y-sinus
|
||||
lda #0
|
||||
sta sin_idx
|
||||
b1:
|
||||
// without volatile gives wrong asm
|
||||
b2:
|
||||
lda framedone
|
||||
cmp #0
|
||||
@ -80,18 +76,13 @@ loop: {
|
||||
b3:
|
||||
lda #RED
|
||||
sta BORDERCOL
|
||||
// Assign sinus positions
|
||||
lda sin_idx
|
||||
sta y_idx
|
||||
ldx sin_idx
|
||||
ldy #0
|
||||
// without volatile gives wrong asm
|
||||
b4:
|
||||
ldx y_idx
|
||||
lda YSIN,x
|
||||
sta PLEX_YPOS,y
|
||||
lax y_idx
|
||||
txa
|
||||
axs #-[8]
|
||||
stx y_idx
|
||||
iny
|
||||
cpy #PLEX_COUNT-1+1
|
||||
bne b4
|
||||
@ -107,7 +98,7 @@ loop: {
|
||||
sta VIC_CONTROL
|
||||
lda #0
|
||||
sta RASTER
|
||||
jmp b1
|
||||
jmp b2
|
||||
}
|
||||
// Ensure that the indices in PLEX_SORTED_IDX is sorted based on the y-positions in PLEX_YPOS
|
||||
// Assumes that the positions are nearly sorted already (as each sprite just moves a bit)
|
||||
@ -119,9 +110,9 @@ loop: {
|
||||
// elements before the marker are shifted right one at a time until encountering one smaller than the current one.
|
||||
// It is then inserted at the spot. Now the marker can move forward.
|
||||
plexSort: {
|
||||
.label nxt_idx = $c
|
||||
.label nxt_y = $d
|
||||
.label m = 5
|
||||
.label nxt_idx = $b
|
||||
.label nxt_y = $c
|
||||
.label m = 4
|
||||
lda #0
|
||||
sta m
|
||||
b1:
|
||||
@ -174,7 +165,7 @@ plexSort: {
|
||||
}
|
||||
// Initialize the program
|
||||
init: {
|
||||
.label xp = 6
|
||||
.label xp = 5
|
||||
lda #VIC_DEN|VIC_RSEL|3
|
||||
sta D011
|
||||
jsr plexInit
|
||||
@ -239,7 +230,7 @@ plexInit: {
|
||||
rts
|
||||
}
|
||||
plex_irq: {
|
||||
.label _4 = 5
|
||||
.label _4 = $f
|
||||
lda #WHITE
|
||||
sta BORDERCOL
|
||||
b3:
|
||||
@ -276,9 +267,9 @@ plex_irq: {
|
||||
// Show the next sprite.
|
||||
// plexSort() prepares showing the sprites
|
||||
plexShowSprite: {
|
||||
.label _7 = 8
|
||||
.label plex_sprite_idx2 = 5
|
||||
.label plexFreeAdd1__2 = $a
|
||||
.label _7 = 7
|
||||
.label plex_sprite_idx2 = $f
|
||||
.label plexFreeAdd1__2 = 9
|
||||
lda plex_sprite_idx
|
||||
asl
|
||||
sta plex_sprite_idx2
|
||||
|
@ -43,10 +43,10 @@ main::@return: scope:[main] from main::@1
|
||||
[15] return
|
||||
to:@return
|
||||
loop: scope:[loop] from main::@1
|
||||
[16] (byte) loop::sin_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
[16] phi()
|
||||
to:loop::@1
|
||||
loop::@1: scope:[loop] from loop loop::@6
|
||||
[17] (byte) loop::sin_idx#6 ← phi( loop/(byte) loop::sin_idx#0 loop::@6/(byte) loop::sin_idx#1 )
|
||||
[17] (byte) loop::sin_idx#6 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@6/(byte) loop::sin_idx#1 )
|
||||
[17] (bool) framedone#12 ← phi( loop/(bool) framedone#19 loop::@6/(bool) framedone#5 )
|
||||
to:loop::@2
|
||||
loop::@2: scope:[loop] from loop::@1 loop::@2
|
||||
@ -54,11 +54,11 @@ loop::@2: scope:[loop] from loop::@1 loop::@2
|
||||
to:loop::@2
|
||||
loop::@3: scope:[loop] from loop::@2
|
||||
[19] *((const byte*) BORDERCOL#0) ← (const byte) RED#0
|
||||
[20] (byte) loop::y_idx#0 ← (byte) loop::sin_idx#6
|
||||
[20] (byte~) loop::y_idx#4 ← (byte) loop::sin_idx#6
|
||||
to:loop::@4
|
||||
loop::@4: scope:[loop] from loop::@3 loop::@4
|
||||
[21] (byte) loop::sy#2 ← phi( loop::@4/(byte) loop::sy#1 loop::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[21] (byte) loop::y_idx#2 ← phi( loop::@4/(byte) loop::y_idx#1 loop::@3/(byte) loop::y_idx#0 )
|
||||
[21] (byte) loop::y_idx#2 ← phi( loop::@4/(byte) loop::y_idx#1 loop::@3/(byte~) loop::y_idx#4 )
|
||||
[22] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2)
|
||||
[23] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
[24] (byte) loop::sy#1 ← ++ (byte) loop::sy#2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -142,8 +142,8 @@
|
||||
(byte) init::sx#1 reg byte x 16.5
|
||||
(byte) init::sx#2 reg byte x 8.8
|
||||
(word) init::xp
|
||||
(word) init::xp#1 xp zp ZP_WORD:6 7.333333333333333
|
||||
(word) init::xp#2 xp zp ZP_WORD:6 8.25
|
||||
(word) init::xp#1 xp zp ZP_WORD:5 7.333333333333333
|
||||
(word) init::xp#2 xp zp ZP_WORD:5 8.25
|
||||
(void()) loop()
|
||||
(label) loop::@1
|
||||
(label) loop::@2
|
||||
@ -152,16 +152,15 @@
|
||||
(label) loop::@5
|
||||
(label) loop::@6
|
||||
(byte) loop::sin_idx
|
||||
(byte) loop::sin_idx#0 sin_idx zp ZP_BYTE:3 4.0
|
||||
(byte) loop::sin_idx#1 sin_idx zp ZP_BYTE:3 3.142857142857143
|
||||
(byte) loop::sin_idx#6 sin_idx zp ZP_BYTE:3 3.8888888888888893
|
||||
(byte) loop::sin_idx#6 sin_idx zp ZP_BYTE:3 3.666666666666667
|
||||
(byte) loop::sy
|
||||
(byte) loop::sy#1 reg byte y 151.5
|
||||
(byte) loop::sy#2 reg byte y 101.0
|
||||
(byte) loop::y_idx
|
||||
(byte) loop::y_idx#0 y_idx zp ZP_BYTE:4 22.0
|
||||
(byte) loop::y_idx#1 y_idx zp ZP_BYTE:4 67.33333333333333
|
||||
(byte) loop::y_idx#2 y_idx zp ZP_BYTE:4 157.0
|
||||
(byte) loop::y_idx#1 reg byte x 67.33333333333333
|
||||
(byte) loop::y_idx#2 reg byte x 157.0
|
||||
(byte~) loop::y_idx#4 reg byte x 22.0
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
@ -180,7 +179,7 @@
|
||||
(byte~) plexShowSprite::$3 reg byte a 4.0
|
||||
(byte~) plexShowSprite::$4 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) plexShowSprite::$6 reg byte x 4.0
|
||||
(byte/word/dword~) plexShowSprite::$7 $7 zp ZP_BYTE:8 1.0833333333333333
|
||||
(byte/word/dword~) plexShowSprite::$7 $7 zp ZP_BYTE:7 1.0833333333333333
|
||||
(label) plexShowSprite::@1
|
||||
(label) plexShowSprite::@2
|
||||
(label) plexShowSprite::@3
|
||||
@ -193,11 +192,11 @@
|
||||
(byte/signed word/word/dword/signed dword~) plexShowSprite::plexFreeAdd1_$1
|
||||
(byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 reg byte x 4.0
|
||||
(byte/word/dword~) plexShowSprite::plexFreeAdd1_$2
|
||||
(byte/word/dword) plexShowSprite::plexFreeAdd1_$2#0 plexFreeAdd1_$2 zp ZP_BYTE:10 1.0434782608695652
|
||||
(byte/word/dword) plexShowSprite::plexFreeAdd1_$2#0 plexFreeAdd1_$2 zp ZP_BYTE:9 1.0434782608695652
|
||||
(byte) plexShowSprite::plexFreeAdd1_ypos
|
||||
(byte) plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 3.0
|
||||
(byte) plexShowSprite::plex_sprite_idx2
|
||||
(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp ZP_BYTE:5 0.6000000000000001
|
||||
(byte) plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp ZP_BYTE:15 0.6000000000000001
|
||||
(byte) plexShowSprite::xpos_idx
|
||||
(byte) plexShowSprite::xpos_idx#0 reg byte x 2.0
|
||||
(byte) plexShowSprite::ypos
|
||||
@ -211,12 +210,12 @@
|
||||
(label) plexSort::@7
|
||||
(label) plexSort::@return
|
||||
(byte) plexSort::m
|
||||
(byte) plexSort::m#1 m zp ZP_BYTE:5 151.5
|
||||
(byte) plexSort::m#2 m zp ZP_BYTE:5 42.08333333333333
|
||||
(byte) plexSort::m#1 m zp ZP_BYTE:4 151.5
|
||||
(byte) plexSort::m#2 m zp ZP_BYTE:4 42.08333333333333
|
||||
(byte) plexSort::nxt_idx
|
||||
(byte) plexSort::nxt_idx#0 nxt_idx zp ZP_BYTE:12 30.299999999999997
|
||||
(byte) plexSort::nxt_idx#0 nxt_idx zp ZP_BYTE:11 30.299999999999997
|
||||
(byte) plexSort::nxt_y
|
||||
(byte) plexSort::nxt_y#0 nxt_y zp ZP_BYTE:13 150.375
|
||||
(byte) plexSort::nxt_y#0 nxt_y zp ZP_BYTE:12 150.375
|
||||
(label) plexSort::plexFreePrepare1
|
||||
(bool~) plexSort::plexFreePrepare1_$0
|
||||
(label) plexSort::plexFreePrepare1_@1
|
||||
@ -230,11 +229,11 @@
|
||||
(byte) plexSort::s#3 reg byte x 2052.5
|
||||
(byte~) plexSort::s#6 reg byte x 202.0
|
||||
(byte) plex_free_next
|
||||
(byte) plex_free_next#0 plex_free_next zp ZP_BYTE:15 20.0
|
||||
(byte) plex_free_next#27 plex_free_next#27 zp ZP_BYTE:10 2.8333333333333335
|
||||
(byte) plex_free_next#31 plex_free_next#31 zp ZP_BYTE:10 4.0
|
||||
(byte) plex_free_next#0 plex_free_next zp ZP_BYTE:14 20.0
|
||||
(byte) plex_free_next#27 plex_free_next#27 zp ZP_BYTE:9 2.8333333333333335
|
||||
(byte) plex_free_next#31 plex_free_next#31 zp ZP_BYTE:9 4.0
|
||||
interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
(byte/signed word/word/dword/signed dword~) plex_irq::$4 $4 zp ZP_BYTE:5 11.0
|
||||
(byte/signed word/word/dword/signed dword~) plex_irq::$4 $4 zp ZP_BYTE:15 11.0
|
||||
(label) plex_irq::@1
|
||||
(label) plex_irq::@2
|
||||
(label) plex_irq::@3
|
||||
@ -248,44 +247,45 @@ interrupt(KERNEL_MIN)(void()) plex_irq()
|
||||
(byte) plex_irq::plexFreeNextYpos1_return#0 reg byte x 4.0
|
||||
(byte) plex_irq::rasterY
|
||||
(byte) plex_show_idx
|
||||
(byte) plex_show_idx#0 plex_show_idx zp ZP_BYTE:9 4.0
|
||||
(byte) plex_show_idx#1 plex_show_idx zp ZP_BYTE:9 20.0
|
||||
(byte) plex_show_idx#16 plex_show_idx zp ZP_BYTE:9 2.1666666666666665
|
||||
(byte) plex_show_idx#27 plex_show_idx zp ZP_BYTE:9 1.1052631578947367
|
||||
(byte) plex_show_idx#0 plex_show_idx zp ZP_BYTE:8 4.0
|
||||
(byte) plex_show_idx#1 plex_show_idx zp ZP_BYTE:8 20.0
|
||||
(byte) plex_show_idx#16 plex_show_idx zp ZP_BYTE:8 2.1666666666666665
|
||||
(byte) plex_show_idx#27 plex_show_idx zp ZP_BYTE:8 1.1052631578947367
|
||||
(byte) plex_sprite_idx
|
||||
(byte) plex_sprite_idx#0 plex_sprite_idx zp ZP_BYTE:8 4.0
|
||||
(byte) plex_sprite_idx#1 plex_sprite_idx#1 zp ZP_BYTE:14 20.0
|
||||
(byte) plex_sprite_idx#25 plex_sprite_idx zp ZP_BYTE:8 1.1176470588235294
|
||||
(byte) plex_sprite_idx#0 plex_sprite_idx zp ZP_BYTE:7 4.0
|
||||
(byte) plex_sprite_idx#1 plex_sprite_idx#1 zp ZP_BYTE:13 20.0
|
||||
(byte) plex_sprite_idx#25 plex_sprite_idx zp ZP_BYTE:7 1.1176470588235294
|
||||
(byte) plex_sprite_msb
|
||||
(byte) plex_sprite_msb#0 plex_sprite_msb zp ZP_BYTE:11 4.0
|
||||
(byte) plex_sprite_msb#1 plex_sprite_msb zp ZP_BYTE:11 20.0
|
||||
(byte) plex_sprite_msb#17 plex_sprite_msb zp ZP_BYTE:11 2.142857142857143
|
||||
(byte) plex_sprite_msb#27 plex_sprite_msb zp ZP_BYTE:11 3.0
|
||||
(byte) plex_sprite_msb#29 plex_sprite_msb zp ZP_BYTE:11 0.95
|
||||
(byte) plex_sprite_msb#4 plex_sprite_msb zp ZP_BYTE:11 4.0
|
||||
(byte) plex_sprite_msb#0 plex_sprite_msb zp ZP_BYTE:10 4.0
|
||||
(byte) plex_sprite_msb#1 plex_sprite_msb zp ZP_BYTE:10 20.0
|
||||
(byte) plex_sprite_msb#17 plex_sprite_msb zp ZP_BYTE:10 2.142857142857143
|
||||
(byte) plex_sprite_msb#27 plex_sprite_msb zp ZP_BYTE:10 3.0
|
||||
(byte) plex_sprite_msb#29 plex_sprite_msb zp ZP_BYTE:10 0.95
|
||||
(byte) plex_sprite_msb#4 plex_sprite_msb zp ZP_BYTE:10 4.0
|
||||
|
||||
zp ZP_BOOL:2 [ framedone#12 framedone#19 framedone#5 framedone#3 ]
|
||||
zp ZP_BYTE:3 [ loop::sin_idx#6 loop::sin_idx#0 loop::sin_idx#1 ]
|
||||
zp ZP_BYTE:4 [ loop::y_idx#2 loop::y_idx#1 loop::y_idx#0 ]
|
||||
zp ZP_BYTE:3 [ loop::sin_idx#6 loop::sin_idx#1 ]
|
||||
reg byte x [ loop::y_idx#2 loop::y_idx#1 loop::y_idx#4 ]
|
||||
reg byte y [ loop::sy#2 loop::sy#1 ]
|
||||
zp ZP_BYTE:5 [ plexSort::m#2 plexSort::m#1 plex_irq::$4 plexShowSprite::plex_sprite_idx2#0 ]
|
||||
zp ZP_BYTE:4 [ plexSort::m#2 plexSort::m#1 ]
|
||||
reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ]
|
||||
reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ]
|
||||
reg byte x [ init::sx#2 init::sx#1 ]
|
||||
zp ZP_WORD:6 [ init::xp#2 init::xp#1 ]
|
||||
zp ZP_WORD:5 [ init::xp#2 init::xp#1 ]
|
||||
reg byte x [ init::ss#2 init::ss#1 ]
|
||||
reg byte x [ plexInit::i#2 plexInit::i#1 ]
|
||||
zp ZP_BYTE:8 [ plex_sprite_idx#25 plex_sprite_idx#0 plexShowSprite::$7 ]
|
||||
zp ZP_BYTE:9 [ plex_show_idx#27 plex_show_idx#0 plex_show_idx#16 plex_show_idx#1 ]
|
||||
zp ZP_BYTE:10 [ plex_free_next#27 plex_free_next#31 plexShowSprite::plexFreeAdd1_$2#0 ]
|
||||
zp ZP_BYTE:11 [ plex_sprite_msb#29 plex_sprite_msb#0 plex_sprite_msb#17 plex_sprite_msb#27 plex_sprite_msb#4 plex_sprite_msb#1 ]
|
||||
zp ZP_BYTE:12 [ plexSort::nxt_idx#0 ]
|
||||
zp ZP_BYTE:13 [ plexSort::nxt_y#0 ]
|
||||
zp ZP_BYTE:7 [ plex_sprite_idx#25 plex_sprite_idx#0 plexShowSprite::$7 ]
|
||||
zp ZP_BYTE:8 [ plex_show_idx#27 plex_show_idx#0 plex_show_idx#16 plex_show_idx#1 ]
|
||||
zp ZP_BYTE:9 [ plex_free_next#27 plex_free_next#31 plexShowSprite::plexFreeAdd1_$2#0 ]
|
||||
zp ZP_BYTE:10 [ plex_sprite_msb#29 plex_sprite_msb#0 plex_sprite_msb#17 plex_sprite_msb#27 plex_sprite_msb#4 plex_sprite_msb#1 ]
|
||||
zp ZP_BYTE:11 [ plexSort::nxt_idx#0 ]
|
||||
zp ZP_BYTE:12 [ plexSort::nxt_y#0 ]
|
||||
reg byte x [ plexSort::s#2 ]
|
||||
zp ZP_BYTE:14 [ plex_sprite_idx#1 ]
|
||||
zp ZP_BYTE:15 [ plex_free_next#0 ]
|
||||
zp ZP_BYTE:13 [ plex_sprite_idx#1 ]
|
||||
zp ZP_BYTE:14 [ plex_free_next#0 ]
|
||||
reg byte a [ init::$7 ]
|
||||
reg byte x [ plex_irq::plexFreeNextYpos1_return#0 ]
|
||||
zp ZP_BYTE:15 [ plex_irq::$4 plexShowSprite::plex_sprite_idx2#0 ]
|
||||
reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
||||
reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ]
|
||||
reg byte x [ plexShowSprite::plexFreeAdd1_$1#0 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user