mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-16 15:29:38 +00:00
Kernel 0.93
This commit is contained in:
parent
453c30b3a3
commit
3a3aa1464a
Binary file not shown.
|
@ -11,7 +11,20 @@ IP.IN ldy #S.IP.PROTOCOL
|
||||||
.2 cmp #S.IP.PROTOCOL.UDP
|
.2 cmp #S.IP.PROTOCOL.UDP
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jmp UDP.IN
|
jsr FRM.GetTargetSKT.TCPUDP
|
||||||
|
|
||||||
|
jsr SKT.FindMatchingLocRem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
ldy #S.SOCKET.PROTO
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
cmp #S.IP.PROTOCOL.UDP
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda hFrameIn
|
||||||
|
jsr SKT.AddToQueueA
|
||||||
|
bcs .9 Q full, discard...
|
||||||
|
rts
|
||||||
|
|
||||||
.3 cmp #S.IP.PROTOCOL.TCP
|
.3 cmp #S.IP.PROTOCOL.TCP
|
||||||
bne .9
|
bne .9
|
||||||
|
|
|
@ -111,8 +111,7 @@ SKT.bind >SYSCALL2 GetMemPtr
|
||||||
jsr SKT.PullLocAddr
|
jsr SKT.PullLocAddr
|
||||||
|
|
||||||
lda SKT.LOC.ADDR+S.SOCKADDR.PORT
|
lda SKT.LOC.ADDR+S.SOCKADDR.PORT
|
||||||
bne .1
|
ora SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
||||||
ldx SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr GetDynPort
|
jsr GetDynPort
|
||||||
|
@ -302,8 +301,9 @@ SKT.shutdown pha
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
cmp #S.SOCKET.T.STREAM
|
||||||
jmp (J.SKT.shutdown,x)
|
beq SKT.shutdown.STREAM
|
||||||
|
*--------------------------------------
|
||||||
SKT.shutdown.LISTEN
|
SKT.shutdown.LISTEN
|
||||||
SKT.shutdown.RAW
|
SKT.shutdown.RAW
|
||||||
SKT.shutdown.DGRAM
|
SKT.shutdown.DGRAM
|
||||||
|
@ -347,8 +347,9 @@ SKT.shutdown.SEQPACKET
|
||||||
|
|
||||||
.5 stz SKT.TABLE,x
|
.5 stz SKT.TABLE,x
|
||||||
>SYSCALL2 freemem
|
>SYSCALL2 freemem
|
||||||
clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
SKT.shutdown.STREAM
|
SKT.shutdown.STREAM
|
||||||
pla
|
pla
|
||||||
jsr SKT.GetTCB
|
jsr SKT.GetTCB
|
||||||
|
@ -365,15 +366,17 @@ SKT.shutdown.STREAM
|
||||||
lda #S.SOCKET.TCP.S.FINWT1
|
lda #S.SOCKET.TCP.S.FINWT1
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.1 cmp #S.SOCKET.TCP.S.TIMEWT
|
.1 bcs .8 Already Closing
|
||||||
beq .8
|
* cmp #S.SOCKET.TCP.S.TIMEWT
|
||||||
|
* beq .8
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.RST+S.TCP.OPTIONS.ACK
|
lda #S.TCP.OPTIONS.RST
|
||||||
jsr TCP.OUT.SendOptA Send RST/ACK
|
jsr TCP.OUT.SendOptA Send RST
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -429,17 +432,11 @@ SKT.GetDataFromSktIn
|
||||||
ldy #S.SOCKET.SQ.hInMem
|
ldy #S.SOCKET.SQ.hInMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
sty ZPTmpPtr1
|
||||||
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
* clc
|
* clc
|
||||||
adc SKT.Cache+S.SOCKET.TCP.INTAIL
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
|
|
||||||
pla
|
|
||||||
adc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
adc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
||||||
sta ZPTmpPtr2+1
|
sta ZPTmpPtr1+1
|
||||||
|
|
||||||
lda ZPDataInLen
|
lda ZPDataInLen
|
||||||
eor #$FF
|
eor #$FF
|
||||||
|
@ -449,7 +446,7 @@ SKT.GetDataFromSktIn
|
||||||
eor #$FF
|
eor #$FF
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #0
|
ldy SKT.Cache+S.SOCKET.TCP.INTAIL
|
||||||
|
|
||||||
.1 inx Check if room left in dest buffer
|
.1 inx Check if room left in dest buffer
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -459,33 +456,30 @@ SKT.GetDataFromSktIn
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (ZPTmpPtr2)
|
.2 lda (ZPTmpPtr1),y
|
||||||
sta (ZPDataInPtr),y
|
sta (ZPDataInPtr)
|
||||||
iny
|
inc ZPDataInPtr
|
||||||
bne .3
|
bne .3
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.3 inc SKT.Cache+S.SOCKET.TCP.INTAIL
|
.3 iny
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
|
inc ZPTmpPtr1+1
|
||||||
|
|
||||||
inc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
inc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
||||||
lda SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
lda SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
||||||
cmp /K.TCP.WSIZE
|
cmp /K.TCP.WSIZE
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
stz SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
stz SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
||||||
lda ZPTmpPtr1
|
lda ZPTmpPtr1
|
||||||
sta ZPTmpPtr2
|
|
||||||
lda ZPTmpPtr1+1
|
|
||||||
sta ZPTmpPtr2+1
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.4 inc ZPTmpPtr2
|
|
||||||
bne .1
|
|
||||||
inc ZPTmpPtr2+1
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 >ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPDataInLen
|
.8 sty SKT.Cache+S.SOCKET.TCP.INTAIL
|
||||||
|
|
||||||
|
>ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPDataInLen
|
||||||
>SBC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPDataInLen
|
>SBC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPDataInLen
|
||||||
|
|
||||||
jsr SKT.StoreTCB
|
jsr SKT.StoreTCB
|
||||||
|
@ -501,17 +495,6 @@ SKT.GetDataFromSktIn
|
||||||
* Dst : hInMem/INHEAD
|
* Dst : hInMem/INHEAD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.AddDataToSktIn
|
SKT.AddDataToSktIn
|
||||||
* lda ZPDataInLen
|
|
||||||
* cmp #536
|
|
||||||
* bne .10
|
|
||||||
|
|
||||||
* lda ZPDataInLen+1
|
|
||||||
* cmp /536
|
|
||||||
* bne .10
|
|
||||||
|
|
||||||
* >DEBUG
|
|
||||||
|
|
||||||
*.10
|
|
||||||
lda SKT.Cache+S.SOCKET.TCP.INFREE
|
lda SKT.Cache+S.SOCKET.TCP.INFREE
|
||||||
sec
|
sec
|
||||||
sbc ZPDataInLen
|
sbc ZPDataInLen
|
||||||
|
@ -526,17 +509,11 @@ SKT.AddDataToSktIn
|
||||||
ldy #S.SOCKET.SQ.hInMem
|
ldy #S.SOCKET.SQ.hInMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
sty ZPTmpPtr1
|
||||||
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
* clc
|
* clc
|
||||||
adc SKT.Cache+S.SOCKET.TCP.INHEAD
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
|
|
||||||
pla
|
|
||||||
adc SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
adc SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
||||||
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
|
sta ZPTmpPtr1+1
|
||||||
|
|
||||||
lda ZPDataInLen
|
lda ZPDataInLen
|
||||||
eor #$FF
|
eor #$FF
|
||||||
|
@ -546,46 +523,58 @@ SKT.AddDataToSktIn
|
||||||
eor #$FF
|
eor #$FF
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #0
|
ldy SKT.Cache+S.SOCKET.TCP.INHEAD
|
||||||
|
|
||||||
.1 inx
|
.1 .DO AUXPIPE=1
|
||||||
bne .2
|
sta SETWRITEAUX
|
||||||
|
.FIN
|
||||||
|
|
||||||
|
.2 inx
|
||||||
|
bne .3
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (ZPDataInPtr),y
|
.3 lda (ZPDataInPtr)
|
||||||
sta (ZPTmpPtr2)
|
sta (ZPTmpPtr1),y
|
||||||
iny
|
inc ZPDataInPtr
|
||||||
bne .3
|
bne .4
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.3 inc SKT.Cache+S.SOCKET.TCP.INHEAD
|
.4 iny
|
||||||
bne .4
|
bne .2
|
||||||
|
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
.FIN
|
||||||
|
|
||||||
|
inc ZPTmpPtr1+1
|
||||||
|
|
||||||
inc SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
inc SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
||||||
lda SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
lda SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
||||||
cmp /K.TCP.WSIZE
|
cmp /K.TCP.WSIZE
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
stz SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
stz SKT.Cache+S.SOCKET.TCP.INHEAD+1
|
||||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
sta ZPTmpPtr2+1
|
* sec
|
||||||
bra .1
|
sbc /K.TCP.WSIZE
|
||||||
|
sta ZPTmpPtr1+1
|
||||||
.4 inc ZPTmpPtr2
|
|
||||||
bne .1
|
|
||||||
inc ZPTmpPtr2+1
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 >ADC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPDataInLen
|
.8 .DO AUXPIPE=1
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
.FIN
|
||||||
|
|
||||||
|
sty SKT.Cache+S.SOCKET.TCP.INHEAD
|
||||||
|
|
||||||
|
>ADC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPDataInLen
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -628,17 +617,14 @@ SKT.AddDataToSktOut
|
||||||
ldy #S.SOCKET.SQ.hOutMem
|
ldy #S.SOCKET.SQ.hOutMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
sty ZPTmpPtr1
|
||||||
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
* clc
|
* clc
|
||||||
adc SKT.Cache+S.SOCKET.TCP.OUTHEAD
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
|
|
||||||
pla
|
|
||||||
adc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
adc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
||||||
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
|
sta ZPTmpPtr1+1
|
||||||
|
|
||||||
|
ldy SKT.Cache+S.SOCKET.TCP.OUTHEAD
|
||||||
|
|
||||||
lda ZPDataInLen
|
lda ZPDataInLen
|
||||||
eor #$FF
|
eor #$FF
|
||||||
|
@ -647,44 +633,55 @@ SKT.AddDataToSktOut
|
||||||
lda ZPDataInLen+1
|
lda ZPDataInLen+1
|
||||||
eor #$FF
|
eor #$FF
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
.1 .DO AUXPIPE=1
|
||||||
|
sta SETWRITEAUX
|
||||||
|
.FIN
|
||||||
|
|
||||||
ldy #0
|
.2 inx
|
||||||
|
bne .3
|
||||||
.1 inx
|
|
||||||
bne .2
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (ZPDataInPtr),y
|
.3 lda (ZPDataInPtr)
|
||||||
sta (ZPTmpPtr2)
|
sta (ZPTmpPtr1),y
|
||||||
iny
|
|
||||||
bne .3
|
inc ZPDataInPtr
|
||||||
|
bne .4
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.3 inc SKT.Cache+S.SOCKET.TCP.OUTHEAD
|
.4 iny
|
||||||
bne .4
|
bne .2
|
||||||
|
|
||||||
|
inc ZPTmpPtr1+1
|
||||||
|
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
.FIN
|
||||||
|
|
||||||
inc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
inc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
||||||
lda SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
lda SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
||||||
cmp /K.TCP.WSIZE
|
cmp /K.TCP.WSIZE
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
stz SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
stz SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
|
||||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
sta ZPTmpPtr2+1
|
* sec
|
||||||
|
sbc /K.TCP.WSIZE
|
||||||
|
sta ZPTmpPtr1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 inc ZPTmpPtr2
|
.8 .DO AUXPIPE=1
|
||||||
bne .1
|
sta CLRWRITEAUX
|
||||||
inc ZPTmpPtr2+1
|
.FIN
|
||||||
bra .1
|
|
||||||
|
sty SKT.Cache+S.SOCKET.TCP.OUTHEAD
|
||||||
|
|
||||||
.8 >SBC16 SKT.Cache+S.SOCKET.TCP.OUTFREE,ZPDataInLen
|
>SBC16 SKT.Cache+S.SOCKET.TCP.OUTFREE,ZPDataInLen
|
||||||
>ADC16 SKT.Cache+S.SOCKET.TCP.OUTUSED,ZPDataInLen
|
>ADC16 SKT.Cache+S.SOCKET.TCP.OUTUSED,ZPDataInLen
|
||||||
>ADC16 SKT.Cache+S.SOCKET.TCP.OUTTOSEND,ZPDataInLen
|
>ADC16 SKT.Cache+S.SOCKET.TCP.OUTTOSEND,ZPDataInLen
|
||||||
jsr SKT.StoreTCB
|
jsr SKT.StoreTCB
|
||||||
|
@ -702,18 +699,12 @@ SKT.GetDataFromSktOut
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
sty ZPTmpPtr1
|
||||||
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
* clc
|
* clc
|
||||||
adc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT
|
|
||||||
sta ZPTmpPtr2 Make ZPTmpPtr2=base+nexttail
|
|
||||||
|
|
||||||
pla
|
|
||||||
adc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
adc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
sta ZPTmpPtr2+1
|
sta ZPTmpPtr1+1
|
||||||
|
|
||||||
lda ZPDataOutLen
|
lda ZPDataOutLen
|
||||||
eor #$FF
|
eor #$FF
|
||||||
tax
|
tax
|
||||||
|
@ -722,7 +713,7 @@ SKT.GetDataFromSktOut
|
||||||
eor #$FF
|
eor #$FF
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #0
|
ldy SKT.Cache+S.SOCKET.TCP.OUTTAILSENT
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -732,33 +723,33 @@ SKT.GetDataFromSktOut
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (ZPTmpPtr2)
|
.2 lda (ZPTmpPtr1),y
|
||||||
sta (ZPDataOutPtr),y
|
sta (ZPDataOutPtr)
|
||||||
iny
|
inc ZPDataOutPtr
|
||||||
bne .3
|
bne .3
|
||||||
inc ZPDataOutPtr+1
|
inc ZPDataOutPtr+1
|
||||||
|
|
||||||
.3 inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT
|
.3 iny
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
|
inc ZPTmpPtr1+1
|
||||||
|
|
||||||
inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
cmp /K.TCP.WSIZE
|
cmp /K.TCP.WSIZE
|
||||||
bne .4
|
bne .1
|
||||||
|
|
||||||
stz SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
stz SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
lda ZPTmpPtr1 Dst Ptr=Buffer Base
|
|
||||||
sta ZPTmpPtr2
|
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
sta ZPTmpPtr2+1
|
* sec
|
||||||
|
sbc /K.TCP.WSIZE
|
||||||
|
sta ZPTmpPtr1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 inc ZPTmpPtr2
|
.8 sty SKT.Cache+S.SOCKET.TCP.OUTTAILSENT
|
||||||
bne .1
|
|
||||||
inc ZPTmpPtr2+1
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.8 >SBC16 SKT.Cache+S.SOCKET.TCP.OUTTOSEND,ZPDataOutLen
|
>SBC16 SKT.Cache+S.SOCKET.TCP.OUTTOSEND,ZPDataOutLen
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -986,11 +977,11 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #$ff no DATA, EOF = true
|
lda #$ff no DATA, EOF = true
|
||||||
clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 lda #0 ...EOF = false
|
.8 lda #0 ...EOF = false
|
||||||
clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.CheckStream ldy #S.SOCKET.T
|
SKT.CheckStream ldy #S.SOCKET.T
|
||||||
|
@ -1197,7 +1188,11 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INTAIL
|
||||||
|
|
||||||
>LDYAI K.TCP.WSIZE
|
>LDYAI K.TCP.WSIZE
|
||||||
>STYA SKT.Cache+S.SOCKET.TCP.INFREE
|
>STYA SKT.Cache+S.SOCKET.TCP.INFREE
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
>SYSCALL2 NewStkObj
|
||||||
|
.ELSE
|
||||||
>SYSCALL2 getmem
|
>SYSCALL2 getmem
|
||||||
|
.FIN
|
||||||
bcs .9
|
bcs .9
|
||||||
txa
|
txa
|
||||||
ldy #S.SOCKET.SQ.hInMem
|
ldy #S.SOCKET.SQ.hInMem
|
||||||
|
@ -1205,7 +1200,11 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INTAIL
|
||||||
|
|
||||||
>LDYAI K.TCP.WSIZE
|
>LDYAI K.TCP.WSIZE
|
||||||
>STYA SKT.Cache+S.SOCKET.TCP.OUTFREE
|
>STYA SKT.Cache+S.SOCKET.TCP.OUTFREE
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
>SYSCALL2 NewStkObj
|
||||||
|
.ELSE
|
||||||
>SYSCALL2 getmem
|
>SYSCALL2 getmem
|
||||||
|
.FIN
|
||||||
bcs .9
|
bcs .9
|
||||||
txa
|
txa
|
||||||
ldy #S.SOCKET.SQ.hOutMem
|
ldy #S.SOCKET.SQ.hOutMem
|
||||||
|
|
|
@ -254,21 +254,9 @@ TCP.IN.JMP.ESTBLSH
|
||||||
|
|
||||||
.8 jsr TCP.OUT Send ACK as soon as possible
|
.8 jsr TCP.OUT Send ACK as soon as possible
|
||||||
|
|
||||||
.9 clc
|
.9
|
||||||
rts
|
* clc
|
||||||
*--------------------------------------
|
* rts
|
||||||
.DO IPDEBUG=1
|
|
||||||
DEBUG.IPID ldy #S.IP.IDENTIFICATION
|
|
||||||
lda (ZPFrameInPtr),y
|
|
||||||
>PUSHA
|
|
||||||
iny
|
|
||||||
lda (ZPFrameInPtr),y
|
|
||||||
>PUSHA
|
|
||||||
>PUSHBI 2
|
|
||||||
>LDYA L.IPID
|
|
||||||
>SYSCALL printf
|
|
||||||
rts
|
|
||||||
.FIN
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.CLWAIT
|
TCP.IN.JMP.CLWAIT
|
||||||
clc Wait for SKT.shutdown
|
clc Wait for SKT.shutdown
|
||||||
|
@ -344,8 +332,9 @@ TCP.IN.JMP.CLOSING
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
.1 clc
|
.1
|
||||||
rts
|
* clc
|
||||||
|
* rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.TIMEWT
|
TCP.IN.JMP.TIMEWT
|
||||||
clc Wait for TCP.Close
|
clc Wait for TCP.Close
|
||||||
|
@ -462,12 +451,21 @@ TCP.SENDCLOSE ldx #0
|
||||||
.4 ldy #S.SOCKET.SQ.hInMem
|
.4 ldy #S.SOCKET.SQ.hInMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
beq .5
|
beq .5
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
>SYSCALL2 FreeStkObj
|
||||||
|
.ELSE
|
||||||
>SYSCALL2 freemem
|
>SYSCALL2 freemem
|
||||||
|
.FIN
|
||||||
|
|
||||||
.5 ldy #S.SOCKET.SQ.hOutMem
|
.5 ldy #S.SOCKET.SQ.hOutMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
|
.DO AUXPIPE=1
|
||||||
|
>SYSCALL2 FreeStkObj
|
||||||
|
.ELSE
|
||||||
>SYSCALL2 freemem
|
>SYSCALL2 freemem
|
||||||
|
.FIN
|
||||||
|
|
||||||
.6 plx
|
.6 plx
|
||||||
phx
|
phx
|
||||||
|
@ -617,6 +615,19 @@ TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
.DO IPDEBUG=1
|
||||||
|
DEBUG.IPID ldy #S.IP.IDENTIFICATION
|
||||||
|
lda (ZPFrameInPtr),y
|
||||||
|
>PUSHA
|
||||||
|
iny
|
||||||
|
lda (ZPFrameInPtr),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 2
|
||||||
|
>LDYA L.MSG.IPID
|
||||||
|
>SYSCALL printf
|
||||||
|
rts
|
||||||
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBTCPIP.S.TCP
|
SAVE USR/SRC/LIB/LIBTCPIP.S.TCP
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
NEW
|
|
||||||
AUTO 3,1
|
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
|
||||||
UDP.IN jsr FRM.GetTargetSKT.TCPUDP
|
|
||||||
|
|
||||||
jsr SKT.FindMatchingLocRem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy #S.SOCKET.PROTO
|
|
||||||
lda (ZPPtrSKT),y
|
|
||||||
cmp #S.IP.PROTOCOL.UDP
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda hFrameIn
|
|
||||||
jsr SKT.AddToQueueA
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
.9 lda hFrameIn Q full, discard...
|
|
||||||
>SYSCALL2 FreeMem
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE USR/SRC/LIB/LIBTCPIP.S.UDP
|
|
||||||
LOAD USR/SRC/LIB/LIBTCPIP.S
|
|
||||||
ASM
|
|
|
@ -5,7 +5,7 @@ NEW
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF LIB/LIBTCPIP
|
.TF LIB/LIBTCPIP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
AUXPIPE .EQ 1
|
AUXPIPE .EQ 0
|
||||||
IPDEBUG .EQ 0
|
IPDEBUG .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA ADC16
|
.MA ADC16
|
||||||
|
@ -56,10 +56,11 @@ ZPPtrSKT .EQ ZPLIB+22
|
||||||
|
|
||||||
ZPCachePtr .EQ ZPLIB+24
|
ZPCachePtr .EQ ZPLIB+24
|
||||||
ZPTmpPtr1 .EQ ZPLIB+26
|
ZPTmpPtr1 .EQ ZPLIB+26
|
||||||
ZPTmpPtr2 .EQ ZPLIB+28
|
|
||||||
TmpDWord .EQ ZPLIB+28
|
|
||||||
IP.CHECKSUM .EQ ZPLIB+28
|
IP.CHECKSUM .EQ ZPLIB+28
|
||||||
IP.CHECKSUM.TMP .EQ ZPLIB+30
|
IP.CHECKSUM.TMP .EQ ZPLIB+30
|
||||||
|
|
||||||
|
TmpDWord .EQ ZPLIB+28
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -150,16 +151,12 @@ J.SKT.connect .DA SKT.connect.RAW
|
||||||
.DA SKT.connect.DGRAM
|
.DA SKT.connect.DGRAM
|
||||||
.DA SKT.connect.SEQPACKET
|
.DA SKT.connect.SEQPACKET
|
||||||
.DA SKT.connect.STREAM
|
.DA SKT.connect.STREAM
|
||||||
J.SKT.shutdown .DA SKT.shutdown.RAW
|
|
||||||
.DA SKT.shutdown.DGRAM
|
|
||||||
.DA SKT.shutdown.SEQPACKET
|
|
||||||
.DA SKT.shutdown.STREAM
|
|
||||||
J.SKT.send .DA SKT.send.RAW
|
J.SKT.send .DA SKT.send.RAW
|
||||||
.DA SKT.send.DGRAM
|
.DA SKT.send.DGRAM
|
||||||
.DA SKT.send.SEQPACKET
|
.DA SKT.send.SEQPACKET
|
||||||
.DA SKT.send.STREAM
|
.DA SKT.send.STREAM
|
||||||
L.IPID .DA IPID
|
|
||||||
.DO IPDEBUG=1
|
.DO IPDEBUG=1
|
||||||
|
L.MSG.IPID .DA MSG.IPID
|
||||||
L.MSG.FRM.Dump .DA MSG.FRM.Dump
|
L.MSG.FRM.Dump .DA MSG.FRM.Dump
|
||||||
L.MSG.SKT.Dump .DA MSG.SKT.Dump
|
L.MSG.SKT.Dump .DA MSG.SKT.Dump
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -358,7 +355,6 @@ SKT.Dump ldy #S.SOCKET.REM.PORT+1
|
||||||
.INB USR/SRC/LIB/LIBTCPIP.S.IP
|
.INB USR/SRC/LIB/LIBTCPIP.S.IP
|
||||||
.INB USR/SRC/LIB/LIBTCPIP.S.SKT
|
.INB USR/SRC/LIB/LIBTCPIP.S.SKT
|
||||||
.INB USR/SRC/LIB/LIBTCPIP.S.TCP
|
.INB USR/SRC/LIB/LIBTCPIP.S.TCP
|
||||||
.INB USR/SRC/LIB/LIBTCPIP.S.UDP
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -465,8 +461,8 @@ hFrameIn .BS 1
|
||||||
hFrameOut .BS 1
|
hFrameOut .BS 1
|
||||||
HST.SScanF .AZ "%d.%d.%d.%d"
|
HST.SScanF .AZ "%d.%d.%d.%d"
|
||||||
IP.ID .BS 2
|
IP.ID .BS 2
|
||||||
IPID .AZ "IPID:%H\r\n"
|
|
||||||
.DO IPDEBUG=1
|
.DO IPDEBUG=1
|
||||||
|
MSG.IPID .AZ "IPID:%H\r\n"
|
||||||
MSG.FRM.Dump .AZ "FRM:SRC=%d.%d.%d.%d:%D DST=%d.%d.%d.%d:%D\r\n"
|
MSG.FRM.Dump .AZ "FRM:SRC=%d.%d.%d.%d:%D DST=%d.%d.%d.%d:%D\r\n"
|
||||||
MSG.SKT.Dump .AZ "SKT:LOC=%d.%d.%d.%d:%D REM=%d.%d.%d.%d:%D\r\n"
|
MSG.SKT.Dump .AZ "SKT:LOC=%d.%d.%d.%d:%D REM=%d.%d.%d.%d:%D\r\n"
|
||||||
.FIN
|
.FIN
|
||||||
|
|
Loading…
Reference in New Issue
Block a user