Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-06-14 17:31:36 +02:00
parent de4a0a345f
commit 10b4f9de2f
33 changed files with 615 additions and 677 deletions

File diff suppressed because it is too large Load Diff

View File

@ -31,26 +31,22 @@
# TrkW16s
Write a track (16 sectors)
## In:
**In:**
+ PUSHW = Ptr to 16*256 buffer
+ PUSHB = TrackNum * 4 : 0->140+
+ PUSHB = DSSS0000
## Out:
**Out:**
+ CC : success
+ CS : A = Error
+ A=0, currently starting/seeking...
# TrkWNIB
Write a track (NIBBLE)
## In:
**In:**
+ PUSHW = Ptr to NIBBLE buffer (0 ended)
+ PUSHB = TrackNum * 4 : 0->140+
+ PUSHB = DSSS0000
## Out:
**Out:**
+ CC : success
+ CS : A = Error
+ A=0, currently starting/seeking...

View File

@ -1,35 +1,49 @@
*** Auto generated by docgen.cmd ***
# MD5
+ Return MD5 Hash for input String
## MD5
Return MD5 Hash for input String
## In :
+ PUSHW = PTR to Src String
+ PUSHW = PTR to Dst MessageDigest Buffer
# C
`void md5 (const char* str, char* digest);`
## Out :
+ CC
# ASM
**In:**
`>PUSHW digest`
`>LDYA str`
**Out:**
CC
# MD5Init
## MD5Init
Initialize a MD5 computation
## In :
# C
`HANDLE md5init ();`
## Out :
+ A = hMem To S.MD5
# ASM
**In:**
**Out:**
A = hMem To S.MD5
# MD5Update
## MD5Update
Add Data to MD5 computation
## In:
* PUSHW DATA LEN
* PUSHW DATA PTR
* PUSHB MD5 Context hMem
# C
`int md5update (HANDLE md5, char* data, int len);`
## Out :
# ASM
**In:**
`>PUSHW len`
`>PUSHW data`
`>LDA.G md5`
**Out:**
# MD5Finalize
## MD5Finalize
## In :
+ PUSHW = MessageDigest (PSTR, 16 Bytes, 32 Chars) +Ending 0
+ PUSHB = hMem To S.MD5
# C
`int md5finalize (HANDLE md5, char* digest);`
## Out:
# ASM
**In:**
`>PUSHW digest`
`>LDA.G md5`
**Out:**

View File

@ -9,28 +9,23 @@
# ARP.Query
+ Query ARP Cache and returns HW address
## In:
**In:**
+ PUSHW PTR to MAC (to fill)
+ PUSHW PTR to IP
## Out:
**Out:**
+ CC: hit: MAC filled
+ CS: missed
# ARP.Add
+ Add a static ARP cache record
## In:
**In:**
+ PUSHW PTR to MAC
+ PUSHW PTR to IP
# ARP.GetCAche
+ Return a Ptr to ARP Cache Table
## In:
## Out:
**In:**
**Out:**
+ Y,A = PTR to ARP.CACHE
# DNS.Clear
@ -42,28 +37,23 @@
# DNS.Query
+ Query DNS for specified host
## In:
**In:**
+ PUSHW = PTR to IP to fill with cached data
* PUSHW = hostname PTR to PSTR
## Out:
**Out:**
+ CC: hit: IP filled with address
+ CS: missed
# DNS.Add
+ Add a static DNS record
## In:
**In:**
+ PUSHW = PTR to IP
+ PUSHW = hostname CSTR to Add
# DNS.GetCAche
+ Return a Ptr to DNS Cache Table
## In:
## Out:
**In:**
**Out:**
+ Y,A = PTR to DNS.CACHE
# SKT.New

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,8 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*--------------------------------------
KVER .EQ $5C00 92.0
*--------------------------------------
ZPDRV .EQ $20 32 bytes for DHGR.DRV....
ZPLIB .EQ $40 32 bytes for TCPIPD..
*--------------------------------------

View File

@ -22,7 +22,7 @@ S.MD5.BITCOUNT .EQ 16
S.MD5.EXTRABIT .EQ 24
S.MD5.FINALIZED .EQ 25
*
S.MD5.SIZE .EQ 26
S.MD5 .EQ 26
*--------------------------------------
MAN
SAVE /A2OSX.BUILD/INC/LIBCRYPT.I

View File

@ -147,6 +147,42 @@ AUTO 4,1
lda (pData),y
>PUSHA
.EM
*--------------------------------------
.MA PUSHL.G
ldy #]1+4
: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 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
*--------------------------------------
.MA LDA.G
ldy #]1
@ -224,24 +260,6 @@ AUTO 4,1
pla
sta (pData),y
.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
*--------------------------------------

View File

@ -291,11 +291,11 @@ D2TrkR16s
*/--------------------------------------
* # TrkW16s
* Write a track (16 sectors)
* ## In:
* **In:**
* PUSHW = Ptr to 16*256 buffer
* PUSHB = TrackNum * 4 : 0->140+
* PUSHB = DSSS0000
* ## Out:
* **Out:**
* CC : success
* CS : A = Error
* A=0, currently starting/seeking...
@ -307,11 +307,11 @@ D2TrkW16s
*/--------------------------------------
* # TrkWNIB
* Write a track (NIBBLE)
* ## In:
* **In:**
* PUSHW = Ptr to NIBBLE buffer (0 ended)
* PUSHB = TrackNum * 4 : 0->140+
* PUSHB = DSSS0000
* ## Out:
* **Out:**
* CC : success
* CS : A = Error
* A=0, currently starting/seeking...

