mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-28 03:55:01 +00:00
Kernel 0.9.2
This commit is contained in:
parent
563d695a1b
commit
617bf82063
Binary file not shown.
Binary file not shown.
@ -172,7 +172,7 @@ CS.RUN.OPENSKT ldx #3
|
|||||||
|
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
>LDA.G hSocket
|
>LDA.G hSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
|
|
||||||
bcc CS.RUN.SEND.ECHO
|
bcc CS.RUN.SEND.ECHO
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ LIBTCPIP.RecvFrom .EQ 52
|
|||||||
LIBTCPIP.SendTo .EQ 54
|
LIBTCPIP.SendTo .EQ 54
|
||||||
|
|
||||||
LIBTCPIP.GetTable .EQ 56
|
LIBTCPIP.GetTable .EQ 56
|
||||||
|
LIBTCPIP.setsockopt .EQ 58
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ERR.SKT.OOS .EQ $BF
|
ERR.SKT.OOS .EQ $BF
|
||||||
ERR.SKT.BUSY .EQ $BE
|
ERR.SKT.BUSY .EQ $BE
|
||||||
|
@ -51,7 +51,6 @@ SKT.Socket.DSOCK
|
|||||||
txa
|
txa
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
SKT.Socket.STREAM
|
SKT.Socket.STREAM
|
||||||
lda #S.IP.PROTOCOL.TCP
|
lda #S.IP.PROTOCOL.TCP
|
||||||
ldy #S.SOCKET.TCP
|
ldy #S.SOCKET.TCP
|
||||||
@ -66,18 +65,17 @@ SKT.Socket.STREAM
|
|||||||
|
|
||||||
jsr SKT.Socket.FindFree
|
jsr SKT.Socket.FindFree
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #FD.SSOCK.SIZE-1
|
ldy #FD.SSOCK.SIZE-1
|
||||||
|
|
||||||
.1 lda FD.SSOCK,y
|
.1 lda FD.SSOCK,y
|
||||||
sta (ZPTmpPtr1),y
|
sta (ZPTmpPtr1),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
SKT.Socket.FindFree
|
SKT.Socket.FindFree
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -93,7 +91,7 @@ SKT.Socket.FindFree
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 txa x = hFD
|
.2 txa
|
||||||
sta SKT.TABLE,y
|
sta SKT.TABLE,y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -151,7 +149,7 @@ SKT.connect >SYSCALL GetMemPtr
|
|||||||
>STYA ZPPtrSKT
|
>STYA ZPPtrSKT
|
||||||
|
|
||||||
jsr SKT.PullRemAddr
|
jsr SKT.PullRemAddr
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
@ -164,7 +162,7 @@ SKT.connect.SEQPACKET
|
|||||||
jsr SKT.SetRemAddr
|
jsr SKT.SetRemAddr
|
||||||
jsr SKT.NewTCB
|
jsr SKT.NewTCB
|
||||||
bcs SKT.connect.99
|
bcs SKT.connect.99
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.SYN
|
lda #S.TCP.OPTIONS.SYN
|
||||||
jsr TCP.OUT.SendOptA Send SYN
|
jsr TCP.OUT.SendOptA Send SYN
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -176,7 +174,7 @@ SKT.connect.SEQPACKET
|
|||||||
|
|
||||||
.9 lda #ERR.SKT.BAD
|
.9 lda #ERR.SKT.BAD
|
||||||
sec
|
sec
|
||||||
SKT.connect.99 rts
|
SKT.connect.99 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Listen
|
* # Listen
|
||||||
* Listen for connections on a socket
|
* Listen for connections on a socket
|
||||||
@ -237,10 +235,10 @@ SKT.Accept >SYSCALL GetMemPtr
|
|||||||
ldy #S.SOCKET.HQ.TAIL
|
ldy #S.SOCKET.HQ.TAIL
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
ldy #S.SOCKET.HQ.HEAD
|
ldy #S.SOCKET.HQ.HEAD
|
||||||
cmp (ZPPtrSKT),y Queue Empty
|
cmp (ZPPtrSKT),y
|
||||||
beq .9 CS
|
beq .9 CS
|
||||||
|
|
||||||
pha save tail...
|
pha
|
||||||
inc
|
inc
|
||||||
cmp #S.SOCKET.HQ.MAX
|
cmp #S.SOCKET.HQ.MAX
|
||||||
bne .1
|
bne .1
|
||||||
@ -279,17 +277,15 @@ SKT.shutdown pha
|
|||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
and #S.SOCKET.O.ACCEPTCONN
|
and #S.SOCKET.O.ACCEPTCONN
|
||||||
bne SKT.shutdown.LISTEN
|
bne SKT.shutdown.LISTEN
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
jmp (J.SKT.shutdown,x)
|
jmp (J.SKT.shutdown,x)
|
||||||
|
|
||||||
SKT.shutdown.LISTEN
|
SKT.shutdown.LISTEN
|
||||||
SKT.shutdown.RAW
|
SKT.shutdown.RAW
|
||||||
SKT.shutdown.DGRAM
|
SKT.shutdown.DGRAM
|
||||||
SKT.shutdown.SEQPACKET
|
SKT.shutdown.SEQPACKET
|
||||||
|
|
||||||
.1 ldy #S.SOCKET.HQ.TAIL
|
.1 ldy #S.SOCKET.HQ.TAIL
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
ldy #S.SOCKET.HQ.HEAD
|
ldy #S.SOCKET.HQ.HEAD
|
||||||
@ -317,24 +313,22 @@ SKT.shutdown.SEQPACKET
|
|||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 pla get hFD...
|
.3 pla get hFD...
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.4 cmp SKT.TABLE,x
|
.4 cmp SKT.TABLE,x
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
inx
|
inx
|
||||||
cpx #K.SKTTABLE.SIZE
|
cpx #K.SKTTABLE.SIZE
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
.5 stz SKT.TABLE,x
|
.5 stz SKT.TABLE,x
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SKT.shutdown.STREAM
|
SKT.shutdown.STREAM
|
||||||
pla
|
pla
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.S
|
ldy #S.SOCKET.TCP.S
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.S.CLWAIT
|
cmp #S.SOCKET.TCP.S.CLWAIT
|
||||||
@ -350,7 +344,6 @@ SKT.shutdown.STREAM
|
|||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
ora #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
ora #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
jmp TCP.OUT
|
jmp TCP.OUT
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Read (STREAM)
|
* # Read (STREAM)
|
||||||
@ -368,7 +361,6 @@ SKT.shutdown.STREAM
|
|||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Read >SYSCALL GetMemPtr
|
SKT.Read >SYSCALL GetMemPtr
|
||||||
>STYA ZPPtrSKT
|
>STYA ZPPtrSKT
|
||||||
|
|
||||||
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
||||||
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
||||||
|
|
||||||
@ -419,7 +411,6 @@ SKT.Read >SYSCALL GetMemPtr
|
|||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Write >SYSCALL GetMemPtr
|
SKT.Write >SYSCALL GetMemPtr
|
||||||
>STYA ZPPtrSKT
|
>STYA ZPPtrSKT
|
||||||
|
|
||||||
>PULLW ZPDataInPtr
|
>PULLW ZPDataInPtr
|
||||||
>PULLW ZPDataInLen
|
>PULLW ZPDataInLen
|
||||||
|
|
||||||
@ -474,13 +465,10 @@ SKT.Write >SYSCALL GetMemPtr
|
|||||||
SKT.RecvFrom pha
|
SKT.RecvFrom pha
|
||||||
>PULLW ZPTmpPtr1 addr
|
>PULLW ZPTmpPtr1 addr
|
||||||
pla
|
pla
|
||||||
|
|
||||||
sec
|
sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
SKT.Recv clc
|
SKT.Recv clc
|
||||||
|
|
||||||
php
|
php
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtrSKT
|
>STYA ZPPtrSKT
|
||||||
|
|
||||||
@ -560,7 +548,7 @@ SKT.Recv clc
|
|||||||
.99 plp
|
.99 plp
|
||||||
lda #ERR.SKT.BAD
|
lda #ERR.SKT.BAD
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.90 plp
|
.90 plp
|
||||||
lda #0 no data
|
lda #0 no data
|
||||||
@ -590,19 +578,15 @@ SKT.Send clc
|
|||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtrSKT
|
>STYA ZPPtrSKT
|
||||||
plp
|
plp
|
||||||
|
|
||||||
>PULLW ZPDataInPtr
|
>PULLW ZPDataInPtr
|
||||||
>PULLW ZPDataInLen
|
>PULLW ZPDataInLen
|
||||||
|
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
jsr SKT.PullRemAddr
|
jsr SKT.PullRemAddr
|
||||||
jsr SKT.SetRemAddr
|
jsr SKT.SetRemAddr
|
||||||
|
|
||||||
.1 ldy #S.SOCKET.T
|
.1 ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
jmp (J.SKT.send,x)
|
jmp (J.SKT.send,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.Send.RAW ldy #S.SOCKET.PROTO
|
SKT.Send.RAW ldy #S.SOCKET.PROTO
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
@ -619,7 +603,7 @@ SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP
|
|||||||
jsr SKT.SetFrameOutTCPUDPPorts
|
jsr SKT.SetFrameOutTCPUDPPorts
|
||||||
SKT.Send.DGRAM.8
|
SKT.Send.DGRAM.8
|
||||||
jsr SKT.SetFrameOutDstIP
|
jsr SKT.SetFrameOutDstIP
|
||||||
jsr SKT.CopyDataInToOut
|
jsr SKT.CopyDataInToOut
|
||||||
jmp FRM.SendIP
|
jmp FRM.SendIP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.Send.STREAM lda #ERR.SKT.BAD
|
SKT.Send.STREAM lda #ERR.SKT.BAD
|
||||||
@ -635,15 +619,33 @@ SKT.Send.SEQPACKET
|
|||||||
* `void * gettable();`
|
* `void * gettable();`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.GetTable`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.GetTable >LDYA L.SKT.Table
|
SKT.GetTable >LDYA L.SKT.Table
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # SetSockOpt
|
||||||
|
* Set Socket Options
|
||||||
|
* ## C
|
||||||
|
* `int setsockopt(hFD fd, short int opts);`
|
||||||
|
* ## ASM
|
||||||
|
* **In:**
|
||||||
|
* `>PUSHWI opts`
|
||||||
|
* `lda fd`
|
||||||
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt`
|
||||||
|
* ## RETURN VALUE
|
||||||
|
*\--------------------------------------
|
||||||
|
SKT.setsockopt >SYSCALL GetMemPtr
|
||||||
|
>STYA ZPPtrSKT
|
||||||
|
>PULLA
|
||||||
|
ldy #S.SOCKET.O
|
||||||
|
ora (ZPPtrSKT),y
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
|
||||||
*--------------------------------------
|
|
||||||
SKT.PullLocAddr >PULLW ZPTmpPtr1
|
SKT.PullLocAddr >PULLW ZPTmpPtr1
|
||||||
ldy #S.SOCKADDR-1
|
ldy #S.SOCKADDR-1
|
||||||
.1 lda (ZPTmpPtr1),y
|
.1 lda (ZPTmpPtr1),y
|
||||||
@ -651,7 +653,7 @@ SKT.PullLocAddr >PULLW ZPTmpPtr1
|
|||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.PullRemAddr >PULLW ZPTmpPtr1
|
SKT.PullRemAddr >PULLW ZPTmpPtr1
|
||||||
ldy #S.SOCKADDR-1
|
ldy #S.SOCKADDR-1
|
||||||
.1 lda (ZPTmpPtr1),y
|
.1 lda (ZPTmpPtr1),y
|
||||||
@ -666,7 +668,6 @@ SKT.SetLocAddr ldy #S.SOCKET.LOC.PORT+1
|
|||||||
dey
|
dey
|
||||||
cpy #S.SOCKET.LOC.ADDR
|
cpy #S.SOCKET.LOC.ADDR
|
||||||
bcs .1
|
bcs .1
|
||||||
* clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1
|
SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1
|
||||||
@ -675,7 +676,6 @@ SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1
|
|||||||
dey
|
dey
|
||||||
cpy #S.SOCKET.REM.ADDR
|
cpy #S.SOCKET.REM.ADDR
|
||||||
bcs .1
|
bcs .1
|
||||||
* clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.FindMatchingLocRem
|
SKT.FindMatchingLocRem
|
||||||
@ -699,7 +699,7 @@ SKT.FindMatchingLocRem
|
|||||||
.2 lda (ZPTmpPtr1),y
|
.2 lda (ZPTmpPtr1),y
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldy #S.SOCKET.LOC.PORT This Socket is bound to 0.0.0.0,check only LOC port
|
ldy #S.SOCKET.LOC.PORT bound to 0.0.0.0,check only LOC port
|
||||||
|
|
||||||
.3 lda (ZPTmpPtr1),y
|
.3 lda (ZPTmpPtr1),y
|
||||||
|
|
||||||
@ -713,11 +713,11 @@ SKT.FindMatchingLocRem
|
|||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
and #S.SOCKET.O.ACCEPTCONN
|
and #S.SOCKET.O.ACCEPTCONN
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
ldy #S.TCP.OPTIONS Listening, only SYN packet....
|
ldy #S.TCP.OPTIONS Listening, only SYN packet....
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
cmp #S.TCP.OPTIONS.SYN
|
cmp #S.TCP.OPTIONS.SYN
|
||||||
beq .7 a SYN recieved on a LISTEN socket, ok
|
beq .7 SYN recieved on a LISTEN socket, ok
|
||||||
bne .8 bad packet for this listening
|
bne .8 bad packet for this listening
|
||||||
|
|
||||||
.6 lda SKT.REM.ADDR+S.SOCKADDR.ADDR
|
.6 lda SKT.REM.ADDR+S.SOCKADDR.ADDR
|
||||||
@ -733,7 +733,7 @@ SKT.FindMatchingLocRem
|
|||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.41 ldy #S.SOCKET.REM.ADDR
|
.41 ldy #S.SOCKET.REM.ADDR
|
||||||
|
|
||||||
.5 lda (ZPTmpPtr1),y
|
.5 lda (ZPTmpPtr1),y
|
||||||
cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y
|
cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y
|
||||||
bne .8 wrong remote host, exit....
|
bne .8 wrong remote host, exit....
|
||||||
@ -788,9 +788,6 @@ SKT.FindMatchingLoc
|
|||||||
* sec
|
* sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ZPPtrSKT -> actual socket
|
|
||||||
* A = hSocket or hFrame
|
|
||||||
*--------------------------------------
|
|
||||||
SKT.AddToQueueA pha
|
SKT.AddToQueueA pha
|
||||||
ldy #S.SOCKET.HQ.HEAD
|
ldy #S.SOCKET.HQ.HEAD
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
@ -990,7 +987,7 @@ SKT.GetDataFromSktIn
|
|||||||
bne .3
|
bne .3
|
||||||
lda SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
|
lda SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
|
||||||
eor SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
|
eor SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
|
||||||
beq .7 no more data....
|
beq .7
|
||||||
|
|
||||||
.3 lda (ZPTmpPtr2)
|
.3 lda (ZPTmpPtr2)
|
||||||
pha
|
pha
|
||||||
@ -1037,7 +1034,6 @@ SKT.GetDataFromSktIn
|
|||||||
clc
|
clc
|
||||||
adc ZPTmpPtr3
|
adc ZPTmpPtr3
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.INFREE
|
sta SKT.TmpCache+S.SOCKET.TCP.INFREE
|
||||||
|
|
||||||
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
|
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
|
||||||
adc ZPTmpPtr3+1
|
adc ZPTmpPtr3+1
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.INFREE+1
|
sta SKT.TmpCache+S.SOCKET.TCP.INFREE+1
|
||||||
@ -1046,7 +1042,6 @@ SKT.GetDataFromSktIn
|
|||||||
sec
|
sec
|
||||||
sbc ZPTmpPtr3
|
sbc ZPTmpPtr3
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.INUSED
|
sta SKT.TmpCache+S.SOCKET.TCP.INUSED
|
||||||
|
|
||||||
lda SKT.TmpCache+S.SOCKET.TCP.INUSED+1
|
lda SKT.TmpCache+S.SOCKET.TCP.INUSED+1
|
||||||
sbc ZPTmpPtr3+1
|
sbc ZPTmpPtr3+1
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.INUSED+1
|
sta SKT.TmpCache+S.SOCKET.TCP.INUSED+1
|
||||||
@ -1055,7 +1050,6 @@ SKT.GetDataFromSktIn
|
|||||||
clc
|
clc
|
||||||
adc ZPTmpPtr3
|
adc ZPTmpPtr3
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+3
|
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+3
|
||||||
|
|
||||||
lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
|
lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
|
||||||
adc ZPTmpPtr3+1
|
adc ZPTmpPtr3+1
|
||||||
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
|
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
|
||||||
@ -1077,8 +1071,8 @@ SKT.GetDataFromSktIn
|
|||||||
>LDYA ZPTmpPtr3
|
>LDYA ZPTmpPtr3
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.9
|
.9
|
||||||
* lda #0 NO DATA
|
* lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1093,7 +1087,7 @@ SKT.AddDataToSktOut
|
|||||||
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
|
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
|
||||||
sbc ZPDataInLen+1
|
sbc ZPDataInLen+1
|
||||||
bcc .9 Not enough room in Q
|
bcc .9 Not enough room in Q
|
||||||
|
|
||||||
ldy #S.SOCKET.SQ.hOutMem
|
ldy #S.SOCKET.SQ.hOutMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
@ -1339,7 +1333,7 @@ SKT.StoreTCB ldy #S.SOCKET
|
|||||||
iny
|
iny
|
||||||
cpy #S.SOCKET.TCP
|
cpy #S.SOCKET.TCP
|
||||||
bne .1
|
bne .1
|
||||||
clc Make CC for successfull exit
|
clc
|
||||||
SKT.StoreTCB.RTS
|
SKT.StoreTCB.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1395,7 +1389,7 @@ SKT.SetFrameOutTCPUDPPorts
|
|||||||
iny
|
iny
|
||||||
txa
|
txa
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
ldy #S.SOCKET.REM.PORT
|
ldy #S.SOCKET.REM.PORT
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
@ -1414,7 +1408,7 @@ SKT.CopyDataInToOut
|
|||||||
pha
|
pha
|
||||||
lda ZPDataOutPtr+1
|
lda ZPDataOutPtr+1
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda ZPDataInLen
|
lda ZPDataInLen
|
||||||
eor #$ff
|
eor #$ff
|
||||||
tax
|
tax
|
||||||
@ -1438,13 +1432,12 @@ SKT.CopyDataInToOut
|
|||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
inc ZPDataOutPtr+1
|
inc ZPDataOutPtr+1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 pla
|
.9 pla
|
||||||
sta ZPDataOutPtr+1
|
sta ZPDataOutPtr+1
|
||||||
pla
|
pla
|
||||||
sta ZPDataInPtr+1
|
sta ZPDataInPtr+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.SKT
|
SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.SKT
|
||||||
LOAD /A2OSX.SRC/LIB/LIBTCPIP.S
|
LOAD /A2OSX.SRC/LIB/LIBTCPIP.S
|
||||||
|
@ -89,6 +89,8 @@ CS.START cld
|
|||||||
.DA SKT.SendTo
|
.DA SKT.SendTo
|
||||||
|
|
||||||
.DA SKT.GetTable
|
.DA SKT.GetTable
|
||||||
|
|
||||||
|
.DA SKT.setsockopt
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.DEVNAME .DA DEVNAME
|
L.DEVNAME .DA DEVNAME
|
||||||
L.MSG.DEV.KO .DA MSG.DEV.KO
|
L.MSG.DEV.KO .DA MSG.DEV.KO
|
||||||
|
@ -40,7 +40,8 @@ CS.START cld
|
|||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
L.IPCFG .DA IPCFG
|
L.IPCFG .DA IPCFG
|
||||||
L.Socket .DA Socket
|
L.SA.LOCAL .DA SA.LOCAL
|
||||||
|
L.SA.REMOTE .DA SA.REMOTE
|
||||||
L.MSG.CFG1 .DA MSG.CFG1
|
L.MSG.CFG1 .DA MSG.CFG1
|
||||||
L.MSG.CFG2 .DA MSG.CFG2
|
L.MSG.CFG2 .DA MSG.CFG2
|
||||||
L.MSG.CFG.KO .DA MSG.CFG.KO
|
L.MSG.CFG.KO .DA MSG.CFG.KO
|
||||||
@ -53,6 +54,7 @@ L.DHCP.REQ .DA DHCP.REQ
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLib
|
>SYSCALL LoadLib
|
||||||
|
bcs .9
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
||||||
@ -105,13 +107,27 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >PUSHW L.Socket
|
CS.RUN >PUSHBI 0 no protocol
|
||||||
|
lda #S.SOCKET.T.DGRAM
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcc .1
|
bcc .1
|
||||||
jmp CS.RUN.KO
|
.9 jmp CS.RUN.KO
|
||||||
|
|
||||||
.1 >STA.G hSocket
|
.1 >STA.G hSocket
|
||||||
|
pha
|
||||||
|
>PUSHW L.SA.LOCAL
|
||||||
|
pla
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHWI S.SOCKET.O.BROADCAST
|
||||||
|
>LDA.G hSocket
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt
|
||||||
|
|
||||||
|
>PUSHW L.SA.REMOTE
|
||||||
|
>LDA.G hSocket
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.MSG.CFG1
|
>LDYA L.MSG.CFG1
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
@ -236,7 +252,7 @@ CS.DOEVENT lda (pEvent)
|
|||||||
CS.QUIT >LDA.G hSocket
|
CS.QUIT >LDA.G hSocket
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL fclose
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||||
|
|
||||||
.1 lda hLIBTCPIP
|
.1 lda hLIBTCPIP
|
||||||
>SYSCALL UnloadLib
|
>SYSCALL UnloadLib
|
||||||
@ -437,7 +453,7 @@ Wait.TimeOut ldy #TimeOut
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBTCPIP .AZ "libtcpip.o"
|
LIBTCPIP .AZ "libtcpip"
|
||||||
MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers..."
|
MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers..."
|
||||||
MSG.CFG2 .AZ "DHCPCLNT:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
MSG.CFG2 .AZ "DHCPCLNT:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
||||||
MSG.CFG.KO .AZ "DHCPCLNT:Time Out [%h].\r\n"
|
MSG.CFG.KO .AZ "DHCPCLNT:Time Out [%h].\r\n"
|
||||||
@ -447,12 +463,15 @@ MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting."
|
|||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
IPCFG .BS S.IPCFG
|
IPCFG .BS S.IPCFG
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Socket .DA #S.SOCKET.T.DGRAM
|
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
||||||
.BS 3
|
.BS 1
|
||||||
.HS 00.00.00.00 Socket.Src.Addr
|
.HS 00.00.00.00 S.SOCKADDR.ADDR
|
||||||
.DA UDP.PORT.DHCPC Socket.Src.Port
|
.DA UDP.PORT.DHCPC S.SOCKADDR.PORT
|
||||||
.HS FF.FF.FF.FF Socket.Dst.Addr
|
*--------------------------------------
|
||||||
.DA UDP.PORT.DHCPS Socket.Dst.Port
|
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
|
||||||
|
.BS 1
|
||||||
|
.HS FF.FF.FF.FF S.SOCKADDR.ADDR
|
||||||
|
.DA UDP.PORT.DHCPS S.SOCKADDR.PORT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DHCP.DISC .HS 01010600 OP,HTYPE,HLEN,HOPS
|
DHCP.DISC .HS 01010600 OP,HTYPE,HLEN,HOPS
|
||||||
DHCP.DISC.XID .BS 4
|
DHCP.DISC.XID .BS 4
|
||||||
|
Loading…
Reference in New Issue
Block a user