1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-01-11 20:30:08 +00:00

Updated test data

This commit is contained in:
Jesper Gravgaard 2020-10-01 11:01:49 +02:00
parent cd2dcd1614
commit 5c2d1c48d9
4 changed files with 2160 additions and 2024 deletions

View File

@ -1,13 +1,3 @@
//#pragma emulator("java -jar /Applications/Nintaco_bin_2020-05-01/Nintaco.jar")
// Nintendo Entertainment System (NES
// https://en.wikipedia.org/wiki/Nintendo_Entertainment_System_(Model_NES-101)
// https://github.com/gregkrsak/first_nes
// Ricoh 2C02 - NES Picture Processing Unit (PPU)
// Ricoh RP2C02 (NTSC version) / RP2C07 (PAL version),
// https://en.wikipedia.org/wiki/Picture_Processing_Unit
// https://wiki.nesdev.com/w/index.php/PPU_registers
// http://nesdev.com/2C02%20technical%20reference.TXT
// Based on: https://github.com/gregkrsak/first_nes written by Greg M. Krsak, 2018.
// Nintendo Entertainment System (NES) ROM (Mapper 0 NROM, Vertical Mirroring) // Nintendo Entertainment System (NES) ROM (Mapper 0 NROM, Vertical Mirroring)
// https://sadistech.com/nesromtool/romdoc.html // https://sadistech.com/nesromtool/romdoc.html
// https://forums.nesdev.com/viewtopic.php?f=2&t=9896 // https://forums.nesdev.com/viewtopic.php?f=2&t=9896
@ -76,10 +66,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 = $c .label scroll_y = $d
.label vblank_hit = $d .label vblank_hit = $e
// The random state variable // The random state variable
.label rand_state = $a .label rand_state = $b
.segment Code .segment Code
__start: { __start: {
// scroll_y = 0 // scroll_y = 0
@ -121,46 +111,49 @@ vblank: {
rti rti
} }
main: { main: {
.label __9 = $36 .label __9 = $3b
.label __10 = $36 .label __10 = $3b
.label __11 = $36 .label __11 = $3b
.label __20 = $21 .label __20 = $26
.label __23 = $27 .label __23 = $2c
.label __25 = $29 .label __25 = $2e
.label __26 = $2b .label __26 = $30
.label __31 = $30 .label __31 = $35
.label __32 = $34 .label __32 = $39
.label __33 = $f .label __33 = $14
.label __36 = $38 .label __36 = $3d
.label __44 = $f .label __38 = $10
.label __56 = $30 .label __44 = $14
.label __56 = $35
.label i = 2 .label i = 2
.label timer_2 = 4 .label timer_2 = 4
.label h_bar = $e .label h_bar = $f
.label active_balls = 5 .label active_balls = 5
.label sprite_idx = 9 .label sprite_idx = $a
.label i_1 = 7 .label i_1 = 8
.label timer = 6 .label timer = 7
.label __59 = $3a .label __59 = $3f
.label __60 = $38 .label __60 = $3d
.label __61 = $11 .label __61 = $12
.label __62 = $13 .label __62 = $10
.label __63 = $15 .label __63 = $16
.label __64 = $17 .label __64 = $18
.label __65 = $19 .label __65 = $1a
.label __66 = $1b .label __66 = $1c
.label __67 = $1d .label __67 = $1e
.label __68 = $1f .label __68 = $20
.label __69 = $21 .label __69 = $22
.label __70 = $27 .label __70 = $24
.label __71 = $29 .label __71 = $26
.label __72 = $23 .label __72 = $2c
.label __73 = $25 .label __73 = $2e
.label __74 = $34 .label __74 = $28
.label __75 = $f .label __75 = $2a
.label __76 = $2c .label __76 = $39
.label __77 = $2e .label __77 = $14
.label __78 = $32 .label __78 = $31
.label __79 = $33
.label __80 = $37
// asm // asm
cld cld
ldx #$ff ldx #$ff
@ -287,6 +280,7 @@ main: {
lda #0 lda #0
sta.z timer sta.z timer
sta.z active_balls sta.z active_balls
sta.z active_balls+1
sta.z timer_2 sta.z timer_2
__b4: __b4:
// timer_2++; // timer_2++;
@ -303,9 +297,12 @@ main: {
// scroll_y = h_bar ^ 0xFF // scroll_y = h_bar ^ 0xFF
sta.z scroll_y sta.z scroll_y
// if (active_balls < MAX_BALLS) // if (active_balls < MAX_BALLS)
lda.z active_balls+1
bne __b5
lda.z active_balls lda.z active_balls
cmp #$32 cmp #$32
bcs __b5 bcs __b5
!:
// if (timer++ == RELEASE_TIMER) // if (timer++ == RELEASE_TIMER)
ldx.z timer ldx.z timer
inx inx
@ -316,18 +313,47 @@ main: {
!__b25: !__b25:
// active_balls++; // active_balls++;
inc.z active_balls inc.z active_balls
bne !+
inc.z active_balls+1
!:
// balls[active_balls].x_position = 0 // balls[active_balls].x_position = 0
lda.z active_balls lda.z active_balls
asl asl
asl sta.z __38
asl lda.z active_balls+1
tax rol
sta.z __38+1
asl.z __38
rol.z __38+1
asl.z __38
rol.z __38+1
lda.z __38
clc
adc #<balls
sta.z __61
lda.z __38+1
adc #>balls
sta.z __61+1
lda #0 lda #0
sta balls,x tay
sta balls+1,x sta (__61),y
tya
iny
sta (__61),y
// balls[active_balls].y_position = 0 // balls[active_balls].y_position = 0
sta balls+2,x clc
sta balls+2+1,x lda.z __62
adc #<balls+2
sta.z __62
lda.z __62+1
adc #>balls+2
sta.z __62+1
lda #0
tay
sta (__62),y
tya
iny
sta (__62),y
sta.z timer sta.z timer
__b5: __b5:
lda #0 lda #0
@ -337,6 +363,8 @@ main: {
__b6: __b6:
// for (i = 0; i < active_balls; i++) // for (i = 0; i < active_balls; i++)
lda.z i_1+1 lda.z i_1+1
cmp.z active_balls+1
bcc __b7
bne !+ bne !+
lda.z i_1 lda.z i_1
cmp.z active_balls cmp.z active_balls
@ -372,64 +400,40 @@ main: {
lda.z __44 lda.z __44
clc clc
adc #<balls adc #<balls
sta.z __61
lda.z __44+1
adc #>balls
sta.z __61+1
lda.z __44
clc
adc #<balls+4
sta.z __62
lda.z __44+1
adc #>balls+4
sta.z __62+1
lda.z __44
clc
adc #<balls
sta.z __63 sta.z __63
lda.z __44+1 lda.z __44+1
adc #>balls adc #>balls
sta.z __63+1 sta.z __63+1
ldy #0 lda.z __44
lda (__61),y
clc clc
adc (__62),y adc #<balls+4
sta (__63),y sta.z __64
lda.z __44+1
adc #>balls+4
sta.z __64+1
lda.z __44
clc
adc #<balls
sta.z __65
lda.z __44+1
adc #>balls
sta.z __65+1
ldy #0
lda (__63),y
clc
adc (__64),y
sta (__65),y
iny iny
lda (__61),y lda (__63),y
adc (__62),y adc (__64),y
sta (__63),y sta (__65),y
// balls[i].y_velocity += WEIGHT // balls[i].y_velocity += WEIGHT
lda.z __44 lda.z __44
clc clc
adc #<balls+6 adc #<balls+6
sta.z __64
lda.z __44+1
adc #>balls+6
sta.z __64+1
lda.z __44
clc
adc #<balls+6
sta.z __65
lda.z __44+1
adc #>balls+6
sta.z __65+1
ldy #0
lda (__64),y
clc
adc #<$10
sta (__65),y
iny
lda (__64),y
adc #>$10
sta (__65),y
// balls[i].y_position += (balls[i].y_velocity += WEIGHT)
lda.z __44
clc
adc #<balls+2
sta.z __66 sta.z __66
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+6
sta.z __66+1 sta.z __66+1
lda.z __44 lda.z __44
clc clc
@ -438,6 +442,16 @@ main: {
lda.z __44+1 lda.z __44+1
adc #>balls+6 adc #>balls+6
sta.z __67+1 sta.z __67+1
ldy #0
lda (__66),y
clc
adc #<$10
sta (__67),y
iny
lda (__66),y
adc #>$10
sta (__67),y
// balls[i].y_position += (balls[i].y_velocity += WEIGHT)
lda.z __44 lda.z __44
clc clc
adc #<balls+2 adc #<balls+2
@ -445,23 +459,37 @@ main: {
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+2
sta.z __68+1 sta.z __68+1
ldy #0 lda.z __44
lda (__66),y
clc clc
adc (__67),y adc #<balls+6
sta (__68),y sta.z __69
lda.z __44+1
adc #>balls+6
sta.z __69+1
lda.z __44
clc
adc #<balls+2
sta.z __70
lda.z __44+1
adc #>balls+2
sta.z __70+1
ldy #0
lda (__68),y
clc
adc (__69),y
sta (__70),y
iny iny
lda (__66),y lda (__68),y
adc (__67),y adc (__69),y
sta (__68),y sta (__70),y
// balls[i].x_position >> 8 // balls[i].x_position >> 8
lda.z __44 lda.z __44
clc clc
adc #<balls adc #<balls
sta.z __69 sta.z __71
lda.z __44+1 lda.z __44+1
adc #>balls adc #>balls
sta.z __69+1 sta.z __71+1
ldy #1 ldy #1
lda (__20),y lda (__20),y
sta.z __20 sta.z __20
@ -478,34 +506,34 @@ main: {
lda.z __44 lda.z __44
clc clc
adc #<balls+4 adc #<balls+4
sta.z __72 sta.z __74
lda.z __44+1 lda.z __44+1
adc #>balls+4 adc #>balls+4
sta.z __72+1 sta.z __74+1
lda.z __44 lda.z __44
clc clc
adc #<balls+4 adc #<balls+4
sta.z __73 sta.z __75
lda.z __44+1 lda.z __44+1
adc #>balls+4 adc #>balls+4
sta.z __73+1 sta.z __75+1
ldy #0 ldy #0
lda #<$ffff lda #<$ffff
eor (__72),y eor (__74),y
sta (__73),y sta (__75),y
iny iny
lda #>$ffff lda #>$ffff
eor (__72),y eor (__74),y
sta (__73),y sta (__75),y
__b9: __b9:
// balls[i].y_position >> 8 // balls[i].y_position >> 8
lda.z __44 lda.z __44
clc clc
adc #<balls+2 adc #<balls+2
sta.z __70 sta.z __72
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+2
sta.z __70+1 sta.z __72+1
ldy #1 ldy #1
lda (__23),y lda (__23),y
sta.z __23 sta.z __23
@ -514,10 +542,10 @@ main: {
lda.z __44 lda.z __44
clc clc
adc #<balls+2 adc #<balls+2
sta.z __71 sta.z __73
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+2
sta.z __71+1 sta.z __73+1
ldy #1 ldy #1
lda (__25),y lda (__25),y
sta.z __25 sta.z __25
@ -544,25 +572,25 @@ main: {
lda.z __44 lda.z __44
clc clc
adc #<balls+6 adc #<balls+6
sta.z __76 sta.z __78
lda.z __44+1 lda.z __44+1
adc #>balls+6 adc #>balls+6
sta.z __76+1 sta.z __78+1
lda.z __44 lda.z __44
clc clc
adc #<balls+6 adc #<balls+6
sta.z __77 sta.z __79
lda.z __44+1 lda.z __44+1
adc #>balls+6 adc #>balls+6
sta.z __77+1 sta.z __79+1
ldy #0 ldy #0
lda #<$ffff lda #<$ffff
eor (__76),y eor (__78),y
sta (__77),y sta (__79),y
iny iny
lda #>$ffff lda #>$ffff
eor (__76),y eor (__78),y
sta (__77),y sta (__79),y
// h_bar - 2 // h_bar - 2
lda.z h_bar lda.z h_bar
sec sec
@ -579,25 +607,25 @@ main: {
lda.z __44 lda.z __44
clc clc
adc #<balls+2 adc #<balls+2
sta.z __78 sta.z __80
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+2
sta.z __78+1 sta.z __80+1
ldy #0 ldy #0
lda.z __31 lda.z __31
sta (__78),y sta (__80),y
iny iny
lda.z __31+1 lda.z __31+1
sta (__78),y sta (__80),y
__b10: __b10:
// balls[i].y_position >> 8 // balls[i].y_position >> 8
lda.z __44 lda.z __44
clc clc
adc #<balls+2 adc #<balls+2
sta.z __74 sta.z __76
lda.z __44+1 lda.z __44+1
adc #>balls+2 adc #>balls+2
sta.z __74+1 sta.z __76+1
ldy #1 ldy #1
lda (__32),y lda (__32),y
sta.z __32 sta.z __32
@ -618,12 +646,12 @@ main: {
sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES,x sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES,x
// balls[i].x_position >> 8 // balls[i].x_position >> 8
clc clc
lda.z __75 lda.z __77
adc #<balls adc #<balls
sta.z __75 sta.z __77
lda.z __75+1 lda.z __77+1
adc #>balls adc #>balls
sta.z __75+1 sta.z __77+1
ldy #1 ldy #1
lda (__33),y lda (__33),y
sta.z __33 sta.z __33
@ -709,12 +737,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($11) cpuData) // ppuDataTransfer(void* zp($12) cpuData)
ppuDataTransfer: { ppuDataTransfer: {
.label ppuDataPrepare1_ppuData = $f .label ppuDataPrepare1_ppuData = $10
.label cpuSrc = $11 .label cpuSrc = $12
.label i = $13 .label i = $14
.label cpuData = $11 .label cpuData = $12
// >ppuData // >ppuData
lda.z ppuDataPrepare1_ppuData+1 lda.z ppuDataPrepare1_ppuData+1
// PPU->PPUADDR = >ppuData // PPU->PPUADDR = >ppuData
@ -757,11 +785,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($11) size) // ppuDataFill(word zp($12) size)
ppuDataFill: { ppuDataFill: {
.label ppuDataPrepare1_ppuData = $f .label ppuDataPrepare1_ppuData = $10
.label i = $13 .label i = $14
.label size = $11 .label size = $12
// >ppuData // >ppuData
lda.z ppuDataPrepare1_ppuData+1 lda.z ppuDataPrepare1_ppuData+1
// PPU->PPUADDR = >ppuData // PPU->PPUADDR = >ppuData
@ -802,10 +830,10 @@ ppuDataFill: {
// Information https://en.wikipedia.org/wiki/Xorshift // Information https://en.wikipedia.org/wiki/Xorshift
// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html // Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html
rand: { rand: {
.label __0 = $3c .label __0 = $41
.label __1 = $3e .label __1 = $43
.label __2 = $40 .label __2 = $45
.label return = $36 .label return = $3b
// rand_state << 7 // rand_state << 7
lda.z rand_state+1 lda.z rand_state+1
lsr lsr

View File

@ -109,7 +109,7 @@ main::@1: scope:[main] from main::@18 main::@23
to:main::@3 to:main::@3
main::@3: scope:[main] from main::@1 main::@14 main::@3: scope:[main] from main::@1 main::@14
[50] (byte) main::timer#3 ← phi( main::@1/(byte) 0 main::@14/(byte) main::timer#15 ) [50] (byte) main::timer#3 ← phi( main::@1/(byte) 0 main::@14/(byte) main::timer#15 )
[50] (byte) main::active_balls#2 ← phi( main::@1/(byte) 0 main::@14/(byte) main::active_balls#8 ) [50] (word) main::active_balls#2 ← phi( main::@1/(word) 0 main::@14/(word) main::active_balls#8 )
[50] (byte) main::timer_2#2 ← phi( main::@1/(byte) 0 main::@14/(byte) main::timer_2#1 ) [50] (byte) main::timer_2#2 ← phi( main::@1/(byte) 0 main::@14/(byte) main::timer_2#1 )
to:main::@4 to:main::@4
main::@4: scope:[main] from main::@3 main::@4: scope:[main] from main::@3
@ -117,187 +117,189 @@ main::@4: scope:[main] from main::@3
[52] (byte) main::h_bar#1 ← *((const to_nomodify byte*) sine_table + (byte) main::timer_2#1) + (byte) $60 [52] (byte) main::h_bar#1 ← *((const to_nomodify byte*) sine_table + (byte) main::timer_2#1) + (byte) $60
[53] (byte~) main::$14 ← (byte) main::h_bar#1 ^ (byte) $ff [53] (byte~) main::$14 ← (byte) main::h_bar#1 ^ (byte) $ff
[54] (volatile byte) scroll_y ← (byte~) main::$14 [54] (volatile byte) scroll_y ← (byte~) main::$14
[55] if((byte) main::active_balls#2>=(byte) $32) goto main::@5 [55] if((word) main::active_balls#2>=(byte) $32) goto main::@5
to:main::@15 to:main::@15
main::@15: scope:[main] from main::@4 main::@15: scope:[main] from main::@4
[56] (byte) main::timer#1 ← ++ (byte) main::timer#3 [56] (byte) main::timer#1 ← ++ (byte) main::timer#3
[57] if((byte) main::timer#3!=(byte) 9) goto main::@25 [57] if((byte) main::timer#3!=(byte) 9) goto main::@25
to:main::@16 to:main::@16
main::@16: scope:[main] from main::@15 main::@16: scope:[main] from main::@15
[58] (byte) main::active_balls#1 ← ++ (byte) main::active_balls#2 [58] (word) main::active_balls#1 ← ++ (word) main::active_balls#2
[59] (byte~) main::$38 ← (byte) main::active_balls#1 << (byte) 3 [59] (word~) main::$38 ← (word) main::active_balls#1 << (byte) 3
[60] *((word*)(const struct $0*) balls + (byte~) main::$38) ← (byte) 0 [60] (word*~) main::$61 ← (word*)(const struct $0*) balls + (word~) main::$38
[61] *((word*)(const struct $0*) balls+(byte) 2 + (byte~) main::$38) ← (byte) 0 [61] *((word*~) main::$61) ← (byte) 0
[62] (word*~) main::$62 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$38
[63] *((word*~) main::$62) ← (byte) 0
to:main::@5 to:main::@5
main::@5: scope:[main] from main::@16 main::@25 main::@4 main::@5: scope:[main] from main::@16 main::@25 main::@4
[62] (byte) main::timer#15 ← phi( main::@25/(byte) main::timer#21 main::@16/(byte) 0 main::@4/(byte) main::timer#3 ) [64] (byte) main::timer#15 ← phi( main::@25/(byte) main::timer#21 main::@16/(byte) 0 main::@4/(byte) main::timer#3 )
[62] (byte) main::active_balls#8 ← phi( main::@25/(byte) main::active_balls#2 main::@16/(byte) main::active_balls#1 main::@4/(byte) main::active_balls#2 ) [64] (word) main::active_balls#8 ← phi( main::@25/(word) main::active_balls#2 main::@16/(word) main::active_balls#1 main::@4/(word) main::active_balls#2 )
to:main::@6 to:main::@6
main::@6: scope:[main] from main::@10 main::@5 main::@6: scope:[main] from main::@10 main::@5
[63] (byte) main::sprite_idx#3 ← phi( main::@10/(byte) main::sprite_idx#2 main::@5/(byte) 0 ) [65] (byte) main::sprite_idx#3 ← phi( main::@10/(byte) main::sprite_idx#2 main::@5/(byte) 0 )
[63] (word) main::i#10 ← phi( main::@10/(word) main::i#4 main::@5/(byte) 0 ) [65] (word) main::i#10 ← phi( main::@10/(word) main::i#4 main::@5/(byte) 0 )
[64] if((word) main::i#10<(byte) main::active_balls#8) goto main::@7 [66] if((word) main::i#10<(word) main::active_balls#8) goto main::@7
to:main::@8 to:main::@8
main::@8: scope:[main] from main::@6 main::@8: scope:[main] from main::@6
[65] *((byte*) 8193) ← (byte) $98 [67] *((byte*) 8193) ← (byte) $98
to:main::@13 to:main::@13
main::@13: scope:[main] from main::@13 main::@8 main::@13: scope:[main] from main::@13 main::@8
[66] if((byte) 0==(volatile byte) vblank_hit) goto main::@13 [68] if((byte) 0==(volatile byte) vblank_hit) goto main::@13
to:main::@14 to:main::@14
main::@14: scope:[main] from main::@13 main::@14: scope:[main] from main::@13
[67] (volatile byte) vblank_hit ← (byte) 0 [69] (volatile byte) vblank_hit ← (byte) 0
[68] *((byte*) 8193) ← (byte) $18 [70] *((byte*) 8193) ← (byte) $18
to:main::@3 to:main::@3
main::@7: scope:[main] from main::@6 main::@7: scope:[main] from main::@6
[69] (word~) main::$44 ← (word) main::i#10 << (byte) 3 [71] (word~) main::$44 ← (word) main::i#10 << (byte) 3
[70] (word*~) main::$61 ← (word*)(const struct $0*) balls + (word~) main::$44
[71] (word*~) main::$62 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44
[72] (word*~) main::$63 ← (word*)(const struct $0*) balls + (word~) main::$44 [72] (word*~) main::$63 ← (word*)(const struct $0*) balls + (word~) main::$44
[73] *((word*~) main::$63) ← *((word*~) main::$61) + *((word*~) main::$62) [73] (word*~) main::$64 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44
[74] (word*~) main::$64 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44 [74] (word*~) main::$65 ← (word*)(const struct $0*) balls + (word~) main::$44
[75] (word*~) main::$65 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44 [75] *((word*~) main::$65) ← *((word*~) main::$63) + *((word*~) main::$64)
[76] *((word*~) main::$65) ← *((word*~) main::$64) + (byte) $10 [76] (word*~) main::$66 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44
[77] (word*~) main::$66 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [77] (word*~) main::$67 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44
[78] (word*~) main::$67 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44 [78] *((word*~) main::$67) ← *((word*~) main::$66) + (byte) $10
[79] (word*~) main::$68 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [79] (word*~) main::$68 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[80] *((word*~) main::$68) ← *((word*~) main::$66) + *((word*~) main::$67) [80] (word*~) main::$69 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44
[81] (word*~) main::$69 ← (word*)(const struct $0*) balls + (word~) main::$44 [81] (word*~) main::$70 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[82] (word~) main::$20 ← *((word*~) main::$69) >> (byte) 8 [82] *((word*~) main::$70) ← *((word*~) main::$68) + *((word*~) main::$69)
[83] if((word~) main::$20>=(byte) 8) goto main::@9 [83] (word*~) main::$71 ← (word*)(const struct $0*) balls + (word~) main::$44
[84] (word~) main::$20 ← *((word*~) main::$71) >> (byte) 8
[85] if((word~) main::$20>=(byte) 8) goto main::@9
to:main::@11 to:main::@11
main::@11: scope:[main] from main::@7 main::@11: scope:[main] from main::@7
[84] (word*~) main::$72 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44 [86] (word*~) main::$74 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44
[85] (word*~) main::$73 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44 [87] (word*~) main::$75 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$44
[86] *((word*~) main::$73) ← *((word*~) main::$72) ^ (word) $ffff [88] *((word*~) main::$75) ← *((word*~) main::$74) ^ (word) $ffff
to:main::@9 to:main::@9
main::@9: scope:[main] from main::@11 main::@7 main::@9: scope:[main] from main::@11 main::@7
[87] (word*~) main::$70 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [89] (word*~) main::$72 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[88] (word~) main::$23 ← *((word*~) main::$70) >> (byte) 8 [90] (word~) main::$23 ← *((word*~) main::$72) >> (byte) 8
[89] (word*~) main::$71 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [91] (word*~) main::$73 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[90] (word~) main::$25 ← *((word*~) main::$71) >> (byte) 8 [92] (word~) main::$25 ← *((word*~) main::$73) >> (byte) 8
[91] (byte~) main::$26 ← (byte) main::h_bar#1 + (byte) 8 [93] (byte~) main::$26 ← (byte) main::h_bar#1 + (byte) 8
[92] if((word~) main::$23<(byte) main::h_bar#1) goto main::@10 [94] if((word~) main::$23<(byte) main::h_bar#1) goto main::@10
to:main::@24 to:main::@24
main::@24: scope:[main] from main::@9 main::@24: scope:[main] from main::@9
[93] if((word~) main::$25>=(byte~) main::$26) goto main::@10 [95] if((word~) main::$25>=(byte~) main::$26) goto main::@10
to:main::@12 to:main::@12
main::@12: scope:[main] from main::@24 main::@12: scope:[main] from main::@24
[94] (word*~) main::$76 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44 [96] (word*~) main::$78 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44
[95] (word*~) main::$77 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44 [97] (word*~) main::$79 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$44
[96] *((word*~) main::$77) ← *((word*~) main::$76) ^ (word) $ffff [98] *((word*~) main::$79) ← *((word*~) main::$78) ^ (word) $ffff
[97] (byte~) main::$30 ← (byte) main::h_bar#1 - (byte) 2 [99] (byte~) main::$30 ← (byte) main::h_bar#1 - (byte) 2
[98] (word~) main::$56 ← (word)(byte~) main::$30 [100] (word~) main::$56 ← (word)(byte~) main::$30
[99] (word~) main::$31 ← (word~) main::$56 << (byte) 8 [101] (word~) main::$31 ← (word~) main::$56 << (byte) 8
[100] (word*~) main::$78 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [102] (word*~) main::$80 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[101] *((word*~) main::$78) ← (word~) main::$31 [103] *((word*~) main::$80) ← (word~) main::$31
to:main::@10 to:main::@10
main::@10: scope:[main] from main::@12 main::@24 main::@9 main::@10: scope:[main] from main::@12 main::@24 main::@9
[102] (word*~) main::$74 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44 [104] (word*~) main::$76 ← (word*)(const struct $0*) balls+(byte) 2 + (word~) main::$44
[103] (word~) main::$32 ← *((word*~) main::$74) >> (byte) 8 [105] (word~) main::$32 ← *((word*~) main::$76) >> (byte) 8
[104] (byte~) main::$48 ← (byte) main::sprite_idx#3 << (byte) 2 [106] (byte~) main::$48 ← (byte) main::sprite_idx#3 << (byte) 2
[105] *((byte*)(const struct SpriteData*) SPRITE_BUFFER + (byte~) main::$48) ← (byte)(word~) main::$32 [107] *((byte*)(const struct SpriteData*) SPRITE_BUFFER + (byte~) main::$48) ← (byte)(word~) main::$32
[106] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_TILE + (byte~) main::$48) ← (byte) $a [108] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_TILE + (byte~) main::$48) ← (byte) $a
[107] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES + (byte~) main::$48) ← (byte) 3 [109] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES + (byte~) main::$48) ← (byte) 3
[108] (word*~) main::$75 ← (word*)(const struct $0*) balls + (word~) main::$44 [110] (word*~) main::$77 ← (word*)(const struct $0*) balls + (word~) main::$44
[109] (word~) main::$33 ← *((word*~) main::$75) >> (byte) 8 [111] (word~) main::$33 ← *((word*~) main::$77) >> (byte) 8
[110] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_X + (byte~) main::$48) ← (byte)(word~) main::$33 [112] *((byte*)(const struct SpriteData*) SPRITE_BUFFER+(const byte) OFFSET_STRUCT_SPRITEDATA_X + (byte~) main::$48) ← (byte)(word~) main::$33
[111] (byte) main::sprite_idx#2 ← ++ (byte) main::sprite_idx#3 [113] (byte) main::sprite_idx#2 ← ++ (byte) main::sprite_idx#3
[112] (word) main::i#4 ← ++ (word) main::i#10 [114] (word) main::i#4 ← ++ (word) main::i#10
to:main::@6 to:main::@6
main::@25: scope:[main] from main::@15 main::@25: scope:[main] from main::@15
[113] (byte) main::timer#21 ← (byte) main::timer#1 [115] (byte) main::timer#21 ← (byte) main::timer#1
to:main::@5 to:main::@5
main::@2: scope:[main] from main::@1 main::@2: scope:[main] from main::@1
[114] phi() [116] phi()
[115] call rand [117] call rand
[116] (word) rand::return#2 ← (word) rand::return#0 [118] (word) rand::return#2 ← (word) rand::return#0
to:main::@22 to:main::@22
main::@22: scope:[main] from main::@2 main::@22: scope:[main] from main::@2
[117] (word~) main::$9 ← (word) rand::return#2 [119] (word~) main::$9 ← (word) rand::return#2
[118] (word~) main::$10 ← (word~) main::$9 & (word) $3ff [120] (word~) main::$10 ← (word~) main::$9 & (word) $3ff
[119] (word~) main::$36 ← (word) main::i#14 << (byte) 3 [121] (word~) main::$36 ← (word) main::i#14 << (byte) 3
[120] (word*~) main::$59 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$36 [122] (word*~) main::$59 ← (word*)(const struct $0*) balls+(byte) 4 + (word~) main::$36
[121] *((word*~) main::$59) ← (word~) main::$10 [123] *((word*~) main::$59) ← (word~) main::$10
[122] call rand [124] call rand
[123] (word) rand::return#3 ← (word) rand::return#0 [125] (word) rand::return#3 ← (word) rand::return#0
to:main::@23 to:main::@23
main::@23: scope:[main] from main::@22 main::@23: scope:[main] from main::@22
[124] (word~) main::$11 ← (word) rand::return#3 [126] (word~) main::$11 ← (word) rand::return#3
[125] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff [127] (byte~) main::$12 ← (word~) main::$11 & (byte) $ff
[126] (word*~) main::$60 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$36 [128] (word*~) main::$60 ← (word*)(const struct $0*) balls+(byte) 6 + (word~) main::$36
[127] *((word*~) main::$60) ← (byte~) main::$12 [129] *((word*~) main::$60) ← (byte~) main::$12
[128] (word) main::i#2 ← ++ (word) main::i#14 [130] (word) main::i#2 ← ++ (word) main::i#14
to:main::@1 to:main::@1
(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)
ppuDataTransfer: scope:[ppuDataTransfer] from main::@17 main::@21 ppuDataTransfer: scope:[ppuDataTransfer] from main::@17 main::@21
[129] (nomodify void*) ppuDataTransfer::cpuData#2 ← phi( main::@17/(void*)(const to_nomodify byte*) palette main::@21/(void*)(const to_nomodify byte*) h_bar_tilemap ) [131] (nomodify void*) ppuDataTransfer::cpuData#2 ← phi( main::@17/(void*)(const to_nomodify byte*) palette main::@21/(void*)(const to_nomodify byte*) h_bar_tilemap )
[129] (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ← phi( main::@17/(void*)(const nomodify byte*) PPU_PALETTE main::@21/(void*) 8256 ) [131] (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ← phi( main::@17/(void*)(const nomodify byte*) PPU_PALETTE main::@21/(void*) 8256 )
to:ppuDataTransfer::ppuDataPrepare1 to:ppuDataTransfer::ppuDataPrepare1
ppuDataTransfer::ppuDataPrepare1: scope:[ppuDataTransfer] from ppuDataTransfer ppuDataTransfer::ppuDataPrepare1: scope:[ppuDataTransfer] from ppuDataTransfer
[130] (byte~) ppuDataTransfer::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 [132] (byte~) ppuDataTransfer::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0
[131] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataTransfer::ppuDataPrepare1_$0 [133] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataTransfer::ppuDataPrepare1_$0
[132] (byte~) ppuDataTransfer::ppuDataPrepare1_$1 ← < (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 [134] (byte~) ppuDataTransfer::ppuDataPrepare1_$1 ← < (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0
[133] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataTransfer::ppuDataPrepare1_$1 [135] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataTransfer::ppuDataPrepare1_$1
to:ppuDataTransfer::@3 to:ppuDataTransfer::@3
ppuDataTransfer::@3: scope:[ppuDataTransfer] from ppuDataTransfer::ppuDataPrepare1 ppuDataTransfer::@3: scope:[ppuDataTransfer] from ppuDataTransfer::ppuDataPrepare1
[134] (byte*) ppuDataTransfer::cpuSrc#6 ← (byte*)(nomodify void*) ppuDataTransfer::cpuData#2 [136] (byte*) ppuDataTransfer::cpuSrc#6 ← (byte*)(nomodify void*) ppuDataTransfer::cpuData#2
to:ppuDataTransfer::@1 to:ppuDataTransfer::@1
ppuDataTransfer::@1: scope:[ppuDataTransfer] from ppuDataTransfer::@3 ppuDataTransfer::@4 ppuDataTransfer::@1: scope:[ppuDataTransfer] from ppuDataTransfer::@3 ppuDataTransfer::@4
[135] (byte*) ppuDataTransfer::cpuSrc#2 ← phi( ppuDataTransfer::@3/(byte*) ppuDataTransfer::cpuSrc#6 ppuDataTransfer::@4/(byte*) ppuDataTransfer::cpuSrc#1 ) [137] (byte*) ppuDataTransfer::cpuSrc#2 ← phi( ppuDataTransfer::@3/(byte*) ppuDataTransfer::cpuSrc#6 ppuDataTransfer::@4/(byte*) ppuDataTransfer::cpuSrc#1 )
[135] (word) ppuDataTransfer::i#2 ← phi( ppuDataTransfer::@3/(word) 0 ppuDataTransfer::@4/(word) ppuDataTransfer::i#1 ) [137] (word) ppuDataTransfer::i#2 ← phi( ppuDataTransfer::@3/(word) 0 ppuDataTransfer::@4/(word) ppuDataTransfer::i#1 )
[136] if((word) ppuDataTransfer::i#2<(byte) $20*(const byte) SIZEOF_BYTE) goto ppuDataTransfer::@2 [138] if((word) ppuDataTransfer::i#2<(byte) $20*(const byte) SIZEOF_BYTE) goto ppuDataTransfer::@2
to:ppuDataTransfer::@return to:ppuDataTransfer::@return
ppuDataTransfer::@return: scope:[ppuDataTransfer] from ppuDataTransfer::@1 ppuDataTransfer::@return: scope:[ppuDataTransfer] from ppuDataTransfer::@1
[137] return [139] return
to:@return to:@return
ppuDataTransfer::@2: scope:[ppuDataTransfer] from ppuDataTransfer::@1 ppuDataTransfer::@2: scope:[ppuDataTransfer] from ppuDataTransfer::@1
[138] (byte) ppuDataTransfer::ppuDataPut1_val#0 ← *((byte*) ppuDataTransfer::cpuSrc#2) [140] (byte) ppuDataTransfer::ppuDataPut1_val#0 ← *((byte*) ppuDataTransfer::cpuSrc#2)
to:ppuDataTransfer::ppuDataPut1 to:ppuDataTransfer::ppuDataPut1
ppuDataTransfer::ppuDataPut1: scope:[ppuDataTransfer] from ppuDataTransfer::@2 ppuDataTransfer::ppuDataPut1: scope:[ppuDataTransfer] from ppuDataTransfer::@2
[139] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUDATA) ← (byte) ppuDataTransfer::ppuDataPut1_val#0 [141] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUDATA) ← (byte) ppuDataTransfer::ppuDataPut1_val#0
to:ppuDataTransfer::@4 to:ppuDataTransfer::@4
ppuDataTransfer::@4: scope:[ppuDataTransfer] from ppuDataTransfer::ppuDataPut1 ppuDataTransfer::@4: scope:[ppuDataTransfer] from ppuDataTransfer::ppuDataPut1
[140] (byte*) ppuDataTransfer::cpuSrc#1 ← ++ (byte*) ppuDataTransfer::cpuSrc#2 [142] (byte*) ppuDataTransfer::cpuSrc#1 ← ++ (byte*) ppuDataTransfer::cpuSrc#2
[141] (word) ppuDataTransfer::i#1 ← ++ (word) ppuDataTransfer::i#2 [143] (word) ppuDataTransfer::i#1 ← ++ (word) ppuDataTransfer::i#2
to:ppuDataTransfer::@1 to:ppuDataTransfer::@1
(void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size) (void()) ppuDataFill((nomodify void*) ppuDataFill::ppuData , (byte) ppuDataFill::val , (word) ppuDataFill::size)
ppuDataFill: scope:[ppuDataFill] from main::@19 main::@20 ppuDataFill: scope:[ppuDataFill] from main::@19 main::@20
[142] (word) ppuDataFill::size#3 ← phi( main::@19/(word)(number) $20*(number) $1e main::@20/(byte) $40 ) [144] (word) ppuDataFill::size#3 ← phi( main::@19/(word)(number) $20*(number) $1e main::@20/(byte) $40 )
[142] (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ← phi( main::@19/(void*)(const nomodify byte*) PPU_NAME_TABLE_0 main::@20/(void*)(const nomodify byte*) PPU_ATTRIBUTE_TABLE_0 ) [144] (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ← phi( main::@19/(void*)(const nomodify byte*) PPU_NAME_TABLE_0 main::@20/(void*)(const nomodify byte*) PPU_ATTRIBUTE_TABLE_0 )
to:ppuDataFill::ppuDataPrepare1 to:ppuDataFill::ppuDataPrepare1
ppuDataFill::ppuDataPrepare1: scope:[ppuDataFill] from ppuDataFill ppuDataFill::ppuDataPrepare1: scope:[ppuDataFill] from ppuDataFill
[143] (byte~) ppuDataFill::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 [145] (byte~) ppuDataFill::ppuDataPrepare1_$0 ← > (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0
[144] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataFill::ppuDataPrepare1_$0 [146] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataFill::ppuDataPrepare1_$0
[145] (byte~) ppuDataFill::ppuDataPrepare1_$1 ← < (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 [147] (byte~) ppuDataFill::ppuDataPrepare1_$1 ← < (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0
[146] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataFill::ppuDataPrepare1_$1 [148] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUADDR) ← (byte~) ppuDataFill::ppuDataPrepare1_$1
to:ppuDataFill::@1 to:ppuDataFill::@1
ppuDataFill::@1: scope:[ppuDataFill] from ppuDataFill::@2 ppuDataFill::ppuDataPrepare1 ppuDataFill::@1: scope:[ppuDataFill] from ppuDataFill::@2 ppuDataFill::ppuDataPrepare1
[147] (word) ppuDataFill::i#2 ← phi( ppuDataFill::ppuDataPrepare1/(word) 0 ppuDataFill::@2/(word) ppuDataFill::i#1 ) [149] (word) ppuDataFill::i#2 ← phi( ppuDataFill::ppuDataPrepare1/(word) 0 ppuDataFill::@2/(word) ppuDataFill::i#1 )
[148] if((word) ppuDataFill::i#2<(word) ppuDataFill::size#3) goto ppuDataFill::ppuDataPut1 [150] if((word) ppuDataFill::i#2<(word) ppuDataFill::size#3) goto ppuDataFill::ppuDataPut1
to:ppuDataFill::@return to:ppuDataFill::@return
ppuDataFill::@return: scope:[ppuDataFill] from ppuDataFill::@1 ppuDataFill::@return: scope:[ppuDataFill] from ppuDataFill::@1
[149] return [151] return
to:@return to:@return
ppuDataFill::ppuDataPut1: scope:[ppuDataFill] from ppuDataFill::@1 ppuDataFill::ppuDataPut1: scope:[ppuDataFill] from ppuDataFill::@1
[150] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUDATA) ← (byte) 0 [152] *((byte*)(const struct RICOH_2C02*) PPU+(const byte) OFFSET_STRUCT_RICOH_2C02_PPUDATA) ← (byte) 0
to:ppuDataFill::@2 to:ppuDataFill::@2
ppuDataFill::@2: scope:[ppuDataFill] from ppuDataFill::ppuDataPut1 ppuDataFill::@2: scope:[ppuDataFill] from ppuDataFill::ppuDataPut1
[151] (word) ppuDataFill::i#1 ← ++ (word) ppuDataFill::i#2 [153] (word) ppuDataFill::i#1 ← ++ (word) ppuDataFill::i#2
to:ppuDataFill::@1 to:ppuDataFill::@1
(word()) rand() (word()) rand()
rand: scope:[rand] from main::@2 main::@22 rand: scope:[rand] from main::@2 main::@22
[152] (word) rand_state#10 ← phi( main::@2/(word) rand_state#17 main::@22/(word) rand_state#11 ) [154] (word) rand_state#10 ← phi( main::@2/(word) rand_state#17 main::@22/(word) rand_state#11 )
[153] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7 [155] (word~) rand::$0 ← (word) rand_state#10 << (byte) 7
[154] (word) rand_state#0 ← (word) rand_state#10 ^ (word~) rand::$0 [156] (word) rand_state#0 ← (word) rand_state#10 ^ (word~) rand::$0
[155] (word~) rand::$1 ← (word) rand_state#0 >> (byte) 9 [157] (word~) rand::$1 ← (word) rand_state#0 >> (byte) 9
[156] (word) rand_state#1 ← (word) rand_state#0 ^ (word~) rand::$1 [158] (word) rand_state#1 ← (word) rand_state#0 ^ (word~) rand::$1
[157] (word~) rand::$2 ← (word) rand_state#1 << (byte) 8 [159] (word~) rand::$2 ← (word) rand_state#1 << (byte) 8
[158] (word) rand_state#11 ← (word) rand_state#1 ^ (word~) rand::$2 [160] (word) rand_state#11 ← (word) rand_state#1 ^ (word~) rand::$2
[159] (word) rand::return#0 ← (word) rand_state#11 [161] (word) rand::return#0 ← (word) rand_state#11
to:rand::@return to:rand::@return
rand::@return: scope:[rand] from rand rand::@return: scope:[rand] from rand
[160] return [162] return
to:@return to:@return

File diff suppressed because it is too large Load Diff

View File

@ -73,44 +73,46 @@
(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]:54 67.33333333333333 (word~) main::$10 zp[2]:59 67.33333333333333
(word~) main::$11 zp[2]:54 202.0 (word~) main::$11 zp[2]:59 202.0
(byte~) main::$12 reg byte x 101.0 (byte~) main::$12 reg byte x 101.0
(byte~) main::$14 reg byte a 202.0 (byte~) main::$14 reg byte a 202.0
(word~) main::$20 zp[2]:33 2002.0 (word~) main::$20 zp[2]:38 2002.0
(word~) main::$23 zp[2]:39 500.5 (word~) main::$23 zp[2]:44 500.5
(word~) main::$25 zp[2]:41 667.3333333333334 (word~) main::$25 zp[2]:46 667.3333333333334
(byte~) main::$26 zp[1]:43 1001.0 (byte~) main::$26 zp[1]:48 1001.0
(byte~) main::$30 reg byte a 1001.0 (byte~) main::$30 reg byte a 1001.0
(word~) main::$31 zp[2]:48 1001.0 (word~) main::$31 zp[2]:53 1001.0
(word~) main::$32 zp[2]:52 500.5 (word~) main::$32 zp[2]:57 500.5
(word~) main::$33 zp[2]:15 1001.0 (word~) main::$33 zp[2]:20 1001.0
(word~) main::$36 zp[2]:56 43.285714285714285 (word~) main::$36 zp[2]:61 43.285714285714285
(byte~) main::$38 reg byte x 151.5 (word~) main::$38 zp[2]:16 101.0
(word~) main::$44 zp[2]:15 487.6666666666668 (word~) main::$44 zp[2]:20 487.6666666666668
(byte~) main::$48 reg byte x 834.1666666666667 (byte~) main::$48 reg byte x 834.1666666666667
(word~) main::$56 zp[2]:48 2002.0 (word~) main::$56 zp[2]:53 2002.0
(word*~) main::$59 zp[2]:58 202.0 (word*~) main::$59 zp[2]:63 202.0
(word*~) main::$60 zp[2]:56 202.0 (word*~) main::$60 zp[2]:61 202.0
(word*~) main::$61 zp[2]:17 667.3333333333334 (word*~) main::$61 zp[2]:18 202.0
(word*~) main::$62 zp[2]:19 1001.0 (word*~) main::$62 zp[2]:16 202.0
(word*~) main::$63 zp[2]:21 2002.0 (word*~) main::$63 zp[2]:22 667.3333333333334
(word*~) main::$64 zp[2]:23 1001.0 (word*~) main::$64 zp[2]:24 1001.0
(word*~) main::$65 zp[2]:25 2002.0 (word*~) main::$65 zp[2]:26 2002.0
(word*~) main::$66 zp[2]:27 667.3333333333334 (word*~) main::$66 zp[2]:28 1001.0
(word*~) main::$67 zp[2]:29 1001.0 (word*~) main::$67 zp[2]:30 2002.0
(word*~) main::$68 zp[2]:31 2002.0 (word*~) main::$68 zp[2]:32 667.3333333333334
(word*~) main::$69 zp[2]:33 2002.0 (word*~) main::$69 zp[2]:34 1001.0
(word*~) main::$70 zp[2]:39 2002.0 (word*~) main::$70 zp[2]:36 2002.0
(word*~) main::$71 zp[2]:41 2002.0 (word*~) main::$71 zp[2]:38 2002.0
(word*~) main::$72 zp[2]:35 1001.0 (word*~) main::$72 zp[2]:44 2002.0
(word*~) main::$73 zp[2]:37 2002.0 (word*~) main::$73 zp[2]:46 2002.0
(word*~) main::$74 zp[2]:52 2002.0 (word*~) main::$74 zp[2]:40 1001.0
(word*~) main::$75 zp[2]:15 2002.0 (word*~) main::$75 zp[2]:42 2002.0
(word*~) main::$76 zp[2]:44 1001.0 (word*~) main::$76 zp[2]:57 2002.0
(word*~) main::$77 zp[2]:46 2002.0 (word*~) main::$77 zp[2]:20 2002.0
(word*~) main::$78 zp[2]:50 2002.0 (word*~) main::$78 zp[2]:49 1001.0
(word~) main::$9 zp[2]:54 202.0 (word*~) main::$79 zp[2]:51 2002.0
(word*~) main::$80 zp[2]:55 2002.0
(word~) main::$9 zp[2]:59 202.0
(label) main::@1 (label) main::@1
(label) main::@10 (label) main::@10
(label) main::@11 (label) main::@11
@ -136,18 +138,18 @@
(label) main::@7 (label) main::@7
(label) main::@8 (label) main::@8
(label) main::@9 (label) main::@9
(byte) main::active_balls (word) main::active_balls
(byte) main::active_balls#1 active_balls zp[1]:5 75.75 (word) main::active_balls#1 active_balls zp[2]:5 50.5
(byte) main::active_balls#2 active_balls zp[1]:5 56.11111111111111 (word) main::active_balls#2 active_balls zp[2]:5 56.11111111111111
(byte) main::active_balls#8 active_balls zp[1]:5 27.54901960784314 (word) main::active_balls#8 active_balls zp[2]:5 27.54901960784314
(label) main::enableVideoOutput1 (label) main::enableVideoOutput1
(byte) main::h_bar (byte) main::h_bar
(byte) main::h_bar#1 h_bar zp[1]:14 55.258620689655174 (byte) main::h_bar#1 h_bar zp[1]:15 53.41666666666667
(word) main::i (word) main::i
(word) main::i#10 i_1 zp[2]:7 88.97777777777777 (word) main::i#10 i_1 zp[2]:8 88.97777777777777
(word) main::i#14 i zp[2]:2 25.25 (word) main::i#14 i zp[2]:2 25.25
(word) main::i#2 i zp[2]:2 202.0 (word) main::i#2 i zp[2]:2 202.0
(word) main::i#4 i_1 zp[2]:7 2002.0 (word) main::i#4 i_1 zp[2]:8 2002.0
(label) main::initNES1 (label) main::initNES1
(label) main::initNES1_@1 (label) main::initNES1_@1
(label) main::initNES1_@7 (label) main::initNES1_@7
@ -165,15 +167,15 @@
(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]:9 1001.0 (byte) main::sprite_idx#2 sprite_idx zp[1]:10 1001.0
(byte) main::sprite_idx#3 sprite_idx zp[1]:9 68.25 (byte) main::sprite_idx#3 sprite_idx zp[1]:10 68.25
(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]:6 5.9411764705882355 (byte) main::timer#15 timer zp[1]:7 5.9411764705882355
(byte) main::timer#21 timer zp[1]:6 202.0 (byte) main::timer#21 timer zp[1]:7 202.0
(byte) main::timer#3 timer zp[1]:6 57.714285714285715 (byte) main::timer#3 timer zp[1]:7 57.714285714285715
(byte) main::timer_2 (byte) main::timer_2
(byte) main::timer_2#1 timer_2 zp[1]:4 4.80952380952381 (byte) main::timer_2#1 timer_2 zp[1]:4 4.661538461538462
(byte) main::timer_2#2 timer_2 zp[1]:4 202.0 (byte) main::timer_2#2 timer_2 zp[1]:4 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)
@ -181,18 +183,18 @@
(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]:19 2002.0 (word) ppuDataFill::i#1 i zp[2]:20 2002.0
(word) ppuDataFill::i#2 i zp[2]:19 1001.0 (word) ppuDataFill::i#2 i zp[2]:20 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]:15 67.33333333333333 (nomodify void*) ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:16 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]:17 111.22222222222223 (word) ppuDataFill::size#3 size zp[2]:18 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
@ -201,20 +203,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]:17 (nomodify void*) ppuDataTransfer::cpuData#2 cpuData zp[2]:18
(byte*) ppuDataTransfer::cpuSrc (byte*) ppuDataTransfer::cpuSrc
(byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:17 1001.0 (byte*) ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:18 1001.0
(byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:17 776.0 (byte*) ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:18 776.0
(byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:17 202.0 (byte*) ppuDataTransfer::cpuSrc#6 cpuSrc zp[2]:18 202.0
(word) ppuDataTransfer::i (word) ppuDataTransfer::i
(word) ppuDataTransfer::i#1 i zp[2]:19 2002.0 (word) ppuDataTransfer::i#1 i zp[2]:20 2002.0
(word) ppuDataTransfer::i#2 i zp[2]:19 600.5999999999999 (word) ppuDataTransfer::i#2 i zp[2]:20 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]:15 67.33333333333333 (nomodify void*) ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:16 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
@ -230,76 +232,77 @@
(byte) printf_format_string::justify_left (byte) printf_format_string::justify_left
(byte) printf_format_string::min_length (byte) printf_format_string::min_length
(word()) rand() (word()) rand()
(word~) rand::$0 zp[2]:60 2002.0 (word~) rand::$0 zp[2]:65 2002.0
(word~) rand::$1 zp[2]:62 2002.0 (word~) rand::$1 zp[2]:67 2002.0
(word~) rand::$2 zp[2]:64 2002.0 (word~) rand::$2 zp[2]:69 2002.0
(label) rand::@return (label) rand::@return
(word) rand::return (word) rand::return
(word) rand::return#0 return zp[2]:54 300.75 (word) rand::return#0 return zp[2]:59 300.75
(word) rand::return#2 return zp[2]:54 202.0 (word) rand::return#2 return zp[2]:59 202.0
(word) rand::return#3 return zp[2]:54 202.0 (word) rand::return#3 return zp[2]:59 202.0
(word) rand_state (word) rand_state
(word) rand_state#0 rand_state zp[2]:10 1501.5 (word) rand_state#0 rand_state zp[2]:11 1501.5
(word) rand_state#1 rand_state zp[2]:10 1501.5 (word) rand_state#1 rand_state zp[2]:11 1501.5
(word) rand_state#10 rand_state zp[2]:10 1102.0 (word) rand_state#10 rand_state zp[2]:11 1102.0
(word) rand_state#11 rand_state zp[2]:10 129.64705882352942 (word) rand_state#11 rand_state zp[2]:11 129.64705882352942
(word) rand_state#17 rand_state zp[2]:10 67.33333333333333 (word) rand_state#17 rand_state zp[2]:11 67.33333333333333
(volatile byte) scroll_y loadstore zp[1]:12 105.0 (volatile byte) scroll_y loadstore zp[1]:13 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]:13 9.008130081300813 (volatile byte) vblank_hit loadstore zp[1]:14 8.863999999999999
reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ] reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
zp[2]:2 [ main::i#14 main::i#2 ] zp[2]:2 [ main::i#14 main::i#2 ]
zp[1]:4 [ main::timer_2#2 main::timer_2#1 ] zp[1]:4 [ main::timer_2#2 main::timer_2#1 ]
zp[1]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ] zp[2]:5 [ main::active_balls#2 main::active_balls#8 main::active_balls#1 ]
zp[1]:6 [ main::timer#3 main::timer#15 main::timer#21 ] zp[1]:7 [ main::timer#3 main::timer#15 main::timer#21 ]
zp[2]:7 [ main::i#10 main::i#4 ] zp[2]:8 [ main::i#10 main::i#4 ]
zp[1]:9 [ main::sprite_idx#3 main::sprite_idx#2 ] zp[1]:10 [ main::sprite_idx#3 main::sprite_idx#2 ]
zp[2]:10 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ] zp[2]:11 [ rand_state#10 rand_state#17 rand_state#11 rand_state#0 rand_state#1 ]
zp[1]:12 [ scroll_y ] zp[1]:13 [ scroll_y ]
zp[1]:13 [ vblank_hit ] zp[1]:14 [ 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]:14 [ main::h_bar#1 ] zp[1]:15 [ 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 ] zp[2]:16 [ main::$38 main::$62 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ]
zp[2]:15 [ main::$44 main::$75 main::$33 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ] zp[2]:18 [ main::$61 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
zp[2]:17 [ main::$61 ppuDataFill::size#3 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ] zp[2]:20 [ main::$44 main::$77 main::$33 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
zp[2]:19 [ main::$62 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ] zp[2]:22 [ main::$63 ]
zp[2]:21 [ main::$63 ] zp[2]:24 [ main::$64 ]
zp[2]:23 [ main::$64 ] zp[2]:26 [ main::$65 ]
zp[2]:25 [ main::$65 ] zp[2]:28 [ main::$66 ]
zp[2]:27 [ main::$66 ] zp[2]:30 [ main::$67 ]
zp[2]:29 [ main::$67 ] zp[2]:32 [ main::$68 ]
zp[2]:31 [ main::$68 ] zp[2]:34 [ main::$69 ]
zp[2]:33 [ main::$69 main::$20 ] zp[2]:36 [ main::$70 ]
zp[2]:35 [ main::$72 ] zp[2]:38 [ main::$71 main::$20 ]
zp[2]:37 [ main::$73 ] zp[2]:40 [ main::$74 ]
zp[2]:39 [ main::$70 main::$23 ] zp[2]:42 [ main::$75 ]
zp[2]:41 [ main::$71 main::$25 ] zp[2]:44 [ main::$72 main::$23 ]
zp[1]:43 [ main::$26 ] zp[2]:46 [ main::$73 main::$25 ]
zp[2]:44 [ main::$76 ] zp[1]:48 [ main::$26 ]
zp[2]:46 [ main::$77 ] zp[2]:49 [ main::$78 ]
zp[2]:51 [ main::$79 ]
reg byte a [ main::$30 ] reg byte a [ main::$30 ]
zp[2]:48 [ main::$56 main::$31 ] zp[2]:53 [ main::$56 main::$31 ]
zp[2]:50 [ main::$78 ] zp[2]:55 [ main::$80 ]
zp[2]:52 [ main::$74 main::$32 ] zp[2]:57 [ main::$76 main::$32 ]
reg byte x [ main::$48 ] reg byte x [ main::$48 ]
zp[2]:54 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ] zp[2]:59 [ rand::return#2 main::$9 rand::return#0 main::$10 rand::return#3 main::$11 ]
zp[2]:56 [ main::$36 main::$60 ] zp[2]:61 [ main::$36 main::$60 ]
zp[2]:58 [ main::$59 ] zp[2]:63 [ main::$59 ]
reg byte x [ main::$12 ] reg byte x [ main::$12 ]
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ] reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
reg byte a [ ppuDataTransfer::ppuDataPut1_val#0 ] reg byte a [ ppuDataTransfer::ppuDataPut1_val#0 ]
reg byte a [ ppuDataFill::ppuDataPrepare1_$0 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$0 ]
reg byte a [ ppuDataFill::ppuDataPrepare1_$1 ] reg byte a [ ppuDataFill::ppuDataPrepare1_$1 ]
zp[2]:60 [ rand::$0 ] zp[2]:65 [ rand::$0 ]
zp[2]:62 [ rand::$1 ] zp[2]:67 [ rand::$1 ]
zp[2]:64 [ rand::$2 ] zp[2]:69 [ rand::$2 ]