View File

@ -111,17 +111,20 @@ LIB.LOAD
LIB.UNLOAD clc
rts
*/--------------------------------------
* # MD5
* Return MD5 Hash for input String
* ## In :
* PUSHW = PTR to Src String
* PUSHW = PTR to Dst MessageDigest Buffer
* ## Out :
* CC
* ## MD5
* Return MD5 Hash for input String
* # C
* `void md5 (const char* str, char* digest);`
* # ASM
* **In:**
* `>PUSHW digest`
* `>LDYA str`
* **Out:**
* CC
*\--------------------------------------
MD5 >PULLW ZPHashPtr
MD5 >STYA ZPDataPtr
>PULLW ZPHashPtr
>PULLYA
>STYA ZPDataPtr
>SYSCALL StrLen.YA
>STYA ZPDataLen
@ -140,12 +143,16 @@ MD5 >PULLW ZPHashPtr
clc
.9 rts
*/--------------------------------------
* # MD5Init
* ## In :
* ## Out :
* A = hMem To S.MD5
* ## MD5Init
* Initialize a MD5 computation
* # C
* `HANDLE md5init ();`
* # ASM
* **In:**
* **Out:**
* A = hMem To S.MD5
*\--------------------------------------
MD5Init >LDYAI S.MD5.SIZE
MD5Init >LDYAI S.MD5
>SYSCALL GetMem.YA
bcs .9
@ -170,16 +177,19 @@ MD5Init >LDYAI S.MD5.SIZE
clc
.9 rts
*/--------------------------------------
* # MD5Update
* ## In:
* PUSHW DATA LEN
* PUSHW DATA PTR
* PUSHB MD5 Context hMem
* ## Out :
* ## MD5Update
* Add Data to MD5 computation
* # C
* `int md5update (HANDLE md5, char* data, int len);`
* # ASM
* **In:**
* `>PUSHW len`
* `>PUSHW data`
* `>LDA.G md5`
* **Out:**
*\--------------------------------------
MD5Update >PULLA get MD5 Context
>SYSCALL GetMemPtr.A
>STYA ZPCtxPtr get MD5 Context
MD5Update >SYSCALL GetMemPtr.A get MD5 Context
>STYA ZPCtxPtr
>PULLW ZPDataPtr get DATA
>PULLW ZPDataLen get LEN
@ -255,11 +265,14 @@ MD5Update.I ldy #S.MD5.FINALIZED
inc ZPDataPtr+1
bra .1
*/--------------------------------------
* # MD5Finalize
* ## In :
* PUSHW = MessageDigest (PSTR, 16 Bytes, 32 Chars) +Ending 0
* PUSHB = hMem To S.MD5
* ## Out:
* ## MD5Finalize
* # C
* `int md5finalize (HANDLE md5, char* digest);`
* # ASM
* **In:**
* `>PUSHW digest`
* `>LDA.G md5`
* **Out:**
*\--------------------------------------
MD5Finalize >PULLA
pha

View File

@ -17,10 +17,10 @@ ARP.Clear ldx #K.ARPCACHE.SIZE*S.ARPCACHE
*/--------------------------------------
* # ARP.Query
* Query ARP Cache and returns HW address
* ## In:
* **In:**
* PUSHW PTR to MAC (to fill)
* PUSHW PTR to IP
* ## Out:
* **Out:**
* CC: hit: MAC filled
* CS: missed
*\--------------------------------------
@ -45,7 +45,7 @@ ARP.Query >PULLW ZPPtrIP IP
*/--------------------------------------
* # ARP.Add
* Add a static ARP cache record
* ## In:
* **In:**
* PUSHW PTR to MAC
* PUSHW PTR to IP
*\--------------------------------------
@ -86,8 +86,8 @@ ARP.ADD.I sta ARP.TmpCache
*/--------------------------------------
* # ARP.GetCAche
* Return a Ptr to ARP Cache Table
* ## In:
* ## Out:
* **In:**
* **Out:**
* Y,A = PTR to ARP.CACHE
*\--------------------------------------
ARP.GetCAche >LDYA L.ARP.CACHE

View File

@ -17,10 +17,10 @@ DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
*/--------------------------------------
* # DNS.Query
* Query DNS for specified host
* ## In:
* **In:**
* PUSHW = PTR to IP to fill with cached data
* PUSHW = hostname PTR to PSTR
* ## Out:
* **Out:**
* CC: hit: IP filled with address
* CS: missed
*\--------------------------------------
@ -125,7 +125,7 @@ DNS.REQUEST lda hDNSSocket1
*/--------------------------------------
* # DNS.Add
* Add a static DNS record
* ## In:
* **In:**
* PUSHW = PTR to IP
* PUSHW = hostname CSTR to Add
*\--------------------------------------
@ -176,8 +176,8 @@ DNS.ADD.I sta DNS.TmpCache
*/--------------------------------------
* # DNS.GetCAche
* Return a Ptr to DNS Cache Table
* ## In:
* ## Out:
* **In:**
* **Out:**
* Y,A = PTR to DNS.CACHE
*\--------------------------------------
DNS.GetCAche >LDYA L.DNS.CACHE

View File

