Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-15 16:37:32 +00:00
parent a39eb17109
commit bb03ff5bca
7 changed files with 191 additions and 100 deletions

Binary file not shown.

View File

@ -3,7 +3,7 @@ PREFIX
AUTO 4,1 AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
DHCP.INIT lda (pIPCFG) DHCP.INIT lda IPCFG+S.IPCFG.STATUS
and #S.IPCFG.STATUS.OK and #S.IPCFG.STATUS.OK
bne .99 Already Configured, exit bne .99 Already Configured, exit
@ -30,7 +30,7 @@ DHCP.INIT lda (pIPCFG)
.99 >LDYA L.MSG.DHCP.NA .99 >LDYA L.MSG.DHCP.NA
.90 >SYSCALL puts >SYSCALL puts
lda #0 lda #0
sec sec
rts rts

View File

@ -177,7 +177,7 @@ CFG.Read.IP ldy #3
bpl .1 bpl .1
>PUSHBI 8 4 PTRs on stack >PUSHBI 8 4 PTRs on stack
>PUSHW L.HST.SScanF >PUSHW L.CFG.IP.SScanF
lda (ZPTmpPtr2) lda (ZPTmpPtr2)
sec sec
@ -210,8 +210,8 @@ CFG.Read.dnsdomain
sta IPCFG+S.IPCFG.DOMAIN,y sta IPCFG+S.IPCFG.DOMAIN,y
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
CFG.Read.HOSTS stz CFG.hBuf2 CFG.Read.HOSTS stz CFG.hBuf2
stz CFG.hBuf3 stz CFG.hBuf3
>LDYA L.HOSTS >LDYA L.HOSTS
jsr CFG.Read.Open jsr CFG.Read.Open
@ -288,7 +288,7 @@ CFG.Read.HOSTS.Scan
bpl .2 bpl .2
>PUSHBI 12 6 PTRs on stack >PUSHBI 12 6 PTRs on stack
>PUSHW L.CFG.HOSTS.SScanF >PUSHW L.CFG.HOST.SScanF
>LDYA ZPTmpPtr1 >LDYA ZPTmpPtr1
>SYSCALL SScanF >SYSCALL SScanF
@ -368,11 +368,7 @@ CFG.Read.GetS >PUSHWI 255
>PUSHW ZPTmpPtr1 >PUSHW ZPTmpPtr1
lda CFG.hCfgFile lda CFG.hCfgFile
>SYSCALL fgets >SYSCALL fgets
bcs .9 rts
>LDYA ZPTmpPtr1
>SYSCALL puts
.9 rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SBIN/IPCONFIG.S.ETC SAVE USR/SRC/SBIN/IPCONFIG.S.ETC

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF BIN/IPCONFIG2 .TF BIN/IPCONFIG
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB INC/MACROS.I
.INB INC/A2OSX.I .INB INC/A2OSX.I
@ -21,7 +21,6 @@ TIMEOUT.MAX .EQ 200 20 sec.
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
ZS.START ZS.START
ZPPtr1 .BS 2
pIPCFG .BS 2 pIPCFG .BS 2
pFD .BS 2 pFD .BS 2
ZPIPCfgPtr .BS 2 ZPIPCfgPtr .BS 2
@ -40,10 +39,11 @@ CS.START cld
jmp (.1,x) jmp (.1,x)
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA #S.PS.F.EVENT
.DA CS.END-CS.START CS .DA #0
.DA DS.END-DS.START DS .DA CS.END-CS.START Code Size (without Constants)
.DA #16 SS .DA DS.END-DS.START Data SegmentSize
.DA #16 Stack Size
.DA #ZS.END-ZS.START Zero Page Size .DA #ZS.END-ZS.START Zero Page Size
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -80,13 +80,11 @@ L.HOSTNAME .DA HOSTNAME
L.TCPIP.CONF .DA TCPIP.CONF L.TCPIP.CONF .DA TCPIP.CONF
L.HOSTS .DA HOSTS L.HOSTS .DA HOSTS
L.IPCFG .DA IPCFG L.IPCFG .DA IPCFG
L.IOCTL .DA IOCTL
L.DCB.NIC .DA DCB.NIC
L.CFG.IP .DA CFG.IP
L.HST.SScanF .DA HST.SScanF
L.CFG.HOSTS.SScanF .DA CFG.HOSTS.SScanF
L.CFG.DefaultHost .DA CFG.DefaultHost
L.IPCFG.HOSTNAME .DA IPCFG+S.IPCFG.HOSTNAME L.IPCFG.HOSTNAME .DA IPCFG+S.IPCFG.HOSTNAME
L.CFG.IP .DA CFG.IP
L.CFG.IP.SScanF .DA CFG.IP.SScanF
L.CFG.HOST.SScanF .DA CFG.HOST.SScanF
L.CFG.DefaultHost .DA CFG.DefaultHost
L.CFG.Keywords .DA CFG.Keywords L.CFG.Keywords .DA CFG.Keywords
J.CFG.Keywords .DA CFG.Read.address J.CFG.Keywords .DA CFG.Read.address
.DA CFG.Read.netmask .DA CFG.Read.netmask
@ -133,14 +131,14 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
>SYSCALL ArgV >SYSCALL ArgV
bcs .4 bcs .4
>STYA ZPPtr1 >STYA ZPTmpPtr1
lda (ZPPtr1) lda (ZPTmpPtr1)
cmp #'-' cmp #'-'
bne .99 bne .99
ldy #1 ldy #1
lda (ZPPtr1),y lda (ZPTmpPtr1),y
ldx OptionList ldx OptionList
@ -162,24 +160,29 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
bra .1 bra .1
.4 lda (pIPCFG) S.IPCFG.STATUS .4 lda (pIPCFG) S.IPCFG.STATUS
bne CS.RUN.DUMP bne .5 no config, force all
lda #$ff
>STA.G bETC
>STA.G bDHCP
.5 >LDA.G bETC
bpl .6
jsr CFG.EtcFiles jsr CFG.EtcFiles
* jsr DHCP.INIT .6 >LDA.G bDHCP
* bcs .8 bpl .8
jsr DHCP.INIT
bcs .8
* jsr DHCP.RUN jsr DHCP.RUN
* jsr DHCP.QUIT jsr DHCP.QUIT
.8 >PUSHW L.IPCFG .8 >PUSHW L.IPCFG
>DEBUG >LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
* lda #0
* sec
* rts
*-------------------------------------- *--------------------------------------
CS.RUN.DUMP ldy #S.IPCFG.DevID CS.RUN.DUMP ldy #S.IPCFG.DevID
lda (pIPCFG),y lda (pIPCFG),y
@ -409,7 +412,7 @@ Wait.TimeOut ldy #TimeOut
.INB USR/SRC/SBIN/IPCONFIG.S.ETC .INB USR/SRC/SBIN/IPCONFIG.S.ETC
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip2" LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
*-------------------------------------- *--------------------------------------
OptionList >PSTR "DEde" OptionList >PSTR "DEde"
@ -423,7 +426,6 @@ MSG.USAGE .AS "Usage : IPCONFIG <switches>\r\n"
MSG.NODEV .AZ "TCP/IP not bound to any device." MSG.NODEV .AZ "TCP/IP not bound to any device."
*-------------------------------------- *--------------------------------------
IPCFG .BS S.IPCFG IPCFG .BS S.IPCFG
IOCTL .BS S.IOCTL
*-------------------------------------- *--------------------------------------
MSG1.DEV .AS "NIC Device Configuration :\r\n" MSG1.DEV .AS "NIC Device Configuration :\r\n"
.AS " Device ID : $%h\r\n" .AS " Device ID : $%h\r\n"
@ -456,7 +458,6 @@ MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..."
HOSTNAME .AZ "${ROOT}ETC/HOSTNAME" HOSTNAME .AZ "${ROOT}ETC/HOSTNAME"
TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF" TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF"
HOSTS .AZ "${ROOT}ETC/HOSTS" HOSTS .AZ "${ROOT}ETC/HOSTS"
HST.SScanF .AZ "%d.%d.%d.%d"
*-------------------------------------- *--------------------------------------
CFG.DefaultHost .AZ "a2osx-%H" CFG.DefaultHost .AZ "a2osx-%H"
CFG.Keywords >PSTR "address" CFG.Keywords >PSTR "address"
@ -471,7 +472,8 @@ CFG.hBuf3 .BS 1
CFG.hCfgPath .BS 1 CFG.hCfgPath .BS 1
CFG.hCfgFile .BS 1 CFG.hCfgFile .BS 1
CFG.IP .BS 4 CFG.IP .BS 4
CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s" CFG.IP.SScanF .AZ "%d.%d.%d.%d"
CFG.HOST.SScanF .AZ "%d.%d.%d.%d %s %s"
*-------------------------------------- *--------------------------------------
MSG.DHCP.CFG1 .AZ "Searching for DHCP servers..." MSG.DHCP.CFG1 .AZ "Searching for DHCP servers..."
MSG.DHCP.CFG2 .AZ "Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n" MSG.DHCP.CFG2 .AZ "Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
@ -534,6 +536,7 @@ ArgIndex .BS 1
bDHCP .BS 1 bDHCP .BS 1
bETC .BS 1 bETC .BS 1
DIB .BS S.DIB DIB .BS S.DIB
IOCTL .BS S.IOCTL
DCB.NIC .BS S.DCB.NIC DCB.NIC .BS S.DCB.NIC
TimeOut .BS 1 TimeOut .BS 1
hSocket .BS 1 hSocket .BS 1

