1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-25 11:32:07 +00:00

Added missing fragments.

This commit is contained in:
jespergravgaard 2020-10-04 23:08:53 +02:00
parent 946327da37
commit e3cd22ecab
13 changed files with 410 additions and 7579 deletions

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 1097427c14 109742972a //KICKC FRAGMENT CACHE 1098941965 1098943491
//FRAGMENT vbuz1=vbuc1 //FRAGMENT vbuz1=vbuc1
lda #{c1} lda #{c1}
sta {z1} sta {z1}

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 1097427c14 109742972a //KICKC FRAGMENT CACHE 1098941965 1098943491
//FRAGMENT _deref_pbuc1=vbuc2 //FRAGMENT _deref_pbuc1=vbuc2
lda #{c2} lda #{c2}
sta {c1} sta {c1}

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 1097427c14 109742972a //KICKC FRAGMENT CACHE 1098941965 1098943491
//FRAGMENT vbuz1=vbuc1 //FRAGMENT vbuz1=vbuc1
lda #{c1} lda #{c1}
sta {z1} sta {z1}

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 1097427c14 109742972a //KICKC FRAGMENT CACHE 1098941965 1098943491
//FRAGMENT vbuz1=vbuc1 //FRAGMENT vbuz1=vbuc1
lda #{c1} lda #{c1}
sta {z1} sta {z1}
@ -14811,17 +14811,15 @@ lda #0
iny iny
sta ({z1}),y sta ({z1}),y
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbuc2 //FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbuc2
NO_SYNTHESIS lda #{c2}
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbsc2 ldy #{c1}
NO_SYNTHESIS clc
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwuc2 adc ({z1}),y
NO_SYNTHESIS sta ({z1}),y
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwsc2 iny
NO_SYNTHESIS lda #0
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vduc2 adc ({z1}),y
NO_SYNTHESIS sta ({z1}),y
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vdsc2
NO_SYNTHESIS
//FRAGMENT vwuz1=_deref_pwuz2_ror_8 //FRAGMENT vwuz1=_deref_pwuz2_ror_8
ldy #1 ldy #1
lda ({z2}),y lda ({z2}),y
@ -14829,23 +14827,21 @@ sta {z1}
lda #0 lda #0
sta {z1}+1 sta {z1}+1
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2 //FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2
NO_SYNTHESIS ldy #{c1}
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vduc2 lda #<{c2}
NO_SYNTHESIS eor ({z1}),y
//FRAGMENT pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vdsc2 sta ({z1}),y
NO_SYNTHESIS iny
lda #>{c2}
eor ({z1}),y
sta ({z1}),y
//FRAGMENT vwuz1=pwuz2_derefidx_vbuc1_ror_8 //FRAGMENT vwuz1=pwuz2_derefidx_vbuc1_ror_8
NO_SYNTHESIS ldy #{c1}
//FRAGMENT vwuz1=pwuz2_derefidx_vbsc1_ror_8 lda #0
NO_SYNTHESIS sta {z1}+1
//FRAGMENT vwuz1=pwuz2_derefidx_vwuc1_ror_8 iny
NO_SYNTHESIS lda ({z2}),y
//FRAGMENT vwuz1=pwuz2_derefidx_vwsc1_ror_8 sta {z1}
NO_SYNTHESIS
//FRAGMENT vwuz1=pwuz2_derefidx_vduc1_ror_8
NO_SYNTHESIS
//FRAGMENT vwuz1=pwuz2_derefidx_vdsc1_ror_8
NO_SYNTHESIS
//FRAGMENT vwuz1_lt_vbuz2_then_la1 //FRAGMENT vwuz1_lt_vbuz2_then_la1
lda {z1}+1 lda {z1}+1
bne !+ bne !+
@ -14952,6 +14948,14 @@ lda #{c2}
clc clc
adc {c1},y adc {c1},y
tay tay
//FRAGMENT vwuz1_lt_vbuxx_then_la1
lda {z1}+1
bne !+
stx $ff
lda {z1}
cmp $ff
bcc {la1}
!:
//FRAGMENT vwuz1_ge_vbuxx_then_la1 //FRAGMENT vwuz1_ge_vbuxx_then_la1
lda {z1}+1 lda {z1}+1
bne {la1} bne {la1}
@ -14968,14 +14972,10 @@ lda {z1}
cmp $ff cmp $ff
bcs {la1} bcs {la1}
!: !:
//FRAGMENT vbuaa=vbuz1_minus_2 //FRAGMENT vbuz1=vbuxx_minus_2
lda {z1}
sec
sbc #2
//FRAGMENT vbuxx=vbuz1_minus_2
ldx {z1}
dex dex
dex dex
stx {z1}
//FRAGMENT pbuc1_derefidx_vbuaa=_byte_vwuz1 //FRAGMENT pbuc1_derefidx_vbuaa=_byte_vwuz1
tay tay
lda {z1} lda {z1}
@ -15005,6 +15005,14 @@ ldx {z1}+1
lda {z1} lda {z1}
//FRAGMENT vbuxx=_lo_pvoz1 //FRAGMENT vbuxx=_lo_pvoz1
ldx {z1} ldx {z1}
//FRAGMENT vbuaa=vbuz1_minus_2
lda {z1}
sec
sbc #2
//FRAGMENT vbuxx=vbuz1_minus_2
ldx {z1}
dex
dex
//FRAGMENT vbuyy=vbuz1_minus_2 //FRAGMENT vbuyy=vbuz1_minus_2
ldy {z1} ldy {z1}
dey dey
@ -15020,17 +15028,12 @@ sta {z1}
dey dey
sty {z1}+1 sty {z1}+1
//FRAGMENT vwuz1=pwuz1_derefidx_vbuc1_ror_8 //FRAGMENT vwuz1=pwuz1_derefidx_vbuc1_ror_8
NO_SYNTHESIS ldy #{c1}
//FRAGMENT vwuz1=pwuz1_derefidx_vbsc1_ror_8 iny
NO_SYNTHESIS lda ({z1}),y
//FRAGMENT vwuz1=pwuz1_derefidx_vwuc1_ror_8 sta {z1}
NO_SYNTHESIS lda #0
//FRAGMENT vwuz1=pwuz1_derefidx_vwsc1_ror_8 sta {z1}+1
NO_SYNTHESIS
//FRAGMENT vwuz1=pwuz1_derefidx_vduc1_ror_8
NO_SYNTHESIS
//FRAGMENT vwuz1=pwuz1_derefidx_vdsc1_ror_8
NO_SYNTHESIS
//FRAGMENT _deref_pbuz1=vbum2 //FRAGMENT _deref_pbuz1=vbum2
lda {m2} lda {m2}
ldy #0 ldy #0
@ -15048,6 +15051,59 @@ lda {m1}
ldx {m1} ldx {m1}
//FRAGMENT vbuyy=vbum1 //FRAGMENT vbuyy=vbum1
ldy {m1} ldy {m1}
//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuz2
ldy {z2}
lda {c2},y
clc
adc #<{c1}
sta {z1}
lda #>{c1}
adc #0
sta {z1}+1
//FRAGMENT pbuz1_derefidx_vbuz2=_byte_vwuz3
lda {z3}
ldy {z2}
sta ({z1}),y
//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuaa
tay
lda {c2},y
clc
adc #<{c1}
sta {z1}
lda #>{c1}
adc #0
sta {z1}+1
//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuxx
lda {c2},x
clc
adc #<{c1}
sta {z1}
lda #>{c1}
adc #0
sta {z1}+1
//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuyy
lda {c2},y
clc
adc #<{c1}
sta {z1}
lda #>{c1}
adc #0
sta {z1}+1
//FRAGMENT pbuz1_derefidx_vbuxx=_byte_vwuz2
txa
tay
lda {z2}
sta ({z1}),y
//FRAGMENT pbuz1_derefidx_vbuyy=_byte_vwuz2
lda {z2}
sta ({z1}),y
//FRAGMENT vbuz1=vbuz2_bor__hi_vwuz3
lda {z2}
ora {z3}+1
sta {z1}
//FRAGMENT vbuz1=vbuz1_bor_vbuaa
ora {z1}
sta {z1}
//FRAGMENT pbuz1_ge_pbuc1_then_la1 //FRAGMENT pbuz1_ge_pbuc1_then_la1
lda {z1}+1 lda {z1}+1
cmp #>{c1} cmp #>{c1}
@ -15427,6 +15483,34 @@ sta {c1}
lda {c1} lda {c1}
cmp #0 cmp #0
bne {la1} bne {la1}
//FRAGMENT pbuz1_derefidx_vbuc1=_byte_vwuz2
ldy #{c1}
lda {z2}
sta ({z1}),y
//FRAGMENT pssz1=pssc1_plus_vwuz2
lda {z2}
clc
adc #<{c1}
sta {z1}
lda {z2}+1
adc #>{c1}
sta {z1}+1
//FRAGMENT _deref_pssz1=_deref_pssz2_memcpy_vbuc1
ldy #00
!:
lda ({z2}),y
sta ({z1}),y
iny
cpy #{c1}
bne !-
//FRAGMENT pssz1=pssc1_plus_vwuz1
clc
lda {z1}
adc #<{c1}
sta {z1}
lda {z1}+1
adc #>{c1}
sta {z1}+1
//FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuc2 //FRAGMENT _deref_pbuc1=_deref_pbuc1_plus_vbuc2
lda #{c2} lda #{c2}
clc clc
@ -16229,22 +16313,6 @@ lda ({z1}),y
sta {z1}+1 sta {z1}+1
pla pla
sta {z1} sta {z1}
//FRAGMENT pssz1=pssc1_plus_vwuz2
lda {z2}
clc
adc #<{c1}
sta {z1}
lda {z2}+1
adc #>{c1}
sta {z1}+1
//FRAGMENT pssz1=pssc1_plus_vwuz1
clc
lda {z1}
adc #<{c1}
sta {z1}
lda {z1}+1
adc #>{c1}
sta {z1}+1
//FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1 //FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1
ldy #0 ldy #0
lda ({z1}),y lda ({z1}),y
@ -18625,14 +18693,6 @@ sta {c1},y
lda {c1}+1,y lda {c1}+1,y
eor #>{c2} eor #>{c2}
sta {c1}+1,y sta {c1}+1,y
//FRAGMENT vwuz1_lt_vbuxx_then_la1
lda {z1}+1
bne !+
stx $ff
lda {z1}
cmp $ff
bcc {la1}
!:
//FRAGMENT vwuz1_lt_vbuyy_then_la1 //FRAGMENT vwuz1_lt_vbuyy_then_la1
lda {z1}+1 lda {z1}+1
bne !+ bne !+
@ -18641,10 +18701,6 @@ lda {z1}
cmp $ff cmp $ff
bcc {la1} bcc {la1}
!: !:
//FRAGMENT vbuz1=vbuxx_minus_2
dex
dex
stx {z1}
//FRAGMENT pwuc1_derefidx_vbuz1=vbuaa //FRAGMENT pwuc1_derefidx_vbuz1=vbuaa
ldy {z1} ldy {z1}
sta {c1},y sta {c1},y

