Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-09-10 17:07:26 +02:00
parent d8ac678572
commit 345bf1dfba
6 changed files with 149 additions and 132 deletions

Binary file not shown.

Binary file not shown.

View File

@ -30,16 +30,13 @@ CFG.Init >PUSHBI 0
CFG.EtcFiles >LDYAI 256 CFG.EtcFiles >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcc .1 bcs .9
rts
>STYA ZPTmpPtr1
stx CFG.hBuf1
.1 >STYA ZPTmpPtr1 >LDYA L.HOSTNAME
stx CFG.hBuf jsr CFG.Read.PrintF
>PUSHW L.HOSTNAME
>PUSHBI 2
>LDYA L.MSG.CFG
>SYSCALL printf
jsr CFG.Read.HOSTNAME jsr CFG.Read.HOSTNAME
@ -63,10 +60,8 @@ CFG.EtcFiles >LDYAI 256
sta IPCFG+S.IPCFG.HOSTNAME+8 sta IPCFG+S.IPCFG.HOSTNAME+8
stx IPCFG+S.IPCFG.HOSTNAME+9 stx IPCFG+S.IPCFG.HOSTNAME+9
.4 >PUSHW L.TCPIP.CONF .4 >LDYA L.TCPIP.CONF
>PUSHBI 2 jsr CFG.Read.PrintF
>LDYA L.MSG.CFG
>SYSCALL printf
jsr CFG.Read.TCPIP.CONF jsr CFG.Read.TCPIP.CONF
@ -76,20 +71,24 @@ CFG.EtcFiles >LDYAI 256
lda #S.IPCFG.STATUS.OK lda #S.IPCFG.STATUS.OK
sta IPCFG+S.IPCFG.STATUS sta IPCFG+S.IPCFG.STATUS
.5 >PUSHW L.HOSTS .5 >LDYA L.HOSTS
>PUSHBI 2 jsr CFG.Read.PrintF
>LDYA L.MSG.CFG
>SYSCALL printf
jsr CFG.Read.HOSTS jsr CFG.Read.HOSTS
jsr SET.IPCFG.I jsr SET.IPCFG.I
lda CFG.hBuf lda CFG.hBuf1
>SYSCALL freemem >SYSCALL freemem
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CFG.Read.PrintF >PUSHYA
>PUSHBI 2
>LDYA L.MSG.CFG
>SYSCALL printf
rts
*--------------------------------------
CFG.Read.HOSTNAME CFG.Read.HOSTNAME
>LDYA L.HOSTNAME >LDYA L.HOSTNAME
jsr CFG.Read.Open jsr CFG.Read.Open
@ -252,13 +251,28 @@ 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
*-------------------------------------- stz CFG.hBuf3
CFG.Read.HOSTS >LDYA L.HOSTS
>LDYA L.HOSTS
jsr CFG.Read.Open jsr CFG.Read.Open
jsr CFG.Read.Result jsr CFG.Read.Result
bcs .9 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 .1 jsr CFG.Read.GetS
bcs .8 bcs .8
@ -274,10 +288,10 @@ CFG.Read.HOSTS >LDYA L.HOSTS
bcc .1 less than 5 parameters, ignore bcc .1 less than 5 parameters, ignore
beq .2 no alias beq .2 no alias
>LDYA L.CFG.ALIAS >LDYA ZPTmpPtr3
jsr CFG.DNS.Add jsr CFG.DNS.Add
.2 >LDYA L.CFG.HOSTNAME .2 >LDYA ZPTmpPtr2
jsr CFG.DNS.Add jsr CFG.DNS.Add
bra .1 bra .1
@ -285,11 +299,21 @@ CFG.Read.HOSTS >LDYA L.HOSTS
.8 clc .8 clc
.HS B0 BCS .HS B0 BCS
.9 sec .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 CFG.Read.HOSTS.Scan
>PUSHW L.CFG.ALIAS >PUSHW ZPTmpPtr3
>PUSHW L.CFG.HOSTNAME >PUSHW ZPTmpPtr2
ldx #3 ldx #3
@ -313,28 +337,35 @@ CFG.Read.HOSTS.Scan
*-------------------------------------- *--------------------------------------
CFG.DNS.ADD >STYA ZPTmpPtr1 CFG.DNS.ADD >STYA ZPTmpPtr1
>LDYA L.CFG.IP
>STYA ZPTmpPtr2
>PUSHYA
>PUSHW ZPTmpPtr1
jsr DNS.Add
>PUSHW ZPTmpPtr1 >PUSHW ZPTmpPtr1
ldy #3 ldy #3
.1 lda (ZPTmpPtr2),y .1 lda CFG.IP,y
>PUSHA >PUSHA
dey dey
bpl .1 bpl .1
>PUSHBI 6
>LDYA L.MSG.DNS.ADD >LDYA L.MSG.DNS.ADD
bcc .8
>LDYA L.MSG.DNS.ERR
.8 >PUSHBI 2
>SYSCALL printf >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 rts
*-------------------------------------- *--------------------------------------
CFG.Read.Open stz CFG.hCfgFile CFG.Read.Open stz CFG.hCfgFile
@ -360,6 +391,8 @@ CFG.Read.Open stz CFG.hCfgFile
*-------------------------------------- *--------------------------------------
CFG.Read.Close php CFG.Read.Close php
pha pha
CFG.Read.Close2
lda CFG.hCfgPath lda CFG.hCfgPath
beq .1 beq .1
>SYSCALL FreeMem >SYSCALL FreeMem
@ -372,18 +405,6 @@ CFG.Read.Close php
plp plp
rts 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 CFG.Read.GetS >PUSHWI 255
>PUSHW ZPTmpPtr1 >PUSHW ZPTmpPtr1
lda CFG.hCfgFile lda CFG.hCfgFile

