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
>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

View File

@ -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

View File

@ -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

View File

@ -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