A2osX/INC/MACROS.I.txt

618 lines
10 KiB
Plaintext
Raw Permalink Normal View History

2015-03-14 21:48:35 +00:00
NEW
2019-07-07 20:48:57 +00:00
AUTO 3,1
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 #_]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 #_]1
2019-05-05 17:15:37 +00:00
jsr A2osX.SYSCALL2
.EM
2015-03-14 21:48:35 +00:00
*--------------------------------------
.MA MLICALL
ldx #]1
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.ALLOCIRQ
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.DEALLOCIRQ
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.ATALK
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.READBLOCK
2015-03-14 21:48:35 +00:00
lda #3
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.WRITEBLOCK
2015-03-14 21:48:35 +00:00
lda #3
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.CREATE
2015-03-14 21:48:35 +00:00
lda #7
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.DESTROY
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.RENAME
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SFINFO
2015-03-14 21:48:35 +00:00
lda #7
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GFINFO
2015-03-14 21:48:35 +00:00
lda #10
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.ONLINE
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SETPREFIX
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GETPREFIX
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.OPEN
2015-03-14 21:48:35 +00:00
lda #3
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.NEWLINE
2015-03-14 21:48:35 +00:00
lda #3
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.READ
2015-03-14 21:48:35 +00:00
lda #4
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.WRITE
2015-03-14 21:48:35 +00:00
lda #4
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.CLOSE
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.FLUSH
2015-03-14 21:48:35 +00:00
lda #1
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SETMARK
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GETMARK
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SETEOF
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GETEOF
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SETBUF
2015-03-14 21:48:35 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GETBUF
2015-03-14 21:48:35 +00:00
lda #2
2020-07-18 14:04:21 +00:00
.FIN
2020-05-28 21:13:52 +00:00
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.SFINFOEX
2020-05-28 21:13:52 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.GFINFOEX
2020-05-28 21:13:52 +00:00
lda #2
.FIN
2023-11-04 14:42:28 +00:00
.DO ]1=MLI.ACL
2020-07-16 14:53:35 +00:00
lda #2
.FIN
2020-05-28 21:13:52 +00:00
2020-07-18 14:04:21 +00:00
jsr GP.MLICall
2015-03-14 21:48:35 +00:00
.EM
*--------------------------------------
2019-07-10 15:39:02 +00:00
* FPU Entry Point
2021-05-19 12:44:47 +00:00
*-------------------------------------- uint16
2021-05-04 17:31:21 +00:00
FPU.wMUL .EQ 0
FPU.wDIV .EQ 2
FPU.wMOD .EQ 4
FPU.wADD .EQ 6
FPU.wSUB .EQ 8
FPU.wSHL .EQ 10
FPU.wSHR .EQ 12
FPU.wL .EQ 14
FPU.wLE .EQ 16
FPU.wG .EQ 18
FPU.wGE .EQ 20
FPU.wE .EQ 22
FPU.wNE .EQ 24
FPU.wAND .EQ 26
FPU.wOR .EQ 28
FPU.wxOR .EQ 30
FPU.wLAND .EQ 32
FPU.wLOR .EQ 34
2021-05-19 12:44:47 +00:00
*-------------------------------------- int16
2021-05-04 17:31:21 +00:00
FPU.iMUL .EQ 36
FPU.iDIV .EQ 38
FPU.iMOD .EQ 40
FPU.iADD .EQ 42
FPU.iSUB .EQ 44
FPU.iSHL .EQ 46
FPU.iSHR .EQ 48
FPU.iL .EQ 50
FPU.iLE .EQ 52
FPU.iG .EQ 54
FPU.iGE .EQ 56
FPU.iE .EQ 58
FPU.iNE .EQ 60
FPU.iAND .EQ 62
FPU.iOR .EQ 64
FPU.iXOR .EQ 66
FPU.iLAND .EQ 68
FPU.iLOR .EQ 70
2021-05-19 12:44:47 +00:00
*-------------------------------------- uint32
2021-05-04 17:31:21 +00:00
FPU.uMUL .EQ 72
FPU.uDIV .EQ 74
FPU.uMOD .EQ 76
FPU.uADD .EQ 78
FPU.uSUB .EQ 80
FPU.uSHL .EQ 82
FPU.uSHR .EQ 84
FPU.uL .EQ 86
FPU.uLE .EQ 88
FPU.uG .EQ 90
FPU.uGE .EQ 92
FPU.uE .EQ 94
FPU.uNE .EQ 96
FPU.uAND .EQ 98
FPU.uOR .EQ 100
FPU.uXOR .EQ 102
FPU.uLAND .EQ 104
FPU.uLOR .EQ 106
2021-05-19 12:44:47 +00:00
*-------------------------------------- int32
2021-05-04 17:31:21 +00:00
FPU.lMUL .EQ 108
FPU.lDIV .EQ 110
FPU.lMOD .EQ 112
FPU.lADD .EQ 114
FPU.lSUB .EQ 116
FPU.lSHL .EQ 118
FPU.lSHR .EQ 120
FPU.lL .EQ 122
FPU.lLE .EQ 124
FPU.lG .EQ 126
FPU.lGE .EQ 128
FPU.lE .EQ 130
FPU.lNE .EQ 132
FPU.lAND .EQ 134
FPU.lOR .EQ 136
FPU.lXOR .EQ 138
FPU.lLAND .EQ 140
FPU.lLOR .EQ 142
2021-05-19 12:44:47 +00:00
*-------------------------------------- float
2021-05-04 17:31:21 +00:00
FPU.fMUL .EQ 144
FPU.fDIV .EQ 146
FPU.fMOD .EQ 148
FPU.fADD .EQ 150
FPU.fSUB .EQ 152
FPU.fSHL .EQ 154
FPU.fSHR .EQ 156
FPU.fL .EQ 158
FPU.fLE .EQ 160
FPU.fG .EQ 162
FPU.fGE .EQ 164
FPU.fE .EQ 166
FPU.fNE .EQ 168
FPU.fAND .EQ 170
FPU.fOR .EQ 172
FPU.fXOR .EQ 174
FPU.fLAND .EQ 176
FPU.fLOR .EQ 178
*--------------------------------------
* math.h
*--------------------------------------
FPU.PWR .EQ 180
*--------------------------------------
FPU.LOG .EQ 182
FPU.SQR .EQ 184
FPU.EXP .EQ 186
FPU.COS .EQ 188
FPU.SIN .EQ 190
FPU.TAN .EQ 192
FPU.ATAN .EQ 194
FPU.SETARG .EQ 196 fadd.....
FPU.SETFAC .EQ 198 log...., PrintF
FPU.GETFAC .EQ 200 Copy FAC to (FORPNT)
FPU.FCOMP .EQ 202
FPU.LTOF .EQ 204 Float
FPU.QINT .EQ 206 lrintf
FPU.FIN .EQ 208 sscanf
FPU.FOUT .EQ 210 PrintF
2019-07-10 15:39:02 +00:00
*--------------------------------------
.MA FPU
ldx #FPU.]1
2020-02-28 07:21:46 +00:00
jsr A2osX.FPUCALL
2019-07-07 20:48:57 +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
>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
2020-07-18 14:04:21 +00:00
ldy #]1+4
2018-06-14 15:31:36 +00:00
: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 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
2021-05-14 20:58:20 +00:00
*--------------------------------------
.MA PUSHLZ
lda #0
ldy #3
:1 >PUSHA
dey
bpl :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
2020-02-23 20:01:48 +00:00
*--------------------------------------
.MA ENTER
>PUSHB pBase
lda pStack
2021-05-30 20:34:03 +00:00
inc
2020-02-23 20:01:48 +00:00
sta pBase
2021-05-30 20:34:03 +00:00
clc
2020-02-23 20:01:48 +00:00
sbc #]1
sta pStack
.EM
*--------------------------------------
.MA LEAVE
pha
2021-05-30 20:34:03 +00:00
lda pBase
dec
sta pStack
2020-02-23 20:01:48 +00:00
>PULLB pBase
pla
.EM
2018-07-11 15:13:29 +00:00
*--------------------------------------
2019-07-25 06:13:56 +00:00
.MA POP
2018-07-11 15:13:29 +00:00
.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
2019-07-25 06:13:56 +00:00
.EM
*--------------------------------------
.MA RET
>POP ]1
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
*--------------------------------------
MAN
2020-05-28 21:13:52 +00:00
SAVE inc/macros.i