1
0
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:
jespergravgaard 2020-12-29 19:22:56 +01:00
commit 598e17b468
29 changed files with 1263 additions and 2290 deletions

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
//FRAGMENT vbuz1=vbuc1
lda #{c1}
sta {z1}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
//FRAGMENT vbuz1=vbuc1
lda #{c1}
sta {z1}

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 13789539dd 13789557f9
//KICKC FRAGMENT CACHE 1278e4964d 1278e4b477
//FRAGMENT vwuz1=vwuc1
lda #<{c1}
sta {z1}

View File

@ -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);
}
}

View File

@ -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;
}
}
}

View File

@ -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++)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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: {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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