Kernel version 0.9 : TCPIP migration

This commit is contained in:
Rémy GIBERT 2017-01-26 22:57:35 +01:00
parent fd3b4036e0
commit 3fdde86098
11 changed files with 81 additions and 104 deletions

Binary file not shown.

Binary file not shown.

View File

@ -86,10 +86,10 @@ CS.INIT.DUMPDEV sta DevID
>LDYA L.MSG0.L >LDYA L.MSG0.L
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldy #S.DEVINFO.NET.MAC+6 ldy #S.DEVSTAT.NET.MAC+6
.1 dey .1 dey
>PUSHB (ZPDevInfoPtr),y >PUSHB (ZPDevInfoPtr),y
cpy #S.DEVINFO.NET.MAC cpy #S.DEVSTAT.NET.MAC
bne .1 bne .1
lda ZPDevPtr lda ZPDevPtr
@ -105,27 +105,27 @@ CS.INIT.DUMPDEV sta DevID
>LDYA L.MSG1.DEV >LDYA L.MSG1.DEV
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldy #S.DEVINFO.FLAGS ldy #S.DEVSTAT.FLAGS
lda (ZPDevInfoPtr),y lda (ZPDevInfoPtr),y
and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
beq .2 beq .2
lda #1 lda #1
.2 >PUSHA .2 >PUSHA
>LDYA L.MSG1.DEV.ARP >LDYA L.MSG1.DEV.ARP
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldy #S.DEVINFO.FLAGS ldy #S.DEVSTAT.FLAGS
lda (ZPDevInfoPtr),y lda (ZPDevInfoPtr),y
and #S.DEVINFO.NET.FLAGS.IPOFFLOAD and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
beq .3 beq .3
lda #1 lda #1
.3 >PUSHA .3 >PUSHA
>LDYA L.MSG1.DEV.IP >LDYA L.MSG1.DEV.IP
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldy #S.DEVINFO.NET.STATUS ldy #S.DEVSTAT.NET.STATUS
lda (ZPDevInfoPtr),y lda (ZPDevInfoPtr),y
and #S.DEVINFO.NET.STATUS.OK and #S.DEVSTAT.NET.STATUS.OK
bne CS.INIT.LINK bne CS.INIT.LINK
>PUSHW L.MSG1.LINK.KO >PUSHW L.MSG1.LINK.KO
>LDYA L.MSG1.LINK >LDYA L.MSG1.LINK
@ -139,7 +139,7 @@ CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
>LDYA L.MSG1.LINKSPEED >LDYA L.MSG1.LINKSPEED
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldy #S.DEVINFO.NET.STATUS ldy #S.DEVSTAT.NET.STATUS
lda (ZPDevInfoPtr),y lda (ZPDevInfoPtr),y
and #$0F and #$0F
tax tax
@ -151,9 +151,9 @@ CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
dex dex
bne .4 bne .4
ldy #S.DEVINFO.NET.STATUS ldy #S.DEVSTAT.NET.STATUS
lda (ZPDevInfoPtr),y lda (ZPDevInfoPtr),y
and #S.DEVINFO.NET.STATUS.FD and #S.DEVSTAT.NET.STATUS.FD
bne .5 bne .5
>LDYA L.MSG1.DPLX.HD >LDYA L.MSG1.DPLX.HD
bra .6 bra .6

View File