@ -8,8 +8,8 @@
+ **A2OSX.BOOT.po** : **(0.9.1)** 140k BOOT disk image with all binaries
+ **A2OSX.DEV.po** : **(0.9.1)** 140k disk image with ASM binaries, Debug Tools & INClude files
+ **A2OSX.BUILD.po** : **(0.9.1)** 800k BOOT disk image with S-C MASM 3.0 and all binaries (BOOT+DEV)
+ **A2OSX.SRC.po** : **(0.9.1)** 800k disk image with all sources
+ **A2OSX.BUILD.po** : **(0.9.2)** 800k BOOT disk image with S-C MASM 3.0 and all binaries (BOOT+DEV)
+ **A2OSX.SRC.po** : **(0.9.2)** 800k disk image with all sources
## Latest News 2018-06-13

View File

@ -115,7 +115,7 @@ CS.RUN.LOOP
.4 jsr Wait.Timeout
bcc .1
>PUSHWI KVER
>LDYA L.MSG.GREETINGS
>SYSCALL PrintF.YA
@ -257,7 +257,7 @@ MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
.DA #IAC,#DO,#TELOPT.TTYPE
.DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY 0.9.1\r\n"
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n"
ENV.TERM .AZ "TERM"
*--------------------------------------
.DUMMY

View File

@ -654,19 +654,24 @@ CSH.GetNumInACC >LDA.G CSH.ACCT
>PUSHWI ZPCSHBufPtr
>PUSHW ZPCSHBufPtr
>PUSHEA.G CSH.ACC
>SYSCALL StrToF
bcs .9
>PULLF.G CSH.ACC
rts
.1 >PUSHBI 10
>PUSHWI ZPCSHBufPtr
>PUSHW ZPCSHBufPtr
>PUSHEA.G CSH.ACC
>SYSCALL StrToL
rts
bcs .9
>PULLL.G CSH.ACC
.9 rts
*--------------------------------------
CSH.ZeroACC lda #0
ldx #5
@ -927,12 +932,13 @@ CSH.BOPS.SUB >LDA.G CSH.ACCT
clc
rts
.8 >PUSHEA.G CSH.ACC
>PUSHEA.G CSH.ARG
>LEA.G CSH.ACC
.8 >PUSHF.G CSH.ACC
>PUSHF.G CSH.ARG
>SYSCALL FSUB
bcs .9
rts
>PULLF.G CSH.ACC
.9 rts
CSH.BOPS.MUL
clc
rts

View File

@ -138,6 +138,7 @@ CS.INIT jsr SetPWD
.1 jsr HIS.Init
bcs .9
>PUSHWI KVER
>LDYA L.MSG.GREETINGS
>SYSCALL PrintF.YA
@ -355,7 +356,7 @@ INTCMDS .AZ "CD"
.AZ "TIME"
.HS 00
*--------------------------------------
MSG.GREETINGS .AZ "\r\nA2osX-Shell 0.9.1\r\n\r\n"
MSG.GREETINGS .AZ "\r\nA2osX-Shell %d.%d\r\n\r\n"
MSG.PROMPT .AZ "$ "
MSG.ECHO .AZ ">%s\r\n"
MSG.ERROR .AZ "[$%h]:%S.\r\n"

View File

@ -2,15 +2,16 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*/--------------------------------------
* # GetArg.A
* ## In:
* A = argument index.
* ## Out:
* CC : success
* Y,A = CStr To Arg[A]
* CS : Out Of Bound
* ## GetArg
* # ASM
* **In:**
* A = argument index.
* **Out:**
* CC : success
* Y,A = PTR To Arg[A]
* CS : Out Of Bound
*\--------------------------------------
K.GetArg.A pha save requested arg#
K.GetArg pha save requested arg#
ldy #S.PS.hARGS
lda (pPs),y
@ -18,7 +19,7 @@ K.GetArg.A pha save requested arg#
plx we want 0 ?
beq .80 yes, returns MemPtr
beq .8 yes, returns MemPtr
>STYA ZPPtr1 no, save it
@ -42,8 +43,8 @@ K.GetArg.A pha save requested arg#
lda (ZPPtr1) at end of ARGS[] ?
beq .9
.8 >LDYA ZPPtr1
.80 clc
>LDYA ZPPtr1
.8 clc
rts
.9 sec

View File

@ -142,12 +142,12 @@ BIN.FindDRV.YA sec
* # FileSearch
* Search a file in the provided PATH list
* And return, if found, the full path to it.
* ## In:
* **In:**
* PUSHW = Ptr to Search Path (CSTR) %LIB%;/SYS/SLIB
* PUSHW = Ptr to File Name (CSTR)
* PUSHW = Ptr to DstBuf
* PUSHW = Ptr to DstStat
* ## Out:
* **Out:**
* CC : success
* DstBuf = FilePath
* DstStat = S.STAT

View File

@ -292,7 +292,7 @@ DevMgr.NUL.Code .DA .1 STATUS
>PSTR "NULL DEVICE "
.DA #S.DSTAT.T.CHAR
.DA #0
.DA #0,#91
.DA KVER
*--------------------------------------
* SYS DEVICE
*--------------------------------------
@ -316,7 +316,7 @@ DevMgr.SYS.Code .DA .1 STATUS
>PSTR "A2osX SYS Screen"
.DA #S.DSTAT.T.CHAR
.DA #0
.DA #0,#91
.DA KVER
*--------------------------------------
DevMgr.SYS.Open lda #1
sta A2osX.SCRNDEVS

View File

