Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-07-24 08:24:23 +02:00
parent 082f899a56
commit 62efb2d2e0
10 changed files with 48 additions and 31 deletions

View File

@ -558,18 +558,21 @@ Prints C-Style String
**In:** **In:**
PrintF : (example is for printing Y,A as integer : format="Y,A= %I", 2 bytes) PrintF : (example is for printing Y,A as integer : format="Y,A= %I", 2 bytes)
`>PUSHYA` `>PUSHYA`
`>PUSHBI 2` `...`
`>PUSHBI bytecount`
`>LDYAI format` `>LDYAI format`
`>SYSCALL printf` `>SYSCALL printf`
SPrintF : SPrintF :
`>PUSHYA` `>PUSHYA`
`>PUSHBI 2` `...`
`>PUSHBI bytecount`
`>PUSHWI format` `>PUSHWI format`
`>LDYAI str` `>LDYAI str`
`>SYSCALL sprintf` `>SYSCALL sprintf`
FPrintF : FPrintF :
`>PUSHYA` `>PUSHYA`
`>PUSHBI 2` `...`
`>PUSHBI bytecount`
`>PUSHWI format` `>PUSHWI format`
`lda hFILE` `lda hFILE`
`>SYSCALL fprintf` `>SYSCALL fprintf`
@ -640,7 +643,6 @@ Read formatted data from string
## ASM ## ASM
**In:** **In:**
`>PUSHBI Argument Byte count` `>PUSHBI Argument Byte count`
`>PUSHWI format`
+ %i : short int + %i : short int
+ %d : byte + %d : byte
+ %I : int + %I : int
@ -650,6 +652,10 @@ Read formatted data from string
+ %h : HEX byte + %h : HEX byte
+ %H : HEX word + %H : HEX word
`>PUSHW ptr`
`...`
`>PUSHBI bytecount`
`>PUSHWI format`
`>LDYA s` `>LDYA s`
**Out:** **Out:**
Y,A = Number of arguments filled. Y,A = Number of arguments filled.

View File

@ -2,6 +2,11 @@
# GetProDOSCatSize # GetProDOSCatSize
Compute space needed for ProDOS Catalog Compute space needed for ProDOS Catalog
## C
int getprodoscatsize (short int options, short int catsize, int devsize );
## ASM
**In:** **In:**
PUSHW = DevSize (in 512b blocks) PUSHW = DevSize (in 512b blocks)
PUSHB = Catalog Size (in blocks) PUSHB = Catalog Size (in blocks)

View File

@ -60,13 +60,13 @@
YA = PTR to new S.SOCKET YA = PTR to new S.SOCKET
X = hSocket X = hSocket
# SKT.CloseA # SKT.Close
Close socket Close socket
**In:** **In:**
A = hSocket A = hSocket
**Out:** **Out:**
# SKT.GetA # SKT.Get
Get Ptr to socket Get Ptr to socket
**In:** **In:**
A = hSocket A = hSocket
@ -79,14 +79,14 @@
**Out:** **Out:**
Y,A = pS.SOCKET Y,A = pS.SOCKET
# SKT.AcceptA # SKT.Accept
Check for an incoming connection Check for an incoming connection
**In:** **In:**
A = hListeningSocket A = hListeningSocket
**Out:** **Out:**
A = hSocket A = hSocket
# SKT.MkNodA # SKT.MkNod
Create a new file from TCP socket Create a new file from TCP socket
**In:** **In:**
A = hSocket A = hSocket
@ -101,7 +101,7 @@
PUSHW = len PUSHW = len
**Out:** **Out:**
# SKT.ReadA (DGRAM,RAW) # SKT.ReadFrame (DGRAM,RAW)
**In:** **In:**
A = hSocket A = hSocket
**Out:** **Out:**

Binary file not shown.

Binary file not shown.

View File

@ -128,25 +128,20 @@ CS.RUN >SYSCALL GetChar
clc clc
rts rts
.11 ldy #MEM.COUNT .11 >PUSHB.G MEM.COUNT
>PUSHB (pData),y >PUSHB.G USED.COUNT
ldy #USED.COUNT
>PUSHB (pData),y
>LDYA L.MSG2 >LDYA L.MSG2
>SYSCALL printf >SYSCALL printf
>LDYA.G MemStat+S.MSTAT.MH >PUSHW.G MemStat+S.MSTAT.MH
>PUSHYA
>LDYA L.MSG3 >LDYA L.MSG3
>SYSCALL printf >SYSCALL printf
>LDYA.G MemStat+S.MSTAT.MF >PUSHW.G MemStat+S.MSTAT.MF
>PUSHYA
>LDYA L.MSG4 >LDYA L.MSG4
>SYSCALL printf >SYSCALL printf
>LDYA.G MemStat+S.MSTAT.ML >PUSHW.G MemStat+S.MSTAT.ML
>PUSHYA
>LDYA L.MSG5 >LDYA L.MSG5
>SYSCALL printf >SYSCALL printf

