A2osX/INC/MACROS.I.txt

514 lines
8.5 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
NEW
2019-07-07 20:48:57 +00:00
AUTO 3,1
.LIST OFF
2015-03-14 21:48:35 +00:00
*--------------------------------------
.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 :1
>DEBUG
:1 .EQ *
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
* SYSCALLs Macros
*--------------------------------------
.MA SYSCALL
ldx #SYS.]1
jsr A2osX.SYSCALL
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA LIBCALL
ldy ]1
ldx #]2
jsr A2osX.LIBCALL
.EM
2019-05-05 17:15:37 +00:00
*--------------------------------------
.MA SLEEP
jsr A2osX.SLEEP
.EM
*--------------------------------------
.MA SYSCALL2
ldx #SYS.]1
jsr A2osX.SYSCALL2
.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
jsr GP.MLICall
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2019-07-10 15:39:02 +00:00
* FPU Entry Point
*--------------------------------------
FPU.ADD32 .EQ 0
FPU.SUB32 .EQ 2
FPU.MUL32 .EQ 4
FPU.IMUL32 .EQ 6
FPU.DIV32 .EQ 8
FPU.IDIV32 .EQ 10
FPU.MOD32 .EQ 12
FPU.IMOD32 .EQ 14
FPU.FSUB .EQ 16
FPU.FADD .EQ 18
FPU.FMULT .EQ 20
FPU.FDIV .EQ 22
FPU.PWR .EQ 24
FPU.LOG .EQ 26
FPU.SQR .EQ 28
FPU.EXP .EQ 30
FPU.COS .EQ 32
FPU.SIN .EQ 34
FPU.TAN .EQ 36
FPU.ATAN .EQ 38
FPU.SETARG .EQ 40
FPU.SETFAC .EQ 42
FPU.GETFAC .EQ 44 Copy FAC to (FORPNT)
FPU.FCOMP .EQ 46
FPU.LTOF .EQ 48
FPU.QINT .EQ 50
FPU.FIN .EQ 52
FPU.FOUT .EQ 54
*--------------------------------------
.MA FPU
ldx #FPU.]1
2019-07-07 20:48:57 +00:00
jsr A2osX.FpuCall
.EM
*--------------------------------------
* Global DATA Segment Access
*--------------------------------------
.MA LEA.G
clc
lda pData
adc #]1
tay
lda pData+1
adc /]1
.EM
*--------------------------------------
.MA PUSHEA.G
>LEA.G ]1
>PUSHYA
.EM
2018-01-15 06:50:44 +00:00
*--------------------------------------
.MA PUSHB.G
ldy #]1
lda (pData),y
>PUSHA
.EM
*--------------------------------------
.MA PUSHW.G
ldy #]1+1
lda (pData),y
>PUSHA
dey
lda (pData),y
>PUSHA
.EM
2018-06-14 15:31:36 +00:00
*--------------------------------------
.MA PUSHL.G
ldy #]1+4
:1 dey
lda (pData),y
>PUSHA
cpy #]1
bne :1
.EM
*--------------------------------------
.MA PULLL.G
ldy #]1
:1 >PULLA
sta (pData),y
iny
cpy #]1+4
bne :1
.EM
*--------------------------------------
.MA PUSHF.G
2018-08-23 15:16:20 +00:00
ldy #]1+5
2018-06-14 15:31:36 +00:00
:1 dey
lda (pData),y
>PUSHA
cpy #]1
bne :1
.EM
*--------------------------------------
.MA PULLF.G
ldy #]1
:1 >PULLA
sta (pData),y
iny
cpy #]1+5
bne :1
.EM
*--------------------------------------
.MA LDA.G
ldy #]1
lda (pData),y
.EM
*--------------------------------------
.MA STZ.G
ldy #]1
lda #0
sta (pData),y
.EM
*--------------------------------------
.MA STA.G
ldy #]1
sta (pData),y
.EM
2019-04-08 15:39:38 +00:00
*--------------------------------------
.MA AND.G
ldy #]1
and (pData),y
.EM
2017-10-04 15:12:03 +00:00
*--------------------------------------
.MA ORA.G
ldy #]1
ora (pData),y
.EM
*--------------------------------------
.MA EOR.G
ldy #]1
eor (pData),y
.EM
*--------------------------------------
.MA CMP.G
ldy #]1
cmp (pData),y
.EM
*--------------------------------------
.MA ADC.G
ldy #]1
adc (pData),y
.EM
*--------------------------------------
.MA SBC.G
ldy #]1
sbc (pData),y
.EM
*--------------------------------------
2019-05-27 15:37:31 +00:00
.MA STZW.G
>STZ.G ]1
iny
sta (pData),y
.EM
*--------------------------------------
.MA INC.G
>LDA.G ]1
inc
sta (pData),y
.EM
*--------------------------------------
.MA INCW.G
>INC.G ]1
bne :1
iny
lda (pData),y
inc
sta (pData),y
:1 .EQ *
.EM
2019-05-27 15:37:31 +00:00
*--------------------------------------
.MA DEC.G
>LDA.G ]1
dec
sta (pData),y
.EM
*--------------------------------------
.MA DECW.G
>LDA.G ]1
bne :1
dec
sta (pData),y
iny
lda (pData),y
:1 dec
sta (pData),y
.EM
*--------------------------------------
.MA LDYA.G
>LDA.G ]1
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
>PUSHA
2015-06-03 18:30:57 +00:00
tya
>PUSHA
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2015-06-03 18:30:57 +00:00
.MA PULLYA
>PULLA
2015-06-03 18:30:57 +00:00
tay
>PULLA
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHBI
lda #]1
>PUSHA
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHB
.DO ]#=2
lda ]1,]2
>PUSHA
2015-03-14 21:48:35 +00:00
.ELSE
lda ]1
>PUSHA
2015-03-14 21:48:35 +00:00
.FIN
.EM
*--------------------------------------
.MA PULLB
.DO ]#=2
>PULLA
2015-03-14 21:48:35 +00:00
sta ]1,]2
.ELSE
>PULLA
2015-03-14 21:48:35 +00:00
sta ]1
.FIN
.EM
2019-06-07 15:02:51 +00:00
*--------------------------------------
.MA PUSHWZ
lda #0
>PUSHA
>PUSHA
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
.MA PUSHWI
lda /]1
>PUSHA
2015-03-14 21:48:35 +00:00
lda #]1
>PUSHA
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PUSHW
2018-10-05 14:58:38 +00:00
.DO ]#=2
lda ]1+1,]2
>PUSHA
lda ]1,]2
>PUSHA
.ELSE
2015-03-14 21:48:35 +00:00
lda ]1+1
>PUSHA
2015-03-14 21:48:35 +00:00
lda ]1
>PUSHA
2018-10-05 14:58:38 +00:00
.FIN
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
.MA PULLW
>PULLA
2015-03-14 21:48:35 +00:00
sta ]1
>PULLA
2015-03-14 21:48:35 +00:00
sta ]1+1
.EM
2018-08-23 15:16:20 +00:00
*--------------------------------------
.MA PUSHL
ldy #3
2018-08-24 10:20:23 +00:00
:1 lda ]1,y
2018-08-23 15:16:20 +00:00
>PUSHA
dey
bpl :1
.EM
*--------------------------------------
.MA PULLL
ldy #0
:1 >PULLA
2018-08-24 10:20:23 +00:00
sta ]1,y
2018-08-23 15:16:20 +00:00
iny
cpy #4
bne :1
.EM
*--------------------------------------
.MA PUSHF
ldy #4
2018-08-24 10:20:23 +00:00
:1 lda ]1,y
2018-08-23 15:16:20 +00:00
>PUSHA
dey
bpl :1
.EM
*--------------------------------------
.MA PULLF
ldy #0
:1 >PULLA
2018-08-24 10:20:23 +00:00
sta ]1,y
2018-08-23 15:16:20 +00:00
iny
cpy #5
bne :1
.EM
2018-07-11 15:13:29 +00:00
*--------------------------------------
.MA RET
.DO ]1=1
inc pStack
.FIN
.DO ]1=2
inc pStack
inc pStack
.FIN
.DO ]1=3
inc pStack
inc pStack
inc pStack
.FIN
.DO ]1>3
pha
lda #]1
:1 inc pStack
dec
bne :1
pla
.FIN
2018-08-08 15:13:37 +00:00
rts
2018-07-11 15:13:29 +00:00
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
* General WORD Manipulation Macros
*--------------------------------------
.MA LDYAI
ldy #]1
lda /]1
.EM
*--------------------------------------
.MA LDYA
.DO ]#=2
ldy ]1,]2
lda ]1+1,]2
2015-03-14 21:48:35 +00:00
.ELSE
ldy ]1
lda ]1+1
2015-03-14 21:48:35 +00:00
.FIN
.EM
*--------------------------------------
.MA STYA
.DO ]#=2
sta ]1+1,]2
tya
sta ]1,]2
.ELSE
sty ]1
2018-08-08 15:13:37 +00:00
sta ]1+1
2015-03-14 21:48:35 +00:00
.FIN
.EM
*--------------------------------------
* General Strings Macros
*--------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
2015-03-14 21:48:35 +00:00
.EM
2019-07-07 20:48:57 +00:00
*--------------------------------------
2015-03-14 21:48:35 +00:00
MAN
2019-07-07 20:48:57 +00:00
SAVE INC/MACROS.I