@ -198,8 +198,9 @@ READBLOCK.Err sec
READBLOCK.RxOK and /PP.RxEvent.Brdcast READBLOCK.RxOK and /PP.RxEvent.Brdcast
beq .10 beq .10
lda #$80 lda #$80
.10 ldy #S.EVT.DATAHI
sta (pEvent),y .10 sta .8+3
>LDYA RTDATA,x discard RxStatus >LDYA RTDATA,x discard RxStatus
lda RTDATA+1,x get RxLength lda RTDATA+1,x get RxLength
@ -219,12 +220,7 @@ READBLOCK.RxOK and /PP.RxEvent.Brdcast
>SYSCALL GetMem >SYSCALL GetMem
bcs READBLOCK.Err bcs READBLOCK.Err
>STYA ZPTmpPTR >STYA ZPTmpPTR
txa stx .8+1
ldy #S.EVT.DATALO
sta (pEvent),y
lda #S.EVT.F.NET+S.EVT.F.hMEM1
sta (pEvent)
lda Size lda Size
sta (ZPTmpPTR) sta (ZPTmpPTR)
@ -263,10 +259,12 @@ READBLOCK.RxOK and /PP.RxEvent.Brdcast
inc ZPTmpPTR+1 inc ZPTmpPTR+1
bne .1 bne .1
.8 clc .8 lda #$ff hMem
ldy #$ff Flags
clc
rts rts
*-------------------------------------- *--------------------------------------
WRITEBLOCK >PULLW ZPTmpPTR WRITEBLOCK >STYA ZPTmpPTR
lda (ZPTmpPTR) lda (ZPTmpPTR)
sta Size sta Size
@ -342,7 +340,7 @@ WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
OPEN jsr Reset OPEN jsr CLOSE
>LDYAI PP.RxCTL >LDYAI PP.RxCTL
>STYA PacketPagePTR,x >STYA PacketPagePTR,x
>LDYAI PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA >LDYAI PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA
@ -368,18 +366,15 @@ OPEN jsr Reset
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CLOSE jsr Reset CLOSE ldx DEVSLOTx0
clc
rts
*--------------------------------------
Reset ldx DEVSLOTx0
>LDYAI PP.SelfCTL >LDYAI PP.SelfCTL
>STYA PacketPagePTR,x >STYA PacketPagePTR,x
>LDYAI PP.SelfCTL.LID+PP.SelfCTL.RESET >LDYAI PP.SelfCTL.LID+PP.SelfCTL.RESET
>STYA PacketPageDATA,x >STYA PacketPageDATA,x
clc
rts rts
DRV.CS.END
*-------------------------------------- *--------------------------------------
DRV.CS.END
DEVSLOTx0 .BS 1 DEVSLOTx0 .BS 1
Size .BS 2 Size .BS 2
Counter .BS 2 Counter .BS 2

View File

@ -130,8 +130,8 @@ ARP.IN.REQ ldy #S.ARP.SPA+3
dex dex
bpl .2 bpl .2
>PUSHW L.ARP.REP >LDYA L.ARP.REP
ldx #DEVMGR.NET.SEND ldx #DEVMGR.WRITEBLOCK
jsr NetDevJmp jsr NetDevJmp
ARP.IN.REP lda #K.ARP.TTL ARP.IN.REP lda #K.ARP.TTL
@ -186,8 +186,8 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP
dex dex
bpl .4 bpl .4
>PUSHW L.ARP.REQ >LDYA L.ARP.REQ
ldx #DEVMGR.NET.SEND ldx #DEVMGR.WRITEBLOCK
jsr NetDevJmp jsr NetDevJmp
bcs .99 bcs .99

View File

@ -35,20 +35,26 @@ SET.IPCFG >PULLW ZPTmpPtr1
lda IPCFG+S.IPCFG.HDEV lda IPCFG+S.IPCFG.HDEV
>SYSCALL GetDevByIDA >SYSCALL GetDevByIDA
>STYA NetDevJmp+1 >STYA ZPTmpPtr2
ldx #DEVMGR.GETINFO lda (ZPTmpPtr2)
sta NetDevJmp+1
ldy #1
lda (ZPTmpPtr2),y
sta NetDevJmp+2
ldx #DEVMGR.STATUS
jsr NetDevJmp jsr NetDevJmp
>STYA ZPTmpPtr2 >STYA ZPTmpPtr2
ldy #S.DEVINFO.FLAGS ldy #S.DEVSTAT.NET.FLAGS
lda (ZPTmpPtr2),y lda (ZPTmpPtr2),y
sta DevFlags sta DevFlags
and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
beq .4 beq .4
>LDYA ZPTmpPtr1 >LDYA ZPTmpPtr1
ldx #DEVMGR.SETIPCFG ldx #DEVMGR.CONTROL
jsr NetDevJmp jsr NetDevJmp
.4 lda hDNSSocket1 .4 lda hDNSSocket1

View File

