A2osX/INC/MACROS.I.txt

369 lines
6.1 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
PREFIX /A2OSX.BUILD
2015-03-14 21:48:35 +00:00
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
.MA DEBUG
2015-06-03 18:30:57 +00:00
:1 bit $C000
bpl :1
2015-03-14 21:48:35 +00:00
sta $C010
.EM
*--------------------------------------
.MA DEBUGOA
bit $C061
bpl :2
:1 bit $C000
bpl :1
sta $C010
:2 .EQ *
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
* SYSCALLs Macros
*--------------------------------------
.MA SYSCALL
ldx #SYS.]1
2015-03-14 21:48:35 +00:00
jsr A2osX.SYSCALL
.EM
*--------------------------------------
.MA LIBCALL
ldy ]1
ldx #]2
jsr A2osX.LIBCALL
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
.MA MLICALL
ldx #]1
2015-06-03 18:30:57 +00:00
.DO ]1=MLIALLOCIRQ
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2015-06-03 18:30:57 +00:00
.DO ]1=MLIDEALLOCIRQ
2015-03-14 21:48:35 +00:00
lda #1
.FIN
.DO ]1=MLIATALK
lda #1
.FIN
2015-03-14 21:48:35 +00:00
.DO ]1=MLIREADBLOCK
lda #3
.FIN
.DO ]1=MLIWRITEBLOCK
lda #3
.FIN
.DO ]1=MLICREATE
lda #7
.FIN
.DO ]1=MLIDESTROY
lda #1
.FIN
.DO ]1=MLIRENAME
2015-03-14 21:48:35 +00:00
lda #2
.FIN
.DO ]1=MLISETFILEINFO
lda #7
.FIN
.DO ]1=MLIGETFILEINFO
lda #10
.FIN
.DO ]1=MLIONLINE
lda #2
.FIN
.DO ]1=MLISETPREFIX
lda #1
.FIN
.DO ]1=MLIGETPREFIX
lda #1
.FIN
.DO ]1=MLIOPEN
lda #3
.FIN
.DO ]1=MLINEWLINE
lda #3
.FIN
.DO ]1=MLIREAD
lda #4
.FIN
.DO ]1=MLIWRITE
lda #4
.FIN
.DO ]1=MLICLOSE
lda #1
.FIN
.DO ]1=MLIFLUSH
lda #1
.FIN
.DO ]1=MLISETMARK
lda #2
.FIN
.DO ]1=MLIGETMARK
lda #2
.FIN
.DO ]1=MLISETEOF
lda #2
.FIN
.DO ]1=MLIGETEOF
lda #2
.FIN
.DO ]1=MLISETBUF
lda #2
.FIN
.DO ]1=MLIGETBUF
lda #2
.FIN
2015-06-03 18:30:57 +00:00
jsr A2osX.MLICALL
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
* Global DATA Segment Access
*--------------------------------------
.MA LEA.G
clc
lda pData
adc #]1
tay
lda pData+1
adc /]1
.EM
*--------------------------------------
.MA PUSHEA.G
clc
lda pData
adc #]1
tay
lda pData+1
adc /]1
dec pStack
sta (pStack)
tya
dec pStack
sta (pStack)
.EM
*--------------------------------------
.MA LDA.G
ldy #]1
lda (pData),y
.EM
*--------------------------------------
.MA STA.G
ldy #]1
sta (pData),y
.EM
*--------------------------------------
.MA CMP.G
ldy #]1
cmp (pData),y
.EM
*--------------------------------------
.MA SBC.G
ldy #]1
sbc (pData),y
.EM
*--------------------------------------
.MA DEC.G
ldy #]1
lda (pData),y
dec
sta (pData),y
.EM
*--------------------------------------
.MA INC.G
ldy #]1
lda (pData),y
inc
sta (pData),y
.EM
*--------------------------------------
.MA INCW.G
ldy #]1
lda (pData),y
inc
sta (pData),y
bne :1
iny
lda (pData),y
inc
sta (pData),y
:1 .EQ *
.EM
*--------------------------------------
.MA LDYA.G
ldy #]1
lda (pData),y
pha
iny
lda (pData),y
ply
.EM
*--------------------------------------
.MA STYA.G
phy
ldy #]1+1
sta (pData),y
dey
pla
sta (pData),y
.EM
*--------------------------------------
* STACK PUSH/PULL
2015-03-14 21:48:35 +00:00
*--------------------------------------
2015-06-03 18:30:57 +00:00
.MA PUSHA
dec pStack
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2015-06-03 18:30:57 +00:00
.MA PULLA
lda (pStack)
inc pStack
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2015-06-03 18:30:57 +00:00
.MA PUSHYA
dec pStack
2015-06-03 18:30:57 +00:00
sta (pStack)
tya
dec pStack
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2015-06-03 18:30:57 +00:00
.MA PULLYA
lda (pStack)
inc pStack
2015-06-03 18:30:57 +00:00
tay
lda (pStack)
inc pStack
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHBI
dec pStack
2015-03-14 21:48:35 +00:00
lda #]1
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHB
.DO ]#=2
dec pStack
2015-03-14 21:48:35 +00:00
lda ]1,]2
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.ELSE
dec pStack
2015-03-14 21:48:35 +00:00
lda ]1
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.FIN
.EM
*--------------------------------------
.MA PULLB
.DO ]#=2
2015-06-03 18:30:57 +00:00
lda (pStack)
2015-03-14 21:48:35 +00:00
sta ]1,]2
inc pStack
2015-03-14 21:48:35 +00:00
.ELSE
2015-06-03 18:30:57 +00:00
lda (pStack)
2015-03-14 21:48:35 +00:00
sta ]1
inc pStack
2015-03-14 21:48:35 +00:00
.FIN
.EM
*--------------------------------------
.MA PUSHWI
dec pStack
2015-03-14 21:48:35 +00:00
lda /]1
2015-06-03 18:30:57 +00:00
sta (pStack)
dec pStack
2015-03-14 21:48:35 +00:00
lda #]1
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHW
dec pStack
2015-03-14 21:48:35 +00:00
lda ]1+1
2015-06-03 18:30:57 +00:00
sta (pStack)
dec pStack
2015-03-14 21:48:35 +00:00
lda ]1
2015-06-03 18:30:57 +00:00
sta (pStack)
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PULLW
2015-06-03 18:30:57 +00:00
lda (pStack)
2015-03-14 21:48:35 +00:00
sta ]1
inc pStack
2015-06-03 18:30:57 +00:00
lda (pStack)
2015-03-14 21:48:35 +00:00
sta ]1+1
inc pStack
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA POP
lda pStack
clc
adc ]1
sta pStack
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
* General WORD Manipulation Macros
*--------------------------------------
.MA LDYAI
ldy #]1
lda /]1
.EM
*--------------------------------------
.MA LDAXI
lda #]1
ldx /]1
.EM
*--------------------------------------
.MA LDYA
.DO ]#=2
lda ]1+1,]2
ldy ]1,]2
.ELSE
lda ]1+1
ldy ]1
.FIN
.EM
*--------------------------------------
.MA LDAX
.DO ]#=2
ldx ]1+1,]2
lda ]1,]2
.ELSE
ldx ]1+1
lda ]1
.FIN
.EM
*--------------------------------------
.MA STYA
.DO ]#=2
sta ]1+1,]2
tya
sta ]1,]2
.ELSE
sta ]1+1
sty ]1
.FIN
.EM
*--------------------------------------
.MA STAX
.DO ]#=2
sta ]1+1,]2
txa
sta ]1,]2
.ELSE
stx ]1+1
sta ]1
.FIN
.EM
*--------------------------------------
* General Strings Macros
*--------------------------------------
.MA CSTR
2015-03-14 21:48:35 +00:00
.AS "]1"
.HS 00
.EM
*--------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
2015-03-14 21:48:35 +00:00
.EM
MAN
SAVE /A2OSX.BUILD/INC/MACROS.I