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

View File

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

View File

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

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,8 @@ NEW
PREFIX /A2OSX.BUILD PREFIX /A2OSX.BUILD
AUTO 4,1 AUTO 4,1
*-------------------------------------- *--------------------------------------
KVER .EQ $5C00 92.0
*--------------------------------------
ZPDRV .EQ $20 32 bytes for DHGR.DRV.... ZPDRV .EQ $20 32 bytes for DHGR.DRV....
ZPLIB .EQ $40 32 bytes for TCPIPD.. 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.EXTRABIT .EQ 24
S.MD5.FINALIZED .EQ 25 S.MD5.FINALIZED .EQ 25
* *
S.MD5.SIZE .EQ 26 S.MD5 .EQ 26
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE /A2OSX.BUILD/INC/LIBCRYPT.I SAVE /A2OSX.BUILD/INC/LIBCRYPT.I

View File

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

View File

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

View File

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

View File

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

View File

@ -17,10 +17,10 @@ DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
*/-------------------------------------- */--------------------------------------
* # DNS.Query * # DNS.Query
* Query DNS for specified host * Query DNS for specified host
* ## In: * **In:**
* PUSHW = PTR to IP to fill with cached data * PUSHW = PTR to IP to fill with cached data
* PUSHW = hostname PTR to PSTR * PUSHW = hostname PTR to PSTR
* ## Out: * **Out:**
* CC: hit: IP filled with address * CC: hit: IP filled with address
* CS: missed * CS: missed
*\-------------------------------------- *\--------------------------------------
@ -125,7 +125,7 @@ DNS.REQUEST lda hDNSSocket1
*/-------------------------------------- */--------------------------------------
* # DNS.Add * # DNS.Add
* Add a static DNS record * Add a static DNS record
* ## In: * **In:**
* PUSHW = PTR to IP * PUSHW = PTR to IP
* PUSHW = hostname CSTR to Add * PUSHW = hostname CSTR to Add
*\-------------------------------------- *\--------------------------------------
@ -176,8 +176,8 @@ DNS.ADD.I sta DNS.TmpCache
*/-------------------------------------- */--------------------------------------
* # DNS.GetCAche * # DNS.GetCAche
* Return a Ptr to DNS Cache Table * Return a Ptr to DNS Cache Table
* ## In: * **In:**
* ## Out: * **Out:**
* Y,A = PTR to DNS.CACHE * Y,A = PTR to DNS.CACHE
*\-------------------------------------- *\--------------------------------------
DNS.GetCAche >LDYA L.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.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.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.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.1)** 800k disk image with all sources + **A2OSX.SRC.po** : **(0.9.2)** 800k disk image with all sources
## Latest News 2018-06-13 ## Latest News 2018-06-13

View File

@ -115,7 +115,7 @@ CS.RUN.LOOP
.4 jsr Wait.Timeout .4 jsr Wait.Timeout
bcc .1 bcc .1
>PUSHWI KVER
>LDYA L.MSG.GREETINGS >LDYA L.MSG.GREETINGS
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
@ -257,7 +257,7 @@ MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
.DA #IAC,#DO,#TELOPT.TTYPE .DA #IAC,#DO,#TELOPT.TTYPE
.DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT 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" ENV.TERM .AZ "TERM"
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,9 +6,9 @@ AUTO 4,1
* # ExecPS.YA (Blocking Parent PID) * # ExecPS.YA (Blocking Parent PID)
* # CreatePSNewEnv.YA * # CreatePSNewEnv.YA
* # CreatePS.YA (Non Blocking) * # CreatePS.YA (Non Blocking)
* ## In: * **In:**
* Y,A = PTR To Cmd Line * Y,A = PTR To Cmd Line
* ## Out: * **Out:**
* A = Child PSID * A = Child PSID
*\-------------------------------------- *\--------------------------------------
K.ExecPSNewEnv.YA K.ExecPSNewEnv.YA
@ -386,9 +386,9 @@ PS.SetMemOwner lda CORE.LastPSID
rts rts
*/-------------------------------------- */--------------------------------------
* # GetMemStat.YA * # GetMemStat.YA
* ## In: * **In:**
* Y,A = Ptr to 24 bytes buffer * Y,A = Ptr to 24 bytes buffer
* ## Out: * **Out:**
* Buffer filled with memory stats * Buffer filled with memory stats
*\-------------------------------------- *\--------------------------------------
K.GetMemStat.YA >STYA ZPMemMgrTmp1 K.GetMemStat.YA >STYA ZPMemMgrTmp1
@ -421,9 +421,9 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1
rts rts
*/-------------------------------------- */--------------------------------------
* # GetPSStatus.A * # GetPSStatus.A
* ## In: * **In:**
* A = PID * A = PID
* ## Out: * **Out:**
* A = Status Byte * A = Status Byte
*\-------------------------------------- *\--------------------------------------
K.GetPSStatus.A jsr CORE.GetPSByID.A K.GetPSStatus.A jsr CORE.GetPSByID.A
@ -433,9 +433,9 @@ K.GetPSStatus.A jsr CORE.GetPSByID.A
.9 rts .9 rts
*/-------------------------------------- */--------------------------------------
* # GetPSStat.YA * # GetPSStat.YA
* ## In: * **In:**
* Y,A = Ptr to 24 bytes buffer * Y,A = Ptr to 24 bytes buffer
* ## Out: * **Out:**
* Buffer filled with PS stats * Buffer filled with PS stats
*\-------------------------------------- *\--------------------------------------
K.GetPSStat.YA >STYA ZPPtr1 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 .DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
*/------------------------------------- */-------------------------------------
* # MKDir.YA * # MKDir.YA
* ## In: * **In:**
* Y,A = DIR name * Y,A = DIR name
* ## Out: * **Out:**
* CC : success * CC : success
* CS : error * CS : error
* A = EC * A = EC
@ -114,9 +114,9 @@ K.MKDir.YA jsr PFT.CheckPathYA
*/-------------------------------------- */--------------------------------------
* # MkNod.YA * # MkNod.YA
* return a hFile for a given Device Name * return a hFile for a given Device Name
* ## IN: * **In:**
* Y,A=DevName * Y,A=DevName
* ## OUT: * **Out:**
* CC = OK, CS = ERROR * CC = OK, CS = ERROR
* A = hFILE * A = hFILE
*\-------------------------------------- *\--------------------------------------
@ -167,8 +167,8 @@ K.MkNod.YA jsr K.GetDevByName.YA Ptr1=NAME
*/-------------------------------------- */--------------------------------------
* # MKFIFO * # MKFIFO
* return a hFILE to a new FIFO * return a hFILE to a new FIFO
* ## IN: * **In:**
* ## OUT: * **Out:**
* CC = OK, CS = ERROR * CC = OK, CS = ERROR
* A = hFILE * A = hFILE
*\-------------------------------------- *\--------------------------------------

View File

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

View File

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

View File

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

View File

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