View File

@ -300,7 +300,7 @@ CS.QUIT ldy #hFrame
.1 ldy #hSocket .1 ldy #hSocket
lda (pData),y lda (pData),y
>DEBUG
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close
lda hLIBTCPIP lda hLIBTCPIP

View File

@ -409,11 +409,17 @@ READ >STYA ZPIOCTL
>STYA ZPBufPtr >STYA ZPBufPtr
stx .8+1 stx .8+1
ldy #S.IOCTL.BYTECNT
lda Size lda Size
sta (ZPIOCTL),y
eor #$ff eor #$ff
sta Counter sta Counter
ldy #1
iny
lda Size+1 lda Size+1
sta (ZPIOCTL),y
eor #$ff eor #$ff
sta Counter+1 sta Counter+1

View File

@ -210,8 +210,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
jsr IP.SetDestMAC jsr IP.SetDestMAC
bcs FRM.Queue bcs FRM.Queue
.6 >LDYA ZPFrameOutPtr .6 jsr FRM.Send.Out
jsr FRM.Send.Out
bcs FRM.Queue bcs FRM.Queue
@ -253,7 +252,8 @@ FRM.Queue ldy hFrameOut no hFrame, cannot queue for retry
FRM.Retry ldx FRM.QUEUE.Tail FRM.Retry ldx FRM.QUEUE.Tail
.10 cpx FRM.QUEUE.Head .10 cpx FRM.QUEUE.Head
beq .8 Queue is empty, exit.... beq .8 Queue is empty, exit...
lda FRM.QUEUE.hMem,x lda FRM.QUEUE.hMem,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPFrameOutPtr >STYA ZPFrameOutPtr
@ -293,7 +293,9 @@ FRM.Retry ldx FRM.QUEUE.Tail
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
FRM.Send.Out >LDYA ZPDataOutPtr FRM.Send.Out >DEBUG
>LDYA ZPDataOutPtr
>STYA IOCTL+S.IOCTL.BUFPTR >STYA IOCTL+S.IOCTL.BUFPTR
>LDYA ZPDataOutLen >LDYA ZPDataOutLen
>STYA IOCTL+S.IOCTL.BYTECNT >STYA IOCTL+S.IOCTL.BYTECNT
@ -302,7 +304,7 @@ FRM.Send.IOCTL >PUSHW L.IOCTL
>PUSHBI IOCTL.WRITE >PUSHBI IOCTL.WRITE
lda IPCFG+S.IPCFG.HDEV lda IPCFG+S.IPCFG.HDEV
>SYSCALL IOCTL try sending again to DRV >SYSCALL IOCTL
rts rts
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -110,18 +110,21 @@ K.FPutS.I jsr IO.SELECT
* **In:** * **In:**
* PrintF : (example is for printing Y,A as integer : format="Y,A= %I", 2 bytes) * PrintF : (example is for printing Y,A as integer : format="Y,A= %I", 2 bytes)
* `>PUSHYA` * `>PUSHYA`
* `>PUSHBI 2` * `...`
* `>PUSHBI bytecount`
* `>LDYAI format` * `>LDYAI format`
* `>SYSCALL printf` * `>SYSCALL printf`
* SPrintF : * SPrintF :
* `>PUSHYA` * `>PUSHYA`
* `>PUSHBI 2` * `...`
* `>PUSHBI bytecount`
* `>PUSHWI format` * `>PUSHWI format`
* `>LDYAI str` * `>LDYAI str`
* `>SYSCALL sprintf` * `>SYSCALL sprintf`
* FPrintF : * FPrintF :
* `>PUSHYA` * `>PUSHYA`
* `>PUSHBI 2` * `...`
* `>PUSHBI bytecount`
* `>PUSHWI format` * `>PUSHWI format`
* `lda hFILE` * `lda hFILE`
* `>SYSCALL fprintf` * `>SYSCALL fprintf`