mirror of
https://github.com/A2osX/A2osX.git
synced 2026-04-20 21:16:51 +00:00
networking: AF_INET partially working
This commit is contained in:
Binary file not shown.
Binary file not shown.
+24
-26
@@ -14,8 +14,6 @@ NEW
|
||||
.INB inc/zp.i
|
||||
.INB inc/gfx.i
|
||||
*--------------------------------------
|
||||
pRWReg .EQ 0 x.printf.s
|
||||
*--------------------------------------
|
||||
TmpPtr1 .EQ $0 main & aux ZP
|
||||
TmpPtr2 .EQ $2 main & aux ZP
|
||||
*--------------------------------------
|
||||
@@ -152,7 +150,7 @@ A2osX.SetupQC bit IO.RRAMWRAMBNK2
|
||||
bit IO.RRAMWRAMBNK2
|
||||
|
||||
ldx #0
|
||||
|
||||
|
||||
.2 lda A2osX.QC.B.Start,x Still at $2xxx !!! not moved to $1xxx
|
||||
sta $D100,x
|
||||
lda A2osX.QC.B.Start+$100,x
|
||||
@@ -165,7 +163,7 @@ A2osX.SetupQC bit IO.RRAMWRAMBNK2
|
||||
lda MLI.KVER
|
||||
cmp #$8D
|
||||
bne .3
|
||||
|
||||
|
||||
bra A2osX.MLIQuit
|
||||
|
||||
.3 bit IO.RROMBNK1
|
||||
@@ -177,9 +175,9 @@ A2osX.EnumPM >LDYAI MSG.PMENUM do this After SetupQC, a PM could override QC
|
||||
A2osX.MLIQuit >LDYAI MSG.INIT0OK
|
||||
jsr X.PrintF
|
||||
>DEBUGOA
|
||||
|
||||
|
||||
stz $280 Quit to A2osX
|
||||
|
||||
|
||||
jsr MLI
|
||||
.DA #MLI.QUIT
|
||||
.DA MLIQUIT01
|
||||
@@ -209,9 +207,9 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
|
||||
sta MLICLOSE00+1
|
||||
jsr MLI
|
||||
.DA #MLI.READ
|
||||
.DA MLIREAD00
|
||||
.DA MLIREAD00
|
||||
bcs .98
|
||||
|
||||
|
||||
jsr .98
|
||||
bra A2osX.ScreenDLGR
|
||||
|
||||
@@ -232,7 +230,7 @@ A2osX.ScreenDLGR
|
||||
* sta IO.SET80DISP
|
||||
* sta IO.SET80STORE
|
||||
* sta IO.CLRPAGE2
|
||||
|
||||
|
||||
bit IO.RDIOUDIS
|
||||
sta IO.SETIOUDIS
|
||||
sta IO.SETDHIRES
|
||||
@@ -248,16 +246,16 @@ A2osX.ScreenDLGR
|
||||
sta TmpPtr1+1
|
||||
|
||||
ldx #0
|
||||
|
||||
|
||||
.1 phx
|
||||
|
||||
|
||||
lda SCR.BASEL,x
|
||||
sta TmpPtr2
|
||||
lda SCR.BASEH,x
|
||||
sta TmpPtr2+1
|
||||
|
||||
ldy #0
|
||||
|
||||
|
||||
.2 lda (TmpPtr1),y
|
||||
pha
|
||||
|
||||
@@ -295,7 +293,7 @@ A2osX.ScreenDLGR
|
||||
.4 lda (TmpPtr1),y
|
||||
pha
|
||||
and #$f
|
||||
|
||||
|
||||
tax
|
||||
lda PALETTE.AUX,x
|
||||
asl
|
||||
@@ -324,13 +322,13 @@ A2osX.ScreenDLGR
|
||||
iny
|
||||
cpy #40
|
||||
bne .4
|
||||
|
||||
|
||||
lda TmpPtr1
|
||||
clc
|
||||
adc #40
|
||||
sta TmpPtr1
|
||||
bcc .7
|
||||
|
||||
|
||||
inc TmpPtr1+1
|
||||
|
||||
.7 plx
|
||||
@@ -343,7 +341,7 @@ A2osX.ScreenDLGR
|
||||
DisableRamDRV php
|
||||
sei
|
||||
lda MLI.DEVPTRS3D2
|
||||
cmp MLI.DEVPTRS S0D1=NOVEV
|
||||
cmp MLI.DEVPTRS S0D1=NOVEV
|
||||
bne .1
|
||||
|
||||
lda MLI.DEVPTRS3D2+1
|
||||
@@ -415,14 +413,14 @@ EnumPM ldx #0
|
||||
|
||||
sty Sys.Prefix
|
||||
sty PM.Filename
|
||||
|
||||
|
||||
lda #Sys.Prefix
|
||||
pha
|
||||
lda /Sys.Prefix
|
||||
pha
|
||||
>LDYAI MSG.PMSYSDIR
|
||||
jsr X.PrintF
|
||||
|
||||
|
||||
jsr MLI
|
||||
.DA #MLI.SETPREFIX
|
||||
.DA MLISETPREFIX02
|
||||
@@ -432,7 +430,7 @@ EnumPM ldx #0
|
||||
.DA #MLI.OPEN
|
||||
.DA MLIOPEN01
|
||||
bcc .10
|
||||
|
||||
|
||||
.19 pha
|
||||
>LDYAI MSG.PMSYSDIR.KO
|
||||
jsr X.PrintF
|
||||
@@ -486,7 +484,7 @@ EnumPM ldx #0
|
||||
jsr LoadPM
|
||||
|
||||
.5 lda EnumPM.BPTR
|
||||
clc
|
||||
clc
|
||||
adc #EnumPM.EL
|
||||
sta EnumPM.BPTR
|
||||
bcc .6
|
||||
@@ -516,7 +514,7 @@ EnumPM ldx #0
|
||||
jsr MLI
|
||||
.DA #MLI.SETPREFIX
|
||||
.DA MLISETPREFIX01
|
||||
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
EnumPM.EC .BS 1
|
||||
@@ -528,7 +526,7 @@ LoadPM ldy #$1c
|
||||
iny
|
||||
lda (TmpPtr1),y
|
||||
sta LoadPM.MVERSION
|
||||
|
||||
|
||||
ldx Sys.Prefix
|
||||
lda (TmpPtr1)
|
||||
and #$0F
|
||||
@@ -543,7 +541,7 @@ LoadPM ldy #$1c
|
||||
|
||||
cpy #8
|
||||
bcs .3
|
||||
|
||||
|
||||
lda LoadPM.Bits,y
|
||||
bit LoadPM.MVERSION
|
||||
beq .6
|
||||
@@ -552,7 +550,7 @@ LoadPM ldy #$1c
|
||||
.3 lda LoadPM.Bits-8,y
|
||||
bit LoadPM.VERSION
|
||||
beq .6
|
||||
|
||||
|
||||
.4 lda (TmpPtr1),y
|
||||
eor #$20
|
||||
.HS 2C BIT ABS
|
||||
@@ -642,7 +640,7 @@ MLIONLINE01 .DA #2
|
||||
*--------------------------------------
|
||||
MLIOPEN00 .DA #3 For DIR listing
|
||||
.DA Logo.Filename
|
||||
.DA A2osX.OpenBuff1
|
||||
.DA A2osX.OpenBuff1
|
||||
.BS 1
|
||||
MLIREAD00 .DA #4
|
||||
.BS 1
|
||||
@@ -654,7 +652,7 @@ MLICLOSE00 .DA #1
|
||||
*--------------------------------------
|
||||
MLIOPEN01 .DA #3 For DIR listing
|
||||
.DA Sys.Prefix
|
||||
.DA A2osX.OpenBuff1
|
||||
.DA A2osX.OpenBuff1
|
||||
.BS 1
|
||||
MLIREAD01 .DA #4
|
||||
.BS 1
|
||||
|
||||
@@ -7,6 +7,7 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/a2osx.api.i
|
||||
.INB inc/arc.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
|
||||
@@ -7,6 +7,7 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/a2osx.api.i
|
||||
.INB inc/mli.e.i
|
||||
.INB inc/arc.i
|
||||
*--------------------------------------
|
||||
|
||||
+16
-16
@@ -63,8 +63,8 @@ L.MSG1.S .DA MSG1.S.0
|
||||
.DA MSG1.S.10
|
||||
.DA MSG1.S.11
|
||||
.DA MSG1.S.INV
|
||||
L.SPRINTF.IPP .DA SPRINTF.IPP
|
||||
|
||||
L.SPRINTF.IPP .DA SPRINTF.IPP
|
||||
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@@ -76,7 +76,7 @@ CS.RUN >LDYA L.MSG0
|
||||
lda #0
|
||||
|
||||
.1 sta hFD
|
||||
|
||||
|
||||
>KAPI GetFDByID
|
||||
bcs .7
|
||||
|
||||
@@ -95,9 +95,9 @@ CS.RUN >LDYA L.MSG0
|
||||
bne .6
|
||||
|
||||
jsr CS.RUN.ADDR
|
||||
|
||||
|
||||
jsr CS.RUN.Print
|
||||
|
||||
|
||||
.6 >LDYA pFD
|
||||
>LIBC Free
|
||||
|
||||
@@ -165,10 +165,10 @@ CS.RUN.ADDR >SS
|
||||
>PUSHWI S.SA.IN
|
||||
>LIBC GetSockName
|
||||
>SR
|
||||
|
||||
|
||||
>SS
|
||||
>PUSHEA.G LocAddr
|
||||
jsr CS.RUN.PushSA
|
||||
jsr CS.RUN.PushSA
|
||||
>PUSHBI 6
|
||||
>LIBC SPrintF
|
||||
>SR
|
||||
@@ -179,7 +179,7 @@ CS.RUN.ADDR >SS
|
||||
>PUSHWI S.SA.IN
|
||||
>LIBC GetPeerName
|
||||
>SR
|
||||
|
||||
|
||||
>SS
|
||||
>PUSHEA.G RemAddr
|
||||
jsr CS.RUN.PushSA
|
||||
@@ -234,15 +234,15 @@ MSG1.P.INV .AZ "??? "
|
||||
MSG1.S.0 .AZ "*"
|
||||
MSG1.S.1 .AZ "OPENED"
|
||||
MSG1.S.2 .AZ "LISTENING"
|
||||
MSG1.S.3 .AZ "SYN-SENT"
|
||||
MSG1.S.4 .AZ "SYN-RECEIVED"
|
||||
MSG1.S.3 .AZ "SYN_SENT"
|
||||
MSG1.S.4 .AZ "SYN_RECEIVED"
|
||||
MSG1.S.5 .AZ "ESTABLISHED"
|
||||
MSG1.S.6 .AZ "CLOSE-WAIT"
|
||||
MSG1.S.7 .AZ "LAST-ACK"
|
||||
MSG1.S.8 .AZ "FIN-WAIT-1"
|
||||
MSG1.S.9 .AZ "FIN-WAIT-2"
|
||||
MSG1.S.6 .AZ "CLOSE_WAIT"
|
||||
MSG1.S.7 .AZ "LAST_ACK"
|
||||
MSG1.S.8 .AZ "FIN_WAIT1"
|
||||
MSG1.S.9 .AZ "FIN_WAIT2"
|
||||
MSG1.S.10 .AZ "CLOSING"
|
||||
MSG1.S.11 .AZ "TIME-WAIT"
|
||||
MSG1.S.11 .AZ "TIME_WAIT"
|
||||
MSG1.S.INV .AZ "???"
|
||||
SPRINTF.IPP .AZ "%d.%d.%d.%d:%D"
|
||||
OPTIONS .AZ "DARKDBUL"
|
||||
@@ -253,7 +253,7 @@ ID.END .EQ *
|
||||
.OR 0
|
||||
SA .BS S.SA.IN
|
||||
LocAddr .BS 22
|
||||
RemAddr .BS 22
|
||||
RemAddr .BS 22
|
||||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
||||
+7
-6
@@ -7,6 +7,7 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/a2osx.api.i
|
||||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
@@ -59,7 +60,7 @@ CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN inc bNewLine
|
||||
|
||||
|
||||
jsr CS.RUN.ISATTY
|
||||
jsr CS.RUN.CheckArgs
|
||||
bcs CS.RUN.LOOP.RTS
|
||||
@@ -72,7 +73,7 @@ CS.RUN.LOOP >SLEEP
|
||||
|
||||
jsr X.CheckCtrl
|
||||
bcs .9
|
||||
|
||||
|
||||
bvs CS.RUN.LOOP
|
||||
|
||||
>LDYA pFile
|
||||
@@ -135,9 +136,9 @@ CS.RUN.CheckArgs
|
||||
|
||||
jsr X.IsPipeIn
|
||||
bcs .99
|
||||
|
||||
|
||||
bvc .97
|
||||
|
||||
|
||||
>STYA pFile
|
||||
|
||||
.80 >LDYAI 256
|
||||
@@ -200,7 +201,7 @@ CS.RUN.ISATTY ldy #S.PS.pStdOut
|
||||
>LIBC FStat
|
||||
>SR
|
||||
bcs .9
|
||||
|
||||
|
||||
>LDA.G STATBUF+S.STAT.MODE+1
|
||||
and #$F0
|
||||
|
||||
@@ -229,7 +230,7 @@ CS.RUN.PRINTBYTE
|
||||
beq .2
|
||||
|
||||
stz bNewLine
|
||||
|
||||
|
||||
>SS
|
||||
>PUSHW L.MSG.LINENUM
|
||||
>PUSHW LineCount
|
||||
|
||||
@@ -7,6 +7,7 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/a2osx.api.i
|
||||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
|
||||
+2
-1
@@ -7,6 +7,7 @@ NEW
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/a2osx.api.i
|
||||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
@@ -134,7 +135,7 @@ CS.RUN.CheckArgs
|
||||
|
||||
jsr X.IsPipeIn
|
||||
bcs .9
|
||||
|
||||
|
||||
bvc .97
|
||||
|
||||
>STYA pFile
|
||||
|
||||
+2
-1
@@ -3,6 +3,7 @@ NEW
|
||||
# HTTPD configuration file
|
||||
ServerName www.example.com:6580
|
||||
Listen 6580
|
||||
DocumentRoot ${ROOT}srv/www
|
||||
DocumentRoot /srv/www
|
||||
MAN
|
||||
TEXT etc/httpd.conf
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
|
||||
*** ISSUE ***
|
||||
|
||||
Greetings, ${GECOS}.
|
||||
|
||||
UID = $UID
|
||||
GID = $GID
|
||||
LOGNAME = $LOGNAME
|
||||
HOME = $HOME
|
||||
SHELL = $SHELL
|
||||
TERM = $TERM
|
||||
MAN
|
||||
TEXT etc/issue
|
||||
@@ -0,0 +1,8 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
|
||||
*** MOTD ***
|
||||
|
||||
!!! Welcome to A2osX ==== 1.00 PREVIEW ==== !!!
|
||||
MAN
|
||||
TEXT etc/motd
|
||||
@@ -0,0 +1,9 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
|
||||
*** A2osX-Login: NOAUTH ***
|
||||
|
||||
No ETC/PASSWD file present, Logged as ROOT.
|
||||
Consider adding ROOT user with USERADD command.
|
||||
MAN
|
||||
TEXT etc/noauth
|
||||
@@ -1,11 +0,0 @@
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
address 192.168.1.150
|
||||
netmask 255.255.255.0
|
||||
gateway 192.168.1.254
|
||||
nameserver 192.168.1.2
|
||||
nameserver 192.168.1.254
|
||||
dnsdomain coincoin.hd.free.fr
|
||||
MAN
|
||||
TEXT ETC/TCPIP.CONF
|
||||
+40
-40
@@ -183,50 +183,50 @@ S.SKT.IN.O.DONTROUTE .EQ $10
|
||||
S.SKT.IN.O.BROADCAST .EQ $20
|
||||
S.SKT.IN.O.USELOOPBACK .EQ $40
|
||||
S.SKT.IN.O.LINGER .EQ $80
|
||||
|
||||
* TODO : TCP_NODELAY
|
||||
*--------------------------------------
|
||||
* TODO: S.SKT.IN.P .EQ S.FD+0
|
||||
* TODO : S.SKT.IN.O.TCP_NODELAY
|
||||
*--------------------------------------
|
||||
S.SKT.IN.LOC.ADDR .EQ S.FD+0
|
||||
S.SKT.IN.LOC.PORT .EQ S.FD+4
|
||||
S.SKT.IN.REM.ADDR .EQ S.FD+6
|
||||
S.SKT.IN.REM.PORT .EQ S.FD+10
|
||||
*--------------------------------------
|
||||
S.SKT.IN.BNK .EQ S.FD+12
|
||||
S.SKT.IN.QTAIL .EQ S.FD+13
|
||||
S.SKT.IN.QHEAD .EQ S.FD+14
|
||||
S.SKT.IN.QBASE .EQ S.FD+36
|
||||
S.SKT.IN.QTOP .EQ S.FD+64 ->S.SKT.IN
|
||||
*--------------------------------------
|
||||
* TODO: S.SKT.IN.P .EQ S.FD+15
|
||||
* for proper RAW / ICMP ping support
|
||||
*--------------------------------------
|
||||
S.SKT.IN.BNK .EQ S.FD+2
|
||||
|
||||
S.SKT.IN.TCPOPT .EQ S.FD+3
|
||||
|
||||
S.SKT.IN.LOC.ADDR .EQ S.FD+4
|
||||
S.SKT.IN.LOC.PORT .EQ S.FD+8
|
||||
|
||||
S.SKT.IN.REM.ADDR .EQ S.FD+10
|
||||
S.SKT.IN.REM.PORT .EQ S.FD+14
|
||||
|
||||
S.SKT.IN.INSEQNUM .EQ S.FD+16
|
||||
S.SKT.IN.INACKNUM .EQ S.FD+20
|
||||
S.SKT.IN.OUTNEXTSEQ .EQ S.FD+24
|
||||
S.SKT.IN.OUTSENTSEQ .EQ S.FD+28
|
||||
*--------------------------------------
|
||||
S.SKT.IN.QTAIL .EQ S.FD+32
|
||||
S.SKT.IN.QHEAD .EQ S.FD+33
|
||||
S.SKT.IN.Q .EQ S.FD+34 -> S.SKT.IN
|
||||
*--------------------------------------
|
||||
S.SKT.IN.INTAIL .EQ S.FD+32
|
||||
S.SKT.IN.INHEAD .EQ S.FD+34
|
||||
S.SKT.IN.INFREE .EQ S.FD+36
|
||||
S.SKT.IN.INUSED .EQ S.FD+38
|
||||
|
||||
S.SKT.IN.OUTTOSEND .EQ S.FD+40
|
||||
S.SKT.IN.OUTTAILSENT .EQ S.FD+42
|
||||
|
||||
S.SKT.IN.OUTTAIL .EQ S.FD+44
|
||||
S.SKT.IN.OUTHEAD .EQ S.FD+46
|
||||
S.SKT.IN.OUTFREE .EQ S.FD+48
|
||||
S.SKT.IN.OUTUSED .EQ S.FD+50
|
||||
|
||||
S.SKT.IN.pOUTH .EQ S.FD+52
|
||||
S.SKT.IN.pOUT .EQ S.FD+54
|
||||
S.SKT.IN.pINH .EQ S.FD+56
|
||||
S.SKT.IN.pIN .EQ S.FD+58
|
||||
*
|
||||
S.SKT.IN.TCPOPT .EQ S.FD+16 IPPROTO_TCP
|
||||
*
|
||||
S.SKT.IN.WSIZE .EQ S.FD+18
|
||||
*--------------------------------------
|
||||
S.SKT.IN.INSEQNUM .EQ S.FD+20 SOCK_SEQPACKET,SOCK_STREAM
|
||||
S.SKT.IN.INACKNUM .EQ S.FD+24
|
||||
S.SKT.IN.OUTNEXTSEQ .EQ S.FD+28
|
||||
S.SKT.IN.OUTSENTSEQ .EQ S.FD+32
|
||||
*--------------------------------------
|
||||
S.SKT.IN.pIN .EQ S.FD+36 SOCK_STREAM
|
||||
S.SKT.IN.pINTAIL .EQ S.FD+38
|
||||
S.SKT.IN.pINHEAD .EQ S.FD+40
|
||||
S.SKT.IN.pINH .EQ S.FD+42
|
||||
|
||||
S.SKT.IN.INFREE .EQ S.FD+44
|
||||
S.SKT.IN.INUSED .EQ S.FD+46
|
||||
|
||||
S.SKT.IN.pOUT .EQ S.FD+48
|
||||
S.SKT.IN.pOUTTAIL .EQ S.FD+50
|
||||
S.SKT.IN.pOUTHEAD .EQ S.FD+52
|
||||
S.SKT.IN.pOUTH .EQ S.FD+54
|
||||
|
||||
S.SKT.IN.OUTFREE .EQ S.FD+56
|
||||
S.SKT.IN.OUTUSED .EQ S.FD+58
|
||||
|
||||
S.SKT.IN.pOUTTOSEND .EQ S.FD+60
|
||||
S.SKT.IN.OUTTOSEND .EQ S.FD+62
|
||||
*
|
||||
S.SKT.IN .EQ S.FD+64
|
||||
*--------------------------------------
|
||||
|
||||
+2
-1
@@ -247,7 +247,7 @@ CS.RUN.IAC.CMD cmp #WILL
|
||||
>SS
|
||||
ldy #S.PS.pStdOut
|
||||
jsr CS.RUN.GetPSyW
|
||||
>PUSHA
|
||||
>PUSHYA
|
||||
>PUSHW L.TELNETOPT.LMODE
|
||||
>PUSHWI TELNETOPT.LMODE.LEN
|
||||
|
||||
@@ -299,6 +299,7 @@ CS.RUN.IAC.SB >LIBC GetChar Wait for IAC SB.IS or SEND
|
||||
>PUSHWZ
|
||||
>LIBC SetEnv
|
||||
>SR
|
||||
|
||||
.8 jmp CS.RUN.LOOP1
|
||||
|
||||
.9 rts
|
||||
|
||||
+299
-303
File diff suppressed because it is too large
Load Diff
+3
-1
@@ -1,9 +1,11 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
X.VT.Init >PUSHW L.X.VT.SeqInit
|
||||
X.VT.Init >SS
|
||||
>PUSHW L.X.VT.SeqInit
|
||||
>PUSHBI 0
|
||||
>LIBC PrintF Send Query for term W & H
|
||||
>SR
|
||||
bcs .9
|
||||
|
||||
.1 jsr X.VT.GetCh
|
||||
|
||||
+9
-11
@@ -315,31 +315,29 @@ CORE.Dispatch sta CORE.Sigs
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 ldy A2osX.pAFs+1,x
|
||||
beq .2
|
||||
.1 lda A2osX.pAFs+1,x
|
||||
beq .5
|
||||
|
||||
sty .10+2
|
||||
ldy A2osX.pAFs,x
|
||||
sty .10+1
|
||||
>STYA .2+1
|
||||
|
||||
phx
|
||||
|
||||
lda CORE.Sigs
|
||||
ldx #32
|
||||
|
||||
.10 jsr $FFFF SELF MODIFIED
|
||||
.2 jsr $FFFF SELF MODIFIED
|
||||
|
||||
plx
|
||||
|
||||
lda CORE.Sigs
|
||||
|
||||
.2 inx
|
||||
.5 inx
|
||||
inx
|
||||
cpx #8 LOCAL,INET,APPLETALK...
|
||||
bcc .1
|
||||
|
||||
*--------------------------------------
|
||||
ldx #2 skip PS0
|
||||
|
||||
.3 stx CORE.PSIndex
|
||||
.6 stx CORE.PSIndex
|
||||
|
||||
lda pPSs+1,x
|
||||
beq .7
|
||||
@@ -375,7 +373,7 @@ CORE.Dispatch sta CORE.Sigs
|
||||
.7 inx
|
||||
inx
|
||||
cpx #K.PS.MAX*2
|
||||
bcc .3
|
||||
bcc .6
|
||||
|
||||
* sec
|
||||
|
||||
|
||||
+1
-1
@@ -371,7 +371,7 @@ LC.Check tax %11000000 or %00111000
|
||||
rts
|
||||
|
||||
.9 lda #E.INVH
|
||||
* >DEBUG
|
||||
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
||||
@@ -523,7 +523,7 @@ FS.PTime2StatYAX
|
||||
stx FORPNT
|
||||
lda /K.S.STAT
|
||||
sta FORPNT+1
|
||||
* >DEBUG
|
||||
|
||||
ldx #X_PT2ST
|
||||
jsr RAMSW.JMPX
|
||||
bcs .9
|
||||
|
||||
@@ -842,12 +842,12 @@ K.Rename jsr PFT.GetPath0 newpath
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 ldx #$ff
|
||||
.1 ldx K.MLI.P1
|
||||
|
||||
.3 inx
|
||||
lda K.MLI.P1,x
|
||||
.3 lda K.MLI.P1,x
|
||||
sta K.MLI.P2,x
|
||||
bne .3
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
jsr PFT.GetPath2 oldpath
|
||||
bcs .9
|
||||
@@ -1183,7 +1183,7 @@ PrintF.F clc
|
||||
* sec
|
||||
adc pStack
|
||||
ldy pStack+1 A,Y = float
|
||||
* >DEBUG
|
||||
|
||||
jsr RAMSW.AY2FAC
|
||||
|
||||
bit IO.RROMWRAMBNK2
|
||||
|
||||
@@ -363,7 +363,7 @@ ARP.GetFreeCache
|
||||
rts
|
||||
*--------------------------------------
|
||||
ARP.Expire ldx #0
|
||||
rts
|
||||
|
||||
.1 lda ARP.CACHE+S.ARPCACHE.S,x
|
||||
beq .7
|
||||
|
||||
|
||||
+330
-155
@@ -8,6 +8,10 @@ Socket jsr SKT.New
|
||||
|
||||
>STYA pSKT
|
||||
|
||||
lda A2osX.ActBnk
|
||||
ldy #S.SKT.IN.BNK
|
||||
sta (pSKT),y
|
||||
|
||||
ldy #2 socket_type
|
||||
jsr K.GetStkYW
|
||||
|
||||
@@ -33,7 +37,17 @@ Socket_DGRAM lda #S.FD.T.DSOCK
|
||||
sta (pSKT) #S.FD.T
|
||||
|
||||
lda #S.IP.PROTOCOL.UDP
|
||||
bra Socket_Q
|
||||
|
||||
Socket_Q ldy #S.FD.SOCK.P
|
||||
sta (pSKT),y
|
||||
|
||||
jsr SKT.InitQ
|
||||
|
||||
ldy hSKT
|
||||
lda #0
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Socket_SEQPACKET
|
||||
lda #S.FD.T.DSOCK
|
||||
@@ -41,14 +55,7 @@ Socket_SEQPACKET
|
||||
|
||||
lda #S.IP.PROTOCOL.TCP
|
||||
|
||||
Socket_Q ldy #S.FD.SOCK.P
|
||||
sta (pSKT),y
|
||||
|
||||
lda #S.SKT.IN.Q
|
||||
|
||||
ldy #S.SKT.IN.QTAIL
|
||||
sta (pSKT),y
|
||||
iny #S.SKT.IN.QHEAD
|
||||
ldy #S.FD.SOCK.P
|
||||
sta (pSKT),y
|
||||
|
||||
ldy hSKT
|
||||
@@ -153,8 +160,7 @@ Connect_RAW
|
||||
Connect_DGRAM jmp SKT.SetRemAddr
|
||||
*--------------------------------------
|
||||
Connect_SEQPACKET
|
||||
Connect_STREAM
|
||||
ldy #S.FD.SOCK.S
|
||||
Connect_STREAM ldy #S.FD.SOCK.S
|
||||
lda (pSKT),y
|
||||
beq .1
|
||||
|
||||
@@ -211,15 +217,7 @@ Listen ldy #S.FD.SOCK.T
|
||||
lda #S.SKT.IN.O.ACCEPTCONN
|
||||
sta (pFD),y
|
||||
|
||||
lda #S.SKT.IN.Q
|
||||
|
||||
ldy #S.SKT.IN.QTAIL
|
||||
sta (pSKT),y
|
||||
iny #S.SKT.IN.QHEAD
|
||||
sta (pSKT),y
|
||||
|
||||
clc
|
||||
rts
|
||||
jmp SKT.InitQ
|
||||
|
||||
listen.9 lda #SKT.E.BAD
|
||||
sec
|
||||
@@ -231,87 +229,24 @@ Accept ldy #S.FD.SOCK.O
|
||||
lda (pFD),y
|
||||
and #S.SKT.IN.O.ACCEPTCONN
|
||||
beq listen.9
|
||||
*--------------------------------------
|
||||
SKT.GetFromQ ldy #S.SKT.IN.QTAIL
|
||||
lda (pFD),y
|
||||
iny #S.SKT.IN.QHEAD
|
||||
cmp (pFD),y
|
||||
beq .9 CS
|
||||
|
||||
tay
|
||||
jsr SKT.GetFromQ
|
||||
bcs .9
|
||||
|
||||
lda (pFD),y
|
||||
tax
|
||||
stx .8+1
|
||||
phy
|
||||
|
||||
iny
|
||||
iny
|
||||
|
||||
tya
|
||||
cmp #S.SKT.IN
|
||||
bne .1
|
||||
|
||||
lda #S.SKT.IN.Q
|
||||
|
||||
.1 ldy #S.SKT.IN.QTAIL
|
||||
sta (pFD),y
|
||||
|
||||
lda pFDs,x
|
||||
lda pFDs,y
|
||||
sta pFD
|
||||
lda pFDs+1,x
|
||||
lda pFDs+1,y
|
||||
sta pFD+1
|
||||
|
||||
jsr GetPeerName
|
||||
|
||||
.8 ldy #$FF SELF MODIFIED
|
||||
lda #0
|
||||
ply
|
||||
lda #0 Y,A = Socket
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #E.NODATA
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.AddFrameInToQ
|
||||
>LDYA pFrameIn
|
||||
SKT.AddYAToQ pha
|
||||
phy
|
||||
|
||||
ldy #S.SKT.IN.QHEAD
|
||||
lda (pSKT),y
|
||||
|
||||
tax
|
||||
|
||||
inc
|
||||
inc
|
||||
cmp #S.SKT.IN
|
||||
bne .1
|
||||
|
||||
lda #S.SKT.IN.Q
|
||||
|
||||
.1 dey #S.SKT.IN.QTAIL
|
||||
cmp (pSKT),y
|
||||
beq .9 Queue full!!
|
||||
|
||||
iny #S.SKT.IN.QHEAD
|
||||
sta (pSKT),y
|
||||
|
||||
txa
|
||||
tay
|
||||
|
||||
pla
|
||||
sta (pSKT),y
|
||||
iny
|
||||
pla
|
||||
sta (pSKT),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 pla dicard pFrame
|
||||
pla
|
||||
* sec
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* int shutdown(int socket, int how);
|
||||
*--------------------------------------
|
||||
@@ -445,10 +380,7 @@ EOF_TRUE tay TRUE : exit with int=1
|
||||
rts
|
||||
*--------------------------------------
|
||||
Recv_RAW
|
||||
Recv_DGRAM
|
||||
Recv_SEQPACKET
|
||||
|
||||
jsr SKT.GetFromQ
|
||||
Recv_DGRAM jsr SKT.GetFromQ
|
||||
bcs .9
|
||||
|
||||
>STYA A1
|
||||
@@ -488,7 +420,6 @@ Recv_SEQPACKET
|
||||
*--------------------------------------
|
||||
.2 ldy #S.IP.TOTAL.LENGTH+1
|
||||
lda (A1),y
|
||||
iny
|
||||
sec
|
||||
sbc #S.ETH.EII
|
||||
sta A4
|
||||
@@ -530,6 +461,74 @@ Recv_SEQPACKET
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Recv_SEQPACKET jsr SKT.GetFromQ
|
||||
bcs .9
|
||||
* >DEBUG
|
||||
>STYA A1
|
||||
>STYA A3 for KFree
|
||||
|
||||
ldy #S.IP.TOTAL.LENGTH+1
|
||||
lda (A1),y
|
||||
sec
|
||||
sbc #S.TCP
|
||||
sta A4
|
||||
dey
|
||||
lda (A1),y
|
||||
sbc /S.TCP
|
||||
sta A4+1
|
||||
|
||||
lda #S.TCP
|
||||
clc
|
||||
adc A1
|
||||
sta A1
|
||||
bcc .1
|
||||
|
||||
inc A1+1
|
||||
|
||||
.1 ldy #S.SKT.IN.INACKNUM+3
|
||||
clc
|
||||
lda A4
|
||||
adc (pSKT),y
|
||||
sta (pSKT),y
|
||||
dey
|
||||
lda A4+1
|
||||
adc (pSKT),y
|
||||
sta (pSKT),y
|
||||
dey
|
||||
lda #0
|
||||
adc (pSKT),y
|
||||
sta (pSKT),y
|
||||
dey
|
||||
lda #0
|
||||
adc (pSKT),y
|
||||
sta (pSKT),y
|
||||
|
||||
lda #S.TCP.OPTIONS.ACK
|
||||
jsr SKT.SetTCPOPT
|
||||
|
||||
.6 ldy #2 length
|
||||
jsr K.GetStkYW
|
||||
|
||||
cpy A4
|
||||
pha
|
||||
sbc A4+1
|
||||
pla
|
||||
bcs .7
|
||||
|
||||
>STYA A4
|
||||
|
||||
.7 sta IO.SETWRITEAUX
|
||||
>DAPI MemCpy
|
||||
sta IO.CLRWRITEAUX
|
||||
|
||||
>LDYA A3
|
||||
>DAPI KFree
|
||||
|
||||
>LDYA A4
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Recv_STREAM jsr SKT.Get
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.INUSED
|
||||
@@ -542,7 +541,7 @@ Recv_STREAM jsr SKT.Get
|
||||
lda #E.NODATA
|
||||
sec
|
||||
.9 rts
|
||||
|
||||
*--------------------------------------
|
||||
.1 >LDYA SKT.CACHE+S.SKT.IN.INUSED
|
||||
|
||||
cpy A4
|
||||
@@ -567,10 +566,8 @@ Recv_STREAM jsr SKT.Get
|
||||
ldx #S.SKT.IN.INUSED
|
||||
jsr SKT.SubA4AtSktX
|
||||
|
||||
lda A4
|
||||
ldy A4+1
|
||||
ldx #S.SKT.IN.INACKNUM
|
||||
jsr TCP.AddAYToSktCacheAtX
|
||||
jsr SKT.Add32A4AtSktX
|
||||
|
||||
jsr SKT.Update
|
||||
|
||||
@@ -1060,21 +1057,45 @@ SKT.TCPInit ldx #S.SKT.IN.INSEQNUM
|
||||
|
||||
ldy #S.FD.SOCK.T
|
||||
lda (pSKT),y
|
||||
cmp #SOCK_SEQPACKET
|
||||
bcc .8
|
||||
cmp #SOCK_STREAM
|
||||
beq SKT.TCPInitStream
|
||||
*--------------------------------------
|
||||
SKT.TCPInitSeqPkt
|
||||
ldy #S.SKT.IN.WSIZE
|
||||
lda #K.TCP.MSS*10
|
||||
sta (pSKT),y
|
||||
iny
|
||||
lda /K.TCP.MSS*10
|
||||
sta (pSKT),y
|
||||
*--------------------------------------
|
||||
SKT.InitQ lda #S.SKT.IN.QBASE
|
||||
|
||||
tax
|
||||
ldy #S.SKT.IN.QTAIL
|
||||
sta (pSKT),y
|
||||
iny #S.SKT.IN.QHEAD
|
||||
sta (pSKT),y
|
||||
|
||||
clc
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.TCPInitStream
|
||||
ldy #S.SKT.IN.WSIZE
|
||||
lda #K.TCP.WSIZE
|
||||
sta (pSKT),y
|
||||
iny
|
||||
lda /K.TCP.WSIZE
|
||||
sta (pSKT),y
|
||||
|
||||
lda A2osX.ActBnk
|
||||
pha
|
||||
|
||||
ldy #S.SKT.IN.BNK
|
||||
lda (pSKT),y
|
||||
sta (pRWReg)
|
||||
|
||||
>LDYAI K.TCP.WSIZE
|
||||
>STYA SKT.CACHE+S.SKT.IN.INFREE
|
||||
|
||||
cpx #SOCK_STREAM
|
||||
bcc .8
|
||||
|
||||
lda A2osX.ActBnk
|
||||
ldy #S.SKT.IN.BNK
|
||||
sta (pSKT),y
|
||||
|
||||
>DAPI Malloc
|
||||
bcs .99
|
||||
|
||||
@@ -1091,7 +1112,6 @@ SKT.TCPInit ldx #S.SKT.IN.INSEQNUM
|
||||
|
||||
>LDYAI K.TCP.WSIZE
|
||||
>STYA SKT.CACHE+S.SKT.IN.OUTFREE
|
||||
|
||||
>DAPI Malloc
|
||||
bcs .98
|
||||
|
||||
@@ -1107,7 +1127,9 @@ SKT.TCPInit ldx #S.SKT.IN.INSEQNUM
|
||||
iny
|
||||
sta SKT.CACHE+S.SKT.IN.pOUTH+1
|
||||
|
||||
.8
|
||||
pla
|
||||
sta (pRWReg)
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
||||
@@ -1117,9 +1139,93 @@ SKT.TCPInit ldx #S.SKT.IN.INSEQNUM
|
||||
pla
|
||||
sec
|
||||
|
||||
.99 rts
|
||||
.99 tax
|
||||
pla
|
||||
sta (pRWReg)
|
||||
txa
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.Get ldy #S.SKT.IN.INSEQNUM
|
||||
SKT.AddFrameInToQ
|
||||
>LDYA pFrameIn
|
||||
|
||||
SKT.AddYAToQ pha
|
||||
phy
|
||||
|
||||
ldy #S.SKT.IN.QHEAD
|
||||
lda (pSKT),y
|
||||
|
||||
tax
|
||||
|
||||
inc
|
||||
inc
|
||||
|
||||
cmp #S.SKT.IN.QTOP
|
||||
bne .1
|
||||
|
||||
lda #S.SKT.IN.QBASE
|
||||
|
||||
.1 dey #S.SKT.IN.QTAIL
|
||||
cmp (pSKT),y
|
||||
beq .9 Queue full!!
|
||||
|
||||
iny #S.SKT.IN.QHEAD
|
||||
sta (pSKT),y
|
||||
|
||||
txa
|
||||
tay
|
||||
|
||||
pla
|
||||
sta (pSKT),y
|
||||
iny
|
||||
pla
|
||||
sta (pSKT),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 pla dicard pFrame
|
||||
pla
|
||||
* sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.GetFromQ ldy #S.SKT.IN.QTAIL
|
||||
lda (pFD),y
|
||||
iny #S.SKT.IN.QHEAD
|
||||
cmp (pFD),y
|
||||
beq .9 CS
|
||||
|
||||
pha
|
||||
|
||||
inc
|
||||
inc
|
||||
|
||||
cmp #S.SKT.IN.QTOP
|
||||
bne .1
|
||||
|
||||
lda #S.SKT.IN.QBASE
|
||||
|
||||
.1 dey #S.SKT.IN.QTAIL
|
||||
sta (pFD),y
|
||||
|
||||
ply
|
||||
lda (pFD),y
|
||||
pha
|
||||
iny
|
||||
lda (pFD),y
|
||||
ply
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #E.NODATA
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.Get ldy #S.FD.SOCK.T
|
||||
lda (pSKT),y
|
||||
|
||||
ldy #S.SKT.IN.INSEQNUM
|
||||
|
||||
cmp #SOCK_STREAM
|
||||
bne .2
|
||||
|
||||
.1 lda (pSKT),y
|
||||
sta SKT.CACHE,y
|
||||
@@ -1127,12 +1233,28 @@ SKT.Get ldy #S.SKT.IN.INSEQNUM
|
||||
cpy #S.SKT.IN
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
|
||||
.2 lda (pSKT),y
|
||||
sta SKT.CACHE,y
|
||||
iny
|
||||
cpy #S.SKT.IN.OUTSENTSEQ+4
|
||||
bcc .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.Update.S ldy #S.FD.SOCK.S
|
||||
sta (pSKT),y
|
||||
|
||||
SKT.Update ldy #S.SKT.IN.INSEQNUM
|
||||
SKT.Update ldy #S.FD.SOCK.T
|
||||
lda (pSKT),y
|
||||
|
||||
ldy #S.SKT.IN.INSEQNUM
|
||||
|
||||
cmp #SOCK_STREAM
|
||||
bne .2
|
||||
|
||||
ldy #S.SKT.IN.INSEQNUM
|
||||
|
||||
.1 lda SKT.CACHE,y
|
||||
sta (pSKT),y
|
||||
@@ -1140,6 +1262,15 @@ SKT.Update ldy #S.SKT.IN.INSEQNUM
|
||||
cpy #S.SKT.IN
|
||||
bcc .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.2 lda SKT.CACHE,y
|
||||
sta (pSKT),y
|
||||
iny
|
||||
cpy #S.SKT.IN.OUTSENTSEQ+4
|
||||
bcc .2
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@@ -1300,19 +1431,17 @@ SKT.GetDynPort inc DYNPORT.LAST
|
||||
*--------------------------------------
|
||||
* From Recv SOCK_STREAM
|
||||
* Src : A1 = S.SKT.IN.pIN/INTAIL (AUX PIPE)
|
||||
* Dst : A2 = User Buffer
|
||||
* Len : A4 = User Buffer Len
|
||||
* Out:
|
||||
* Y,A = bytes read
|
||||
* Dst : A2 = User Buffer (IOOpt)
|
||||
* Len : A4
|
||||
*--------------------------------------
|
||||
SKT.GetDataFromSktIn
|
||||
clc
|
||||
lda SKT.CACHE+S.SKT.IN.pIN
|
||||
adc SKT.CACHE+S.SKT.IN.INTAIL
|
||||
adc SKT.CACHE+S.SKT.IN.pINTAIL
|
||||
sta A1
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.pIN+1
|
||||
adc SKT.CACHE+S.SKT.IN.INTAIL+1
|
||||
adc SKT.CACHE+S.SKT.IN.pINTAIL+1
|
||||
sta A1+1
|
||||
|
||||
clc
|
||||
@@ -1332,7 +1461,7 @@ SKT.GetDataFromSktIn
|
||||
lda A3+1
|
||||
sbc SKT.CACHE+S.SKT.IN.pINH+1
|
||||
sta A3+1 A3 = Extra data after pINH
|
||||
bcc .8 no extra...
|
||||
bcc .3 no extra...
|
||||
|
||||
* sec
|
||||
lda A4
|
||||
@@ -1343,10 +1472,16 @@ SKT.GetDataFromSktIn
|
||||
sbc A3+1
|
||||
sta A4+1
|
||||
|
||||
>DAPI MemCpyX2X
|
||||
bit A2osX.IOOpt
|
||||
bmi .1
|
||||
|
||||
stz SKT.CACHE+S.SKT.IN.INTAIL
|
||||
stz SKT.CACHE+S.SKT.IN.INTAIL+1
|
||||
>DAPI MemCpyX2M
|
||||
bra .2
|
||||
|
||||
.1 >DAPI MemCpyX2X
|
||||
|
||||
.2 stz SKT.CACHE+S.SKT.IN.pINTAIL
|
||||
stz SKT.CACHE+S.SKT.IN.pINTAIL+1
|
||||
|
||||
>LDYA SKT.CACHE+S.SKT.IN.pIN
|
||||
>STYA A1
|
||||
@@ -1363,16 +1498,21 @@ SKT.GetDataFromSktIn
|
||||
>LDYA A3
|
||||
>STYA A4
|
||||
|
||||
.8 >DAPI MemCpyX2X
|
||||
.3 bit A2osX.IOOpt
|
||||
bmi .4
|
||||
|
||||
ldx #S.SKT.IN.INTAIL
|
||||
>DAPI MemCpyX2M
|
||||
bra .8
|
||||
|
||||
.4 >DAPI MemCpyX2X
|
||||
|
||||
.8 ldx #S.SKT.IN.pINTAIL
|
||||
jmp SKT.AddA4AtSktX
|
||||
*--------------------------------------
|
||||
* From TCP.IN (STREAM)
|
||||
* Src : A1 = Data from FrameIn
|
||||
* Len : A4
|
||||
*
|
||||
* Src : A1 = Data from FrameIn (MAIN)
|
||||
* Dst : A2 = S.SKT.IN.pIN+INHEAD (AUX PIPE)
|
||||
* Len : A4
|
||||
*--------------------------------------
|
||||
SKT.AddDataToSktIn
|
||||
sec
|
||||
@@ -1401,11 +1541,11 @@ SKT.AddDataToSktIn
|
||||
|
||||
clc
|
||||
lda SKT.CACHE+S.SKT.IN.pIN
|
||||
adc SKT.CACHE+S.SKT.IN.INHEAD
|
||||
adc SKT.CACHE+S.SKT.IN.pINHEAD
|
||||
sta A2
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.pIN+1
|
||||
adc SKT.CACHE+S.SKT.IN.INHEAD+1
|
||||
adc SKT.CACHE+S.SKT.IN.pINHEAD+1
|
||||
sta A2+1
|
||||
|
||||
clc
|
||||
@@ -1440,8 +1580,8 @@ SKT.AddDataToSktIn
|
||||
>DAPI MemCpy
|
||||
sta IO.CLRWRITEAUX
|
||||
|
||||
stz SKT.CACHE+S.SKT.IN.INHEAD
|
||||
stz SKT.CACHE+S.SKT.IN.INHEAD+1
|
||||
stz SKT.CACHE+S.SKT.IN.pINHEAD
|
||||
stz SKT.CACHE+S.SKT.IN.pINHEAD+1
|
||||
|
||||
clc
|
||||
lda A1
|
||||
@@ -1465,22 +1605,22 @@ SKT.AddDataToSktIn
|
||||
pla
|
||||
sta (pRWReg)
|
||||
|
||||
ldx #S.SKT.IN.INHEAD
|
||||
ldx #S.SKT.IN.pINHEAD
|
||||
jmp SKT.AddA4AtSktX
|
||||
*--------------------------------------
|
||||
* From Send_STREAM
|
||||
* Src : A1 = User Buffer
|
||||
* Len : A4
|
||||
* Src : A1 = User Buffer (IOOpt)
|
||||
* Dst : A2 = S.SKT.IN.pOUT+OUTHEAD (AUX PIPE)
|
||||
* Len : A4
|
||||
*--------------------------------------
|
||||
SKT.AddDataToSktOut
|
||||
clc
|
||||
lda SKT.CACHE+S.SKT.IN.pOUT
|
||||
adc SKT.CACHE+S.SKT.IN.OUTHEAD
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTHEAD
|
||||
sta A2
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.pOUT+1
|
||||
adc SKT.CACHE+S.SKT.IN.OUTHEAD+1
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTHEAD+1
|
||||
sta A2+1
|
||||
|
||||
clc
|
||||
@@ -1500,7 +1640,7 @@ SKT.AddDataToSktOut
|
||||
lda A3+1
|
||||
sbc SKT.CACHE+S.SKT.IN.pOUTH+1
|
||||
sta A3+1 A3 = Extra data after pOUTH
|
||||
bcc .8 no extra...
|
||||
bcc .3 no extra...
|
||||
|
||||
* sec
|
||||
lda A4
|
||||
@@ -1511,10 +1651,18 @@ SKT.AddDataToSktOut
|
||||
sbc A3+1
|
||||
sta A4+1
|
||||
|
||||
>DAPI MemCpyX2X
|
||||
bit A2osX.IOOpt
|
||||
bmi .1
|
||||
|
||||
stz SKT.CACHE+S.SKT.IN.OUTHEAD
|
||||
stz SKT.CACHE+S.SKT.IN.OUTHEAD+1
|
||||
sta IO.SETWRITEAUX
|
||||
>DAPI MemCpy
|
||||
sta IO.CLRWRITEAUX
|
||||
bra .2
|
||||
|
||||
.1 >DAPI MemCpyX2X
|
||||
|
||||
.2 stz SKT.CACHE+S.SKT.IN.pOUTHEAD
|
||||
stz SKT.CACHE+S.SKT.IN.pOUTHEAD+1
|
||||
|
||||
clc
|
||||
lda A1
|
||||
@@ -1531,14 +1679,23 @@ SKT.AddDataToSktOut
|
||||
>LDYA A3
|
||||
>STYA A4
|
||||
|
||||
.8 >DAPI MemCpyX2X
|
||||
.3 bit A2osX.IOOpt
|
||||
bmi .4
|
||||
|
||||
ldx #S.SKT.IN.OUTHEAD
|
||||
sta IO.SETWRITEAUX
|
||||
>DAPI MemCpy
|
||||
sta IO.CLRWRITEAUX
|
||||
bra .8
|
||||
|
||||
.4 >DAPI MemCpyX2X
|
||||
|
||||
.8 ldx #S.SKT.IN.pOUTHEAD
|
||||
jmp SKT.AddA4AtSktX
|
||||
*--------------------------------------
|
||||
* From TCP.OUT
|
||||
* Src : A1 = S.SKT.IN.pOUT+OUTTAILSENT (AUX PIPE)
|
||||
* Dst : A2 = pDataOut
|
||||
* Src : A1 = S.SKT.IN.pOUT+pOUTTOSEND (AUX PIPE)
|
||||
* Dst : A2 = pDataOut (MAIN)
|
||||
* Len : A4
|
||||
*--------------------------------------
|
||||
SKT.GetDataFromSktOut
|
||||
lda A2osX.ActBnk
|
||||
@@ -1550,11 +1707,11 @@ SKT.GetDataFromSktOut
|
||||
|
||||
clc
|
||||
lda SKT.CACHE+S.SKT.IN.pOUT
|
||||
adc SKT.CACHE+S.SKT.IN.OUTTAILSENT
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTTOSEND
|
||||
sta A1
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.pOUT+1
|
||||
adc SKT.CACHE+S.SKT.IN.OUTTAILSENT+1
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTTOSEND+1
|
||||
sta A1+1
|
||||
|
||||
clc
|
||||
@@ -1564,7 +1721,7 @@ SKT.GetDataFromSktOut
|
||||
|
||||
lda A1+1
|
||||
adc A4+1
|
||||
sta A3+1 A3 = pOUT+OUTTAILSENT+A4
|
||||
sta A3+1 A3 = pOUT+pOUTTOSEND+A4
|
||||
|
||||
sec
|
||||
lda A3
|
||||
@@ -1587,10 +1744,10 @@ SKT.GetDataFromSktOut
|
||||
|
||||
>DAPI MemCpyX2M
|
||||
|
||||
stz SKT.CACHE+S.SKT.IN.OUTTAILSENT
|
||||
stz SKT.CACHE+S.SKT.IN.OUTTAILSENT+1
|
||||
stz SKT.CACHE+S.SKT.IN.pOUTTOSEND
|
||||
stz SKT.CACHE+S.SKT.IN.pOUTTOSEND+1
|
||||
|
||||
>LDYA SKT.CACHE+S.SKT.IN.pOUTH
|
||||
>LDYA SKT.CACHE+S.SKT.IN.pOUT
|
||||
>STYA A1
|
||||
|
||||
clc
|
||||
@@ -1610,7 +1767,7 @@ SKT.GetDataFromSktOut
|
||||
pla
|
||||
sta (pRWReg)
|
||||
|
||||
ldx #S.SKT.IN.OUTTAILSENT
|
||||
ldx #S.SKT.IN.pOUTTOSEND
|
||||
* jmp SKT.AddA4AtSktX
|
||||
*--------------------------------------
|
||||
SKT.AddA4AtSktX clc
|
||||
@@ -1637,6 +1794,24 @@ SKT.SubA4AtSktX sec
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.Add32A4AtSktX
|
||||
clc
|
||||
lda SKT.CACHE+3,x
|
||||
adc A4
|
||||
sta SKT.CACHE+3,x
|
||||
|
||||
lda SKT.CACHE+2,x
|
||||
adc A4+1
|
||||
sta SKT.CACHE+2,x
|
||||
bcc .8
|
||||
|
||||
inc SKT.CACHE+1,x
|
||||
bne .8
|
||||
|
||||
inc SKT.CACHE,x
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.inet.s.skt
|
||||
LOAD usr/src/sys/km.inet.s
|
||||
|
||||
+148
-132
@@ -16,12 +16,26 @@ TCP.IN ldy #S.TCP.OPTIONS
|
||||
TCP.IN.RST lda #S.SKT.IN.S.TIMEWT
|
||||
ldy #S.FD.SOCK.S
|
||||
sta (pSKT),y
|
||||
|
||||
*--------------------------------------
|
||||
TCP.IN.CLOSED
|
||||
*--------------------------------------
|
||||
TCP.IN.OPENED
|
||||
*--------------------------------------
|
||||
TCP.IN.CLWAIT
|
||||
|
||||
clc
|
||||
rts
|
||||
* Wait for SKT.shutdown
|
||||
|
||||
*--------------------------------------
|
||||
TCP.IN.CLOSING
|
||||
|
||||
* Wait for SKT.Shutdown
|
||||
|
||||
*--------------------------------------
|
||||
TCP.IN.TIMEWT
|
||||
|
||||
* Wait for TCP.SendClose
|
||||
|
||||
jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.LISTEN jsr ARP.AddFrompFrameIn trash ZPPtr1!!!
|
||||
|
||||
@@ -70,6 +84,10 @@ TCP.IN.LISTEN jsr ARP.AddFrompFrameIn trash ZPPtr1!!!
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
ldy #S.SKT.IN.BNK
|
||||
lda (pSKT),y
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda ZPPtr1
|
||||
sta pSKT
|
||||
lda ZPPtr1+1
|
||||
@@ -119,7 +137,9 @@ TCP.IN.SYNSENT ldy #S.TCP.OPTIONS SYN Send, only accept SYN.ACK packet, then Se
|
||||
bcs .9
|
||||
|
||||
lda #S.SKT.IN.S.ESTBLSH
|
||||
jmp SKT.Update.S
|
||||
jsr SKT.Update.S
|
||||
|
||||
jmp FRM.DiscardIn
|
||||
|
||||
.9 lda #S.TCP.OPTIONS.RST
|
||||
jsr TCP.OUT.SendOptA Send RST
|
||||
@@ -150,17 +170,16 @@ TCP.IN.SYNRCVD ldy #S.TCP.OPTIONS SYN Received, SYN.ACK Sent, only accept ACK p
|
||||
bpl .1
|
||||
|
||||
lda #S.SKT.IN.S.ESTBLSH
|
||||
jmp SKT.Update.S
|
||||
jsr SKT.Update.S
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
.8 jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.ESTBLSH jsr SKT.Get
|
||||
|
||||
ldy #S.TCP.OPTIONS
|
||||
lda (pFrameIn),y
|
||||
and #S.TCP.OPTIONS.ACK Remote side ACKed data ?
|
||||
beq .4
|
||||
beq .3
|
||||
*--------------------------------------
|
||||
* Ack sent data
|
||||
*--------------------------------------
|
||||
@@ -179,63 +198,68 @@ TCP.IN.ESTBLSH jsr SKT.Get
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
bcc .7 ACK > SENT SEQ ????
|
||||
bcc .80 ACK > SENTSEQ ????
|
||||
|
||||
lda TmpDWord+3
|
||||
ldx TmpDWord+2
|
||||
ora TmpDWord+2
|
||||
beq .3 ACK = SENT SEQ
|
||||
|
||||
ldy #S.FD.SOCK.T
|
||||
lda (pSKT),y
|
||||
cmp #SOCK_STREAM
|
||||
bne .2
|
||||
|
||||
clc
|
||||
lda TmpDWord+3
|
||||
sta A4
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTTAIL
|
||||
sta SKT.CACHE+S.SKT.IN.pOUTTAIL
|
||||
tay
|
||||
beq .4
|
||||
|
||||
.2 pha
|
||||
lda TmpDWord+2
|
||||
sta A4+1
|
||||
adc SKT.CACHE+S.SKT.IN.pOUTTAIL+1
|
||||
sta SKT.CACHE+S.SKT.IN.pOUTTAIL+1
|
||||
|
||||
clc
|
||||
adc SKT.CACHE+S.SKT.IN.OUTTAIL
|
||||
sta SKT.CACHE+S.SKT.IN.OUTTAIL
|
||||
|
||||
txa
|
||||
adc SKT.CACHE+S.SKT.IN.OUTTAIL+1
|
||||
and /K.TCP.WSIZE-1
|
||||
sta SKT.CACHE+S.SKT.IN.OUTTAIL+1
|
||||
pla
|
||||
clc
|
||||
adc SKT.CACHE+S.SKT.IN.OUTFREE
|
||||
sta SKT.CACHE+S.SKT.IN.OUTFREE
|
||||
txa
|
||||
adc SKT.CACHE+S.SKT.IN.OUTFREE+1
|
||||
sta SKT.CACHE+S.SKT.IN.OUTFREE+1
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.OUTUSED
|
||||
pha
|
||||
tya
|
||||
sec
|
||||
sbc TmpDWord+3
|
||||
sta SKT.CACHE+S.SKT.IN.OUTUSED
|
||||
lda SKT.CACHE+S.SKT.IN.OUTUSED+1
|
||||
sbc TmpDWord+2
|
||||
sta SKT.CACHE+S.SKT.IN.OUTUSED+1
|
||||
sbc #K.TCP.WSIZE
|
||||
tay
|
||||
pla
|
||||
sbc /K.TCP.WSIZE
|
||||
bcc .20
|
||||
|
||||
jsr SKT.Update
|
||||
>STYA SKT.CACHE+S.SKT.IN.pOUTTAIL
|
||||
|
||||
.20 ldx #S.SKT.IN.OUTFREE
|
||||
jsr SKT.AddA4AtSktX
|
||||
|
||||
ldx #S.SKT.IN.OUTUSED
|
||||
jsr SKT.SubA4AtSktX
|
||||
|
||||
.2 jsr SKT.Update
|
||||
*--------------------------------------
|
||||
* Store incoming data
|
||||
*--------------------------------------
|
||||
.4 jsr TCP.IN.SetA1A4
|
||||
beq .7 No data in this frame
|
||||
.3 jsr TCP.IN.SetA1A4
|
||||
beq .80 No data in this frame
|
||||
|
||||
ldy #S.TCP.SEQNUM+3
|
||||
ldx #3
|
||||
|
||||
.5 lda (pFrameIn),y
|
||||
.4 lda (pFrameIn),y
|
||||
eor SKT.CACHE+S.SKT.IN.INSEQNUM,x
|
||||
bne .90 Missed a frame.....
|
||||
|
||||
dey
|
||||
dex
|
||||
bpl .5
|
||||
bpl .4
|
||||
|
||||
ldy #S.FD.SOCK.T
|
||||
lda (pSKT),y
|
||||
cmp #SOCK_STREAM
|
||||
bne .52
|
||||
bne .5
|
||||
|
||||
lda A4+1
|
||||
pha
|
||||
@@ -249,23 +273,43 @@ TCP.IN.ESTBLSH jsr SKT.Get
|
||||
plx
|
||||
stx A4+1
|
||||
|
||||
bcc .6
|
||||
bcs .80
|
||||
|
||||
rts
|
||||
|
||||
.52 jsr SKT.AddFrameInToQ
|
||||
bcs .99
|
||||
|
||||
stz pFrameIn+1 DON'T DISCARD
|
||||
|
||||
.6 lda A4
|
||||
ldy A4+1
|
||||
ldx #S.SKT.IN.INSEQNUM
|
||||
jsr TCP.AddAYToSktCacheAtX
|
||||
jsr SKT.Add32A4AtSktX
|
||||
|
||||
jsr SKT.Update
|
||||
|
||||
.80 jsr TCP.IN.CheckFIN
|
||||
|
||||
jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
.7 ldy #S.TCP.OPTIONS
|
||||
.5 jsr SKT.AddFrameInToQ
|
||||
bcs .80
|
||||
|
||||
.6 ldx #S.SKT.IN.INSEQNUM
|
||||
jsr SKT.Add32A4AtSktX
|
||||
|
||||
jsr SKT.Update
|
||||
|
||||
jsr TCP.IN.CheckFIN
|
||||
|
||||
clc DONT'T DISCARD
|
||||
rts
|
||||
*--------------------------------------
|
||||
.90
|
||||
* lda #S.TCP.OPTIONS.ACK Send 3 ACK for last SEQ number
|
||||
* jsr TCP.OUT.SendOptA
|
||||
|
||||
* lda #S.TCP.OPTIONS.ACK
|
||||
* jsr TCP.OUT.SendOptA
|
||||
|
||||
lda #S.TCP.OPTIONS.ACK
|
||||
jsr TCP.OUT.SendOptA
|
||||
|
||||
jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.CheckFIN ldy #S.TCP.OPTIONS
|
||||
lda (pFrameIn),y
|
||||
and #S.TCP.OPTIONS.FIN
|
||||
beq .8
|
||||
@@ -277,37 +321,21 @@ TCP.IN.ESTBLSH jsr SKT.Get
|
||||
lda #S.SKT.IN.S.LASTACK
|
||||
jmp SKT.Update.S
|
||||
|
||||
.8 ldy #S.FD.SOCK.O
|
||||
lda (pSKT),y
|
||||
bne .91
|
||||
|
||||
.80 clc
|
||||
.99 rts
|
||||
|
||||
.90
|
||||
* lda #S.TCP.OPTIONS.ACK Send 3 ACK for last SEQ number
|
||||
* jsr TCP.OUT.SendOptA
|
||||
|
||||
* lda #S.TCP.OPTIONS.ACK
|
||||
* jsr TCP.OUT.SendOptA
|
||||
|
||||
lda #S.TCP.OPTIONS.ACK
|
||||
.91 jmp TCP.OUT.SendOptA
|
||||
*--------------------------------------
|
||||
TCP.IN.CLWAIT clc Wait for SKT.shutdown
|
||||
rts
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
TCP.IN.LASTACK ldy #S.TCP.OPTIONS only accept ACK packet
|
||||
lda (pFrameIn),y
|
||||
bit #S.TCP.OPTIONS.ACK
|
||||
beq TCP.IN.CLWAIT
|
||||
beq .8
|
||||
|
||||
jsr SKT.Get
|
||||
|
||||
* jsr TCP.OUT.SendACK
|
||||
|
||||
lda #S.SKT.IN.S.CLWAIT
|
||||
jmp SKT.Update.S
|
||||
jsr SKT.Update.S
|
||||
|
||||
.8 jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.FINWT1 ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet
|
||||
lda (pFrameIn),y
|
||||
@@ -316,13 +344,15 @@ TCP.IN.FINWT1 ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet
|
||||
|
||||
jsr SKT.Get
|
||||
lda #S.SKT.IN.S.FINWT2
|
||||
jmp SKT.Update.S
|
||||
jsr SKT.Update.S
|
||||
|
||||
TCP.IN.FINWT1.9 jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.FINWT2 ldy #S.TCP.OPTIONS FIN sent & ACKed, awaiting FIN
|
||||
lda (pFrameIn),y
|
||||
|
||||
bit #S.TCP.OPTIONS.FIN
|
||||
beq TCP.IN.TIMEWT
|
||||
beq TCP.IN.FINWT1.9
|
||||
|
||||
TCP.IN.2TIMEWT jsr SKT.Get
|
||||
|
||||
@@ -332,21 +362,9 @@ TCP.IN.2TIMEWT jsr SKT.Get
|
||||
bcs .9
|
||||
|
||||
lda #S.SKT.IN.S.TIMEWT
|
||||
jmp SKT.Update.S
|
||||
jsr SKT.Update.S
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
TCP.IN.CLOSING
|
||||
|
||||
* Wait for SKT.Shutdown
|
||||
|
||||
*--------------------------------------
|
||||
TCP.IN.TIMEWT
|
||||
|
||||
* Wait for TCP.SendClose
|
||||
|
||||
clc
|
||||
rts
|
||||
.9 jmp FRM.DiscardIn
|
||||
*--------------------------------------
|
||||
TCP.IN.SetA1A4 ldy #S.IP.TOTAL.LENGTH+1
|
||||
lda (pFrameIn),y
|
||||
@@ -487,15 +505,11 @@ TCP.SendClose ldx #0
|
||||
bne .5
|
||||
|
||||
jsr Shutdown_EQ
|
||||
bra .7
|
||||
bra .6
|
||||
*--------------------------------------
|
||||
.5 ldy #S.SKT.IN.pIN
|
||||
jsr .9
|
||||
.5 jsr .9
|
||||
|
||||
ldy #S.SKT.IN.pOUT
|
||||
jsr .9
|
||||
|
||||
ldx hSKT
|
||||
.6 ldx hSKT
|
||||
|
||||
jsr SKT.FreeX
|
||||
*--------------------------------------
|
||||
@@ -508,8 +522,25 @@ TCP.SendClose ldx #0
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
.9 lda A2osX.ActBnk
|
||||
pha
|
||||
|
||||
.9 lda (pSKT),y
|
||||
ldy #S.SKT.IN.BNK
|
||||
lda (pSKT),y
|
||||
sta (pRWReg)
|
||||
|
||||
ldy #S.SKT.IN.pIN
|
||||
jsr .90
|
||||
|
||||
ldy #S.SKT.IN.pOUT
|
||||
jsr .90
|
||||
|
||||
pla
|
||||
sta (pRWReg)
|
||||
rts
|
||||
|
||||
.90 lda (pSKT),y
|
||||
pha
|
||||
iny
|
||||
lda (pSKT),y
|
||||
@@ -517,17 +548,12 @@ TCP.SendClose ldx #0
|
||||
>DAPI Free
|
||||
rts
|
||||
*--------------------------------------
|
||||
TCP.OUT jsr SKT.Get
|
||||
|
||||
lda SKT.CACHE+S.SKT.IN.OUTTOSEND+1
|
||||
ldy SKT.CACHE+S.SKT.IN.OUTTOSEND
|
||||
TCP.OUT ldy #S.SKT.IN.OUTTOSEND
|
||||
lda (pSKT),y
|
||||
iny
|
||||
ora (pSKT),y
|
||||
bne .1
|
||||
|
||||
tax
|
||||
bne .1
|
||||
|
||||
* Y,A=0 : no data to send
|
||||
|
||||
ldy #S.SKT.IN.TCPOPT
|
||||
lda (pSKT),y
|
||||
bne TCP.OUT.SendOpt a least an option...
|
||||
@@ -535,8 +561,12 @@ TCP.OUT jsr SKT.Get
|
||||
clc No data, no flag....exit
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.1 jsr SKT.Get
|
||||
|
||||
.1 cpy #K.TCP.MSS
|
||||
>LDYA SKT.CACHE+S.SKT.IN.OUTTOSEND
|
||||
|
||||
cpy #K.TCP.MSS
|
||||
pha
|
||||
sbc /K.TCP.MSS OUTDATA > MSS ?
|
||||
pla
|
||||
@@ -564,22 +594,24 @@ TCP.OUT jsr SKT.Get
|
||||
|
||||
ldx #S.SKT.IN.OUTTOSEND
|
||||
jsr SKT.SubA4AtSktX
|
||||
|
||||
TCP.OUT.SEQSEND ldy #S.TCP.WINDOW
|
||||
lda SKT.CACHE+S.SKT.IN.INFREE+1
|
||||
*--------------------------------------
|
||||
TCP.OUT.SEQSEND ldy #S.SKT.IN.WSIZE+1
|
||||
lda (pSKT),y
|
||||
tax
|
||||
dey
|
||||
lda (pSKT),y
|
||||
ldy #S.TCP.WINDOW+1
|
||||
sta (pFrameOut),y
|
||||
iny
|
||||
lda SKT.CACHE+S.SKT.IN.INFREE
|
||||
dey
|
||||
txa
|
||||
sta (pFrameOut),y
|
||||
|
||||
lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH
|
||||
jsr TCP.OUT.Send
|
||||
bcs TCP.OUT.Send.RTS
|
||||
|
||||
lda A4
|
||||
ldy A4+1
|
||||
ldx #S.SKT.IN.OUTNEXTSEQ
|
||||
jsr TCP.AddAYToSktCacheAtX
|
||||
jsr SKT.Add32A4AtSktX
|
||||
|
||||
jmp SKT.Update exits with CC
|
||||
*--------------------------------------
|
||||
@@ -611,7 +643,7 @@ TCP.OUT.SendOpt stz A4
|
||||
jsr TCP.OUT.NewFrame
|
||||
bcs TCP.OUT.Send.RTS
|
||||
|
||||
ldy #S.SKT.IN.INFREE+1
|
||||
ldy #S.SKT.IN.WSIZE+1
|
||||
lda (pSKT),y
|
||||
tax
|
||||
dey
|
||||
@@ -685,22 +717,6 @@ TCP.OUT.NewFrame
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
TCP.AddAYToSktCacheAtX
|
||||
clc
|
||||
adc SKT.CACHE+3,x
|
||||
sta SKT.CACHE+3,x
|
||||
tya
|
||||
adc SKT.CACHE+2,x
|
||||
sta SKT.CACHE+2,x
|
||||
bcc .8
|
||||
|
||||
inc SKT.CACHE+1,x
|
||||
bne .8
|
||||
|
||||
inc SKT.CACHE,x
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.inet.s.tcp
|
||||
LOAD usr/src/sys/km.inet.s
|
||||
|
||||
Reference in New Issue
Block a user