View File

@ -54,24 +54,12 @@ DNS.Query.I jsr DNS.FIND.BY.NAME
rts rts
*-------------------------------------- *--------------------------------------
DNS.REQUEST lda hDNSSocket1 DNS.REQUEST lda hDNSSocket1
bne .10 beq .99
lda #ERR.DNS.ERROR
sec
rts
.10 jsr DNS.CSTR2DNS jsr DNS.CSTR2DNS Y=DNS string len+0
bcs .99
ldx #0
ldy #DNS.MSG.NAME-DNS.MSG
.1 lda DNS.Hostname,x
sta DNS.MSG,y
beq .2
inx
iny iny
bne .1
.2 iny
lda /S.DNS.QTYPE.A lda /S.DNS.QTYPE.A
sta DNS.MSG,y sta DNS.MSG,y
iny iny
@ -106,22 +94,80 @@ DNS.REQUEST lda hDNSSocket1
jsr DNS.ADD.I jsr DNS.ADD.I
bcs .9 bcs .9
>PUSHB hDNSSocket1 lda hDNSSocket1
>PUSHW L.DNS.MSG jsr DNS.REQUEST.SEND
>PUSHW DNS.MSG.LEN bcs .99
jsr SKT.Send
lda hDNSSocket2 lda hDNSSocket2
beq .3 beq .8
>PUSHB hDNSSocket2 jsr DNS.REQUEST.SEND
>PUSHW L.DNS.MSG
>PUSHW DNS.MSG.LEN
jsr SKT.Send jsr SKT.Send
bcc .8
.3 lda #ERR.DNS.PENDING
.99 lda #ERR.DNS.ERROR
.9 sec .9 sec
rts 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 * # DNS.Add
* Add a static DNS record * Add a static DNS record
@ -487,53 +533,6 @@ DNS.DecodeMsg sta hFrameIn
clc clc
rts 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 MAN
SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.DNS SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.DNS
LOAD /A2OSX.SRC/LIB/LIBTCPIP.S LOAD /A2OSX.SRC/LIB/LIBTCPIP.S

View File

@ -91,14 +91,11 @@ L.MSG.CFG .DA MSG.CFG
L.MSG.CFG.KO .DA MSG.CFG.KO L.MSG.CFG.KO .DA MSG.CFG.KO
L.MSG.CFG.OK .DA MSG.CFG.OK L.MSG.CFG.OK .DA MSG.CFG.OK
L.MSG.DNS.ADD .DA MSG.DNS.ADD L.MSG.DNS.ADD .DA MSG.DNS.ADD
L.MSG.DNS.ERR .DA MSG.DNS.ERR
L.HOSTNAME .DA HOSTNAME 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.CFG.IP .DA CFG.IP 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.HOSTS.SScanF .DA CFG.HOSTS.SScanF
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
@ -264,8 +261,7 @@ MSG.DEV.OK .AZ "TCPIPD:Bound To Device : %s\r\n"
MSG.CFG .AZ "TCPIPD:Reading %s..." MSG.CFG .AZ "TCPIPD:Reading %s..."
MSG.CFG.KO .AZ "Failed!!! [%h]\r\n" MSG.CFG.KO .AZ "Failed!!! [%h]\r\n"
MSG.CFG.OK .AZ "OK." MSG.CFG.OK .AZ "OK."
MSG.DNS.ADD .AZ "Added static host %d.%d.%d.%d %s\r\n" MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..."
MSG.DNS.ERR .AZ "***ERROR adding static host %d.%d.%d.%d %s\r\n"
*-------------------------------------- *--------------------------------------
HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME" HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME"
TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF" TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF"
@ -278,12 +274,12 @@ CFG.Keywords >PSTR "address"
>PSTR "nameserver" >PSTR "nameserver"
>PSTR "dnsdomain" >PSTR "dnsdomain"
.DA #0 .DA #0
CFG.hBuf .BS 1 CFG.hBuf1 .BS 1
CFG.hBuf2 .BS 1
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.HostName .BS K.DNS.MAXLEN+1
CFG.Alias .BS K.DNS.MAXLEN+1
CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s" CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s"
*-------------------------------------- *--------------------------------------
FD.SSOCK .BS 1 S.FD.HANDLER FD.SSOCK .BS 1 S.FD.HANDLER
@ -334,7 +330,6 @@ DNS.SOCKET.SP .DA 0 Dynamic
DNS.SOCKET.DA .BS 4 DNS.SOCKET.DA .BS 4
DNS.SOCKET.DP .DA UDP.PORT.DNS DNS.SOCKET.DP .DA UDP.PORT.DNS
*-------------------------------------- *--------------------------------------
DNS.MSG.LEN .BS 2
DNS.MSG DNS.MSG
DNS.MSG.ID .BS 2 DNS.MSG.ID .BS 2
.DA /S.DNS.F.RD Flags=query .DA /S.DNS.F.RD Flags=query
@ -343,6 +338,8 @@ DNS.MSG.ID .BS 2
.BS 6 ANCOUNT,NSCOUNT,ARCOUNT .BS 6 ANCOUNT,NSCOUNT,ARCOUNT
DNS.MSG.NAME .BS K.DNS.MAXLEN+6 DNS.MSG.NAME .BS K.DNS.MAXLEN+6
*-------------------------------------- *--------------------------------------
DNS.MSG.LEN .BS 2
*--------------------------------------
FRM.QUEUE.Tail .BS 1 FRM.QUEUE.Tail .BS 1
FRM.QUEUE.Head .BS 1 FRM.QUEUE.Head .BS 1
FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE
@ -356,7 +353,6 @@ hSocketTable .BS 1
DYNPORT.LAST .DA K.DYNPORT.START DYNPORT.LAST .DA K.DYNPORT.START
hDNSSocket1 .BS 1 hDNSSocket1 .BS 1
hDNSSocket2 .BS 1 hDNSSocket2 .BS 1
DNS.HostName .BS K.DNS.MAXLEN+1
DNS.TmpCache .BS S.DNSCACHE DNS.TmpCache .BS S.DNSCACHE
ARP.TmpCache .BS S.ARP ARP.TmpCache .BS S.ARP
SKT.Template .BS S.SOCKET SKT.Template .BS S.SOCKET

View File

@ -102,6 +102,7 @@ CS.INIT >LDYA L.LIBTCPIP
.98 >LDYA L.MSG.CFG.ND .98 >LDYA L.MSG.CFG.ND
bra .90 bra .90
.99 >LDYA L.MSG.CFG.NA .99 >LDYA L.MSG.CFG.NA
.90 >SYSCALL puts .90 >SYSCALL puts
lda #0 lda #0
sec sec