View File

@ -1,4 +1,4 @@
//KICKC FRAGMENT CACHE 1097427c14 109742972a //KICKC FRAGMENT CACHE 1098941965 1098943491
//FRAGMENT vbuz1=_deref_pbuc1 //FRAGMENT vbuz1=_deref_pbuc1
lda {c1} lda {c1}
sta {z1} sta {z1}

View File

@ -0,0 +1,7 @@
lda #<{c1}
eor ({z1}),y
sta ({z1}),y
iny
lda #>{c1}
eor ({z1}),y
sta ({z1}),y

View File

@ -0,0 +1,7 @@
clc
adc ({z1}),y
sta ({z1}),y
iny
lda #0
adc ({z1}),y
sta ({z1}),y

View File

@ -0,0 +1,5 @@
lda #0
sta {m1}+1
iny
lda ({z2}),y
sta {m1}

View File

@ -0,0 +1,5 @@
iny
lda ({z1}),y
sta {z1}
lda #0
sta {z1}+1

View File

@ -218,4 +218,17 @@ public class StatementSource implements Serializable {
return ""; return "";
} }
} }
public String toStringShort() {
if(getFileName() != null) {
String fileName = getFileName();
final int slashIdx = fileName.lastIndexOf("/");
if(slashIdx>0)
fileName = fileName.substring(slashIdx+1);
return "File " + fileName + "\nLine " + getLineNumber() + "\n" + getCode();
} else {
return "";
}
}
} }