18
INC/LIB.NET.I.txt Normal file
View File

@ -0,0 +1,18 @@
NEW
PREFIX
AUTO 4,1
.LIST OFF
.OP 65C02
*--------------------------------------
LIBNET.SETCFG .EQ 4
LIBNET.GETCFG .EQ 6
LIBNET.INCOMING .EQ 8
LIBNET.PULSE .EQ 10
*--------------------------------------
S.NETCFG.STATUS .EQ 0
S.NETCFG.DevID .EQ 1
S.NETCFG.MAC .EQ 2
*--------------------------------------
MAN
SAVE INC/LIB.NET.I

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF LIB/LIBTCPIP2 .TF LIB/LIBTCPIP
*-------------------------------------- *--------------------------------------
IPDEBUG .EQ 0 IPDEBUG .EQ 0
*-------------------------------------- *--------------------------------------

View File

@ -5,22 +5,24 @@ AUTO 4,1
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF SBIN/NETWORKD .TF SBIN/NETWORKD
*--------------------------------------
LIB.MAX .EQ 4
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB INC/MACROS.I
.INB INC/A2OSX.I .INB INC/A2OSX.I
.INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
.INB INC/ETH.I .INB INC/ETH.I
.INB INC/LIBTCPIP.I .INB INC/LIB.NET.I
.INB INC/LIBETALK.I
*-------------------------------------- *--------------------------------------
* Zero Page Segment, up to 32 bytes * Zero Page Segment, up to 32 bytes
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
ZS.START ZS.START
pIPCFG .BS 2 pNETCFG .BS 2
ZS.END pBuf .BS 2
.ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -45,23 +47,30 @@ CS.START cld
L.DEVNAME .DA DEVNAME L.DEVNAME .DA DEVNAME
L.MSG.DEV.OK .DA MSG.DEV.OK L.MSG.DEV.OK .DA MSG.DEV.OK
L.MSG.DEV.KO .DA MSG.DEV.KO L.MSG.DEV.KO .DA MSG.DEV.KO
L.LIBTCPIP .DA LIBTCPIP L.MSG.LIB .DA MSG.LIB
L.LIBETALK .DA LIBETALK
L.IOCTL .DA IOCTL L.IOCTL .DA IOCTL
L.ETCNETWORK .DA ETCNETWORK
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT jsr CS.INIT.DEV
rts bcs .9
jsr CS.INIT.LIBS
bcs .9
jsr CS.INIT.CONF
.9 rts
*-------------------------------------- *--------------------------------------
CS.RUN >PUSHBI 0 CS.INIT.DEV >PUSHBI 0
>LDYA L.DEVNAME >LDYA L.DEVNAME
>SYSCALL open >SYSCALL open
bcc .1 bcc .8
inc DEVNAME+8 inc DEVNAME+8
lda DEVNAME+8 lda DEVNAME+8
cmp #'8' cmp #'8'
bne CS.RUN bne CS.INIT.DEV
>LDYA L.MSG.DEV.KO >LDYA L.MSG.DEV.KO
>SYSCALL puts >SYSCALL puts
@ -70,90 +79,152 @@ CS.RUN >PUSHBI 0
sec sec
rts rts
.1 sta DevID .8 sta DevID
>PUSHW L.DEVNAME >PUSHW L.DEVNAME
>PUSHBI 2 >PUSHBI 2
>LDYA L.MSG.DEV.OK >LDYA L.MSG.DEV.OK
>SYSCALL printf >SYSCALL printf
>LDYA L.LIBTCPIP rts
*--------------------------------------
CS.INIT.LIBS lda LibCnt
.1 inc
>SYSCALL ArgV
bcs .8
phy
pha
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.LIB
>SYSCALL printf
pla
ply
>SYSCALL LoadLib >SYSCALL LoadLib
bcs .2 bcs .9
sta hLIBTCPIP
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG ldy LibCnt
>STYA pIPCFG sta hLIBs,y
inc LibCnt
ldy #S.IPCFG.DevID tay
ldx #LIBNET.GETCFG
jsr A2osX.LIBCALL
>STYA pNETCFG
lda DevID lda DevID
sta (pIPCFG),y ldy #S.NETCFG.DevID
sta (pNETCFG),y
.2 >LDYA L.LIBETALK lda LibCnt
>SYSCALL LoadLib cmp #LIB.MAX
bcs .3 bne .1
sta hLIBETALK
.8 clc
.3 .9 rts
CS.RUN.LOOP >SLEEP *--------------------------------------
CS.INIT.CONF >LDYAI 64
>SYSCALL GetMem
bcs .9
>PUSHW L.IOCTL >STYA pBuf
stx hLineBuf
>PUSHWI 0
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDONLY
>LDYA L.ETCNETWORK
>SYSCALL fopen
bcs .9
sta hNetworkFile
.1 >PUSHWI 63
>PUSHW pBuf
lda hNetworkFile
>SYSCALL fgets
bcs .8
>PUSHBI 0 PS Flags
>LDYA pBuf
>SYSCALL execL
bra .1
.8 lda hNetworkFile
>SYSCALL fclose
clc
.9 rts
*--------------------------------------
CS.RUN >PUSHW L.IOCTL
>PUSHBI IOCTL.READ >PUSHBI IOCTL.READ
lda DevID lda DevID
>SYSCALL IOCTL >SYSCALL IOCTL
bcs CS.RUN.LOOP No Frame bcs .8 No Frame
sta hFrameIn sta hFrameIn
ldx hLIBTCPIP ldx #0
beq .1
.1 ldy hLIBs,x
beq .7
>PUSHW L.IOCTL >PUSHW L.IOCTL
lda hFrameIn lda hFrameIn
>LIBCALL hLIBTCPIP,LIBTCPIP.INCOMING phx
bcc CS.RUN.LOOP ldx #LIBNET.INCOMING
jsr A2osX.LIBCALL
plx
bcc .8
.1 ldx hLIBETALK inx
beq .9 bra .1
>PUSHW L.IOCTL .7 lda hFrameIn
lda hFrameIn
>LIBCALL hLIBETALK,LIBETALK.INCOMING
bcc CS.RUN.LOOP
.9 lda hFrameIn
>SYSCALL freemem >SYSCALL freemem
bra CS.RUN.LOOP .8 clc
rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT lda (pEvent) CS.DOEVENT lda (pEvent)
bpl .9 bpl .9
ldx hLIBTCPIP ldx #0
beq .1
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSE
.1 ldx hLIBETALK .1 ldy hLIBs,x
beq .9 beq .9
phx
ldx #LIBNET.PULSE
lda (pEvent) lda (pEvent)
>LIBCALL hLIBETALK,LIBETALK.PULSE jsr A2osX.LIBCALL
plx
inx
bra .1
.9 sec never discard TIME event .9 sec never discard TIME event
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT lda hLIBTCPIP CS.QUIT ldx #0
beq .1
>SYSCALL UnloadLib .1 lda hLIBs,x
beq .7
.1 lda hLIBETALK phx
beq .2 >SYSCALL UnLoadLib
plx
>SYSCALL UnloadLib
.2 >PUSHWI 0 inx
bra .1
.7 >PUSHWI 0
>PUSHBI IOCTL.CLOSE >PUSHBI IOCTL.CLOSE
lda DevID lda DevID
>SYSCALL IOCTL >SYSCALL IOCTL
@ -166,12 +237,15 @@ CS.END
DEVNAME .AZ "/DEV/ETH1" DEVNAME .AZ "/DEV/ETH1"
MSG.DEV.KO .AZ "NETWORKD:No Device Found, exiting." MSG.DEV.KO .AZ "NETWORKD:No Device Found, exiting."
MSG.DEV.OK .AZ "NETWORKD:Bound To Device : %s\r\n" MSG.DEV.OK .AZ "NETWORKD:Bound To Device : %s\r\n"
LIBTCPIP .AZ "libtcpip2" MSG.LIB .AZ "NETWORKD:Loading %s ...\r\n"
LIBETALK .AZ "libetalk"
DevID .BS 1 DevID .BS 1
hLIBTCPIP .BS 1 LibCnt .BS 1
hLIBETALK .BS 1 hLIBs .BS LIB.MAX+1 for ending 0 if MAX libs
IOCTL .BS S.IOCTL IOCTL .BS S.IOCTL
*ETCNETWORK .AZ "${ROOT}ETC/NETWORK"
ETCNETWORK .AZ "../ETC/NETWORK"
hNetworkFile .BS 1
hLineBuf .BS 1
hFrameIn .BS 1 hFrameIn .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY