Kernel version 0.9 : TCP, ACK problem solved! some additional fixes including corrected TCP payload length computation

This commit is contained in:
Rémy GIBERT 2017-03-19 22:47:54 +01:00
parent 28ac2e8a66
commit a3c4b4f1fc
12 changed files with 173 additions and 140 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -21,8 +21,8 @@ INSDRV UTHERNET.DRV 000E3A123456
#INSDRV UTHER2.AI.DRV 0008DC123456 #INSDRV UTHER2.AI.DRV 0008DC123456
#INSDRV LANCEGS.DRV #INSDRV LANCEGS.DRV
STARTPROC TCPIP STARTPROC TCPIP
#STARTPROC DHCPCLNT STARTPROC DHCPCLNT
#STARTPROC TELNETD STARTPROC TELNETD
#STARTPROC HTTPD #STARTPROC HTTPD
#NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX #NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX
#CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE #CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE

View File

@ -218,25 +218,33 @@ READBLOCK php
lda PacketPageDATA+1,x lda PacketPageDATA+1,x
ldy PacketPageDATA,x ldy PacketPageDATA,x
and /PP.RxEvent.RxOK+PP.RxEvent.IA+PP.RxEvent.Brdcast+PP.RxEvent.Runt and /PP.RxEvent.RxOK+PP.RxEvent.IA+PP.RxEvent.Brdcast+PP.RxEvent.Runt
beq .9 bne .1
lda RTDATA+1,x discard RxStatus lda #ERR.DEV.NOFRAME
.9 plp
sec
rts
.1 lda RTDATA+1,x discard RxStatus
lda RTDATA,x lda RTDATA,x
ldy RTDATA+1,x get RxLength lda RTDATA+1,x
sty Size+1 sta Size+1
lda RTDATA,x lda RTDATA,x get RxLength
sta Size sta Size
clc clc
adc #2 adc #2
>PUSHA Size+2 tay
tya
lda Size+1
adc #0 adc #0
>PUSHA
>PUSHYA
>PUSHBI 0 >PUSHBI 0
>SYSCALL GetMem >SYSCALL GetMem
bcs .99 bcs .9
>STYA ZPTmpPTR >STYA ZPTmpPTR
stx .8+1 stx .8+1
@ -287,12 +295,6 @@ READBLOCK php
plp plp
clc clc
rts rts
.9 lda #ERR.DEV.NOFRAME
.99 plp
sec
rts
*-------------------------------------- *--------------------------------------
WRITEBLOCK php WRITEBLOCK php
sei sei
@ -389,8 +391,11 @@ OPEN jsr CLOSE
lda #PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA+PP.RxCTL.RuntA lda #PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA+PP.RxCTL.RuntA
sta PacketPageDATA,x sta PacketPageDATA,x
>LDYAI PP.MAC lda /PP.MAC
>STYA PacketPagePTR,x sta PacketPagePTR+1,x
lda #PP.MAC
sta PacketPagePTR,x
>LDYA MAC >LDYA MAC
>STYA PacketPageDATA,x >STYA PacketPageDATA,x
>LDYAI PP.MAC+2 >LDYAI PP.MAC+2
@ -428,14 +433,14 @@ CLOSE ldx DEVSLOTx0
lda #PP.SelfCTL.LID+PP.SelfCTL.RESET lda #PP.SelfCTL.LID+PP.SelfCTL.RESET
sta PacketPageDATA,x sta PacketPageDATA,x
ldy #0 lda /PP.SelfST
.1 lda /PP.SelfST
sta PacketPagePTR+1,x sta PacketPagePTR+1,x
lda #PP.SelfST lda #PP.SelfST
sta PacketPagePTR,x sta PacketPagePTR,x
lda PacketPageDATA+1,x ldy #0
.1 lda PacketPageDATA+1,x
lda PacketPageDATA,x lda PacketPageDATA,x
and #PP.SelfST.InitDone and #PP.SelfST.InitDone

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -361,6 +361,7 @@ DNS.EXPIRE >LDYA L.DNS.CACHE
DNS.FREE ldy #S.DNSCACHE.hNAME DNS.FREE ldy #S.DNSCACHE.hNAME
lda (ZPCachePtr),y lda (ZPCachePtr),y
beq .1 beq .1
>SYSCALL FreeMemA >SYSCALL FreeMemA
.1 lda #0 .1 lda #0
sta (ZPCachePtr) sta (ZPCachePtr)
@ -368,6 +369,7 @@ DNS.FREE ldy #S.DNSCACHE.hNAME
*-------------------------------------- *--------------------------------------
DNS.POLL lda hDNSSocket1 DNS.POLL lda hDNSSocket1
beq .8 beq .8
jsr SKT.ReadA jsr SKT.ReadA
bcs .8 bcs .8
jsr DNS.DecodeMsg jsr DNS.DecodeMsg

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -110,7 +110,9 @@ SKT.New.Listen sec
lda #S.SOCKET.TCP.STATUS.SYNSENT lda #S.SOCKET.TCP.STATUS.SYNSENT
sta (ZPPtrSKT),y sta (ZPPtrSKT),y
.8 ldx TmpOffset .8 lda TmpOffset
ora #$80
tax
>LDYA ZPTmpPtr3 >LDYA ZPTmpPtr3
clc clc
rts rts
@ -120,7 +122,7 @@ SKT.New.Listen sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
SKT.New.TCB >PUSHWI S.TCB SKT.New.TCB >PUSHWI S.TCB
>PUSHBI S.MEM.F.INIT0 >PUSHBI 0
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
@ -130,6 +132,12 @@ SKT.New.TCB >PUSHWI S.TCB
ldy #S.SOCKET.SQ.hTCB ldy #S.SOCKET.SQ.hTCB
sta (ZPTmpPtr3),y sta (ZPTmpPtr3),y
ldx #S.TCB.OUTUSED+1
.1 stz SKT.TCBCache,x
dex
bpl .1
lda #K.TCP.WSIZE lda #K.TCP.WSIZE
sta SKT.TCBCache+S.TCB.INFREE sta SKT.TCBCache+S.TCB.INFREE
sta SKT.TCBCache+S.TCB.OUTFREE sta SKT.TCBCache+S.TCB.OUTFREE
@ -178,7 +186,8 @@ SKT.New.TCB >PUSHWI S.TCB
* A = hSocket * A = hSocket
* ##Out : * ##Out :
*\-------------------------------------- *\--------------------------------------
SKT.CloseA cmp #K.SKTTABLE.SIZE SKT.CloseA and #$7f
cmp #K.SKTTABLE.SIZE
bcs .9 bcs .9
jsr SKT.GetA.I jsr SKT.GetA.I
@ -249,42 +258,53 @@ SKT.CloseA cmp #K.SKTTABLE.SIZE
* ##Out : * ##Out :
* Y,A = pS.SOCKET * Y,A = pS.SOCKET
*\-------------------------------------- *\--------------------------------------
SKT.GetA cmp #K.SKTTABLE.SIZE SKT.GetA jsr SKT.GetA.I
bcs SKT.GetA.9
jsr SKT.GetA.I bcs .9
bcs SKT.GetA.9
>LDYA ZPPtrSKT >LDYA ZPPtrSKT
rts
SKT.GetA.I pha .9 rts
SKT.GetA.I and #$7f
cmp #K.SKTTABLE.SIZE
bcs .9
pha
lda hSocketTable lda hSocketTable
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>STYA ZPPtrSKT >STYA ZPPtrSKT
plx pla
beq .8 beq .8
.1 lda ZPPtrSKT stz .1+1
lsr
ror .1+1
lsr
ror .1+1
lsr
ror .1+1
pha
lda ZPPtrSKT
clc clc
adc #S.SOCKET .1 adc #$ff
sta ZPPtrSKT sta ZPPtrSKT
bcc .2
inc ZPPtrSKT+1
.2 dex
bne .1
pla
adc ZPPtrSKT+1
sta ZPPtrSKT+1
.8 lda (ZPPtrSKT) .8 lda (ZPPtrSKT)
beq SKT.GetA.9 beq .9
clc clc
rts rts
SKT.GetA.9 lda #ERR.SKT.BAD .9 lda #ERR.SKT.BAD
sec sec
rts rts
*/-------------------------------------- */--------------------------------------
@ -651,16 +671,16 @@ SKT.AddToQueueA sta .2+1
*-------------------------------------- *--------------------------------------
SKT.AckDataToSktOut SKT.AckDataToSktOut
ldy #S.TCP.ACK.NUMBER+3 Get new ACK number from FrameIn... ldy #S.TCP.ACK.NUMBER+3 Get new ACK number from FrameIn...
ldx #3 Substract old SEQ from socket ldx #3 Substract old ACK from socket
sec sec
.1 lda (ZPFrameInPtr),y .1 lda (ZPFrameInPtr),y
pha pha
sbc SKT.TCBCache+S.TCB.SEQNUM,x sbc SKT.TCBCache+S.TCB.ACKNUM,x
sta TmpDWord,x sta TmpDWord,x
pla pla
sta SKT.TCBCache+S.TCB.SEQNUM,x sta SKT.TCBCache+S.TCB.ACKNUM,x
dey dey
dex dex
bpl .1 bpl .1
@ -701,8 +721,6 @@ SKT.AckDataToSktOut
* Dst : hInMem/INHEAD * Dst : hInMem/INHEAD
*-------------------------------------- *--------------------------------------
SKT.AddDataToSktIn SKT.AddDataToSktIn
jsr SKT.GetTCB
ldx SKT.TCBCache+S.TCB.INFREE ldx SKT.TCBCache+S.TCB.INFREE
cpx ZPDataInLen cpx ZPDataInLen
lda SKT.TCBCache+S.TCB.INFREE+1 lda SKT.TCBCache+S.TCB.INFREE+1
@ -770,6 +788,7 @@ SKT.AddDataToSktIn
sec sec
sbc ZPDataInLen sbc ZPDataInLen
sta SKT.TCBCache+S.TCB.INFREE sta SKT.TCBCache+S.TCB.INFREE
lda SKT.TCBCache+S.TCB.INFREE+1 lda SKT.TCBCache+S.TCB.INFREE+1
sbc ZPDataInLen+1 sbc ZPDataInLen+1
sta SKT.TCBCache+S.TCB.INFREE+1 sta SKT.TCBCache+S.TCB.INFREE+1
@ -778,6 +797,7 @@ SKT.AddDataToSktIn
clc clc
adc ZPDataInLen adc ZPDataInLen
sta SKT.TCBCache+S.TCB.INUSED sta SKT.TCBCache+S.TCB.INUSED
lda SKT.TCBCache+S.TCB.INUSED+1 lda SKT.TCBCache+S.TCB.INUSED+1
adc ZPDataInLen+1 adc ZPDataInLen+1
sta SKT.TCBCache+S.TCB.INUSED+1 sta SKT.TCBCache+S.TCB.INUSED+1
@ -938,31 +958,34 @@ SKT.GetDataFromSktOut
.5 lda SKT.TCBCache+S.TCB.OUTFREE .5 lda SKT.TCBCache+S.TCB.OUTFREE
clc clc
adc ZPDataInLen adc ZPDataOutLen
sta SKT.TCBCache+S.TCB.OUTFREE sta SKT.TCBCache+S.TCB.OUTFREE
lda SKT.TCBCache+S.TCB.OUTFREE+1 lda SKT.TCBCache+S.TCB.OUTFREE+1
adc ZPDataInLen+1 adc ZPDataOutLen+1
sta SKT.TCBCache+S.TCB.OUTFREE+1 sta SKT.TCBCache+S.TCB.OUTFREE+1
lda SKT.TCBCache+S.TCB.OUTUSED lda SKT.TCBCache+S.TCB.OUTUSED
sec sec
sbc ZPDataInLen sbc ZPDataOutLen
sta SKT.TCBCache+S.TCB.OUTUSED sta SKT.TCBCache+S.TCB.OUTUSED
lda SKT.TCBCache+S.TCB.OUTUSED+1 lda SKT.TCBCache+S.TCB.OUTUSED+1
sbc ZPDataInLen+1 sbc ZPDataOutLen+1
sta SKT.TCBCache+S.TCB.OUTUSED+1 sta SKT.TCBCache+S.TCB.OUTUSED+1
lda SKT.TCBCache+S.TCB.SEQNUM lda SKT.TCBCache+S.TCB.SEQNUM+3
clc clc
adc ZPDataInLen adc ZPDataOutLen
sta SKT.TCBCache+S.TCB.SEQNUM sta SKT.TCBCache+S.TCB.SEQNUM+3
lda SKT.TCBCache+S.TCB.SEQNUM+1
adc ZPDataInLen+1 lda SKT.TCBCache+S.TCB.SEQNUM+2
sta SKT.TCBCache+S.TCB.SEQNUM+1 adc ZPDataOutLen+1
sta SKT.TCBCache+S.TCB.SEQNUM+2
bcc .8 bcc .8
inc SKT.TCBCache+S.TCB.SEQNUM+2 inc SKT.TCBCache+S.TCB.SEQNUM+1
bne .8 bne .8
inc SKT.TCBCache+S.TCB.SEQNUM+3 inc SKT.TCBCache+S.TCB.SEQNUM
.8 clc .8 clc
rts rts
@ -971,13 +994,18 @@ SKT.GetDataFromSktOut
* In: * In:
* Src : hInMem/INTAIL * Src : hInMem/INTAIL
* Dst : ZPDataOutPtr/ZPDataOutLen * Dst : ZPDataOutPtr/ZPDataOutLen
* CS : Text Mode * bTextMode
* CC : Binary Mode
* Out: * Out:
* Y,A = bytes read * Y,A = bytes read
*-------------------------------------- *--------------------------------------
SKT.GetDataFromSktIn SKT.GetDataFromSktIn
ldy #S.SOCKET.SQ.hInMem lda SKT.TCBCache+S.TCB.INUSED
ora SKT.TCBCache+S.TCB.INUSED+1
bne .10
sec
rts NO DATA
.10 ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base >STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
@ -1089,19 +1117,19 @@ SKT.GetDataFromSktIn
sbc ZPTmpPtr3+1 sbc ZPTmpPtr3+1
sta SKT.TCBCache+S.TCB.INUSED+1 sta SKT.TCBCache+S.TCB.INUSED+1
lda SKT.TCBCache+S.TCB.ACKNUM lda SKT.TCBCache+S.TCB.ACKNUM+3
clc clc
adc ZPTmpPtr3 adc ZPTmpPtr3
sta SKT.TCBCache+S.TCB.ACKNUM sta SKT.TCBCache+S.TCB.ACKNUM+3
lda SKT.TCBCache+S.TCB.ACKNUM+1 lda SKT.TCBCache+S.TCB.ACKNUM+2
adc ZPTmpPtr3+1 adc ZPTmpPtr3+1
sta SKT.TCBCache+S.TCB.ACKNUM+1 sta SKT.TCBCache+S.TCB.ACKNUM+2
bcc .80 bcc .80
inc SKT.TCBCache+S.TCB.ACKNUM+2 inc SKT.TCBCache+S.TCB.ACKNUM+1
bne .80 bne .80
inc SKT.TCBCache+S.TCB.ACKNUM+3 inc SKT.TCBCache+S.TCB.ACKNUM
.80 jsr SKT.StoreTCB .80 jsr SKT.StoreTCB

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -232,7 +232,7 @@ TCP.IN.JMP.ESTBLSH
lda ZPDataInLen Incoming Data in this frame ? lda ZPDataInLen Incoming Data in this frame ?
ora ZPDataInLen+1 ora ZPDataInLen+1
beq .2 No data, ... beq .2 No data, ...
jsr SKT.AddDataToSktIn yes, queue data if there is room for.... jsr SKT.AddDataToSktIn yes, queue data if there is room for....
.2 ldy #S.TCP.OPTIONS .2 ldy #S.TCP.OPTIONS
@ -292,45 +292,50 @@ TCP.IN.JMP.CLOSED
rts rts
*-------------------------------------- *--------------------------------------
TCP.IN.SetDataInPtrAndLen TCP.IN.SetDataInPtrAndLen
ldy #S.IP.TOTAL.LENGTH+1
lda (ZPFrameInPtr),y
sec
sbc #S.IP-S.ETH
sta ZPDataInLen
dey
lda (ZPFrameInPtr),y
sbc /S.IP-S.ETH
sta ZPDataInLen+1
ldy #S.TCP.DATAOFFSET ldy #S.TCP.DATAOFFSET
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
and #$F0 Get TCP Header len in DWORD and #$F0 Get TCP Header len in DWORD
lsr lsr
lsr lsr
* clc
adc #S.IP-2
sta TmpOffset sta TmpOffset
lda #0
adc /S.IP-2
sta TmpOffset+1 TmpOffset=Data Offset in Frame
lda ZPFrameInLen lda ZPDataInLen
sec sec
sbc TmpOffset sbc TmpOffset
sta ZPDataInLen sta ZPDataInLen
lda ZPFrameInLen+1 bcs .1
sbc TmpOffset+1 dec ZPDataInLen+1
sta ZPDataInLen+1
lda TmpOffset
clc
adc #2
sta TmpOffset
bcc .1
inc TmpOffset+1
clc
.1 lda ZPFrameInPtr .1 lda ZPFrameInPtr
adc TmpOffset clc
adc #S.IP
sta ZPDataInPtr sta ZPDataInPtr
lda ZPFrameInPtr+1 lda ZPFrameInPtr+1
adc #0 adc /S.IP
sta ZPDataInPtr+1 sta ZPDataInPtr+1
rts
lda ZPDataInPtr
clc
adc TmpOffset
sta ZPDataInPtr
bcc .2
inc ZPDataInPtr+1
.2 rts
*-------------------------------------- *--------------------------------------
TCP.OUT.SYN >LDYAI 0 TCP.OUT.SYN >LDYAI 0
jsr TCP.NewFrame jsr TCP.NewFrame
@ -406,7 +411,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1
ldy SKT.TCBCache+S.TCB.OUTUSED ldy SKT.TCBCache+S.TCB.OUTUSED
bne .1 bne .1
tax tax
bne .1 Y,A=0 : nothing to send bne .1 Y,A=0 : nothing to send

