mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-20 00:29:10 +00:00
Improved fragments.
This commit is contained in:
parent
295c5d1dbd
commit
a6a3aed144
@ -1,4 +1,4 @@
|
|||||||
//KICKC FRAGMENT CACHE 12beec37ea 12beec5182
|
//KICKC FRAGMENT CACHE 11e0585d5e 11e05876ff
|
||||||
//FRAGMENT vbuz1=vbuc1
|
//FRAGMENT vbuz1=vbuc1
|
||||||
lda #{c1}
|
lda #{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
@ -1,67 +1,19 @@
|
|||||||
//KICKC FRAGMENT CACHE 12beec37ea 12beec5182
|
//KICKC FRAGMENT CACHE 11e0585d5e 11e05876ff
|
||||||
//FRAGMENT _deref_pbuc1=vbuc2
|
//FRAGMENT vbuz1=vbuc1
|
||||||
lda #{c2}
|
lda #{c1}
|
||||||
sta {c1}
|
sta {z1}
|
||||||
//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
|
|
||||||
lda #{c2}
|
|
||||||
ora {c1}
|
|
||||||
sta {c1}
|
|
||||||
//FRAGMENT pbuz1=pbuc1
|
//FRAGMENT pbuz1=pbuc1
|
||||||
lda #<{c1}
|
lda #<{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
lda #>{c1}
|
lda #>{c1}
|
||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
//FRAGMENT pbuz1_lt_pbuc1_then_la1
|
//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
|
||||||
lda {z1}+1
|
lda #{c2}
|
||||||
cmp #>{c1}
|
ora {c1}
|
||||||
bcc {la1}
|
sta {c1}
|
||||||
bne !+
|
//FRAGMENT _deref_pbuc1=vbuc2
|
||||||
lda {z1}
|
lda #{c2}
|
||||||
cmp #<{c1}
|
|
||||||
bcc {la1}
|
|
||||||
!:
|
|
||||||
//FRAGMENT _deref_pbuc1=_deref_pbuc2
|
|
||||||
lda {c2}
|
|
||||||
sta {c1}
|
sta {c1}
|
||||||
//FRAGMENT vbuz1=_lo_pbuz2
|
|
||||||
lda {z2}
|
|
||||||
sta {z1}
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuz2
|
|
||||||
lda {z2}
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT pbuz1=_inc_pbuz1
|
|
||||||
inw {z1}
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuc1
|
|
||||||
lda #{c1}
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT vbuaa=_lo_pbuz1
|
|
||||||
lda {z1}
|
|
||||||
//FRAGMENT vbuxx=_lo_pbuz1
|
|
||||||
ldx {z1}
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuaa
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuxx
|
|
||||||
txa
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuyy
|
|
||||||
tya
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT _deref_pbuz1=vbuzz
|
|
||||||
tza
|
|
||||||
ldy #0
|
|
||||||
sta ({z1}),y
|
|
||||||
//FRAGMENT vbuyy=_lo_pbuz1
|
|
||||||
ldy {z1}
|
|
||||||
//FRAGMENT vbuzz=_lo_pbuz1
|
|
||||||
ldz {z1}
|
|
||||||
//FRAGMENT vbuz1=vbuc1
|
|
||||||
lda #{c1}
|
|
||||||
sta {z1}
|
|
||||||
//FRAGMENT vbuz1=_inc_vbuz1
|
//FRAGMENT vbuz1=_inc_vbuz1
|
||||||
inc {z1}
|
inc {z1}
|
||||||
//FRAGMENT vbuz1=vbuz2
|
//FRAGMENT vbuz1=vbuz2
|
||||||
@ -88,6 +40,8 @@ dec {z1}
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda ({z2}),y
|
lda ({z2}),y
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
//FRAGMENT pbuz1=_inc_pbuz1
|
||||||
|
inw {z1}
|
||||||
//FRAGMENT vbuz1_neq_0_then_la1
|
//FRAGMENT vbuz1_neq_0_then_la1
|
||||||
lda {z1}
|
lda {z1}
|
||||||
cmp #0
|
cmp #0
|
||||||
@ -180,6 +134,10 @@ bne {la1}
|
|||||||
lda {z1}
|
lda {z1}
|
||||||
cmp #<{c1}
|
cmp #<{c1}
|
||||||
bne {la1}
|
bne {la1}
|
||||||
|
//FRAGMENT _deref_pbuz1=vbuc1
|
||||||
|
lda #{c1}
|
||||||
|
ldy #0
|
||||||
|
sta ({z1}),y
|
||||||
//FRAGMENT vbuaa=vbuz1
|
//FRAGMENT vbuaa=vbuz1
|
||||||
lda {z1}
|
lda {z1}
|
||||||
//FRAGMENT vbuxx=vbuz1
|
//FRAGMENT vbuxx=vbuz1
|
||||||
@ -1290,6 +1248,10 @@ sta {z1}
|
|||||||
lda #0
|
lda #0
|
||||||
adc {z2}+1
|
adc {z2}+1
|
||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
|
//FRAGMENT _deref_pbuz1=vbuz2
|
||||||
|
lda {z2}
|
||||||
|
ldy #0
|
||||||
|
sta ({z1}),y
|
||||||
//FRAGMENT vbuaa=_deref_pbuc1_plus_1
|
//FRAGMENT vbuaa=_deref_pbuc1_plus_1
|
||||||
lda {c1}
|
lda {c1}
|
||||||
inc
|
inc
|
||||||
@ -1325,6 +1287,18 @@ sta ({z1}),y
|
|||||||
txa
|
txa
|
||||||
ldz {z2}
|
ldz {z2}
|
||||||
sta ({z1}),z
|
sta ({z1}),z
|
||||||
|
//FRAGMENT _deref_pbuz1=vbuxx
|
||||||
|
txa
|
||||||
|
ldy #0
|
||||||
|
sta ({z1}),y
|
||||||
|
//FRAGMENT _deref_pbuz1=vbuyy
|
||||||
|
tya
|
||||||
|
ldy #0
|
||||||
|
sta ({z1}),y
|
||||||
|
//FRAGMENT _deref_pbuz1=vbuzz
|
||||||
|
tza
|
||||||
|
ldy #0
|
||||||
|
sta ({z1}),y
|
||||||
//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
|
//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy
|
||||||
tya
|
tya
|
||||||
ldy {z2}
|
ldy {z2}
|
||||||
@ -1536,6 +1510,9 @@ tay
|
|||||||
tza
|
tza
|
||||||
sty $ff
|
sty $ff
|
||||||
ora $ff
|
ora $ff
|
||||||
|
//FRAGMENT _deref_pbuc1=_deref_pbuc2
|
||||||
|
lda {c2}
|
||||||
|
sta {c1}
|
||||||
//FRAGMENT vduz1=vduc1
|
//FRAGMENT vduz1=vduc1
|
||||||
lda #<{c1}
|
lda #<{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//KICKC FRAGMENT CACHE 12beec37ea 12beec5182
|
//KICKC FRAGMENT CACHE 11e0585d5e 11e05876ff
|
||||||
//FRAGMENT vbuz1=vbuc1
|
//FRAGMENT vbuz1=vbuc1
|
||||||
lda #{c1}
|
lda #{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
1313
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
1313
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
//KICKC FRAGMENT CACHE 12beec37ea 12beec5182
|
//KICKC FRAGMENT CACHE 11e0585d5e 11e05876ff
|
||||||
//FRAGMENT vbuz1=_deref_pbuc1
|
//FRAGMENT vbuz1=_deref_pbuc1
|
||||||
lda {c1}
|
lda {c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
tay
|
|
||||||
txa
|
|
||||||
sta {c1},y
|
|
@ -0,0 +1,3 @@
|
|||||||
|
sta {c1},y
|
||||||
|
lda #0
|
||||||
|
sta {c1}+1,y
|
@ -76,10 +76,10 @@
|
|||||||
.label PPU = $2000
|
.label PPU = $2000
|
||||||
// NES CPU and audion processing unit (APU)
|
// NES CPU and audion processing unit (APU)
|
||||||
.label APU = $4000
|
.label APU = $4000
|
||||||
.label scroll_y = $a
|
.label scroll_y = 9
|
||||||
.label vblank_hit = $b
|
.label vblank_hit = $a
|
||||||
// The random state variable
|
// The random state variable
|
||||||
.label rand_state = 8
|
.label rand_state = 7
|
||||||
.segment Code
|
.segment Code
|
||||||
__start: {
|
__start: {
|
||||||
// scroll_y = 0
|
// scroll_y = 0
|
||||||
@ -121,24 +121,24 @@ vblank: {
|
|||||||
rti
|
rti
|
||||||
}
|
}
|
||||||
main: {
|
main: {
|
||||||
.label __9 = $1a
|
.label __9 = $19
|
||||||
.label __10 = $1a
|
.label __10 = $19
|
||||||
.label __11 = $1a
|
.label __11 = $19
|
||||||
.label __20 = $d
|
.label __12 = $1b
|
||||||
.label __23 = $f
|
.label __20 = $c
|
||||||
.label __25 = $11
|
.label __23 = $e
|
||||||
.label __26 = $13
|
.label __25 = $10
|
||||||
.label __31 = $14
|
.label __26 = $12
|
||||||
.label __32 = $16
|
.label __31 = $13
|
||||||
.label __33 = $18
|
.label __32 = $15
|
||||||
.label __56 = $14
|
.label __33 = $17
|
||||||
.label i = 2
|
.label __56 = $13
|
||||||
.label timer_2 = 3
|
.label timer_2 = 2
|
||||||
.label h_bar = $c
|
.label h_bar = $b
|
||||||
.label active_balls = 4
|
.label active_balls = 3
|
||||||
.label sprite_idx = 7
|
.label sprite_idx = 6
|
||||||
.label i_1 = 6
|
.label i = 5
|
||||||
.label timer = 5
|
.label timer = 4
|
||||||
// asm
|
// asm
|
||||||
cld
|
cld
|
||||||
ldx #$ff
|
ldx #$ff
|
||||||
@ -250,11 +250,10 @@ main: {
|
|||||||
sta.z rand_state
|
sta.z rand_state
|
||||||
lda #>1
|
lda #>1
|
||||||
sta.z rand_state+1
|
sta.z rand_state+1
|
||||||
sta.z i
|
tax
|
||||||
__b1:
|
__b1:
|
||||||
// for (i = 0; i < MAX_BALLS; i++)
|
// for (i = 0; i < MAX_BALLS; i++)
|
||||||
lda.z i
|
cpx #$20
|
||||||
cmp #$20
|
|
||||||
bcs !__b2+
|
bcs !__b2+
|
||||||
jmp __b2
|
jmp __b2
|
||||||
!__b2:
|
!__b2:
|
||||||
@ -306,10 +305,10 @@ main: {
|
|||||||
__b5:
|
__b5:
|
||||||
lda #0
|
lda #0
|
||||||
sta.z sprite_idx
|
sta.z sprite_idx
|
||||||
sta.z i_1
|
sta.z i
|
||||||
__b6:
|
__b6:
|
||||||
// for (i = 0; i < active_balls; i++)
|
// for (i = 0; i < active_balls; i++)
|
||||||
lda.z i_1
|
lda.z i
|
||||||
cmp.z active_balls
|
cmp.z active_balls
|
||||||
bcc __b7
|
bcc __b7
|
||||||
// poke(0x2001) = 0x98
|
// poke(0x2001) = 0x98
|
||||||
@ -329,7 +328,7 @@ main: {
|
|||||||
jmp __b4
|
jmp __b4
|
||||||
__b7:
|
__b7:
|
||||||
// balls[i].x_position += balls[i].x_velocity
|
// balls[i].x_position += balls[i].x_velocity
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -370,7 +369,7 @@ main: {
|
|||||||
bcs __b9
|
bcs __b9
|
||||||
!:
|
!:
|
||||||
// balls[i].x_velocity ^= 0xFFFF
|
// balls[i].x_velocity ^= 0xFFFF
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -383,7 +382,7 @@ main: {
|
|||||||
sta balls+4+1,y
|
sta balls+4+1,y
|
||||||
__b9:
|
__b9:
|
||||||
// balls[i].y_position >> 8
|
// balls[i].y_position >> 8
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -414,7 +413,7 @@ main: {
|
|||||||
bcs __b10
|
bcs __b10
|
||||||
!:
|
!:
|
||||||
// balls[i].y_velocity ^= 0xFFFF
|
// balls[i].y_velocity ^= 0xFFFF
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -443,7 +442,7 @@ main: {
|
|||||||
sta balls+2+1,y
|
sta balls+2+1,y
|
||||||
__b10:
|
__b10:
|
||||||
// balls[i].y_position >> 8
|
// balls[i].y_position >> 8
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -475,7 +474,7 @@ main: {
|
|||||||
// sprite_idx++;
|
// sprite_idx++;
|
||||||
inc.z sprite_idx
|
inc.z sprite_idx
|
||||||
// for (i = 0; i < active_balls; i++)
|
// for (i = 0; i < active_balls; i++)
|
||||||
inc.z i_1
|
inc.z i
|
||||||
jmp __b6
|
jmp __b6
|
||||||
__b25:
|
__b25:
|
||||||
stx.z timer
|
stx.z timer
|
||||||
@ -492,7 +491,7 @@ main: {
|
|||||||
and #>$3ff
|
and #>$3ff
|
||||||
sta.z __10+1
|
sta.z __10+1
|
||||||
// balls[i].x_velocity = rand() & 0x3FF
|
// balls[i].x_velocity = rand() & 0x3FF
|
||||||
lda.z i
|
txa
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -507,29 +506,31 @@ main: {
|
|||||||
// rand() & 0x0FF
|
// rand() & 0x0FF
|
||||||
lda #$ff
|
lda #$ff
|
||||||
and.z __11
|
and.z __11
|
||||||
tax
|
sta.z __12
|
||||||
// balls[i].y_velocity = rand() & 0x0FF
|
// balls[i].y_velocity = rand() & 0x0FF
|
||||||
lda.z i
|
txa
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
tay
|
tay
|
||||||
txa
|
lda.z __12
|
||||||
sta balls+6,y
|
sta balls+6,y
|
||||||
|
lda #0
|
||||||
|
sta balls+6+1,y
|
||||||
// for (i = 0; i < MAX_BALLS; i++)
|
// for (i = 0; i < MAX_BALLS; i++)
|
||||||
inc.z i
|
inx
|
||||||
jmp __b1
|
jmp __b1
|
||||||
}
|
}
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($f) cpuData)
|
// ppuDataTransfer(void* zp($e) cpuData)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label cpuSrc = $f
|
.label cpuSrc = $e
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label cpuData = $f
|
.label cpuData = $e
|
||||||
// >ppuData
|
// >ppuData
|
||||||
lda.z ppuDataPrepare1_ppuData+1
|
lda.z ppuDataPrepare1_ppuData+1
|
||||||
// PPU->PPUADDR = >ppuData
|
// PPU->PPUADDR = >ppuData
|
||||||
@ -572,11 +573,11 @@ ppuDataTransfer: {
|
|||||||
// Fill a number of bytes in the PPU memory
|
// Fill a number of bytes in the PPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFill(word zp($f) size)
|
// ppuDataFill(word zp($e) size)
|
||||||
ppuDataFill: {
|
ppuDataFill: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label size = $f
|
.label size = $e
|
||||||
// >ppuData
|
// >ppuData
|
||||||
lda.z ppuDataPrepare1_ppuData+1
|
lda.z ppuDataPrepare1_ppuData+1
|
||||||
// PPU->PPUADDR = >ppuData
|
// PPU->PPUADDR = >ppuData
|
||||||
@ -620,7 +621,7 @@ rand: {
|
|||||||
.label __0 = $1c
|
.label __0 = $1c
|
||||||
.label __1 = $1e
|
.label __1 = $1e
|
||||||
.label __2 = $20
|
.label __2 = $20
|
||||||
.label return = $1a
|
.label return = $19
|
||||||
// rand_state << 7
|
// rand_state << 7
|
||||||
lda.z rand_state+1
|
lda.z rand_state+1
|
||||||
lsr
|
lsr
|
||||||
|
@ -2963,17 +2963,17 @@ main: {
|
|||||||
asl
|
asl
|
||||||
sta.z __38
|
sta.z __38
|
||||||
// [60] *((word*)(const struct $0*) balls + (byte~) main::$38) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
// [60] *((word*)(const struct $0*) balls + (byte~) main::$38) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
||||||
lda.z __38
|
lda #0
|
||||||
ldx #0
|
ldy.z __38
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta balls,y
|
sta balls,y
|
||||||
|
lda #0
|
||||||
|
sta balls+1,y
|
||||||
// [61] *((word*)(const struct $0*) balls+(byte) 2 + (byte~) main::$38) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
// [61] *((word*)(const struct $0*) balls+(byte) 2 + (byte~) main::$38) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
||||||
lda.z __38
|
lda #0
|
||||||
ldx #0
|
ldy.z __38
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta balls+2,y
|
sta balls+2,y
|
||||||
|
lda #0
|
||||||
|
sta balls+2+1,y
|
||||||
// [62] phi from main::@16 to main::@5 [phi:main::@16->main::@5]
|
// [62] phi from main::@16 to main::@5 [phi:main::@16->main::@5]
|
||||||
__b5_from___b16:
|
__b5_from___b16:
|
||||||
// [62] phi (byte) main::timer#15 = (byte) 0 [phi:main::@16->main::@5#0] -- vbuz1=vbuc1
|
// [62] phi (byte) main::timer#15 = (byte) 0 [phi:main::@16->main::@5#0] -- vbuz1=vbuc1
|
||||||
@ -3306,11 +3306,11 @@ main: {
|
|||||||
asl
|
asl
|
||||||
sta.z __36
|
sta.z __36
|
||||||
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuz1=vbuz2
|
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuz1=vbuz2
|
||||||
lda.z __36
|
lda.z __12
|
||||||
ldx.z __12
|
ldy.z __36
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta balls+6,y
|
sta balls+6,y
|
||||||
|
lda #0
|
||||||
|
sta balls+6+1,y
|
||||||
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuz1=_inc_vbuz1
|
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuz1=_inc_vbuz1
|
||||||
inc.z i
|
inc.z i
|
||||||
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
||||||
@ -3823,72 +3823,72 @@ Uplift Scope [$0]
|
|||||||
Uplift Scope [vblank]
|
Uplift Scope [vblank]
|
||||||
Uplift Scope [__start]
|
Uplift Scope [__start]
|
||||||
|
|
||||||
Uplifting [ppuDataTransfer] best 56820 combination zp[2]:13 [ ppuDataTransfer::i#2 ppuDataTransfer::i#1 ] reg byte a [ ppuDataTransfer::ppuDataPut1_val#0 ] zp[2]:15 [ ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ] zp[2]:9 [ ppuDataTransfer::ppuDataPrepare1_ppuData#0 ] zp[2]:11 [ ppuDataTransfer::cpuData#2 ]
|
Uplifting [ppuDataTransfer] best 56910 combination zp[2]:13 [ ppuDataTransfer::i#2 ppuDataTransfer::i#1 ] reg byte a [ ppuDataTransfer::ppuDataPut1_val#0 ] zp[2]:15 [ ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ] zp[2]:9 [ ppuDataTransfer::ppuDataPrepare1_ppuData#0 ] zp[2]:11 [ ppuDataTransfer::cpuData#2 ]
|
||||||
Uplifting [rand] best 56820 combination zp[2]:73 [ rand::$0 ] zp[2]:77 [ rand::$1 ] zp[2]:81 [ rand::$2 ] zp[2]:83 [ rand::return#0 ] zp[2]:55 [ rand::return#2 ] zp[2]:62 [ rand::return#3 ]
|
Uplifting [rand] best 56910 combination zp[2]:73 [ rand::$0 ] zp[2]:77 [ rand::$1 ] zp[2]:81 [ rand::$2 ] zp[2]:83 [ rand::return#0 ] zp[2]:55 [ rand::return#2 ] zp[2]:62 [ rand::return#3 ]
|
||||||
Uplifting [] best 56820 combination zp[2]:75 [ rand_state#0 ] zp[2]:79 [ rand_state#1 ] zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 ] zp[1]:25 [ scroll_y ] zp[1]:26 [ vblank_hit ]
|
Uplifting [] best 56910 combination zp[2]:75 [ rand_state#0 ] zp[2]:79 [ rand_state#1 ] zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 ] zp[1]:25 [ scroll_y ] zp[1]:26 [ vblank_hit ]
|
||||||
Uplifting [ppuDataFill] best 56808 combination zp[2]:21 [ ppuDataFill::i#2 ppuDataFill::i#1 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$0 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$1 ] zp[2]:19 [ ppuDataFill::size#3 ] zp[2]:17 [ ppuDataFill::ppuDataPrepare1_ppuData#0 ]
|
Uplifting [ppuDataFill] best 56898 combination zp[2]:21 [ ppuDataFill::i#2 ppuDataFill::i#1 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$0 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$1 ] zp[2]:19 [ ppuDataFill::size#3 ] zp[2]:17 [ ppuDataFill::ppuDataPrepare1_ppuData#0 ]
|
||||||
Uplifting [RICOH_2C02] best 56808 combination
|
Uplifting [RICOH_2C02] best 56898 combination
|
||||||
Uplifting [RICOH_2A03] best 56808 combination
|
Uplifting [RICOH_2A03] best 56898 combination
|
||||||
Uplifting [SpriteData] best 56808 combination
|
Uplifting [SpriteData] best 56898 combination
|
||||||
Uplifting [RADIX] best 56808 combination
|
Uplifting [RADIX] best 56898 combination
|
||||||
Uplifting [printf_format_number] best 56808 combination
|
Uplifting [printf_format_number] best 56898 combination
|
||||||
Uplifting [printf_buffer_number] best 56808 combination
|
Uplifting [printf_buffer_number] best 56898 combination
|
||||||
Uplifting [printf_format_string] best 56808 combination
|
Uplifting [printf_format_string] best 56898 combination
|
||||||
Uplifting [$0] best 56808 combination
|
Uplifting [$0] best 56898 combination
|
||||||
Uplifting [vblank] best 56808 combination
|
Uplifting [vblank] best 56898 combination
|
||||||
Uplifting [__start] best 56808 combination
|
Uplifting [__start] best 56898 combination
|
||||||
Attempting to uplift remaining variables inzp[1]:36 [ main::$45 ]
|
Attempting to uplift remaining variables inzp[1]:36 [ main::$45 ]
|
||||||
Uplifting [main] best 56408 combination reg byte a [ main::$45 ]
|
Uplifting [main] best 56498 combination reg byte a [ main::$45 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:33 [ main::$40 ]
|
Attempting to uplift remaining variables inzp[1]:33 [ main::$40 ]
|
||||||
Uplifting [main] best 55108 combination reg byte y [ main::$40 ]
|
Uplifting [main] best 55198 combination reg byte y [ main::$40 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:7 [ main::i#10 main::i#4 ]
|
Attempting to uplift remaining variables inzp[1]:7 [ main::i#10 main::i#4 ]
|
||||||
Uplifting [main] best 55108 combination zp[1]:7 [ main::i#10 main::i#4 ]
|
Uplifting [main] best 55198 combination zp[1]:7 [ main::i#10 main::i#4 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:37 [ main::$44 ]
|
Attempting to uplift remaining variables inzp[1]:37 [ main::$44 ]
|
||||||
Uplifting [main] best 54408 combination reg byte y [ main::$44 ]
|
Uplifting [main] best 54498 combination reg byte y [ main::$44 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:8 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
Attempting to uplift remaining variables inzp[1]:8 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
||||||
Uplifting [main] best 54408 combination zp[1]:8 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
Uplifting [main] best 54498 combination zp[1]:8 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:42 [ main::$26 ]
|
Attempting to uplift remaining variables inzp[1]:42 [ main::$26 ]
|
||||||
Uplifting [main] best 54408 combination zp[1]:42 [ main::$26 ]
|
Uplifting [main] best 54498 combination zp[1]:42 [ main::$26 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:44 [ main::$30 ]
|
Attempting to uplift remaining variables inzp[1]:44 [ main::$30 ]
|
||||||
Uplifting [main] best 53808 combination reg byte a [ main::$30 ]
|
Uplifting [main] best 53898 combination reg byte a [ main::$30 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:52 [ main::$48 ]
|
Attempting to uplift remaining variables inzp[1]:52 [ main::$48 ]
|
||||||
Uplifting [main] best 52508 combination reg byte x [ main::$48 ]
|
Uplifting [main] best 52598 combination reg byte x [ main::$48 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:43 [ main::$53 ]
|
Attempting to uplift remaining variables inzp[1]:43 [ main::$53 ]
|
||||||
Uplifting [main] best 51808 combination reg byte y [ main::$53 ]
|
Uplifting [main] best 51898 combination reg byte y [ main::$53 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:49 [ main::$50 ]
|
Attempting to uplift remaining variables inzp[1]:49 [ main::$50 ]
|
||||||
Uplifting [main] best 51108 combination reg byte y [ main::$50 ]
|
Uplifting [main] best 51198 combination reg byte y [ main::$50 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:6 [ main::timer#3 main::timer#15 main::timer#21 ]
|
Attempting to uplift remaining variables inzp[1]:6 [ main::timer#3 main::timer#15 main::timer#21 ]
|
||||||
Uplifting [main] best 51108 combination zp[1]:6 [ main::timer#3 main::timer#15 main::timer#21 ]
|
Uplifting [main] best 51198 combination zp[1]:6 [ main::timer#3 main::timer#15 main::timer#21 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:2 [ main::initNES1_i#2 main::initNES1_i#1 ]
|
Attempting to uplift remaining variables inzp[1]:2 [ main::initNES1_i#2 main::initNES1_i#1 ]
|
||||||
Uplifting [main] best 50778 combination reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
Uplifting [main] best 50868 combination reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:3 [ main::i#14 main::i#2 ]
|
Attempting to uplift remaining variables inzp[1]:3 [ main::i#14 main::i#2 ]
|
||||||
Uplifting [main] best 50778 combination zp[1]:3 [ main::i#14 main::i#2 ]
|
Uplifting [main] best 50758 combination reg byte x [ main::i#14 main::i#2 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:4 [ main::timer_2#2 main::timer_2#1 ]
|
Attempting to uplift remaining variables inzp[1]:4 [ main::timer_2#2 main::timer_2#1 ]
|
||||||
Uplifting [main] best 50778 combination zp[1]:4 [ main::timer_2#2 main::timer_2#1 ]
|
Uplifting [main] best 50758 combination zp[1]:4 [ main::timer_2#2 main::timer_2#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:27 [ main::initNES1_waitForVBlank1_$0 ]
|
Attempting to uplift remaining variables inzp[1]:27 [ main::initNES1_waitForVBlank1_$0 ]
|
||||||
Uplifting [main] best 50718 combination reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
Uplifting [main] best 50698 combination reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:28 [ main::initNES1_waitForVBlank2_$0 ]
|
Attempting to uplift remaining variables inzp[1]:28 [ main::initNES1_waitForVBlank2_$0 ]
|
||||||
Uplifting [main] best 50658 combination reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
Uplifting [main] best 50638 combination reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:30 [ main::$14 ]
|
Attempting to uplift remaining variables inzp[1]:30 [ main::$14 ]
|
||||||
Uplifting [main] best 50598 combination reg byte a [ main::$14 ]
|
Uplifting [main] best 50578 combination reg byte a [ main::$14 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:61 [ main::$35 ]
|
Attempting to uplift remaining variables inzp[1]:61 [ main::$35 ]
|
||||||
Uplifting [main] best 50558 combination reg byte a [ main::$35 ]
|
Uplifting [main] best 50538 combination reg byte a [ main::$35 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:67 [ main::$36 ]
|
Attempting to uplift remaining variables inzp[1]:67 [ main::$36 ]
|
||||||
Uplifting [main] best 50498 combination reg byte a [ main::$36 ]
|
Uplifting [main] best 50498 combination reg byte a [ main::$36 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
Attempting to uplift remaining variables inzp[1]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
||||||
Uplifting [main] best 50498 combination zp[1]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
Uplifting [main] best 50498 combination zp[1]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:32 [ main::$38 ]
|
Attempting to uplift remaining variables inzp[1]:32 [ main::$38 ]
|
||||||
Uplifting [main] best 50488 combination reg byte x [ main::$38 ]
|
Uplifting [main] best 50428 combination reg byte x [ main::$38 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:25 [ scroll_y ]
|
Attempting to uplift remaining variables inzp[1]:25 [ scroll_y ]
|
||||||
Uplifting [] best 50488 combination zp[1]:25 [ scroll_y ]
|
Uplifting [] best 50428 combination zp[1]:25 [ scroll_y ]
|
||||||
Attempting to uplift remaining variables inzp[1]:31 [ main::timer#1 ]
|
Attempting to uplift remaining variables inzp[1]:31 [ main::timer#1 ]
|
||||||
Uplifting [main] best 50428 combination reg byte x [ main::timer#1 ]
|
Uplifting [main] best 50368 combination reg byte x [ main::timer#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:66 [ main::$12 ]
|
Attempting to uplift remaining variables inzp[1]:66 [ main::$12 ]
|
||||||
Uplifting [main] best 50388 combination reg byte x [ main::$12 ]
|
Uplifting [main] best 50368 combination zp[1]:66 [ main::$12 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:29 [ main::h_bar#1 ]
|
Attempting to uplift remaining variables inzp[1]:29 [ main::h_bar#1 ]
|
||||||
Uplifting [main] best 50388 combination zp[1]:29 [ main::h_bar#1 ]
|
Uplifting [main] best 50368 combination zp[1]:29 [ main::h_bar#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:26 [ vblank_hit ]
|
Attempting to uplift remaining variables inzp[1]:26 [ vblank_hit ]
|
||||||
Uplifting [] best 50388 combination zp[1]:26 [ vblank_hit ]
|
Uplifting [] best 50368 combination zp[1]:26 [ vblank_hit ]
|
||||||
Coalescing zero page register [ zp[2]:11 [ ppuDataTransfer::cpuData#2 ] ] with [ zp[2]:15 [ ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:11 [ ppuDataTransfer::cpuData#2 ] ] with [ zp[2]:15 [ ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 ] ] with [ zp[2]:75 [ rand_state#0 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 ] ] with [ zp[2]:75 [ rand_state#0 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 ] ] with [ zp[2]:79 [ rand_state#1 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:23 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 ] ] with [ zp[2]:79 [ rand_state#1 ] ] - score: 1
|
||||||
@ -3904,24 +3904,24 @@ Coalescing zero page register [ zp[2]:21 [ ppuDataFill::i#2 ppuDataFill::i#1 ] ]
|
|||||||
Coalescing zero page register [ zp[2]:34 [ main::$20 ] ] with [ zp[2]:17 [ ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ] ]
|
Coalescing zero page register [ zp[2]:34 [ main::$20 ] ] with [ zp[2]:17 [ ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ] ]
|
||||||
Coalescing zero page register [ zp[2]:38 [ main::$23 ] ] with [ zp[2]:19 [ ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] ]
|
Coalescing zero page register [ zp[2]:38 [ main::$23 ] ] with [ zp[2]:19 [ ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] ]
|
||||||
Coalescing zero page register [ zp[2]:40 [ main::$25 ] ] with [ zp[2]:21 [ ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ] ]
|
Coalescing zero page register [ zp[2]:40 [ main::$25 ] ] with [ zp[2]:21 [ ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ] ]
|
||||||
Allocated (was zp[1]:3) zp[1]:2 [ main::i#14 main::i#2 ]
|
Allocated (was zp[1]:4) zp[1]:2 [ main::timer_2#2 main::timer_2#1 ]
|
||||||
Allocated (was zp[1]:4) zp[1]:3 [ main::timer_2#2 main::timer_2#1 ]
|
Allocated (was zp[1]:5) zp[1]:3 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
||||||
Allocated (was zp[1]:5) zp[1]:4 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
Allocated (was zp[1]:6) zp[1]:4 [ main::timer#3 main::timer#15 main::timer#21 ]
|
||||||
Allocated (was zp[1]:6) zp[1]:5 [ main::timer#3 main::timer#15 main::timer#21 ]
|
Allocated (was zp[1]:7) zp[1]:5 [ main::i#10 main::i#4 ]
|
||||||
Allocated (was zp[1]:7) zp[1]:6 [ main::i#10 main::i#4 ]
|
Allocated (was zp[1]:8) zp[1]:6 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
||||||
Allocated (was zp[1]:8) zp[1]:7 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
Allocated (was zp[2]:23) zp[2]:7 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
||||||
Allocated (was zp[2]:23) zp[2]:8 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
Allocated (was zp[1]:25) zp[1]:9 [ scroll_y ]
|
||||||
Allocated (was zp[1]:25) zp[1]:10 [ scroll_y ]
|
Allocated (was zp[1]:26) zp[1]:10 [ vblank_hit ]
|
||||||
Allocated (was zp[1]:26) zp[1]:11 [ vblank_hit ]
|
Allocated (was zp[1]:29) zp[1]:11 [ main::h_bar#1 ]
|
||||||
Allocated (was zp[1]:29) zp[1]:12 [ main::h_bar#1 ]
|
Allocated (was zp[2]:34) zp[2]:12 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
||||||
Allocated (was zp[2]:34) zp[2]:13 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
Allocated (was zp[2]:38) zp[2]:14 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
||||||
Allocated (was zp[2]:38) zp[2]:15 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
Allocated (was zp[2]:40) zp[2]:16 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
||||||
Allocated (was zp[2]:40) zp[2]:17 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
Allocated (was zp[1]:42) zp[1]:18 [ main::$26 ]
|
||||||
Allocated (was zp[1]:42) zp[1]:19 [ main::$26 ]
|
Allocated (was zp[2]:45) zp[2]:19 [ main::$56 main::$31 ]
|
||||||
Allocated (was zp[2]:45) zp[2]:20 [ main::$56 main::$31 ]
|
Allocated (was zp[2]:50) zp[2]:21 [ main::$32 ]
|
||||||
Allocated (was zp[2]:50) zp[2]:22 [ main::$32 ]
|
Allocated (was zp[2]:53) zp[2]:23 [ main::$33 ]
|
||||||
Allocated (was zp[2]:53) zp[2]:24 [ main::$33 ]
|
Allocated (was zp[2]:55) zp[2]:25 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
||||||
Allocated (was zp[2]:55) zp[2]:26 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
Allocated (was zp[1]:66) zp[1]:27 [ main::$12 ]
|
||||||
Allocated (was zp[2]:73) zp[2]:28 [ rand::$0 ]
|
Allocated (was zp[2]:73) zp[2]:28 [ rand::$0 ]
|
||||||
Allocated (was zp[2]:77) zp[2]:30 [ rand::$1 ]
|
Allocated (was zp[2]:77) zp[2]:30 [ rand::$1 ]
|
||||||
Allocated (was zp[2]:81) zp[2]:32 [ rand::$2 ]
|
Allocated (was zp[2]:81) zp[2]:32 [ rand::$2 ]
|
||||||
@ -4008,10 +4008,10 @@ ASSEMBLER BEFORE OPTIMIZATION
|
|||||||
.label PPU = $2000
|
.label PPU = $2000
|
||||||
// NES CPU and audion processing unit (APU)
|
// NES CPU and audion processing unit (APU)
|
||||||
.label APU = $4000
|
.label APU = $4000
|
||||||
.label scroll_y = $a
|
.label scroll_y = 9
|
||||||
.label vblank_hit = $b
|
.label vblank_hit = $a
|
||||||
// The random state variable
|
// The random state variable
|
||||||
.label rand_state = 8
|
.label rand_state = 7
|
||||||
.segment Code
|
.segment Code
|
||||||
// __start
|
// __start
|
||||||
__start: {
|
__start: {
|
||||||
@ -4082,24 +4082,24 @@ vblank: {
|
|||||||
}
|
}
|
||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
.label __9 = $1a
|
.label __9 = $19
|
||||||
.label __10 = $1a
|
.label __10 = $19
|
||||||
.label __11 = $1a
|
.label __11 = $19
|
||||||
.label __20 = $d
|
.label __12 = $1b
|
||||||
.label __23 = $f
|
.label __20 = $c
|
||||||
.label __25 = $11
|
.label __23 = $e
|
||||||
.label __26 = $13
|
.label __25 = $10
|
||||||
.label __31 = $14
|
.label __26 = $12
|
||||||
.label __32 = $16
|
.label __31 = $13
|
||||||
.label __33 = $18
|
.label __32 = $15
|
||||||
.label __56 = $14
|
.label __33 = $17
|
||||||
.label i = 2
|
.label __56 = $13
|
||||||
.label timer_2 = 3
|
.label timer_2 = 2
|
||||||
.label h_bar = $c
|
.label h_bar = $b
|
||||||
.label active_balls = 4
|
.label active_balls = 3
|
||||||
.label sprite_idx = 7
|
.label sprite_idx = 6
|
||||||
.label i_1 = 6
|
.label i = 5
|
||||||
.label timer = 5
|
.label timer = 4
|
||||||
jmp initNES1
|
jmp initNES1
|
||||||
// main::initNES1
|
// main::initNES1
|
||||||
initNES1:
|
initNES1:
|
||||||
@ -4304,15 +4304,13 @@ main: {
|
|||||||
sta.z rand_state
|
sta.z rand_state
|
||||||
lda #>1
|
lda #>1
|
||||||
sta.z rand_state+1
|
sta.z rand_state+1
|
||||||
// [48] phi (byte) main::i#14 = (byte) 0 [phi:main::@18->main::@1#1] -- vbuz1=vbuc1
|
// [48] phi (byte) main::i#14 = (byte) 0 [phi:main::@18->main::@1#1] -- vbuxx=vbuc1
|
||||||
lda #0
|
ldx #0
|
||||||
sta.z i
|
|
||||||
jmp __b1
|
jmp __b1
|
||||||
// main::@1
|
// main::@1
|
||||||
__b1:
|
__b1:
|
||||||
// [49] if((byte) main::i#14<(byte) $20) goto main::@2 -- vbuz1_lt_vbuc1_then_la1
|
// [49] if((byte) main::i#14<(byte) $20) goto main::@2 -- vbuxx_lt_vbuc1_then_la1
|
||||||
lda.z i
|
cpx #$20
|
||||||
cmp #$20
|
|
||||||
bcc __b2_from___b1
|
bcc __b2_from___b1
|
||||||
// [50] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
|
// [50] phi from main::@1 to main::@3 [phi:main::@1->main::@3]
|
||||||
__b3_from___b1:
|
__b3_from___b1:
|
||||||
@ -4401,12 +4399,12 @@ main: {
|
|||||||
sta.z sprite_idx
|
sta.z sprite_idx
|
||||||
// [63] phi (byte) main::i#10 = (byte) 0 [phi:main::@5->main::@6#1] -- vbuz1=vbuc1
|
// [63] phi (byte) main::i#10 = (byte) 0 [phi:main::@5->main::@6#1] -- vbuz1=vbuc1
|
||||||
lda #0
|
lda #0
|
||||||
sta.z i_1
|
sta.z i
|
||||||
jmp __b6
|
jmp __b6
|
||||||
// main::@6
|
// main::@6
|
||||||
__b6:
|
__b6:
|
||||||
// [64] if((byte) main::i#10<(byte) main::active_balls#8) goto main::@7 -- vbuz1_lt_vbuz2_then_la1
|
// [64] if((byte) main::i#10<(byte) main::active_balls#8) goto main::@7 -- vbuz1_lt_vbuz2_then_la1
|
||||||
lda.z i_1
|
lda.z i
|
||||||
cmp.z active_balls
|
cmp.z active_balls
|
||||||
bcc __b7
|
bcc __b7
|
||||||
jmp __b8
|
jmp __b8
|
||||||
@ -4441,7 +4439,7 @@ main: {
|
|||||||
// main::@7
|
// main::@7
|
||||||
__b7:
|
__b7:
|
||||||
// [69] (byte~) main::$40 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [69] (byte~) main::$40 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4486,7 +4484,7 @@ main: {
|
|||||||
// main::@11
|
// main::@11
|
||||||
__b11:
|
__b11:
|
||||||
// [75] (byte~) main::$45 ← (byte) main::i#10 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [75] (byte~) main::$45 ← (byte) main::i#10 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4502,7 +4500,7 @@ main: {
|
|||||||
// main::@9
|
// main::@9
|
||||||
__b9:
|
__b9:
|
||||||
// [77] (byte~) main::$44 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [77] (byte~) main::$44 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4542,7 +4540,7 @@ main: {
|
|||||||
// main::@12
|
// main::@12
|
||||||
__b12:
|
__b12:
|
||||||
// [83] (byte~) main::$53 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [83] (byte~) main::$53 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4576,7 +4574,7 @@ main: {
|
|||||||
// main::@10
|
// main::@10
|
||||||
__b10:
|
__b10:
|
||||||
// [89] (byte~) main::$50 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [89] (byte~) main::$50 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4611,7 +4609,7 @@ main: {
|
|||||||
// [97] (byte) main::sprite_idx#2 ← ++ (byte) main::sprite_idx#3 -- vbuz1=_inc_vbuz1
|
// [97] (byte) main::sprite_idx#2 ← ++ (byte) main::sprite_idx#3 -- vbuz1=_inc_vbuz1
|
||||||
inc.z sprite_idx
|
inc.z sprite_idx
|
||||||
// [98] (byte) main::i#4 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1
|
// [98] (byte) main::i#4 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1
|
||||||
inc.z i_1
|
inc.z i
|
||||||
// [63] phi from main::@10 to main::@6 [phi:main::@10->main::@6]
|
// [63] phi from main::@10 to main::@6 [phi:main::@10->main::@6]
|
||||||
__b6_from___b10:
|
__b6_from___b10:
|
||||||
// [63] phi (byte) main::sprite_idx#3 = (byte) main::sprite_idx#2 [phi:main::@10->main::@6#0] -- register_copy
|
// [63] phi (byte) main::sprite_idx#3 = (byte) main::sprite_idx#2 [phi:main::@10->main::@6#0] -- register_copy
|
||||||
@ -4644,8 +4642,8 @@ main: {
|
|||||||
lda.z __10+1
|
lda.z __10+1
|
||||||
and #>$3ff
|
and #>$3ff
|
||||||
sta.z __10+1
|
sta.z __10+1
|
||||||
// [105] (byte~) main::$35 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [105] (byte~) main::$35 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuxx_rol_3
|
||||||
lda.z i
|
txa
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -4665,21 +4663,23 @@ main: {
|
|||||||
// main::@23
|
// main::@23
|
||||||
__b23:
|
__b23:
|
||||||
// [109] (word~) main::$11 ← (word) rand::return#3
|
// [109] (word~) main::$11 ← (word) rand::return#3
|
||||||
// [110] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff -- vbuxx=vwuz1_band_vbuc1
|
// [110] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff -- vbuz1=vwuz2_band_vbuc1
|
||||||
lda #$ff
|
lda #$ff
|
||||||
and.z __11
|
and.z __11
|
||||||
tax
|
sta.z __12
|
||||||
// [111] (byte~) main::$36 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [111] (byte~) main::$36 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuxx_rol_3
|
||||||
lda.z i
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuaa=vbuxx
|
|
||||||
tay
|
|
||||||
txa
|
txa
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuaa=vbuz1
|
||||||
|
tay
|
||||||
|
lda.z __12
|
||||||
sta balls+6,y
|
sta balls+6,y
|
||||||
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuz1=_inc_vbuz1
|
lda #0
|
||||||
inc.z i
|
sta balls+6+1,y
|
||||||
|
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuxx=_inc_vbuxx
|
||||||
|
inx
|
||||||
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
||||||
__b1_from___b23:
|
__b1_from___b23:
|
||||||
// [48] phi (word) rand_state#17 = (word) rand_state#11 [phi:main::@23->main::@1#0] -- register_copy
|
// [48] phi (word) rand_state#17 = (word) rand_state#11 [phi:main::@23->main::@1#0] -- register_copy
|
||||||
@ -4691,12 +4691,12 @@ main: {
|
|||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($f) cpuData)
|
// ppuDataTransfer(void* zp($e) cpuData)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label cpuSrc = $f
|
.label cpuSrc = $e
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label cpuData = $f
|
.label cpuData = $e
|
||||||
jmp ppuDataPrepare1
|
jmp ppuDataPrepare1
|
||||||
// ppuDataTransfer::ppuDataPrepare1
|
// ppuDataTransfer::ppuDataPrepare1
|
||||||
ppuDataPrepare1:
|
ppuDataPrepare1:
|
||||||
@ -4768,11 +4768,11 @@ ppuDataTransfer: {
|
|||||||
// Fill a number of bytes in the PPU memory
|
// Fill a number of bytes in the PPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFill(word zp($f) size)
|
// ppuDataFill(word zp($e) size)
|
||||||
ppuDataFill: {
|
ppuDataFill: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label size = $f
|
.label size = $e
|
||||||
jmp ppuDataPrepare1
|
jmp ppuDataPrepare1
|
||||||
// ppuDataFill::ppuDataPrepare1
|
// ppuDataFill::ppuDataPrepare1
|
||||||
ppuDataPrepare1:
|
ppuDataPrepare1:
|
||||||
@ -4836,7 +4836,7 @@ rand: {
|
|||||||
.label __0 = $1c
|
.label __0 = $1c
|
||||||
.label __1 = $1e
|
.label __1 = $1e
|
||||||
.label __2 = $20
|
.label __2 = $20
|
||||||
.label return = $1a
|
.label return = $19
|
||||||
// [138] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7 -- vwuz1=vwuz2_rol_7
|
// [138] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7 -- vwuz1=vwuz2_rol_7
|
||||||
lda.z rand_state+1
|
lda.z rand_state+1
|
||||||
lsr
|
lsr
|
||||||
@ -4970,7 +4970,7 @@ Removing instruction lda #0
|
|||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Replacing instruction ldx #0 with TAX
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
@ -5066,8 +5066,8 @@ Succesful ASM optimization Pass5NextJumpElimination
|
|||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Removing instruction lda #0
|
Removing instruction lda #0
|
||||||
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
||||||
Fixing long branch [221] bcc __b2 to bcs
|
Fixing long branch [220] bcc __b2 to bcs
|
||||||
Fixing long branch [245] bne __b25 to beq
|
Fixing long branch [244] bne __b25 to beq
|
||||||
|
|
||||||
FINAL SYMBOL TABLE
|
FINAL SYMBOL TABLE
|
||||||
(word) $0::x_position
|
(word) $0::x_position
|
||||||
@ -5145,18 +5145,18 @@ FINAL SYMBOL TABLE
|
|||||||
(const struct $0*) balls[(number) $40] = { fill( $40, 0) }
|
(const struct $0*) balls[(number) $40] = { fill( $40, 0) }
|
||||||
(const to_nomodify byte*) h_bar_tilemap[] = { (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1 }
|
(const to_nomodify byte*) h_bar_tilemap[] = { (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1 }
|
||||||
(signed word()) main()
|
(signed word()) main()
|
||||||
(word~) main::$10 zp[2]:26 101.0
|
(word~) main::$10 zp[2]:25 101.0
|
||||||
(word~) main::$11 zp[2]:26 202.0
|
(word~) main::$11 zp[2]:25 202.0
|
||||||
(byte~) main::$12 reg byte x 101.0
|
(byte~) main::$12 zp[1]:27 101.0
|
||||||
(byte~) main::$14 reg byte a 202.0
|
(byte~) main::$14 reg byte a 202.0
|
||||||
(word~) main::$20 zp[2]:13 2002.0
|
(word~) main::$20 zp[2]:12 2002.0
|
||||||
(word~) main::$23 zp[2]:15 667.3333333333334
|
(word~) main::$23 zp[2]:14 667.3333333333334
|
||||||
(word~) main::$25 zp[2]:17 667.3333333333334
|
(word~) main::$25 zp[2]:16 667.3333333333334
|
||||||
(byte~) main::$26 zp[1]:19 1001.0
|
(byte~) main::$26 zp[1]:18 1001.0
|
||||||
(byte~) main::$30 reg byte a 1001.0
|
(byte~) main::$30 reg byte a 1001.0
|
||||||
(word~) main::$31 zp[2]:20 2002.0
|
(word~) main::$31 zp[2]:19 2002.0
|
||||||
(word~) main::$32 zp[2]:22 500.5
|
(word~) main::$32 zp[2]:21 500.5
|
||||||
(word~) main::$33 zp[2]:24 1001.0
|
(word~) main::$33 zp[2]:23 1001.0
|
||||||
(byte~) main::$35 reg byte a 202.0
|
(byte~) main::$35 reg byte a 202.0
|
||||||
(byte~) main::$36 reg byte a 202.0
|
(byte~) main::$36 reg byte a 202.0
|
||||||
(byte~) main::$38 reg byte x 151.5
|
(byte~) main::$38 reg byte x 151.5
|
||||||
@ -5166,8 +5166,8 @@ FINAL SYMBOL TABLE
|
|||||||
(byte~) main::$48 reg byte x 1001.0
|
(byte~) main::$48 reg byte x 1001.0
|
||||||
(byte~) main::$50 reg byte y 500.5
|
(byte~) main::$50 reg byte y 500.5
|
||||||
(byte~) main::$53 reg byte y 800.8
|
(byte~) main::$53 reg byte y 800.8
|
||||||
(word~) main::$56 zp[2]:20 2002.0
|
(word~) main::$56 zp[2]:19 2002.0
|
||||||
(word~) main::$9 zp[2]:26 202.0
|
(word~) main::$9 zp[2]:25 202.0
|
||||||
(label) main::@1
|
(label) main::@1
|
||||||
(label) main::@10
|
(label) main::@10
|
||||||
(label) main::@11
|
(label) main::@11
|
||||||
@ -5194,17 +5194,17 @@ FINAL SYMBOL TABLE
|
|||||||
(label) main::@8
|
(label) main::@8
|
||||||
(label) main::@9
|
(label) main::@9
|
||||||
(byte) main::active_balls
|
(byte) main::active_balls
|
||||||
(byte) main::active_balls#1 active_balls zp[1]:4 75.75
|
(byte) main::active_balls#1 active_balls zp[1]:3 75.75
|
||||||
(byte) main::active_balls#2 active_balls zp[1]:4 56.11111111111111
|
(byte) main::active_balls#2 active_balls zp[1]:3 56.11111111111111
|
||||||
(byte) main::active_balls#8 active_balls zp[1]:4 37.97297297297297
|
(byte) main::active_balls#8 active_balls zp[1]:3 37.97297297297297
|
||||||
(label) main::enableVideoOutput1
|
(label) main::enableVideoOutput1
|
||||||
(byte) main::h_bar
|
(byte) main::h_bar
|
||||||
(byte) main::h_bar#1 h_bar zp[1]:12 72.8409090909091
|
(byte) main::h_bar#1 h_bar zp[1]:11 72.8409090909091
|
||||||
(byte) main::i
|
(byte) main::i
|
||||||
(byte) main::i#10 i_1 zp[1]:6 258.3225806451613
|
(byte) main::i#10 i zp[1]:5 258.3225806451613
|
||||||
(byte) main::i#14 i zp[1]:2 33.666666666666664
|
(byte) main::i#14 reg byte x 33.666666666666664
|
||||||
(byte) main::i#2 i zp[1]:2 202.0
|
(byte) main::i#2 reg byte x 202.0
|
||||||
(byte) main::i#4 i_1 zp[1]:6 2002.0
|
(byte) main::i#4 i zp[1]:5 2002.0
|
||||||
(label) main::initNES1
|
(label) main::initNES1
|
||||||
(label) main::initNES1_@1
|
(label) main::initNES1_@1
|
||||||
(label) main::initNES1_@7
|
(label) main::initNES1_@7
|
||||||
@ -5222,34 +5222,34 @@ FINAL SYMBOL TABLE
|
|||||||
(label) main::initNES1_waitForVBlank2_@1
|
(label) main::initNES1_waitForVBlank2_@1
|
||||||
(signed word) main::return
|
(signed word) main::return
|
||||||
(byte) main::sprite_idx
|
(byte) main::sprite_idx
|
||||||
(byte) main::sprite_idx#2 sprite_idx zp[1]:7 1001.0
|
(byte) main::sprite_idx#2 sprite_idx zp[1]:6 1001.0
|
||||||
(byte) main::sprite_idx#3 sprite_idx zp[1]:7 100.1
|
(byte) main::sprite_idx#3 sprite_idx zp[1]:6 100.1
|
||||||
(byte) main::timer
|
(byte) main::timer
|
||||||
(byte) main::timer#1 reg byte x 101.0
|
(byte) main::timer#1 reg byte x 101.0
|
||||||
(byte) main::timer#15 timer zp[1]:5 8.18918918918919
|
(byte) main::timer#15 timer zp[1]:4 8.18918918918919
|
||||||
(byte) main::timer#21 timer zp[1]:5 202.0
|
(byte) main::timer#21 timer zp[1]:4 202.0
|
||||||
(byte) main::timer#3 timer zp[1]:5 57.714285714285715
|
(byte) main::timer#3 timer zp[1]:4 57.714285714285715
|
||||||
(byte) main::timer_2
|
(byte) main::timer_2
|
||||||
(byte) main::timer_2#1 timer_2 zp[1]:3 6.183673469387754
|
(byte) main::timer_2#1 timer_2 zp[1]:2 6.183673469387754
|
||||||
(byte) main::timer_2#2 timer_2 zp[1]:3 202.0
|
(byte) main::timer_2#2 timer_2 zp[1]:2 202.0
|
||||||
(const to_nomodify byte*) palette[] = { (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4 }
|
(const to_nomodify byte*) palette[] = { (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4 }
|
||||||
(void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size)
|
(void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size)
|
||||||
(label) ppuDataFill::@1
|
(label) ppuDataFill::@1
|
||||||
(label) ppuDataFill::@2
|
(label) ppuDataFill::@2
|
||||||
(label) ppuDataFill::@return
|
(label) ppuDataFill::@return
|
||||||
(word) ppuDataFill::i
|
(word) ppuDataFill::i
|
||||||
(word) ppuDataFill::i#1 i zp[2]:17 2002.0
|
(word) ppuDataFill::i#1 i zp[2]:16 2002.0
|
||||||
(word) ppuDataFill::i#2 i zp[2]:17 1001.0
|
(word) ppuDataFill::i#2 i zp[2]:16 1001.0
|
||||||
(nomodify void*) ppuDataFill::ppuData
|
(nomodify void*) ppuDataFill::ppuData
|
||||||
(label) ppuDataFill::ppuDataPrepare1
|
(label) ppuDataFill::ppuDataPrepare1
|
||||||
(byte~) ppuDataFill::ppuDataPrepare1_$0 reg byte a 202.0
|
(byte~) ppuDataFill::ppuDataPrepare1_$0 reg byte a 202.0
|
||||||
(byte~) ppuDataFill::ppuDataPrepare1_$1 reg byte a 202.0
|
(byte~) ppuDataFill::ppuDataPrepare1_$1 reg byte a 202.0
|
||||||
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData
|
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData
|
||||||
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:13 67.33333333333333
|
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:12 67.33333333333333
|
||||||
(label) ppuDataFill::ppuDataPut1
|
(label) ppuDataFill::ppuDataPut1
|
||||||
(byte) ppuDataFill::ppuDataPut1_val
|
(byte) ppuDataFill::ppuDataPut1_val
|
||||||
(word) ppuDataFill::size
|
(word) ppuDataFill::size
|
||||||
(word) ppuDataFill::size#3 size zp[2]:15 111.22222222222223
|
(word) ppuDataFill::size#3 size zp[2]:14 111.22222222222223
|
||||||
(byte) ppuDataFill::val
|
(byte) ppuDataFill::val
|
||||||
(void()) ppuDataTransfer((nomodify void*) ppuDataTransfer::ppuData , (nomodify void*) ppuDataTransfer::cpuData , (word) ppuDataTransfer::size)
|
(void()) ppuDataTransfer((nomodify void*) ppuDataTransfer::ppuData , (nomodify void*) ppuDataTransfer::cpuData , (word) ppuDataTransfer::size)
|
||||||
(label) ppuDataTransfer::@1
|
(label) ppuDataTransfer::@1
|
||||||
@ -5258,20 +5258,20 @@ FINAL SYMBOL TABLE
|
|||||||
(label) ppuDataTransfer::@4
|
(label) ppuDataTransfer::@4
|
||||||
(label) ppuDataTransfer::@return
|
(label) ppuDataTransfer::@return
|
||||||
(nomodify void*) ppuDataTransfer::cpuData
|
(nomodify void*) ppuDataTransfer::cpuData
|
||||||
(nomodify void*) ppuDataTransfer::cpuData#2 cpuData zp[2]:15
|
(nomodify void*) ppuDataTransfer::cpuData#2 cpuData zp[2]:14
|
||||||
(byte*) ppuDataTransfer::cpuSrc
|
(byte*) ppuDataTransfer::cpuSrc
|
||||||
(byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:15 1001.0
|
(byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:14 1001.0
|
||||||
(byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:15 776.0
|
(byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:14 776.0
|
||||||
(byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:15 202.0
|
(byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:14 202.0
|
||||||
(word) ppuDataTransfer::i
|
(word) ppuDataTransfer::i
|
||||||
(word) ppuDataTransfer::i#1 i zp[2]:17 2002.0
|
(word) ppuDataTransfer::i#1 i zp[2]:16 2002.0
|
||||||
(word) ppuDataTransfer::i#2 i zp[2]:17 600.5999999999999
|
(word) ppuDataTransfer::i#2 i zp[2]:16 600.5999999999999
|
||||||
(nomodify void*) ppuDataTransfer::ppuData
|
(nomodify void*) ppuDataTransfer::ppuData
|
||||||
(label) ppuDataTransfer::ppuDataPrepare1
|
(label) ppuDataTransfer::ppuDataPrepare1
|
||||||
(byte~) ppuDataTransfer::ppuDataPrepare1_$0 reg byte a 202.0
|
(byte~) ppuDataTransfer::ppuDataPrepare1_$0 reg byte a 202.0
|
||||||
(byte~) ppuDataTransfer::ppuDataPrepare1_$1 reg byte a 202.0
|
(byte~) ppuDataTransfer::ppuDataPrepare1_$1 reg byte a 202.0
|
||||||
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData
|
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData
|
||||||
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:13 67.33333333333333
|
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:12 67.33333333333333
|
||||||
(label) ppuDataTransfer::ppuDataPut1
|
(label) ppuDataTransfer::ppuDataPut1
|
||||||
(byte) ppuDataTransfer::ppuDataPut1_val
|
(byte) ppuDataTransfer::ppuDataPut1_val
|
||||||
(byte) ppuDataTransfer::ppuDataPut1_val#0 reg byte a 2002.0
|
(byte) ppuDataTransfer::ppuDataPut1_val#0 reg byte a 2002.0
|
||||||
@ -5292,57 +5292,57 @@ FINAL SYMBOL TABLE
|
|||||||
(word~) rand::$2 zp[2]:32 2002.0
|
(word~) rand::$2 zp[2]:32 2002.0
|
||||||
(label) rand::@return
|
(label) rand::@return
|
||||||
(word) rand::return
|
(word) rand::return
|
||||||
(word) rand::return#0 return zp[2]:26 300.75
|
(word) rand::return#0 return zp[2]:25 300.75
|
||||||
(word) rand::return#2 return zp[2]:26 202.0
|
(word) rand::return#2 return zp[2]:25 202.0
|
||||||
(word) rand::return#3 return zp[2]:26 202.0
|
(word) rand::return#3 return zp[2]:25 202.0
|
||||||
(word) rand_state
|
(word) rand_state
|
||||||
(word) rand_state#0 rand_state zp[2]:8 1501.5
|
(word) rand_state#0 rand_state zp[2]:7 1501.5
|
||||||
(word) rand_state#1 rand_state zp[2]:8 1501.5
|
(word) rand_state#1 rand_state zp[2]:7 1501.5
|
||||||
(word) rand_state#10 rand_state zp[2]:8 1102.0
|
(word) rand_state#10 rand_state zp[2]:7 1102.0
|
||||||
(word) rand_state#11 rand_state zp[2]:8 137.75
|
(word) rand_state#11 rand_state zp[2]:7 137.75
|
||||||
(word) rand_state#17 rand_state zp[2]:8 67.33333333333333
|
(word) rand_state#17 rand_state zp[2]:7 67.33333333333333
|
||||||
(volatile byte) scroll_y loadstore zp[1]:10 105.0
|
(volatile byte) scroll_y loadstore zp[1]:9 105.0
|
||||||
(const to_nomodify byte*) sine_table[(number) $100] = { (byte) $40, (byte) $42, (byte) $43, (byte) $45, (byte) $46, (byte) $48, (byte) $49, (byte) $4b, (byte) $4c, (byte) $4e, (byte) $50, (byte) $51, (byte) $53, (byte) $54, (byte) $56, (byte) $57, (byte) $58, (byte) $5a, (byte) $5b, (byte) $5d, (byte) $5e, (byte) $60, (byte) $61, (byte) $62, (byte) $64, (byte) $65, (byte) $66, (byte) $67, (byte) $69, (byte) $6a, (byte) $6b, (byte) $6c, (byte) $6d, (byte) $6e, (byte) $6f, (byte) $70, (byte) $71, (byte) $72, (byte) $73, (byte) $74, (byte) $75, (byte) $76, (byte) $77, (byte) $78, (byte) $78, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7b, (byte) $7c, (byte) $7c, (byte) $7d, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7d, (byte) $7c, (byte) $7c, (byte) $7b, (byte) $7b, (byte) $7a, (byte) $79, (byte) $78, (byte) $78, (byte) $77, (byte) $76, (byte) $75, (byte) $74, (byte) $73, (byte) $72, (byte) $71, (byte) $70, (byte) $6f, (byte) $6e, (byte) $6d, (byte) $6c, (byte) $6b, (byte) $6a, (byte) $69, (byte) $67, (byte) $66, (byte) $65, (byte) $64, (byte) $62, (byte) $61, (byte) $60, (byte) $5e, (byte) $5d, (byte) $5b, (byte) $5a, (byte) $58, (byte) $57, (byte) $56, (byte) $54, (byte) $53, (byte) $51, (byte) $50, (byte) $4e, (byte) $4c, (byte) $4b, (byte) $49, (byte) $48, (byte) $46, (byte) $45, (byte) $43, (byte) $42, (byte) $40, (byte) $3e, (byte) $3d, (byte) $3b, (byte) $3a, (byte) $38, (byte) $37, (byte) $35, (byte) $34, (byte) $32, (byte) $30, (byte) $2f, (byte) $2d, (byte) $2c, (byte) $2a, (byte) $29, (byte) $28, (byte) $26, (byte) $25, (byte) $23, (byte) $22, (byte) $20, (byte) $1f, (byte) $1e, (byte) $1c, (byte) $1b, (byte) $1a, (byte) $19, (byte) $17, (byte) $16, (byte) $15, (byte) $14, (byte) $13, (byte) $12, (byte) $11, (byte) $10, (byte) $f, (byte) $e, (byte) $d, (byte) $c, (byte) $b, (byte) $a, (byte) 9, (byte) 8, (byte) 8, (byte) 7, (byte) 6, (byte) 5, (byte) 5, (byte) 4, (byte) 4, (byte) 3, (byte) 3, (byte) 2, (byte) 2, (byte) 2, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 2, (byte) 2, (byte) 2, (byte) 3, (byte) 3, (byte) 4, (byte) 4, (byte) 5, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) $e, (byte) $f, (byte) $10, (byte) $11, (byte) $12, (byte) $13, (byte) $14, (byte) $15, (byte) $16, (byte) $17, (byte) $19, (byte) $1a, (byte) $1b, (byte) $1c, (byte) $1e, (byte) $1f, (byte) $20, (byte) $22, (byte) $23, (byte) $25, (byte) $26, (byte) $28, (byte) $29, (byte) $2a, (byte) $2c, (byte) $2d, (byte) $2f, (byte) $30, (byte) $32, (byte) $34, (byte) $35, (byte) $37, (byte) $38, (byte) $3a, (byte) $3b, (byte) $3d, (byte) $3e }
|
(const to_nomodify byte*) sine_table[(number) $100] = { (byte) $40, (byte) $42, (byte) $43, (byte) $45, (byte) $46, (byte) $48, (byte) $49, (byte) $4b, (byte) $4c, (byte) $4e, (byte) $50, (byte) $51, (byte) $53, (byte) $54, (byte) $56, (byte) $57, (byte) $58, (byte) $5a, (byte) $5b, (byte) $5d, (byte) $5e, (byte) $60, (byte) $61, (byte) $62, (byte) $64, (byte) $65, (byte) $66, (byte) $67, (byte) $69, (byte) $6a, (byte) $6b, (byte) $6c, (byte) $6d, (byte) $6e, (byte) $6f, (byte) $70, (byte) $71, (byte) $72, (byte) $73, (byte) $74, (byte) $75, (byte) $76, (byte) $77, (byte) $78, (byte) $78, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7b, (byte) $7c, (byte) $7c, (byte) $7d, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7d, (byte) $7c, (byte) $7c, (byte) $7b, (byte) $7b, (byte) $7a, (byte) $79, (byte) $78, (byte) $78, (byte) $77, (byte) $76, (byte) $75, (byte) $74, (byte) $73, (byte) $72, (byte) $71, (byte) $70, (byte) $6f, (byte) $6e, (byte) $6d, (byte) $6c, (byte) $6b, (byte) $6a, (byte) $69, (byte) $67, (byte) $66, (byte) $65, (byte) $64, (byte) $62, (byte) $61, (byte) $60, (byte) $5e, (byte) $5d, (byte) $5b, (byte) $5a, (byte) $58, (byte) $57, (byte) $56, (byte) $54, (byte) $53, (byte) $51, (byte) $50, (byte) $4e, (byte) $4c, (byte) $4b, (byte) $49, (byte) $48, (byte) $46, (byte) $45, (byte) $43, (byte) $42, (byte) $40, (byte) $3e, (byte) $3d, (byte) $3b, (byte) $3a, (byte) $38, (byte) $37, (byte) $35, (byte) $34, (byte) $32, (byte) $30, (byte) $2f, (byte) $2d, (byte) $2c, (byte) $2a, (byte) $29, (byte) $28, (byte) $26, (byte) $25, (byte) $23, (byte) $22, (byte) $20, (byte) $1f, (byte) $1e, (byte) $1c, (byte) $1b, (byte) $1a, (byte) $19, (byte) $17, (byte) $16, (byte) $15, (byte) $14, (byte) $13, (byte) $12, (byte) $11, (byte) $10, (byte) $f, (byte) $e, (byte) $d, (byte) $c, (byte) $b, (byte) $a, (byte) 9, (byte) 8, (byte) 8, (byte) 7, (byte) 6, (byte) 5, (byte) 5, (byte) 4, (byte) 4, (byte) 3, (byte) 3, (byte) 2, (byte) 2, (byte) 2, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 2, (byte) 2, (byte) 2, (byte) 3, (byte) 3, (byte) 4, (byte) 4, (byte) 5, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) $e, (byte) $f, (byte) $10, (byte) $11, (byte) $12, (byte) $13, (byte) $14, (byte) $15, (byte) $16, (byte) $17, (byte) $19, (byte) $1a, (byte) $1b, (byte) $1c, (byte) $1e, (byte) $1f, (byte) $20, (byte) $22, (byte) $23, (byte) $25, (byte) $26, (byte) $28, (byte) $29, (byte) $2a, (byte) $2c, (byte) $2d, (byte) $2f, (byte) $30, (byte) $32, (byte) $34, (byte) $35, (byte) $37, (byte) $38, (byte) $3a, (byte) $3b, (byte) $3d, (byte) $3e }
|
||||||
interrupt(HARDWARE_STACK)(void()) vblank()
|
interrupt(HARDWARE_STACK)(void()) vblank()
|
||||||
(label) vblank::@1
|
(label) vblank::@1
|
||||||
(label) vblank::@return
|
(label) vblank::@return
|
||||||
(label) vblank::ppuSpriteBufferDmaTransfer1
|
(label) vblank::ppuSpriteBufferDmaTransfer1
|
||||||
(struct SpriteData*) vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer
|
(struct SpriteData*) vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer
|
||||||
(volatile byte) vblank_hit loadstore zp[1]:11 10.25925925925926
|
(volatile byte) vblank_hit loadstore zp[1]:10 10.25925925925926
|
||||||
|
|
||||||
reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
||||||
zp[1]:2 [ main::i#14 main::i#2 ]
|
reg byte x [ main::i#14 main::i#2 ]
|
||||||
zp[1]:3 [ main::timer_2#2 main::timer_2#1 ]
|
zp[1]:2 [ main::timer_2#2 main::timer_2#1 ]
|
||||||
zp[1]:4 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
zp[1]:3 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
||||||
zp[1]:5 [ main::timer#3 main::timer#15 main::timer#21 ]
|
zp[1]:4 [ main::timer#3 main::timer#15 main::timer#21 ]
|
||||||
zp[1]:6 [ main::i#10 main::i#4 ]
|
zp[1]:5 [ main::i#10 main::i#4 ]
|
||||||
zp[1]:7 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
zp[1]:6 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
||||||
zp[2]:8 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
zp[2]:7 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
||||||
zp[1]:10 [ scroll_y ]
|
zp[1]:9 [ scroll_y ]
|
||||||
zp[1]:11 [ vblank_hit ]
|
zp[1]:10 [ vblank_hit ]
|
||||||
reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
||||||
reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
||||||
zp[1]:12 [ main::h_bar#1 ]
|
zp[1]:11 [ main::h_bar#1 ]
|
||||||
reg byte a [ main::$14 ]
|
reg byte a [ main::$14 ]
|
||||||
reg byte x [ main::timer#1 ]
|
reg byte x [ main::timer#1 ]
|
||||||
reg byte x [ main::$38 ]
|
reg byte x [ main::$38 ]
|
||||||
reg byte y [ main::$40 ]
|
reg byte y [ main::$40 ]
|
||||||
zp[2]:13 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
zp[2]:12 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
||||||
reg byte a [ main::$45 ]
|
reg byte a [ main::$45 ]
|
||||||
reg byte y [ main::$44 ]
|
reg byte y [ main::$44 ]
|
||||||
zp[2]:15 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
zp[2]:14 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
||||||
zp[2]:17 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
zp[2]:16 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
||||||
zp[1]:19 [ main::$26 ]
|
zp[1]:18 [ main::$26 ]
|
||||||
reg byte y [ main::$53 ]
|
reg byte y [ main::$53 ]
|
||||||
reg byte a [ main::$30 ]
|
reg byte a [ main::$30 ]
|
||||||
zp[2]:20 [ main::$56 main::$31 ]
|
zp[2]:19 [ main::$56 main::$31 ]
|
||||||
reg byte y [ main::$50 ]
|
reg byte y [ main::$50 ]
|
||||||
zp[2]:22 [ main::$32 ]
|
zp[2]:21 [ main::$32 ]
|
||||||
reg byte x [ main::$48 ]
|
reg byte x [ main::$48 ]
|
||||||
zp[2]:24 [ main::$33 ]
|
zp[2]:23 [ main::$33 ]
|
||||||
zp[2]:26 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
zp[2]:25 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
||||||
reg byte a [ main::$35 ]
|
reg byte a [ main::$35 ]
|
||||||
reg byte x [ main::$12 ]
|
zp[1]:27 [ main::$12 ]
|
||||||
reg byte a [ main::$36 ]
|
reg byte a [ main::$36 ]
|
||||||
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
|
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
|
||||||
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
|
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
|
||||||
@ -5438,10 +5438,10 @@ Score: 45543
|
|||||||
.label PPU = $2000
|
.label PPU = $2000
|
||||||
// NES CPU and audion processing unit (APU)
|
// NES CPU and audion processing unit (APU)
|
||||||
.label APU = $4000
|
.label APU = $4000
|
||||||
.label scroll_y = $a
|
.label scroll_y = 9
|
||||||
.label vblank_hit = $b
|
.label vblank_hit = $a
|
||||||
// The random state variable
|
// The random state variable
|
||||||
.label rand_state = 8
|
.label rand_state = 7
|
||||||
.segment Code
|
.segment Code
|
||||||
// __start
|
// __start
|
||||||
__start: {
|
__start: {
|
||||||
@ -5505,24 +5505,24 @@ vblank: {
|
|||||||
}
|
}
|
||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
.label __9 = $1a
|
.label __9 = $19
|
||||||
.label __10 = $1a
|
.label __10 = $19
|
||||||
.label __11 = $1a
|
.label __11 = $19
|
||||||
.label __20 = $d
|
.label __12 = $1b
|
||||||
.label __23 = $f
|
.label __20 = $c
|
||||||
.label __25 = $11
|
.label __23 = $e
|
||||||
.label __26 = $13
|
.label __25 = $10
|
||||||
.label __31 = $14
|
.label __26 = $12
|
||||||
.label __32 = $16
|
.label __31 = $13
|
||||||
.label __33 = $18
|
.label __32 = $15
|
||||||
.label __56 = $14
|
.label __33 = $17
|
||||||
.label i = 2
|
.label __56 = $13
|
||||||
.label timer_2 = 3
|
.label timer_2 = 2
|
||||||
.label h_bar = $c
|
.label h_bar = $b
|
||||||
.label active_balls = 4
|
.label active_balls = 3
|
||||||
.label sprite_idx = 7
|
.label sprite_idx = 6
|
||||||
.label i_1 = 6
|
.label i = 5
|
||||||
.label timer = 5
|
.label timer = 4
|
||||||
// main::initNES1
|
// main::initNES1
|
||||||
// asm
|
// asm
|
||||||
// asm { cld ldx#$ff txs }
|
// asm { cld ldx#$ff txs }
|
||||||
@ -5702,14 +5702,13 @@ main: {
|
|||||||
sta.z rand_state
|
sta.z rand_state
|
||||||
lda #>1
|
lda #>1
|
||||||
sta.z rand_state+1
|
sta.z rand_state+1
|
||||||
// [48] phi (byte) main::i#14 = (byte) 0 [phi:main::@18->main::@1#1] -- vbuz1=vbuc1
|
// [48] phi (byte) main::i#14 = (byte) 0 [phi:main::@18->main::@1#1] -- vbuxx=vbuc1
|
||||||
sta.z i
|
tax
|
||||||
// main::@1
|
// main::@1
|
||||||
__b1:
|
__b1:
|
||||||
// for (i = 0; i < MAX_BALLS; i++)
|
// for (i = 0; i < MAX_BALLS; i++)
|
||||||
// [49] if((byte) main::i#14<(byte) $20) goto main::@2 -- vbuz1_lt_vbuc1_then_la1
|
// [49] if((byte) main::i#14<(byte) $20) goto main::@2 -- vbuxx_lt_vbuc1_then_la1
|
||||||
lda.z i
|
cpx #$20
|
||||||
cmp #$20
|
|
||||||
bcs !__b2+
|
bcs !__b2+
|
||||||
jmp __b2
|
jmp __b2
|
||||||
!__b2:
|
!__b2:
|
||||||
@ -5790,12 +5789,12 @@ main: {
|
|||||||
lda #0
|
lda #0
|
||||||
sta.z sprite_idx
|
sta.z sprite_idx
|
||||||
// [63] phi (byte) main::i#10 = (byte) 0 [phi:main::@5->main::@6#1] -- vbuz1=vbuc1
|
// [63] phi (byte) main::i#10 = (byte) 0 [phi:main::@5->main::@6#1] -- vbuz1=vbuc1
|
||||||
sta.z i_1
|
sta.z i
|
||||||
// main::@6
|
// main::@6
|
||||||
__b6:
|
__b6:
|
||||||
// for (i = 0; i < active_balls; i++)
|
// for (i = 0; i < active_balls; i++)
|
||||||
// [64] if((byte) main::i#10<(byte) main::active_balls#8) goto main::@7 -- vbuz1_lt_vbuz2_then_la1
|
// [64] if((byte) main::i#10<(byte) main::active_balls#8) goto main::@7 -- vbuz1_lt_vbuz2_then_la1
|
||||||
lda.z i_1
|
lda.z i
|
||||||
cmp.z active_balls
|
cmp.z active_balls
|
||||||
bcc __b7
|
bcc __b7
|
||||||
// main::@8
|
// main::@8
|
||||||
@ -5828,7 +5827,7 @@ main: {
|
|||||||
__b7:
|
__b7:
|
||||||
// balls[i].x_position += balls[i].x_velocity
|
// balls[i].x_position += balls[i].x_velocity
|
||||||
// [69] (byte~) main::$40 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [69] (byte~) main::$40 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -5876,7 +5875,7 @@ main: {
|
|||||||
// main::@11
|
// main::@11
|
||||||
// balls[i].x_velocity ^= 0xFFFF
|
// balls[i].x_velocity ^= 0xFFFF
|
||||||
// [75] (byte~) main::$45 ← (byte) main::i#10 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [75] (byte~) main::$45 ← (byte) main::i#10 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -5892,7 +5891,7 @@ main: {
|
|||||||
__b9:
|
__b9:
|
||||||
// balls[i].y_position >> 8
|
// balls[i].y_position >> 8
|
||||||
// [77] (byte~) main::$44 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [77] (byte~) main::$44 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -5931,7 +5930,7 @@ main: {
|
|||||||
// main::@12
|
// main::@12
|
||||||
// balls[i].y_velocity ^= 0xFFFF
|
// balls[i].y_velocity ^= 0xFFFF
|
||||||
// [83] (byte~) main::$53 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [83] (byte~) main::$53 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -5967,7 +5966,7 @@ main: {
|
|||||||
__b10:
|
__b10:
|
||||||
// balls[i].y_position >> 8
|
// balls[i].y_position >> 8
|
||||||
// [89] (byte~) main::$50 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
// [89] (byte~) main::$50 ← (byte) main::i#10 << (byte) 3 -- vbuyy=vbuz1_rol_3
|
||||||
lda.z i_1
|
lda.z i
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -6008,7 +6007,7 @@ main: {
|
|||||||
inc.z sprite_idx
|
inc.z sprite_idx
|
||||||
// for (i = 0; i < active_balls; i++)
|
// for (i = 0; i < active_balls; i++)
|
||||||
// [98] (byte) main::i#4 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1
|
// [98] (byte) main::i#4 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1
|
||||||
inc.z i_1
|
inc.z i
|
||||||
// [63] phi from main::@10 to main::@6 [phi:main::@10->main::@6]
|
// [63] phi from main::@10 to main::@6 [phi:main::@10->main::@6]
|
||||||
// [63] phi (byte) main::sprite_idx#3 = (byte) main::sprite_idx#2 [phi:main::@10->main::@6#0] -- register_copy
|
// [63] phi (byte) main::sprite_idx#3 = (byte) main::sprite_idx#2 [phi:main::@10->main::@6#0] -- register_copy
|
||||||
// [63] phi (byte) main::i#10 = (byte) main::i#4 [phi:main::@10->main::@6#1] -- register_copy
|
// [63] phi (byte) main::i#10 = (byte) main::i#4 [phi:main::@10->main::@6#1] -- register_copy
|
||||||
@ -6039,8 +6038,8 @@ main: {
|
|||||||
and #>$3ff
|
and #>$3ff
|
||||||
sta.z __10+1
|
sta.z __10+1
|
||||||
// balls[i].x_velocity = rand() & 0x3FF
|
// balls[i].x_velocity = rand() & 0x3FF
|
||||||
// [105] (byte~) main::$35 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [105] (byte~) main::$35 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuxx_rol_3
|
||||||
lda.z i
|
txa
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -6060,23 +6059,25 @@ main: {
|
|||||||
// main::@23
|
// main::@23
|
||||||
// [109] (word~) main::$11 ← (word) rand::return#3
|
// [109] (word~) main::$11 ← (word) rand::return#3
|
||||||
// rand() & 0x0FF
|
// rand() & 0x0FF
|
||||||
// [110] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff -- vbuxx=vwuz1_band_vbuc1
|
// [110] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff -- vbuz1=vwuz2_band_vbuc1
|
||||||
lda #$ff
|
lda #$ff
|
||||||
and.z __11
|
and.z __11
|
||||||
tax
|
sta.z __12
|
||||||
// balls[i].y_velocity = rand() & 0x0FF
|
// balls[i].y_velocity = rand() & 0x0FF
|
||||||
// [111] (byte~) main::$36 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [111] (byte~) main::$36 ← (byte) main::i#14 << (byte) 3 -- vbuaa=vbuxx_rol_3
|
||||||
lda.z i
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuaa=vbuxx
|
|
||||||
tay
|
|
||||||
txa
|
txa
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
// [112] *((word*)(const struct $0*) balls+(byte) 6 + (byte~) main::$36) ← (byte~) main::$12 -- pwuc1_derefidx_vbuaa=vbuz1
|
||||||
|
tay
|
||||||
|
lda.z __12
|
||||||
sta balls+6,y
|
sta balls+6,y
|
||||||
|
lda #0
|
||||||
|
sta balls+6+1,y
|
||||||
// for (i = 0; i < MAX_BALLS; i++)
|
// for (i = 0; i < MAX_BALLS; i++)
|
||||||
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuz1=_inc_vbuz1
|
// [113] (byte) main::i#2 ← ++ (byte) main::i#14 -- vbuxx=_inc_vbuxx
|
||||||
inc.z i
|
inx
|
||||||
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
// [48] phi from main::@23 to main::@1 [phi:main::@23->main::@1]
|
||||||
// [48] phi (word) rand_state#17 = (word) rand_state#11 [phi:main::@23->main::@1#0] -- register_copy
|
// [48] phi (word) rand_state#17 = (word) rand_state#11 [phi:main::@23->main::@1#0] -- register_copy
|
||||||
// [48] phi (byte) main::i#14 = (byte) main::i#2 [phi:main::@23->main::@1#1] -- register_copy
|
// [48] phi (byte) main::i#14 = (byte) main::i#2 [phi:main::@23->main::@1#1] -- register_copy
|
||||||
@ -6087,12 +6088,12 @@ main: {
|
|||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($f) cpuData)
|
// ppuDataTransfer(void* zp($e) cpuData)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label cpuSrc = $f
|
.label cpuSrc = $e
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label cpuData = $f
|
.label cpuData = $e
|
||||||
// ppuDataTransfer::ppuDataPrepare1
|
// ppuDataTransfer::ppuDataPrepare1
|
||||||
// >ppuData
|
// >ppuData
|
||||||
// [115] (byte~) ppuDataTransfer::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 -- vbuaa=_hi_pvoz1
|
// [115] (byte~) ppuDataTransfer::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 -- vbuaa=_hi_pvoz1
|
||||||
@ -6160,11 +6161,11 @@ ppuDataTransfer: {
|
|||||||
// Fill a number of bytes in the PPU memory
|
// Fill a number of bytes in the PPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFill(word zp($f) size)
|
// ppuDataFill(word zp($e) size)
|
||||||
ppuDataFill: {
|
ppuDataFill: {
|
||||||
.label ppuDataPrepare1_ppuData = $d
|
.label ppuDataPrepare1_ppuData = $c
|
||||||
.label i = $11
|
.label i = $10
|
||||||
.label size = $f
|
.label size = $e
|
||||||
// ppuDataFill::ppuDataPrepare1
|
// ppuDataFill::ppuDataPrepare1
|
||||||
// >ppuData
|
// >ppuData
|
||||||
// [128] (byte~) ppuDataFill::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_hi_pvoz1
|
// [128] (byte~) ppuDataFill::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_hi_pvoz1
|
||||||
@ -6226,7 +6227,7 @@ rand: {
|
|||||||
.label __0 = $1c
|
.label __0 = $1c
|
||||||
.label __1 = $1e
|
.label __1 = $1e
|
||||||
.label __2 = $20
|
.label __2 = $20
|
||||||
.label return = $1a
|
.label return = $19
|
||||||
// rand_state << 7
|
// rand_state << 7
|
||||||
// [138] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7 -- vwuz1=vwuz2_rol_7
|
// [138] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7 -- vwuz1=vwuz2_rol_7
|
||||||
lda.z rand_state+1
|
lda.z rand_state+1
|
||||||
|
@ -73,18 +73,18 @@
|
|||||||
(const struct $0*) balls[(number) $40] = { fill( $40, 0) }
|
(const struct $0*) balls[(number) $40] = { fill( $40, 0) }
|
||||||
(const to_nomodify byte*) h_bar_tilemap[] = { (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1 }
|
(const to_nomodify byte*) h_bar_tilemap[] = { (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1 }
|
||||||
(signed word()) main()
|
(signed word()) main()
|
||||||
(word~) main::$10 zp[2]:26 101.0
|
(word~) main::$10 zp[2]:25 101.0
|
||||||
(word~) main::$11 zp[2]:26 202.0
|
(word~) main::$11 zp[2]:25 202.0
|
||||||
(byte~) main::$12 reg byte x 101.0
|
(byte~) main::$12 zp[1]:27 101.0
|
||||||
(byte~) main::$14 reg byte a 202.0
|
(byte~) main::$14 reg byte a 202.0
|
||||||
(word~) main::$20 zp[2]:13 2002.0
|
(word~) main::$20 zp[2]:12 2002.0
|
||||||
(word~) main::$23 zp[2]:15 667.3333333333334
|
(word~) main::$23 zp[2]:14 667.3333333333334
|
||||||
(word~) main::$25 zp[2]:17 667.3333333333334
|
(word~) main::$25 zp[2]:16 667.3333333333334
|
||||||
(byte~) main::$26 zp[1]:19 1001.0
|
(byte~) main::$26 zp[1]:18 1001.0
|
||||||
(byte~) main::$30 reg byte a 1001.0
|
(byte~) main::$30 reg byte a 1001.0
|
||||||
(word~) main::$31 zp[2]:20 2002.0
|
(word~) main::$31 zp[2]:19 2002.0
|
||||||
(word~) main::$32 zp[2]:22 500.5
|
(word~) main::$32 zp[2]:21 500.5
|
||||||
(word~) main::$33 zp[2]:24 1001.0
|
(word~) main::$33 zp[2]:23 1001.0
|
||||||
(byte~) main::$35 reg byte a 202.0
|
(byte~) main::$35 reg byte a 202.0
|
||||||
(byte~) main::$36 reg byte a 202.0
|
(byte~) main::$36 reg byte a 202.0
|
||||||
(byte~) main::$38 reg byte x 151.5
|
(byte~) main::$38 reg byte x 151.5
|
||||||
@ -94,8 +94,8 @@
|
|||||||
(byte~) main::$48 reg byte x 1001.0
|
(byte~) main::$48 reg byte x 1001.0
|
||||||
(byte~) main::$50 reg byte y 500.5
|
(byte~) main::$50 reg byte y 500.5
|
||||||
(byte~) main::$53 reg byte y 800.8
|
(byte~) main::$53 reg byte y 800.8
|
||||||
(word~) main::$56 zp[2]:20 2002.0
|
(word~) main::$56 zp[2]:19 2002.0
|
||||||
(word~) main::$9 zp[2]:26 202.0
|
(word~) main::$9 zp[2]:25 202.0
|
||||||
(label) main::@1
|
(label) main::@1
|
||||||
(label) main::@10
|
(label) main::@10
|
||||||
(label) main::@11
|
(label) main::@11
|
||||||
@ -122,17 +122,17 @@
|
|||||||
(label) main::@8
|
(label) main::@8
|
||||||
(label) main::@9
|
(label) main::@9
|
||||||
(byte) main::active_balls
|
(byte) main::active_balls
|
||||||
(byte) main::active_balls#1 active_balls zp[1]:4 75.75
|
(byte) main::active_balls#1 active_balls zp[1]:3 75.75
|
||||||
(byte) main::active_balls#2 active_balls zp[1]:4 56.11111111111111
|
(byte) main::active_balls#2 active_balls zp[1]:3 56.11111111111111
|
||||||
(byte) main::active_balls#8 active_balls zp[1]:4 37.97297297297297
|
(byte) main::active_balls#8 active_balls zp[1]:3 37.97297297297297
|
||||||
(label) main::enableVideoOutput1
|
(label) main::enableVideoOutput1
|
||||||
(byte) main::h_bar
|
(byte) main::h_bar
|
||||||
(byte) main::h_bar#1 h_bar zp[1]:12 72.8409090909091
|
(byte) main::h_bar#1 h_bar zp[1]:11 72.8409090909091
|
||||||
(byte) main::i
|
(byte) main::i
|
||||||
(byte) main::i#10 i_1 zp[1]:6 258.3225806451613
|
(byte) main::i#10 i zp[1]:5 258.3225806451613
|
||||||
(byte) main::i#14 i zp[1]:2 33.666666666666664
|
(byte) main::i#14 reg byte x 33.666666666666664
|
||||||
(byte) main::i#2 i zp[1]:2 202.0
|
(byte) main::i#2 reg byte x 202.0
|
||||||
(byte) main::i#4 i_1 zp[1]:6 2002.0
|
(byte) main::i#4 i zp[1]:5 2002.0
|
||||||
(label) main::initNES1
|
(label) main::initNES1
|
||||||
(label) main::initNES1_@1
|
(label) main::initNES1_@1
|
||||||
(label) main::initNES1_@7
|
(label) main::initNES1_@7
|
||||||
@ -150,34 +150,34 @@
|
|||||||
(label) main::initNES1_waitForVBlank2_@1
|
(label) main::initNES1_waitForVBlank2_@1
|
||||||
(signed word) main::return
|
(signed word) main::return
|
||||||
(byte) main::sprite_idx
|
(byte) main::sprite_idx
|
||||||
(byte) main::sprite_idx#2 sprite_idx zp[1]:7 1001.0
|
(byte) main::sprite_idx#2 sprite_idx zp[1]:6 1001.0
|
||||||
(byte) main::sprite_idx#3 sprite_idx zp[1]:7 100.1
|
(byte) main::sprite_idx#3 sprite_idx zp[1]:6 100.1
|
||||||
(byte) main::timer
|
(byte) main::timer
|
||||||
(byte) main::timer#1 reg byte x 101.0
|
(byte) main::timer#1 reg byte x 101.0
|
||||||
(byte) main::timer#15 timer zp[1]:5 8.18918918918919
|
(byte) main::timer#15 timer zp[1]:4 8.18918918918919
|
||||||
(byte) main::timer#21 timer zp[1]:5 202.0
|
(byte) main::timer#21 timer zp[1]:4 202.0
|
||||||
(byte) main::timer#3 timer zp[1]:5 57.714285714285715
|
(byte) main::timer#3 timer zp[1]:4 57.714285714285715
|
||||||
(byte) main::timer_2
|
(byte) main::timer_2
|
||||||
(byte) main::timer_2#1 timer_2 zp[1]:3 6.183673469387754
|
(byte) main::timer_2#1 timer_2 zp[1]:2 6.183673469387754
|
||||||
(byte) main::timer_2#2 timer_2 zp[1]:3 202.0
|
(byte) main::timer_2#2 timer_2 zp[1]:2 202.0
|
||||||
(const to_nomodify byte*) palette[] = { (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4 }
|
(const to_nomodify byte*) palette[] = { (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4, (byte) $34, (byte) $24, (byte) $14, (byte) 4 }
|
||||||
(void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size)
|
(void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size)
|
||||||
(label) ppuDataFill::@1
|
(label) ppuDataFill::@1
|
||||||
(label) ppuDataFill::@2
|
(label) ppuDataFill::@2
|
||||||
(label) ppuDataFill::@return
|
(label) ppuDataFill::@return
|
||||||
(word) ppuDataFill::i
|
(word) ppuDataFill::i
|
||||||
(word) ppuDataFill::i#1 i zp[2]:17 2002.0
|
(word) ppuDataFill::i#1 i zp[2]:16 2002.0
|
||||||
(word) ppuDataFill::i#2 i zp[2]:17 1001.0
|
(word) ppuDataFill::i#2 i zp[2]:16 1001.0
|
||||||
(nomodify void*) ppuDataFill::ppuData
|
(nomodify void*) ppuDataFill::ppuData
|
||||||
(label) ppuDataFill::ppuDataPrepare1
|
(label) ppuDataFill::ppuDataPrepare1
|
||||||
(byte~) ppuDataFill::ppuDataPrepare1_$0 reg byte a 202.0
|
(byte~) ppuDataFill::ppuDataPrepare1_$0 reg byte a 202.0
|
||||||
(byte~) ppuDataFill::ppuDataPrepare1_$1 reg byte a 202.0
|
(byte~) ppuDataFill::ppuDataPrepare1_$1 reg byte a 202.0
|
||||||
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData
|
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData
|
||||||
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:13 67.33333333333333
|
(nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:12 67.33333333333333
|
||||||
(label) ppuDataFill::ppuDataPut1
|
(label) ppuDataFill::ppuDataPut1
|
||||||
(byte) ppuDataFill::ppuDataPut1_val
|
(byte) ppuDataFill::ppuDataPut1_val
|
||||||
(word) ppuDataFill::size
|
(word) ppuDataFill::size
|
||||||
(word) ppuDataFill::size#3 size zp[2]:15 111.22222222222223
|
(word) ppuDataFill::size#3 size zp[2]:14 111.22222222222223
|
||||||
(byte) ppuDataFill::val
|
(byte) ppuDataFill::val
|
||||||
(void()) ppuDataTransfer((nomodify void*) ppuDataTransfer::ppuData , (nomodify void*) ppuDataTransfer::cpuData , (word) ppuDataTransfer::size)
|
(void()) ppuDataTransfer((nomodify void*) ppuDataTransfer::ppuData , (nomodify void*) ppuDataTransfer::cpuData , (word) ppuDataTransfer::size)
|
||||||
(label) ppuDataTransfer::@1
|
(label) ppuDataTransfer::@1
|
||||||
@ -186,20 +186,20 @@
|
|||||||
(label) ppuDataTransfer::@4
|
(label) ppuDataTransfer::@4
|
||||||
(label) ppuDataTransfer::@return
|
(label) ppuDataTransfer::@return
|
||||||
(nomodify void*) ppuDataTransfer::cpuData
|
(nomodify void*) ppuDataTransfer::cpuData
|
||||||
(nomodify void*) ppuDataTransfer::cpuData#2 cpuData zp[2]:15
|
(nomodify void*) ppuDataTransfer::cpuData#2 cpuData zp[2]:14
|
||||||
(byte*) ppuDataTransfer::cpuSrc
|
(byte*) ppuDataTransfer::cpuSrc
|
||||||
(byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:15 1001.0
|
(byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:14 1001.0
|
||||||
(byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:15 776.0
|
(byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:14 776.0
|
||||||
(byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:15 202.0
|
(byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:14 202.0
|
||||||
(word) ppuDataTransfer::i
|
(word) ppuDataTransfer::i
|
||||||
(word) ppuDataTransfer::i#1 i zp[2]:17 2002.0
|
(word) ppuDataTransfer::i#1 i zp[2]:16 2002.0
|
||||||
(word) ppuDataTransfer::i#2 i zp[2]:17 600.5999999999999
|
(word) ppuDataTransfer::i#2 i zp[2]:16 600.5999999999999
|
||||||
(nomodify void*) ppuDataTransfer::ppuData
|
(nomodify void*) ppuDataTransfer::ppuData
|
||||||
(label) ppuDataTransfer::ppuDataPrepare1
|
(label) ppuDataTransfer::ppuDataPrepare1
|
||||||
(byte~) ppuDataTransfer::ppuDataPrepare1_$0 reg byte a 202.0
|
(byte~) ppuDataTransfer::ppuDataPrepare1_$0 reg byte a 202.0
|
||||||
(byte~) ppuDataTransfer::ppuDataPrepare1_$1 reg byte a 202.0
|
(byte~) ppuDataTransfer::ppuDataPrepare1_$1 reg byte a 202.0
|
||||||
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData
|
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData
|
||||||
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:13 67.33333333333333
|
(nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:12 67.33333333333333
|
||||||
(label) ppuDataTransfer::ppuDataPut1
|
(label) ppuDataTransfer::ppuDataPut1
|
||||||
(byte) ppuDataTransfer::ppuDataPut1_val
|
(byte) ppuDataTransfer::ppuDataPut1_val
|
||||||
(byte) ppuDataTransfer::ppuDataPut1_val#0 reg byte a 2002.0
|
(byte) ppuDataTransfer::ppuDataPut1_val#0 reg byte a 2002.0
|
||||||
@ -220,57 +220,57 @@
|
|||||||
(word~) rand::$2 zp[2]:32 2002.0
|
(word~) rand::$2 zp[2]:32 2002.0
|
||||||
(label) rand::@return
|
(label) rand::@return
|
||||||
(word) rand::return
|
(word) rand::return
|
||||||
(word) rand::return#0 return zp[2]:26 300.75
|
(word) rand::return#0 return zp[2]:25 300.75
|
||||||
(word) rand::return#2 return zp[2]:26 202.0
|
(word) rand::return#2 return zp[2]:25 202.0
|
||||||
(word) rand::return#3 return zp[2]:26 202.0
|
(word) rand::return#3 return zp[2]:25 202.0
|
||||||
(word) rand_state
|
(word) rand_state
|
||||||
(word) rand_state#0 rand_state zp[2]:8 1501.5
|
(word) rand_state#0 rand_state zp[2]:7 1501.5
|
||||||
(word) rand_state#1 rand_state zp[2]:8 1501.5
|
(word) rand_state#1 rand_state zp[2]:7 1501.5
|
||||||
(word) rand_state#10 rand_state zp[2]:8 1102.0
|
(word) rand_state#10 rand_state zp[2]:7 1102.0
|
||||||
(word) rand_state#11 rand_state zp[2]:8 137.75
|
(word) rand_state#11 rand_state zp[2]:7 137.75
|
||||||
(word) rand_state#17 rand_state zp[2]:8 67.33333333333333
|
(word) rand_state#17 rand_state zp[2]:7 67.33333333333333
|
||||||
(volatile byte) scroll_y loadstore zp[1]:10 105.0
|
(volatile byte) scroll_y loadstore zp[1]:9 105.0
|
||||||
(const to_nomodify byte*) sine_table[(number) $100] = { (byte) $40, (byte) $42, (byte) $43, (byte) $45, (byte) $46, (byte) $48, (byte) $49, (byte) $4b, (byte) $4c, (byte) $4e, (byte) $50, (byte) $51, (byte) $53, (byte) $54, (byte) $56, (byte) $57, (byte) $58, (byte) $5a, (byte) $5b, (byte) $5d, (byte) $5e, (byte) $60, (byte) $61, (byte) $62, (byte) $64, (byte) $65, (byte) $66, (byte) $67, (byte) $69, (byte) $6a, (byte) $6b, (byte) $6c, (byte) $6d, (byte) $6e, (byte) $6f, (byte) $70, (byte) $71, (byte) $72, (byte) $73, (byte) $74, (byte) $75, (byte) $76, (byte) $77, (byte) $78, (byte) $78, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7b, (byte) $7c, (byte) $7c, (byte) $7d, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7d, (byte) $7c, (byte) $7c, (byte) $7b, (byte) $7b, (byte) $7a, (byte) $79, (byte) $78, (byte) $78, (byte) $77, (byte) $76, (byte) $75, (byte) $74, (byte) $73, (byte) $72, (byte) $71, (byte) $70, (byte) $6f, (byte) $6e, (byte) $6d, (byte) $6c, (byte) $6b, (byte) $6a, (byte) $69, (byte) $67, (byte) $66, (byte) $65, (byte) $64, (byte) $62, (byte) $61, (byte) $60, (byte) $5e, (byte) $5d, (byte) $5b, (byte) $5a, (byte) $58, (byte) $57, (byte) $56, (byte) $54, (byte) $53, (byte) $51, (byte) $50, (byte) $4e, (byte) $4c, (byte) $4b, (byte) $49, (byte) $48, (byte) $46, (byte) $45, (byte) $43, (byte) $42, (byte) $40, (byte) $3e, (byte) $3d, (byte) $3b, (byte) $3a, (byte) $38, (byte) $37, (byte) $35, (byte) $34, (byte) $32, (byte) $30, (byte) $2f, (byte) $2d, (byte) $2c, (byte) $2a, (byte) $29, (byte) $28, (byte) $26, (byte) $25, (byte) $23, (byte) $22, (byte) $20, (byte) $1f, (byte) $1e, (byte) $1c, (byte) $1b, (byte) $1a, (byte) $19, (byte) $17, (byte) $16, (byte) $15, (byte) $14, (byte) $13, (byte) $12, (byte) $11, (byte) $10, (byte) $f, (byte) $e, (byte) $d, (byte) $c, (byte) $b, (byte) $a, (byte) 9, (byte) 8, (byte) 8, (byte) 7, (byte) 6, (byte) 5, (byte) 5, (byte) 4, (byte) 4, (byte) 3, (byte) 3, (byte) 2, (byte) 2, (byte) 2, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 2, (byte) 2, (byte) 2, (byte) 3, (byte) 3, (byte) 4, (byte) 4, (byte) 5, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) $e, (byte) $f, (byte) $10, (byte) $11, (byte) $12, (byte) $13, (byte) $14, (byte) $15, (byte) $16, (byte) $17, (byte) $19, (byte) $1a, (byte) $1b, (byte) $1c, (byte) $1e, (byte) $1f, (byte) $20, (byte) $22, (byte) $23, (byte) $25, (byte) $26, (byte) $28, (byte) $29, (byte) $2a, (byte) $2c, (byte) $2d, (byte) $2f, (byte) $30, (byte) $32, (byte) $34, (byte) $35, (byte) $37, (byte) $38, (byte) $3a, (byte) $3b, (byte) $3d, (byte) $3e }
|
(const to_nomodify byte*) sine_table[(number) $100] = { (byte) $40, (byte) $42, (byte) $43, (byte) $45, (byte) $46, (byte) $48, (byte) $49, (byte) $4b, (byte) $4c, (byte) $4e, (byte) $50, (byte) $51, (byte) $53, (byte) $54, (byte) $56, (byte) $57, (byte) $58, (byte) $5a, (byte) $5b, (byte) $5d, (byte) $5e, (byte) $60, (byte) $61, (byte) $62, (byte) $64, (byte) $65, (byte) $66, (byte) $67, (byte) $69, (byte) $6a, (byte) $6b, (byte) $6c, (byte) $6d, (byte) $6e, (byte) $6f, (byte) $70, (byte) $71, (byte) $72, (byte) $73, (byte) $74, (byte) $75, (byte) $76, (byte) $77, (byte) $78, (byte) $78, (byte) $79, (byte) $7a, (byte) $7b, (byte) $7b, (byte) $7c, (byte) $7c, (byte) $7d, (byte) $7d, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $80, (byte) $7f, (byte) $7f, (byte) $7f, (byte) $7e, (byte) $7e, (byte) $7e, (byte) $7d, (byte) $7d, (byte) $7c, (byte) $7c, (byte) $7b, (byte) $7b, (byte) $7a, (byte) $79, (byte) $78, (byte) $78, (byte) $77, (byte) $76, (byte) $75, (byte) $74, (byte) $73, (byte) $72, (byte) $71, (byte) $70, (byte) $6f, (byte) $6e, (byte) $6d, (byte) $6c, (byte) $6b, (byte) $6a, (byte) $69, (byte) $67, (byte) $66, (byte) $65, (byte) $64, (byte) $62, (byte) $61, (byte) $60, (byte) $5e, (byte) $5d, (byte) $5b, (byte) $5a, (byte) $58, (byte) $57, (byte) $56, (byte) $54, (byte) $53, (byte) $51, (byte) $50, (byte) $4e, (byte) $4c, (byte) $4b, (byte) $49, (byte) $48, (byte) $46, (byte) $45, (byte) $43, (byte) $42, (byte) $40, (byte) $3e, (byte) $3d, (byte) $3b, (byte) $3a, (byte) $38, (byte) $37, (byte) $35, (byte) $34, (byte) $32, (byte) $30, (byte) $2f, (byte) $2d, (byte) $2c, (byte) $2a, (byte) $29, (byte) $28, (byte) $26, (byte) $25, (byte) $23, (byte) $22, (byte) $20, (byte) $1f, (byte) $1e, (byte) $1c, (byte) $1b, (byte) $1a, (byte) $19, (byte) $17, (byte) $16, (byte) $15, (byte) $14, (byte) $13, (byte) $12, (byte) $11, (byte) $10, (byte) $f, (byte) $e, (byte) $d, (byte) $c, (byte) $b, (byte) $a, (byte) 9, (byte) 8, (byte) 8, (byte) 7, (byte) 6, (byte) 5, (byte) 5, (byte) 4, (byte) 4, (byte) 3, (byte) 3, (byte) 2, (byte) 2, (byte) 2, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 2, (byte) 2, (byte) 2, (byte) 3, (byte) 3, (byte) 4, (byte) 4, (byte) 5, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 8, (byte) 9, (byte) $a, (byte) $b, (byte) $c, (byte) $d, (byte) $e, (byte) $f, (byte) $10, (byte) $11, (byte) $12, (byte) $13, (byte) $14, (byte) $15, (byte) $16, (byte) $17, (byte) $19, (byte) $1a, (byte) $1b, (byte) $1c, (byte) $1e, (byte) $1f, (byte) $20, (byte) $22, (byte) $23, (byte) $25, (byte) $26, (byte) $28, (byte) $29, (byte) $2a, (byte) $2c, (byte) $2d, (byte) $2f, (byte) $30, (byte) $32, (byte) $34, (byte) $35, (byte) $37, (byte) $38, (byte) $3a, (byte) $3b, (byte) $3d, (byte) $3e }
|
||||||
interrupt(HARDWARE_STACK)(void()) vblank()
|
interrupt(HARDWARE_STACK)(void()) vblank()
|
||||||
(label) vblank::@1
|
(label) vblank::@1
|
||||||
(label) vblank::@return
|
(label) vblank::@return
|
||||||
(label) vblank::ppuSpriteBufferDmaTransfer1
|
(label) vblank::ppuSpriteBufferDmaTransfer1
|
||||||
(struct SpriteData*) vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer
|
(struct SpriteData*) vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer
|
||||||
(volatile byte) vblank_hit loadstore zp[1]:11 10.25925925925926
|
(volatile byte) vblank_hit loadstore zp[1]:10 10.25925925925926
|
||||||
|
|
||||||
reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
|
||||||
zp[1]:2 [ main::i#14 main::i#2 ]
|
reg byte x [ main::i#14 main::i#2 ]
|
||||||
zp[1]:3 [ main::timer_2#2 main::timer_2#1 ]
|
zp[1]:2 [ main::timer_2#2 main::timer_2#1 ]
|
||||||
zp[1]:4 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
zp[1]:3 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
|
||||||
zp[1]:5 [ main::timer#3 main::timer#15 main::timer#21 ]
|
zp[1]:4 [ main::timer#3 main::timer#15 main::timer#21 ]
|
||||||
zp[1]:6 [ main::i#10 main::i#4 ]
|
zp[1]:5 [ main::i#10 main::i#4 ]
|
||||||
zp[1]:7 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
zp[1]:6 [ main::sprite_idx#3 main::sprite_idx#2 ]
|
||||||
zp[2]:8 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
zp[2]:7 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
|
||||||
zp[1]:10 [ scroll_y ]
|
zp[1]:9 [ scroll_y ]
|
||||||
zp[1]:11 [ vblank_hit ]
|
zp[1]:10 [ vblank_hit ]
|
||||||
reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
reg byte a [ main::initNES1_waitForVBlank1_$0 ]
|
||||||
reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
reg byte a [ main::initNES1_waitForVBlank2_$0 ]
|
||||||
zp[1]:12 [ main::h_bar#1 ]
|
zp[1]:11 [ main::h_bar#1 ]
|
||||||
reg byte a [ main::$14 ]
|
reg byte a [ main::$14 ]
|
||||||
reg byte x [ main::timer#1 ]
|
reg byte x [ main::timer#1 ]
|
||||||
reg byte x [ main::$38 ]
|
reg byte x [ main::$38 ]
|
||||||
reg byte y [ main::$40 ]
|
reg byte y [ main::$40 ]
|
||||||
zp[2]:13 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
zp[2]:12 [ main::$20 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
|
||||||
reg byte a [ main::$45 ]
|
reg byte a [ main::$45 ]
|
||||||
reg byte y [ main::$44 ]
|
reg byte y [ main::$44 ]
|
||||||
zp[2]:15 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
zp[2]:14 [ main::$23 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
|
||||||
zp[2]:17 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
zp[2]:16 [ main::$25 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
|
||||||
zp[1]:19 [ main::$26 ]
|
zp[1]:18 [ main::$26 ]
|
||||||
reg byte y [ main::$53 ]
|
reg byte y [ main::$53 ]
|
||||||
reg byte a [ main::$30 ]
|
reg byte a [ main::$30 ]
|
||||||
zp[2]:20 [ main::$56 main::$31 ]
|
zp[2]:19 [ main::$56 main::$31 ]
|
||||||
reg byte y [ main::$50 ]
|
reg byte y [ main::$50 ]
|
||||||
zp[2]:22 [ main::$32 ]
|
zp[2]:21 [ main::$32 ]
|
||||||
reg byte x [ main::$48 ]
|
reg byte x [ main::$48 ]
|
||||||
zp[2]:24 [ main::$33 ]
|
zp[2]:23 [ main::$33 ]
|
||||||
zp[2]:26 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
zp[2]:25 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
|
||||||
reg byte a [ main::$35 ]
|
reg byte a [ main::$35 ]
|
||||||
reg byte x [ main::$12 ]
|
zp[1]:27 [ main::$12 ]
|
||||||
reg byte a [ main::$36 ]
|
reg byte a [ main::$36 ]
|
||||||
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
|
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
|
||||||
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
|
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
|
||||||
|
@ -101,6 +101,8 @@ init: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// i*8
|
// i*8
|
||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
@ -199,6 +201,8 @@ loop: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// mulf8s(r, SIN[a])
|
// mulf8s(r, SIN[a])
|
||||||
lda.z r
|
lda.z r
|
||||||
ldy.z a
|
ldy.z a
|
||||||
|
@ -3381,11 +3381,11 @@ init: {
|
|||||||
asl
|
asl
|
||||||
sta.z __9
|
sta.z __9
|
||||||
// [24] *((const word*) PLEX_XPOS + (byte~) init::$9) ← (byte~) init::$4 -- pwuc1_derefidx_vbuz1=vbuz2
|
// [24] *((const word*) PLEX_XPOS + (byte~) init::$9) ← (byte~) init::$4 -- pwuc1_derefidx_vbuz1=vbuz2
|
||||||
lda.z __9
|
lda.z __4
|
||||||
ldx.z __4
|
ldy.z __9
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuz1=vbuz2_rol_3
|
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuz1=vbuz2_rol_3
|
||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
@ -3576,11 +3576,11 @@ loop: {
|
|||||||
asl
|
asl
|
||||||
sta.z __20
|
sta.z __20
|
||||||
// [56] *((const word*) PLEX_XPOS + (byte~) loop::$20) ← (byte~) loop::$4 -- pwuc1_derefidx_vbuz1=vbuz2
|
// [56] *((const word*) PLEX_XPOS + (byte~) loop::$20) ← (byte~) loop::$4 -- pwuc1_derefidx_vbuz1=vbuz2
|
||||||
lda.z __20
|
lda.z __4
|
||||||
ldx.z __4
|
ldy.z __20
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsz1=vbsz2
|
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsz1=vbsz2
|
||||||
lda.z r
|
lda.z r
|
||||||
sta.z mulf8s.a
|
sta.z mulf8s.a
|
||||||
@ -5057,97 +5057,97 @@ Uplift Scope [MOS6581_SID]
|
|||||||
Uplift Scope [main]
|
Uplift Scope [main]
|
||||||
Uplift Scope [__start]
|
Uplift Scope [__start]
|
||||||
|
|
||||||
Uplifting [plexSort] best 105188 combination 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 [ plexSort::s#2 ] zp[1]:28 [ plexSort::m#2 plexSort::m#1 ] zp[1]:76 [ plexSort::nxt_y#0 ] zp[1]:75 [ plexSort::nxt_idx#0 ]
|
Uplifting [plexSort] best 105518 combination 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 [ plexSort::s#2 ] zp[1]:28 [ plexSort::m#2 plexSort::m#1 ] zp[1]:76 [ plexSort::nxt_y#0 ] zp[1]:75 [ plexSort::nxt_idx#0 ]
|
||||||
Limited combination testing to 100 combinations of 972 possible.
|
Limited combination testing to 100 combinations of 972 possible.
|
||||||
Uplifting [mulf8u_prepared] best 105182 combination reg byte a [ mulf8u_prepared::b#0 ] zp[2]:101 [ mulf8u_prepared::return#0 ] zp[2]:94 [ mulf8u_prepared::return#2 ]
|
Uplifting [mulf8u_prepared] best 105512 combination reg byte a [ mulf8u_prepared::b#0 ] zp[2]:101 [ mulf8u_prepared::return#0 ] zp[2]:94 [ mulf8u_prepared::return#2 ]
|
||||||
Uplifting [mulf8s_prepared] best 105158 combination zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$6 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$9 ] reg byte a [ mulf8s_prepared::$12 ] zp[1]:72 [ mulf8s_prepared::b#0 ]
|
Uplifting [mulf8s_prepared] best 105488 combination zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$6 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$9 ] reg byte a [ mulf8s_prepared::$12 ] zp[1]:72 [ mulf8s_prepared::b#0 ]
|
||||||
Limited combination testing to 100 combinations of 512 possible.
|
Limited combination testing to 100 combinations of 512 possible.
|
||||||
Uplifting [plexShowSprite] best 105138 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1 ] reg byte a [ plexShowSprite::plexFreeAdd1_$2 ] reg byte a [ plexShowSprite::xpos_idx#0 ] zp[1]:85 [ plexShowSprite::$2 ] zp[1]:86 [ plexShowSprite::$3 ] zp[1]:87 [ plexShowSprite::$9 ] zp[1]:88 [ plexShowSprite::$5 ] zp[1]:89 [ plexShowSprite::$6 ] zp[1]:79 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp[1]:84 [ plexShowSprite::$11 ] zp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
Uplifting [plexShowSprite] best 105468 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1 ] reg byte a [ plexShowSprite::plexFreeAdd1_$2 ] reg byte a [ plexShowSprite::xpos_idx#0 ] zp[1]:85 [ plexShowSprite::$2 ] zp[1]:86 [ plexShowSprite::$3 ] zp[1]:87 [ plexShowSprite::$9 ] zp[1]:88 [ plexShowSprite::$5 ] zp[1]:89 [ plexShowSprite::$6 ] zp[1]:79 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp[1]:84 [ plexShowSprite::$11 ] zp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
||||||
Limited combination testing to 100 combinations of 1572864 possible.
|
Limited combination testing to 100 combinations of 1572864 possible.
|
||||||
Uplifting [mulf8u_prepare] best 105132 combination reg byte a [ mulf8u_prepare::a#0 ]
|
Uplifting [mulf8u_prepare] best 105462 combination reg byte a [ mulf8u_prepare::a#0 ]
|
||||||
Uplifting [loop] best 103332 combination zp[1]:63 [ loop::plexFreeNextYpos1_return#0 ] zp[2]:45 [ loop::$1 ] zp[2]:47 [ loop::$2 ] zp[2]:49 [ loop::x#0 ] reg byte a [ loop::$20 ] zp[2]:55 [ loop::$5 ] zp[2]:57 [ loop::$6 ] zp[2]:59 [ loop::y#0 ] reg byte a [ loop::$8 ] reg byte a [ loop::$11 ] zp[1]:8 [ loop::i1#5 loop::i1#1 ] zp[1]:7 [ loop::i#2 loop::i#1 ] zp[1]:51 [ loop::$4 ] zp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ] zp[1]:5 [ loop::r#2 loop::r#1 ] zp[1]:65 [ loop::$18 ] zp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
Uplifting [loop] best 103862 combination zp[1]:63 [ loop::plexFreeNextYpos1_return#0 ] zp[2]:45 [ loop::$1 ] zp[2]:47 [ loop::$2 ] zp[2]:49 [ loop::x#0 ] reg byte a [ loop::$20 ] zp[2]:55 [ loop::$5 ] zp[2]:57 [ loop::$6 ] zp[2]:59 [ loop::y#0 ] reg byte a [ loop::$8 ] reg byte a [ loop::$11 ] zp[1]:8 [ loop::i1#5 loop::i1#1 ] zp[1]:7 [ loop::i#2 loop::i#1 ] zp[1]:51 [ loop::$4 ] zp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ] zp[1]:5 [ loop::r#2 loop::r#1 ] zp[1]:65 [ loop::$18 ] zp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
||||||
Limited combination testing to 100 combinations of 24576 possible.
|
Limited combination testing to 100 combinations of 24576 possible.
|
||||||
Uplifting [mulf_init] best 103082 combination zp[2]:22 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] zp[2]:16 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp[2]:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$1 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$5 ] zp[1]:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ] zp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ] zp[2]:19 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp[2]:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
Uplifting [mulf_init] best 103612 combination zp[2]:22 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] zp[2]:16 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp[2]:10 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$1 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$5 ] zp[1]:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ] zp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ] zp[2]:19 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp[2]:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
||||||
Limited combination testing to 100 combinations of 1024 possible.
|
Limited combination testing to 100 combinations of 1024 possible.
|
||||||
Uplifting [mulf8s] best 101876 combination reg byte x [ mulf8s::b#2 mulf8s::b#1 mulf8s::b#0 ] reg byte a [ mulf8s::mulf8s_prepare1_a#0 mulf8s::a#1 mulf8s::a#0 ] zp[2]:73 [ mulf8s::return#0 ] zp[2]:43 [ mulf8s::return#2 ] zp[2]:53 [ mulf8s::return#3 ]
|
Uplifting [mulf8s] best 102406 combination reg byte x [ mulf8s::b#2 mulf8s::b#1 mulf8s::b#0 ] reg byte a [ mulf8s::mulf8s_prepare1_a#0 mulf8s::a#1 mulf8s::a#0 ] zp[2]:73 [ mulf8s::return#0 ] zp[2]:43 [ mulf8s::return#2 ] zp[2]:53 [ mulf8s::return#3 ]
|
||||||
Uplifting [keyboard_matrix_read] best 101864 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
|
Uplifting [keyboard_matrix_read] best 102394 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
|
||||||
Uplifting [] best 101864 combination zp[1]:35 [ plex_sprite_msb ] zp[1]:33 [ plex_show_idx ] zp[1]:34 [ plex_sprite_idx ] zp[1]:36 [ plex_free_next ]
|
Uplifting [] best 102394 combination zp[1]:35 [ plex_sprite_msb ] zp[1]:33 [ plex_show_idx ] zp[1]:34 [ plex_sprite_idx ] zp[1]:36 [ plex_free_next ]
|
||||||
Uplifting [plexInit] best 101744 combination reg byte x [ plexInit::i#2 plexInit::i#1 ]
|
Uplifting [plexInit] best 102274 combination reg byte x [ plexInit::i#2 plexInit::i#1 ]
|
||||||
Uplifting [memset] best 101744 combination zp[2]:24 [ memset::dst#2 memset::dst#1 ]
|
Uplifting [memset] best 102274 combination zp[2]:24 [ memset::dst#2 memset::dst#1 ]
|
||||||
Uplifting [keyboard_key_pressed] best 101555 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#2 ]
|
Uplifting [keyboard_key_pressed] best 102085 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#2 ]
|
||||||
Limited combination testing to 100 combinations of 256 possible.
|
Limited combination testing to 100 combinations of 256 possible.
|
||||||
Uplifting [init] best 101335 combination reg byte x [ init::i1#2 init::i1#1 ] zp[1]:2 [ init::i#2 init::i#1 ] reg byte a [ init::$10 ] reg byte a [ init::$3 ] zp[1]:40 [ init::$9 ] zp[1]:41 [ init::$5 ] zp[1]:42 [ init::$6 ] zp[1]:39 [ init::$4 ]
|
Uplifting [init] best 101865 combination reg byte x [ init::i1#2 init::i1#1 ] zp[1]:2 [ init::i#2 init::i#1 ] reg byte a [ init::$10 ] reg byte a [ init::$3 ] zp[1]:40 [ init::$9 ] zp[1]:41 [ init::$5 ] zp[1]:42 [ init::$6 ] zp[1]:39 [ init::$4 ]
|
||||||
Limited combination testing to 100 combinations of 27648 possible.
|
Limited combination testing to 100 combinations of 27648 possible.
|
||||||
Uplifting [exit] best 101275 combination reg byte a [ exit::$0 ]
|
Uplifting [exit] best 101805 combination reg byte a [ exit::$0 ]
|
||||||
Uplifting [MOS6526_CIA] best 101275 combination
|
Uplifting [MOS6526_CIA] best 101805 combination
|
||||||
Uplifting [MOS6569_VICII] best 101275 combination
|
Uplifting [MOS6569_VICII] best 101805 combination
|
||||||
Uplifting [MOS6581_SID] best 101275 combination
|
Uplifting [MOS6581_SID] best 101805 combination
|
||||||
Uplifting [main] best 101275 combination
|
Uplifting [main] best 101805 combination
|
||||||
Uplifting [__start] best 101275 combination
|
Uplifting [__start] best 101805 combination
|
||||||
Attempting to uplift remaining variables inzp[1]:28 [ plexSort::m#2 plexSort::m#1 ]
|
Attempting to uplift remaining variables inzp[1]:28 [ plexSort::m#2 plexSort::m#1 ]
|
||||||
Uplifting [plexSort] best 101275 combination zp[1]:28 [ plexSort::m#2 plexSort::m#1 ]
|
Uplifting [plexSort] best 101805 combination zp[1]:28 [ plexSort::m#2 plexSort::m#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:76 [ plexSort::nxt_y#0 ]
|
Attempting to uplift remaining variables inzp[1]:76 [ plexSort::nxt_y#0 ]
|
||||||
Uplifting [plexSort] best 101275 combination zp[1]:76 [ plexSort::nxt_y#0 ]
|
Uplifting [plexSort] best 101805 combination zp[1]:76 [ plexSort::nxt_y#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:75 [ plexSort::nxt_idx#0 ]
|
Attempting to uplift remaining variables inzp[1]:75 [ plexSort::nxt_idx#0 ]
|
||||||
Uplifting [plexSort] best 101275 combination zp[1]:75 [ plexSort::nxt_idx#0 ]
|
Uplifting [plexSort] best 101805 combination zp[1]:75 [ plexSort::nxt_idx#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:85 [ plexShowSprite::$2 ]
|
Attempting to uplift remaining variables inzp[1]:85 [ plexShowSprite::$2 ]
|
||||||
Uplifting [plexShowSprite] best 101269 combination reg byte a [ plexShowSprite::$2 ]
|
Uplifting [plexShowSprite] best 101799 combination reg byte a [ plexShowSprite::$2 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:86 [ plexShowSprite::$3 ]
|
Attempting to uplift remaining variables inzp[1]:86 [ plexShowSprite::$3 ]
|
||||||
Uplifting [plexShowSprite] best 101263 combination reg byte a [ plexShowSprite::$3 ]
|
Uplifting [plexShowSprite] best 101793 combination reg byte a [ plexShowSprite::$3 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:87 [ plexShowSprite::$9 ]
|
Attempting to uplift remaining variables inzp[1]:87 [ plexShowSprite::$9 ]
|
||||||
Uplifting [plexShowSprite] best 101257 combination reg byte a [ plexShowSprite::$9 ]
|
Uplifting [plexShowSprite] best 101787 combination reg byte a [ plexShowSprite::$9 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:88 [ plexShowSprite::$5 ]
|
Attempting to uplift remaining variables inzp[1]:88 [ plexShowSprite::$5 ]
|
||||||
Uplifting [plexShowSprite] best 101251 combination reg byte x [ plexShowSprite::$5 ]
|
Uplifting [plexShowSprite] best 101781 combination reg byte x [ plexShowSprite::$5 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:89 [ plexShowSprite::$6 ]
|
Attempting to uplift remaining variables inzp[1]:89 [ plexShowSprite::$6 ]
|
||||||
Uplifting [plexShowSprite] best 101247 combination reg byte a [ plexShowSprite::$6 ]
|
Uplifting [plexShowSprite] best 101777 combination reg byte a [ plexShowSprite::$6 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:79 [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
Attempting to uplift remaining variables inzp[1]:79 [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
||||||
Uplifting [plexShowSprite] best 101238 combination reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
Uplifting [plexShowSprite] best 101768 combination reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:72 [ mulf8s_prepared::b#0 ]
|
Attempting to uplift remaining variables inzp[1]:72 [ mulf8s_prepared::b#0 ]
|
||||||
Uplifting [mulf8s_prepared] best 101238 combination zp[1]:72 [ mulf8s_prepared::b#0 ]
|
Uplifting [mulf8s_prepared] best 101768 combination zp[1]:72 [ mulf8s_prepared::b#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:84 [ plexShowSprite::$11 ]
|
Attempting to uplift remaining variables inzp[1]:84 [ plexShowSprite::$11 ]
|
||||||
Uplifting [plexShowSprite] best 101231 combination reg byte x [ plexShowSprite::$11 ]
|
Uplifting [plexShowSprite] best 101761 combination reg byte x [ plexShowSprite::$11 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:63 [ loop::plexFreeNextYpos1_return#0 ]
|
Attempting to uplift remaining variables inzp[1]:63 [ loop::plexFreeNextYpos1_return#0 ]
|
||||||
Uplifting [loop] best 101231 combination zp[1]:63 [ loop::plexFreeNextYpos1_return#0 ]
|
Uplifting [loop] best 101761 combination zp[1]:63 [ loop::plexFreeNextYpos1_return#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
Attempting to uplift remaining variables inzp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
||||||
Uplifting [plexShowSprite] best 101231 combination zp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
Uplifting [plexShowSprite] best 101761 combination zp[1]:78 [ plexShowSprite::plex_sprite_idx2#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:8 [ loop::i1#5 loop::i1#1 ]
|
Attempting to uplift remaining variables inzp[1]:8 [ loop::i1#5 loop::i1#1 ]
|
||||||
Uplifting [loop] best 101231 combination zp[1]:8 [ loop::i1#5 loop::i1#1 ]
|
Uplifting [loop] best 101761 combination zp[1]:8 [ loop::i1#5 loop::i1#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:7 [ loop::i#2 loop::i#1 ]
|
Attempting to uplift remaining variables inzp[1]:7 [ loop::i#2 loop::i#1 ]
|
||||||
Uplifting [loop] best 101231 combination zp[1]:7 [ loop::i#2 loop::i#1 ]
|
Uplifting [loop] best 101761 combination zp[1]:7 [ loop::i#2 loop::i#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
Attempting to uplift remaining variables inzp[1]:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||||
Uplifting [mulf_init] best 101091 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
Uplifting [mulf_init] best 101621 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
Attempting to uplift remaining variables inzp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
||||||
Uplifting [mulf_init] best 101091 combination zp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
Uplifting [mulf_init] best 101621 combination zp[1]:21 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:35 [ plex_sprite_msb ]
|
Attempting to uplift remaining variables inzp[1]:35 [ plex_sprite_msb ]
|
||||||
Uplifting [] best 101091 combination zp[1]:35 [ plex_sprite_msb ]
|
Uplifting [] best 101621 combination zp[1]:35 [ plex_sprite_msb ]
|
||||||
Attempting to uplift remaining variables inzp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ]
|
Attempting to uplift remaining variables inzp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ]
|
||||||
Uplifting [mulf_init] best 101091 combination zp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ]
|
Uplifting [mulf_init] best 101621 combination zp[1]:12 [ mulf_init::c#2 mulf_init::c#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:33 [ plex_show_idx ]
|
Attempting to uplift remaining variables inzp[1]:33 [ plex_show_idx ]
|
||||||
Uplifting [] best 101091 combination zp[1]:33 [ plex_show_idx ]
|
Uplifting [] best 101621 combination zp[1]:33 [ plex_show_idx ]
|
||||||
Attempting to uplift remaining variables inzp[1]:51 [ loop::$4 ]
|
Attempting to uplift remaining variables inzp[1]:51 [ loop::$4 ]
|
||||||
Uplifting [loop] best 100491 combination reg byte x [ loop::$4 ]
|
Uplifting [loop] best 101221 combination reg byte x [ loop::$4 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ]
|
Attempting to uplift remaining variables inzp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ]
|
||||||
Uplifting [loop] best 100491 combination zp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ]
|
Uplifting [loop] best 101221 combination zp[1]:6 [ loop::a#2 loop::a#1 loop::a#6 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:34 [ plex_sprite_idx ]
|
Attempting to uplift remaining variables inzp[1]:34 [ plex_sprite_idx ]
|
||||||
Uplifting [] best 100491 combination zp[1]:34 [ plex_sprite_idx ]
|
Uplifting [] best 101221 combination zp[1]:34 [ plex_sprite_idx ]
|
||||||
Attempting to uplift remaining variables inzp[1]:5 [ loop::r#2 loop::r#1 ]
|
Attempting to uplift remaining variables inzp[1]:5 [ loop::r#2 loop::r#1 ]
|
||||||
Uplifting [loop] best 100491 combination zp[1]:5 [ loop::r#2 loop::r#1 ]
|
Uplifting [loop] best 101221 combination zp[1]:5 [ loop::r#2 loop::r#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:36 [ plex_free_next ]
|
Attempting to uplift remaining variables inzp[1]:36 [ plex_free_next ]
|
||||||
Uplifting [] best 100491 combination zp[1]:36 [ plex_free_next ]
|
Uplifting [] best 101221 combination zp[1]:36 [ plex_free_next ]
|
||||||
Attempting to uplift remaining variables inzp[1]:2 [ init::i#2 init::i#1 ]
|
Attempting to uplift remaining variables inzp[1]:2 [ init::i#2 init::i#1 ]
|
||||||
Uplifting [init] best 100491 combination zp[1]:2 [ init::i#2 init::i#1 ]
|
Uplifting [init] best 101221 combination zp[1]:2 [ init::i#2 init::i#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:40 [ init::$9 ]
|
Attempting to uplift remaining variables inzp[1]:40 [ init::$9 ]
|
||||||
Uplifting [init] best 100431 combination reg byte a [ init::$9 ]
|
Uplifting [init] best 101181 combination reg byte a [ init::$9 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:41 [ init::$5 ]
|
Attempting to uplift remaining variables inzp[1]:41 [ init::$5 ]
|
||||||
Uplifting [init] best 100391 combination reg byte a [ init::$5 ]
|
Uplifting [init] best 101141 combination reg byte a [ init::$5 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:42 [ init::$6 ]
|
Attempting to uplift remaining variables inzp[1]:42 [ init::$6 ]
|
||||||
Uplifting [init] best 100331 combination reg byte a [ init::$6 ]
|
Uplifting [init] best 101081 combination reg byte a [ init::$6 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:65 [ loop::$18 ]
|
Attempting to uplift remaining variables inzp[1]:65 [ loop::$18 ]
|
||||||
Uplifting [loop] best 100271 combination reg byte a [ loop::$18 ]
|
Uplifting [loop] best 101021 combination reg byte a [ loop::$18 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:39 [ init::$4 ]
|
Attempting to uplift remaining variables inzp[1]:39 [ init::$4 ]
|
||||||
Uplifting [init] best 100211 combination reg byte x [ init::$4 ]
|
Uplifting [init] best 100981 combination reg byte x [ init::$4 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
Attempting to uplift remaining variables inzp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
||||||
Uplifting [loop] best 100211 combination zp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
Uplifting [loop] best 100981 combination zp[1]:4 [ loop::angle#6 loop::angle#1 ]
|
||||||
Coalescing zero page register [ zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] ] with [ zp[2]:73 [ mulf8s::return#0 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] ] with [ zp[2]:73 [ mulf8s::return#0 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 ] ] with [ zp[2]:94 [ mulf8u_prepared::return#2 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:31 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 mulf8s::return#0 ] ] with [ zp[2]:94 [ mulf8u_prepared::return#2 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[2]:43 [ mulf8s::return#2 ] ] with [ zp[2]:45 [ loop::$1 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:43 [ mulf8s::return#2 ] ] with [ zp[2]:45 [ loop::$1 ] ] - score: 1
|
||||||
@ -5342,6 +5342,8 @@ init: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
@ -5508,6 +5510,8 @@ loop: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsaa=vbsz1
|
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsaa=vbsz1
|
||||||
lda.z r
|
lda.z r
|
||||||
// [58] (signed byte) mulf8s::b#1 ← *((const signed byte*) SIN + (byte) loop::a#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
// [58] (signed byte) mulf8s::b#1 ← *((const signed byte*) SIN + (byte) loop::a#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
||||||
@ -7150,7 +7154,7 @@ reg byte a [ keyboard_matrix_read::return#0 ]
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 74020
|
Score: 74790
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Same animation using a multiplexer
|
// Same animation using a multiplexer
|
||||||
@ -7299,6 +7303,8 @@ init: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// i*8
|
// i*8
|
||||||
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
// [25] (byte~) init::$5 ← (byte) init::i#2 << (byte) 3 -- vbuaa=vbuz1_rol_3
|
||||||
lda.z i
|
lda.z i
|
||||||
@ -7455,6 +7461,8 @@ loop: {
|
|||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta PLEX_XPOS,y
|
sta PLEX_XPOS,y
|
||||||
|
lda #0
|
||||||
|
sta PLEX_XPOS+1,y
|
||||||
// mulf8s(r, SIN[a])
|
// mulf8s(r, SIN[a])
|
||||||
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsaa=vbsz1
|
// [57] (signed byte) mulf8s::a#1 ← (signed byte) loop::r#2 -- vbsaa=vbsz1
|
||||||
lda.z r
|
lda.z r
|
||||||
|
@ -62,10 +62,10 @@ main: {
|
|||||||
// entities[i] =0
|
// entities[i] =0
|
||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
ldx #0
|
|
||||||
tay
|
tay
|
||||||
txa
|
lda #0
|
||||||
sta entities,y
|
sta entities,y
|
||||||
|
sta entities+1,y
|
||||||
__b6:
|
__b6:
|
||||||
// line[entities[i]] = '*'
|
// line[entities[i]] = '*'
|
||||||
lda.z i
|
lda.z i
|
||||||
|
@ -393,11 +393,11 @@ main: {
|
|||||||
asl
|
asl
|
||||||
sta.z __8
|
sta.z __8
|
||||||
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuz1=vbuc2
|
||||||
lda.z __8
|
lda #0
|
||||||
ldx #0
|
ldy.z __8
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta entities,y
|
sta entities,y
|
||||||
|
lda #0
|
||||||
|
sta entities+1,y
|
||||||
jmp __b6
|
jmp __b6
|
||||||
// main::@6
|
// main::@6
|
||||||
__b6:
|
__b6:
|
||||||
@ -481,13 +481,13 @@ REGISTER UPLIFT SCOPES
|
|||||||
Uplift Scope [main] 248.62: zp[1]:2 [ main::i#2 main::i#1 ] 202: zp[1]:6 [ main::$9 ] 202: zp[1]:7 [ main::$8 ] 202: zp[1]:8 [ main::$7 ] 202: zp[2]:9 [ main::$11 ] 134.67: zp[2]:3 [ main::line#2 main::line#1 ] 101: zp[1]:5 [ main::$5 ]
|
Uplift Scope [main] 248.62: zp[1]:2 [ main::i#2 main::i#1 ] 202: zp[1]:6 [ main::$9 ] 202: zp[1]:7 [ main::$8 ] 202: zp[1]:8 [ main::$7 ] 202: zp[2]:9 [ main::$11 ] 134.67: zp[2]:3 [ main::line#2 main::line#1 ] 101: zp[1]:5 [ main::$5 ]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [main] best 19305 combination zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$9 ] reg byte a [ main::$8 ] reg byte a [ main::$7 ] zp[2]:9 [ main::$11 ] zp[2]:3 [ main::line#2 main::line#1 ] zp[1]:5 [ main::$5 ]
|
Uplifting [main] best 19805 combination zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$9 ] reg byte a [ main::$8 ] reg byte a [ main::$7 ] zp[2]:9 [ main::$11 ] zp[2]:3 [ main::line#2 main::line#1 ] zp[1]:5 [ main::$5 ]
|
||||||
Limited combination testing to 100 combinations of 384 possible.
|
Limited combination testing to 100 combinations of 384 possible.
|
||||||
Uplifting [] best 19305 combination
|
Uplifting [] best 19805 combination
|
||||||
Attempting to uplift remaining variables inzp[1]:2 [ main::i#2 main::i#1 ]
|
Attempting to uplift remaining variables inzp[1]:2 [ main::i#2 main::i#1 ]
|
||||||
Uplifting [main] best 19305 combination zp[1]:2 [ main::i#2 main::i#1 ]
|
Uplifting [main] best 19805 combination zp[1]:2 [ main::i#2 main::i#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:5 [ main::$5 ]
|
Attempting to uplift remaining variables inzp[1]:5 [ main::$5 ]
|
||||||
Uplifting [main] best 18305 combination reg byte x [ main::$5 ]
|
Uplifting [main] best 18805 combination reg byte x [ main::$5 ]
|
||||||
Allocated (was zp[2]:9) zp[2]:5 [ main::$11 ]
|
Allocated (was zp[2]:9) zp[2]:5 [ main::$11 ]
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
@ -580,10 +580,11 @@ main: {
|
|||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuaa=vbuc2
|
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuaa=vbuc2
|
||||||
ldx #0
|
|
||||||
tay
|
tay
|
||||||
txa
|
lda #0
|
||||||
sta entities,y
|
sta entities,y
|
||||||
|
lda #0
|
||||||
|
sta entities+1,y
|
||||||
jmp __b6
|
jmp __b6
|
||||||
// main::@6
|
// main::@6
|
||||||
__b6:
|
__b6:
|
||||||
@ -632,6 +633,8 @@ Removing instruction jmp __b5
|
|||||||
Removing instruction jmp __b7
|
Removing instruction jmp __b7
|
||||||
Removing instruction jmp __b6
|
Removing instruction jmp __b6
|
||||||
Succesful ASM optimization Pass5NextJumpElimination
|
Succesful ASM optimization Pass5NextJumpElimination
|
||||||
|
Removing instruction lda #0
|
||||||
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
||||||
Removing instruction __b2:
|
Removing instruction __b2:
|
||||||
Removing instruction __b3_from___b2:
|
Removing instruction __b3_from___b2:
|
||||||
Removing instruction __b5:
|
Removing instruction __b5:
|
||||||
@ -674,7 +677,7 @@ zp[2]:5 [ main::$11 ]
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 16802
|
Score: 17102
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Test that the multiplication of a idx*sizeof(element) is reused inside loops
|
// Test that the multiplication of a idx*sizeof(element) is reused inside loops
|
||||||
@ -765,10 +768,10 @@ main: {
|
|||||||
lda.z i
|
lda.z i
|
||||||
asl
|
asl
|
||||||
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuaa=vbuc2
|
// [12] *((const word*) entities + (byte~) main::$8) ← (byte) 0 -- pwuc1_derefidx_vbuaa=vbuc2
|
||||||
ldx #0
|
|
||||||
tay
|
tay
|
||||||
txa
|
lda #0
|
||||||
sta entities,y
|
sta entities,y
|
||||||
|
sta entities+1,y
|
||||||
// main::@6
|
// main::@6
|
||||||
__b6:
|
__b6:
|
||||||
// line[entities[i]] = '*'
|
// line[entities[i]] = '*'
|
||||||
|
@ -4,23 +4,25 @@
|
|||||||
.pc = $80d "Program"
|
.pc = $80d "Program"
|
||||||
main: {
|
main: {
|
||||||
.label screen = $400
|
.label screen = $400
|
||||||
.label b = 2
|
.label __0 = 2
|
||||||
lda #0
|
ldy #0
|
||||||
sta.z b
|
|
||||||
__b1:
|
__b1:
|
||||||
// -0x30+b
|
// -0x30+b
|
||||||
lax.z b
|
tya
|
||||||
axs #-[-$30]
|
clc
|
||||||
|
adc #-$30
|
||||||
|
sta.z __0
|
||||||
// screen[b] = -0x30+b
|
// screen[b] = -0x30+b
|
||||||
lda.z b
|
tya
|
||||||
asl
|
asl
|
||||||
tay
|
tax
|
||||||
txa
|
lda.z __0
|
||||||
sta screen,y
|
sta screen,x
|
||||||
|
lda #0
|
||||||
|
sta screen+1,x
|
||||||
// for( byte b: 0..20)
|
// for( byte b: 0..20)
|
||||||
inc.z b
|
iny
|
||||||
lda #$15
|
cpy #$15
|
||||||
cmp.z b
|
|
||||||
bne __b1
|
bne __b1
|
||||||
// }
|
// }
|
||||||
rts
|
rts
|
||||||
|
@ -163,11 +163,11 @@ main: {
|
|||||||
asl
|
asl
|
||||||
sta.z __2
|
sta.z __2
|
||||||
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuz1=vbuz2
|
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuz1=vbuz2
|
||||||
lda.z __2
|
lda.z __0
|
||||||
ldx.z __0
|
ldy.z __2
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta screen,y
|
sta screen,y
|
||||||
|
lda #0
|
||||||
|
sta screen+1,y
|
||||||
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1
|
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1
|
||||||
inc.z b
|
inc.z b
|
||||||
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuz1_neq_vbuc1_then_la1
|
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuz1_neq_vbuc1_then_la1
|
||||||
@ -198,10 +198,11 @@ REGISTER UPLIFT SCOPES
|
|||||||
Uplift Scope [main] 27.5: zp[1]:2 [ main::b#2 main::b#1 ] 22: zp[1]:4 [ main::$2 ] 11: zp[1]:3 [ main::$0 ]
|
Uplift Scope [main] 27.5: zp[1]:2 [ main::b#2 main::b#1 ] 22: zp[1]:4 [ main::$2 ] 11: zp[1]:3 [ main::$0 ]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [main] best 461 combination zp[1]:2 [ main::b#2 main::b#1 ] reg byte a [ main::$2 ] reg byte x [ main::$0 ]
|
Uplifting [main] best 481 combination reg byte y [ main::b#2 main::b#1 ] reg byte x [ main::$2 ] zp[1]:3 [ main::$0 ]
|
||||||
Uplifting [] best 461 combination
|
Uplifting [] best 481 combination
|
||||||
Attempting to uplift remaining variables inzp[1]:2 [ main::b#2 main::b#1 ]
|
Attempting to uplift remaining variables inzp[1]:3 [ main::$0 ]
|
||||||
Uplifting [main] best 461 combination zp[1]:2 [ main::b#2 main::b#1 ]
|
Uplifting [main] best 481 combination zp[1]:3 [ main::$0 ]
|
||||||
|
Allocated (was zp[1]:3) zp[1]:2 [ main::$0 ]
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
// File Comments
|
// File Comments
|
||||||
@ -214,12 +215,11 @@ ASSEMBLER BEFORE OPTIMIZATION
|
|||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
.label screen = $400
|
.label screen = $400
|
||||||
.label b = 2
|
.label __0 = 2
|
||||||
// [1] phi from main to main::@1 [phi:main->main::@1]
|
// [1] phi from main to main::@1 [phi:main->main::@1]
|
||||||
__b1_from_main:
|
__b1_from_main:
|
||||||
// [1] phi (byte) main::b#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1
|
// [1] phi (byte) main::b#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
|
||||||
lda #0
|
ldy #0
|
||||||
sta.z b
|
|
||||||
jmp __b1
|
jmp __b1
|
||||||
// [1] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
|
// [1] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
|
||||||
__b1_from___b1:
|
__b1_from___b1:
|
||||||
@ -227,21 +227,24 @@ main: {
|
|||||||
jmp __b1
|
jmp __b1
|
||||||
// main::@1
|
// main::@1
|
||||||
__b1:
|
__b1:
|
||||||
// [2] (byte~) main::$0 ← (byte) -$30 + (byte) main::b#2 -- vbuxx=vbuc1_plus_vbuz1
|
// [2] (byte~) main::$0 ← (byte) -$30 + (byte) main::b#2 -- vbuz1=vbuc1_plus_vbuyy
|
||||||
lax.z b
|
tya
|
||||||
axs #-[-$30]
|
clc
|
||||||
// [3] (byte~) main::$2 ← (byte) main::b#2 << (byte) 1 -- vbuaa=vbuz1_rol_1
|
adc #-$30
|
||||||
lda.z b
|
sta.z __0
|
||||||
|
// [3] (byte~) main::$2 ← (byte) main::b#2 << (byte) 1 -- vbuxx=vbuyy_rol_1
|
||||||
|
tya
|
||||||
asl
|
asl
|
||||||
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuaa=vbuxx
|
tax
|
||||||
tay
|
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuxx=vbuz1
|
||||||
txa
|
lda.z __0
|
||||||
sta screen,y
|
sta screen,x
|
||||||
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1
|
lda #0
|
||||||
inc.z b
|
sta screen+1,x
|
||||||
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuz1_neq_vbuc1_then_la1
|
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy
|
||||||
lda #$15
|
iny
|
||||||
cmp.z b
|
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuyy_neq_vbuc1_then_la1
|
||||||
|
cpy #$15
|
||||||
bne __b1_from___b1
|
bne __b1_from___b1
|
||||||
jmp __breturn
|
jmp __breturn
|
||||||
// main::@return
|
// main::@return
|
||||||
@ -266,22 +269,22 @@ Succesful ASM optimization Pass5NextJumpElimination
|
|||||||
|
|
||||||
FINAL SYMBOL TABLE
|
FINAL SYMBOL TABLE
|
||||||
(void()) main()
|
(void()) main()
|
||||||
(byte~) main::$0 reg byte x 11.0
|
(byte~) main::$0 zp[1]:2 11.0
|
||||||
(byte~) main::$2 reg byte a 22.0
|
(byte~) main::$2 reg byte x 22.0
|
||||||
(label) main::@1
|
(label) main::@1
|
||||||
(label) main::@return
|
(label) main::@return
|
||||||
(byte) main::b
|
(byte) main::b
|
||||||
(byte) main::b#1 b zp[1]:2 16.5
|
(byte) main::b#1 reg byte y 16.5
|
||||||
(byte) main::b#2 b zp[1]:2 11.0
|
(byte) main::b#2 reg byte y 11.0
|
||||||
(const nomodify word*) main::screen = (word*) 1024
|
(const nomodify word*) main::screen = (word*) 1024
|
||||||
|
|
||||||
zp[1]:2 [ main::b#2 main::b#1 ]
|
reg byte y [ main::b#2 main::b#1 ]
|
||||||
reg byte x [ main::$0 ]
|
zp[1]:2 [ main::$0 ]
|
||||||
reg byte a [ main::$2 ]
|
reg byte x [ main::$2 ]
|
||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 371
|
Score: 391
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Test inference of integer types in expressions
|
// Test inference of integer types in expressions
|
||||||
@ -293,33 +296,35 @@ Score: 371
|
|||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
.label screen = $400
|
.label screen = $400
|
||||||
.label b = 2
|
.label __0 = 2
|
||||||
// [1] phi from main to main::@1 [phi:main->main::@1]
|
// [1] phi from main to main::@1 [phi:main->main::@1]
|
||||||
// [1] phi (byte) main::b#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1
|
// [1] phi (byte) main::b#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
|
||||||
lda #0
|
ldy #0
|
||||||
sta.z b
|
|
||||||
// [1] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
|
// [1] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
|
||||||
// [1] phi (byte) main::b#2 = (byte) main::b#1 [phi:main::@1->main::@1#0] -- register_copy
|
// [1] phi (byte) main::b#2 = (byte) main::b#1 [phi:main::@1->main::@1#0] -- register_copy
|
||||||
// main::@1
|
// main::@1
|
||||||
__b1:
|
__b1:
|
||||||
// -0x30+b
|
// -0x30+b
|
||||||
// [2] (byte~) main::$0 ← (byte) -$30 + (byte) main::b#2 -- vbuxx=vbuc1_plus_vbuz1
|
// [2] (byte~) main::$0 ← (byte) -$30 + (byte) main::b#2 -- vbuz1=vbuc1_plus_vbuyy
|
||||||
lax.z b
|
tya
|
||||||
axs #-[-$30]
|
clc
|
||||||
|
adc #-$30
|
||||||
|
sta.z __0
|
||||||
// screen[b] = -0x30+b
|
// screen[b] = -0x30+b
|
||||||
// [3] (byte~) main::$2 ← (byte) main::b#2 << (byte) 1 -- vbuaa=vbuz1_rol_1
|
// [3] (byte~) main::$2 ← (byte) main::b#2 << (byte) 1 -- vbuxx=vbuyy_rol_1
|
||||||
lda.z b
|
tya
|
||||||
asl
|
asl
|
||||||
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuaa=vbuxx
|
tax
|
||||||
tay
|
// [4] *((const nomodify word*) main::screen + (byte~) main::$2) ← (byte~) main::$0 -- pwuc1_derefidx_vbuxx=vbuz1
|
||||||
txa
|
lda.z __0
|
||||||
sta screen,y
|
sta screen,x
|
||||||
|
lda #0
|
||||||
|
sta screen+1,x
|
||||||
// for( byte b: 0..20)
|
// for( byte b: 0..20)
|
||||||
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1
|
// [5] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy
|
||||||
inc.z b
|
iny
|
||||||
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuz1_neq_vbuc1_then_la1
|
// [6] if((byte) main::b#1!=(byte) $15) goto main::@1 -- vbuyy_neq_vbuc1_then_la1
|
||||||
lda #$15
|
cpy #$15
|
||||||
cmp.z b
|
|
||||||
bne __b1
|
bne __b1
|
||||||
// main::@return
|
// main::@return
|
||||||
// }
|
// }
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
(void()) main()
|
(void()) main()
|
||||||
(byte~) main::$0 reg byte x 11.0
|
(byte~) main::$0 zp[1]:2 11.0
|
||||||
(byte~) main::$2 reg byte a 22.0
|
(byte~) main::$2 reg byte x 22.0
|
||||||
(label) main::@1
|
(label) main::@1
|
||||||
(label) main::@return
|
(label) main::@return
|
||||||
(byte) main::b
|
(byte) main::b
|
||||||
(byte) main::b#1 b zp[1]:2 16.5
|
(byte) main::b#1 reg byte y 16.5
|
||||||
(byte) main::b#2 b zp[1]:2 11.0
|
(byte) main::b#2 reg byte y 11.0
|
||||||
(const nomodify word*) main::screen = (word*) 1024
|
(const nomodify word*) main::screen = (word*) 1024
|
||||||
|
|
||||||
zp[1]:2 [ main::b#2 main::b#1 ]
|
reg byte y [ main::b#2 main::b#1 ]
|
||||||
reg byte x [ main::$0 ]
|
zp[1]:2 [ main::$0 ]
|
||||||
reg byte a [ main::$2 ]
|
reg byte x [ main::$2 ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user