mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-06 12:29:02 +00:00
Kernel 0.92
This commit is contained in:
parent
d810414e18
commit
34d23b68fc
Binary file not shown.
@ -3,11 +3,11 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DHCP.INIT lda IPCFG+S.IPCFG.STATUS
|
DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
||||||
and #S.IPCFG.STATUS.OK
|
and #S.IPCFG.STATUS.OK
|
||||||
bne .99 Already Configured, exit
|
bne .99 Already Configured, exit
|
||||||
|
|
||||||
stz IPCFG+S.IPCFG.STATUS
|
stz IPCFG+S.NETCFG.STATUS
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ DHCP.INIT lda IPCFG+S.IPCFG.STATUS
|
|||||||
|
|
||||||
ldx #5
|
ldx #5
|
||||||
|
|
||||||
.2 lda IPCFG+S.IPCFG.MAC,x
|
.2 lda IPCFG+S.NETCFG.MAC,x
|
||||||
sta DHCP.DISC.CHADDR,x
|
sta DHCP.DISC.CHADDR,x
|
||||||
sta DHCP.REQ.CHADDR,x
|
sta DHCP.REQ.CHADDR,x
|
||||||
dex
|
dex
|
||||||
@ -196,14 +196,14 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||||||
cmp #S.DHCP.OPTIONS.DHCPOffer
|
cmp #S.DHCP.OPTIONS.DHCPOffer
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldy #S.DHCP.GIADDR+3
|
* ldy #S.DHCP.YIADDR+11 Copy YIADDR,SIADDR+GIADDR
|
||||||
ldx #3
|
* ldx #11
|
||||||
|
|
||||||
.1 lda (ZPFrameBase),y
|
*.1 lda (ZPFrameBase),y
|
||||||
sta DHCP.REQ.GIADDR,x
|
* sta DHCP.REQ.YIADDR,x
|
||||||
dey
|
* dey
|
||||||
dex
|
* dex
|
||||||
bpl .1
|
* bpl .1
|
||||||
|
|
||||||
ldy #S.DHCP.YIADDR+3
|
ldy #S.DHCP.YIADDR+3
|
||||||
ldx #3
|
ldx #3
|
||||||
@ -215,15 +215,20 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
ldy #S.IP.SRC+3
|
ldy #S.DHCP.SIADDR+3
|
||||||
ldx #3
|
lda (ZPFrameBase),y
|
||||||
|
bne .3
|
||||||
|
|
||||||
.3 lda (ZPFrameBase),y
|
ldy #S.IP.SRC+3
|
||||||
sta DHCP.REQ.OPT.SVRIP,x
|
|
||||||
|
.3 ldx #3
|
||||||
|
|
||||||
|
.4 lda (ZPFrameBase),y
|
||||||
sta IPCFG+S.IPCFG.DHCPSRVR,x
|
sta IPCFG+S.IPCFG.DHCPSRVR,x
|
||||||
|
sta DHCP.REQ.OPT.SVRIP,x
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .3
|
bpl .4
|
||||||
|
|
||||||
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
|
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
|
||||||
bne .6
|
bne .6
|
||||||
@ -239,7 +244,7 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||||||
.7 lda (ZPFramePtr)
|
.7 lda (ZPFramePtr)
|
||||||
cmp #S.DHCP.OPTIONS.END
|
cmp #S.DHCP.OPTIONS.END
|
||||||
beq .8
|
beq .8
|
||||||
jsr GetDHCPOption
|
jsr GetDHCPOption May override SVRIP
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.8 jsr CS.RUN.DISCARD
|
.8 jsr CS.RUN.DISCARD
|
||||||
@ -267,24 +272,37 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
|
|||||||
ldx #S.IPCFG.DNS1
|
ldx #S.IPCFG.DNS1
|
||||||
bra GetDHCPOption.CopyIP
|
bra GetDHCPOption.CopyIP
|
||||||
|
|
||||||
.3 cmp #S.DHCP.OPTIONS.DOMAIN
|
.3 cmp #S.DHCP.OPTIONS.SRVID
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
ldy #5
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.31 lda (ZPFramePtr),y
|
||||||
|
sta DHCP.REQ.OPT.SVRIP,x
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .31
|
||||||
|
rts
|
||||||
|
|
||||||
|
.4 cmp #S.DHCP.OPTIONS.DOMAIN
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
lda (ZPFramePtr),y Get String len
|
lda (ZPFramePtr),y Get String len
|
||||||
cmp #80
|
cmp #45
|
||||||
bcc .4
|
bcc .6
|
||||||
lda #79
|
lda #44
|
||||||
|
|
||||||
.4 sta IPCFG+S.IPCFG.DOMAIN store len
|
.6 sta IPCFG+S.IPCFG.DOMAIN store len
|
||||||
tax
|
tax
|
||||||
|
|
||||||
.5 iny
|
.7 iny
|
||||||
lda (ZPFramePtr),y
|
lda (ZPFramePtr),y
|
||||||
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
||||||
dex
|
dex
|
||||||
bne .5
|
bne .7
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -5,9 +5,10 @@ AUTO 4,1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.EtcFiles >LDYAI 256
|
CFG.EtcFiles >LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcc .1
|
||||||
|
rts
|
||||||
>STYA ZPTmpPtr1
|
|
||||||
|
.1 >STYA ZPTmpPtr1
|
||||||
stx CFG.hBuf1
|
stx CFG.hBuf1
|
||||||
|
|
||||||
>LDYA L.HOSTNAME
|
>LDYA L.HOSTNAME
|
||||||
@ -31,15 +32,18 @@ CFG.EtcFiles >LDYAI 256
|
|||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
lda #S.IPCFG.STATUS.OK
|
lda #S.IPCFG.STATUS.OK
|
||||||
sta IPCFG+S.IPCFG.STATUS
|
sta IPCFG+S.NETCFG.STATUS
|
||||||
|
|
||||||
.5 >LDYA L.HOSTS
|
.5 >LDYA L.HOSTS
|
||||||
jsr CFG.Read.PrintF
|
jsr CFG.Read.PrintF
|
||||||
jsr CFG.Read.HOSTS
|
jsr CFG.Read.HOSTS
|
||||||
|
|
||||||
|
>PUSHW L.IPCFG
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
||||||
|
|
||||||
lda CFG.hBuf1
|
lda CFG.hBuf1
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.Read.PrintF >PUSHYA
|
CFG.Read.PrintF >PUSHYA
|
||||||
@ -296,19 +300,6 @@ CFG.Read.HOSTS.Scan
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.DNS.ADD >STYA ZPTmpPtr1
|
CFG.DNS.ADD >STYA ZPTmpPtr1
|
||||||
|
|
||||||
>PUSHW ZPTmpPtr1
|
|
||||||
|
|
||||||
ldy #3
|
|
||||||
|
|
||||||
.1 lda CFG.IP,y
|
|
||||||
>PUSHA
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
>PUSHBI 6
|
|
||||||
>LDYA L.MSG.DNS.ADD
|
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
>LDYA L.CFG.IP
|
>LDYA L.CFG.IP
|
||||||
|
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
@ -13,6 +13,7 @@ AUTO 4,1
|
|||||||
.INB INC/MLI.E.I
|
.INB INC/MLI.E.I
|
||||||
.INB INC/NIC.I
|
.INB INC/NIC.I
|
||||||
.INB INC/ETH.I
|
.INB INC/ETH.I
|
||||||
|
.INB INC/LIB.NET.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
.INB INC/NET.DHCP.I
|
.INB INC/NET.DHCP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -73,7 +74,6 @@ L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
|||||||
L.MSG.CFG .DA MSG.CFG
|
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.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
|
||||||
@ -121,7 +121,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
|
|||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
bne CS.RUN.SETUP
|
bne CS.RUN.SETUP
|
||||||
|
|
||||||
>LDYA L.MSG.NODEV
|
>LDYA L.MSG.NODEV
|
||||||
@ -163,7 +163,7 @@ CS.RUN.SETUP
|
|||||||
sta (pData),y
|
sta (pData),y
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 lda IPCFG+S.IPCFG.STATUS
|
.4 lda IPCFG+S.NETCFG.STATUS
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
lda #$ff no config, force all
|
lda #$ff no config, force all
|
||||||
@ -189,15 +189,12 @@ CS.RUN.SETUP
|
|||||||
|
|
||||||
jsr DHCP.QUIT
|
jsr DHCP.QUIT
|
||||||
|
|
||||||
.8 >PUSHW L.IPCFG
|
.8 lda #0
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DUMP >PUSHEA.G DIB
|
CS.RUN.DUMP >PUSHEA.G DIB
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>SYSCALL GetDevStatus
|
>SYSCALL GetDevStatus
|
||||||
|
|
||||||
>LEA.G DCB.NIC
|
>LEA.G DCB.NIC
|
||||||
@ -207,7 +204,7 @@ CS.RUN.DUMP >PUSHEA.G DIB
|
|||||||
|
|
||||||
>PUSHEA.G IOCTL
|
>PUSHEA.G IOCTL
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
||||||
@ -221,7 +218,7 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
|||||||
|
|
||||||
>PUSHEA.G DIB+S.DIB.IDS
|
>PUSHEA.G DIB+S.DIB.IDS
|
||||||
|
|
||||||
ldx IPCFG+S.IPCFG.DevID
|
ldx IPCFG+S.NETCFG.DevID
|
||||||
lda Dev.Table,x
|
lda Dev.Table,x
|
||||||
clc
|
clc
|
||||||
adc #S.FD.DEV
|
adc #S.FD.DEV
|
||||||
@ -231,7 +228,7 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
|||||||
|
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 11
|
>PUSHBI 11
|
||||||
>LDYA L.MSG1.DEV
|
>LDYA L.MSG1.DEV
|
||||||
@ -299,7 +296,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
|
|||||||
CS.RUN.DUMPIP >PUSHBI 0
|
CS.RUN.DUMPIP >PUSHBI 0
|
||||||
>LDYA L.MSG2
|
>LDYA L.MSG2
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
lda IPCFG+S.IPCFG.STATUS
|
lda IPCFG+S.NETCFG.STATUS
|
||||||
and #S.IPCFG.STATUS.OK
|
and #S.IPCFG.STATUS.OK
|
||||||
beq .11
|
beq .11
|
||||||
|
|
||||||
@ -430,10 +427,9 @@ 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.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n"
|
||||||
MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n"
|
MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.CFG .AZ "Reading %s..."
|
MSG.CFG .AZ "IPCONFIG:Reading %s..."
|
||||||
MSG.CFG.KO .AZ "Not Found. [%h]\r\n"
|
MSG.CFG.KO .AZ "Not Found. [%h]\r\n"
|
||||||
MSG.CFG.OK .AZ "OK."
|
MSG.CFG.OK .AZ "OK."
|
||||||
MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..."
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HOSTNAME .AZ "${ROOT}ETC/HOSTNAME"
|
HOSTNAME .AZ "${ROOT}ETC/HOSTNAME"
|
||||||
TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF"
|
TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF"
|
||||||
@ -450,11 +446,11 @@ CFG.Keywords >PSTR "address"
|
|||||||
CFG.IP.SScanF .AZ "%d.%d.%d.%d"
|
CFG.IP.SScanF .AZ "%d.%d.%d.%d"
|
||||||
CFG.HOST.SScanF .AZ "%d.%d.%d.%d %s %s"
|
CFG.HOST.SScanF .AZ "%d.%d.%d.%d %s %s"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.DHCP.CFG1 .AZ "Searching for DHCP servers..."
|
MSG.DHCP.CFG1 .AZ "IPCONFIG:Searching for DHCP servers..."
|
||||||
MSG.DHCP.CFG2 .AZ "Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
MSG.DHCP.CFG2 .AZ "IPCONFIG:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
||||||
MSG.DHCP.KO .AZ "Time Out [%h].\r\n"
|
MSG.DHCP.KO .AZ "IPCONFIG:Time Out [%h].\r\n"
|
||||||
MSG.DHCP.OK .AZ "Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n"
|
MSG.DHCP.OK .AZ "IPCONFIG:Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n"
|
||||||
MSG.DHCP.NA .AZ "TCPIP Already configured, exiting."
|
MSG.DHCP.NA .AZ "IPCONFIG:TCPIP Already configured, exiting."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IPCFG .BS S.IPCFG
|
IPCFG .BS S.IPCFG
|
||||||
CFG.hBuf1 .BS 1
|
CFG.hBuf1 .BS 1
|
||||||
@ -498,7 +494,7 @@ DHCP.REQ.XID .BS 4
|
|||||||
.HS 00000000 CIADDR
|
.HS 00000000 CIADDR
|
||||||
DHCP.REQ.YIADDR .HS 00000000
|
DHCP.REQ.YIADDR .HS 00000000
|
||||||
.HS 00000000 SIADDR
|
.HS 00000000 SIADDR
|
||||||
DHCP.REQ.GIADDR .HS 00000000
|
.HS 00000000 GIADDR
|
||||||
DHCP.REQ.CHADDR .HS 00000000.00000000.00000000.00000000
|
DHCP.REQ.CHADDR .HS 00000000.00000000.00000000.00000000
|
||||||
.BS 64 SNAME
|
.BS 64 SNAME
|
||||||
.BS 128 FILE
|
.BS 128 FILE
|
||||||
|
@ -23,8 +23,8 @@ OptionList >PSTR "CRYQcryq"
|
|||||||
OptionVars .DA #bContinue,#bRecurse,#bNoConfirm,#bQuiet,#bContinue,#bRecurse,#bNoConfirm,#bQuiet
|
OptionVars .DA #bContinue,#bRecurse,#bNoConfirm,#bQuiet,#bContinue,#bRecurse,#bNoConfirm,#bQuiet
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.USAGE .AZ "Usage : MV [Src File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -Q : Quiet\r\n -R : Recurse subdirectories\r\n -Y : Dont't prompt for override\r\n"
|
MSG.USAGE .AZ "Usage : MV [Src File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -Q : Quiet\r\n -R : Recurse subdirectories\r\n -Y : Dont't prompt for override\r\n"
|
||||||
MSG.DIR .AZ "MV Dir :%S to %S..."
|
MSG.DIR .AZ "MV Dir :%s to %s..."
|
||||||
MSG.FILE .AZ "MV File:%S to %S..."
|
MSG.FILE .AZ "MV File:%s to %s..."
|
||||||
MSG.OVERWRITE .AZ "Overwrite %S [Yes,No,All]?"
|
MSG.OVERWRITE .AZ "Overwrite %S [Yes,No,All]?"
|
||||||
MSG.OK .AZ "[OK]"
|
MSG.OK .AZ "[OK]"
|
||||||
MSG.ERR .AZ "[%h]\r\n"
|
MSG.ERR .AZ "[%h]\r\n"
|
||||||
|
@ -172,6 +172,7 @@ CS.QUIT lda hLIBTCPIP
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBTCPIP .AZ "libtcpip"
|
LIBTCPIP .AZ "libtcpip"
|
||||||
|
hLIBTCPIP .BS 1
|
||||||
MSG0 .AZ "Type Prot Local Remote Options Status"
|
MSG0 .AZ "Type Prot Local Remote Options Status"
|
||||||
MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n"
|
MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n"
|
||||||
MSG1.T.RAW .AZ "RAW "
|
MSG1.T.RAW .AZ "RAW "
|
||||||
@ -197,7 +198,6 @@ MSG1.S.8 .AZ "FIN-WAIT-2"
|
|||||||
MSG1.S.9 .AZ "CLOSING"
|
MSG1.S.9 .AZ "CLOSING"
|
||||||
MSG1.S.10 .AZ "TIME-WAIT"
|
MSG1.S.10 .AZ "TIME-WAIT"
|
||||||
MSG1.S.INV .AZ "???"
|
MSG1.S.INV .AZ "???"
|
||||||
hLIBTCPIP .BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
@ -23,8 +23,8 @@ OptionList >PSTR "CRYQcryq"
|
|||||||
OptionVars .DA #bContinue,#bRecurse,#bNoConfirm,#bQuiet,#bContinue,#bRecurse,#bNoConfirm,#bQuiet
|
OptionVars .DA #bContinue,#bRecurse,#bNoConfirm,#bQuiet,#bContinue,#bRecurse,#bNoConfirm,#bQuiet
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.USAGE .AZ "Usage : RM [File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -Q : Quiet\r\n -R : Recurse subdirectories\r\n"
|
MSG.USAGE .AZ "Usage : RM [File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -Q : Quiet\r\n -R : Recurse subdirectories\r\n"
|
||||||
MSG.DIR .AZ "RM Dir :%S..."
|
MSG.DIR .AZ "RM Dir :%s..."
|
||||||
MSG.FILE .AZ "RM File:%S..."
|
MSG.FILE .AZ "RM File:%s..."
|
||||||
MSG.OK .AZ "[OK]"
|
MSG.OK .AZ "[OK]"
|
||||||
MSG.ERR .AZ "[%h]\r\n"
|
MSG.ERR .AZ "[%h]\r\n"
|
||||||
MSG.DONE .AZ "%D File(s) Removed.\r\n"
|
MSG.DONE .AZ "%D File(s) Removed.\r\n"
|
||||||
|
@ -12,7 +12,9 @@ LIBNET.PULSE .EQ 10
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.NETCFG.STATUS .EQ 0
|
S.NETCFG.STATUS .EQ 0
|
||||||
S.NETCFG.DevID .EQ 1
|
S.NETCFG.DevID .EQ 1
|
||||||
S.NETCFG.MAC .EQ 2
|
S.NETCFG.DevFlags .EQ 2
|
||||||
|
*
|
||||||
|
S.NETCFG.MAC .EQ 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE INC/LIB.NET.I
|
SAVE INC/LIB.NET.I
|
||||||
|
@ -72,25 +72,27 @@ ERR.ARP.PENDING .EQ $B5
|
|||||||
UDP.PORT.DNS .EQ 53
|
UDP.PORT.DNS .EQ 53
|
||||||
UDP.PORT.PMAP .EQ 111
|
UDP.PORT.PMAP .EQ 111
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.IPCFG.STATUS .EQ 0
|
*S.IPCFG.STATUS .EQ 0
|
||||||
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
||||||
S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent
|
S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent
|
||||||
S.IPCFG.STATUS.ROFFER .EQ %00000010 OFFER Received
|
S.IPCFG.STATUS.ROFFER .EQ %00000010 OFFER Received
|
||||||
S.IPCFG.STATUS.SREQ .EQ %00000100 REQUEST Sent
|
S.IPCFG.STATUS.SREQ .EQ %00000100 REQUEST Sent
|
||||||
S.IPCFG.STATUS.RACK .EQ %00001000 ACK Received
|
S.IPCFG.STATUS.RACK .EQ %00001000 ACK Received
|
||||||
S.IPCFG.STATUS.OK .EQ %10000000 Fully configured (static or DHCP)
|
S.IPCFG.STATUS.OK .EQ %10000000 Fully configured (static or DHCP)
|
||||||
S.IPCFG.DevID .EQ 1
|
*S.IPCFG.DevID .EQ 1
|
||||||
S.IPCFG.MAC .EQ 2
|
*S.IPCFG.DevFlags .EQ 2
|
||||||
S.IPCFG.DHCPSRVR .EQ 8
|
|
||||||
S.IPCFG.IP .EQ 12
|
|
||||||
S.IPCFG.MASK .EQ 16
|
|
||||||
S.IPCFG.GW .EQ 20
|
|
||||||
S.IPCFG.DNS1 .EQ 24
|
|
||||||
S.IPCFG.DNS2 .EQ 28
|
|
||||||
S.IPCFG.HOSTNAME .EQ 32 15+\0 C String
|
|
||||||
S.IPCFG.DOMAIN .EQ 48 79+\0 C String
|
|
||||||
*
|
*
|
||||||
S.IPCFG .EQ 128
|
*S.IPCFG.MAC .EQ 4
|
||||||
|
S.IPCFG.DHCPSRVR .EQ 10
|
||||||
|
S.IPCFG.IP .EQ 14
|
||||||
|
S.IPCFG.MASK .EQ 18
|
||||||
|
S.IPCFG.GW .EQ 22
|
||||||
|
S.IPCFG.DNS1 .EQ 26
|
||||||
|
S.IPCFG.DNS2 .EQ 30
|
||||||
|
S.IPCFG.HOSTNAME .EQ 34 15+\0 C String
|
||||||
|
S.IPCFG.DOMAIN .EQ 50 45+\0 C String
|
||||||
|
*
|
||||||
|
S.IPCFG .EQ 96
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.ARPCACHE.S .EQ 0
|
S.ARPCACHE.S .EQ 0
|
||||||
S.ARPCACHE.S.PENDING .EQ 1
|
S.ARPCACHE.S.PENDING .EQ 1
|
||||||
|
@ -41,6 +41,7 @@ S.DHCP.OPTIONS.GW .EQ 3
|
|||||||
S.DHCP.OPTIONS.DNS .EQ 6
|
S.DHCP.OPTIONS.DNS .EQ 6
|
||||||
S.DHCP.OPTIONS.DOMAIN .EQ 15
|
S.DHCP.OPTIONS.DOMAIN .EQ 15
|
||||||
S.DHCP.OPTIONS.MSGTYPE .EQ 53
|
S.DHCP.OPTIONS.MSGTYPE .EQ 53
|
||||||
|
S.DHCP.OPTIONS.SRVID .EQ 54
|
||||||
S.DHCP.OPTIONS.END .EQ 255
|
S.DHCP.OPTIONS.END .EQ 255
|
||||||
*
|
*
|
||||||
S.DHCP .EQ S.UDP+240
|
S.DHCP .EQ S.UDP+240
|
||||||
|
@ -12,63 +12,61 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
|||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
CFG.SET.I >LDYA L.DCB.NIC
|
ldx #5
|
||||||
|
|
||||||
|
.2 lda IPCFG+S.NETCFG.MAC,x
|
||||||
|
sta ARP.REQ.SRCMAC,x
|
||||||
|
sta ARP.REQ.SHA,x
|
||||||
|
sta ARP.REP.SRCMAC,x
|
||||||
|
sta ARP.REP.SHA,x
|
||||||
|
dex
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.3 lda IPCFG+S.IPCFG.IP,x
|
||||||
|
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
||||||
|
sta ARP.REQ.SPA,x
|
||||||
|
sta ARP.REP.SPA,x
|
||||||
|
dex
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
lda IPCFG+S.NETCFG.DevFlags
|
||||||
|
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
>LDYA L.DCB.NIC
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.STATCODE.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.STATCODE
|
||||||
|
|
||||||
>PUSHW L.IOCTL
|
>PUSHW L.IOCTL
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
bcs *
|
|
||||||
|
|
||||||
ldx #5
|
ldx #11 IP/MASK/GW
|
||||||
|
|
||||||
.10 lda DCB.NIC+S.DCB.NIC.MAC,x
|
|
||||||
sta IPCFG+S.IPCFG.MAC,x
|
|
||||||
sta ARP.REQ.SRCMAC,x
|
|
||||||
sta ARP.REQ.SHA,x
|
|
||||||
sta ARP.REP.SRCMAC,x
|
|
||||||
sta ARP.REP.SHA,x
|
|
||||||
dex
|
|
||||||
bpl .10
|
|
||||||
|
|
||||||
ldx #3
|
.4 lda IPCFG+S.IPCFG.IP,x
|
||||||
|
|
||||||
.11 lda IPCFG+S.IPCFG.IP,x
|
|
||||||
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
|
||||||
sta ARP.REQ.SPA,x
|
|
||||||
sta ARP.REP.SPA,x
|
|
||||||
dex
|
|
||||||
bpl .11
|
|
||||||
|
|
||||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
|
||||||
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
ldx #11
|
|
||||||
|
|
||||||
.1 lda IPCFG+S.IPCFG.IP,x
|
|
||||||
sta DCB.NIC+S.DCB.NIC.IP,x
|
sta DCB.NIC+S.DCB.NIC.IP,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .4
|
||||||
|
|
||||||
lda S.IOCTL.CTRLCODE.SETDCB
|
lda S.IOCTL.CTRLCODE.SETDCB
|
||||||
sta S.IOCTL.CTRLCODE
|
sta S.IOCTL.CTRLCODE
|
||||||
|
|
||||||
>PUSHW L.IOCTL
|
>PUSHW L.IOCTL
|
||||||
>PUSHBI IOCTL.CONTROL
|
>PUSHBI IOCTL.CONTROL
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.2 lda hDNSSocket
|
.5 lda hDNSSocket
|
||||||
beq .3
|
beq .6
|
||||||
jsr SKT.Shutdown
|
jsr SKT.Shutdown
|
||||||
stz hDNSSocket
|
stz hDNSSocket
|
||||||
|
|
||||||
.3 lda IPCFG+S.IPCFG.DNS1
|
.6 lda IPCFG+S.IPCFG.DNS1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>PUSHBI 0 no protocol
|
>PUSHBI 0 no protocol
|
||||||
@ -83,7 +81,7 @@ CFG.SET.I >LDYA L.DCB.NIC
|
|||||||
|
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hDNSSocket
|
lda hDNSSocket
|
||||||
jsr SKT.Bind
|
jmp SKT.Bind
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -98,7 +98,7 @@ FRM.NewIP stx .8+1
|
|||||||
adc ZPFrameOutPtr+1
|
adc ZPFrameOutPtr+1
|
||||||
sta ZPDataOutPtr+1
|
sta ZPDataOutPtr+1
|
||||||
|
|
||||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
lda IPCFG+S.NETCFG.DevFlags
|
||||||
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
|||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
lda IPCFG+S.NETCFG.DevFlags
|
||||||
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
||||||
bne .21
|
bne .21
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
|||||||
bne .5
|
bne .5
|
||||||
jsr IP.ComputeICMPChecksum
|
jsr IP.ComputeICMPChecksum
|
||||||
|
|
||||||
.5 lda DCB.NIC+S.DCB.NIC.FLAGS
|
.5 lda IPCFG+S.NETCFG.DevFlags
|
||||||
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
@ -343,7 +343,7 @@ FRM.Send ldx #3
|
|||||||
|
|
||||||
FRM.Send.IOCTL >PUSHW L.IOCTL
|
FRM.Send.IOCTL >PUSHW L.IOCTL
|
||||||
>PUSHBI IOCTL.WRITE
|
>PUSHBI IOCTL.WRITE
|
||||||
lda IPCFG+S.IPCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -34,6 +34,7 @@ IPDEBUG .EQ 0
|
|||||||
.INB INC/MLI.E.I
|
.INB INC/MLI.E.I
|
||||||
.INB INC/NIC.I
|
.INB INC/NIC.I
|
||||||
.INB INC/ETH.I
|
.INB INC/ETH.I
|
||||||
|
.INB INC/LIB.NET.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameInPtr .EQ ZPLIB
|
ZPFrameInPtr .EQ ZPLIB
|
||||||
|
@ -1,523 +0,0 @@
|
|||||||
NEW
|
|
||||||
PREFIX
|
|
||||||
AUTO 4,1
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
.OR $2000
|
|
||||||
.TF SBIN/DHCPCLNT
|
|
||||||
*--------------------------------------
|
|
||||||
.INB INC/MACROS.I
|
|
||||||
.INB INC/A2OSX.I
|
|
||||||
.INB INC/ETH.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
|
||||||
.INB INC/NET.DHCP.I
|
|
||||||
*--------------------------------------
|
|
||||||
TIMEOUT.MAX .EQ 200 20 sec.
|
|
||||||
*--------------------------------------
|
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
|
||||||
ZPFrameBase .EQ ZPBIN+2
|
|
||||||
ZPFramePtr .EQ ZPBIN+4
|
|
||||||
*--------------------------------------
|
|
||||||
* File Header (16 Bytes)
|
|
||||||
*--------------------------------------
|
|
||||||
CS.START cld
|
|
||||||
jmp (.1,x)
|
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
|
||||||
.DA #1 BIN Layout Version 1
|
|
||||||
.DA #S.PS.F.EVENT
|
|
||||||
.DA #0
|
|
||||||
.DA CS.END-CS.START CS
|
|
||||||
.DA DS.END-DS.START DS
|
|
||||||
.DA #64 SS
|
|
||||||
.DA #6 ZP
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
* Relocation Table
|
|
||||||
*--------------------------------------
|
|
||||||
.1 .DA CS.INIT
|
|
||||||
.DA CS.RUN
|
|
||||||
.DA CS.DOEVENT
|
|
||||||
.DA CS.QUIT
|
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
|
||||||
L.IPCFG .DA IPCFG
|
|
||||||
L.SA.LOCAL .DA SA.LOCAL
|
|
||||||
L.SA.REMOTE .DA SA.REMOTE
|
|
||||||
L.MSG.CFG1 .DA MSG.CFG1
|
|
||||||
L.MSG.CFG2 .DA MSG.CFG2
|
|
||||||
L.MSG.CFG.KO .DA MSG.CFG.KO
|
|
||||||
L.MSG.CFG.OK .DA MSG.CFG.OK
|
|
||||||
L.MSG.CFG.ND .DA MSG.CFG.ND
|
|
||||||
L.MSG.CFG.NA .DA MSG.CFG.NA
|
|
||||||
L.DHCP.DISC .DA DHCP.DISC
|
|
||||||
L.DHCP.REQ .DA DHCP.REQ
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
|
||||||
>SYSCALL LoadLib
|
|
||||||
bcs .9
|
|
||||||
sta hLIBTCPIP
|
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPIPCfgPtr
|
|
||||||
|
|
||||||
lda (ZPIPCfgPtr)
|
|
||||||
and #S.IPCFG.STATUS.OK
|
|
||||||
bne .99 Already Configured, exit
|
|
||||||
|
|
||||||
ldy #S.IPCFG.hFD
|
|
||||||
lda (ZPIPCfgPtr),y
|
|
||||||
beq .98
|
|
||||||
|
|
||||||
ldy #S.IPCFG-1
|
|
||||||
|
|
||||||
.1 lda (ZPIPCfgPtr),y
|
|
||||||
sta IPCFG,y
|
|
||||||
dey
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
stz IPCFG+S.IPCFG.STATUS
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.11 lda A2osX.TIMER16,x
|
|
||||||
sta DHCP.DISC.XID,x
|
|
||||||
sta DHCP.REQ.XID,x
|
|
||||||
dex
|
|
||||||
bpl .11
|
|
||||||
|
|
||||||
ldx #5
|
|
||||||
|
|
||||||
.2 lda IPCFG+S.IPCFG.MAC,x
|
|
||||||
sta DHCP.DISC.CHADDR,x
|
|
||||||
sta DHCP.REQ.CHADDR,x
|
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.98 >LDYA L.MSG.CFG.ND
|
|
||||||
bra .90
|
|
||||||
.99 >LDYA L.MSG.CFG.NA
|
|
||||||
|
|
||||||
.90 >SYSCALL puts
|
|
||||||
lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN >PUSHBI 0 no protocol
|
|
||||||
lda #S.SOCKET.T.DGRAM
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
|
||||||
bcc .1
|
|
||||||
.9 jmp CS.RUN.KO
|
|
||||||
|
|
||||||
.1 >STA.G hSocket
|
|
||||||
pha
|
|
||||||
>PUSHW L.SA.LOCAL
|
|
||||||
pla
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>PUSHWI S.SOCKET.O.BROADCAST
|
|
||||||
>LDA.G hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt
|
|
||||||
|
|
||||||
>PUSHW L.SA.REMOTE
|
|
||||||
>LDA.G hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYA L.MSG.CFG1
|
|
||||||
>SYSCALL puts
|
|
||||||
|
|
||||||
jsr Init.Timeout
|
|
||||||
|
|
||||||
CS.RUN.SDISC >PUSHWI DHCP.DISC.LEN
|
|
||||||
>PUSHW L.DHCP.DISC
|
|
||||||
>LDA.G hSocket
|
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
|
||||||
bcc .1
|
|
||||||
jmp CS.RUN.KO
|
|
||||||
|
|
||||||
.1 lda #S.IPCFG.STATUS.SDISC
|
|
||||||
sta IPCFG
|
|
||||||
|
|
||||||
CS.RUN.ROFFER >SLEEP
|
|
||||||
|
|
||||||
jsr CS.RUN.SKT.RCVD
|
|
||||||
bcc .1
|
|
||||||
jsr Wait.Timeout
|
|
||||||
bne CS.RUN.ROFFER
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
jmp CS.RUN.KO
|
|
||||||
|
|
||||||
.1 jsr CheckDHCPOffer
|
|
||||||
|
|
||||||
bcs CS.RUN.ROFFER
|
|
||||||
|
|
||||||
lda #S.IPCFG.STATUS.ROFFER
|
|
||||||
sta IPCFG
|
|
||||||
|
|
||||||
CS.RUN.SREQ ldx #3
|
|
||||||
|
|
||||||
.1 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
>PUSHBI 4
|
|
||||||
>LDYA L.MSG.CFG2
|
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
>PUSHWI DHCP.REQ.LEN
|
|
||||||
>PUSHW L.DHCP.REQ
|
|
||||||
>LDA.G hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
|
||||||
bcs CS.RUN.KO
|
|
||||||
|
|
||||||
lda #S.IPCFG.STATUS.SREQ
|
|
||||||
sta IPCFG
|
|
||||||
|
|
||||||
CS.RUN.RACK >SLEEP
|
|
||||||
|
|
||||||
jsr CS.RUN.SKT.RCVD
|
|
||||||
bcc .1
|
|
||||||
jsr Wait.Timeout
|
|
||||||
bne CS.RUN.RACK
|
|
||||||
lda #2
|
|
||||||
bra CS.RUN.KO
|
|
||||||
|
|
||||||
.1 jsr CheckDHCPAck
|
|
||||||
bcs CS.RUN.RACK
|
|
||||||
|
|
||||||
CS.RUN.OK lda #S.IPCFG.STATUS.OK
|
|
||||||
sta IPCFG
|
|
||||||
|
|
||||||
>PUSHW L.IPCFG
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SET.IPCFG
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
.1 lda IPCFG+S.IPCFG.MASK,x
|
|
||||||
>PUSHA
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
.2 lda IPCFG+S.IPCFG.IP,x
|
|
||||||
>PUSHA
|
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
>PUSHBI 8
|
|
||||||
>LDYA L.MSG.CFG.OK
|
|
||||||
>SYSCALL printf
|
|
||||||
lda #0 Leave with NO ERROR
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
CS.RUN.KO pha
|
|
||||||
>PUSHA
|
|
||||||
>PUSHBI 1
|
|
||||||
>LDYA L.MSG.CFG.KO
|
|
||||||
>SYSCALL printf
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN.SKT.RCVD >LDA.G hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
|
||||||
bcs .9
|
|
||||||
>STA.G hFrame
|
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPFrameBase
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.DOEVENT lda (pEvent)
|
|
||||||
bpl .9 is it a TIMER event?
|
|
||||||
|
|
||||||
ldy #TimeOut
|
|
||||||
lda (pData),y
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
dec
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.9 sec do not discard TIMER event
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.QUIT >LDA.G hSocket
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
|
||||||
|
|
||||||
.1 lda hLIBTCPIP
|
|
||||||
beq .8
|
|
||||||
>SYSCALL UnloadLib
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CheckDHCPOffer jsr CheckDHCPXID
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda ZPFrameBase
|
|
||||||
clc
|
|
||||||
adc #S.DHCP.OPTIONS
|
|
||||||
sta ZPFramePtr
|
|
||||||
|
|
||||||
lda ZPFrameBase+1
|
|
||||||
adc /S.DHCP.OPTIONS
|
|
||||||
sta ZPFramePtr+1
|
|
||||||
|
|
||||||
lda (ZPFramePtr)
|
|
||||||
cmp #S.DHCP.OPTIONS.MSGTYPE
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #2
|
|
||||||
lda (ZPFramePtr),y
|
|
||||||
cmp #S.DHCP.OPTIONS.DHCPOffer
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #S.DHCP.GIADDR+3
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.1 lda (ZPFrameBase),y
|
|
||||||
sta DHCP.REQ.GIADDR,x
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
ldy #S.DHCP.YIADDR+3
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.2 lda (ZPFrameBase),y
|
|
||||||
sta DHCP.REQ.OPT.REQIP,x
|
|
||||||
sta IPCFG+S.IPCFG.IP,x
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
ldy #S.IP.SRC+3
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.3 lda (ZPFrameBase),y
|
|
||||||
sta DHCP.REQ.OPT.SVRIP,x
|
|
||||||
sta IPCFG+S.IPCFG.DHCPSRVR,x
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
|
|
||||||
bne .6
|
|
||||||
inc ZPFramePtr+1
|
|
||||||
|
|
||||||
.6 lda (ZPFramePtr)
|
|
||||||
sec
|
|
||||||
adc ZPFramePtr add option len + 1
|
|
||||||
sta ZPFramePtr
|
|
||||||
bcc .7
|
|
||||||
inc ZPFramePtr+1
|
|
||||||
|
|
||||||
.7 lda (ZPFramePtr)
|
|
||||||
cmp #S.DHCP.OPTIONS.END
|
|
||||||
beq .8
|
|
||||||
jsr GetDHCPOption
|
|
||||||
bra .5
|
|
||||||
|
|
||||||
.8 jsr CS.RUN.DISCARD
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 jsr CS.RUN.DISCARD
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN.DISCARD >LDA.G hFrame
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
|
|
||||||
bne .1
|
|
||||||
ldx #S.IPCFG.MASK
|
|
||||||
bra GetDHCPOption.CopyIP
|
|
||||||
|
|
||||||
.1 cmp #S.DHCP.OPTIONS.GW
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldx #S.IPCFG.GW
|
|
||||||
bra GetDHCPOption.CopyIP
|
|
||||||
|
|
||||||
.2 cmp #S.DHCP.OPTIONS.DNS
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
ldx #S.IPCFG.DNS1
|
|
||||||
bra GetDHCPOption.CopyIP
|
|
||||||
|
|
||||||
.3 cmp #S.DHCP.OPTIONS.DOMAIN
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #1
|
|
||||||
|
|
||||||
lda (ZPFramePtr),y Get String len
|
|
||||||
cmp #80
|
|
||||||
bcc .4
|
|
||||||
lda #79
|
|
||||||
|
|
||||||
.4 sta IPCFG+S.IPCFG.DOMAIN store len
|
|
||||||
tax
|
|
||||||
|
|
||||||
.5 iny
|
|
||||||
lda (ZPFramePtr),y
|
|
||||||
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
|
||||||
dex
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
GetDHCPOption.CopyIP
|
|
||||||
ldy #1
|
|
||||||
lda (ZPFramePtr),y Get Byte count
|
|
||||||
cmp #9
|
|
||||||
bcc .1
|
|
||||||
lda #8 max 8 bytes (2 DNS)
|
|
||||||
|
|
||||||
.1 iny
|
|
||||||
|
|
||||||
.2 pha
|
|
||||||
|
|
||||||
lda (ZPFramePtr),y
|
|
||||||
sta IPCFG,x
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
|
|
||||||
pla
|
|
||||||
dec
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CheckDHCPAck jsr CheckDHCPXID
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda ZPFrameBase
|
|
||||||
clc
|
|
||||||
adc #S.DHCP.OPTIONS
|
|
||||||
sta ZPFramePtr
|
|
||||||
|
|
||||||
lda ZPFrameBase+1
|
|
||||||
adc /S.DHCP.OPTIONS
|
|
||||||
sta ZPFramePtr+1
|
|
||||||
|
|
||||||
lda (ZPFramePtr)
|
|
||||||
cmp #S.DHCP.OPTIONS.MSGTYPE
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #2
|
|
||||||
lda (ZPFramePtr),y
|
|
||||||
cmp #S.DHCP.OPTIONS.DHCPAck
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
jsr CS.RUN.DISCARD
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 jsr CS.RUN.DISCARD
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CheckDHCPXID ldy #S.DHCP.XID+3
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.1 lda (ZPFrameBase),y
|
|
||||||
cmp DHCP.DISC.XID,x same XID ?
|
|
||||||
bne .9
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
Init.Timeout ldy #TimeOut
|
|
||||||
lda #TIMEOUT.MAX
|
|
||||||
sta (pData),y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
Wait.TimeOut ldy #TimeOut
|
|
||||||
lda (pData),y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
|
||||||
LIBTCPIP .AZ "libtcpip"
|
|
||||||
MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers..."
|
|
||||||
MSG.CFG2 .AZ "DHCPCLNT:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
|
||||||
MSG.CFG.KO .AZ "DHCPCLNT:Time Out [%h].\r\n"
|
|
||||||
MSG.CFG.OK .AZ "DHCPCLNT:Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n"
|
|
||||||
MSG.CFG.ND .AZ "DHCPCLNT:No Device, exiting."
|
|
||||||
MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting."
|
|
||||||
hLIBTCPIP .BS 1
|
|
||||||
IPCFG .BS S.IPCFG
|
|
||||||
*--------------------------------------
|
|
||||||
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
|
||||||
.BS 1
|
|
||||||
.HS 00.00.00.00 S.SOCKADDR.ADDR
|
|
||||||
.DA UDP.PORT.DHCPC S.SOCKADDR.PORT
|
|
||||||
*--------------------------------------
|
|
||||||
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
|
|
||||||
.BS 1
|
|
||||||
.HS FF.FF.FF.FF S.SOCKADDR.ADDR
|
|
||||||
.DA UDP.PORT.DHCPS S.SOCKADDR.PORT
|
|
||||||
*--------------------------------------
|
|
||||||
DHCP.DISC .HS 01010600 OP,HTYPE,HLEN,HOPS
|
|
||||||
DHCP.DISC.XID .BS 4
|
|
||||||
.HS 0000 SECS
|
|
||||||
.DA S.DHCP.FLAGS.BRDCST
|
|
||||||
.HS 00000000 CIADDR
|
|
||||||
DHCP.DISC.YIADDR .HS 00000000
|
|
||||||
.HS 00000000 SIADDR
|
|
||||||
DHCP.DISC.GIADDR .HS 00000000
|
|
||||||
DHCP.DISC.CHADDR .HS 00000000.00000000.00000000.00000000
|
|
||||||
.BS 64 SNAME
|
|
||||||
.BS 128 FILE
|
|
||||||
.HS 63825363 COOKIE
|
|
||||||
.HS 3501 OPT
|
|
||||||
.DA #S.DHCP.OPTIONS.DHCPDiscover
|
|
||||||
.HS 37040103060FFF
|
|
||||||
DHCP.DISC.LEN .EQ *-DHCP.DISC
|
|
||||||
*--------------------------------------
|
|
||||||
DHCP.REQ .HS 01010600 OP,HTYPE,HLEN,HOPS
|
|
||||||
DHCP.REQ.XID .BS 4
|
|
||||||
.HS 0000 SECS
|
|
||||||
.DA S.DHCP.FLAGS.BRDCST
|
|
||||||
.HS 00000000 CIADDR
|
|
||||||
DHCP.REQ.YIADDR .HS 00000000
|
|
||||||
.HS 00000000 SIADDR
|
|
||||||
DHCP.REQ.GIADDR .HS 00000000
|
|
||||||
DHCP.REQ.CHADDR .HS 00000000.00000000.00000000.00000000
|
|
||||||
.BS 64 SNAME
|
|
||||||
.BS 128 FILE
|
|
||||||
.HS 63825363 COOKIE
|
|
||||||
.HS 3501 OPT
|
|
||||||
.DA #S.DHCP.OPTIONS.DHCPRequest
|
|
||||||
.HS 3204
|
|
||||||
DHCP.REQ.OPT.REQIP .BS 4
|
|
||||||
.HS 3604
|
|
||||||
DHCP.REQ.OPT.SVRIP .BS 4
|
|
||||||
.HS FF
|
|
||||||
DHCP.REQ.LEN .EQ *-DHCP.REQ
|
|
||||||
*--------------------------------------
|
|
||||||
DS.START
|
|
||||||
TimeOut .BS 1
|
|
||||||
hSocket .BS 1
|
|
||||||
hFrame .BS 1
|
|
||||||
DS.END
|
|
||||||
MAN
|
|
||||||
SAVE USR/SRC/SBIN/DHCPCLNT.S
|
|
||||||
ASM
|
|
@ -130,6 +130,10 @@ CS.INIT.LIBS lda LibCnt
|
|||||||
ldy #S.NETCFG.DevID
|
ldy #S.NETCFG.DevID
|
||||||
sta (pNETCFG),y
|
sta (pNETCFG),y
|
||||||
|
|
||||||
|
iny S.NETCFG.DevFlags
|
||||||
|
lda DCB.NIC+S.DCB.NIC.FLAGS
|
||||||
|
sta (pNETCFG),y
|
||||||
|
|
||||||
ldx #5
|
ldx #5
|
||||||
ldy #S.NETCFG.MAC+5
|
ldy #S.NETCFG.MAC+5
|
||||||
|
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
NEW
|
|
||||||
PREFIX
|
|
||||||
AUTO 4,1
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
.OR $2000
|
|
||||||
.TF SBIN/TCPIPD
|
|
||||||
*--------------------------------------
|
|
||||||
.INB INC/MACROS.I
|
|
||||||
.INB INC/A2OSX.I
|
|
||||||
.INB INC/ETH.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
|
||||||
*--------------------------------------
|
|
||||||
* File Header (16 Bytes)
|
|
||||||
*--------------------------------------
|
|
||||||
CS.START cld
|
|
||||||
jmp (.1,x)
|
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
|
||||||
.DA #1 BIN Layout Version 1
|
|
||||||
.DA #S.PS.F.EVENT
|
|
||||||
.DA #0
|
|
||||||
.DA CS.END-CS.START CS
|
|
||||||
.DA DS.END-DS.START DS
|
|
||||||
.DA #64 SS
|
|
||||||
.DA #0 ZP
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
* Relocation Table
|
|
||||||
*--------------------------------------
|
|
||||||
.1 .DA CS.INIT
|
|
||||||
.DA CS.RUN
|
|
||||||
.DA CS.DOEVENT
|
|
||||||
.DA CS.QUIT
|
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
|
||||||
>SYSCALL LoadLib
|
|
||||||
bcs .9
|
|
||||||
sta hLIBTCPIP
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.DOEVENT lda (pEvent)
|
|
||||||
bpl .9
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSE
|
|
||||||
|
|
||||||
.9 sec never discard TIME event
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.QUIT lda hLIBTCPIP
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
>SYSCALL UnloadLib
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
|
||||||
*--------------------------------------
|
|
||||||
LIBTCPIP .AZ "libtcpip"
|
|
||||||
hLIBTCPIP .BS 1
|
|
||||||
*--------------------------------------
|
|
||||||
.DUMMY
|
|
||||||
.OR 0
|
|
||||||
DS.START
|
|
||||||
DS.END .ED
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE USR/SRC/SBIN/TCPIPD.S
|
|
||||||
ASM
|
|
Loading…
Reference in New Issue
Block a user