@ -3,9 +3,9 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*/--------------------------------------
* # GetDevByID.A
* ## IN:
* **In:**
* A = DevID
* ## OUT:
* **Out:**
* CC = OK, CS = ERROR
* Y,A = DEVSLOT
* note: X Unmodified
@ -24,9 +24,9 @@ K.GetDevByID.A cmp DevMgr.Count
rts CC
*/--------------------------------------
* # GetDevByName.YA
* ## IN:
* **In:**
* Y,A = Ptr to device name (C-String)
* ## OUT:
* **Out:**
* CC = OK, CS = ERROR
* X = DEVID
* Y,A = DEVSLOT
@ -71,9 +71,9 @@ K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
rts
*/--------------------------------------
* # GetDevStatus.A
* ## IN:
* **In:**
* A = DevID
* ## OUT:
* **Out:**
* Y,A = S.DSTAT
*\--------------------------------------
K.DevClose.A ldx #DEVMGR.CLOSE
@ -88,11 +88,11 @@ K.GetDevStatus.A
jmp (pDev)
*/--------------------------------------
* # IOCTL
* ## IN:
* **In:**
* PUSHB = DevID
* PUSHB = Operation
* PUSHW = Param Block
* ## OUT:
* **Out:**
* Y,A = ...
*\--------------------------------------
K.IOCTL >PULLB .1+1

View File

@ -3,9 +3,9 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*/--------------------------------------
* # OpenDir.YA
* ## In:
* **In:**
* Y,A = PATH (C-String)
* ## Out:
* **Out:**
* CC : success
* A = hDIR
* CS : error
@ -59,9 +59,9 @@ K.OpenDir.YA jsr PFT.CheckPathYA
.99 rts
*/--------------------------------------
* # ReadDir.A
* ## In:
* **In:**
* A = hDIR
* ## Out:
* **Out:**
* CC : success
* X = hDIRENT
* Y,A = PTR to S.DIRENT
@ -599,9 +599,9 @@ K.ReadDir.A.ConvertTime
rts
*/-------------------------------------
* # CloseDir.A
* ## In:
* **In:**
* A = hDIR
* ## Out:
* **Out:**
* none, always succeed.
*\-------------------------------------
K.CloseDir.A .EQ K.FClose.A

View File

@ -3,9 +3,9 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*/--------------------------------------
* # ExpandStr.YA
* ## In:
* **In:**
* Y,A = PTR to String to Expand (C-String)
* ## Out:
* **Out:**
* X = hMem to Expanded String (C-String)
* Y,A = PTR to Expanded String
*\--------------------------------------
@ -123,9 +123,9 @@ K.ExpandStr.YA stz .88+1 Reset Intermediate string...
.9 rts
*/--------------------------------------
* # PutEnv.YA
* ## In:
* **In:**
* Y,A = PTR to String NAME=VALUE (C-String)
* ## Out:
* **Out:**
*\--------------------------------------
K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
@ -160,10 +160,10 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
rts
*/--------------------------------------
* # SetEnv
* ## In:
* **In:**
* PUSHW = PTR To Value (PSTR)
* PUSHW = PTR To Name (PSTR)
* ## Out:
* **Out:**
*\--------------------------------------
K.SetEnv jsr MEM.PullP1P2 Ptr1=NAME,Ptr2=VALUE
K.SetEnv.I jsr K.UnsetEnv.I
@ -264,9 +264,9 @@ K.SetEnv.I jsr K.UnsetEnv.I
rts
*/--------------------------------------
* # GetEnv.YA
* ## In:
* **In:**
* Y,A = PTR to NAME (PSTR)
* ## Out:
* **Out:**
* CC : Y,A = PTR to VALUE (PSTR)
* CS : not found
*\--------------------------------------
@ -281,9 +281,9 @@ K.GetEnv.YA >STYA ZPPtr1
rts
*/--------------------------------------
* # UnsetEnv.YA
* ## In:
* **In:**
* Y,A = PTR To Name (PSTR)
* ## Out:
* **Out:**
*\--------------------------------------
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
K.UnsetEnv.I jsr ENV.FindVarP1

View File

@ -4,9 +4,9 @@ AUTO 4,1
*/--------------------------------------
* # LoadTxtFile.YA
* Load TXT a file in memory (with ending 0)
* ## In:
* **In:**
* Y,A = File Path
* ## Out:
* **Out:**
* Y,A = File Length (without ending 0)
* X = hMem of Loaded File
*\--------------------------------------
@ -22,12 +22,12 @@ K.LoadTxtFile.YA
*/--------------------------------------
* # LoadFile
* Load a file in memory
* ## In:
* **In:**
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
* PUSHW = PATH ...FOpen)
* ## Out:
* **Out:**
* Y,A = File Length
* X = hMem of Loaded File
*\--------------------------------------
@ -140,7 +140,7 @@ FIO.Mem .BS 2
FIO.FSize .BS 2
*/--------------------------------------
* # ChTyp
* ## In:
* **In:**
* PUSHB = TYPE
* PUSHW = PATH
*\--------------------------------------
@ -156,21 +156,21 @@ K.ChTyp jsr PFT.CheckPathSTK
.9 rts
*/--------------------------------------
* # ChMod
* ## In:
* **In:**
* PUSHW = UID
* PUSHW = PATH
*\--------------------------------------
K.ChMod
*/--------------------------------------
* # ChOwn
* ## In:
* **In:**
* PUSHW = UID
* PUSHW = PATH
*\--------------------------------------
K.ChOwn
*/--------------------------------------
* # ChGrp
* ## In:
* **In:**
* PUSHW = GID
* PUSHW = PATH
*\--------------------------------------

View File

@ -26,11 +26,11 @@ GP.CodeStart jmp GP.SysCall
*--------------------------------------
jmp GP.AtkCall
*--------------------------------------
* MLICALL (AUXLC to MAINLC)
* ROMCALL (AUXLC to ROMLC)
* Used by Kernel
* In:
* X = MLI Function
* A = Param Count
* X = ROM Function
* Y,A = Param
*--------------------------------------
jmp GP.RomCall
*--------------------------------------

