mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-12 04:29:31 +00:00
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
|
# 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...
|
||||||
|
|
|
@ -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:**
|
||||||
|
|
|
@ -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.
|
@ -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..
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -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...
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user