mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-07 01:29:33 +00:00
Kernel 0.9.2
This commit is contained in:
parent
231e530537
commit
647484d331
Binary file not shown.
Binary file not shown.
|
@ -281,7 +281,7 @@ CS.QUIT lda hLIBTCPIP
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
LIBTCPIP .AZ "libtcpip.o"
|
||||
LIBTCPIP .AZ "libtcpip"
|
||||
*--------------------------------------
|
||||
MSG0 .AZ "TCP/IP Status : "
|
||||
MSG0.L .AZ "Loaded"
|
||||
|
|
|
@ -37,7 +37,6 @@ CFG.EtcFiles >LDYAI 256
|
|||
|
||||
>LDYA L.HOSTNAME
|
||||
jsr CFG.Read.PrintF
|
||||
|
||||
jsr CFG.Read.HOSTNAME
|
||||
|
||||
lda IPCFG+S.IPCFG.HOSTNAME
|
||||
|
@ -59,12 +58,11 @@ CFG.EtcFiles >LDYAI 256
|
|||
jsr CFG.A2CharAX
|
||||
sta IPCFG+S.IPCFG.HOSTNAME+8
|
||||
stx IPCFG+S.IPCFG.HOSTNAME+9
|
||||
|
||||
|
||||
.4 >LDYA L.TCPIP.CONF
|
||||
jsr CFG.Read.PrintF
|
||||
|
||||
jsr CFG.Read.TCPIP.CONF
|
||||
|
||||
|
||||
lda IPCFG+S.IPCFG.IP
|
||||
beq .5
|
||||
|
||||
|
@ -73,7 +71,6 @@ CFG.EtcFiles >LDYAI 256
|
|||
|
||||
.5 >LDYA L.HOSTS
|
||||
jsr CFG.Read.PrintF
|
||||
|
||||
jsr CFG.Read.HOSTS
|
||||
|
||||
jsr SET.IPCFG.I
|
||||
|
@ -409,7 +406,11 @@ CFG.Read.GetS >PUSHWI 255
|
|||
>PUSHW ZPTmpPtr1
|
||||
lda CFG.hCfgFile
|
||||
>SYSCALL fgets
|
||||
rts
|
||||
* bcs .9
|
||||
* >LDYA ZPTmpPtr1
|
||||
* >SYSCALL puts
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CFG.A2CharAX pha
|
||||
lsr
|
||||
|
@ -464,9 +465,9 @@ SET.IPCFG.I >LDYA L.DCB.NIC
|
|||
ldx #3
|
||||
|
||||
.11 lda IPCFG+S.IPCFG.IP,x
|
||||
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
||||
sta ARP.REQ.SPA,x
|
||||
sta ARP.REP.SPA,x
|
||||
sta DNS.SOCKET.SA,x
|
||||
dex
|
||||
bpl .11
|
||||
|
||||
|
@ -497,24 +498,21 @@ SET.IPCFG.I >LDYA L.DCB.NIC
|
|||
|
||||
.3 lda IPCFG+S.IPCFG.DNS1
|
||||
beq .8
|
||||
|
||||
ldx #3
|
||||
|
||||
.5 lda IPCFG+S.IPCFG.DNS1,x
|
||||
sta DNS.SOCKET.DA,x
|
||||
dex
|
||||
bpl .5
|
||||
|
||||
stz DNS.SOCKET.SP
|
||||
stz DNS.SOCKET.SP+1
|
||||
>DEBUG
|
||||
>PUSHW L.DNS.SOCKET
|
||||
|
||||
>PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.DGRAM
|
||||
jsr SKT.Socket
|
||||
bcs .9
|
||||
|
||||
sta hDNSSocket
|
||||
|
||||
stz SA.LOCAL+S.SOCKADDR.PORT
|
||||
stz SA.LOCAL+S.SOCKADDR.PORT+1
|
||||
|
||||
>PUSHW L.SA.LOCAL
|
||||
lda hDNSSocket
|
||||
jsr SKT.Bind
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -133,10 +133,10 @@ SKT.bind >SYSCALL GetMemPtr
|
|||
bcc .9
|
||||
|
||||
jsr SKT.SetLocAddr
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #ERR.SKT.BUSY
|
||||
sec
|
||||
rts
|
||||
|
@ -156,7 +156,7 @@ SKT.bind >SYSCALL GetMemPtr
|
|||
*\--------------------------------------
|
||||
SKT.connect >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
jsr SKT.PullRemAddr
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
|
@ -169,24 +169,23 @@ SKT.connect.DGRAM
|
|||
|
||||
jsr SKT.SetRemAddr
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
SKT.connect.STREAM
|
||||
>LDYAI K.TCP.WSIZE
|
||||
>SYSCALL getmem
|
||||
bcs SKT.connect.99
|
||||
txa
|
||||
|
||||
|
||||
ldy #S.SOCKET.SQ.hInMem
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
>LDYAI K.TCP.WSIZE
|
||||
>SYSCALL getmem
|
||||
bcs SKT.connect.99
|
||||
txa
|
||||
|
||||
|
||||
ldy #S.SOCKET.SQ.hOutMem
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
@ -202,15 +201,15 @@ SKT.connect.SEQPACKET
|
|||
sta (ZPPtrSKT),y
|
||||
ldy #S.SOCKET.TCP.OUTFREE
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
lda /K.TCP.WSIZE
|
||||
ldy #S.SOCKET.TCP.INFREE
|
||||
sta (ZPPtrSKT),y
|
||||
ldy #S.SOCKET.TCP.OUTFREE
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
ldy #S.SOCKET.TCP.OUTNEXTSEQ
|
||||
|
||||
|
||||
.2 lda A2osX.TIMER16-S.SOCKET.TCP.OUTNEXTSEQ,y
|
||||
sta (ZPPtrSKT),y
|
||||
iny
|
||||
|
@ -224,7 +223,7 @@ SKT.connect.SEQPACKET
|
|||
ldy #S.SOCKET.TCP.S
|
||||
lda #S.SOCKET.TCP.S.SYNSENT
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
|
@ -245,7 +244,7 @@ SKT.connect.99 rts
|
|||
*\--------------------------------------
|
||||
SKT.listen >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.SEQPACKET+1
|
||||
|
@ -254,17 +253,17 @@ SKT.listen >SYSCALL GetMemPtr
|
|||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
bne .9
|
||||
|
||||
|
||||
lda #S.SOCKET.TCP.S.LISTEN
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda #S.SOCKET.O.ACCEPTCONN
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
@ -282,25 +281,25 @@ SKT.listen >SYSCALL GetMemPtr
|
|||
*\--------------------------------------
|
||||
SKT.Accept >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
beq .99
|
||||
|
||||
|
||||
ldy #S.SOCKET.HQ.TAIL
|
||||
lda (ZPPtrSKT),y
|
||||
ldy #S.SOCKET.HQ.HEAD
|
||||
cmp (ZPPtrSKT),y Queue Empty
|
||||
beq .9 CS
|
||||
|
||||
|
||||
pha save tail...
|
||||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
bne .1
|
||||
|
||||
|
||||
lda #0
|
||||
|
||||
|
||||
.1 ldy #S.SOCKET.HQ.TAIL
|
||||
sta (ZPPtrSKT),y
|
||||
pla
|
||||
|
@ -310,7 +309,7 @@ SKT.Accept >SYSCALL GetMemPtr
|
|||
lda (ZPPtrSKT),y
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.99 lda #ERR.SKT.BAD
|
||||
sec
|
||||
.9 rts
|
||||
|
@ -327,18 +326,18 @@ SKT.Accept >SYSCALL GetMemPtr
|
|||
*\--------------------------------------
|
||||
SKT.Close >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
beq .10 TCP
|
||||
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
|
||||
ldy #S.SOCKET.HQ.HEAD
|
||||
cmp (ZPPtrSKT),y
|
||||
beq .8 No frame in Queue, close..
|
||||
|
||||
|
||||
pha save tail...
|
||||
clc
|
||||
adc #S.SOCKET.HQ
|
||||
|
@ -347,41 +346,41 @@ SKT.Close >SYSCALL GetMemPtr
|
|||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
beq .2
|
||||
|
||||
|
||||
lda #0
|
||||
|
||||
|
||||
.2 ldy #S.SOCKET.HQ.TAIL
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
txa
|
||||
tay
|
||||
lda (ZPPtrSKT),y
|
||||
>SYSCALL FreeMem
|
||||
bra .1
|
||||
|
||||
|
||||
.8 lda #0
|
||||
sta (ZPPtrSKT)
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #ERR.SKT.BAD
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
|
||||
.10 ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
bit #S.SOCKET.O.ACCEPTCONN
|
||||
|
||||
|
||||
bne * TO DO: Listening socket
|
||||
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.CLWAIT
|
||||
bne .11
|
||||
|
||||
|
||||
lda #S.SOCKET.TCP.S.LASTACK
|
||||
bra .12
|
||||
|
||||
|
||||
.11 lda #S.SOCKET.TCP.S.FINWT1
|
||||
.12 sta (ZPPtrSKT),y
|
||||
|
||||
|
@ -407,20 +406,20 @@ SKT.Close >SYSCALL GetMemPtr
|
|||
*\--------------------------------------
|
||||
SKT.Read >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
||||
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
||||
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .90 bad skt
|
||||
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .90 Bad Skt
|
||||
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
|
@ -430,11 +429,11 @@ SKT.Read >SYSCALL GetMemPtr
|
|||
|
||||
jsr SKT.GetDataFromSktIn
|
||||
rts if CS, No data...
|
||||
|
||||
|
||||
.90 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.91 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
@ -458,7 +457,7 @@ SKT.Read >SYSCALL GetMemPtr
|
|||
*\--------------------------------------
|
||||
SKT.Write >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
>PULLW ZPDataInPtr
|
||||
>PULLW ZPDataInLen
|
||||
|
||||
|
@ -466,12 +465,12 @@ SKT.Write >SYSCALL GetMemPtr
|
|||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .99
|
||||
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .99
|
||||
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
|
@ -483,15 +482,15 @@ SKT.Write >SYSCALL GetMemPtr
|
|||
jsr TCP.OUT.I SKT.GetTCB called, try to push, ignore error....
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.90 lda #0 no data transfered
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.91 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.99 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
@ -514,10 +513,10 @@ SKT.RecvFrom sec
|
|||
.HS 90 BCC
|
||||
SKT.Recv clc
|
||||
php
|
||||
|
||||
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
|
@ -526,19 +525,19 @@ SKT.Recv clc
|
|||
ldy #S.SOCKET.HQ.TAIL
|
||||
lda (ZPPtrSKT),y
|
||||
tax
|
||||
|
||||
|
||||
ldy #S.SOCKET.HQ.HEAD
|
||||
cmp (ZPPtrSKT),y
|
||||
beq .90
|
||||
|
||||
|
||||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
bne .1
|
||||
lda #0
|
||||
|
||||
|
||||
.1 ldy #S.SOCKET.HQ.TAIL
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
|
||||
txa
|
||||
clc
|
||||
adc #S.SOCKET.HQ
|
||||
|
@ -549,19 +548,54 @@ SKT.Recv clc
|
|||
pha
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPFrameInPtr
|
||||
|
||||
|
||||
>PULLW ZPTmpPtr1 addr
|
||||
|
||||
|
||||
|
||||
ldy #S.IP.SRC
|
||||
|
||||
.2 lda (ZPFrameInPtr),y
|
||||
sta SA.REMOTE+S.SOCKADDR.ADDR-S.IP.SRC,y
|
||||
iny
|
||||
cpy #S.IP.SRC+4
|
||||
bne .2
|
||||
|
||||
ldy #S.IP.PROTOCOL
|
||||
lda (ZPFrameInPtr),y
|
||||
cmp #S.IP.PROTOCOL.ICMP
|
||||
bne .3
|
||||
|
||||
ldy #S.ICMP.IDENTIFIER
|
||||
bra .7
|
||||
|
||||
.3 cmp #S.IP.PROTOCOL.TCP
|
||||
beq .6
|
||||
cmp #S.IP.PROTOCOL.UDP
|
||||
bne .8
|
||||
|
||||
.6 ldy #S.TCPUDP.SRCPORT
|
||||
|
||||
.7 lda (ZPFrameInPtr),y
|
||||
sta SA.REMOTE+S.SOCKADDR+1
|
||||
iny
|
||||
lda (ZPFrameInPtr),y
|
||||
sta SA.REMOTE+S.SOCKADDR
|
||||
|
||||
.8 lda #S.SOCKADDR-1
|
||||
|
||||
.80 lda SA.REMOTE,y
|
||||
sta (ZPTmpPtr1),y
|
||||
dey
|
||||
bpl .80
|
||||
|
||||
pla
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
|
||||
.99 plp
|
||||
lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.90 plp
|
||||
lda #0 no data
|
||||
sec
|
||||
|
@ -590,11 +624,11 @@ SKT.Send clc
|
|||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
plp
|
||||
|
||||
|
||||
bcc .1
|
||||
|
||||
|
||||
jsr SKT.PullRemAddr
|
||||
|
||||
|
||||
.1 >PULLW ZPDataInPtr
|
||||
>PULLW ZPDataInLen
|
||||
|
||||
|
@ -694,8 +728,10 @@ SKT.FindMatchingLocRem
|
|||
.1 lda SKT.TABLE,x
|
||||
beq .8
|
||||
|
||||
phx
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPTmpPtr1
|
||||
plx
|
||||
|
||||
ldy #0
|
||||
|
||||
|
@ -752,8 +788,10 @@ SKT.FindMatchingLoc
|
|||
.1 lda SKT.TABLE,x
|
||||
beq .7
|
||||
|
||||
phx
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPTmpPtr1
|
||||
plx
|
||||
|
||||
ply
|
||||
phy
|
||||
|
@ -1399,7 +1437,7 @@ SKT.CopyDataInToOut
|
|||
inc
|
||||
beq .9
|
||||
pha
|
||||
|
||||
|
||||
.2 lda (ZPDataInPtr),y
|
||||
sta (ZPDataOutPtr),y
|
||||
iny
|
||||
|
|
|
@ -111,7 +111,8 @@ J.CFG.Keywords .DA CFG.Read.address
|
|||
.DA CFG.Read.dnsdomain
|
||||
L.ARP.REQ .DA ARP.REQ
|
||||
L.ARP.REP .DA ARP.REP
|
||||
L.DNS.SOCKET .DA DNS.SOCKET
|
||||
L.SA.LOCAL .DA SA.LOCAL
|
||||
L.SA.REMOTE .DA SA.REMOTE
|
||||
L.DNS.MSG .DA DNS.MSG
|
||||
L.ARP.CACHE .DA ARP.CACHE
|
||||
L.DNS.CACHE .DA DNS.CACHE
|
||||
|
@ -222,9 +223,10 @@ PULSE and #S.EVT.F.T1SEC
|
|||
beq .1
|
||||
|
||||
* jsr ARP.EXPIRE
|
||||
jsr DNS.EXPIRE
|
||||
* jsr DNS.EXPIRE
|
||||
|
||||
.1 jsr DNS.POLL
|
||||
.1
|
||||
* jsr DNS.POLL
|
||||
jmp FRM.RETRY
|
||||
*--------------------------------------
|
||||
GetDynPort inc DYNPORT.LAST
|
||||
|
@ -291,6 +293,16 @@ CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s"
|
|||
*--------------------------------------
|
||||
SKT.TABLE .BS K.SKTTABLE.SIZE
|
||||
*--------------------------------------
|
||||
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
||||
.BS 1
|
||||
.BS 4 S.SOCKADDR.ADDR
|
||||
.BS 2 S.SOCKADDR.PORT
|
||||
*--------------------------------------
|
||||
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
|
||||
.BS 1
|
||||
.BS 4 S.SOCKADDR.ADDR
|
||||
.BS 2 S.SOCKADDR.PORT
|
||||
*--------------------------------------
|
||||
FD.DSOCK .DA #S.FD.T.DSOCK
|
||||
.BS 1 S.FD.HANDLER
|
||||
.BS 1 S.FD.DSOCK.HSKT
|
||||
|
@ -350,13 +362,6 @@ ARP.REP.SPA .BS 4
|
|||
ARP.REP.THA .BS 6
|
||||
ARP.REP.TPA .BS 4
|
||||
*--------------------------------------
|
||||
DNS.SOCKET .DA #S.SOCKET.T.DGRAM
|
||||
.BS 3
|
||||
DNS.SOCKET.SA .BS 4
|
||||
DNS.SOCKET.SP .DA 0 Dynamic
|
||||
DNS.SOCKET.DA .BS 4
|
||||
DNS.SOCKET.DP .DA UDP.PORT.DNS
|
||||
*--------------------------------------
|
||||
DNS.MSG
|
||||
DNS.MSG.ID .BS 2
|
||||
.DA /S.DNS.F.RD Flags=query
|
||||
|
|
|
@ -60,7 +60,7 @@ CS.QUIT lda hLIBTCPIP
|
|||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
LIBTCPIP .AZ "libtcpip.o"
|
||||
LIBTCPIP .AZ "libtcpip"
|
||||
hLIBTCPIP .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
|
|
|
@ -722,7 +722,7 @@ K.FGetS pha save hFILE
|
|||
inc ZPPtr2+1
|
||||
beq .8
|
||||
|
||||
.3 jsr IO.READ.I
|
||||
.3 jsr K.GetC.I
|
||||
bcc .1
|
||||
|
||||
.8 clc
|
||||
|
|
Loading…
Reference in New Issue
Block a user