mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-06 12:29:02 +00:00
Kernel 0.9.2
This commit is contained in:
parent
c7a0656f45
commit
aad4c9a8b8
@ -203,7 +203,7 @@ Load a file in memory
|
|||||||
# open
|
# open
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int open(const char *pathname, int flags);`
|
`hFD open(const char *pathname, int flags);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
@ -977,13 +977,19 @@ Copy string
|
|||||||
Y,A = destination
|
Y,A = destination
|
||||||
|
|
||||||
# StrMatch
|
# StrMatch
|
||||||
Compare a String against pattern
|
Compare a String against pattern (e.g. '*test?.txt')
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int * strmatch ( char * s, const char * pattern );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
PUSHW = PTR to Pattern (e.g. '*test?.txt')
|
`>PUSHWI pattern`
|
||||||
PUSHW = PTR to Src String
|
`>LDYAI s`
|
||||||
|
`>SYSCALL strmatch`
|
||||||
**Out:**
|
**Out:**
|
||||||
CC : match
|
CC : match
|
||||||
CS : no match
|
CS : no match
|
||||||
|
|
||||||
# StrUpr/StrLwr
|
# StrUpr/StrLwr
|
||||||
Convert string to UPPERCASE/lowercase
|
Convert string to UPPERCASE/lowercase
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
**In:**
|
**In:**
|
||||||
PUSHW = PTR to S.SOCKET template
|
PUSHW = PTR to S.SOCKET template
|
||||||
**Out:**
|
**Out:**
|
||||||
YA = PTR to new S.SOCKET
|
Y,A = PTR to new S.SOCKET
|
||||||
X = hSocket
|
X = hSocket
|
||||||
|
|
||||||
# SKT.Close
|
# SKT.Close
|
||||||
@ -93,50 +93,6 @@
|
|||||||
**Out:**
|
**Out:**
|
||||||
A = hFile
|
A = hFile
|
||||||
|
|
||||||
# SKT.Write (DGRAM,STREAM,RAW)
|
|
||||||
Send block of data
|
|
||||||
**In:**
|
|
||||||
PUSHB = hSocket
|
|
||||||
PUSHW = pBuf
|
|
||||||
PUSHW = len
|
|
||||||
**Out:**
|
|
||||||
|
|
||||||
# SKT.ReadFrame (DGRAM,RAW)
|
|
||||||
**In:**
|
|
||||||
A = hSocket
|
|
||||||
**Out:**
|
|
||||||
A = hFrame
|
|
||||||
|
|
||||||
# SKT.PutC (STREAM)
|
|
||||||
Write a Char To Stream
|
|
||||||
**In:**
|
|
||||||
PUSHB = hSocket
|
|
||||||
PUSHB = Char
|
|
||||||
**Out:**
|
|
||||||
|
|
||||||
# SKT.PutS (STREAM)
|
|
||||||
Write Line in pBuf
|
|
||||||
**In:**
|
|
||||||
PUSHB = hSocket
|
|
||||||
PUSHW = PSTR
|
|
||||||
**Out:**
|
|
||||||
|
|
||||||
# SKT.GetC.A (STREAM)
|
|
||||||
Read a Char From Stream in A
|
|
||||||
**In:**
|
|
||||||
A = hSocket
|
|
||||||
**Out:**
|
|
||||||
A = char
|
|
||||||
|
|
||||||
# SKT.GetS (STREAM)
|
|
||||||
Read a CR terminated Line in pBuf
|
|
||||||
**In:**
|
|
||||||
PUSHB = hSocket
|
|
||||||
PUSHW = pBuf
|
|
||||||
PUSHW = len
|
|
||||||
**Out:**
|
|
||||||
Y,A = bytes read
|
|
||||||
|
|
||||||
# SKT.Read (STREAM)
|
# SKT.Read (STREAM)
|
||||||
Read data in pBuf
|
Read data in pBuf
|
||||||
**In:**
|
**In:**
|
||||||
@ -145,3 +101,23 @@
|
|||||||
PUSHW = len
|
PUSHW = len
|
||||||
**Out:**
|
**Out:**
|
||||||
Y,A = bytes transfered
|
Y,A = bytes transfered
|
||||||
|
|
||||||
|
# SKT.Write (STREAM)
|
||||||
|
Send block of data
|
||||||
|
**In:**
|
||||||
|
PUSHB = hSocket
|
||||||
|
PUSHW = pBuf
|
||||||
|
PUSHW = len
|
||||||
|
**Out:**
|
||||||
|
|
||||||
|
# SKT.Rcvd (DGRAM,RAW)
|
||||||
|
**In:**
|
||||||
|
A = hSocket
|
||||||
|
**Out:**
|
||||||
|
A = hFrame
|
||||||
|
|
||||||
|
# SKT.Send (DGRAM,RAW)
|
||||||
|
**In:**
|
||||||
|
A = hSocket
|
||||||
|
**Out:**
|
||||||
|
A = hFrame
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -137,7 +137,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW ZPFileName
|
>LDYA ZPFileName
|
||||||
>SYSCALL StrMatch
|
>SYSCALL StrMatch
|
||||||
bcs .8 no match, skip....
|
bcs .8 no match, skip....
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW ZPFileName
|
>LDYA ZPFileName
|
||||||
>SYSCALL StrMatch
|
>SYSCALL StrMatch
|
||||||
bcs .8 no match, skip....
|
bcs .8 no match, skip....
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ hDstFileName .BS 1
|
|||||||
hDstFullPath .BS 1
|
hDstFullPath .BS 1
|
||||||
hDstFile .BS 1
|
hDstFile .BS 1
|
||||||
bCopy .BS 1
|
bCopy .BS 1
|
||||||
|
hCopyBuf .BS 1
|
||||||
CopyRC .BS 1
|
CopyRC .BS 1
|
||||||
|
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -228,7 +228,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW ZPFileName
|
>LDYA ZPFileName
|
||||||
>SYSCALL StrMatch
|
>SYSCALL StrMatch
|
||||||
bcs CS.RUN.NEXT no match, skip....
|
bcs CS.RUN.NEXT no match, skip....
|
||||||
|
|
||||||
@ -427,7 +427,6 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG
|
|||||||
ldy #hDstBasePath
|
ldy #hDstBasePath
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
>SYSCALL StrMatch
|
>SYSCALL StrMatch
|
||||||
bcs .3 not same dir, go copy/delete
|
bcs .3 not same dir, go copy/delete
|
||||||
|
|
||||||
@ -606,13 +605,14 @@ CS.RUN.Open phy Save Filename
|
|||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Copy stz .90+1
|
CS.RUN.Copy >STZ.G hCopyBuf
|
||||||
>LDYAI X.COPY.BUF.SIZE
|
>LDYAI X.COPY.BUF.SIZE
|
||||||
>SYSCALL getmem
|
>SYSCALL getmem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx .90+1
|
txa
|
||||||
|
>STA.G hCopyBuf
|
||||||
|
|
||||||
>PUSHWI X.COPY.BUF.SIZE Bytes To Read
|
>PUSHWI X.COPY.BUF.SIZE Bytes To Read
|
||||||
>PUSHW ZPPtr1 Dst Ptr
|
>PUSHW ZPPtr1 Dst Ptr
|
||||||
@ -624,15 +624,13 @@ CS.RUN.Copy stz .90+1
|
|||||||
lda #0
|
lda #0
|
||||||
bra .9
|
bra .9
|
||||||
|
|
||||||
.1 >STYA ZPPtr2
|
.1 >PUSHYA Bytes To Write
|
||||||
|
|
||||||
>PUSHW ZPPtr2 Bytes To Write
|
|
||||||
>PUSHW ZPPtr1 Src Ptr
|
>PUSHW ZPPtr1 Src Ptr
|
||||||
>LDA.G hDstFile
|
>LDA.G hDstFile
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda .90+1
|
>LDA.G hCopyBuf
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
ldy #bQuiet
|
ldy #bQuiet
|
||||||
@ -649,14 +647,14 @@ CS.RUN.Copy stz .90+1
|
|||||||
.9 ldy #CopyRC
|
.9 ldy #CopyRC
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
.90 lda #$00
|
>LDA.G hCopyBuf
|
||||||
beq CS.RUN.CopyEnd
|
beq CS.RUN.CopyEnd
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CopyEnd >LDA.G hSrcFile
|
CS.RUN.CopyEnd >LDA.G hSrcFile
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
ldy #hDstFile
|
>LDA.G hDstFile
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL fclose
|
>SYSCALL fclose
|
||||||
|
|
||||||
@ -677,7 +675,7 @@ CS.RUN.CheckErr bcs .1
|
|||||||
|
|
||||||
>LDYA L.MSG.OK
|
>LDYA L.MSG.OK
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
rts
|
.8 rts
|
||||||
|
|
||||||
.1 ldy #RC
|
.1 ldy #RC
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
@ -693,15 +691,11 @@ CS.RUN.CheckErr bcs .1
|
|||||||
>LDYA L.MSG.ERR
|
>LDYA L.MSG.ERR
|
||||||
|
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
bcs .9
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 jsr CS.RUN.CR
|
.2 jsr CS.RUN.CR
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BuildFilePath
|
CS.RUN.BuildFilePath
|
||||||
|
@ -352,7 +352,7 @@ SKT.Read.I jsr SKT.Get.I
|
|||||||
|
|
||||||
ldy #S.SOCKET.TCP.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.STATUS.ESTBLSH
|
cmp #S.SOCKET.TCP.STATUS.FINWT2
|
||||||
bcc .92 Not yet established...no data
|
bcc .92 Not yet established...no data
|
||||||
bne .91 closing...IO err
|
bne .91 closing...IO err
|
||||||
|
|
||||||
|
@ -286,37 +286,18 @@ TCP.IN.JMP.LASTACK
|
|||||||
TCP.IN.JMP.FINWT1
|
TCP.IN.JMP.FINWT1
|
||||||
ldy #S.TCP.OPTIONS only accept ACK packet
|
ldy #S.TCP.OPTIONS only accept ACK packet
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
cmp #S.TCP.OPTIONS.ACK
|
bit #S.TCP.OPTIONS.ACK
|
||||||
bne .1
|
beq TCP.IN.JMP.FINWT2.1
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda #S.SOCKET.TCP.STATUS.FINWT2
|
lda #S.SOCKET.TCP.STATUS.FINWT2
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 cmp #S.TCP.OPTIONS.FIN
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.OPTIONS
|
|
||||||
lda (ZPPtrSKT),y
|
|
||||||
ora #S.TCP.OPTIONS.ACK
|
|
||||||
sta (ZPPtrSKT),y
|
|
||||||
|
|
||||||
jsr TCP.OUT FINWT1, Ack the FIN
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.STATUS
|
|
||||||
lda #S.SOCKET.TCP.STATUS.CLOSING
|
|
||||||
sta (ZPPtrSKT),y
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.FINWT2
|
TCP.IN.JMP.FINWT2
|
||||||
ldy #S.TCP.OPTIONS only accept FIN packet
|
ldy #S.TCP.OPTIONS only accept FIN packet
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
cmp #S.TCP.OPTIONS.FIN
|
TCP.IN.JMP.FINWT2.1
|
||||||
|
bit #S.TCP.OPTIONS.FIN
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.OPTIONS
|
ldy #S.SOCKET.TCP.OPTIONS
|
||||||
@ -433,6 +414,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
|||||||
|
|
||||||
ldy #S.SOCKET.TCP.OPTIONS
|
ldy #S.SOCKET.TCP.OPTIONS
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
ora #S.TCP.OPTIONS.ACK
|
||||||
jsr TCP.OUT.SendOptA.1
|
jsr TCP.OUT.SendOptA.1
|
||||||
|
|
||||||
bcs TCP.OUT.9
|
bcs TCP.OUT.9
|
||||||
@ -464,6 +446,8 @@ TCP.OUT.SendOptA
|
|||||||
TCP.OUT.SendOptA.1
|
TCP.OUT.SendOptA.1
|
||||||
ldy #S.TCP.OPTIONS
|
ldy #S.TCP.OPTIONS
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
|
bit #S.TCP.OPTIONS.ACK
|
||||||
|
beq .10
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
ldy #S.TCP.ACKNUM+3
|
ldy #S.TCP.ACKNUM+3
|
||||||
@ -474,7 +458,7 @@ TCP.OUT.SendOptA.1
|
|||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldx #3
|
.10 ldx #3
|
||||||
ldy #S.TCP.SEQNUM+3
|
ldy #S.TCP.SEQNUM+3
|
||||||
|
|
||||||
.2 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
.2 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||||
|
@ -84,15 +84,20 @@ K.StrCpy clc
|
|||||||
.8 rts
|
.8 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # StrMatch
|
* # StrMatch
|
||||||
* Compare a String against pattern
|
* Compare a String against pattern (e.g. '*test?.txt')
|
||||||
|
* ## C
|
||||||
|
* `int * strmatch ( char * s, const char * pattern );`
|
||||||
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* PUSHW = PTR to Pattern (e.g. '*test?.txt')
|
* `>PUSHWI pattern`
|
||||||
* PUSHW = PTR to Src String
|
* `>LDYAI s`
|
||||||
|
* `>SYSCALL strmatch`
|
||||||
* **Out:**
|
* **Out:**
|
||||||
* CC : match
|
* CC : match
|
||||||
* CS : no match
|
* CS : no match
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrMatch jsr MEM.PullP1P2
|
K.StrMatch >STYA ZPPtr1 s
|
||||||
|
>PULLW ZPPtr2 pattern
|
||||||
|
|
||||||
lda (ZPPtr2) Get pattern 1st byte
|
lda (ZPPtr2) Get pattern 1st byte
|
||||||
beq .8 Match always if empty
|
beq .8 Match always if empty
|
||||||
|
Loading…
Reference in New Issue
Block a user