Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-10-09 17:47:06 +02:00
parent 231e530537
commit 647484d331
8 changed files with 135 additions and 94 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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"

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -60,7 +60,7 @@ CS.QUIT lda hLIBTCPIP
*--------------------------------------
CS.END
*--------------------------------------
LIBTCPIP .AZ "libtcpip.o"
LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1
*--------------------------------------
.DUMMY

View File

@ -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