mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-03 07:29:37 +00:00
Merge branch 'master' into 815-procedure-compilation
# Conflicts: # src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java # src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java # src/test/ref/printf-17.log # src/test/ref/printf-18.log # src/test/ref/printf-19.log
This commit is contained in:
commit
a20fd82d2d
17
.gitignore
vendored
17
.gitignore
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
.project
|
||||||
|
.tmpdirs
|
||||||
|
/gen
|
||||||
*/*.mon
|
*/*.mon
|
||||||
*/*.vs
|
*/*.vs
|
||||||
*/*.brk
|
*/*.brk
|
||||||
|
@ -5,11 +8,13 @@
|
||||||
*/*.sym
|
*/*.sym
|
||||||
*/.tmpdirs
|
*/.tmpdirs
|
||||||
*/bin/
|
*/bin/
|
||||||
/target/
|
|
||||||
*/workspace.xml
|
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
.project
|
kickc.iml
|
||||||
.tmpdirs
|
|
||||||
**/.vscode/*.log
|
|
||||||
/.idea/*
|
/.idea/*
|
||||||
kickc.iml
|
/.vscode/*
|
||||||
|
**/.vscode/*
|
||||||
|
**/.vscode/*.log
|
||||||
|
**/target/*
|
||||||
|
*/workspace.xml
|
||||||
|
/gen/*
|
||||||
|
/src/main/fragment/cache
|
|
@ -75,6 +75,7 @@ LOCAL_RESERVE: '__zp_reserve' ;
|
||||||
ADDRESS: '__address' ;
|
ADDRESS: '__address' ;
|
||||||
ADDRESS_ZEROPAGE: '__zp' ;
|
ADDRESS_ZEROPAGE: '__zp' ;
|
||||||
ADDRESS_MAINMEM: '__mem' ;
|
ADDRESS_MAINMEM: '__mem' ;
|
||||||
|
BANK: '__bank' ;
|
||||||
FORM_SSA: '__ssa' ;
|
FORM_SSA: '__ssa' ;
|
||||||
FORM_MA: '__ma' ;
|
FORM_MA: '__ma' ;
|
||||||
INTRINSIC: '__intrinsic' ;
|
INTRINSIC: '__intrinsic' ;
|
||||||
|
|
|
@ -136,7 +136,7 @@ parameterDecl
|
||||||
;
|
;
|
||||||
|
|
||||||
pragma
|
pragma
|
||||||
: PRAGMA NAME PAR_BEGIN pragmaParam (COMMA pragmaParam)* PAR_END
|
: PRAGMA NAME PAR_BEGIN (pragmaParam (COMMA pragmaParam)* )? PAR_END
|
||||||
;
|
;
|
||||||
|
|
||||||
pragmaParam
|
pragmaParam
|
||||||
|
@ -161,6 +161,7 @@ directive
|
||||||
| EXTERN #directiveExtern
|
| EXTERN #directiveExtern
|
||||||
| EXPORT #directiveExport
|
| EXPORT #directiveExport
|
||||||
| INLINE #directiveInline
|
| INLINE #directiveInline
|
||||||
|
| BANK PAR_BEGIN NAME COMMA NUMBER PAR_END #directiveBank
|
||||||
| INTRINSIC #directiveIntrinsic
|
| INTRINSIC #directiveIntrinsic
|
||||||
| INTERRUPT ( PAR_BEGIN NAME PAR_END )? #directiveInterrupt
|
| INTERRUPT ( PAR_BEGIN NAME PAR_END )? #directiveInterrupt
|
||||||
| LOCAL_RESERVE PAR_BEGIN pragmaParam ( COMMA pragmaParam )* PAR_END #directiveReserveZp
|
| LOCAL_RESERVE PAR_BEGIN pragmaParam ( COMMA pragmaParam )* PAR_END #directiveReserveZp
|
||||||
|
|
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,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}
|
asl {m1}
|
||||||
rol {m1}+1
|
rol {m1}+1
|
||||||
rol {m1}+2
|
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
|
|
@ -0,0 +1,8 @@
|
||||||
|
ldy {m2}
|
||||||
|
beq !e+
|
||||||
|
!:
|
||||||
|
asl {m1}
|
||||||
|
rol {m1}+1
|
||||||
|
dey
|
||||||
|
bne !-
|
||||||
|
!e:
|
|
@ -0,0 +1,7 @@
|
||||||
|
beq !e+
|
||||||
|
!:
|
||||||
|
asl {m1}
|
||||||
|
rol {m1}+1
|
||||||
|
dex
|
||||||
|
bne !-
|
||||||
|
!e:
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user