View File

@ -4,10 +4,10 @@ AUTO 4,1
*/--------------------------------------
* # FAdd,FSub,FMult,FDiv,FPwr
* Return X+Y, X-Y, X*Y, X/Y, X^Y
* ## In:
* **In:**
* PUSHF = X (Float)
* PUSHF = Y (Float)
* ## Out:
* **Out:**
* On stack (Float)
*\--------------------------------------
K.FAdd ldx #ROM.FADD
@ -19,17 +19,19 @@ K.FMult ldx #ROM.FMULT
K.FDiv ldx #ROM.FDIV
.HS 2C BIT ABS
K.FPwr ldx #ROM.PWR
>STYA FORPNT
phx
jsr MATH.PullFAC
jsr MATH.PullARG
plx
bra MATH.Go
*/--------------------------------------
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
* ## In:
* **In:**
* PUSHF = X (Float)
* ## Out:
* **Out:**
* On stack (Float)
*\--------------------------------------
K.Log ldx #ROM.LOG
@ -45,16 +47,18 @@ K.Sin ldx #ROM.SIN
K.Tan ldx #ROM.TAN
.HS 2C BIT ABS
K.ATan ldx #ROM.ATAN
>STYA FORPNT
phx
jsr MATH.PullFAC
plx
bra MATH.Go
*/--------------------------------------
* # Float
* Return 'floated' long
* ## In:
* **In:**
* PUSHL = X (long)
* ## Out:
* **Out:**
* On stack (Float)
*\--------------------------------------
K.Float >PULLW FAC+1
@ -65,10 +69,17 @@ K.Float >PULLW FAC+1
sta FAC Exp=32
ldx #ROM.LTOF
phx
MATH.Go plx
jsr GP.ROMCALL
MATH.Go jsr GP.ROMCALL
lda pStack
sec
sbc #5
sta pStack
sta FORPNT
lda pStack+1
sta FORPNT+1
ldx #ROM.GETFAC
jsr GP.ROMCALL
@ -78,9 +89,9 @@ MATH.Go plx
*/--------------------------------------
* # LRIntF
* Return Float rounded into a long
* ## In:
* **In:**
* PUSHF = X (Float)
* ## Out:
* **Out:**
* On stack (long)
*\--------------------------------------
K.LRIntF jsr MATH.PullFAC

View File

@ -19,9 +19,9 @@ ZPSListDataPtr .EQ ZPMEMMGR+14
*--------------------------------------
*/--------------------------------------
* # GetMem0.YA
* ## In:
* **In:**
* Y,A = Size Requested
* ## Out:
* **Out:**
* CC : success
* YA = PTR to Mem (ZERO Initialised)
* X = hMem
@ -32,9 +32,9 @@ K.GetMem0.YA ldx #S.MEM.F.INIT0
.HS 2C bit abs
*/--------------------------------------
* # GetMem.YA
* ## In:
* **In:**
* Y,A = Size Requested
* ## Out:
* **Out:**
* CC : success
* YA = PTR to Mem (Uninitialised)
* X = hMem
@ -236,9 +236,9 @@ Mem.NextSlot lda ZPMemMgrSPtr
.8 rts
*/--------------------------------------
* # FreeMem.A
* ## In:
* **In:**
* A = hMem To Free
* ## Out:
* **Out:**
* none.
* (X,Y unmodified)
*\--------------------------------------
@ -332,9 +332,9 @@ K.FreeMem.A phy
K.FreeMem.A.ERR .AZ "FreeMem:%H:hMem already freed."
*/--------------------------------------
* # GetMemPtr.A
* ## In:
* **In:**
* A = hMem
* ## Out:
* **Out:**
* Y,A = PTR to MemBlock
* (X unmodified)
*\--------------------------------------
@ -348,9 +348,9 @@ K.GetMemPtr.A jsr K.GetMemByID.A
rts
*/--------------------------------------
* # GetMemByID.A
* ## In:
* **In:**
* A = hMem
* ## Out:
* **Out:**
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
* X unmodified
*\--------------------------------------
@ -399,9 +399,9 @@ K.GetMemByID.A sta ZPMemMgrSPtr
*/--------------------------------------
* # NewStr.YA
* Create a new copy of this C-String
* ## In:
* **In:**
* Y,A = Ptr to source C-String
* ## Out:
* **Out:**
* CC : success
* Y,A = PTR to String
* X = hMem (PSTR)
@ -451,22 +451,22 @@ K.NewStr.YA >STYA .1+1
.9 rts
*/--------------------------------------
* # SListGetByID
* ## In:
* **In:**
* PUSHB = hSList
* PUSHW = KeyID
* PUSHW = Data Ptr
* PUSHW = Key Ptr
* ## Out:
* **Out:**
* X,Y = Next KeyID
*\--------------------------------------
K.SListGetByID >PULLW ZPSListKeyPtr
*/--------------------------------------
* # SListUpdateByID
* ## In:
* **In:**
* PUSHB = hSList
* PUSHW = KeyID
* PUSHW = Data Ptr
* ## Out:
* **Out:**
* A = Key Length
* X,Y = KeyID
*\--------------------------------------
@ -476,22 +476,22 @@ K.SListUpdateByID
bra K.SListPullH
*/--------------------------------------
* # SListAdd
* ## In:
* **In:**
* PUSHB = hSList
* PUSHW = Key Ptr
* PUSHW = Data Ptr
* ## Out:
* **Out:**
* A = Key Length
* X,Y = KeyID
*\--------------------------------------
K.SListAdd
*/--------------------------------------
* # SListLookup
* ## In:
* **In:**
* PUSHB = hSList
* PUSHW = Key Ptr
* PUSHW = Data Ptr
* ## Out:
* **Out:**
* A = Key Length
* X,Y = KeyID
*\--------------------------------------
@ -502,16 +502,16 @@ K.SListLookup
K.SListPullH >PULLA
*/--------------------------------------
* # SListNew
* ## In:
* ## Out:
* **In:**
* **Out:**
* A=hSList
*\--------------------------------------
K.SListNew
*/--------------------------------------
* # SListFree
* ## In:
* **In:**
* A=hSList
* ## Out:
* **Out:**
*\--------------------------------------
K.SListFree.A
*--------------------------------------
@ -523,10 +523,10 @@ K.SListFree.A
rts
*/--------------------------------------
* # GetStkObjProperty.AY
* ## In:
* **In:**
* A = hObject (AUX Memory)
* Y = Property Index
* ## Out:
* **Out:**
* Y,A = Property Value
*\--------------------------------------
K.GetStkObjProperty.AY
@ -545,9 +545,9 @@ K.GetStkObjProperty.AY
rts
*/--------------------------------------
* # NewStkObj.YA
* ## In:
* **In:**
* Y,A = Size Requested
* ## Out:
* **Out:**
* CC : success
* YA = PTR to Mem (Uninitialised)
* X = hMem
@ -558,9 +558,9 @@ K.NewStkObj.YA ldx #SYS.GetMem.YA
.HS 2C BIT ABS
*/--------------------------------------
* # FreeStkObj.A
* ## In:
* **In:**
* A = hMem To Free (AUX Memory)
* ## Out:
* **Out:**
* none.
* (X,Y unmodified)
*\--------------------------------------
@ -579,12 +579,12 @@ MEM.GoStkObj sta SETREADAUX
*/--------------------------------------
* # LoadStkObj
* Load a file in AUX memory (Stock Objects)
* ## In:
* **In:**
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
* PUSHW = PATH ...FOpen)
* ## Out:
* **Out:**
* Y,A = File Length
* X = hMem of Loaded Object in AUX mem
*\--------------------------------------