@ -83,7 +83,7 @@ NEW.IP.FRAME >PUSHWI K.ETH.FRAME.LEN
>STYA ZPFrameBase1 >STYA ZPFrameBase1
lda DevFlags lda DevFlags
and #S.DEVINFO.NET.FLAGS.IPOFFLOAD and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
bne .9 bne .9
ldy #S.ETH.ETHERTYPE ldy #S.ETH.ETHERTYPE
@ -177,7 +177,7 @@ SEND.IP.FRAME.I ldx #3 Copy SRC.IP even if IP offload
bpl .1 bpl .1
lda DevFlags lda DevFlags
and #S.DEVINFO.NET.FLAGS.IPOFFLOAD and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
bne .21 bne .21
ldy #S.IP.TOTAL.LENGTH+1 ldy #S.IP.TOTAL.LENGTH+1
@ -239,14 +239,14 @@ SEND.IP.FRAME.I ldx #3 Copy SRC.IP even if IP offload
jsr UDP.ComputeChecksum jsr UDP.ComputeChecksum
.4 lda DevFlags .4 lda DevFlags
and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
bne .5 bne .5
jsr IP.SetDestMAC jsr IP.SetDestMAC
bcs FRM.Queue bcs FRM.Queue
.5 >PUSHW ZPFrameBase1 .5 >LDYA ZPFrameBase1
ldx #DEVMGR.NET.SEND ldx #DEVMGR.WRITEBLOCK
jsr NetDevJmp jsr NetDevJmp
bcs FRM.Queue bcs FRM.Queue
lda hFrame1 lda hFrame1
@ -295,8 +295,8 @@ FRM.Retry ldx FRM.QUEUE.Tail
jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC
bcs .2 still error getting dest MAC bcs .2 still error getting dest MAC
.1 >PUSHW ZPFrameBase1 try sending again to DRV .1 >LDYA ZPFrameBase1 try sending again to DRV
ldx #DEVMGR.NET.SEND ldx #DEVMGR.WRITEBLOCK
jsr NetDevJmp jsr NetDevJmp
bcc .3 bcc .3

View File

@ -157,7 +157,7 @@ DecDataLen lda ZPDataLen
lda #$FF Make NZ lda #$FF Make NZ
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
NetDevJmp jmp $ffff NetDevJmp jmp *
*-------------------------------------- *--------------------------------------
.INB LIB/LIBTCPIP.S.CFG .INB LIB/LIBTCPIP.S.CFG
.INB LIB/LIBTCPIP.S.FRM .INB LIB/LIBTCPIP.S.FRM

View File

@ -76,9 +76,11 @@ In Progress : moving TCPIP to socket API
| INSDRV | Working | | 0.9 | | INSDRV | Working | | 0.9 |
| GETTY | Working | | 0.9 | | GETTY | Working | | 0.9 |
| LOGIN | In Progress | no auth using /etc/passd yet | 0.9 | | LOGIN | In Progress | no auth using /etc/passd yet | 0.9 |
| TCPIP | In Progress | New Socket API. ARP,IP,ICMP,UDP ok, TCP in progress | 0.8 | | TCPIP | In Progress | New Socket API. ARP,IP,ICMP,UDP ok, TCP in progress | 0.9 |
| DHCPCLNT | Working | rewritten to use new Socket API | 0.8 | | DHCPCLNT | Working | rewritten to use new Socket API | 0.9 |
| SHELL | Working | (See Internal Shell commands) | 0.9 | | SHELL | Working | (See Internal Shell commands) | 0.9 |
| TELNETD | | | |
| HTTPD | | | |
## Internal Shell commands: ## Internal Shell commands:
| Name | Status | Comment | | Name | Status | Comment |
@ -89,8 +91,8 @@ In Progress : moving TCPIP to socket API
| EXIT | Working | | | EXIT | Working | |
| IF | | | | IF | | |
| PAUSE | Working | | | PAUSE | Working | |
| READ | Working | -S no echo (password) | | READ | Working | -S : no echo (password) |
| | | -P "prompt message" | | | | -P : "prompt message" |
| TIME | Working | | | TIME | Working | |
| SET | Working | | | SET | Working | |
| STARTPROC | Working | Used in A2osX.startup | | STARTPROC | Working | Used in A2osX.startup |

View File

