fixed LoadW for doing 16-bit offsets loads, not only constants

git-svn-id: svn://svn.cc65.org/cc65/trunk@1300 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
izydorst
2002-06-04 11:20:29 +00:00
parent 8d8ec57003
commit 593797f9eb

View File

@@ -1,6 +1,6 @@
;GEOS macros ;GEOS macros
;reassembled for 6502TASM/MMS by Maciej 'YTM/Alliance' Witkowiak ;reassembled for 6502TASM/MMS by Maciej 'YTM/Elysium' Witkowiak
;4-2-99 ;4-2-99
;28-6-99 - ca65 port ;28-6-99 - ca65 port
@@ -11,51 +11,47 @@
lda #value lda #value
sta dest sta dest
.endmacro .endmacro
.macro LoadW dest, value .macro LoadW dest, value
lda #>value LoadB dest+1, >value
sta dest+1 LoadB dest+0, <value
.if (>value)<>(<value)
lda #<value
.endif
sta dest+0
.endmacro .endmacro
.macro MoveB source, dest .macro MoveB source, dest
lda source lda source
sta dest sta dest
.endmacro .endmacro
.macro MoveW source, dest .macro MoveW source, dest
MoveB source+1, dest+1 MoveB source+1, dest+1
MoveB source+0, dest+0 MoveB source+0, dest+0
.endmacro .endmacro
.macro add source .macro add source
clc clc
adc source adc source
.endmacro .endmacro
.macro AddB source, dest .macro AddB source, dest
lda source lda source
add dest add dest
sta dest sta dest
.endmacro .endmacro
.macro AddW source, dest .macro AddW source, dest
AddB source+0, dest+0 AddB source+0, dest+0
lda source+1 lda source+1
adc dest+1 adc dest+1
sta dest+1 sta dest+1
.endmacro .endmacro
.macro AddVB value, dest .macro AddVB value, dest
lda dest lda dest
clc clc
adc #value adc #value
sta dest sta dest
.endmacro .endmacro
.macro AddVW value, dest .macro AddVW value, dest
.local Skip .local Skip
clc clc
@@ -72,25 +68,25 @@
.endif .endif
Skip: Skip:
.endmacro .endmacro
.macro ssub source .macro ssub source
sec sec
sbc source sbc source
.endmacro .endmacro
.macro SubB source, dest .macro SubB source, dest
lda dest lda dest
ssub source ssub source
sta dest sta dest
.endmacro .endmacro
.macro SubW source, dest .macro SubW source, dest
SubB source+0, dest+0 SubB source+0, dest+0
lda dest+1 lda dest+1
sbc source+1 sbc source+1
sta dest+1 sta dest+1
.endmacro .endmacro
.macro SubVW value, dest .macro SubVW value, dest
sec sec
lda dest+0 lda dest+0
@@ -100,17 +96,17 @@ Skip:
sbc #>value sbc #>value
sta dest+1 sta dest+1
.endmacro .endmacro
.macro CmpB source, dest .macro CmpB source, dest
lda source lda source
cmp dest cmp dest
.endmacro .endmacro
.macro CmpBI source, immed .macro CmpBI source, immed
lda source lda source
cmp #immed cmp #immed
.endmacro .endmacro
.macro CmpW source, dest .macro CmpW source, dest
.local Skip .local Skip
CmpB source+1, dest+1 CmpB source+1, dest+1
@@ -118,7 +114,7 @@ Skip:
CmpB source+0, dest+0 CmpB source+0, dest+0
Skip: Skip:
.endmacro .endmacro
.macro CmpWI source, immed .macro CmpWI source, immed
.local Skip .local Skip
CmpBI source+1, >immed CmpBI source+1, >immed
@@ -126,32 +122,32 @@ Skip:
CmpBI source+0, <immed CmpBI source+0, <immed
Skip: Skip:
.endmacro .endmacro
.macro PushB source .macro PushB source
lda source lda source
pha pha
.endmacro .endmacro
.macro PushW source .macro PushW source
PushB source+1 PushB source+1
PushB source+0 PushB source+0
.endmacro .endmacro
.macro PopB dest .macro PopB dest
pla pla
sta dest sta dest
.endmacro .endmacro
.macro PopW dest .macro PopW dest
PopB dest+0 PopB dest+0
PopB dest+1 PopB dest+1
.endmacro .endmacro
.macro bra addr .macro bra addr
clv clv
bvc addr bvc addr
.endmacro .endmacro
.macro smb bitNumber, dest .macro smb bitNumber, dest
pha pha
lda #(1 << bitNumber) lda #(1 << bitNumber)
@@ -159,13 +155,13 @@ Skip:
sta dest sta dest
pla pla
.endmacro .endmacro
.macro smbf bitNumber, dest .macro smbf bitNumber, dest
lda #(1 << bitNumber) lda #(1 << bitNumber)
ora dest ora dest
sta dest sta dest
.endmacro .endmacro
.macro rmb bitNumber, dest .macro rmb bitNumber, dest
pha pha
lda #(1 << bitNumber) ^ $ff lda #(1 << bitNumber) ^ $ff
@@ -173,13 +169,13 @@ Skip:
sta dest sta dest
pla pla
.endmacro .endmacro
.macro rmbf bitNumber, dest .macro rmbf bitNumber, dest
lda #(1 << bitNumber) ^ $ff lda #(1 << bitNumber) ^ $ff
ora dest ora dest
sta dest sta dest
.endmacro .endmacro
.macro bbs bitNumber, source, addr .macro bbs bitNumber, source, addr
.local Skip .local Skip
php php
@@ -193,7 +189,7 @@ Skip:
Skip: pla Skip: pla
plp plp
.endmacro .endmacro
.macro bbsf bitNumber, source, addr .macro bbsf bitNumber, source, addr
.if bitNumber=7 .if bitNumber=7
bit source bit source
@@ -209,7 +205,7 @@ Skip: pla
.endif .endif
.endif .endif
.endmacro .endmacro
.macro bbr bitNumber, source, addr .macro bbr bitNumber, source, addr
.local Skip .local Skip
php php
@@ -223,7 +219,7 @@ Skip: pla
Skip: pla Skip: pla
plp plp
.endmacro .endmacro
.macro bbrf bitNumber, source, addr .macro bbrf bitNumber, source, addr
.if bitNumber=7 .if bitNumber=7
bit source bit source
@@ -239,25 +235,25 @@ Skip: pla
.endif .endif
.endif .endif
.endmacro .endmacro
;03.03.99 by Maciej Witkowiak ;03.03.99 by Maciej Witkowiak
.macro addv value .macro addv value
clc clc
adc #value adc #value
.endmacro .endmacro
.macro subv value .macro subv value
sec sec
sbc #value sbc #value
.endmacro .endmacro
.macro bnex addr .macro bnex addr
txa txa
bne addr bne addr
.endmacro .endmacro
.macro beqx addr .macro beqx addr
txa txa
beq addr beq addr
.endmacro .endmacro