View File

@ -804,7 +804,7 @@ public class Pass4CodeGeneration {
generateStatementAsm(asm, block, statement, aluState, true); generateStatementAsm(asm, block, statement, aluState, true);
} catch(AsmFragmentTemplateSynthesizer.UnknownFragmentException e) { } catch(AsmFragmentTemplateSynthesizer.UnknownFragmentException e) {
if(warnFragmentMissing) { if(warnFragmentMissing) {
program.getLog().append("Warning! Unknown fragment for statement " + statement.toString(program, false) + "\nMissing ASM fragment " + e.getFragmentSignature() + "\n" + statement.getSource().toString()); program.getLog().append("Warning! Unknown fragment for statement " + statement.toString(program, false) + "\nMissing ASM fragment " + e.getFragmentSignature() + "\n" + statement.getSource().toStringShort());
asm.addLine(new AsmInlineKickAsm(".assert \"Missing ASM fragment " + e.getFragmentSignature() + "\", 0, 1", 0L, 0L)); asm.addLine(new AsmInlineKickAsm(".assert \"Missing ASM fragment " + e.getFragmentSignature() + "\", 0, 1", 0L, 0L));
} else { } else {
throw new CompileError("Unknown fragment for statement " + statement.toString(program, false) + "\nMissing ASM fragment " + e.getFragmentSignature(), statement.getSource()); throw new CompileError("Unknown fragment for statement " + statement.toString(program, false) + "\nMissing ASM fragment " + e.getFragmentSignature(), statement.getSource());

View File

@ -395,7 +395,15 @@ main: {
adc (__63),y adc (__63),y
sta (__63),y sta (__63),y
// balls[i].y_velocity += WEIGHT // balls[i].y_velocity += WEIGHT
.assert "Missing ASM fragment Fragment not found pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbuc2. Attempted variations pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbuc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vbsc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwuc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vwsc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vduc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_plus_vdsc2 ", 0, 1 lda #$10
ldy #6
clc
adc (__63),y
sta (__63),y
iny
lda #0
adc (__63),y
sta (__63),y
// balls[i].y_position += (balls[i].y_velocity += WEIGHT) // balls[i].y_position += (balls[i].y_velocity += WEIGHT)
ldy #6 ldy #6
clc clc
@ -429,7 +437,14 @@ main: {
lda.z __44+1 lda.z __44+1
adc #>balls adc #>balls
sta.z __71+1 sta.z __71+1
.assert "Missing ASM fragment Fragment not found pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2. Attempted variations pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vduc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vdsc2 ", 0, 1 ldy #4
lda #<$ffff
eor (__71),y
sta (__71),y
iny
lda #>$ffff
eor (__71),y
sta (__71),y
__b9: __b9:
// balls[i].y_position >> 8 // balls[i].y_position >> 8
lda.z __44 lda.z __44
@ -439,8 +454,18 @@ main: {
lda.z __44+1 lda.z __44+1
adc #>balls adc #>balls
sta.z __69+1 sta.z __69+1
.assert "Missing ASM fragment Fragment not found vwuz1=pwuz2_derefidx_vbuc1_ror_8. Attempted variations vwuz1=pwuz2_derefidx_vbuc1_ror_8 vwuz1=pwuz2_derefidx_vbsc1_ror_8 vwuz1=pwuz2_derefidx_vwuc1_ror_8 vwuz1=pwuz2_derefidx_vwsc1_ror_8 vwuz1=pwuz2_derefidx_vduc1_ror_8 vwuz1=pwuz2_derefidx_vdsc1_ror_8 ", 0, 1 ldy #2
.assert "Missing ASM fragment Fragment not found vwuz1=pwuz1_derefidx_vbuc1_ror_8. Attempted variations vwuz1=pwuz1_derefidx_vbuc1_ror_8 vwuz1=pwuz1_derefidx_vbsc1_ror_8 vwuz1=pwuz1_derefidx_vwuc1_ror_8 vwuz1=pwuz1_derefidx_vwsc1_ror_8 vwuz1=pwuz1_derefidx_vduc1_ror_8 vwuz1=pwuz1_derefidx_vdsc1_ror_8 ", 0, 1 lda #0
sta.z __23+1
iny
lda (__69),y
sta.z __23
ldy #2
iny
lda (__25),y
sta.z __25
lda #0
sta.z __25+1
// h_bar + 8 // h_bar + 8
lax.z h_bar lax.z h_bar
axs #-[8] axs #-[8]
@ -466,7 +491,14 @@ main: {
lda.z __44+1 lda.z __44+1
adc #>balls adc #>balls
sta.z __76+1 sta.z __76+1
.assert "Missing ASM fragment Fragment not found pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2. Attempted variations pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vwuc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vduc2 pwuz1_derefidx_vbuc1=pwuz1_derefidx_vbuc1_bxor_vdsc2 ", 0, 1 ldy #6
lda #<$ffff
eor (__76),y
sta (__76),y
iny
lda #>$ffff
eor (__76),y
sta (__76),y
// h_bar - 2 // h_bar - 2
lda.z h_bar lda.z h_bar
sec sec
@ -494,7 +526,12 @@ main: {
lda.z __73+1 lda.z __73+1
adc #>balls adc #>balls
sta.z __73+1 sta.z __73+1
.assert "Missing ASM fragment Fragment not found vwuz1=pwuz2_derefidx_vbuc1_ror_8. Attempted variations vwuz1=pwuz2_derefidx_vbuc1_ror_8 vwuz1=pwuz2_derefidx_vbsc1_ror_8 vwuz1=pwuz2_derefidx_vwuc1_ror_8 vwuz1=pwuz2_derefidx_vwsc1_ror_8 vwuz1=pwuz2_derefidx_vduc1_ror_8 vwuz1=pwuz2_derefidx_vdsc1_ror_8 ", 0, 1 ldy #2
lda #0
sta.z __32+1
iny
lda (__73),y
sta.z __32
// SPRITE_BUFFER[sprite_idx].y = (unsigned char) (balls[i].y_position >> 8) // SPRITE_BUFFER[sprite_idx].y = (unsigned char) (balls[i].y_position >> 8)
lda.z sprite_idx lda.z sprite_idx
asl asl

File diff suppressed because it is too large Load Diff