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

View File

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

View File

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

View File

@ -35,20 +35,26 @@ SET.IPCFG >PULLW ZPTmpPtr1
lda IPCFG+S.IPCFG.HDEV
>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
>STYA ZPTmpPtr2
ldy #S.DEVINFO.FLAGS
ldy #S.DEVSTAT.NET.FLAGS
lda (ZPTmpPtr2),y
sta DevFlags
and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
beq .4
>LDYA ZPTmpPtr1
ldx #DEVMGR.SETIPCFG
ldx #DEVMGR.CONTROL
jsr NetDevJmp
.4 lda hDNSSocket1

View File

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

View File

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

View File

@ -76,9 +76,11 @@ In Progress : moving TCPIP to socket API
| INSDRV | Working | | 0.9 |
| GETTY | Working | | 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 |
| DHCPCLNT | Working | rewritten to use new Socket API | 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.9 |
| SHELL | Working | (See Internal Shell commands) | 0.9 |
| TELNETD | | | |
| HTTPD | | | |
## Internal Shell commands:
| Name | Status | Comment |
@ -89,8 +91,8 @@ In Progress : moving TCPIP to socket API
| EXIT | Working | |
| IF | | |
| PAUSE | Working | |
| READ | Working | -S no echo (password) |
| | | -P "prompt message" |
| READ | Working | -S : no echo (password) |
| | | -P : "prompt message" |
| TIME | Working | |
| SET | Working | |
| STARTPROC | Working | Used in A2osX.startup |

View File

@ -221,41 +221,17 @@ CS.RUN.SKT.RCVD ldy #hSocket
.9 rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .1 is it a TIMER event?
bpl .9 is it a TIMER event?
ldy #TimeOut
lda (pData),y
beq .9
dec
sta (pData),y
.9 sec do not discard TIMER event
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
lda (pData),y

View File

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