mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-28 11:37:41 +00:00
Kernel 0.9.2
This commit is contained in:
parent
8861dcb76f
commit
f5a068fa2b
@ -72,16 +72,16 @@ CS.RUN >LDYA L.MSG0
|
||||
.1 lda (ZPPTR1)
|
||||
beq .7
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPTR1),y
|
||||
cmp #S.SOCKET.TCP.STATUS.TIMEWT+1
|
||||
cmp #S.SOCKET.TCP.S.TIMEWT+1
|
||||
bcs *
|
||||
asl
|
||||
tax
|
||||
>PUSHB L.MSG1.S+1,x
|
||||
>PUSHB L.MSG1.S,x
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
>PUSHB (ZPPTR1),y
|
||||
|
||||
ldy #S.SOCKET.DST.PORT+1
|
||||
@ -93,10 +93,10 @@ CS.RUN >LDYA L.MSG0
|
||||
|
||||
lda (ZPPTR1)
|
||||
tax
|
||||
cpx #S.SOCKET.SOCK.SEQPACKET+1
|
||||
cpx #S.SOCKET.T.SEQPACKET+1
|
||||
bcc .3
|
||||
|
||||
ldx #S.SOCKET.SOCK.SEQPACKET+1
|
||||
ldx #S.SOCKET.T.SEQPACKET+1
|
||||
.3 >PUSHB L.MSG1+1,x
|
||||
>PUSHB L.MSG1,x
|
||||
>PUSHBI 17
|
||||
|
@ -87,7 +87,7 @@ CS.END
|
||||
MSG.USAGE .AZ "Usage : NFSMOUNT [HOST | IP]/export /mountvol\n"
|
||||
LIBTCPIP >PSTR "libtcpip.o"
|
||||
hLIBTCPIP .BS 1
|
||||
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||
Socket .DA #S.SOCKET.T.DGRAM
|
||||
.BS 3
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .DA 0 Dynamic
|
||||
|
@ -349,7 +349,7 @@ MSG.UNREACH .AZ "%d.%d.%d.%d: TimeOut/Host unreachable\r\n"
|
||||
MSG.REPLY .AZ "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\r\n"
|
||||
hLIBTCPIP .BS 1
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.RAW
|
||||
Socket .DA #S.SOCKET.T.RAW
|
||||
.BS 1
|
||||
.DA #S.IP.PROTOCOL.ICMP
|
||||
.BS 1
|
||||
|
@ -250,7 +250,7 @@ MSG.TIMEOUT .AZ "No response from %s\r\n"
|
||||
MSG.DUMP0 .AZ "Program Ver Proto:Port"
|
||||
MSG.DUMP1 .AZ "%10L %2d %2d:%D\r\n"
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||
Socket .DA #S.SOCKET.T.DGRAM
|
||||
.BS 3
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .DA 0 Dynamic
|
||||
|
@ -293,7 +293,7 @@ MSG.SKTERR .AZ "Socket Error : $%h\r\n"
|
||||
MSG.IOERR .AZ "I/O Error : $%h\r\n"
|
||||
MSG.USER .AZ "User interrupt."
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||
Socket .DA #S.SOCKET.T.STREAM
|
||||
.BS 1
|
||||
.BS 1
|
||||
.BS 1
|
||||
|
@ -422,14 +422,14 @@ S.FD.DEV .EQ 16
|
||||
*--------------------------------------
|
||||
* S.FD.LNK
|
||||
*--------------------------------------
|
||||
S.FD.SSOCK.HSKT .EQ 2
|
||||
S.FD.SSOCK.OPEN .EQ 3
|
||||
S.FD.SSOCK.CLOSE .EQ 4
|
||||
S.FD.SSOCK.READ .EQ 5
|
||||
S.FD.SSOCK.WRITE .EQ 6
|
||||
S.FD.SSOCK.STATUS .EQ 7
|
||||
S.FD.SOCK.HSKT .EQ 2
|
||||
S.FD.SOCK.OPEN .EQ 3
|
||||
S.FD.SOCK.CLOSE .EQ 4
|
||||
S.FD.SOCK.READ .EQ 5
|
||||
S.FD.SOCK.WRITE .EQ 6
|
||||
S.FD.SOCK.STATUS .EQ 7
|
||||
*
|
||||
S.FD.SSOCK .EQ 8
|
||||
S.FD.SOCK .EQ 8
|
||||
*--------------------------------------
|
||||
S.FD.FIFO.S .EQ 2
|
||||
S.FD.FIFO.S.ROpened .EQ 1
|
||||
|
@ -110,82 +110,81 @@ S.DNSCACHE.IP .EQ 8
|
||||
*
|
||||
S.DNSCACHE .EQ 12
|
||||
*--------------------------------------
|
||||
S.SOCKADDR.IP .EQ 0
|
||||
S.SOCKADDR.ADDR .EQ 0
|
||||
S.SOCKADDR.PORT .EQ 4
|
||||
*
|
||||
S.SOCKADDR .EQ 6
|
||||
*--------------------------------------
|
||||
S.SOCKET.SOCK .EQ 0
|
||||
S.SOCKET.SOCK.RAW .EQ 0
|
||||
S.SOCKET.SOCK.DGRAM .EQ 2
|
||||
S.SOCKET.SOCK.STREAM .EQ 4
|
||||
S.SOCKET.SOCK.SEQPACKET .EQ 6
|
||||
S.SOCKET.SO .EQ 1
|
||||
S.SOCKET.SO.DEBUG .EQ $01
|
||||
S.SOCKET.SO.ACCEPTCONN .EQ $02
|
||||
S.SOCKET.SO.REUSEADDR .EQ $04
|
||||
S.SOCKET.SO.KEEPALIVE .EQ $08
|
||||
S.SOCKET.SO.DONTROUTE .EQ $10
|
||||
S.SOCKET.SO.BROADCAST .EQ $20
|
||||
S.SOCKET.SO.USELOOPBACK .EQ $40
|
||||
S.SOCKET.SO.LINGER .EQ $80
|
||||
S.SOCKET.T .EQ S.FD.SOCK+0
|
||||
S.SOCKET.T.RAW .EQ 0
|
||||
S.SOCKET.T.DGRAM .EQ 2
|
||||
S.SOCKET.T.STREAM .EQ 4
|
||||
S.SOCKET.T.SEQPACKET .EQ 6
|
||||
|
||||
S.SOCKET.RAW.PROTO .EQ 2
|
||||
S.SOCKET.PROTO .EQ S.FD.SOCK+1
|
||||
|
||||
S.SOCKET.TCP.STATUS .EQ 2
|
||||
S.SOCKET.TCP.STATUS.CLOSED .EQ 0
|
||||
S.SOCKET.TCP.STATUS.LISTEN .EQ 1
|
||||
S.SOCKET.TCP.STATUS.SYNSENT .EQ 2
|
||||
S.SOCKET.TCP.STATUS.SYNRCVD .EQ 3
|
||||
S.SOCKET.TCP.STATUS.ESTBLSH .EQ 4
|
||||
S.SOCKET.TCP.STATUS.CLWAIT .EQ 5
|
||||
S.SOCKET.TCP.STATUS.LASTACK .EQ 6
|
||||
S.SOCKET.TCP.STATUS.FINWT1 .EQ 7
|
||||
S.SOCKET.TCP.STATUS.FINWT2 .EQ 8
|
||||
S.SOCKET.TCP.STATUS.CLOSING .EQ 9
|
||||
S.SOCKET.TCP.STATUS.TIMEWT .EQ 10
|
||||
S.SOCKET.O .EQ S.FD.SOCK+2
|
||||
S.SOCKET.O.DEBUG .EQ $01
|
||||
S.SOCKET.O.ACCEPTCONN .EQ $02
|
||||
S.SOCKET.O.REUSEADDR .EQ $04
|
||||
S.SOCKET.O.KEEPALIVE .EQ $08
|
||||
S.SOCKET.O.DONTROUTE .EQ $10
|
||||
S.SOCKET.O.BROADCAST .EQ $20
|
||||
S.SOCKET.O.USELOOPBACK .EQ $40
|
||||
S.SOCKET.O.LINGER .EQ $80
|
||||
|
||||
S.SOCKET.TCP.OPTIONS .EQ 3
|
||||
|
||||
S.SOCKET.SRC.ADDR .EQ 4
|
||||
S.SOCKET.SRC.PORT .EQ 8
|
||||
S.SOCKET.DST.ADDR .EQ 10
|
||||
S.SOCKET.DST.PORT .EQ 14
|
||||
*
|
||||
S.SOCKET.HDR .EQ 16
|
||||
S.SOCKET.SRC.ADDR .EQ S.FD.SOCK+4
|
||||
S.SOCKET.SRC.PORT .EQ S.FD.SOCK+8
|
||||
S.SOCKET.DST.ADDR .EQ S.FD.SOCK+10
|
||||
S.SOCKET.DST.PORT .EQ S.FD.SOCK+14
|
||||
*--------------------------------------
|
||||
* Listen type Queue
|
||||
* Raw Type Queue
|
||||
* Datagram type Queue
|
||||
S.SOCKET.HQ.HEAD .EQ 16
|
||||
S.SOCKET.HQ.TAIL .EQ 17
|
||||
S.SOCKET.HQ .EQ 18
|
||||
S.SOCKET.HQ.MAX .EQ 14 14 hMem (frames)
|
||||
S.SOCKET.HQ.HEAD .EQ S.FD.SOCK+16
|
||||
S.SOCKET.HQ.TAIL .EQ S.FD.SOCK+17
|
||||
S.SOCKET.HQ .EQ S.FD.SOCK+18
|
||||
S.SOCKET.HQ.MAX .EQ 14 14 hMem (frames)
|
||||
* Stream type Queue
|
||||
S.SOCKET.SQ.hTCB .EQ 16
|
||||
S.SOCKET.SQ.hInMem .EQ 17
|
||||
S.SOCKET.SQ.hOutMem .EQ 18
|
||||
S.SOCKET.SQ.hInMem .EQ S.FD.SOCK+16
|
||||
S.SOCKET.SQ.hOutMem .EQ S.FD.SOCK+17
|
||||
*
|
||||
S.SOCKET .EQ 32
|
||||
S.SOCKET .EQ S.FD.SOCK+32
|
||||
*--------------------------------------
|
||||
S.TCB.INTAIL .EQ 0
|
||||
S.TCB.INHEAD .EQ 2
|
||||
S.TCB.INFREE .EQ 4
|
||||
S.TCB.INUSED .EQ 6
|
||||
*
|
||||
S.TCB.OUTTAIL .EQ 8
|
||||
S.TCB.OUTTAILNEXT .EQ 10
|
||||
S.TCB.OUTHEAD .EQ 12
|
||||
S.TCB.OUTFREE .EQ 14
|
||||
S.TCB.OUTTOSEND .EQ 16
|
||||
S.TCB.OUTUSED .EQ 18
|
||||
*
|
||||
S.TCB.INLASTSEQNUM .EQ 20 Rcvd:Last SEQ received from remote
|
||||
S.SOCKET.TCP.S .EQ S.SOCKET
|
||||
S.SOCKET.TCP.S.CLOSED .EQ 0
|
||||
S.SOCKET.TCP.S.LISTEN .EQ 1
|
||||
S.SOCKET.TCP.S.SYNSENT .EQ 2
|
||||
S.SOCKET.TCP.S.SYNRCVD .EQ 3
|
||||
S.SOCKET.TCP.S.ESTBLSH .EQ 4
|
||||
S.SOCKET.TCP.S.CLWAIT .EQ 5
|
||||
S.SOCKET.TCP.S.LASTACK .EQ 6
|
||||
S.SOCKET.TCP.S.FINWT1 .EQ 7
|
||||
S.SOCKET.TCP.S.FINWT2 .EQ 8
|
||||
S.SOCKET.TCP.S.CLOSING .EQ 9
|
||||
S.SOCKET.TCP.S.TIMEWT .EQ 10
|
||||
|
||||
S.TCB.OUTSEQNUM .EQ 24 Send:SEQ sent not yet ACKed (retransmit)
|
||||
S.TCB.OUTNEXTSEQ .EQ 28 Send:Next SEQ to send
|
||||
S.TCB.OUTACKNUM .EQ 32 Send:ACK to send to remote
|
||||
S.SOCKET.TCP.O .EQ S.SOCKET+1
|
||||
|
||||
S.SOCKET.TCP.INTAIL .EQ S.SOCKET+2
|
||||
S.SOCKET.TCP.INHEAD .EQ S.SOCKET+4
|
||||
S.SOCKET.TCP.INFREE .EQ S.SOCKET+6
|
||||
S.SOCKET.TCP.INUSED .EQ S.SOCKET+8
|
||||
*
|
||||
S.TCB .EQ 36
|
||||
S.SOCKET.TCP.OUTTAIL .EQ S.SOCKET+10
|
||||
S.SOCKET.TCP.OUTTAILNEXT .EQ S.SOCKET+12
|
||||
S.SOCKET.TCP.OUTHEAD .EQ S.SOCKET+14
|
||||
S.SOCKET.TCP.OUTFREE .EQ S.SOCKET+16
|
||||
S.SOCKET.TCP.OUTTOSEND .EQ S.SOCKET+18
|
||||
S.SOCKET.TCP.OUTUSED .EQ S.SOCKET+20
|
||||
*
|
||||
S.SOCKET.TCP.INLASTSEQNUM .EQ S.SOCKET+22 Rcvd:Last SEQ received from remote
|
||||
|
||||
S.SOCKET.TCP.OUTSEQNUM .EQ S.SOCKET+26 Send:SEQ sent not yet ACKed (retransmit)
|
||||
S.SOCKET.TCP.OUTNEXTSEQ .EQ S.SOCKET+30 Send:Next SEQ to send
|
||||
S.SOCKET.TCP.OUTACKNUM .EQ S.SOCKET+34 Send:ACK to send to remote
|
||||
*
|
||||
S.SOCKET.TCP .EQ S.SOCKET+38
|
||||
*--------------------------------------
|
||||
S.ARP.HTYPE .EQ S.ETH+0 $0001
|
||||
S.ARP.PTYPE .EQ S.ETH+2 $0800
|
||||
|
@ -71,7 +71,7 @@ ICMP.IN.ECHOREP jsr IP.FillSKT.TemplateSrcDstIP
|
||||
|
||||
.3 lda (ZPPtrSKT)
|
||||
beq .7
|
||||
cmp #S.SOCKET.SOCK.RAW
|
||||
cmp #S.SOCKET.T.RAW
|
||||
bne .7
|
||||
|
||||
ldy #S.SOCKET.SRC.ADDR
|
||||
|
@ -6,40 +6,77 @@ AUTO 4,1
|
||||
* # SKT.Socket
|
||||
* Create a new socket
|
||||
* ## C
|
||||
* `hSOCKET socket(short int type, int protocol);`
|
||||
* `hFD socket(short int type, short int protocol);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHW protocol`
|
||||
* `>PUSHB protocol`
|
||||
* `lda type`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||
* **Out:**
|
||||
* CC: A = hSOCKET
|
||||
* CS: A = EC
|
||||
*\--------------------------------------
|
||||
SKT.Socket pha
|
||||
>PULLW TmpDWord save protocol
|
||||
SKT.Socket sta FD.SSOCK+S.SOCKET.T save type
|
||||
tax
|
||||
|
||||
>PULLA get protocol (RAW)
|
||||
|
||||
plx
|
||||
jmp (J.SKT.Socket,x)
|
||||
|
||||
SKT.Socket.RAW
|
||||
ldy #S.SOCKET
|
||||
bra SKT.Socket.NEW
|
||||
SKT.Socket.DGRAM
|
||||
ldy #S.FD.SSOCK+S.SOCKET
|
||||
.HS 2C BIT ABS
|
||||
lda #S.IP.PROTOCOL.UDP
|
||||
sta TmpDWord
|
||||
ldy #S.SOCKET
|
||||
bra SKT.Socket.NEW
|
||||
SKT.Socket.STREAM
|
||||
lda #S.IP.PROTOCOL.TCP
|
||||
sta TmpDWord
|
||||
ldy #S.SOCKET.TCP
|
||||
bra SKT.Socket.NEW
|
||||
SKT.Socket.SEQPACKET
|
||||
ldy #S.FD.SSOCK+S.SOCKET+S.TCB
|
||||
lda #0
|
||||
>SYSCALL GetMemPtr
|
||||
bcs .9
|
||||
lda #S.IP.PROTOCOL.TCP
|
||||
sta TmpDWord
|
||||
ldy #S.SOCKET.TCP
|
||||
|
||||
SKT.Socket.NEW lda #0
|
||||
>SYSCALL GetMem0
|
||||
bcs .99
|
||||
>STYA ZPPtrSKT
|
||||
stx FD.SSOCK+S.FD.SOCK.HSKT
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda SKT.TABLE,y
|
||||
beq .2
|
||||
iny
|
||||
cpy #K.SKTTABLE.SIZE
|
||||
bne .1
|
||||
|
||||
.9 rts
|
||||
txa
|
||||
>SYSCALL freemem
|
||||
lda #K.E.OOH
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.2 txa x = hFD
|
||||
sta SKT.TABLE,y
|
||||
|
||||
ldy #FD.SSOCK.SIZE-1
|
||||
|
||||
.3 lda FD.SSOCK,y
|
||||
sta (ZPPtrSKT),y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
txa
|
||||
clc
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # SKT.bind
|
||||
* Create a new socket
|
||||
* bind a name to a socket
|
||||
* ## C
|
||||
* `int bind(hFD fd, const struct sockaddr *addr);`
|
||||
* ## ASM
|
||||
@ -51,9 +88,68 @@ SKT.Socket.SEQPACKET
|
||||
* CC: A = hSOCKET
|
||||
* CS: A = EC
|
||||
*\--------------------------------------
|
||||
SKT.bind >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
>PULLW ZPTmpPtr1
|
||||
|
||||
ldy #S.SOCKADDR-1
|
||||
|
||||
.1 lda (ZPTmpPtr1),y
|
||||
sta SKT.ADDRCache,y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
jsr SKT.FindMatching
|
||||
bcc .9
|
||||
|
||||
ldy #S.SOCKET.SRC.ADDR+S.SOCKADDR-1
|
||||
|
||||
.2 lda SKT.ADDRCache-S.SOCKET.SRC.ADDR,y
|
||||
sta (ZPTmpPtr1),y
|
||||
bne .7
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #ERR.SKT.BUSY
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.FindMatching
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 lda SKT.TABLE,x
|
||||
beq .7
|
||||
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
ldy #S.SOCKET.SRC.ADDR+S.SOCKADDR-1
|
||||
|
||||
.2 lda (ZPTmpPtr1),y
|
||||
cmp SKT.ADDRCache-S.SOCKET.SRC.ADDR,y
|
||||
bne .7
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
>LDYA ZPTmpPtr1
|
||||
clc
|
||||
rts
|
||||
|
||||
.7 inx
|
||||
cpx #K.SKTTABLE.SIZE
|
||||
bne .1
|
||||
|
||||
* sec
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # SKT.connect
|
||||
* Create a new socket
|
||||
* Iinitiate a connection on a socket
|
||||
* ## C
|
||||
* `int connect(hFD fd, const struct sockaddr *addr);`
|
||||
* ## ASM
|
||||
@ -70,7 +166,7 @@ SKT.connect >SYSCALL GetMemPtr
|
||||
|
||||
>PULLW ZPTmpPtr1 sockaddr
|
||||
|
||||
ldy #S.SOCKET.SOCK
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPTmpPtr1),y
|
||||
tax
|
||||
jmp (J.SKT.connect,x)
|
||||
@ -186,26 +282,26 @@ SKT.New >PULLW ZPTmpPtr1
|
||||
bpl .7
|
||||
|
||||
lda (ZPPtrSKT)
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .8
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
|
||||
and #S.SOCKET.SO.ACCEPTCONN
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .8 From Listen, do not send SYN packet
|
||||
|
||||
jsr SKT.NewTCB
|
||||
bcs .99
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.SYN
|
||||
jsr TCP.OUT.SendOptA Send SYN,Only for CLIENT conn,or SYN/ACK if coming from LISTEN
|
||||
bcs .99
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.SYNSENT
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.SYNSENT
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.8 lda TmpByte
|
||||
@ -224,13 +320,13 @@ SKT.New >PULLW ZPTmpPtr1
|
||||
* A = hSocket
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
SKT.Close jsr SKT.Get.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A
|
||||
SKT.Close jsr SKT.Get.I get SKT in ZPPtrSKT, S.SOCKET.T in A
|
||||
bcs .99
|
||||
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
beq .10 TCP
|
||||
cmp #S.SOCKET.SOCK.RAW+1
|
||||
bcs .9 no #S.SOCKET.SOCK.DGRAM, nor #S.SOCKET.SOCK.RAW
|
||||
cmp #S.SOCKET.T.RAW+1
|
||||
bcs .9 no #S.SOCKET.T.DGRAM, nor #S.SOCKET.T.RAW
|
||||
|
||||
.1 ldy #S.SOCKET.HQ.TAIL
|
||||
lda (ZPPtrSKT),y
|
||||
@ -267,24 +363,24 @@ SKT.Close jsr SKT.Get.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.10 ldy #S.SOCKET.SO
|
||||
.10 ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.SOCKET.SO.ACCEPTCONN
|
||||
bit #S.SOCKET.O.ACCEPTCONN
|
||||
|
||||
bne * TO DO: Listening socket
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.CLWAIT
|
||||
cmp #S.SOCKET.TCP.S.CLWAIT
|
||||
bne .11
|
||||
|
||||
lda #S.SOCKET.TCP.STATUS.LASTACK
|
||||
lda #S.SOCKET.TCP.S.LASTACK
|
||||
bra .12
|
||||
|
||||
.11 lda #S.SOCKET.TCP.STATUS.FINWT1
|
||||
.11 lda #S.SOCKET.TCP.S.FINWT1
|
||||
.12 sta (ZPPtrSKT),y
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
@ -368,9 +464,9 @@ SKT.GetTable lda hSocketTable
|
||||
*\--------------------------------------
|
||||
SKT.Accept jsr SKT.Get.I
|
||||
bcs .9
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.SO.ACCEPTCONN
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
beq .99
|
||||
|
||||
ldy #S.SOCKET.HQ.TAIL
|
||||
@ -411,15 +507,15 @@ SKT.Accept jsr SKT.Get.I
|
||||
* CC: A = hFD
|
||||
* CS: A = EC
|
||||
*\--------------------------------------
|
||||
SKT.MkNod sta FD.SSOCK+S.FD.SSOCK.HSKT
|
||||
SKT.MkNod sta FD.SSOCK+S.FD.SOCK.HSKT
|
||||
|
||||
>LDYAI S.FD.SSOCK
|
||||
>LDYAI S.FD.SOCK
|
||||
>SYSCALL getmem0
|
||||
bcs .9
|
||||
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
ldy #S.FD.SSOCK-1
|
||||
ldy #S.FD.SOCK-1
|
||||
|
||||
.2 lda FD.SSOCK,y
|
||||
sta (ZPTmpPtr1),y
|
||||
@ -451,19 +547,19 @@ SKT.Read pha
|
||||
|
||||
SKT.Read.I jsr SKT.Get.I
|
||||
bcs .99
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .90 bad skt
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.SO.ACCEPTCONN
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .90 Bad Skt
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.ESTBLSH
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
bcc .92 Not yet established...no data
|
||||
cmp #S.SOCKET.TCP.STATUS.FINWT2
|
||||
cmp #S.SOCKET.TCP.S.FINWT2
|
||||
bcs .91 closing...IO err
|
||||
|
||||
jsr SKT.GetDataFromSktIn
|
||||
@ -502,17 +598,17 @@ SKT.Write pha
|
||||
jsr SKT.Get.I
|
||||
bcs .9
|
||||
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.SO.ACCEPTCONN
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.ESTBLSH
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
bne .91
|
||||
|
||||
jsr SKT.AddDataToSktOut will call SKT.GetTCB
|
||||
@ -591,10 +687,10 @@ SKT.Send pha
|
||||
jsr SKT.Get.I
|
||||
bcs SKT.Send.9
|
||||
|
||||
cmp #S.SOCKET.SOCK.DGRAM
|
||||
cmp #S.SOCKET.T.DGRAM
|
||||
beq SKT.Send.UDP
|
||||
|
||||
cmp #S.SOCKET.SOCK.RAW
|
||||
cmp #S.SOCKET.T.RAW
|
||||
beq SKT.Send.RAW
|
||||
|
||||
lda #ERR.SKT.BAD
|
||||
@ -662,9 +758,9 @@ SKT.AddToQueueA sta .2+1
|
||||
* Dst : hInMem/INHEAD
|
||||
*--------------------------------------
|
||||
SKT.AddDataToSktIn
|
||||
ldx SKT.TCBCache+S.TCB.INFREE
|
||||
ldx SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
cpx ZPDataInLen
|
||||
lda SKT.TCBCache+S.TCB.INFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
sbc ZPDataInLen+1
|
||||
bcc .9 Not enough room in Q
|
||||
|
||||
@ -672,7 +768,7 @@ SKT.AddDataToSktIn
|
||||
ldx #3
|
||||
|
||||
.10 lda (ZPFrameInPtr),y
|
||||
eor SKT.TCBCache+S.TCB.INLASTSEQNUM,x
|
||||
eor SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM,x
|
||||
bne .9
|
||||
dey
|
||||
dex
|
||||
@ -685,11 +781,11 @@ SKT.AddDataToSktIn
|
||||
|
||||
lda ZPTmpPtr1
|
||||
clc
|
||||
adc SKT.TCBCache+S.TCB.INHEAD
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.INHEAD
|
||||
sta ZPTmpPtr2
|
||||
|
||||
lda ZPTmpPtr1+1
|
||||
adc SKT.TCBCache+S.TCB.INHEAD+1
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.INHEAD+1
|
||||
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
|
||||
|
||||
lda ZPDataInLen
|
||||
@ -720,13 +816,13 @@ SKT.AddDataToSktIn
|
||||
bne .4
|
||||
inc ZPTmpPtr2+1
|
||||
|
||||
.4 inc SKT.TCBCache+S.TCB.INHEAD
|
||||
.4 inc SKT.TCBCache+S.SOCKET.TCP.INHEAD
|
||||
bne .1
|
||||
inc SKT.TCBCache+S.TCB.INHEAD+1
|
||||
lda SKT.TCBCache+S.TCB.INHEAD+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.INHEAD+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INHEAD+1
|
||||
cmp /K.TCP.WSIZE
|
||||
bne .1
|
||||
stz SKT.TCBCache+S.TCB.INHEAD+1
|
||||
stz SKT.TCBCache+S.SOCKET.TCP.INHEAD+1
|
||||
|
||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
||||
sta ZPTmpPtr2
|
||||
@ -737,37 +833,37 @@ SKT.AddDataToSktIn
|
||||
.9 sec
|
||||
rts
|
||||
|
||||
.8 lda SKT.TCBCache+S.TCB.INFREE
|
||||
.8 lda SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
sec
|
||||
sbc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.INFREE
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
sbc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.INFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INUSED
|
||||
clc
|
||||
adc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.INUSED
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INUSED
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INUSED+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INUSED+1
|
||||
adc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.INUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INUSED+1
|
||||
|
||||
clc
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INLASTSEQNUM+3
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM+3
|
||||
adc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.INLASTSEQNUM+3
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM+3
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INLASTSEQNUM+2
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM+2
|
||||
adc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.INLASTSEQNUM+2
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM+2
|
||||
bcc .80
|
||||
inc SKT.TCBCache+S.TCB.INLASTSEQNUM+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM+1
|
||||
bne .80
|
||||
inc SKT.TCBCache+S.TCB.INLASTSEQNUM
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM
|
||||
|
||||
.80 clc
|
||||
rts
|
||||
@ -781,8 +877,8 @@ SKT.AddDataToSktIn
|
||||
*--------------------------------------
|
||||
SKT.GetDataFromSktIn
|
||||
jsr SKT.GetTCB
|
||||
lda SKT.TCBCache+S.TCB.INUSED
|
||||
ora SKT.TCBCache+S.TCB.INUSED+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INUSED
|
||||
ora SKT.TCBCache+S.SOCKET.TCP.INUSED+1
|
||||
bne .10
|
||||
sec
|
||||
rts A=0,NO DATA
|
||||
@ -794,11 +890,11 @@ SKT.GetDataFromSktIn
|
||||
|
||||
lda ZPTmpPtr1
|
||||
clc
|
||||
adc SKT.TCBCache+S.TCB.INTAIL
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.INTAIL
|
||||
sta ZPTmpPtr2
|
||||
|
||||
lda ZPTmpPtr1+1
|
||||
adc SKT.TCBCache+S.TCB.INTAIL+1
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.INTAIL+1
|
||||
sta ZPTmpPtr2+1
|
||||
|
||||
lda ZPDataInLen
|
||||
@ -822,25 +918,25 @@ SKT.GetDataFromSktIn
|
||||
|
||||
pha
|
||||
|
||||
.2 lda SKT.TCBCache+S.TCB.INTAIL
|
||||
eor SKT.TCBCache+S.TCB.INHEAD
|
||||
.2 lda SKT.TCBCache+S.SOCKET.TCP.INTAIL
|
||||
eor SKT.TCBCache+S.SOCKET.TCP.INHEAD
|
||||
bne .3
|
||||
lda SKT.TCBCache+S.TCB.INTAIL+1
|
||||
eor SKT.TCBCache+S.TCB.INHEAD+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INTAIL+1
|
||||
eor SKT.TCBCache+S.SOCKET.TCP.INHEAD+1
|
||||
beq .7 no more data....
|
||||
|
||||
.3 lda (ZPTmpPtr2)
|
||||
pha
|
||||
|
||||
inc SKT.TCBCache+S.TCB.INTAIL
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.INTAIL
|
||||
bne .4
|
||||
|
||||
inc SKT.TCBCache+S.TCB.INTAIL+1
|
||||
lda SKT.TCBCache+S.TCB.INTAIL+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.INTAIL+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INTAIL+1
|
||||
cmp /K.TCP.WSIZE
|
||||
bne .4
|
||||
|
||||
stz SKT.TCBCache+S.TCB.INTAIL+1
|
||||
stz SKT.TCBCache+S.SOCKET.TCP.INTAIL+1
|
||||
lda ZPTmpPtr1
|
||||
sta ZPTmpPtr2
|
||||
lda ZPTmpPtr1+1
|
||||
@ -870,41 +966,41 @@ SKT.GetDataFromSktIn
|
||||
ora ZPTmpPtr3+1
|
||||
beq .9
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
clc
|
||||
adc ZPTmpPtr3
|
||||
sta SKT.TCBCache+S.TCB.INFREE
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
adc ZPTmpPtr3+1
|
||||
sta SKT.TCBCache+S.TCB.INFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INUSED
|
||||
sec
|
||||
sbc ZPTmpPtr3
|
||||
sta SKT.TCBCache+S.TCB.INUSED
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INUSED
|
||||
|
||||
lda SKT.TCBCache+S.TCB.INUSED+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INUSED+1
|
||||
sbc ZPTmpPtr3+1
|
||||
sta SKT.TCBCache+S.TCB.INUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INUSED+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTACKNUM+3
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM+3
|
||||
clc
|
||||
adc ZPTmpPtr3
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM+3
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM+3
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTACKNUM+2
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM+2
|
||||
adc ZPTmpPtr3+1
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM+2
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM+2
|
||||
|
||||
bcc .80
|
||||
inc SKT.TCBCache+S.TCB.OUTACKNUM+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM+1
|
||||
bne .80
|
||||
inc SKT.TCBCache+S.TCB.OUTACKNUM
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM
|
||||
|
||||
.80 jsr SKT.StoreTCB
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
@ -926,9 +1022,9 @@ SKT.GetDataFromSktIn
|
||||
*--------------------------------------
|
||||
SKT.AddDataToSktOut
|
||||
jsr SKT.GetTCB
|
||||
ldx SKT.TCBCache+S.TCB.OUTFREE
|
||||
ldx SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
cpx ZPDataInLen
|
||||
lda SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
sbc ZPDataInLen+1
|
||||
bcc .9 Not enough room in Q
|
||||
|
||||
@ -939,11 +1035,11 @@ SKT.AddDataToSktOut
|
||||
|
||||
lda ZPTmpPtr1
|
||||
clc
|
||||
adc SKT.TCBCache+S.TCB.OUTHEAD
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTHEAD
|
||||
sta ZPTmpPtr2
|
||||
|
||||
lda ZPTmpPtr1+1
|
||||
adc SKT.TCBCache+S.TCB.OUTHEAD+1
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTHEAD+1
|
||||
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
|
||||
|
||||
lda ZPDataInLen
|
||||
@ -974,13 +1070,13 @@ SKT.AddDataToSktOut
|
||||
bne .4
|
||||
inc ZPTmpPtr2+1
|
||||
|
||||
.4 inc SKT.TCBCache+S.TCB.OUTHEAD
|
||||
.4 inc SKT.TCBCache+S.SOCKET.TCP.OUTHEAD
|
||||
bne .1
|
||||
inc SKT.TCBCache+S.TCB.OUTHEAD+1
|
||||
lda SKT.TCBCache+S.TCB.OUTHEAD+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTHEAD+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTHEAD+1
|
||||
cmp /K.TCP.WSIZE
|
||||
bne .1
|
||||
stz SKT.TCBCache+S.TCB.OUTHEAD+1
|
||||
stz SKT.TCBCache+S.SOCKET.TCP.OUTHEAD+1
|
||||
|
||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
||||
sta ZPTmpPtr2
|
||||
@ -991,29 +1087,29 @@ SKT.AddDataToSktOut
|
||||
.9 sec
|
||||
rts
|
||||
|
||||
.8 lda SKT.TCBCache+S.TCB.OUTFREE
|
||||
.8 lda SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
sec
|
||||
sbc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE
|
||||
lda SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
sbc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTUSED
|
||||
clc
|
||||
adc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.OUTUSED
|
||||
lda SKT.TCBCache+S.TCB.OUTUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTUSED+1
|
||||
adc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.OUTUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTUSED+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTTOSEND
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND
|
||||
clc
|
||||
adc ZPDataInLen
|
||||
sta SKT.TCBCache+S.TCB.OUTTOSEND
|
||||
lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND+1
|
||||
adc ZPDataInLen+1
|
||||
sta SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND+1
|
||||
jsr SKT.StoreTCB
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -1030,11 +1126,11 @@ SKT.GetDataFromSktOut
|
||||
|
||||
lda ZPTmpPtr1
|
||||
clc
|
||||
adc SKT.TCBCache+S.TCB.OUTTAILNEXT
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT
|
||||
sta ZPTmpPtr2 Make ZPTmpPtr2=base+nexttail
|
||||
|
||||
lda ZPTmpPtr1+1
|
||||
adc SKT.TCBCache+S.TCB.OUTTAILNEXT+1
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT+1
|
||||
sta ZPTmpPtr2+1
|
||||
|
||||
lda ZPDataOutLen
|
||||
@ -1065,13 +1161,13 @@ SKT.GetDataFromSktOut
|
||||
bne .4
|
||||
inc ZPTmpPtr2+1
|
||||
|
||||
.4 inc SKT.TCBCache+S.TCB.OUTTAILNEXT
|
||||
.4 inc SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT
|
||||
bne .1
|
||||
inc SKT.TCBCache+S.TCB.OUTTAILNEXT+1
|
||||
lda SKT.TCBCache+S.TCB.OUTTAILNEXT+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT+1
|
||||
cmp /K.TCP.WSIZE
|
||||
bne .1
|
||||
stz SKT.TCBCache+S.TCB.OUTTAILNEXT+1
|
||||
stz SKT.TCBCache+S.SOCKET.TCP.OUTTAILNEXT+1
|
||||
|
||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
||||
sta ZPTmpPtr2
|
||||
@ -1079,13 +1175,13 @@ SKT.GetDataFromSktOut
|
||||
sta ZPTmpPtr2+1
|
||||
bra .1
|
||||
|
||||
.8 lda SKT.TCBCache+S.TCB.OUTTOSEND
|
||||
.8 lda SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND
|
||||
sec
|
||||
sbc ZPDataOutLen
|
||||
sta SKT.TCBCache+S.TCB.OUTTOSEND
|
||||
lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND+1
|
||||
sbc ZPDataOutLen+1
|
||||
sta SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND+1
|
||||
|
||||
clc
|
||||
rts
|
||||
@ -1102,10 +1198,10 @@ SKT.AckDataToSktOut
|
||||
|
||||
.1 lda (ZPFrameInPtr),y
|
||||
pha
|
||||
sbc SKT.TCBCache+S.TCB.OUTSEQNUM,x
|
||||
sbc SKT.TCBCache+S.SOCKET.TCP.OUTSEQNUM,x
|
||||
sta TmpDWord,x
|
||||
pla ....and Set SEQ = new SEQ
|
||||
sta SKT.TCBCache+S.TCB.OUTSEQNUM,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTSEQNUM,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
@ -1117,29 +1213,29 @@ SKT.AckDataToSktOut
|
||||
beq .8
|
||||
|
||||
.2 clc
|
||||
adc SKT.TCBCache+S.TCB.OUTTAIL
|
||||
sta SKT.TCBCache+S.TCB.OUTTAIL
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTTAIL
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTAIL
|
||||
|
||||
txa
|
||||
adc SKT.TCBCache+S.TCB.OUTTAIL+1
|
||||
adc SKT.TCBCache+S.SOCKET.TCP.OUTTAIL+1
|
||||
and /K.TCP.WSIZE-1
|
||||
sta SKT.TCBCache+S.TCB.OUTTAIL+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTTAIL+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
clc
|
||||
adc TmpDWord+3
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE
|
||||
lda SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
adc TmpDWord+2
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTUSED
|
||||
sec
|
||||
sbc TmpDWord+3
|
||||
sta SKT.TCBCache+S.TCB.OUTUSED
|
||||
lda SKT.TCBCache+S.TCB.OUTUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTUSED
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTUSED+1
|
||||
sbc TmpDWord+2
|
||||
sta SKT.TCBCache+S.TCB.OUTUSED+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTUSED+1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
@ -1154,16 +1250,16 @@ SKT.NewTCB >LDYAI S.TCB
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
lda #K.TCP.WSIZE
|
||||
sta SKT.TCBCache+S.TCB.INFREE
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE
|
||||
lda /K.TCP.WSIZE
|
||||
sta SKT.TCBCache+S.TCB.INFREE+1
|
||||
sta SKT.TCBCache+S.TCB.OUTFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTFREE+1
|
||||
|
||||
ldx #3
|
||||
|
||||
.2 lda A2osX.TIMER16,x
|
||||
sta SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
|
@ -13,7 +13,7 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDstIPP
|
||||
|
||||
.3 lda (ZPPtrSKT)
|
||||
beq .7
|
||||
cmp #S.SOCKET.SOCK.STREAM
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .7
|
||||
|
||||
ldy #S.SOCKET.SRC.ADDR
|
||||
@ -26,9 +26,9 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDstIPP
|
||||
cpy #S.SOCKET.SRC.PORT+2
|
||||
bne .4
|
||||
|
||||
ldy #S.SOCKET.SO
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.SO.ACCEPTCONN Listening socket?
|
||||
and #S.SOCKET.O.ACCEPTCONN Listening socket?
|
||||
beq .5 no, go check if Dst Match
|
||||
|
||||
ldy #S.TCP.OPTIONS yes, only accept SYN packet
|
||||
@ -51,9 +51,9 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDstIPP
|
||||
and #S.TCP.OPTIONS.RST RST ? go Kill this socket.
|
||||
bne TCP.IN.RST
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.TIMEWT+1
|
||||
cmp #S.SOCKET.TCP.S.TIMEWT+1
|
||||
bcs *
|
||||
asl
|
||||
tax
|
||||
@ -77,12 +77,12 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDstIPP
|
||||
TCP.IN.RST jmp SKT.Destroy
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.LISTEN
|
||||
lda #S.SOCKET.SOCK.STREAM
|
||||
sta SKT.Template+S.SOCKET.SOCK
|
||||
stz SKT.Template+S.SOCKET.SO
|
||||
stz SKT.Template+S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.T.STREAM
|
||||
sta SKT.Template+S.SOCKET.T
|
||||
stz SKT.Template+S.SOCKET.O
|
||||
stz SKT.Template+S.SOCKET.TCP.S
|
||||
lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
||||
sta SKT.Template+S.SOCKET.TCP.OPTIONS
|
||||
sta SKT.Template+S.SOCKET.TCP.O
|
||||
|
||||
jsr ARP.AddFromFrameInPtr
|
||||
|
||||
@ -112,8 +112,8 @@ TCP.IN.JMP.LISTEN
|
||||
jsr TCP.OUT.SendOptA SYN received, Send SYN.ACK
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.SYNRCVD
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.SYNRCVD
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
clc
|
||||
@ -138,9 +138,9 @@ TCP.IN.JMP.SYNSENT
|
||||
|
||||
sec Check if ACK=OUTNEXTSEQ+1
|
||||
|
||||
.1 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
.1 lda SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||
eor (ZPFrameInPtr),y
|
||||
bne .9
|
||||
dey
|
||||
@ -153,8 +153,8 @@ TCP.IN.JMP.SYNSENT
|
||||
jsr TCP.OUT.SendOptA SYN.ACK recieved, Send, ACK
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.ESTBLSH
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.ESTBLSH
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jmp SKT.StoreTCB
|
||||
@ -177,18 +177,18 @@ TCP.IN.JMP.SYNRCVD
|
||||
|
||||
sec
|
||||
|
||||
.1 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x Check if ACK=OUTNEXTSEQ+1
|
||||
.1 lda SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x Check if ACK=OUTNEXTSEQ+1
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.OUTSEQNUM,x setup SEQNUM
|
||||
sta SKT.TCBCache+S.TCB.OUTNEXTSEQ,x ...and update NEXTSEQ
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTSEQNUM,x setup SEQNUM
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x ...and update NEXTSEQ
|
||||
eor (ZPFrameInPtr),y
|
||||
bne .8
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.ESTBLSH
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.ESTBLSH
|
||||
sta (ZPPtrSKT),y
|
||||
jmp SKT.StoreTCB
|
||||
|
||||
@ -226,8 +226,8 @@ TCP.IN.JMP.ESTBLSH
|
||||
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.CLWAIT
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.CLWAIT
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.8 clc
|
||||
@ -254,8 +254,8 @@ TCP.IN.JMP.FINWT1
|
||||
bit #S.TCP.OPTIONS.ACK
|
||||
beq TCP.IN.JMP.FINWT2.1
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.FINWT2
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.FINWT2
|
||||
sta (ZPPtrSKT),y
|
||||
*--------------------------------------
|
||||
TCP.IN.JMP.FINWT2
|
||||
@ -268,8 +268,8 @@ TCP.IN.JMP.FINWT2.1
|
||||
jsr TCP.IN.ACKTheFIN
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.TIMEWT
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.TIMEWT
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.8 clc
|
||||
@ -281,8 +281,8 @@ TCP.IN.JMP.CLOSING
|
||||
bit #S.TCP.OPTIONS.ACK
|
||||
beq .1
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.TIMEWT
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.TIMEWT
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.1 clc
|
||||
@ -301,15 +301,15 @@ TCP.IN.ACKTheSYN
|
||||
|
||||
.3 lda (ZPFrameInPtr),y Set OUTACK=SEQ+1 for new socket...
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.INLASTSEQNUM,x
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.INLASTSEQNUM,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.IN.ACKTheFIN
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
@ -321,9 +321,9 @@ TCP.IN.ACKTheFIN
|
||||
|
||||
sec
|
||||
|
||||
.3 lda SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
.3 lda SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM,x
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
@ -379,8 +379,8 @@ TCP.IN.SetDataInPtrAndLen
|
||||
*--------------------------------------
|
||||
TCP.OUT jsr SKT.GetTCB
|
||||
|
||||
TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
ldy SKT.TCBCache+S.TCB.OUTTOSEND
|
||||
TCP.OUT.I lda SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND+1
|
||||
ldy SKT.TCBCache+S.SOCKET.TCP.OUTTOSEND
|
||||
|
||||
bne .1
|
||||
|
||||
@ -389,7 +389,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
|
||||
* Y,A=0 : no data to send
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
bne TCP.OUT.SendOptA a least an option...
|
||||
clc No, data, no flag....exit
|
||||
@ -408,25 +408,25 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTTOSEND+1
|
||||
|
||||
jsr SKT.GetDataFromSktOut
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
jsr TCP.OUT.SendOptA.1
|
||||
|
||||
bcs TCP.OUT.9
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTNEXTSEQ+3
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ+3
|
||||
clc
|
||||
adc ZPDataOutLen
|
||||
sta SKT.TCBCache+S.TCB.OUTNEXTSEQ+3
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ+3
|
||||
|
||||
lda SKT.TCBCache+S.TCB.OUTNEXTSEQ+2
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ+2
|
||||
adc ZPDataOutLen+1
|
||||
sta SKT.TCBCache+S.TCB.OUTNEXTSEQ+2
|
||||
sta SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ+2
|
||||
bcc .80
|
||||
inc SKT.TCBCache+S.TCB.OUTNEXTSEQ+1
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ+1
|
||||
bne .80
|
||||
inc SKT.TCBCache+S.TCB.OUTNEXTSEQ
|
||||
inc SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ
|
||||
|
||||
.80 jmp SKT.StoreTCB exits with CC
|
||||
TCP.OUT.9 rts
|
||||
@ -448,7 +448,7 @@ TCP.OUT.SendOptA.1
|
||||
ldx #3
|
||||
ldy #S.TCP.ACKNUM+3
|
||||
|
||||
.1 lda SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
.1 lda SKT.TCBCache+S.SOCKET.TCP.OUTACKNUM,x
|
||||
sta (ZPFrameOutPtr),y
|
||||
dey
|
||||
dex
|
||||
@ -457,23 +457,23 @@ TCP.OUT.SendOptA.1
|
||||
.10 ldx #3
|
||||
ldy #S.TCP.SEQNUM+3
|
||||
|
||||
.2 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
.2 lda SKT.TCBCache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||
sta (ZPFrameOutPtr),y
|
||||
dey
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
ldy #S.TCP.WINDOW
|
||||
lda SKT.TCBCache+S.TCB.INFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
sta (ZPFrameOutPtr),y
|
||||
iny
|
||||
lda SKT.TCBCache+S.TCB.INFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
sta (ZPFrameOutPtr),y
|
||||
|
||||
jsr FRM.SendIP
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
ldy #S.SOCKET.TCP.O
|
||||
lda #0
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
@ -493,10 +493,10 @@ TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
|
||||
sta (ZPFrameOutPtr),y
|
||||
|
||||
ldy #S.TCP.WINDOW
|
||||
lda SKT.TCBCache+S.TCB.INFREE+1
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE+1
|
||||
sta (ZPFrameOutPtr),y
|
||||
iny
|
||||
lda SKT.TCBCache+S.TCB.INFREE
|
||||
lda SKT.TCBCache+S.SOCKET.TCP.INFREE
|
||||
sta (ZPFrameOutPtr),y
|
||||
|
||||
clc
|
||||
|
@ -13,7 +13,7 @@ UDP.IN jsr IP.FillSKT.TemplateSrcDstIPP
|
||||
|
||||
.3 lda (ZPPtrSKT)
|
||||
beq .7
|
||||
cmp #S.SOCKET.SOCK.DGRAM
|
||||
cmp #S.SOCKET.T.DGRAM
|
||||
bne .7
|
||||
|
||||
ldy #S.SOCKET.SRC.ADDR
|
||||
|
@ -292,12 +292,15 @@ CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s"
|
||||
*--------------------------------------
|
||||
FD.SSOCK .BS 1 S.FD.HANDLER
|
||||
.DA #S.FD.T.SSOCK
|
||||
.BS 1 S.FD.SSOCK.HSKT
|
||||
.DA #0 S.FD.SSOCK.OPEN
|
||||
.DA #0 S.FD.SSOCK.CLOSE
|
||||
.BS 1 S.FD.SOCK.HSKT
|
||||
.DA #0 S.FD.SOCK.OPEN
|
||||
.DA #0 S.FD.SOCK.CLOSE
|
||||
.DA #LIBTCPIP.SKT.Read
|
||||
.DA #LIBTCPIP.SKT.Write
|
||||
.DA #0 S.FD.SSOCK.STATUS
|
||||
.DA #0 S.FD.SOCK.STATUS
|
||||
.BS 1 S.SOCKET.T
|
||||
.BS 1 S.SOCKET.PROTO
|
||||
FD.SSOCK.SIZE .EQ *-FD.SSOCK
|
||||
*--------------------------------------
|
||||
IOCTL .BS S.IOCTL
|
||||
DCB.NIC .BS S.DCB.NIC
|
||||
@ -330,7 +333,7 @@ ARP.REP.SPA .BS 4
|
||||
ARP.REP.THA .BS 6
|
||||
ARP.REP.TPA .BS 4
|
||||
*--------------------------------------
|
||||
DNS.SOCKET .DA #S.SOCKET.SOCK.DGRAM
|
||||
DNS.SOCKET .DA #S.SOCKET.T.DGRAM
|
||||
.BS 3
|
||||
DNS.SOCKET.SA .BS 4
|
||||
DNS.SOCKET.SP .DA 0 Dynamic
|
||||
@ -366,6 +369,7 @@ DNS.TmpCache .BS S.DNSCACHE
|
||||
ARP.TmpCache .BS S.ARP
|
||||
SKT.Template .BS S.SOCKET
|
||||
SKT.TCBCache .BS S.TCB
|
||||
SKT.ADDRCache .BS S.SOCKADDR
|
||||
TmpByte .BS 1
|
||||
TmpDWord .BS 4
|
||||
TmpOffset .BS 2
|
||||
|
@ -447,7 +447,7 @@ MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting."
|
||||
hLIBTCPIP .BS 1
|
||||
IPCFG .BS S.IPCFG
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||
Socket .DA #S.SOCKET.T.DGRAM
|
||||
.BS 3
|
||||
.HS 00.00.00.00 Socket.Src.Addr
|
||||
.DA UDP.PORT.DHCPC Socket.Src.Port
|
||||
|
@ -268,9 +268,9 @@ hClntSocket .BS 1
|
||||
*--------------------------------------
|
||||
HTTP.200OK .AZ "HTTP/1.1 200 OK\r\n"
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||
Socket .DA #S.SOCKET.T.STREAM
|
||||
.DA #S.SOCKET.O.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.S.LISTEN
|
||||
.BS 1
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .DA 80
|
||||
|
@ -205,9 +205,9 @@ MSG.ABORT .AZ "NFSD:User Aborted\n"
|
||||
MSG.INCOMING .AZ "NFSD:Incoming Connection From : %d.%d.%d.%d\n"
|
||||
hLIBTCPIP .BS 1
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||
Socket .DA #S.SOCKET.T.DGRAM
|
||||
.DA #S.SOCKET.O.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.S.LISTEN
|
||||
.BS 1
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .DA 2049
|
||||
|
@ -234,9 +234,9 @@ CMD.LINE .AS "${A2OSX}SBIN/GETTY "
|
||||
|
||||
.AZ " ${A2OSX}SBIN/LOGIN"
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||
Socket .DA #S.SOCKET.T.STREAM
|
||||
.DA #S.SOCKET.O.ACCEPTCONN
|
||||
.DA #S.SOCKET.TCP.S.LISTEN
|
||||
.BS 1
|
||||
Socket.Src.Addr .BS 4
|
||||
Socket.Src.Port .DA TCP.PORT.TELNET
|
||||
|
@ -195,10 +195,10 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
|
||||
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||
IO.WRITE.SSOCK ldy #S.FD.SOCK.WRITE
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||
IO.READ.SSOCK ldy #S.FD.SOCK.READ
|
||||
lda (pFD),y
|
||||
tax Function Offset in LIB
|
||||
|
||||
@ -210,7 +210,7 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
>PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
|
||||
ldy #S.FD.SSOCK.HSKT
|
||||
ldy #S.FD.SOCK.HSKT
|
||||
lda (pFD),y
|
||||
|
||||
.1 jmp $ffff
|
||||
|
Loading…
x
Reference in New Issue
Block a user