View File

@ -6,9 +6,9 @@ AUTO 4,1
* # ExecPS.YA (Blocking Parent PID)
* # CreatePSNewEnv.YA
* # CreatePS.YA (Non Blocking)
* ## In:
* **In:**
* Y,A = PTR To Cmd Line
* ## Out:
* **Out:**
* A = Child PSID
*\--------------------------------------
K.ExecPSNewEnv.YA
@ -386,9 +386,9 @@ PS.SetMemOwner lda CORE.LastPSID
rts
*/--------------------------------------
* # GetMemStat.YA
* ## In:
* **In:**
* Y,A = Ptr to 24 bytes buffer
* ## Out:
* **Out:**
* Buffer filled with memory stats
*\--------------------------------------
K.GetMemStat.YA >STYA ZPMemMgrTmp1
@ -421,9 +421,9 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1
rts
*/--------------------------------------
* # GetPSStatus.A
* ## In:
* **In:**
* A = PID
* ## Out:
* **Out:**
* A = Status Byte
*\--------------------------------------
K.GetPSStatus.A jsr CORE.GetPSByID.A
@ -433,9 +433,9 @@ K.GetPSStatus.A jsr CORE.GetPSByID.A
.9 rts
*/--------------------------------------
* # GetPSStat.YA
* ## In:
* **In:**
* Y,A = Ptr to 24 bytes buffer
* ## Out:
* **Out:**
* Buffer filled with PS stats
*\--------------------------------------
K.GetPSStat.YA >STYA ZPPtr1

View File

@ -85,9 +85,9 @@ K.Stat.DST .DA #S.STAT.P.TYPE
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
*/-------------------------------------
* # MKDir.YA
* ## In:
* **In:**
* Y,A = DIR name
* ## Out:
* **Out:**
* CC : success
* CS : error
* A = EC
@ -114,9 +114,9 @@ K.MKDir.YA jsr PFT.CheckPathYA
*/--------------------------------------
* # MkNod.YA
* return a hFile for a given Device Name
* ## IN:
* **In:**
* Y,A=DevName
* ## OUT:
* **Out:**
* CC = OK, CS = ERROR
* A = hFILE
*\--------------------------------------
@ -167,8 +167,8 @@ K.MkNod.YA jsr K.GetDevByName.YA Ptr1=NAME
*/--------------------------------------
* # MKFIFO
* return a hFILE to a new FIFO
* ## IN:
* ## OUT:
* **In:**
* **Out:**
* CC = OK, CS = ERROR
* A = hFILE
*\--------------------------------------

View File

