mirror of https://github.com/A2osX/A2osX.git
Kernel 0.9.2
This commit is contained in:
parent
de4a0a345f
commit
10b4f9de2f
631
.Docs/KERNEL.md
631
.Docs/KERNEL.md
File diff suppressed because it is too large
Load Diff
|
@ -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...
|
||||
|
|
|
@ -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:**
|
||||
|
|
|
@ -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.
|
@ -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..
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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...
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*\--------------------------------------
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*\--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*\--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*\--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue