diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 652fdc98..e09eeb02 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/IPCONFIG.S.DEV.txt b/BIN/IPCONFIG.S.DEV.txt deleted file mode 100644 index cb960930..00000000 --- a/BIN/IPCONFIG.S.DEV.txt +++ /dev/null @@ -1,39 +0,0 @@ -NEW -PREFIX -AUTO 4,1 - .LIST OFF -*-------------------------------------- -* PULLW = PTR to S.IPCFG -*-------------------------------------- -DEV.Bind >PUSHBI 0 - >LDYA L.DEVNAME - >SYSCALL open - bcc .1 - - inc DEVNAME+8 - lda DEVNAME+8 - cmp #'8' - bne DEV.Bind - - >LDYA L.MSG.DEV.KO - >SYSCALL puts - - lda #MLI.E.NODEV - sec - rts - -.1 ldy #S.IPCFG.DevID - sta (pIPCFG),y - - >PUSHW L.DEVNAME - >PUSHBI 2 - >LDYA L.MSG.DEV.OK - >SYSCALL printf - - clc - rts -*-------------------------------------- -MAN -SAVE USR/SRC/SBIN/IPCONFIG.S.DEV -LOAD USR/SRC/SBIN/IPCONFIG.S -ASM diff --git a/BIN/IPCONFIG.S.DHCP.txt b/BIN/IPCONFIG.S.DHCP.txt index ba15843c..0249efc8 100644 --- a/BIN/IPCONFIG.S.DHCP.txt +++ b/BIN/IPCONFIG.S.DHCP.txt @@ -6,10 +6,6 @@ AUTO 4,1 DHCP.INIT lda (pIPCFG) and #S.IPCFG.STATUS.OK bne .99 Already Configured, exit - - ldy #S.IPCFG.DevID - lda (pIPCFG),y - beq .98 ldy #S.IPCFG-1 @@ -39,8 +35,6 @@ DHCP.INIT lda (pIPCFG) clc .9 rts -.98 >LDYA L.MSG.DHCP.ND - bra .90 .99 >LDYA L.MSG.DHCP.NA .90 >SYSCALL puts diff --git a/BIN/IPCONFIG.S.ETC.txt b/BIN/IPCONFIG.S.ETC.txt index 2ccc72d5..f7b626af 100644 --- a/BIN/IPCONFIG.S.ETC.txt +++ b/BIN/IPCONFIG.S.ETC.txt @@ -17,23 +17,12 @@ CFG.EtcFiles >LDYAI 256 lda IPCFG+S.IPCFG.HOSTNAME bne .4 - ldy #$ff + >PUSHW A2osX.TIMER16 + >PUSHBI 2 + >PUSHW L.CFG.DefaultHost + >LDYA L.IPCFG.HOSTNAME + >SYSCALL sprintf -.2 iny - lda CFG.DefaultHost,y - sta IPCFG+S.IPCFG.HOSTNAME,y - bne .2 - -.3 lda A2osX.TIMER16 - jsr CFG.A2CharAX - sta IPCFG+S.IPCFG.HOSTNAME+6 - stx IPCFG+S.IPCFG.HOSTNAME+7 - - lda A2osX.TIMER16+1 - 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 @@ -48,8 +37,6 @@ CFG.EtcFiles >LDYAI 256 jsr CFG.Read.PrintF jsr CFG.Read.HOSTS - >LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG - lda CFG.hBuf1 >SYSCALL freemem @@ -381,36 +368,7 @@ CFG.Read.GetS >PUSHWI 255 >PUSHW ZPTmpPtr1 lda CFG.hCfgFile >SYSCALL fgets -* bcs .9 -* >LDYA ZPTmpPtr1 -* >SYSCALL puts -.9 rts -*-------------------------------------- -CFG.A2CharAX pha - lsr - lsr - lsr - lsr - ora #$30 - cmp #'9'+1 - bcc .1 - adc #6 -.1 tax - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .8 - adc #6 -.8 rts -*-------------------------------------- -* grab a copy on the fly for lib function -* OUT : -* Y,A = PTR to S.IPCFG -*-------------------------------------- -GET.IPCFG >LDYA L.IPCFG - clc rts *-------------------------------------- MAN diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index fa619b5a..c2470e08 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -55,9 +55,7 @@ CS.START cld .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP L.MSG.USAGE .DA MSG.USAGE -L.MSG0 .DA MSG0 -L.MSG0.NL .DA MSG0.NL -L.MSG0.L .DA MSG0.L +L.MSG.NODEV .DA MSG.NODEV L.MSG1.DEV .DA MSG1.DEV L.MSG1.DEV.ARP .DA MSG1.DEV.ARP L.MSG1.DEV.IP .DA MSG1.DEV.IP @@ -74,9 +72,6 @@ L.MSG2.IP .DA MSG2.IP L.MSG2.GW .DA MSG2.GW L.MSG2.DNS .DA MSG2.DNS L.MSG2.HOSTNAME .DA MSG2.HOSTNAME -L.DEVNAME .DA DEVNAME -L.MSG.DEV.KO .DA MSG.DEV.KO -L.MSG.DEV.OK .DA MSG.DEV.OK L.MSG.CFG .DA MSG.CFG L.MSG.CFG.KO .DA MSG.CFG.KO L.MSG.CFG.OK .DA MSG.CFG.OK @@ -90,13 +85,14 @@ 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.Keywords .DA CFG.Keywords J.CFG.Keywords .DA CFG.Read.address .DA CFG.Read.netmask .DA CFG.Read.gateway .DA CFG.Read.nameserver .DA CFG.Read.dnsdomain - .DA 0 *-------------------------------------- * DHCP *-------------------------------------- @@ -106,10 +102,10 @@ L.MSG.DHCP.CFG1 .DA MSG.DHCP.CFG1 L.MSG.DHCP.CFG2 .DA MSG.DHCP.CFG2 L.MSG.DHCP.KO .DA MSG.DHCP.KO L.MSG.DHCP.OK .DA MSG.DHCP.OK -L.MSG.DHCP.ND .DA MSG.DHCP.ND L.MSG.DHCP.NA .DA MSG.DHCP.NA L.DHCP.DISC .DA DHCP.DISC L.DHCP.REQ .DA DHCP.REQ + .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib @@ -118,10 +114,24 @@ CS.INIT >LDYA L.LIBTCPIP .9 rts *-------------------------------------- -CS.RUN -.1 >INC.G ArgCount +CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG + >STYA pIPCFG + + ldy #S.IPCFG.DevID + lda (pIPCFG),y + bne .1 + + >LDYA L.MSG.NODEV + >SYSCALL puts + lda #MLI.E.NODEV + sec + rts + +.1 sta IPCFG+S.IPCFG.DevID + + >INC.G ArgIndex >SYSCALL ArgV - bcs .7 + bcs .4 >STYA ZPPtr1 @@ -151,24 +161,28 @@ CS.RUN sta (pData),y bra .1 -.7 -*-------------------------------------- -CS.RUN.STATUS >PUSHBI 0 - >LDYA L.MSG0 - >SYSCALL printf +.4 lda (pIPCFG) S.IPCFG.STATUS + bne CS.RUN.DUMP - >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG - >STYA pIPCFG + jsr CFG.EtcFiles - ldy #S.IPCFG.DevID +* jsr DHCP.INIT +* bcs .8 + +* jsr DHCP.RUN +* jsr DHCP.QUIT + +.8 >PUSHW L.IPCFG + >LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG + +* lda #0 +* sec +* rts +*-------------------------------------- +CS.RUN.DUMP ldy #S.IPCFG.DevID lda (pIPCFG),y - bne .1 - >LDYA L.MSG0.NL - >SYSCALL puts - jmp CS.RUN.DONE - -.1 tax + tax lda Dev.Table,x sta pFD lda Dev.Table+1,x @@ -190,10 +204,7 @@ CS.RUN.STATUS >PUSHBI 0 lda (pIPCFG),y >SYSCALL IOCTL -CS.RUN.DUMP >LDYA L.MSG0.L - >SYSCALL puts - - ldy #DCB.NIC+S.DCB.NIC.MAC+5 +CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 ldx #6 .1 lda (pData),y @@ -360,7 +371,7 @@ CS.RUN.DUMPIP >PUSHBI 0 >LDYA L.MSG2.HOSTNAME >SYSCALL printf -CS.RUN.DONE lda #0 tell TSKMGR that all done ok, but + lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- @@ -392,26 +403,27 @@ Wait.TimeOut ldy #TimeOut lda (pData),y rts *-------------------------------------- - .INB USR/SRC/SBIN/IPCONFIG.S.DEV .INB USR/SRC/SBIN/IPCONFIG.S.DHCP .INB USR/SRC/SBIN/IPCONFIG.S.ETC *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip2" +hLIBTCPIP .BS 1 *-------------------------------------- -OptionList >PSTR "DESdes" -OptionVars .DA #bDHCP,#bETC,#bSet,#bDHCP,#bETC,#bSet +OptionList >PSTR "DEde" +OptionVars .DA #bDHCP,#bETC,#bDHCP,#bETC *-------------------------------------- MSG.USAGE .AS "Usage : IPCONFIG \r\n" .AS " -D : Try to get IP address from DHCP\r\n" .AS " -E : Read ETC files\r\n" .AZ " -S : Set/Reset TCPIP configuration (-E, then -D if required)\r\n" *-------------------------------------- -MSG0 .AZ "TCP/IP Status : " -MSG0.L .AZ "Loaded" -MSG0.NL .AZ "Not Loaded" +MSG.NODEV .AZ "TCP/IP not bound to any device." *-------------------------------------- -MSG1.DEV .AS "Device Configuration :\r\n" +IPCFG .BS S.IPCFG +IOCTL .BS S.IOCTL +*-------------------------------------- +MSG1.DEV .AS "NIC Device Configuration :\r\n" .AS " Device ID : $%h\r\n" .AS " Device Name : %s\r\n" .AS " Device Type : %S\r\n" @@ -433,13 +445,9 @@ MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n" MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n" MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n" MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n" -hLIBTCPIP .BS 1 *-------------------------------------- -DEVNAME .AZ "/DEV/ETH1" -MSG.DEV.KO .AZ "No Device Found, exiting." -MSG.DEV.OK .AZ "Bound To Device : %s\r\n" MSG.CFG .AZ "Reading %s..." -MSG.CFG.KO .AZ "Failed!!! [%h]\r\n" +MSG.CFG.KO .AZ "Not Found. [%h]\r\n" MSG.CFG.OK .AZ "OK." MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..." *-------------------------------------- @@ -448,7 +456,7 @@ TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF" HOSTS .AZ "${ROOT}ETC/HOSTS" HST.SScanF .AZ "%d.%d.%d.%d" *-------------------------------------- -CFG.DefaultHost .AZ "a2osx-XXXX" +CFG.DefaultHost .AZ "a2osx-%H" CFG.Keywords >PSTR "address" >PSTR "netmask" >PSTR "gateway" @@ -462,13 +470,11 @@ CFG.hCfgPath .BS 1 CFG.hCfgFile .BS 1 CFG.IP .BS 4 CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s" -IPCFG .BS S.IPCFG *-------------------------------------- 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.KO .AZ "Time Out [%h].\r\n" MSG.DHCP.OK .AZ "Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n" -MSG.DHCP.ND .AZ "No Device, exiting." MSG.DHCP.NA .AZ "TCPIP Already configured, exiting." *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF @@ -522,11 +528,9 @@ DHCP.REQ.LEN .EQ *-DHCP.REQ .DUMMY .OR 0 DS.START -ArgCount .BS 1 +ArgIndex .BS 1 bDHCP .BS 1 bETC .BS 1 -bSet .BS 1 -IOCTL .BS S.IOCTL DIB .BS S.DIB DCB.NIC .BS S.DCB.NIC TimeOut .BS 1 diff --git a/INC/LIBETALK.I.txt b/INC/LIBETALK.I.txt index dfc60c2c..0b5ce527 100644 --- a/INC/LIBETALK.I.txt +++ b/INC/LIBETALK.I.txt @@ -10,6 +10,12 @@ LIBETALK.GETCFG .EQ 6 LIBETALK.INCOMING .EQ 8 LIBETALK.PULSE .EQ 10 *-------------------------------------- +S.ETKCFG.STATUS .EQ 0 +S.ETKCFG.DevID .EQ 1 +S.ETKCFG.MAC .EQ 2 +* +S.ETKCFG .EQ 8 +*-------------------------------------- MAN SAVE INC/LIBETALK.I LOAD USR/SRC/LIB/LIBETALK.S diff --git a/LIB/LIBETALK.S.txt b/LIB/LIBETALK.S.txt index b50e8a8f..e0651b3b 100644 --- a/LIB/LIBETALK.S.txt +++ b/LIB/LIBETALK.S.txt @@ -10,6 +10,7 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/NIC.I .INB INC/ETH.I + .INB INC/LIBETALK.I *-------------------------------------- ZPFrameInPtr .EQ ZPLIB ZPFrameInLen .EQ ZPLIB+2 @@ -24,6 +25,7 @@ ZPDataOutPtr .EQ ZPLIB+12 ZPDataOutLen .EQ ZPLIB+14 ZPIOCTL .EQ ZPLIB+16 +ZPTmpPtr1 .EQ ZPLIB+18 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -42,21 +44,36 @@ CS.START cld .1 .DA LIB.LOAD .DA LIB.UNLOAD - .DA SETCFG - .DA GETCFG + .DA CFG.SET + .DA CFG.GET .DA INCOMING .DA PULSE *-------------------------------------- +L.ETKCFG .DA ETKCFG .DA 0 *-------------------------------------- LIB.LOAD *-------------------------------------- LIB.UNLOAD + + clc + rts *-------------------------------------- -SETCFG +CFG.SET >PULLW ZPTmpPtr1 IPCFG + + ldy #0 + +.1 lda (ZPTmpPtr1),y + sta ETKCFG,y + iny + cpy #S.ETKCFG + bne .1 + + clc + rts *-------------------------------------- -GETCFG +CFG.GET >LDYA L.ETKCFG clc rts *-------------------------------------- @@ -64,29 +81,27 @@ INCOMING sta hFrameIn >PULLW ZPIOCTL ldy #S.IOCTL.BUFPTR+3 - ldx #3 -.1 lda (ZPIOCTL),y - sta ZPFrameInPtr,x +.1 lda (ZPIOCTL),y Get Frame Ptr & Len + sta ZPFrameInPtr-S.IOCTL.BUFPTR,y dey - dex bpl .1 sec rts *-------------------------------------- -* Expire = every sec -* Retry = every 100 msec +*-------------------------------------- +* A = S.EVT.F *-------------------------------------- PULSE and #S.EVT.F.T1SEC - beq .1 + beq .9 -.1 clc - rts +.9 rts *-------------------------------------- CS.END *-------------------------------------- hFrameIn .BS 1 +ETKCFG .BS S.ETKCFG *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBETALK.S diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index f0c5e850..bce8111c 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -189,12 +189,14 @@ LIB.UNLOAD.8 clc rts *-------------------------------------- INCOMING sta hFrameIn - ldx #3 + + >PULLW ZPTmpPtr1 + ldy #S.IOCTL.BUFPTR+3 -.10 lda IOCTL+S.IOCTL.BUFPTR,x Get Frame Ptr & Len - sta ZPFrameInPtr,x - dex - bpl .10 +.1 lda (ZPTmpPtr1),y Get Frame Ptr & Len + sta ZPFrameInPtr-S.IOCTL.BUFPTR,y + dey + bpl .1 ldy #S.ETH.EII.TYPE lda (ZPFrameInPtr),y @@ -203,24 +205,23 @@ INCOMING sta hFrameIn lda (ZPFrameInPtr),y cmp #S.ETH.EII.TYPE.ARP - bne .1 + bne .2 cpx /S.ETH.EII.TYPE.ARP - bne .1 + bne .2 jmp ARP.IN -.1 cmp #S.ETH.EII.TYPE.IP +.2 cmp #S.ETH.EII.TYPE.IP bne .9 cpx /S.ETH.EII.TYPE.IP bne .9 jmp IP.IN -.9 lda hFrameIn - >SYSCALL FreeMem - -.99 rts +.9 sec + rts *-------------------------------------- +* A = S.EVT.F * Expire = every sec * Retry = every 100 msec *-------------------------------------- diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index ba5e5be8..9ffc83f9 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -18,7 +18,7 @@ AUTO 4,1 .DUMMY .OR ZPBIN ZS.START -* MyPtr .BS 2 +pIPCFG .BS 2 ZS.END .ED *-------------------------------------- @@ -70,7 +70,7 @@ CS.RUN >PUSHBI 0 sec rts -.1 sta hFD +.1 sta DevID >PUSHW L.DEVNAME >PUSHBI 2 @@ -81,6 +81,13 @@ CS.RUN >PUSHBI 0 >SYSCALL LoadLib bcs .2 sta hLIBTCPIP + + >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG + >STYA pIPCFG + + ldy #S.IPCFG.DevID + lda DevID + sta (pIPCFG),y .2 >LDYA L.LIBETALK >SYSCALL LoadLib @@ -92,7 +99,7 @@ CS.RUN.LOOP >SLEEP >PUSHW L.IOCTL >PUSHBI IOCTL.READ - lda hFD + lda DevID >SYSCALL IOCTL bcs CS.RUN.LOOP No Frame @@ -129,6 +136,7 @@ CS.DOEVENT lda (pEvent) .1 ldx hLIBETALK beq .9 + lda (pEvent) >LIBCALL hLIBETALK,LIBETALK.PULSE @@ -147,7 +155,7 @@ CS.QUIT lda hLIBTCPIP .2 >PUSHWI 0 >PUSHBI IOCTL.CLOSE - lda hFD + lda DevID >SYSCALL IOCTL clc @@ -156,11 +164,11 @@ CS.QUIT lda hLIBTCPIP CS.END *-------------------------------------- DEVNAME .AZ "/DEV/ETH1" -MSG.DEV.KO .AZ "No Device Found, exiting." -MSG.DEV.OK .AZ "Bound To Device : %s\r\n" +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" -hFD .BS 1 +DevID .BS 1 hLIBTCPIP .BS 1 hLIBETALK .BS 1 IOCTL .BS S.IOCTL