View File

@ -167,7 +167,7 @@ POLL ldx #DEVMGR.READBLOCK
cpx /S.ETH.ETHERTYPE.IP cpx /S.ETH.ETHERTYPE.IP
bne .9 bne .9
jsr DumpFrame * jsr DumpFrame
jmp IP.IN jmp IP.IN

View File

@ -114,11 +114,6 @@ CS.RUN >PUSHW L.Socket
ldy #hSocket ldy #hSocket
sta (pData),y sta (pData),y
ldy #bSocketClose
lda #$ff
sta (pData),y
>LDYA L.MSG.CFG1 >LDYA L.MSG.CFG1
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
@ -243,13 +238,10 @@ CS.DOEVENT lda (pEvent)
.9 sec do not discard TIMER event .9 sec do not discard TIMER event
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT ldy #bSocketClose CS.QUIT ldy #hSocket
lda (pData),y lda (pData),y
beq .1 beq .1
ldy #hSocket
lda (pData),y
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA
.1 lda hLIBTCPIP .1 lda hLIBTCPIP
@ -504,7 +496,6 @@ DHCP.REQ.LEN .EQ *-DHCP.REQ
*-------------------------------------- *--------------------------------------
DS.START DS.START
TimeOut .BS 1 TimeOut .BS 1
bSocketClose .BS 1
hSocket .BS 1 hSocket .BS 1
hFrame .BS 1 hFrame .BS 1
DS.END DS.END