@ -5,10 +5,10 @@ AUTO 4,1
* # FPutC.A
* int fputc ( int character, hFILE stream );
* Print A (char) to hFILE
* ## In:
* **In:**
* PUSHB : hFILE
* A : char to print
* ## Out:
* **Out:**
* CC = success
*\--------------------------------------
K.FPutC.AY sta K.IOBuf
@ -19,9 +19,9 @@ K.FPutC.AY sta K.IOBuf
* # PutChar.A
* int putchar ( int character );
* Print A (char) to StdOut
* ## In:
* **In:**
* A : char to print
* ## Out:
* **Out:**
* CC = success
*\--------------------------------------
K.PutChar.A sta K.IOBuf
@ -41,9 +41,9 @@ K.PutChar.A.1 jsr K.GetMemPtr.A
* # PutS.YA
* int puts ( const char * str );
* Write Str to StdOut, appends '\r\n'
* ## In:
* **In:**
* Y,A : CPtr
* ## Out:
* **Out:**
* CC = success
*\--------------------------------------
K.PutS.YA >STYA pIOBuf
@ -62,10 +62,10 @@ K.PutS.YA >STYA pIOBuf
* # FPutS.YA
* int fputs ( const char * str, hFILE stream );
* Write Str to FILE
* ## In:
* **In:**
* PUSHB : hFILE
* Y,A: CPtr
* ## Out:
* **Out:**
* CC = success
*\--------------------------------------
K.FPutS.YA >STYA pIOBuf
@ -103,7 +103,7 @@ K.FPutS.YA.1 jsr K.GetMemPtr.A
* int fprintf ( FILE * stream, const char * format, ... );
*
* Prints C-Style String
* ## In:
* **In:**
* PrintF.YA :
* PUSH ...
* Y,A = PTR to CStr
@ -116,7 +116,7 @@ K.FPutS.YA.1 jsr K.GetMemPtr.A
* PUSHW = PTR to CStr
* A = hFILE
*
* ## Out:
* **Out:**
* CC : success
* CS : error code from Output
* Specifiers :
@ -646,9 +646,9 @@ STDIO.Out.FIFO ldy #S.NODE.FIFO.S
*/--------------------------------------
* # GetChar
* Get char from StdIn
* ## In:
* **In:**
* none.
* ## Out:
* **Out:**
* CC = success
* A = char
*\--------------------------------------
@ -657,9 +657,9 @@ K.GetChar ldy #S.PS.hStdIn
*/--------------------------------------
* # GetC.A
* Get char from Node
* ## In:
* **In:**
* A = hNODE
* ## Out:
* **Out:**
* CC = success
* A = char
*\--------------------------------------
@ -729,7 +729,7 @@ BCDBUF .EQ ARG
*/--------------------------------------
* # SScanF.YA
* Scan a C-String (in progress)
* ## In:
* **In:**
* PUSHW PTR to target var
* ...
* PUSHW PTR pattern (ex: "%d.%d.%d.%d")
@ -742,7 +742,7 @@ BCDBUF .EQ ARG
* %h : HEX byte
* %H : HEX word
* Y,A = PTR to String to scan (ex: "192.168.1.5")
* ## Out:
* **Out:**
*\--------------------------------------
K.SScanF.YA >STYA ZPPtr2 String to Scan
>PULLW ZPPtr1 Pattern
@ -1014,7 +1014,7 @@ K.FRead jsr PFT.CheckNodeSTK
* # FWrite
* int fwrite ( const void * ptr, int count, FILE * stream );
* Write bytes to file
* ## In:
* **In:**
* PUSHW = Src Ptr
* PUSHW = Bytes To Write
* PUSHB = hFILE
@ -1035,7 +1035,7 @@ K.FReadWrite.1 >PULLA
.9 rts
*/--------------------------------------
* # FFlush.A
* ## In:
* **In:**
* A = hFILE
*\--------------------------------------
K.FFlush.A jsr PFT.CheckNodeA
@ -1045,7 +1045,7 @@ K.FFlush.A jsr PFT.CheckNodeA
*/-------------------------------------
* # FSeek
* Set the file-position indicator for hFILE
* ## In:
* **In:**
* PUSHW = Ptr to Offset (DWORD)
* PUSHB = From
* PUSHB = hFILE
@ -1114,9 +1114,9 @@ K.FSeek jsr PFT.CheckNodeSTK
*/--------------------------------------
* # FEOF.A
* Test the end-of-file indicator for hFILE
* ## In:
* **In:**
* A = hFILE
* ## Out:
* **Out:**
* CC :
* A=0 EOF
* A !=0 NOT EOF
@ -1153,10 +1153,10 @@ K.FEOF.A.MARK .BS 3
*/--------------------------------------
* # FTell
* Return the current value of the file-position indicator
* ## In:
* **In:**
* PUSHW = Ptr to Offset (DWORD)
* PUSHB = hFILE
* ## Out:
* **Out:**
* Offset = Offset
*\--------------------------------------
K.FTell jsr PFT.CheckNodeSTK

View File

