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
.LIST OFF
*--------------------------------------
DHCP.INIT lda (pIPCFG)
DHCP.INIT lda IPCFG+S.IPCFG.STATUS
and #S.IPCFG.STATUS.OK
bne .99 Already Configured, exit
@ -30,7 +30,7 @@ DHCP.INIT lda (pIPCFG)
.99 >LDYA L.MSG.DHCP.NA
.90 >SYSCALL puts
>SYSCALL puts
lda #0
sec
rts

View File

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

View File

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

View File

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