diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index d04973ac..83a6c9b3 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -198,6 +198,13 @@ Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x) + PUSHW = X (*Float) + Y,A = Dest (*Float) +# Float +Return return 'floated' long + +## In: ++ PUSHW = X (*long) ++ Y,A = Dest (*float) + # LRIntF Return Float rounded into a long @@ -371,7 +378,7 @@ Return information about a file ## Out : -# MKDirYA +# MKDir.YA ## In: + Y,A = DIR name diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 64fe8789..cc762e47 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 90991719..da810a60 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.DEV.po b/.Floppies/A2OSX.DEV.po index 71438931..32e361a5 100644 Binary files a/.Floppies/A2OSX.DEV.po and b/.Floppies/A2OSX.DEV.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 8842566c..db9c91ec 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index e47d0f5c..97d73333 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -192,7 +192,7 @@ SYS.FDiv .EQ $C6 SYS.FPwr .EQ $C8 * .EQ $CA SYS.LRIntF .EQ $CC -* .EQ $CE +SYS.Float .EQ $CE SYS.Log .EQ $D0 SYS.Sqr .EQ $D2 diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 26107b8c..6fa8d15f 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -45,7 +45,7 @@ SIGNFLG .EQ $16 COS,SIN,TAN INDEX .EQ $5E ->$5F FORPNT .EQ $85 ->$86 FAC .EQ $9D ->$A1 -*FAC.SIGN .EQ $A2 +FAC.SIGN .EQ $A2 *FAC.EXTENSION .EQ $AC TXTPTR .EQ $B8 *-------------------------------------- diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 5d2b88be..d77464e0 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -125,7 +125,7 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.FPwr .DA 0 .DA K.LRIntF - .DA 0 + .DA K.Float .DA K.Log $D0 .DA K.Sqr diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 54e1467d..f1bc2694 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -48,7 +48,32 @@ K.ATan ldx #ROM.ATAN >STYA FORPNT phx jsr MATH.PullFAC + bra MATH.Go +*/-------------------------------------- +* # Float +* Return return 'floated' long +* ## In: +* PUSHW = X (*long) +* Y,A = Dest (*float) +*\-------------------------------------- +K.Float >STYA FORPNT + >PULLW INDEX + ldx #1 + ldy #3 + +.1 lda (INDEX),y + sta FAC,x + inx + dey + bpl .1 + stz FAC.SIGN + lda #$A0 + sta FAC Exp=32 + + ldx #ROM.LTOF + phx + MATH.Go plx lda SIGNFLG pPs !!!! pha diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 7f694f21..9e7b10ae 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -86,7 +86,7 @@ K.Stat.DST .DA #S.STAT.P.TYPE .DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1 .DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1 */------------------------------------- -* # MKDirYA +* # MKDir.YA * ## In: * Y,A = DIR name * ## Out: diff --git a/TEST.S.txt b/TEST.S.txt index 4862b810..8f682fb5 100644 --- a/TEST.S.txt +++ b/TEST.S.txt @@ -37,10 +37,12 @@ L.FLOAT4 .DA FLOAT4 L.FLOAT5 .DA FLOAT5 L.CONST1 .DA CONST1 L.CONST2 .DA CONST2 +L.LONG1 .DA LONG1 L.MSG1 .DA MSG1 L.MSG2 .DA MSG2 L.MSG3 .DA MSG3 L.MSG4 .DA MSG4 +L.MSG5 .DA MSG5 .DA 0 *-------------------------------------- CS.INIT clc @@ -91,6 +93,14 @@ CS.RUN >PUSHEA.G ENDPTR >PUSHEA.G MYLONG >LDYA L.MSG4 >SYSCALL PrintF.YA +*-------------------------------------- + >PUSHW L.LONG1 + >LEA.G MYFLOAT1 + >SYSCALL Float + + >PUSHEA.G MYFLOAT1 + >LDYA L.MSG5 + >SYSCALL PrintF.YA *-------------------------------------- lda #0 sec @@ -111,9 +121,11 @@ FLOAT4 .HS 8100000000 1 FLOAT5 .HS 9080000000 -32768 CONST1 >CSTR "3.141592653" CONST2 >CSTR "3" +LONG1 .DA 123456789 MSG2 >CSTR "PI/3=%e\r\n" MSG3 >CSTR "COS(PI/3)=%e\r\n" MSG4 >CSTR "Long=%L\r\n" +MSG5 >CSTR "Float=%e\r\n" *-------------------------------------- .DUMMY .OR 0