Renamed the old geos target to geos-cbm.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5343 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
256
libsrc/geos-cbm/inc/geosmac.ca65.inc
Normal file
256
libsrc/geos-cbm/inc/geosmac.ca65.inc
Normal file
@@ -0,0 +1,256 @@
|
||||
|
||||
;GEOS macros
|
||||
;reassembled for 6502TASM/MMS by Maciej 'YTM/Elysium' Witkowiak
|
||||
;4-2-99
|
||||
|
||||
;28-6-99 - ca65 port
|
||||
;macro 'sub' renamed to 'ssub' due to 65816 mnemonics
|
||||
|
||||
|
||||
.macro LoadB dest, value
|
||||
lda #value
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro LoadW dest, value
|
||||
LoadB dest+1, >(value)
|
||||
LoadB dest+0, <(value)
|
||||
.endmacro
|
||||
|
||||
.macro MoveB source, dest
|
||||
lda source
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro MoveW source, dest
|
||||
MoveB source+1, dest+1
|
||||
MoveB source+0, dest+0
|
||||
.endmacro
|
||||
|
||||
.macro add source
|
||||
clc
|
||||
adc source
|
||||
.endmacro
|
||||
|
||||
.macro AddB source, dest
|
||||
lda source
|
||||
add dest
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro AddW source, dest
|
||||
AddB source+0, dest+0
|
||||
lda source+1
|
||||
adc dest+1
|
||||
sta dest+1
|
||||
.endmacro
|
||||
|
||||
.macro AddVB value, dest
|
||||
lda dest
|
||||
clc
|
||||
adc #(value)
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro AddVW value, dest
|
||||
.local Skip
|
||||
AddVB <(value), dest+0
|
||||
.if (>(value))=0
|
||||
bcc Skip
|
||||
inc dest+1
|
||||
.else
|
||||
lda #>(value)
|
||||
adc dest+1
|
||||
sta dest+1
|
||||
.endif
|
||||
Skip:
|
||||
.endmacro
|
||||
|
||||
.macro ssub source
|
||||
sec
|
||||
sbc source
|
||||
.endmacro
|
||||
|
||||
.macro SubB source, dest
|
||||
lda dest
|
||||
ssub source
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro SubW source, dest
|
||||
SubB source+0, dest+0
|
||||
lda dest+1
|
||||
sbc source+1
|
||||
sta dest+1
|
||||
.endmacro
|
||||
|
||||
.macro SubVW value, dest
|
||||
sec
|
||||
lda dest+0
|
||||
sbc #<(value)
|
||||
sta dest+0
|
||||
lda dest+1
|
||||
sbc #>(value)
|
||||
sta dest+1
|
||||
.endmacro
|
||||
|
||||
.macro CmpB source, dest
|
||||
lda source
|
||||
cmp dest
|
||||
.endmacro
|
||||
|
||||
.macro CmpBI source, immed
|
||||
lda source
|
||||
cmp #(immed)
|
||||
.endmacro
|
||||
|
||||
.macro CmpW source, dest
|
||||
.local Skip
|
||||
CmpB source+1, dest+1
|
||||
bne Skip
|
||||
CmpB source+0, dest+0
|
||||
Skip:
|
||||
.endmacro
|
||||
|
||||
.macro CmpWI source, immed
|
||||
.local Skip
|
||||
CmpBI source+1, >(immed)
|
||||
bne Skip
|
||||
CmpBI source+0, <(immed)
|
||||
Skip:
|
||||
.endmacro
|
||||
|
||||
.macro PushB source
|
||||
lda source
|
||||
pha
|
||||
.endmacro
|
||||
|
||||
.macro PushW source
|
||||
PushB source+1
|
||||
PushB source+0
|
||||
.endmacro
|
||||
|
||||
.macro PopB dest
|
||||
pla
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro PopW dest
|
||||
PopB dest+0
|
||||
PopB dest+1
|
||||
.endmacro
|
||||
|
||||
.macro bra addr
|
||||
clv
|
||||
bvc addr
|
||||
.endmacro
|
||||
|
||||
.macro smb bitNumber, dest
|
||||
pha
|
||||
lda #(1 << bitNumber)
|
||||
ora dest
|
||||
sta dest
|
||||
pla
|
||||
.endmacro
|
||||
|
||||
.macro smbf bitNumber, dest
|
||||
lda #(1 << bitNumber)
|
||||
ora dest
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro rmb bitNumber, dest
|
||||
pha
|
||||
lda #(1 << bitNumber) ^ $ff
|
||||
and dest
|
||||
sta dest
|
||||
pla
|
||||
.endmacro
|
||||
|
||||
.macro rmbf bitNumber, dest
|
||||
lda #(1 << bitNumber) ^ $ff
|
||||
and dest
|
||||
sta dest
|
||||
.endmacro
|
||||
|
||||
.macro bbs bitNumber, source, addr
|
||||
.local Skip
|
||||
php
|
||||
pha
|
||||
lda source
|
||||
and #(1 << bitNumber)
|
||||
beq Skip
|
||||
pla
|
||||
plp
|
||||
bra addr
|
||||
Skip: pla
|
||||
plp
|
||||
.endmacro
|
||||
|
||||
.macro bbsf bitNumber, source, addr
|
||||
.if bitNumber=7
|
||||
bit source
|
||||
bmi addr
|
||||
.else
|
||||
.if bitNumber=6
|
||||
bit source
|
||||
bvs addr
|
||||
.else
|
||||
lda source
|
||||
and #(1 << bitNumber)
|
||||
bne addr
|
||||
.endif
|
||||
.endif
|
||||
.endmacro
|
||||
|
||||
.macro bbr bitNumber, source, addr
|
||||
.local Skip
|
||||
php
|
||||
pha
|
||||
lda source
|
||||
and #(1 << bitNumber)
|
||||
bne Skip
|
||||
pla
|
||||
plp
|
||||
bra addr
|
||||
Skip: pla
|
||||
plp
|
||||
.endmacro
|
||||
|
||||
.macro bbrf bitNumber, source, addr
|
||||
.if bitNumber=7
|
||||
bit source
|
||||
bpl addr
|
||||
.else
|
||||
.if bitNumber=6
|
||||
bit source
|
||||
bvc addr
|
||||
.else
|
||||
lda source
|
||||
and #(1 << bitNumber)
|
||||
beq addr
|
||||
.endif
|
||||
.endif
|
||||
.endmacro
|
||||
|
||||
;03.03.99 by Maciej Witkowiak
|
||||
|
||||
.macro addv value
|
||||
clc
|
||||
adc #(value)
|
||||
.endmacro
|
||||
|
||||
.macro subv value
|
||||
sec
|
||||
sbc #(value)
|
||||
.endmacro
|
||||
|
||||
.macro bnex addr
|
||||
txa
|
||||
bne addr
|
||||
.endmacro
|
||||
|
||||
.macro beqx addr
|
||||
txa
|
||||
beq addr
|
||||
.endmacro
|
||||
Reference in New Issue
Block a user