Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-08-29 17:01:02 +02:00
parent 32532ccf06
commit 875b15a5b1
10 changed files with 183 additions and 265 deletions

Binary file not shown.

Binary file not shown.

View File

@ -182,7 +182,7 @@ CS.RUN.SEND.ECHO
>PUSHW L.ICMP.Request
>PUSHWI ICMP.RequestLen
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send
bcs CS.RUN.ERR
jsr Init.Timeout
@ -196,7 +196,7 @@ CS.RUN.WAIT.REPLY
.1 ldy #hSocket
lda (pData),y
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadFrame
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd
bcs .2
ldy #hFrame

View File

@ -121,7 +121,7 @@ CS.RUN jsr Init.Timeout
>PUSHB (pData),y
>PUSHW L.RPC.Request
>PUSHWI RPC.Request.End-RPC.Request
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send
bcc .4
>SLEEP
@ -133,7 +133,7 @@ CS.RUN jsr Init.Timeout
.5 ldy #hSocket
lda (pData),y
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadFrame
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd
bcc .6
>SLEEP

View File

@ -250,7 +250,7 @@ MSG.SKTOK .AZ "Connected."
*--------------------------------------
Socket .DA #S.SOCKET.SOCK.STREAM
.BS 1
.DA #S.IP.PROTOCOL.TCP
.BS 1
.BS 1
Socket.Src.Addr .BS 4
Socket.Src.Port .DA 0 Dynamic

View File

@ -47,9 +47,10 @@ LIBTCPIP.SKT.Get .EQ 38
LIBTCPIP.SKT.Accept .EQ 40
LIBTCPIP.SKT.MkNod .EQ 42
LIBTCPIP.SKT.Write .EQ 44
LIBTCPIP.SKT.Read .EQ 46
LIBTCPIP.SKT.ReadFrame .EQ 48
LIBTCPIP.SKT.Read .EQ 44
LIBTCPIP.SKT.Write .EQ 46
LIBTCPIP.SKT.Rcvd .EQ 48
LIBTCPIP.SKT.Send .EQ 50
*--------------------------------------
ERR.SKT.OOS .EQ $BF
ERR.SKT.BUSY .EQ $BE

View File

@ -109,7 +109,7 @@ DNS.REQUEST lda hDNSSocket1
>PUSHB hDNSSocket1
>PUSHW L.DNS.MSG
>PUSHW DNS.MSG.LEN
jsr SKT.Write
jsr SKT.Send
lda hDNSSocket2
beq .3
@ -117,7 +117,7 @@ DNS.REQUEST lda hDNSSocket1
>PUSHB hDNSSocket2
>PUSHW L.DNS.MSG
>PUSHW DNS.MSG.LEN
jsr SKT.Write
jsr SKT.Send
.3 lda #ERR.DNS.PENDING
.9 sec
@ -360,14 +360,14 @@ DNS.FREE ldy #S.DNSCACHE.hNAME
*--------------------------------------
DNS.POLL lda hDNSSocket1
beq .8
jsr SKT.ReadFrame
jsr SKT.Rcvd
bcs .1
jsr DNS.DecodeMsg
.1 lda hDNSSocket2
beq .8
jsr SKT.ReadFrame
jsr SKT.Rcvd
bcs .8
jsr DNS.DecodeMsg

View File