@ -2,14 +2,16 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*/--------------------------------------
* # StrToF
* ## StrToF
* Convert String to 40 bits Float
* ## In:
* PUSHW PTR to EndPtr
* PUSHW Source String (C-Sring)
* PUSHW PTR to target buffer (5 bytes)
* ## Out:
* Target buffer filled with a FLOAT (packed)
* # C
* `float strtof (const char* str, char** endptr);`
* # ASM
* **In:**
* `>PUSHWI EndPtr`
* `>LDYA str`
* **Out:**
* On stack (float)
*\--------------------------------------
K.StrToF jsr K.AToF
>PULLW ZPPtr3
@ -20,12 +22,15 @@ K.StrToF jsr K.AToF
sta (ZPPtr3),y
rts
*/--------------------------------------
* # AToF
* ## AToF
* Convert String to 40 bits Float
* ## In:
* PUSHW Source String (C-Sring)
* PUSHW PTR to target buffer (5 Bytes)
* ## Out:
* # C
* `float atof (const char* str);`
* # ASM
* **In:**
* `>LDYA str`
* **Out:**
* On stack (float)
*\--------------------------------------
K.AToF >PULLW FORPNT Ptr to dst buffer
>PULLW TXTPTR Ptr to source string
@ -39,27 +44,21 @@ K.AToF >PULLW FORPNT Ptr to dst buffer
clc
rts
*/--------------------------------------
* # StrToL
* Convert String to 32 bits int
* ## In:
* PUSHB Base
* PUSHW PTR to EndPtr
* PUSHW Source String (C-Sring)
* PUSHW PTR to target buffer DWORD
* ## Out:
* ## StrToL (StrToUL)
* Convert String to 32 bits (unsigned) int
* # C
* `long strtol (const char* str, char** endptr, int base);`
* `unsigned long strtol (const char* str, char** endptr, int base);`
* # ASM
* **In:**
* `>PUSHB Base`
* `>PUSHWI EndPtr`
* `>LDYA str`
* **Out:**
* On stack (long)
*\--------------------------------------
K.StrToL sec Signed
.HS 90 BCC
*/--------------------------------------
* # StrToUL
* Convert String to 32 bits unsigned int
* ## In:
* PUSHB Base
* PUSHW PTR to EndPtr
* PUSHW Source String (C-Sring)
* PUSHW PTR to target buffer DWORD
* ## Out:
*\--------------------------------------
K.StrToUL clc Unsigned
jsr MEM.PullP1P2P3
>PULLA Base
@ -79,10 +78,10 @@ K.StrToUL.rts rts
*/--------------------------------------
* # AToL
* Convert String to 32 bits int
* ## In:
* **In:**
* PUSHW Source String (C-Sring)
* PUSHW PTR to target buffer DWORD
* ## Out:
* **Out:**
*\--------------------------------------
*STDLIB.32 .BS 4 32 bits max
STDLIB.32 .EQ FAC 32 bits max
@ -110,9 +109,9 @@ K.AToL.I jsr STDLIB.GetDec
*/--------------------------------------
* # AToI.YA
* Convert String to 16 bits int
* ## In:
* **In:**
* Y,A = Source String (C-String)
* ## Out:
* **Out:**
* Y,A = Int
*\--------------------------------------
K.AToI.YA >STYA ZPPtr2

View File

@ -4,9 +4,9 @@ AUTO 4,1
*/--------------------------------------
* # StrLen.YA
* Returns Length of C-String
* ## In:
* **In:**
* Y,A = Ptr to CSTR
* ## Out:
* **Out:**
* Y,A = String length
*\--------------------------------------
K.StrLen.YA >STYA ZPPtr1
@ -27,10 +27,10 @@ K.StrLen.YA >STYA ZPPtr1
*/--------------------------------------
* # StrCat
* Append SRC to DST
* ## In:
* **In:**
* PUSHW = Ptr to SRC (CSTR)
* PUSHW = Ptr to DST (CSTR)
* ## Out:
* **Out:**
* DST = DST+SRC
*\--------------------------------------
K.StrCat jsr MEM.PullP1P2
@ -45,10 +45,10 @@ K.StrCat jsr MEM.PullP1P2
*/--------------------------------------
* # StrCpy
* Copy string
* ## In:
* **In:**
* PUSHW = Ptr to SRC (CSTR)
* PUSHW = Ptr to DST (CSTR)
* ## Out:
* **Out:**
* DST = SRC
*\--------------------------------------
K.StrCpy jsr MEM.PullP1P2
@ -68,10 +68,10 @@ K.StrCpy.I ldy #0
*/--------------------------------------
* # StrMatch
* Compare a String against pattern
* ## In:
* **In:**
* PUSHW = PTR to Pattern (e.g. '*test?.txt')
* PUSHW = PTR to Src String
* ## Out:
* **Out:**
* CC : match
* CS : no match
*\--------------------------------------
@ -142,9 +142,9 @@ K.StrMatch jsr MEM.PullP1P2
*/--------------------------------------
* # StrUpr.YA/StrLwr.YA
* Convert string to UPPERCASE/lowercase
* ## In:
* **In:**
* Y,A = PTR to String (CSTR)
* ## Out:
* **Out:**
* Uppercased/lowercased String in Buffer
*\--------------------------------------
K.StrUpr.YA ldx #0
@ -179,10 +179,10 @@ K.StrLwr.YA ldx #2
*/--------------------------------------
* # StrCmp
* Compare 2 strings
* ## In:
* **In:**
* PUSHW = Ptr to String1 (CSTR)
* PUSHW = Ptr to String2 (CSTR)
* ## Out:
* **Out:**
* DST = SRC
*\--------------------------------------
K.StrCmp sec
@ -190,10 +190,10 @@ K.StrCmp sec
*/--------------------------------------
* # StrICmp
* Compare 2 strings
* ## In:
* **In:**
* PUSHW = Ptr to String1 (CSTR)
* PUSHW = Ptr to String2 (CSTR)
* ## Out:
* **Out:**
* CC, Y,A=0
* CS, Y,A > 0 or < 0
*\--------------------------------------

View File

@ -377,7 +377,7 @@ K.CTime.Year .BS 1
*/--------------------------------------
* # StrFTime
* Convert S.TIME struct to CSTR
* ## In:
* **In:**
* PUSHW = Dst PTR To CSTR Buf
* PUSHW = Src PTR To Format String
* %a : Abbreviated weekday name : Thu
@ -395,7 +395,7 @@ K.CTime.Year .BS 1
* %y : Year, last two digits (00-99)
* %Y : Year four digits 2001
* PUSHW = Src PTR To S.Time
* ## Out:
* **Out:**
* none. always succeed.
*\--------------------------------------
K.StrFTime jsr MEM.PullP1P2P3