mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-29 08:31:03 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
598e17b468
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
|
||||
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
|
1253
src/main/fragment/cache/fragment-cache-mega45gs02.asm
vendored
1253
src/main/fragment/cache/fragment-cache-mega45gs02.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
|
||||
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
|
566
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
566
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
|
||||
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
@ -13185,310 +13185,6 @@ lda {z1}
|
||||
sta {c1}
|
||||
lda {z1}+1
|
||||
sta {c1}+1
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuz2
|
||||
lda {z2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
sta {z1}
|
||||
//FRAGMENT _deref_pbuc1_lt_vbuz1_then_la1
|
||||
lda {c1}
|
||||
cmp {z1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
|
||||
lda {z1}
|
||||
ldx {z2}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz2)_then_la1
|
||||
lda {z1}
|
||||
ldx {z2}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuz1=pbuc1_derefidx_(pbuc2_derefidx_vbuz2)
|
||||
ldx {z2}
|
||||
ldy {c2},x
|
||||
ldx {c1},y
|
||||
stx {z1}
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2
|
||||
ldy {z2}
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2
|
||||
ldy {z2}
|
||||
lda {c1}+1,y
|
||||
sta {z1}
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuxx
|
||||
ldy {z1}
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuyy
|
||||
tya
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuz1
|
||||
tay
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuxx
|
||||
tay
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuyy
|
||||
tax
|
||||
tya
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuyy
|
||||
tya
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuxx
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
tay
|
||||
//FRAGMENT _deref_pbuc1_lt_vbuaa_then_la1
|
||||
ldy {c1}
|
||||
sta $ff
|
||||
cpy $ff
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuaa)_then_la1
|
||||
tax
|
||||
lda {z1}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
lda {z1}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuz1_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
lda {z1}
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuaa_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
|
||||
ldx {z1}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
lda {z1}
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuz1_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
lda {z1}
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
|
||||
ldy {z1}
|
||||
txa
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
txa
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
txa
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
|
||||
ldx {z1}
|
||||
tya
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
tya
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuyy_lt_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
tya
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuaa=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
|
||||
ldx {z1}
|
||||
ldy {c2},x
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
|
||||
ldx {z1}
|
||||
ldy {c2},x
|
||||
ldx {c1},y
|
||||
//FRAGMENT vbuyy=pbuc1_derefidx_(pbuc2_derefidx_vbuz1)
|
||||
ldy {z1}
|
||||
ldx {c2},y
|
||||
ldy {c1},x
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1
|
||||
ldx {z1}
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa
|
||||
tax
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1}+1,y
|
||||
//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1
|
||||
ldx {z1}
|
||||
lda {c1}+1,x
|
||||
tax
|
||||
//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1}+1,y
|
||||
tay
|
||||
//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
tay
|
||||
//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
|
||||
ldy {z1}
|
||||
txa
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
txa
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuxx_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
txa
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuz1)_then_la1
|
||||
ldx {z1}
|
||||
tya
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuxx)_then_la1
|
||||
tya
|
||||
ldy {c2},x
|
||||
cmp {c1},y
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuyy_ge_pbuc1_derefidx_(pbuc2_derefidx_vbuyy)_then_la1
|
||||
tya
|
||||
ldx {c2},y
|
||||
cmp {c1},x
|
||||
bcs {la1}
|
||||
//FRAGMENT _deref_pbuc1_lt_vbuxx_then_la1
|
||||
lda {c1}
|
||||
stx $ff
|
||||
cmp $ff
|
||||
bcc {la1}
|
||||
//FRAGMENT _deref_pbuc1_lt_vbuyy_then_la1
|
||||
ldx {c1}
|
||||
sty $ff
|
||||
cpx $ff
|
||||
bcc {la1}
|
||||
//FRAGMENT vbsxx=pbsc1_derefidx_vbuyy
|
||||
ldx {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuc2
|
||||
ldx {z1}
|
||||
ldy #{c2}
|
||||
@ -15553,6 +15249,10 @@ lda {z1}
|
||||
cmp #<{c1}
|
||||
bcs {la1}
|
||||
!:
|
||||
//FRAGMENT vbuz1=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=_deref_pbuc1_ror_1
|
||||
lda {c1}
|
||||
lsr
|
||||
@ -15581,6 +15281,17 @@ inc {c1}
|
||||
bne !+
|
||||
inc {c1}+1
|
||||
!:
|
||||
//FRAGMENT vbuaa=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
//FRAGMENT vbuxx=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=_deref_pbuc1_band_vbuc2
|
||||
lda #{c2}
|
||||
and {c1}
|
||||
tay
|
||||
//FRAGMENT vbuaa=_deref_pbuc1_ror_1
|
||||
lda {c1}
|
||||
lsr
|
||||
@ -15672,83 +15383,6 @@ sta ({z1}),y
|
||||
tya
|
||||
iny
|
||||
sta ({z1}),y
|
||||
//FRAGMENT vboz1=vboc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuz4
|
||||
ldy {z4}
|
||||
lda ({z3}),y
|
||||
ldy {z2}
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuz3
|
||||
ldy {z3}
|
||||
sta $ff
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuz3
|
||||
ldy {z3}
|
||||
stx $ff
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuz3
|
||||
sty $ff
|
||||
ldy {z3}
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuaa
|
||||
tay
|
||||
lda ({z3}),y
|
||||
ldy {z2}
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuaa
|
||||
stx $ff
|
||||
tay
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuaa
|
||||
sty $ff
|
||||
tay
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuxx
|
||||
txa
|
||||
tay
|
||||
lda ({z3}),y
|
||||
ldy {z2}
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuxx
|
||||
sta $ff
|
||||
txa
|
||||
tay
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuyy=pbuz2_derefidx_vbuxx
|
||||
sty $ff
|
||||
txa
|
||||
tay
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuyy
|
||||
lda ({z3}),y
|
||||
ldy {z2}
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuyy
|
||||
sta $ff
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuyy
|
||||
stx $ff
|
||||
lda ({z2}),y
|
||||
ldy $ff
|
||||
sta ({z1}),y
|
||||
//FRAGMENT vbsz1=vbsaa_rol_1
|
||||
asl
|
||||
sta {z1}
|
||||
@ -15823,6 +15457,84 @@ sta {c1},x
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuz2
|
||||
ldy {z2}
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuz2
|
||||
ldy {z2}
|
||||
lda {c1}+1,y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuz1
|
||||
ldx {z1}
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuaa
|
||||
tax
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuxx
|
||||
lda {c1},x
|
||||
tay
|
||||
//FRAGMENT vbuz1=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
//FRAGMENT vbuxx=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
tax
|
||||
//FRAGMENT vbuyy=_lo_pwuc1_derefidx_vbuyy
|
||||
lda {c1},y
|
||||
tay
|
||||
//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1}+1,y
|
||||
//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuz1
|
||||
ldx {z1}
|
||||
lda {c1}+1,x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuz1
|
||||
ldy {z1}
|
||||
lda {c1}+1,y
|
||||
tay
|
||||
//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
//FRAGMENT vbuxx=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
tax
|
||||
//FRAGMENT vbuyy=_hi_pwuc1_derefidx_vbuxx
|
||||
lda {c1}+1,x
|
||||
tay
|
||||
//FRAGMENT vbuz1=_hi_pwuc1_derefidx_vbuyy
|
||||
lda {c1}+1,y
|
||||
sta {z1}
|
||||
@ -16110,6 +15822,9 @@ lda ({z1}),y
|
||||
tay
|
||||
lda {c2},y
|
||||
sta {c1},x
|
||||
//FRAGMENT vboz1=vboc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
//FRAGMENT vboaa=vboc1
|
||||
lda #{c1}
|
||||
//FRAGMENT vboxx=vboc1
|
||||
@ -16138,23 +15853,6 @@ sta {z1}
|
||||
ldx {z1}
|
||||
dex
|
||||
dex
|
||||
//FRAGMENT vbuz1=_deref_pbuc1_plus_2
|
||||
lda {c1}
|
||||
clc
|
||||
adc #2
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa=_deref_pbuc1_plus_2
|
||||
lda {c1}
|
||||
clc
|
||||
adc #2
|
||||
//FRAGMENT vbuxx=_deref_pbuc1_plus_2
|
||||
ldx {c1}
|
||||
inx
|
||||
inx
|
||||
//FRAGMENT vbuyy=_deref_pbuc1_plus_2
|
||||
ldy {c1}
|
||||
iny
|
||||
iny
|
||||
//FRAGMENT 0_neq_vwuz1_then_la1
|
||||
lda {z1}
|
||||
ora {z1}+1
|
||||
@ -16163,6 +15861,10 @@ bne {la1}
|
||||
lda {z2}
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuc1_lt_vbuz1_then_la1
|
||||
lda {c1}
|
||||
cmp {z1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vwuz1=vwuz2_minus_vbuc1
|
||||
sec
|
||||
lda {z2}
|
||||
@ -18634,6 +18336,72 @@ sta {c1},y
|
||||
lda {c1}+1,y
|
||||
adc #>{c2}
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuz2
|
||||
lda {z2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuz1
|
||||
tay
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuxx
|
||||
ldy {z1}
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuxx
|
||||
tay
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuxx
|
||||
txa
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuz1=vbuyy
|
||||
tya
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT pwuc1_derefidx_vbuaa=vbuyy
|
||||
tax
|
||||
tya
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuxx=vbuyy
|
||||
tya
|
||||
sta {c1},x
|
||||
lda #0
|
||||
sta {c1}+1,x
|
||||
//FRAGMENT pwuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3
|
||||
ldy #0
|
||||
sec
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
|
||||
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
|
||||
//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
|
||||
inc {c1}
|
||||
//FRAGMENT isr_hardware_all_entry
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
|
||||
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
|
||||
//FRAGMENT vwuz1=vwuc1
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
|
@ -14,10 +14,10 @@ import kickass.nonasm.c64.CharToPetsciiConverter;
|
||||
import picocli.CommandLine;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.file.FileAlreadyExistsException;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.attribute.FileTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.stream.Collectors;
|
||||
@ -405,12 +405,19 @@ public class KickC implements Callable<Integer> {
|
||||
if(!CFileDir.toAbsolutePath().equals(outputDir.toAbsolutePath())) {
|
||||
for(Path resourcePath : program.getAsmResourceFiles()) {
|
||||
Path outResourcePath = outputDir.resolve(resourcePath.getFileName().toString());
|
||||
System.out.println("Copying resource " + outResourcePath);
|
||||
try {
|
||||
Files.copy(resourcePath, outResourcePath);
|
||||
} catch(FileAlreadyExistsException e) {
|
||||
// Ignore this
|
||||
if(Files.exists(outResourcePath)) {
|
||||
FileTime resModified = Files.getLastModifiedTime(resourcePath);
|
||||
FileTime outModified = Files.getLastModifiedTime(outResourcePath);
|
||||
if(outModified.toMillis()>resModified.toMillis()) {
|
||||
// Outfile is newer - move on to next file
|
||||
System.out.println("Resource already copied " + outResourcePath);
|
||||
continue;
|
||||
}
|
||||
// Resource is newer than existing file - delete it
|
||||
Files.delete(outResourcePath);
|
||||
}
|
||||
System.out.println("Copying resource " + outResourcePath);
|
||||
Files.copy(resourcePath, outResourcePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// DYPP (Different Y Pixel Position) LOGO created using DMA
|
||||
// Graphics mode is 320x200 full-colour super extended attribute mode text-mode
|
||||
// Graphics mode is 45x25 full-colour super extended attribute mode text-mode
|
||||
// Character layout is column-wise giving linear addressing of the graphics (one byte per pixel)
|
||||
|
||||
#pragma target(mega65)
|
||||
@ -95,10 +95,9 @@ void main() {
|
||||
logo_src += 25*8;
|
||||
}
|
||||
|
||||
|
||||
// Loop forever
|
||||
for(;;) {
|
||||
VICIV->BG_COLOR = VICII->RASTER;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -26,11 +26,11 @@ void main() {
|
||||
BLOCK_8000[4] = BLOCK_4000[2];
|
||||
BLOCK_4000[5] = BLOCK_8000[1];
|
||||
|
||||
// copy the resulting values onto the screen
|
||||
// copy the resulting values onto the screen - it should show '-*-*-*'
|
||||
for(char i=0;i<6;i++)
|
||||
(DEFAULT_SCREEN+80-6)[i] = BLOCK_4000[i];
|
||||
|
||||
// Remap [$4000-$5fff] to both point to [$ff80000-$ff81fff] COLORAM! (notice usage of page offsets)
|
||||
// Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets)
|
||||
memoryRemap256M(MEMORYBLOCK_4000, 0xff800-0x00040, 0);
|
||||
// Put colors in the upper screen line
|
||||
for( char i=0; i<16; i++)
|
||||
|
@ -615,10 +615,10 @@ plexShowSprite: {
|
||||
// SPRITES_YPOS[plex_sprite_idx2] = ypos
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// ypos+21
|
||||
// ypos+22
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
// plex_free_next+1
|
||||
|
@ -357,7 +357,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@9
|
||||
[174] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[176] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[177] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[178] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
|
@ -110,7 +110,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@10
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
plexShowSprite::plex_sprite_idx2#2 = phi( plexShowSprite/plexShowSprite::plex_sprite_idx2#0 )
|
||||
plexShowSprite::plexFreeAdd1_ypos#1 = phi( plexShowSprite/plexShowSprite::plexFreeAdd1_ypos#0 )
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -1163,8 +1163,8 @@ Adding number conversion cast (unumber) 0 in PLEX_FREE_YPOS[plexSort::plexFreePr
|
||||
Adding number conversion cast (unumber) 0 in plex_free_next = 0
|
||||
Adding number conversion cast (unumber) 2 in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Adding number conversion cast (unumber) plexShowSprite::$0 in plexShowSprite::$0 = plex_sprite_idx * (unumber)2
|
||||
Adding number conversion cast (unumber) $15 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$15
|
||||
Adding number conversion cast (unumber) $16 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$16
|
||||
Adding number conversion cast (unumber) 1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + (unumber)1
|
||||
Adding number conversion cast (unumber) 7 in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -1275,7 +1275,7 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast $15
|
||||
Simplifying constant integer cast $16
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 0
|
||||
@ -1343,7 +1343,7 @@ Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $15
|
||||
Finalized unsigned number type (byte) $16
|
||||
Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 7
|
||||
Finalized unsigned number type (byte) 0
|
||||
@ -1397,7 +1397,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1
|
||||
Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1
|
||||
Inferred type updated to byte in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
Inferred type updated to byte in plexShowSprite::$9 = $ff ^ plex_sprite_msb
|
||||
@ -2294,7 +2294,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@9
|
||||
[174] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[176] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[177] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[178] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -4364,9 +4364,9 @@ plexShowSprite: {
|
||||
jmp plexFreeAdd1
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
plexFreeAdd1:
|
||||
// [175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// [175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
adc #$16
|
||||
// [176] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
@ -6133,11 +6133,11 @@ plexShowSprite: {
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
// ypos+21
|
||||
// [175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// ypos+22
|
||||
// [175] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
// [176] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
|
@ -289,10 +289,10 @@ plexShowSprite: {
|
||||
// SPRITES_YPOS[plex_sprite_idx2] = ypos
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// ypos+21
|
||||
// ypos+22
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
// plex_free_next+1
|
||||
|
@ -140,7 +140,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
[67] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[69] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[70] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[71] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
|
@ -114,7 +114,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
plexShowSprite::plex_sprite_idx2#2 = phi( plexShowSprite/plexShowSprite::plex_sprite_idx2#0 )
|
||||
plexShowSprite::plexFreeAdd1_ypos#1 = phi( plexShowSprite/plexShowSprite::plexFreeAdd1_ypos#0 )
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -1459,8 +1459,8 @@ Adding number conversion cast (unumber) 0 in PLEX_FREE_YPOS[plexSort::plexFreePr
|
||||
Adding number conversion cast (unumber) 0 in plex_free_next = 0
|
||||
Adding number conversion cast (unumber) 2 in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Adding number conversion cast (unumber) plexShowSprite::$0 in plexShowSprite::$0 = plex_sprite_idx * (unumber)2
|
||||
Adding number conversion cast (unumber) $15 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$15
|
||||
Adding number conversion cast (unumber) $16 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$16
|
||||
Adding number conversion cast (unumber) 1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + (unumber)1
|
||||
Adding number conversion cast (unumber) 7 in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -1579,7 +1579,7 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast $15
|
||||
Simplifying constant integer cast $16
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 0
|
||||
@ -1648,7 +1648,7 @@ Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $15
|
||||
Finalized unsigned number type (byte) $16
|
||||
Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 7
|
||||
Finalized unsigned number type (byte) 0
|
||||
@ -1701,7 +1701,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1
|
||||
Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1
|
||||
Inferred type updated to byte in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
Inferred type updated to byte in plexShowSprite::$9 = $ff ^ plex_sprite_msb
|
||||
@ -2548,7 +2548,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
[67] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[69] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[70] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[71] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -4197,9 +4197,9 @@ plexShowSprite: {
|
||||
jmp plexFreeAdd1
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
plexFreeAdd1:
|
||||
// [68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// [68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
adc #$16
|
||||
// [69] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
@ -5987,11 +5987,11 @@ plexShowSprite: {
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
// ypos+21
|
||||
// [68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// ypos+22
|
||||
// [68] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
// [69] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
|
@ -1,5 +1,5 @@
|
||||
// DYPP (Different Y Pixel Position) LOGO created using DMA
|
||||
// Graphics mode is 320x200 full-colour super extended attribute mode text-mode
|
||||
// Graphics mode is 45x25 full-colour super extended attribute mode text-mode
|
||||
// Character layout is column-wise giving linear addressing of the graphics (one byte per pixel)
|
||||
.cpu _45gs02
|
||||
// MEGA65 platform PRG executable starting in MEGA65 mode.
|
||||
|
@ -1349,7 +1349,7 @@ Allocated (was zp[2]:17) zp[2]:12 [ memset_dma::dest#2 ]
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
// File Comments
|
||||
// DYPP (Different Y Pixel Position) LOGO created using DMA
|
||||
// Graphics mode is 320x200 full-colour super extended attribute mode text-mode
|
||||
// Graphics mode is 45x25 full-colour super extended attribute mode text-mode
|
||||
// Character layout is column-wise giving linear addressing of the graphics (one byte per pixel)
|
||||
// Upstart
|
||||
.cpu _45gs02
|
||||
@ -2114,7 +2114,7 @@ Score: 9302
|
||||
|
||||
// File Comments
|
||||
// DYPP (Different Y Pixel Position) LOGO created using DMA
|
||||
// Graphics mode is 320x200 full-colour super extended attribute mode text-mode
|
||||
// Graphics mode is 45x25 full-colour super extended attribute mode text-mode
|
||||
// Character layout is column-wise giving linear addressing of the graphics (one byte per pixel)
|
||||
// Upstart
|
||||
.cpu _45gs02
|
||||
|
@ -59,15 +59,10 @@ conio_mega65_init: {
|
||||
// Position cursor at current line
|
||||
.label BASIC_CURSOR_LINE = $eb
|
||||
// asm
|
||||
// Disable BASIC/KERNAL interrupts
|
||||
sei
|
||||
// memoryRemap(0,0,0)
|
||||
// Map memory to BANK 0 : 0x00XXXX - giving access to I/O
|
||||
lda #0
|
||||
tax
|
||||
tay
|
||||
taz
|
||||
map
|
||||
eom
|
||||
jsr memoryRemap
|
||||
// *IO_KEY = 0x47
|
||||
// Enable the VIC 4
|
||||
lda #$47
|
||||
@ -103,6 +98,54 @@ main: {
|
||||
.byte 0
|
||||
}
|
||||
.segment Code
|
||||
// Remap some of the eight 8K memory blocks in the 64K address space of the 6502 to point somewhere else in the first 1MB memory space of the MEGA65.
|
||||
// After the remapping the CPU will access the mapped memory whenever it uses instructions that access a remapped block.
|
||||
// See section 2.3.4 in http://www.zimmers.net/cbmpics/cbm/c65/c65manual.txt for a description of the CPU memory remapper of the C65.
|
||||
// remapBlocks: Indicates which 8K blocks of the 6502 address space to remap. Each bit represents one 8K block
|
||||
// - bit 0 Memory block $0000-$1fff. Use constant MEMORYBLOCK_0000.
|
||||
// - bit 1 Memory block $2000-$3fff. Use constant MEMORYBLOCK_2000.
|
||||
// - bit 2 Memory block $4000-$5fff. Use constant MEMORYBLOCK_4000.
|
||||
// - bit 3 Memory block $6000-$7fff. Use constant MEMORYBLOCK_6000.
|
||||
// - bit 4 Memory block $8000-$9fff. Use constant MEMORYBLOCK_8000.
|
||||
// - bit 5 Memory block $a000-$bfff. Use constant MEMORYBLOCK_A000.
|
||||
// - bit 6 Memory block $c000-$dfff. Use constant MEMORYBLOCK_C000.
|
||||
// - bit 7 Memory block $e000-$ffff. Use constant MEMORYBLOCK_E000.
|
||||
// lowerPageOffset: Offset that will be added to any remapped blocks in the lower 32K of memory (block 0-3).
|
||||
// The offset is a page offset (meaning it is multiplied by 0x100). Only the lower 12bits of the passed value is used.
|
||||
// - If block 0 ($0000-$1fff) is remapped it will point to lowerPageOffset*$100.
|
||||
// - If block 1 ($2000-$3fff) is remapped it will point to lowerPageOffset*$100 + $2000.
|
||||
// - If block 2 ($4000-$5fff) is remapped it will point to lowerPageOffset*$100 + $4000.
|
||||
// - If block 3 ($6000-$7fff) is remapped it will point to lowerPageOffset*$100 + $6000.
|
||||
// upperPageOffset: Offset that will be added to any remapped blocks in the upper 32K of memory (block 4-7).
|
||||
// The offset is a page offset (meaning it is multiplied by 0x100). Only the lower 12bits of the passed value is used.
|
||||
// - If block 4 ($8000-$9fff) is remapped it will point to upperPageOffset*$100 + $8000
|
||||
// - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000.
|
||||
// - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000.
|
||||
// - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000.
|
||||
memoryRemap: {
|
||||
.label aVal = $fc
|
||||
.label xVal = $fd
|
||||
.label yVal = $fe
|
||||
.label zVal = $ff
|
||||
// *aVal = <lowerPageOffset
|
||||
lda #0
|
||||
sta aVal
|
||||
// *xVal = (remapBlocks << 4) | (>lowerPageOffset & 0xf)
|
||||
sta xVal
|
||||
// *yVal = <upperPageOffset
|
||||
sta yVal
|
||||
// *zVal = (remapBlocks & 0xf0) | (>upperPageOffset & 0xf)
|
||||
sta zVal
|
||||
// asm
|
||||
lda aVal
|
||||
ldx xVal
|
||||
ldy yVal
|
||||
ldz zVal
|
||||
map
|
||||
eom
|
||||
// }
|
||||
rts
|
||||
}
|
||||
// Set the cursor to the specified position
|
||||
// gotoxy(byte register(X) y)
|
||||
gotoxy: {
|
||||
|
@ -20,182 +20,202 @@ __start::@return: scope:[__start] from __start::@1
|
||||
|
||||
void conio_mega65_init()
|
||||
conio_mega65_init: scope:[conio_mega65_init] from __start::__init1
|
||||
[9] phi()
|
||||
to:conio_mega65_init::SEI1
|
||||
conio_mega65_init::SEI1: scope:[conio_mega65_init] from conio_mega65_init
|
||||
asm { sei }
|
||||
asm { lda#0 tax tay taz map eom }
|
||||
[11] *IO_KEY = $47
|
||||
[12] *IO_KEY = $53
|
||||
[13] *IO_BANK = *IO_BANK | CRAM2K
|
||||
[14] conio_mega65_init::line#0 = *conio_mega65_init::BASIC_CURSOR_LINE + 1
|
||||
[15] if(conio_mega65_init::line#0<$19) goto conio_mega65_init::@2
|
||||
to:conio_mega65_init::@2
|
||||
conio_mega65_init::@2: scope:[conio_mega65_init] from conio_mega65_init::SEI1
|
||||
[11] phi()
|
||||
[12] call memoryRemap
|
||||
to:conio_mega65_init::@3
|
||||
conio_mega65_init::@3: scope:[conio_mega65_init] from conio_mega65_init::@2
|
||||
[13] *IO_KEY = $47
|
||||
[14] *IO_KEY = $53
|
||||
[15] *IO_BANK = *IO_BANK | CRAM2K
|
||||
[16] conio_mega65_init::line#0 = *conio_mega65_init::BASIC_CURSOR_LINE + 1
|
||||
[17] if(conio_mega65_init::line#0<$19) goto conio_mega65_init::@4
|
||||
to:conio_mega65_init::@1
|
||||
conio_mega65_init::@2: scope:[conio_mega65_init] from conio_mega65_init
|
||||
[16] phi()
|
||||
conio_mega65_init::@4: scope:[conio_mega65_init] from conio_mega65_init::@3
|
||||
[18] phi()
|
||||
to:conio_mega65_init::@1
|
||||
conio_mega65_init::@1: scope:[conio_mega65_init] from conio_mega65_init conio_mega65_init::@2
|
||||
[17] conio_mega65_init::line#2 = phi( conio_mega65_init::@2/conio_mega65_init::line#0, conio_mega65_init/$19-1 )
|
||||
[18] gotoxy::y#2 = conio_mega65_init::line#2
|
||||
[19] call gotoxy
|
||||
conio_mega65_init::@1: scope:[conio_mega65_init] from conio_mega65_init::@3 conio_mega65_init::@4
|
||||
[19] conio_mega65_init::line#2 = phi( conio_mega65_init::@3/$19-1, conio_mega65_init::@4/conio_mega65_init::line#0 )
|
||||
[20] gotoxy::y#2 = conio_mega65_init::line#2
|
||||
[21] call gotoxy
|
||||
to:conio_mega65_init::@return
|
||||
conio_mega65_init::@return: scope:[conio_mega65_init] from conio_mega65_init::@1
|
||||
[20] return
|
||||
[22] return
|
||||
to:@return
|
||||
|
||||
void main()
|
||||
main: scope:[main] from __start::@1
|
||||
[21] phi()
|
||||
[22] call cputs
|
||||
[23] phi()
|
||||
[24] call cputs
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
[23] return
|
||||
[25] return
|
||||
to:@return
|
||||
|
||||
void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset)
|
||||
memoryRemap: scope:[memoryRemap] from conio_mega65_init::@2
|
||||
[26] *memoryRemap::aVal = 0
|
||||
[27] *memoryRemap::xVal = 0
|
||||
[28] *memoryRemap::yVal = 0
|
||||
[29] *memoryRemap::zVal = 0
|
||||
asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom }
|
||||
to:memoryRemap::@return
|
||||
memoryRemap::@return: scope:[memoryRemap] from memoryRemap
|
||||
[31] return
|
||||
to:@return
|
||||
|
||||
void gotoxy(byte gotoxy::x , byte gotoxy::y)
|
||||
gotoxy: scope:[gotoxy] from conio_mega65_init::@1
|
||||
[24] if(gotoxy::y#2<$19+1) goto gotoxy::@3
|
||||
[32] if(gotoxy::y#2<$19+1) goto gotoxy::@3
|
||||
to:gotoxy::@1
|
||||
gotoxy::@3: scope:[gotoxy] from gotoxy
|
||||
[25] phi()
|
||||
[33] phi()
|
||||
to:gotoxy::@1
|
||||
gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3
|
||||
[26] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 )
|
||||
[34] gotoxy::y#4 = phi( gotoxy::@3/gotoxy::y#2, gotoxy/0 )
|
||||
to:gotoxy::@2
|
||||
gotoxy::@2: scope:[gotoxy] from gotoxy::@1
|
||||
[27] conio_cursor_x = gotoxy::x#2
|
||||
[28] conio_cursor_y = gotoxy::y#4
|
||||
[29] gotoxy::$7 = (word)gotoxy::y#4
|
||||
[30] gotoxy::$8 = gotoxy::$7 << 2
|
||||
[31] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
|
||||
[32] gotoxy::line_offset#0 = gotoxy::$9 << 4
|
||||
[33] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
|
||||
[34] conio_line_text = gotoxy::$5
|
||||
[35] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
|
||||
[36] conio_line_color = gotoxy::$6
|
||||
[35] conio_cursor_x = gotoxy::x#2
|
||||
[36] conio_cursor_y = gotoxy::y#4
|
||||
[37] gotoxy::$7 = (word)gotoxy::y#4
|
||||
[38] gotoxy::$8 = gotoxy::$7 << 2
|
||||
[39] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
|
||||
[40] gotoxy::line_offset#0 = gotoxy::$9 << 4
|
||||
[41] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
|
||||
[42] conio_line_text = gotoxy::$5
|
||||
[43] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
|
||||
[44] conio_line_color = gotoxy::$6
|
||||
to:gotoxy::@return
|
||||
gotoxy::@return: scope:[gotoxy] from gotoxy::@2
|
||||
[37] return
|
||||
[45] return
|
||||
to:@return
|
||||
|
||||
void cputs(to_nomodify byte* cputs::s)
|
||||
cputs: scope:[cputs] from main
|
||||
[38] phi()
|
||||
[46] phi()
|
||||
to:cputs::@1
|
||||
cputs::@1: scope:[cputs] from cputs cputs::@2
|
||||
[39] cputs::s#2 = phi( cputs/main::s, cputs::@2/cputs::s#0 )
|
||||
[40] cputs::c#1 = *cputs::s#2
|
||||
[41] cputs::s#0 = ++ cputs::s#2
|
||||
[42] if(0!=cputs::c#1) goto cputs::@2
|
||||
[47] cputs::s#2 = phi( cputs/main::s, cputs::@2/cputs::s#0 )
|
||||
[48] cputs::c#1 = *cputs::s#2
|
||||
[49] cputs::s#0 = ++ cputs::s#2
|
||||
[50] if(0!=cputs::c#1) goto cputs::@2
|
||||
to:cputs::@return
|
||||
cputs::@return: scope:[cputs] from cputs::@1
|
||||
[43] return
|
||||
[51] return
|
||||
to:@return
|
||||
cputs::@2: scope:[cputs] from cputs::@1
|
||||
[44] cputc::c#0 = cputs::c#1
|
||||
[45] call cputc
|
||||
[52] cputc::c#0 = cputs::c#1
|
||||
[53] call cputc
|
||||
to:cputs::@1
|
||||
|
||||
void cputc(byte cputc::c)
|
||||
cputc: scope:[cputc] from cputs::@2
|
||||
[46] if(cputc::c#0=='
|
||||
[54] if(cputc::c#0=='
|
||||
') goto cputc::@1
|
||||
to:cputc::@2
|
||||
cputc::@2: scope:[cputc] from cputc
|
||||
[47] conio_line_text[conio_cursor_x] = cputc::c#0
|
||||
[48] conio_line_color[conio_cursor_x] = LIGHT_BLUE
|
||||
[49] conio_cursor_x = ++ conio_cursor_x
|
||||
[50] if(conio_cursor_x!=$50) goto cputc::@return
|
||||
[55] conio_line_text[conio_cursor_x] = cputc::c#0
|
||||
[56] conio_line_color[conio_cursor_x] = LIGHT_BLUE
|
||||
[57] conio_cursor_x = ++ conio_cursor_x
|
||||
[58] if(conio_cursor_x!=$50) goto cputc::@return
|
||||
to:cputc::@3
|
||||
cputc::@3: scope:[cputc] from cputc::@2
|
||||
[51] phi()
|
||||
[52] call cputln
|
||||
[59] phi()
|
||||
[60] call cputln
|
||||
to:cputc::@return
|
||||
cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3
|
||||
[53] return
|
||||
[61] return
|
||||
to:@return
|
||||
cputc::@1: scope:[cputc] from cputc
|
||||
[54] phi()
|
||||
[55] call cputln
|
||||
[62] phi()
|
||||
[63] call cputln
|
||||
to:cputc::@return
|
||||
|
||||
void cputln()
|
||||
cputln: scope:[cputln] from cputc::@1 cputc::@3
|
||||
[56] conio_line_text = conio_line_text + $50
|
||||
[57] conio_line_color = conio_line_color + $50
|
||||
[58] conio_cursor_x = 0
|
||||
[59] conio_cursor_y = ++ conio_cursor_y
|
||||
[60] call cscroll
|
||||
[64] conio_line_text = conio_line_text + $50
|
||||
[65] conio_line_color = conio_line_color + $50
|
||||
[66] conio_cursor_x = 0
|
||||
[67] conio_cursor_y = ++ conio_cursor_y
|
||||
[68] call cscroll
|
||||
to:cputln::@return
|
||||
cputln::@return: scope:[cputln] from cputln
|
||||
[61] return
|
||||
[69] return
|
||||
to:@return
|
||||
|
||||
void cscroll()
|
||||
cscroll: scope:[cscroll] from cputln
|
||||
[62] if(conio_cursor_y!=$19) goto cscroll::@return
|
||||
[70] if(conio_cursor_y!=$19) goto cscroll::@return
|
||||
to:cscroll::@1
|
||||
cscroll::@1: scope:[cscroll] from cscroll
|
||||
[63] phi()
|
||||
[64] call memcpy
|
||||
[71] phi()
|
||||
[72] call memcpy
|
||||
to:cscroll::@2
|
||||
cscroll::@2: scope:[cscroll] from cscroll::@1
|
||||
[65] phi()
|
||||
[66] call memcpy
|
||||
[73] phi()
|
||||
[74] call memcpy
|
||||
to:cscroll::@3
|
||||
cscroll::@3: scope:[cscroll] from cscroll::@2
|
||||
[67] phi()
|
||||
[68] call memset
|
||||
[75] phi()
|
||||
[76] call memset
|
||||
to:cscroll::@4
|
||||
cscroll::@4: scope:[cscroll] from cscroll::@3
|
||||
[69] phi()
|
||||
[70] call memset
|
||||
[77] phi()
|
||||
[78] call memset
|
||||
to:cscroll::@5
|
||||
cscroll::@5: scope:[cscroll] from cscroll::@4
|
||||
[71] conio_line_text = conio_line_text - $50
|
||||
[72] conio_line_color = conio_line_color - $50
|
||||
[73] conio_cursor_y = -- conio_cursor_y
|
||||
[79] conio_line_text = conio_line_text - $50
|
||||
[80] conio_line_color = conio_line_color - $50
|
||||
[81] conio_cursor_y = -- conio_cursor_y
|
||||
to:cscroll::@return
|
||||
cscroll::@return: scope:[cscroll] from cscroll cscroll::@5
|
||||
[74] return
|
||||
[82] return
|
||||
to:@return
|
||||
|
||||
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
|
||||
memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2
|
||||
[75] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM )
|
||||
[75] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$50, cscroll::@2/(void*)COLORRAM+$50 )
|
||||
[76] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50
|
||||
[77] memcpy::src#4 = (byte*)memcpy::source#2
|
||||
[78] memcpy::dst#4 = (byte*)memcpy::destination#2
|
||||
[83] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM )
|
||||
[83] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$50, cscroll::@2/(void*)COLORRAM+$50 )
|
||||
[84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50
|
||||
[85] memcpy::src#4 = (byte*)memcpy::source#2
|
||||
[86] memcpy::dst#4 = (byte*)memcpy::destination#2
|
||||
to:memcpy::@1
|
||||
memcpy::@1: scope:[memcpy] from memcpy memcpy::@2
|
||||
[79] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
|
||||
[79] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
|
||||
[80] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
|
||||
[87] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
|
||||
[87] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
|
||||
[88] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
|
||||
to:memcpy::@return
|
||||
memcpy::@return: scope:[memcpy] from memcpy::@1
|
||||
[81] return
|
||||
[89] return
|
||||
to:@return
|
||||
memcpy::@2: scope:[memcpy] from memcpy::@1
|
||||
[82] *memcpy::dst#2 = *memcpy::src#2
|
||||
[83] memcpy::dst#1 = ++ memcpy::dst#2
|
||||
[84] memcpy::src#1 = ++ memcpy::src#2
|
||||
[90] *memcpy::dst#2 = *memcpy::src#2
|
||||
[91] memcpy::dst#1 = ++ memcpy::dst#2
|
||||
[92] memcpy::src#1 = ++ memcpy::src#2
|
||||
to:memcpy::@1
|
||||
|
||||
void* memset(void* memset::str , byte memset::c , word memset::num)
|
||||
memset: scope:[memset] from cscroll::@3 cscroll::@4
|
||||
[85] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE )
|
||||
[85] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$50-$50, cscroll::@4/(void*)COLORRAM+(word)$19*$50-$50 )
|
||||
[93] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE )
|
||||
[93] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$50-$50, cscroll::@4/(void*)COLORRAM+(word)$19*$50-$50 )
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset
|
||||
[86] memset::end#0 = (byte*)memset::str#3 + $50
|
||||
[87] memset::dst#4 = (byte*)memset::str#3
|
||||
[94] memset::end#0 = (byte*)memset::str#3 + $50
|
||||
[95] memset::dst#4 = (byte*)memset::str#3
|
||||
to:memset::@2
|
||||
memset::@2: scope:[memset] from memset::@1 memset::@3
|
||||
[88] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
|
||||
[89] if(memset::dst#2!=memset::end#0) goto memset::@3
|
||||
[96] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
|
||||
[97] if(memset::dst#2!=memset::end#0) goto memset::@3
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@2
|
||||
[90] return
|
||||
[98] return
|
||||
to:@return
|
||||
memset::@3: scope:[memset] from memset::@2
|
||||
[91] *memset::dst#2 = memset::c#4
|
||||
[92] memset::dst#1 = ++ memset::dst#2
|
||||
[99] *memset::dst#2 = memset::c#4
|
||||
[100] memset::dst#1 = ++ memset::dst#2
|
||||
to:memset::@2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -61,6 +61,14 @@ byte* memcpy::src#2 src zp[2]:4 1.00250000125E9
|
||||
byte* memcpy::src#4 src zp[2]:4 1.0000001E7
|
||||
byte* memcpy::src_end
|
||||
byte* memcpy::src_end#0 src_end zp[2]:18 1.2625000025E8
|
||||
void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset)
|
||||
const byte* memoryRemap::aVal = (byte*) 252
|
||||
word memoryRemap::lowerPageOffset
|
||||
byte memoryRemap::remapBlocks
|
||||
word memoryRemap::upperPageOffset
|
||||
const byte* memoryRemap::xVal = (byte*) 253
|
||||
const byte* memoryRemap::yVal = (byte*) 254
|
||||
const byte* memoryRemap::zVal = (byte*) 255
|
||||
void* memset(void* memset::str , byte memset::c , word memset::num)
|
||||
byte memset::c
|
||||
byte memset::c#4 reg byte z 1.42857143E8
|
||||
|
@ -68,13 +68,13 @@ main: {
|
||||
lda BLOCK_8000+1
|
||||
sta BLOCK_4000+5
|
||||
ldx #0
|
||||
// copy the resulting values onto the screen
|
||||
// copy the resulting values onto the screen - it should show '-*-*-*'
|
||||
__b1:
|
||||
// for(char i=0;i<6;i++)
|
||||
cpx #6
|
||||
bcc __b2
|
||||
// memoryRemap256M(MEMORYBLOCK_4000, 0xff800-0x00040, 0)
|
||||
// Remap [$4000-$5fff] to both point to [$ff80000-$ff81fff] COLORAM! (notice usage of page offsets)
|
||||
// Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets)
|
||||
ldz #MEMORYBLOCK_4000
|
||||
lda #<$ff800-$40
|
||||
sta.z memoryRemap256M.lowerPageOffset
|
||||
|
@ -1118,7 +1118,7 @@ main: {
|
||||
// [10] phi main::i#2 = 0 [phi:main::@9->main::@1#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
jmp __b1
|
||||
// copy the resulting values onto the screen
|
||||
// copy the resulting values onto the screen - it should show '-*-*-*'
|
||||
// main::@1
|
||||
__b1:
|
||||
// [11] if(main::i#2<6) goto main::@2 -- vbuxx_lt_vbuc1_then_la1
|
||||
@ -1130,7 +1130,7 @@ main: {
|
||||
// main::@3
|
||||
__b3:
|
||||
// [13] call memoryRemap256M
|
||||
// Remap [$4000-$5fff] to both point to [$ff80000-$ff81fff] COLORAM! (notice usage of page offsets)
|
||||
// Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets)
|
||||
// [50] phi from main::@3 to memoryRemap256M [phi:main::@3->memoryRemap256M]
|
||||
memoryRemap256M_from___b3:
|
||||
// [50] phi memoryRemap256M::remapBlocks#2 = MEMORYBLOCK_4000 [phi:main::@3->memoryRemap256M#0] -- vbuzz=vbuc1
|
||||
@ -1713,7 +1713,7 @@ main: {
|
||||
// [10] phi from main::@9 to main::@1 [phi:main::@9->main::@1]
|
||||
// [10] phi main::i#2 = 0 [phi:main::@9->main::@1#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
// copy the resulting values onto the screen
|
||||
// copy the resulting values onto the screen - it should show '-*-*-*'
|
||||
// main::@1
|
||||
__b1:
|
||||
// for(char i=0;i<6;i++)
|
||||
@ -1724,7 +1724,7 @@ main: {
|
||||
// main::@3
|
||||
// memoryRemap256M(MEMORYBLOCK_4000, 0xff800-0x00040, 0)
|
||||
// [13] call memoryRemap256M
|
||||
// Remap [$4000-$5fff] to both point to [$ff80000-$ff81fff] COLORAM! (notice usage of page offsets)
|
||||
// Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets)
|
||||
// [50] phi from main::@3 to memoryRemap256M [phi:main::@3->memoryRemap256M]
|
||||
// [50] phi memoryRemap256M::remapBlocks#2 = MEMORYBLOCK_4000 [phi:main::@3->memoryRemap256M#0] -- vbuzz=vbuc1
|
||||
ldz #MEMORYBLOCK_4000
|
||||
|
@ -311,10 +311,10 @@ plexShowSprite: {
|
||||
// SPRITES_YPOS[plex_sprite_idx2] = ypos
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// ypos+21
|
||||
// ypos+22
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
// plex_free_next+1
|
||||
|
@ -190,7 +190,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@9
|
||||
[88] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[91] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[92] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
|
@ -109,7 +109,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@10
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
plexShowSprite::plex_sprite_idx2#2 = phi( plexShowSprite/plexShowSprite::plex_sprite_idx2#0 )
|
||||
plexShowSprite::plexFreeAdd1_ypos#1 = phi( plexShowSprite/plexShowSprite::plexFreeAdd1_ypos#0 )
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -522,8 +522,8 @@ Adding number conversion cast (unumber) 0 in PLEX_FREE_YPOS[plexSort::plexFreePr
|
||||
Adding number conversion cast (unumber) 0 in plex_free_next = 0
|
||||
Adding number conversion cast (unumber) 2 in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Adding number conversion cast (unumber) plexShowSprite::$0 in plexShowSprite::$0 = plex_sprite_idx * (unumber)2
|
||||
Adding number conversion cast (unumber) $15 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$15
|
||||
Adding number conversion cast (unumber) $16 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$16
|
||||
Adding number conversion cast (unumber) 1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + (unumber)1
|
||||
Adding number conversion cast (unumber) 7 in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -579,7 +579,7 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast $15
|
||||
Simplifying constant integer cast $16
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 0
|
||||
@ -614,7 +614,7 @@ Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $15
|
||||
Finalized unsigned number type (byte) $16
|
||||
Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 7
|
||||
Finalized unsigned number type (byte) 0
|
||||
@ -639,7 +639,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1
|
||||
Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1
|
||||
Inferred type updated to byte in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
Inferred type updated to byte in plexShowSprite::$9 = $ff ^ plex_sprite_msb
|
||||
@ -1102,7 +1102,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@9
|
||||
[88] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[91] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[92] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -2118,9 +2118,9 @@ plexShowSprite: {
|
||||
jmp plexFreeAdd1
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
plexFreeAdd1:
|
||||
// [89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// [89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
adc #$16
|
||||
// [90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
@ -2978,11 +2978,11 @@ plexShowSprite: {
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
// ypos+21
|
||||
// [89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// ypos+22
|
||||
// [89] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
// [90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
|
@ -152,10 +152,10 @@ plexShowSprite: {
|
||||
// SPRITES_YPOS[plex_sprite_idx2] = ypos
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// ypos+21
|
||||
// ypos+22
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
// plex_free_next+1
|
||||
|
@ -77,7 +77,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
[33] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[36] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[37] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
|
@ -110,7 +110,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
plexShowSprite::plex_sprite_idx2#2 = phi( plexShowSprite/plexShowSprite::plex_sprite_idx2#0 )
|
||||
plexShowSprite::plexFreeAdd1_ypos#1 = phi( plexShowSprite/plexShowSprite::plexFreeAdd1_ypos#0 )
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -516,8 +516,8 @@ Adding number conversion cast (unumber) 0 in PLEX_FREE_YPOS[plexSort::plexFreePr
|
||||
Adding number conversion cast (unumber) 0 in plex_free_next = 0
|
||||
Adding number conversion cast (unumber) 2 in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Adding number conversion cast (unumber) plexShowSprite::$0 in plexShowSprite::$0 = plex_sprite_idx * (unumber)2
|
||||
Adding number conversion cast (unumber) $15 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$15
|
||||
Adding number conversion cast (unumber) $16 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$0 in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + (unumber)$16
|
||||
Adding number conversion cast (unumber) 1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Adding number conversion cast (unumber) plexShowSprite::plexFreeAdd1_$1 in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + (unumber)1
|
||||
Adding number conversion cast (unumber) 7 in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -586,7 +586,7 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast $15
|
||||
Simplifying constant integer cast $16
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 0
|
||||
@ -623,7 +623,7 @@ Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $15
|
||||
Finalized unsigned number type (byte) $16
|
||||
Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) 7
|
||||
Finalized unsigned number type (byte) 0
|
||||
@ -650,7 +650,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1
|
||||
Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1
|
||||
Inferred type updated to byte in plexShowSprite::$0 = plex_sprite_idx * 2
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $15
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#1 + $16
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
Inferred type updated to byte in plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
Inferred type updated to byte in plexShowSprite::$9 = $ff ^ plex_sprite_msb
|
||||
@ -979,7 +979,7 @@ plexShowSprite: scope:[plexShowSprite] from plex_irq::@3
|
||||
[33] SPRITES_YPOS[plexShowSprite::plex_sprite_idx2#0] = plexShowSprite::plexFreeAdd1_ypos#0
|
||||
to:plexShowSprite::plexFreeAdd1
|
||||
plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite
|
||||
[34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15
|
||||
[34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16
|
||||
[35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0
|
||||
[36] plexShowSprite::plexFreeAdd1_$1 = plex_free_next + 1
|
||||
[37] plexShowSprite::plexFreeAdd1_$2 = plexShowSprite::plexFreeAdd1_$1 & 7
|
||||
@ -1866,9 +1866,9 @@ plexShowSprite: {
|
||||
jmp plexFreeAdd1
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
plexFreeAdd1:
|
||||
// [34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// [34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
adc #$16
|
||||
// [35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
@ -2826,11 +2826,11 @@ plexShowSprite: {
|
||||
ldy.z plex_sprite_idx2
|
||||
sta SPRITES_YPOS,y
|
||||
// plexShowSprite::plexFreeAdd1
|
||||
// ypos+21
|
||||
// [34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $15 -- vbuaa=vbuaa_plus_vbuc1
|
||||
// ypos+22
|
||||
// [34] plexShowSprite::plexFreeAdd1_$0 = plexShowSprite::plexFreeAdd1_ypos#0 + $16 -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #$15
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+21
|
||||
adc #$16
|
||||
// PLEX_FREE_YPOS[plex_free_next] = ypos+22
|
||||
// [35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 -- pbuc1_derefidx_vbuz1=vbuaa
|
||||
ldy.z plex_free_next
|
||||
sta PLEX_FREE_YPOS,y
|
||||
|
Loading…
Reference in New Issue
Block a user