mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel 0.9.2 : MATH API rewrite
This commit is contained in:
parent
a48bb7cd87
commit
de4a0a345f
@ -224,6 +224,24 @@ AUTO 4,1
|
|||||||
pla
|
pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
.EM
|
.EM
|
||||||
|
*--------------------------------------
|
||||||
|
.MA PUSHF.G
|
||||||
|
ldy #]1+5
|
||||||
|
: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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* STACK PUSH/PULL
|
* STACK PUSH/PULL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -5,9 +5,10 @@ AUTO 4,1
|
|||||||
* # FAdd,FSub,FMult,FDiv,FPwr
|
* # FAdd,FSub,FMult,FDiv,FPwr
|
||||||
* Return X+Y, X-Y, X*Y, X/Y, X^Y
|
* Return X+Y, X-Y, X*Y, X/Y, X^Y
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*Float)
|
* PUSHF = X (Float)
|
||||||
* PUSHW = Y (*Float)
|
* PUSHF = Y (Float)
|
||||||
* Y,A = Dest (*Float)
|
* ## Out:
|
||||||
|
* On stack (Float)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FAdd ldx #ROM.FADD
|
K.FAdd ldx #ROM.FADD
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
@ -27,8 +28,9 @@ K.FPwr ldx #ROM.PWR
|
|||||||
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
|
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
|
||||||
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
|
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*Float)
|
* PUSHF = X (Float)
|
||||||
* Y,A = Dest (*Float)
|
* ## Out:
|
||||||
|
* On stack (Float)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Log ldx #ROM.LOG
|
K.Log ldx #ROM.LOG
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
@ -49,22 +51,15 @@ K.ATan ldx #ROM.ATAN
|
|||||||
bra MATH.Go
|
bra MATH.Go
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Float
|
* # Float
|
||||||
* Return return 'floated' long
|
* Return 'floated' long
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*long)
|
* PUSHL = X (long)
|
||||||
* Y,A = Dest (*float)
|
* ## Out:
|
||||||
|
* On stack (Float)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Float >STYA FORPNT
|
K.Float >PULLW FAC+1
|
||||||
>PULLW INDEX
|
>PULLW FAC+3
|
||||||
|
|
||||||
ldx #1
|
|
||||||
ldy #3
|
|
||||||
|
|
||||||
.1 lda (INDEX),y
|
|
||||||
sta FAC,x
|
|
||||||
inx
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
stz FAC.SIGN
|
stz FAC.SIGN
|
||||||
lda #$A0
|
lda #$A0
|
||||||
sta FAC Exp=32
|
sta FAC Exp=32
|
||||||
@ -73,44 +68,44 @@ K.Float >STYA FORPNT
|
|||||||
phx
|
phx
|
||||||
|
|
||||||
MATH.Go plx
|
MATH.Go plx
|
||||||
lda SIGNFLG pPs !!!!
|
jsr GP.ROMCALL
|
||||||
pha
|
|
||||||
jsr A2osX.ROMCALL
|
ldx #ROM.GETFAC
|
||||||
>ROMCALL GETFAC
|
jsr GP.ROMCALL
|
||||||
pla
|
|
||||||
sta SIGNFLG
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # LRIntF
|
* # LRIntF
|
||||||
* Return Float rounded into a long
|
* Return Float rounded into a long
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*Float)
|
* PUSHF = X (Float)
|
||||||
* Y,A = Dest (*long)
|
* ## Out:
|
||||||
|
* On stack (long)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.LRIntF >STYA FORPNT
|
K.LRIntF jsr MATH.PullFAC
|
||||||
jsr MATH.PullFAC
|
|
||||||
ldx #ROM.QINT
|
ldx #ROM.QINT
|
||||||
jsr A2osX.ROMCALL
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
ldx #1
|
>PUSHW FAC+1
|
||||||
ldy #3
|
>PUSHW FAC+3
|
||||||
|
|
||||||
.1 lda FAC,x
|
|
||||||
sta (FORPNT),y
|
|
||||||
inx
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MATH.PullFAC >PULLW INDEX
|
MATH.PullARG ldx #ROM.SETARG
|
||||||
>ROMCALL SETFAC
|
.HS 2C BIT ABS
|
||||||
rts
|
MATH.PullFAC ldx #ROM.SETFAC
|
||||||
*--------------------------------------
|
|
||||||
MATH.PullARG >PULLW INDEX
|
>LDYA pStack
|
||||||
>ROMCALL SETARG
|
>STYA INDEX
|
||||||
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
|
lda pStack
|
||||||
|
clc
|
||||||
|
adc #5
|
||||||
|
sta pStack
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -434,10 +434,13 @@ PrintF.F clc
|
|||||||
clc
|
clc
|
||||||
adc #5
|
adc #5
|
||||||
sta pStack
|
sta pStack
|
||||||
>ROMCALL SETFAC
|
|
||||||
|
ldx #ROM.SETFAC
|
||||||
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
ldy #3 In order not to trash A2osX.SaveSM,A2osX.SaveSX
|
ldy #3 In order not to trash A2osX.SaveSM,A2osX.SaveSX
|
||||||
>ROMCALL FOUT
|
ldx #ROM.FOUT
|
||||||
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
@ -31,8 +31,11 @@ K.AToF >PULLW FORPNT Ptr to dst buffer
|
|||||||
>PULLW TXTPTR Ptr to source string
|
>PULLW TXTPTR Ptr to source string
|
||||||
jsr CHARGOT
|
jsr CHARGOT
|
||||||
|
|
||||||
>ROMCALL FIN
|
ldx #ROM.FIN
|
||||||
>ROMCALL GETFAC
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
|
ldx #ROM.GETFAC
|
||||||
|
jsr GP.ROMCALL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user