mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-06 15:41:05 +00:00
Merge branch 'master' into fix-compiilation-performance-only-coalesce-zeropage
This commit is contained in:
commit
153ab54f10
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,3 +1,6 @@
|
||||
.project
|
||||
.tmpdirs
|
||||
/gen
|
||||
*/*.mon
|
||||
*/*.vs
|
||||
*/*.brk
|
||||
@ -5,11 +8,13 @@
|
||||
*/*.sym
|
||||
*/.tmpdirs
|
||||
*/bin/
|
||||
/target/
|
||||
*/workspace.xml
|
||||
**/.DS_Store
|
||||
.project
|
||||
.tmpdirs
|
||||
**/.vscode/*.log
|
||||
kickc.iml
|
||||
/.idea/*
|
||||
kickc.iml
|
||||
/.vscode/*
|
||||
**/.vscode/*
|
||||
**/.vscode/*.log
|
||||
**/target/*
|
||||
*/workspace.xml
|
||||
/gen/*
|
||||
/src/main/fragment/cache
|
24
pom.xml
24
pom.xml
@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<argLine>-Xmx2048m</argLine>
|
||||
</properties>
|
||||
@ -47,24 +47,24 @@
|
||||
<dependency>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr4</artifactId>
|
||||
<version>4.9.3</version>
|
||||
<version>4.12.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr4-runtime</artifactId>
|
||||
<version>4.9.3</version>
|
||||
<version>4.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>5.8.2</version>
|
||||
<version>5.9.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>info.picocli</groupId>
|
||||
<artifactId>picocli</artifactId>
|
||||
<version>4.6.2</version>
|
||||
<version>4.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.json</groupId>
|
||||
@ -124,7 +124,7 @@
|
||||
<plugin>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr4-maven-plugin</artifactId>
|
||||
<version>4.9.3</version>
|
||||
<version>4.12.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>antlr</id>
|
||||
@ -152,7 +152,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.0.0-M5</version>
|
||||
<version>3.0.0-M9</version>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>**/TestFragments.java</exclude>
|
||||
@ -167,7 +167,7 @@
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.8.7</version>
|
||||
<version>0.8.9</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>pre-unit-test</id>
|
||||
@ -187,7 +187,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
@ -201,7 +201,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<version>3.5.0</version>
|
||||
<version>5.1.8</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>bundle-manifest</id>
|
||||
@ -214,7 +214,7 @@
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<version>3.5.0</version>
|
||||
<configuration>
|
||||
<finalName>kickc</finalName>
|
||||
<tarLongFileMode>posix</tarLongFileMode>
|
||||
|
@ -75,6 +75,7 @@ LOCAL_RESERVE: '__zp_reserve' ;
|
||||
ADDRESS: '__address' ;
|
||||
ADDRESS_ZEROPAGE: '__zp' ;
|
||||
ADDRESS_MAINMEM: '__mem' ;
|
||||
BANK: '__bank' ;
|
||||
FORM_SSA: '__ssa' ;
|
||||
FORM_MA: '__ma' ;
|
||||
INTRINSIC: '__intrinsic' ;
|
||||
|
@ -136,7 +136,7 @@ parameterDecl
|
||||
;
|
||||
|
||||
pragma
|
||||
: PRAGMA NAME PAR_BEGIN pragmaParam (COMMA pragmaParam)* PAR_END
|
||||
: PRAGMA NAME PAR_BEGIN (pragmaParam (COMMA pragmaParam)* )? PAR_END
|
||||
;
|
||||
|
||||
pragmaParam
|
||||
@ -161,6 +161,7 @@ directive
|
||||
| EXTERN #directiveExtern
|
||||
| EXPORT #directiveExport
|
||||
| INLINE #directiveInline
|
||||
| BANK PAR_BEGIN NAME COMMA NUMBER PAR_END #directiveBank
|
||||
| INTRINSIC #directiveIntrinsic
|
||||
| INTERRUPT ( PAR_BEGIN NAME PAR_END )? #directiveInterrupt
|
||||
| LOCAL_RESERVE PAR_BEGIN pragmaParam ( COMMA pragmaParam )* PAR_END #directiveReserveZp
|
||||
@ -243,9 +244,10 @@ expr
|
||||
| expr ( '&&' ) expr #exprBinary
|
||||
| expr ( '||' ) expr #exprBinary
|
||||
| expr '?' expr COLON expr #exprTernary
|
||||
| <assoc=right> expr '=' expr #exprAssignment
|
||||
| <assoc=right> expr ASSIGN expr #exprAssignment
|
||||
| <assoc=right> expr ASSIGN_COMPOUND expr #exprAssignmentCompound
|
||||
| CURLY_BEGIN expr (COMMA expr )* COMMA? CURLY_END #initList
|
||||
| CURLY_BEGIN DOT NAME ASSIGN expr CURLY_END #initUnion
|
||||
| NAME #exprId
|
||||
| NUMBER #exprNumber
|
||||
| STRING+ #exprString
|
||||
|
4580
src/main/fragment/cache/fragment-cache-wdc65c02.asm
vendored
Normal file
4580
src/main/fragment/cache/fragment-cache-wdc65c02.asm
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
tsx
|
||||
sta STACK_BASE+{c1},x
|
@ -0,0 +1,3 @@
|
||||
tya
|
||||
tsx
|
||||
sta STACK_BASE+{c1},x
|
@ -0,0 +1,9 @@
|
||||
ldy {m1}
|
||||
lda {c1}+3,y
|
||||
pha
|
||||
lda {c1}+2,y
|
||||
pha
|
||||
lda {c1}+1,y
|
||||
pha
|
||||
lda {c1},y
|
||||
pha
|
@ -0,0 +1,8 @@
|
||||
lda #0
|
||||
pha
|
||||
lda #0
|
||||
pha
|
||||
lda {m1}+1
|
||||
pha
|
||||
lda {m1}
|
||||
pha
|
11
src/main/fragment/mos6502-common/call_phi_close_cx16_ram.asm
Normal file
11
src/main/fragment/mos6502-common/call_phi_close_cx16_ram.asm
Normal file
@ -0,0 +1,11 @@
|
||||
sta $ff
|
||||
lda $0
|
||||
pha
|
||||
lda #{c1}
|
||||
sta $0
|
||||
lda $ff
|
||||
jsr {la1}
|
||||
sta $ff
|
||||
pla
|
||||
sta $0
|
||||
lda $ff
|
11
src/main/fragment/mos6502-common/call_phi_close_cx16_rom.asm
Normal file
11
src/main/fragment/mos6502-common/call_phi_close_cx16_rom.asm
Normal file
@ -0,0 +1,11 @@
|
||||
sta $ff
|
||||
lda $1
|
||||
pha
|
||||
lda #{c1}
|
||||
sta $1
|
||||
lda $ff
|
||||
jsr {la1}
|
||||
sta $ff
|
||||
pla
|
||||
sta $1
|
||||
lda $ff
|
@ -0,0 +1,4 @@
|
||||
jsr $FF6E
|
||||
.byte <{la1}
|
||||
.byte >{la1}
|
||||
.byte {c1}
|
@ -0,0 +1,4 @@
|
||||
jsr $FF6E
|
||||
.byte <{la1}
|
||||
.byte >{la1}
|
||||
.byte {c1}
|
1
src/main/fragment/mos6502-common/call_phi_near.asm
Normal file
1
src/main/fragment/mos6502-common/call_phi_near.asm
Normal file
@ -0,0 +1 @@
|
||||
jsr {la1}
|
@ -1 +1 @@
|
||||
jmp $e034
|
||||
jmp (isr_vsync)
|
||||
|
@ -0,0 +1,7 @@
|
||||
lda #<{c1}
|
||||
cmp {c2}
|
||||
bne !+
|
||||
lda #>{c1}
|
||||
cmp {c2}+1
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,7 @@
|
||||
lda #<{c1}
|
||||
cmp #<{c2}
|
||||
bne !+
|
||||
lda #>{c1}
|
||||
cmp #>{c2}
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,8 @@
|
||||
lda ({z1}),y
|
||||
cmp #<{c1}
|
||||
bne !+
|
||||
iny
|
||||
lda ({z1}),y
|
||||
cmp #>{c1}
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,6 @@
|
||||
lda #<{c1}
|
||||
cmp {c2}
|
||||
bne {la1}
|
||||
lda #>{c1}
|
||||
cmp {c2}+1
|
||||
bne {la1}
|
@ -0,0 +1,4 @@
|
||||
lda ({z1}),y
|
||||
sec
|
||||
sbc #1
|
||||
sta ({z1}),y
|
@ -0,0 +1,6 @@
|
||||
lda {z1}
|
||||
cmp {c1}
|
||||
bne {la1}
|
||||
lda {z1}+1
|
||||
cmp {c1}+1
|
||||
bne {la1}
|
@ -0,0 +1,3 @@
|
||||
lda ({z1}),y
|
||||
cmp ({z2}),y
|
||||
bcc {la1}
|
@ -0,0 +1,7 @@
|
||||
ldy {m1}
|
||||
lda #{c2}
|
||||
sta {c1},y
|
||||
lda #0
|
||||
sta {c1}+1,y
|
||||
sta {c1}+2,y
|
||||
sta {c1}+3,y
|
@ -0,0 +1,8 @@
|
||||
ldy {m1}
|
||||
lda #<{c2}
|
||||
sta {c1},y
|
||||
lda #>{c2}
|
||||
sta {c1}+1,y
|
||||
lda #0
|
||||
sta {c1}+2,y
|
||||
sta {c1}+3,y
|
@ -0,0 +1,8 @@
|
||||
lda #<{c2}
|
||||
sta {c1},y
|
||||
lda #>{c2}
|
||||
sta {c1}+1,y
|
||||
lda #<{c2}>>$10
|
||||
sta {c1}+2,y
|
||||
lda #>{c2}>>$10
|
||||
sta {c1}+3,y
|
@ -0,0 +1,6 @@
|
||||
ldy #$00
|
||||
lda ({z1}),y
|
||||
sta {c1},x
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {c1}+1,x
|
10
src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm
Normal file
10
src/main/fragment/mos6502-common/pssm1=_deref_qssm1.asm
Normal file
@ -0,0 +1,10 @@
|
||||
ldy #0
|
||||
lda {m1}
|
||||
sta $fe
|
||||
lda {m1}+1
|
||||
sta $ff
|
||||
lda ($fe),y
|
||||
sta {m1}
|
||||
iny
|
||||
lda ($fe),y
|
||||
sta {m1}+1
|
@ -0,0 +1,11 @@
|
||||
lda #{c1}
|
||||
tay
|
||||
clc
|
||||
lda ({z2}),y
|
||||
adc #<{c2}
|
||||
sta {z1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
adc #>{c2}
|
||||
sta {z1}+1
|
||||
|
@ -0,0 +1,8 @@
|
||||
ldx #0
|
||||
!:
|
||||
lda {c1},x
|
||||
sta ({z1}),y
|
||||
iny
|
||||
inx
|
||||
cpx #{c2}
|
||||
bne !-
|
@ -0,0 +1,8 @@
|
||||
ldx #0
|
||||
!:
|
||||
lda {c1},x
|
||||
sta ({z1}),y
|
||||
iny
|
||||
inx
|
||||
cpx #{c2}
|
||||
bne !-
|
@ -0,0 +1,13 @@
|
||||
lda {c2},y
|
||||
sta $ff
|
||||
clc
|
||||
adc {c1},x
|
||||
sta {c1},x
|
||||
iny
|
||||
lda $ff
|
||||
ora #$7f
|
||||
bmi !+
|
||||
lda #0
|
||||
!:
|
||||
adc {c1}+1,x
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
lda {c1},x
|
||||
clc
|
||||
adc {m1}
|
||||
sta {c1},x
|
||||
bcc !+
|
||||
inc {c1}+1,x
|
||||
!:
|
@ -0,0 +1,6 @@
|
||||
ldy {c2}
|
||||
lda ({z1}),y
|
||||
sta {c1},x
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {c1}+1,x
|
@ -0,0 +1,13 @@
|
||||
lda {c2},x
|
||||
sta $ff
|
||||
clc
|
||||
adc {c1},y
|
||||
sta {c1},y
|
||||
iny
|
||||
lda $ff
|
||||
ora #$7f
|
||||
bmi !+
|
||||
lda #0
|
||||
!:
|
||||
adc {c1}+1,y
|
||||
sta {c1}+1,y
|
@ -0,0 +1,7 @@
|
||||
lda {c1},y
|
||||
clc
|
||||
adc {m1}
|
||||
sta {c1},y
|
||||
bcc !+
|
||||
inc {c1}+1,y
|
||||
!:
|
@ -0,0 +1,5 @@
|
||||
lda {c2}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda {c2}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,8 @@
|
||||
lda {m2}
|
||||
sta ({z1}),y
|
||||
ora #$7F
|
||||
bmi !+
|
||||
lda #$00
|
||||
!:
|
||||
iny
|
||||
sta ({z1}),y
|
@ -0,0 +1,5 @@
|
||||
sta ({z2}),y
|
||||
sta ({z1}),y
|
||||
iny
|
||||
sta ({z2}),y
|
||||
sta ({z1}),y
|
@ -0,0 +1,10 @@
|
||||
iny
|
||||
lda ({z1}),y
|
||||
bne !+
|
||||
dey
|
||||
lda ({z1}),y
|
||||
beq !e+
|
||||
lsr
|
||||
!:
|
||||
bpl {la1}
|
||||
!e:
|
@ -0,0 +1,10 @@
|
||||
iny
|
||||
lda ({z1}),y
|
||||
cmp #>{c1}
|
||||
bne !+
|
||||
dey
|
||||
lda ({z1}),y
|
||||
cmp #<{c1}
|
||||
beq {la1}
|
||||
!:
|
||||
bcc {la1}
|
@ -0,0 +1,8 @@
|
||||
ldy {m1}
|
||||
lda {c1},y
|
||||
sec
|
||||
sbc {m2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
sbc {m2}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,8 @@
|
||||
ldy {m1}
|
||||
lda {c1},y
|
||||
clc
|
||||
adc {m2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
adc {m2}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,6 @@
|
||||
lda {c1},x
|
||||
and #<{c2}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
and #>{c2}
|
||||
sta {c1}+1,x
|
@ -0,0 +1,6 @@
|
||||
lda {c1},x
|
||||
ora #<{c2}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
ora #>{c2}
|
||||
sta {c1}+1,x
|
@ -0,0 +1,6 @@
|
||||
lda {c1},x
|
||||
eor #<{c2}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
eor #>{c2}
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
lda {c1},x
|
||||
sec
|
||||
sbc {m1}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
sbc {m1}+1
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
lda {c1},x
|
||||
sec
|
||||
sbc {z1}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
sbc {z1}+1
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
lda {c1},x
|
||||
clc
|
||||
adc {m1}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
adc {m1}+1
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
clc
|
||||
lda {c1},x
|
||||
adc {z1}
|
||||
sta {c1},x
|
||||
lda {c1}+1,x
|
||||
adc {z1}+1
|
||||
sta {c1}+1,x
|
@ -0,0 +1,6 @@
|
||||
lda {c1},y
|
||||
and #<{c2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
and #>{c2}
|
||||
sta {c1}+1,y
|
@ -0,0 +1,6 @@
|
||||
lda {c1},y
|
||||
ora #<{c2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
ora #>{c2}
|
||||
sta {c1}+1,y
|
@ -0,0 +1,7 @@
|
||||
lda {c1},y
|
||||
sec
|
||||
sbc {m1}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
sbc {m1}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,7 @@
|
||||
lda {c1},y
|
||||
clc
|
||||
adc {m1}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
adc {m1}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,6 @@
|
||||
lda {c1}+1,y
|
||||
cmp {m1}+1
|
||||
bne {la1}
|
||||
lda {c1},y
|
||||
cmp {m1}
|
||||
bne {la1}
|
@ -0,0 +1,8 @@
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
sec
|
||||
sbc {z2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
sbc {z2}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,8 @@
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
clc
|
||||
adc {z2}
|
||||
sta {c1},y
|
||||
lda {c1}+1,y
|
||||
adc {z2}+1
|
||||
sta {c1}+1,y
|
@ -0,0 +1,9 @@
|
||||
lda {m1}
|
||||
sta $fe
|
||||
lda {m1}+1
|
||||
sta $ff
|
||||
lda {m2}
|
||||
sta ($fe),y
|
||||
iny
|
||||
lda {m2}+1
|
||||
sta ($fe),y
|
@ -0,0 +1,10 @@
|
||||
|
||||
sec
|
||||
ldy #{c1}
|
||||
lda ({z1}),y
|
||||
sbc {m2}
|
||||
sta ({z1}),y
|
||||
ldy #{c1}+1
|
||||
lda ({z1}),y
|
||||
sbc {m2}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,10 @@
|
||||
|
||||
clc
|
||||
ldy #{c1}
|
||||
lda ({z1}),y
|
||||
adc {m2}
|
||||
sta ({z1}),y
|
||||
ldy #{c1}+1
|
||||
lda ({z1}),y
|
||||
adc {m2}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,8 @@
|
||||
ldy #{c1}
|
||||
lda ({z1}),y
|
||||
ldy #{c1}
|
||||
sta ({z1}),y
|
||||
ldy #{c1}+1
|
||||
lda ({z1}),y
|
||||
ldy #{c1}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,8 @@
|
||||
ldy #{c2}
|
||||
lda ({z1}),y
|
||||
ldy #{c1}
|
||||
sta ({z1}),y
|
||||
ldy #{c2}+1
|
||||
lda ({z1}),y
|
||||
ldy #{c1}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,5 @@
|
||||
lda {c2}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda {c2}+1
|
||||
sta ({z1}),y
|
@ -0,0 +1,8 @@
|
||||
ldy {z2}
|
||||
lda ({z3}),y
|
||||
and #<{c1}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda ({z3}),y
|
||||
and #>{c1}
|
||||
sta ({z1}),y
|
@ -0,0 +1,8 @@
|
||||
ldy {z2}
|
||||
lda ({z3}),y
|
||||
ora #<{c1}
|
||||
sta ({z1}),y
|
||||
iny
|
||||
lda ({z3}),y
|
||||
ora #>{c1}
|
||||
sta ({z1}),y
|
6
src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm
Normal file
6
src/main/fragment/mos6502-common/qbuz1=qbuz1_plus_1.asm
Normal file
@ -0,0 +1,6 @@
|
||||
lda {z1}
|
||||
adc #1
|
||||
sta {z1}
|
||||
lda {z1}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
6
src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm
Normal file
6
src/main/fragment/mos6502-common/qbuz1=qbuz2_plus_1.asm
Normal file
@ -0,0 +1,6 @@
|
||||
lda {z2}
|
||||
adc #1
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
@ -0,0 +1,6 @@
|
||||
ldy #$00
|
||||
lda ({z1}),y
|
||||
sta {c1},x
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {c1}+1,x
|
@ -0,0 +1,6 @@
|
||||
ldy {c2}
|
||||
lda ({z1}),y
|
||||
sta {c1},x
|
||||
iny
|
||||
lda ({z1}),y
|
||||
sta {c1}+1,x
|
@ -0,0 +1,7 @@
|
||||
lda {z1}
|
||||
cmp {c1},x
|
||||
bne !+
|
||||
lda {z1}+1
|
||||
cmp {c1}+1,x
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,7 @@
|
||||
lda {z1}
|
||||
cmp {c1},y
|
||||
bne !+
|
||||
lda {z1}+1
|
||||
cmp {c1}+1,y
|
||||
beq {la1}
|
||||
!:
|
8
src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm
Normal file
8
src/main/fragment/mos6502-common/qssz1=qssz1_plus_1.asm
Normal file
@ -0,0 +1,8 @@
|
||||
clc
|
||||
lda {z1}
|
||||
adc #1
|
||||
sta {z1}
|
||||
lda {z1}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
||||
|
7
src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm
Normal file
7
src/main/fragment/mos6502-common/qssz1=qssz2_plus_1.asm
Normal file
@ -0,0 +1,7 @@
|
||||
clc
|
||||
lda {z2}
|
||||
adc #1
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
@ -0,0 +1,7 @@
|
||||
ldy #<{c1}
|
||||
lda ({z1}),y
|
||||
bne !+
|
||||
iny
|
||||
lda ({z1}),y
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,7 @@
|
||||
ldy #<{c1}
|
||||
lda ({z1}),y
|
||||
bne {la1}
|
||||
iny
|
||||
lda ({z1}),y
|
||||
bne {la1}
|
||||
!:
|
@ -0,0 +1 @@
|
||||
pla
|
@ -0,0 +1,7 @@
|
||||
cmp #{c1}
|
||||
bcs !+
|
||||
lda #0
|
||||
jmp !e+
|
||||
!:
|
||||
lda #1
|
||||
!e:
|
@ -0,0 +1,3 @@
|
||||
cmp #{c1}
|
||||
lda #0
|
||||
rol
|
@ -0,0 +1,7 @@
|
||||
lda {m2}
|
||||
sta $fe
|
||||
lda {m2}+1
|
||||
sta $ff
|
||||
lda ($fe),y
|
||||
and #{c1}
|
||||
sta {m1}
|
@ -0,0 +1,2 @@
|
||||
lda ({m2}),y
|
||||
sta {m1}
|
@ -0,0 +1,8 @@
|
||||
lda {c1},x
|
||||
sta {m1}
|
||||
inx
|
||||
lda {c1},x
|
||||
sta {m1}+1
|
||||
lda #0
|
||||
sta {m1}+2
|
||||
sta {m1}+3
|
@ -0,0 +1,8 @@
|
||||
lda {c1},y
|
||||
sta {m1}
|
||||
iny
|
||||
lda {c1},y
|
||||
sta {m1}+1
|
||||
lda #0
|
||||
sta {m1}+2
|
||||
sta {m1}+3
|
@ -0,0 +1,9 @@
|
||||
ldy #{c1}
|
||||
lda ({z2}),y
|
||||
sta {m1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
sta {m1}+1
|
||||
lda #0
|
||||
sta {m1}+2
|
||||
sta {m1}+3
|
@ -0,0 +1,5 @@
|
||||
sta {m1}+1
|
||||
sta {m1}+3
|
||||
lda #{c1}
|
||||
sta {m1}
|
||||
stx {m1}+2
|
@ -0,0 +1,5 @@
|
||||
sta {m1}+1
|
||||
lda #{c1}
|
||||
sta {m1}
|
||||
stx {m1}+2
|
||||
stx {m1}+3
|
@ -0,0 +1,5 @@
|
||||
sta {m1}+1
|
||||
lda #{c1}
|
||||
sta {m1}
|
||||
stx {m1}+2
|
||||
sty {m1}+3
|
13
src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm
Normal file
13
src/main/fragment/mos6502-common/vdum1=_neg_vdum1.asm
Normal file
@ -0,0 +1,13 @@
|
||||
sec
|
||||
lda #0
|
||||
sbc {m1}
|
||||
sta {m1}
|
||||
lda #0
|
||||
sbc {m1}+1
|
||||
sta {m1}+1
|
||||
lda #0
|
||||
sbc {m1}+2
|
||||
sta {m1}+2
|
||||
lda #0
|
||||
sbc {m1}+3
|
||||
sta {m1}+3
|
13
src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm
Normal file
13
src/main/fragment/mos6502-common/vdum1=_neg_vdum2.asm
Normal file
@ -0,0 +1,13 @@
|
||||
sec
|
||||
lda #0
|
||||
sbc {m2}
|
||||
sta {m1}
|
||||
lda #0
|
||||
sbc {m2}+1
|
||||
sta {m1}+1
|
||||
lda #0
|
||||
sbc {m2}+2
|
||||
sta {m1}+2
|
||||
lda #0
|
||||
sbc {m2}+3
|
||||
sta {m1}+3
|
12
src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm
Normal file
12
src/main/fragment/mos6502-common/vdum1=vdum1_ror_3.asm
Normal file
@ -0,0 +1,12 @@
|
||||
lsr {m1}+3
|
||||
ror {m1}+2
|
||||
ror {m1}+1
|
||||
ror {m1}
|
||||
lsr {m1}+3
|
||||
ror {m1}+2
|
||||
ror {m1}+1
|
||||
ror {m1}
|
||||
lsr {m1}+3
|
||||
ror {m1}+2
|
||||
ror {m1}+1
|
||||
ror {m1}
|
13
src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm
Normal file
13
src/main/fragment/mos6502-common/vdum1=vdum2_minus_1.asm
Normal file
@ -0,0 +1,13 @@
|
||||
sec
|
||||
lda {m2}
|
||||
sbc #1
|
||||
sta {m1}
|
||||
lda {m2}+1
|
||||
sbc #0
|
||||
sta {m1}+1
|
||||
lda {m2}+2
|
||||
sbc #0
|
||||
sta {m1}+2
|
||||
lda {m2}+3
|
||||
sbc #0
|
||||
sta {m1}+3
|
13
src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm
Normal file
13
src/main/fragment/mos6502-common/vdum1=vdum2_minus_vdum1.asm
Normal file
@ -0,0 +1,13 @@
|
||||
sec
|
||||
lda {m2}
|
||||
sbc {m1}
|
||||
sta {m1}
|
||||
lda {m2}+1
|
||||
sbc {m1}+1
|
||||
sta {m1}+1
|
||||
lda {m2}+2
|
||||
sbc {m1}+2
|
||||
sta {m1}+2
|
||||
lda {m2}+3
|
||||
sbc {m1}+3
|
||||
sta {m1}+3
|
@ -15,4 +15,4 @@ rol {m1}+3
|
||||
asl {m1}
|
||||
rol {m1}+1
|
||||
rol {m1}+2
|
||||
rol {m1}+3
|
||||
rol {m1}+3
|
||||
|
20
src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm
Normal file
20
src/main/fragment/mos6502-common/vdum1=vwum2_rol_5.asm
Normal file
@ -0,0 +1,20 @@
|
||||
lda {m2}
|
||||
asl
|
||||
sta {m1}
|
||||
lda {m2}+1
|
||||
rol
|
||||
sta {m1}+1
|
||||
lda {m2}+2
|
||||
rol
|
||||
sta {m1}+2
|
||||
lda {m2}+3
|
||||
rol
|
||||
sta {m1}+3
|
||||
asl {m1}
|
||||
rol {m1}+1
|
||||
rol {m1}+2
|
||||
rol {m1}+3
|
||||
asl {m1}
|
||||
rol {m1}+1
|
||||
rol {m1}+2
|
||||
rol {m1}+3
|
16
src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm
Normal file
16
src/main/fragment/mos6502-common/vdum1_gt_vduc1_then_la1.asm
Normal file
@ -0,0 +1,16 @@
|
||||
lda #>{c1}>>$10
|
||||
cmp {m1}+3
|
||||
bcc {la1}
|
||||
bne !+
|
||||
lda #<{c1}>>$10
|
||||
cmp {m1}+2
|
||||
bcc {la1}
|
||||
bne !+
|
||||
lda #>{c1}
|
||||
cmp {m1}+1
|
||||
bcc {la1}
|
||||
bne !+
|
||||
lda #<{c1}
|
||||
cmp {m1}
|
||||
bcc {la1}
|
||||
!:
|
17
src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm
Normal file
17
src/main/fragment/mos6502-common/vdum1_le_vduc1_then_la1.asm
Normal file
@ -0,0 +1,17 @@
|
||||
lda {m1}+3
|
||||
cmp #>{c1}>>$10
|
||||
bcc {la1}
|
||||
bne {la1}
|
||||
lda {m1}+2
|
||||
cmp #<{c1}>>$10
|
||||
bcc {la1}
|
||||
bne {la1}
|
||||
lda {m1}+1
|
||||
cmp #>{c1}
|
||||
bcc {la1}
|
||||
bne {la1}
|
||||
lda {m1}
|
||||
cmp #<{c1}
|
||||
bcc {la1}
|
||||
bne {la1}
|
||||
!:
|
@ -0,0 +1,12 @@
|
||||
lda {m1}+3
|
||||
cmp {m2}+3
|
||||
bne {la1}
|
||||
lda {m1}+2
|
||||
cmp {m2}+2
|
||||
bne {la1}
|
||||
lda {m1}+1
|
||||
cmp {m2}+1
|
||||
bne {la1}
|
||||
lda {m1}
|
||||
cmp {m2}
|
||||
bne {la1}
|
@ -0,0 +1,8 @@
|
||||
lda {c1},x
|
||||
sta {z1}
|
||||
inx
|
||||
lda {c1},x
|
||||
sta {z1}+1
|
||||
lda #0
|
||||
sta {z1}+2
|
||||
sta {z1}+3
|
@ -0,0 +1,8 @@
|
||||
lda {c1},y
|
||||
sta {z1}
|
||||
iny
|
||||
lda {c1},y
|
||||
sta {z1}+1
|
||||
lda #0
|
||||
sta {z1}+2
|
||||
sta {z1}+3
|
@ -0,0 +1,9 @@
|
||||
ldy #{c1}
|
||||
lda ({z2}),y
|
||||
sta {z1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
sta {z1}+1
|
||||
lda #0
|
||||
sta {z1}+2
|
||||
sta {z1}+3
|
@ -0,0 +1,8 @@
|
||||
lda ({z2}),y
|
||||
clc
|
||||
adc {c2}
|
||||
sta {m1}
|
||||
iny
|
||||
lda ({z2}),y
|
||||
adc #0
|
||||
sta {m1}+1
|
@ -0,0 +1,11 @@
|
||||
clc
|
||||
lda ({z2}),y
|
||||
adc {m1}
|
||||
sta {m1}
|
||||
lda ({z2}),y
|
||||
ora #$7f
|
||||
bmi !+
|
||||
lda #0
|
||||
!:
|
||||
adc {m1}+1
|
||||
sta {m1}+1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user