View File

@ -20,25 +20,20 @@ ERR.Print >PUSHA Save EC for PrintF
cpy #ERR.Count cpy #ERR.Count
bne .1 bne .1
.2 sty .3+1 .2 lda L.ERR.Messages
lda L.ERR.Messages
sta ZPPTR1 sta ZPPTR1
lda L.ERR.Messages+1 lda L.ERR.Messages+1
sta ZPPTR1+1 sta ZPPTR1+1
ldy #0 .3 dey
bmi .8
.3 cpy #$ff Self Modified
beq .8
lda (ZPPTR1) lda (ZPPTR1)
sec sec
adc ZPPTR1 adc ZPPTR1
sta ZPPTR1 sta ZPPTR1
bcc .4 bcc .3
inc ZPPTR1+1 inc ZPPTR1+1
.4 iny
bra .3 bra .3
.8 >PUSHW ZPPTR1 .8 >PUSHW ZPPTR1

View File

@ -106,24 +106,7 @@ CS.RUN.INIT ldx #3
jsr CS.RUN.SERVER jsr CS.RUN.SERVER
bcs CS.RUN.ERR bcs CS.RUN.ERR
ldy #SktIndex
lda (pData),y
tay
lda (pData),y hSockets
beq .3
jsr CS.RUN.CLIENT jsr CS.RUN.CLIENT
.3 ldy #SktIndex
lda (pData),y
inc
cmp #CONN.MAX
bne .4
lda #0
.4 sta (pData),y
bra .2 bra .2
.9 >LDYA L.MSG.SKTERR .9 >LDYA L.MSG.SKTERR
@ -161,6 +144,7 @@ CS.RUN.SERVER ldy #hSrvSocket
.2 pla .2 pla
sta (pData),y sta (pData),y
sta .4+1
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetA
>STYA ZPSktPtr >STYA ZPSktPtr
@ -173,16 +157,29 @@ CS.RUN.SERVER ldy #hSrvSocket
dex dex
bpl .3 bpl .3
.4 lda #$ff
>PUSHA
>LDYA L.MSG.INCOMING >LDYA L.MSG.INCOMING
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.CLIENT sta .1+1 hSocket CS.RUN.CLIENT ldy #SktIndex
lda (pData),y
tay
lda (pData),y hSockets
beq .8
sta .1+1 hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetCA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetCA
bcs .8 bcc .10
sta .2+1
tax
beq .8 NO DATA
.10 sta .2+1
>PUSHA >PUSHA
>LDYA L.MSG.BYTE >LDYA L.MSG.BYTE
@ -196,7 +193,16 @@ CS.RUN.CLIENT sta .1+1 hSocket
* >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutC * >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutC
.8 clc .8 ldy #SktIndex
lda (pData),y
inc
cmp #CONN.MAX
bne .81
lda #0
.81 sta (pData),y
clc
rts rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT sec CS.DOEVENT sec
@ -220,9 +226,10 @@ CS.QUIT ldx #CONN.MAX
ldy #hSrvSocket ldy #hSrvSocket
lda (pData),y lda (pData),y
beq .3
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
lda hLIBTCPIP .3 lda hLIBTCPIP
>SYSCALL UnloadLibA >SYSCALL UnloadLibA
clc clc
rts rts
@ -247,7 +254,7 @@ MSG.INITOK >CSTR "TELNETD:Init Ok, Listening.\r\n"
MSG.TCPIPERR >CSTR "TELNETD:TCP/IP Not initialized properly\r\n" MSG.TCPIPERR >CSTR "TELNETD:TCP/IP Not initialized properly\r\n"
MSG.SKTERR >CSTR "TELNETD:Listen Error\r\n" MSG.SKTERR >CSTR "TELNETD:Listen Error\r\n"
MSG.ABORT >CSTR "TELNETD:User Aborted\r\n" MSG.ABORT >CSTR "TELNETD:User Aborted\r\n"
MSG.INCOMING >CSTR "TELNETD:Incoming Connection From : %d.%d.%d.%d\r\n" MSG.INCOMING >CSTR "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
MSG.BYTE >CSTR "[%h]" MSG.BYTE >CSTR "[%h]"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
*-------------------------------------- *--------------------------------------