mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-10 13:38:18 +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
|
||||
*/*.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
|
@ -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
|
||||
|
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}
|
||||
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
|
@ -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…
x
Reference in New Issue
Block a user