@ -221,41 +221,17 @@ CS.RUN.SKT.RCVD ldy #hSocket
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT lda (pEvent) CS.DOEVENT lda (pEvent)
bpl .1 is it a TIMER event? bpl .9 is it a TIMER event?
ldy #TimeOut ldy #TimeOut
lda (pData),y lda (pData),y
beq .9 beq .9
dec dec
sta (pData),y sta (pData),y
.9 sec do not discard TIMER event .9 sec do not discard TIMER event
rts rts
.1 bit #S.EVT.F.KEY is it a KEY event?
beq .8
ldy #S.EVT.hDEV is Event from active IN device?
lda (pEvent),y
ldy #S.PS.hStdIn
cmp (pPs),y
bne .9
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
lda (pEvent),y
bne .9
ldy #S.EVT.DATALO
lda (pEvent),y
cmp #$03 Ctrl-C
bne .8
lda #$FF
ldy #bCTRLC
sta (pData),y
bra .8
.8 clc
rts
*-------------------------------------- *--------------------------------------
CS.QUIT ldy #hSocket CS.QUIT ldy #hSocket
lda (pData),y lda (pData),y

View File

@ -105,29 +105,34 @@ CS.INIT.DEV >LDYA L.DEVNAME
>LDYA L.MSG.DEV.KO >LDYA L.MSG.DEV.KO
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
lda #DEVMGR.ERRDNF lda #$28 MLI.ERR.NODEV
sec sec
rts rts
.1 >STYA pNetDevJmp+1 .1 >STYA ZPIPDevPtr
txa stx hNetDev
sta hNetDev stx IPCFG+S.IPCFG.HDEV
sta IPCFG+S.IPCFG.HDEV
lda (ZPIPDevPtr)
sta NetDevJmp+1
ldy #1
lda (ZPIPDevPtr),y
sta NetDevJmp+2
>PUSHW L.DEVNAME >PUSHW L.DEVNAME
>LDYA L.MSG.DEV.OK >LDYA L.MSG.DEV.OK
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
ldx #DEVMGR.OPEN ldx #DEVMGR.OPEN
jsr pNetDevJmp jsr NetDevJmp
bcs .9 bcs .9
ldx #DEVMGR.GETINFO ldx #DEVMGR.STATUS
jsr pNetDevJmp jsr NetDevJmp
bcs .9 bcs .9
>STYA ZPIPDevPtr >STYA ZPIPDevPtr
ldy #S.DEVINFO.NET.MAC ldy #S.DEVSTAT+2 MAC
ldx #S.IPCFG.MAC ldx #S.IPCFG.MAC
.2 lda (ZPIPDevPtr),y .2 lda (ZPIPDevPtr),y
@ -143,25 +148,18 @@ CS.INIT.DEV >LDYA L.DEVNAME
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN clc CS.RUN ldx #DEVMGR.READBLOCK
jsr NetDevJmp
bcs .8
>LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA
.8 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT clc CS.DOEVENT lda (pEvent)
lda (pEvent)
bit #S.EVT.F.NET
beq .1
ldy #S.EVT.hDEV bit #S.EVT.F.T10TH
lda (pEvent),y
cmp hNetDev
bne .9
ldy #S.EVT.DATALO Get Frame hMem
lda (pEvent),y
>LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA
rts
.1 bit #S.EVT.F.T10TH
beq .9 S.EVT.F.T1SEC beq .9 S.EVT.F.T1SEC
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA >LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA
@ -171,7 +169,7 @@ CS.DOEVENT clc
CS.QUIT lda IPCFG+S.IPCFG.HDEV CS.QUIT lda IPCFG+S.IPCFG.HDEV
beq .1 beq .1
ldx #DEVMGR.CLOSE ldx #DEVMGR.CLOSE
jsr pNetDevJmp jsr NetDevJmp
.1 lda hLIBTCPIP .1 lda hLIBTCPIP
>SYSCALL UnloadLibA >SYSCALL UnloadLibA
@ -197,7 +195,7 @@ A2CharAX pha
adc #6 adc #6
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
pNetDevJmp jmp * NetDevJmp jmp *
*-------------------------------------- *--------------------------------------
.INB SBIN/TCPIP.S.CFG .INB SBIN/TCPIP.S.CFG
*-------------------------------------- *--------------------------------------