diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 25902993..eb47e53e 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 45b954f4..e2d079c8 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index b8bfebb4..069ab29f 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -30,16 +30,13 @@ CFG.Init >PUSHBI 0 CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem - bcc .1 - rts + bcs .9 + + >STYA ZPTmpPtr1 + stx CFG.hBuf1 -.1 >STYA ZPTmpPtr1 - stx CFG.hBuf - - >PUSHW L.HOSTNAME - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf + >LDYA L.HOSTNAME + jsr CFG.Read.PrintF jsr CFG.Read.HOSTNAME @@ -63,10 +60,8 @@ CFG.EtcFiles >LDYAI 256 sta IPCFG+S.IPCFG.HOSTNAME+8 stx IPCFG+S.IPCFG.HOSTNAME+9 -.4 >PUSHW L.TCPIP.CONF - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf +.4 >LDYA L.TCPIP.CONF + jsr CFG.Read.PrintF jsr CFG.Read.TCPIP.CONF @@ -76,20 +71,24 @@ CFG.EtcFiles >LDYAI 256 lda #S.IPCFG.STATUS.OK sta IPCFG+S.IPCFG.STATUS -.5 >PUSHW L.HOSTS - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf +.5 >LDYA L.HOSTS + jsr CFG.Read.PrintF jsr CFG.Read.HOSTS jsr SET.IPCFG.I - lda CFG.hBuf + lda CFG.hBuf1 >SYSCALL freemem .9 rts *-------------------------------------- +CFG.Read.PrintF >PUSHYA + >PUSHBI 2 + >LDYA L.MSG.CFG + >SYSCALL printf + rts +*-------------------------------------- CFG.Read.HOSTNAME >LDYA L.HOSTNAME jsr CFG.Read.Open @@ -252,13 +251,28 @@ CFG.Read.dnsdomain sta IPCFG+S.IPCFG.DOMAIN,y .8 rts *-------------------------------------- - -*-------------------------------------- -CFG.Read.HOSTS >LDYA L.HOSTS +CFG.Read.HOSTS stz CFG.hBuf2 + stz CFG.hBuf3 + + >LDYA L.HOSTS jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPTmpPtr2 + stx CFG.hBuf2 + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPTmpPtr3 + stx CFG.hBuf3 + .1 jsr CFG.Read.GetS bcs .8 @@ -274,10 +288,10 @@ CFG.Read.HOSTS >LDYA L.HOSTS bcc .1 less than 5 parameters, ignore beq .2 no alias - >LDYA L.CFG.ALIAS + >LDYA ZPTmpPtr3 jsr CFG.DNS.Add -.2 >LDYA L.CFG.HOSTNAME +.2 >LDYA ZPTmpPtr2 jsr CFG.DNS.Add bra .1 @@ -285,11 +299,21 @@ CFG.Read.HOSTS >LDYA L.HOSTS .8 clc .HS B0 BCS .9 sec - jmp CFG.Read.Close + + php + pha + lda CFG.hBuf3 + beq .90 + >SYSCALL freemem +.90 lda CFG.hBuf2 + beq .91 + >SYSCALL freemem + +.91 jmp CFG.Read.Close2 *-------------------------------------- CFG.Read.HOSTS.Scan - >PUSHW L.CFG.ALIAS - >PUSHW L.CFG.HOSTNAME + >PUSHW ZPTmpPtr3 + >PUSHW ZPTmpPtr2 ldx #3 @@ -313,28 +337,35 @@ CFG.Read.HOSTS.Scan *-------------------------------------- CFG.DNS.ADD >STYA ZPTmpPtr1 - >LDYA L.CFG.IP - >STYA ZPTmpPtr2 - - >PUSHYA - >PUSHW ZPTmpPtr1 - jsr DNS.Add - >PUSHW ZPTmpPtr1 ldy #3 -.1 lda (ZPTmpPtr2),y +.1 lda CFG.IP,y >PUSHA dey bpl .1 + >PUSHBI 6 >LDYA L.MSG.DNS.ADD - bcc .8 - >LDYA L.MSG.DNS.ERR -.8 >PUSHBI 2 >SYSCALL printf - + + >LDYA L.CFG.IP + + >PUSHYA + >PUSHW ZPTmpPtr1 + jsr DNS.Add +*-------------------------------------- +CFG.Read.Result bcc .1 + >PUSHA + >PUSHBI 1 + >LDYA L.MSG.CFG.KO + >SYSCALL printf + sec + rts + +.1 >LDYA L.MSG.CFG.OK + >SYSCALL puts rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile @@ -360,6 +391,8 @@ CFG.Read.Open stz CFG.hCfgFile *-------------------------------------- CFG.Read.Close php pha + +CFG.Read.Close2 lda CFG.hCfgPath beq .1 >SYSCALL FreeMem @@ -372,18 +405,6 @@ CFG.Read.Close php plp rts *-------------------------------------- -CFG.Read.Result bcc .1 - >PUSHA - >PUSHBI 1 - >LDYA L.MSG.CFG.KO - >SYSCALL printf - sec - rts - -.1 >LDYA L.MSG.CFG.OK - >SYSCALL puts - rts -*-------------------------------------- CFG.Read.GetS >PUSHWI 255 >PUSHW ZPTmpPtr1 lda CFG.hCfgFile diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index c3380cb0..27137604 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -54,24 +54,12 @@ DNS.Query.I jsr DNS.FIND.BY.NAME rts *-------------------------------------- DNS.REQUEST lda hDNSSocket1 - bne .10 - lda #ERR.DNS.ERROR - sec - rts + beq .99 -.10 jsr DNS.CSTR2DNS - - ldx #0 - ldy #DNS.MSG.NAME-DNS.MSG + jsr DNS.CSTR2DNS Y=DNS string len+0 + bcs .99 -.1 lda DNS.Hostname,x - sta DNS.MSG,y - beq .2 - inx iny - bne .1 - -.2 iny lda /S.DNS.QTYPE.A sta DNS.MSG,y iny @@ -106,22 +94,80 @@ DNS.REQUEST lda hDNSSocket1 jsr DNS.ADD.I bcs .9 - >PUSHB hDNSSocket1 - >PUSHW L.DNS.MSG - >PUSHW DNS.MSG.LEN - jsr SKT.Send + lda hDNSSocket1 + jsr DNS.REQUEST.SEND + bcs .99 lda hDNSSocket2 - beq .3 + beq .8 - >PUSHB hDNSSocket2 - >PUSHW L.DNS.MSG - >PUSHW DNS.MSG.LEN + jsr DNS.REQUEST.SEND jsr SKT.Send - -.3 lda #ERR.DNS.PENDING + bcc .8 + +.99 lda #ERR.DNS.ERROR .9 sec rts + +.8 lda #ERR.DNS.PENDING + sec + rts +*-------------------------------------- +DNS.REQUEST.SEND + >PUSHA + >PUSHW L.DNS.MSG + >PUSHW DNS.MSG.LEN + jmp SKT.Send +*-------------------------------------- +DNS.CSTR2DNS lda (ZPPtrDNS) + beq .9 + + >LDYA ZPPtrDNS + >SYSCALL strlen + + tax + bne .9 + + cpy #K.DNS.MAXLEN-1 + bcs .9 + + lda #0 Ending 0 + sta DNS.MSG.NAME+1,y + + phy save len for later + + ldx #0 + dey + +.1 lda (ZPPtrDNS),y + and #$7f + cmp #'.' + beq .2 + + cmp #'A' + bcc .10 + cmp #'Z'+1 + bcs .10 + adc #$20 + +.10 inx + bra .3 + +.2 txa + ldx #0 + +.3 sta DNS.MSG.NAME+1,y + dey + bpl .1 + + stx DNS.MSG.NAME + + ply Get back Len + clc + rts + +.9 sec + rts */-------------------------------------- * # DNS.Add * Add a static DNS record @@ -487,53 +533,6 @@ DNS.DecodeMsg sta hFrameIn clc rts *-------------------------------------- -DNS.CSTR2DNS lda (ZPPtrDNS) - beq .9 - - >LDYA ZPPtrDNS - >SYSCALL strlen - - tax - bne .9 - - cpy #K.DNS.MAXLEN-1 - bcs .9 - - lda #0 Ending 0 - sta DNS.HostName+1,y - - ldx #0 - dey - -.1 lda (ZPPtrDNS),y - and #$7f - cmp #'.' - beq .2 - - cmp #'A' - bcc .10 - cmp #'Z'+1 - bcs .10 - adc #$20 - -.10 inx - bra .3 - -.2 txa - ldx #0 - -.3 sta DNS.HostName+1,y - dey - bpl .1 - - stx DNS.HostName - - clc - rts - -.9 sec - rts -*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.DNS LOAD /A2OSX.SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 05d1ad0b..46b8aead 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -91,14 +91,11 @@ L.MSG.CFG .DA MSG.CFG L.MSG.CFG.KO .DA MSG.CFG.KO L.MSG.CFG.OK .DA MSG.CFG.OK L.MSG.DNS.ADD .DA MSG.DNS.ADD -L.MSG.DNS.ERR .DA MSG.DNS.ERR L.HOSTNAME .DA HOSTNAME L.TCPIP.CONF .DA TCPIP.CONF L.HOSTS .DA HOSTS L.IPCFG .DA IPCFG L.CFG.IP .DA CFG.IP -L.CFG.HOSTNAME .DA CFG.HOSTNAME -L.CFG.ALIAS .DA CFG.ALIAS L.CFG.HOSTS.SScanF .DA CFG.HOSTS.SScanF L.CFG.Keywords .DA CFG.Keywords J.CFG.Keywords .DA CFG.Read.address @@ -264,8 +261,7 @@ MSG.DEV.OK .AZ "TCPIPD:Bound To Device : %s\r\n" MSG.CFG .AZ "TCPIPD:Reading %s..." MSG.CFG.KO .AZ "Failed!!! [%h]\r\n" MSG.CFG.OK .AZ "OK." -MSG.DNS.ADD .AZ "Added static host %d.%d.%d.%d %s\r\n" -MSG.DNS.ERR .AZ "***ERROR adding static host %d.%d.%d.%d %s\r\n" +MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..." *-------------------------------------- HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME" TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF" @@ -278,12 +274,12 @@ CFG.Keywords >PSTR "address" >PSTR "nameserver" >PSTR "dnsdomain" .DA #0 -CFG.hBuf .BS 1 +CFG.hBuf1 .BS 1 +CFG.hBuf2 .BS 1 +CFG.hBuf3 .BS 1 CFG.hCfgPath .BS 1 CFG.hCfgFile .BS 1 CFG.IP .BS 4 -CFG.HostName .BS K.DNS.MAXLEN+1 -CFG.Alias .BS K.DNS.MAXLEN+1 CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s" *-------------------------------------- FD.SSOCK .BS 1 S.FD.HANDLER @@ -334,7 +330,6 @@ DNS.SOCKET.SP .DA 0 Dynamic DNS.SOCKET.DA .BS 4 DNS.SOCKET.DP .DA UDP.PORT.DNS *-------------------------------------- -DNS.MSG.LEN .BS 2 DNS.MSG DNS.MSG.ID .BS 2 .DA /S.DNS.F.RD Flags=query @@ -343,6 +338,8 @@ DNS.MSG.ID .BS 2 .BS 6 ANCOUNT,NSCOUNT,ARCOUNT DNS.MSG.NAME .BS K.DNS.MAXLEN+6 *-------------------------------------- +DNS.MSG.LEN .BS 2 +*-------------------------------------- FRM.QUEUE.Tail .BS 1 FRM.QUEUE.Head .BS 1 FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE @@ -356,7 +353,6 @@ hSocketTable .BS 1 DYNPORT.LAST .DA K.DYNPORT.START hDNSSocket1 .BS 1 hDNSSocket2 .BS 1 -DNS.HostName .BS K.DNS.MAXLEN+1 DNS.TmpCache .BS S.DNSCACHE ARP.TmpCache .BS S.ARP SKT.Template .BS S.SOCKET diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index 9d179cdd..b534e4c2 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -102,6 +102,7 @@ CS.INIT >LDYA L.LIBTCPIP .98 >LDYA L.MSG.CFG.ND bra .90 .99 >LDYA L.MSG.CFG.NA + .90 >SYSCALL puts lda #0 sec