@ -56,7 +56,7 @@ SKT.New >PULLW ZPTmpPtr1
bpl .5 already found an empty slot....
>LDYA ZPTmpPtr2 found one...
>STYA ZPTmpPtr3 save it!
>STYA ZPPtrSKT save it!
stx TmpOffset
.5 lda ZPTmpPtr2
@ -75,7 +75,7 @@ SKT.New >PULLW ZPTmpPtr1
ldy #S.SOCKET.HDR-1
.7 lda (ZPTmpPtr1),y
sta (ZPTmpPtr3),y
sta (ZPPtrSKT),y
dey
bpl .7
@ -91,8 +91,6 @@ SKT.New >PULLW ZPTmpPtr1
jsr SKT.NewTCB
bcs .99
>LDYA ZPTmpPtr3
>STYA ZPPtrSKT
lda #S.TCP.OPTIONS.SYN
jsr TCP.OUT.SendOptA Send SYN,Only for CLIENT conn!!!!
bcs .99
@ -329,233 +327,6 @@ SKT.MkNod sta .1+1
.9 rts
*/--------------------------------------
* # SKT.Write (DGRAM,STREAM,RAW)
* Send block of data
* **In:**
* PUSHB = hSocket
* PUSHW = pBuf
* PUSHW = len
* **Out:**
*\--------------------------------------
SKT.Write >PULLW ZPDataInLen
>PULLW ZPDataInPtr
>PULLA
jsr SKT.Get.I
bcs .9
cmp #S.SOCKET.SOCK.DGRAM
beq SKT.Write.UDP
cmp #S.SOCKET.SOCK.RAW
beq SKT.Write.RAW
cmp #S.SOCKET.SOCK.STREAM
bne .99
ldy #S.SOCKET.SO
lda (ZPPtrSKT),y
and #S.SOCKET.SO.ACCEPTCONN
bne .99
jmp SKT.Write.TCP
.99 lda #ERR.SKT.BAD
sec
.9 rts
*--------------------------------------
SKT.Write.RAW ldy #S.SOCKET.RAW.PROTO
lda (ZPPtrSKT),y
tax
>LDYA ZPDataInLen
jsr FRM.NewIP
bcs .9
jsr SKT.SetFrameOutDstIP
jsr SKT.CopyDataInToOut
jmp FRM.SendIP
.9 rts
*--------------------------------------
SKT.Write.UDP ldx #S.IP.PROTOCOL.UDP
>LDYA ZPDataInLen
jsr FRM.NewIP
bcs .9
jsr SKT.SetFrameOutDstIP
ldy #S.SOCKET.SRC.PORT
lda (ZPPtrSKT),y
tax
iny
lda (ZPPtrSKT),y
ldy #S.UDP.SRCPORT
sta (ZPFrameOutPtr),y
iny
txa
sta (ZPFrameOutPtr),y
ldy #S.SOCKET.DST.PORT
lda (ZPPtrSKT),y
tax
iny
lda (ZPPtrSKT),y
ldy #S.UDP.DSTPORT
sta (ZPFrameOutPtr),y
iny
txa
sta (ZPFrameOutPtr),y
jsr SKT.CopyDataInToOut
jmp FRM.SendIP
.9 rts
*--------------------------------------
SKT.Write.TCP ldy #S.SOCKET.TCP.STATUS
lda (ZPPtrSKT),y
cmp #S.SOCKET.TCP.STATUS.ESTBLSH
bne .91
jsr SKT.AddDataToSktOut will call SKT.GetTCB
bcs .90
jsr TCP.OUT.I SKT.GetTCB called, try to push, ignore error....
clc
rts
.90 lda #0 no data transfered
sec
rts
.91 lda #MLI.E.IO
sec
.99 rts
*/--------------------------------------
* # SKT.ReadFrame (DGRAM,RAW)
* **In:**
* A = hSocket
* **Out:**
* A = hFrame
*\--------------------------------------
SKT.ReadFrame jsr SKT.Get.I
bcs .9
ldy #S.SOCKET.HQ.TAIL
lda (ZPPtrSKT),y
tax
ldy #S.SOCKET.HQ.HEAD
cmp (ZPPtrSKT),y
beq .99
inc
cmp #S.SOCKET.HQ.MAX
bne .1
lda #0
.1 ldy #S.SOCKET.HQ.TAIL
sta (ZPPtrSKT),y
txa
clc
adc #S.SOCKET.HQ
tay
lda (ZPPtrSKT),y
clc
rts
.99 sec
.9 rts
*/--------------------------------------
* # SKT.PutC (STREAM)
* Write a Char To Stream
* **In:**
* PUSHB = hSocket
* PUSHB = Char
* **Out:**
*\--------------------------------------
SKT.PutC >PULLB TmpByte
ldx #1
stx ZPDataInLen
stz ZPDataInLen+1
ldx L.TmpByte
stx ZPDataInPtr
ldx L.TmpByte+1
stx ZPDataInPtr+1
bra SKT.PutS.1
*/--------------------------------------
* # SKT.PutS (STREAM)
* Write Line in pBuf
* **In:**
* PUSHB = hSocket
* PUSHW = PSTR
* **Out:**
*\--------------------------------------
SKT.PutS >PULLW ZPDataOutPtr
lda (ZPDataInPtr)
sta ZPDataInLen
stz ZPDataInLen+1
inc ZPDataInPtr
bne SKT.PutS.1
inc ZPDataInPtr+1
SKT.PutS.1 >PULLA
jsr SKT.Get.I
bcs .9
cmp #S.SOCKET.SOCK.STREAM
bne .9
jmp SKT.Write.TCP
.9 lda #ERR.SKT.BAD
sec
rts
*/--------------------------------------
* # SKT.GetC.A (STREAM)
* Read a Char From Stream in A
* **In:**
* A = hSocket
* **Out:**
* A = char
*\--------------------------------------
SKT.GetC.A stz bTextMode
ldx #1
stx ZPDataOutLen
stz ZPDataOutLen+1
ldx L.TmpByte
stx ZPDataOutPtr
ldx L.TmpByte+1
stx ZPDataOutPtr+1
jsr SKT.Read.I
bcs .9
lda TmpByte
.9 rts
*/--------------------------------------
* # SKT.GetS (STREAM)
* Read a CR terminated Line in pBuf
* **In:**
* PUSHB = hSocket
* PUSHW = pBuf
* PUSHW = len
* **Out:**
* Y,A = bytes read
*\--------------------------------------
SKT.GetS sec
.HS 90 bcc
*/--------------------------------------
* # SKT.Read (STREAM)
* Read data in pBuf
* **In:**
@ -565,9 +336,7 @@ SKT.GetS sec
* **Out:**
* Y,A = bytes transfered
*\--------------------------------------
SKT.Read clc
ror bTextMode
>PULLW ZPDataOutLen
SKT.Read >PULLW ZPDataOutLen
>PULLW ZPDataOutPtr
>PULLA
@ -601,6 +370,163 @@ SKT.Read.I jsr SKT.Get.I
.92 lda #0
sec
.99 rts
*/--------------------------------------
* # SKT.Write (STREAM)
* Send block of data
* **In:**
* PUSHB = hSocket
* PUSHW = pBuf
* PUSHW = len
* **Out:**
*\--------------------------------------
SKT.Write >PULLW ZPDataInLen
>PULLW ZPDataInPtr
>PULLA
jsr SKT.Get.I
bcs .9
cmp #S.SOCKET.SOCK.STREAM
bne .99
ldy #S.SOCKET.SO
lda (ZPPtrSKT),y
and #S.SOCKET.SO.ACCEPTCONN
bne .99
ldy #S.SOCKET.TCP.STATUS
lda (ZPPtrSKT),y
cmp #S.SOCKET.TCP.STATUS.ESTBLSH
bne .91
jsr SKT.AddDataToSktOut will call SKT.GetTCB
bcs .90
jsr TCP.OUT.I SKT.GetTCB called, try to push, ignore error....
clc
rts
.90 lda #0 no data transfered
sec
rts
.91 lda #MLI.E.IO
sec
rts
.99 lda #ERR.SKT.BAD
sec
.9 rts
*/--------------------------------------
* # SKT.Rcvd (DGRAM,RAW)
* **In:**
* A = hSocket
* **Out:**
* A = hFrame
*\--------------------------------------
SKT.Rcvd jsr SKT.Get.I
bcs .9
ldy #S.SOCKET.HQ.TAIL
lda (ZPPtrSKT),y
tax
ldy #S.SOCKET.HQ.HEAD
cmp (ZPPtrSKT),y
beq .99
inc
cmp #S.SOCKET.HQ.MAX
bne .1
lda #0
.1 ldy #S.SOCKET.HQ.TAIL
sta (ZPPtrSKT),y
txa
clc
adc #S.SOCKET.HQ
tay
lda (ZPPtrSKT),y
clc
rts
.99 sec
.9 rts
*/--------------------------------------
* # SKT.Send (DGRAM,RAW)
* **In:**
* A = hSocket
* **Out:**
* A = hFrame
*\--------------------------------------
SKT.Send >PULLW ZPDataInLen
>PULLW ZPDataInPtr
>PULLA
jsr SKT.Get.I
bcs .9
cmp #S.SOCKET.SOCK.DGRAM
beq SKT.Send.UDP
cmp #S.SOCKET.SOCK.RAW
beq SKT.Send.RAW
lda #ERR.SKT.BAD
sec
.9 rts
*--------------------------------------
SKT.Send.RAW ldy #S.SOCKET.RAW.PROTO
lda (ZPPtrSKT),y
tax
>LDYA ZPDataInLen
jsr FRM.NewIP
bcs .9
jsr SKT.SetFrameOutDstIP
jsr SKT.CopyDataInToOut
jmp FRM.SendIP
.9 rts
*--------------------------------------
SKT.Send.UDP ldx #S.IP.PROTOCOL.UDP
>LDYA ZPDataInLen
jsr FRM.NewIP
bcs .9
jsr SKT.SetFrameOutDstIP
ldy #S.SOCKET.SRC.PORT
lda (ZPPtrSKT),y
tax
iny
lda (ZPPtrSKT),y
ldy #S.UDP.SRCPORT
sta (ZPFrameOutPtr),y
iny
txa
sta (ZPFrameOutPtr),y
ldy #S.SOCKET.DST.PORT
lda (ZPPtrSKT),y
tax
iny
lda (ZPPtrSKT),y
ldy #S.UDP.DSTPORT
sta (ZPFrameOutPtr),y
iny
txa
sta (ZPFrameOutPtr),y
jsr SKT.CopyDataInToOut
jmp FRM.SendIP
.9 rts
*--------------------------------------
* PRIVATE
*--------------------------------------
@ -754,7 +680,6 @@ SKT.AddDataToSktIn
* In:
* Src : hInMem/INTAIL
* Dst : ZPDataOutPtr/ZPDataOutLen
* bTextMode
* Out:
* Y,A = bytes read
*--------------------------------------
@ -832,12 +757,6 @@ SKT.GetDataFromSktIn
.5 pla get back data....
bit bTextMode do we need to check CR ?
bpl .6
cmp #13
beq .7
.6 sta (ZPDataOutPtr),y
iny
bne .61
@ -851,10 +770,7 @@ SKT.GetDataFromSktIn
.7 pla discard byte counter HI
.8 bit bTextMode here, bacause dst buf full....
bmi .9 ....and TextMode selected, NO ending CR found
lda ZPTmpPtr3 Do we have transfered something?
.8 lda ZPTmpPtr3 Do we have transfered something?
ora ZPTmpPtr3+1
beq .9
@ -1138,7 +1054,7 @@ SKT.NewTCB >LDYAI S.TCB
txa
ldy #S.SOCKET.SQ.hTCB
sta (ZPTmpPtr3),y
sta (ZPPtrSKT),y
lda #K.TCP.WSIZE
sta SKT.TCBCache+S.TCB.INFREE
@ -1160,7 +1076,7 @@ SKT.NewTCB >LDYAI S.TCB
txa
ldy #S.SOCKET.SQ.hInMem
sta (ZPTmpPtr3),y
sta (ZPPtrSKT),y
>LDYAI K.TCP.WSIZE
>SYSCALL getmem
@ -1168,7 +1084,7 @@ SKT.NewTCB >LDYAI S.TCB
txa
ldy #S.SOCKET.SQ.hOutMem
sta (ZPTmpPtr3),y
sta (ZPPtrSKT),y
ldx #S.TCB-1

View File

@ -79,9 +79,10 @@ CS.START cld
.DA SKT.Accept
.DA SKT.MkNod
.DA SKT.Write
.DA SKT.Read
.DA SKT.ReadFrame
.DA SKT.Write
.DA SKT.Rcvd
.DA SKT.Send
*--------------------------------------
L.DEVNAME .DA DEVNAME
L.MSG.DEV.KO .DA MSG.DEV.KO

View File

@ -124,7 +124,7 @@ CS.RUN >PUSHW L.Socket
CS.RUN.SDISC >PUSHB.G hSocket
>PUSHW L.DHCP.DISC
>PUSHWI DHCP.DISC.LEN
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send
bcc .1
jmp CS.RUN.KO
@ -161,7 +161,7 @@ CS.RUN.SREQ ldx #3
>PUSHB.G hSocket
>PUSHW L.DHCP.REQ
>PUSHWI DHCP.REQ.LEN
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send
bcs CS.RUN.KO
lda #S.IPCFG.STATUS.SREQ
@ -214,7 +214,7 @@ CS.RUN.KO pha
rts
*--------------------------------------
CS.RUN.SKT.RCVD >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadFrame
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd
bcs .9
>STA.G hFrame