mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-01 07:41:51 +00:00
149 lines
2.4 KiB
Plaintext
149 lines
2.4 KiB
Plaintext
|
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
|