A2osX/BIN/ACOS.S.EXP.txt

149 lines
2.4 KiB
Plaintext
Raw Normal View History

2021-04-08 20:30:18 +00:00
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
* In: A = current CHAR
* Out: CC, longint on stack
*--------------------------------------
EXP.Eval ldx #$FF
stx EXP.AOPS1
stx EXP.AOPS2
.10 jsr CORE.IsLetter
bcc .1 FN or VAR
jsr CORE.IsDigit10
bcs .9
jsr EXP.Int32
bcs .99
bra .5
*--------------------------------------
.1 >LDYA L.ACOS.FN
jsr CORE.Lookup
bcs .3
jsr EXP.FNjmpX
bcs .99
bra .5
*--------------------------------------
.3 jsr EXP.VARLookup
bcs .99
>LDYA EXP.ADDR
jsr CODE.PUSHfYA
*--------------------------------------
.5 jsr CORE.GetCharNB
bcs .7
jsr CORE.IsEndExp
bcs .7
jsr CORE.IsAOPSChar + - * /
bcc .6
>LDYA L.ACOS.AOPS MOD
jsr CORE.Lookup
bcs .9
txa
* clc
adc #ACOS.AOPSChars.Cnt*2
tax
lda EXP.AOPS1
bmi .6
cpx EXP.AOPS1
.6 stx EXP.AOPS1
jsr CORE.GetNextCharNB
bcs .9
jmp .10
.7 ldx EXP.AOPS1
bmi .8
jsr EXP.AOPSjmpX
.8 clc
rts
.9 lda #E.CSYN
.99 rts
*--------------------------------------
EXP.FNjmpX jmp (J.ACOS.FN,x)
EXP.AOPSjmpX jmp (J.ACOS.AOPS,x)
*--------------------------------------
EXP.Int32 >PUSHW ZPInputBufPtr
>PUSHWI ZPInputBufPtr
>PUSHBI 10
>SYSCALL StrToL
bcs .9
jsr CODE.PUSHINT32
>POP 4
clc
.9 rts
*--------------------------------------
EXP.VARLookup >LDA.G hVars
>PUSHA
>PUSHA for SListGetData
>PUSHW ZPInputBufPtr
>SYSCALL SListLookup
bcs .9
>PUSHYA ZPSID
txa
* clc
adc ZPInputBufPtr
sta ZPInputBufPtr
bcc .1
inc ZPInputBufPtr+1
.1 >PUSHWI EXP.ADDR
>PUSHWI 2 2 bytes
>PUSHWZ From Start
>SYSCALL SListGetData
rts
.9 >PULLA
rts
*--------------------------------------
EXP.ADD ldx #FPU.ADD32
jmp CODE.FPUCALL
EXP.SUB ldx #FPU.SUB32
jmp CODE.FPUCALL
EXP.MUL ldx #FPU.IMUL32
jmp CODE.FPUCALL
EXP.DIV ldx #FPU.IDIV32
jmp CODE.FPUCALL
EXP.MOD ldx #FPU.IMOD32
jmp CODE.FPUCALL
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/bin/acos.s.exp
LOAD usr/src/bin/acos.s
ASM