mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-03 22:29:36 +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
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
DHCP.INIT lda IPCFG+S.IPCFG.STATUS
|
||||
DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
||||
and #S.IPCFG.STATUS.OK
|
||||
bne .99 Already Configured, exit
|
||||
|
||||
stz IPCFG+S.IPCFG.STATUS
|
||||
stz IPCFG+S.NETCFG.STATUS
|
||||
|
||||
ldx #3
|
||||
|
||||
|
@ -19,7 +19,7 @@ DHCP.INIT lda IPCFG+S.IPCFG.STATUS
|
|||
|
||||
ldx #5
|
||||
|
||||
.2 lda IPCFG+S.IPCFG.MAC,x
|
||||
.2 lda IPCFG+S.NETCFG.MAC,x
|
||||
sta DHCP.DISC.CHADDR,x
|
||||
sta DHCP.REQ.CHADDR,x
|
||||
dex
|
||||
|
@ -196,14 +196,14 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||
cmp #S.DHCP.OPTIONS.DHCPOffer
|
||||
bne .9
|
||||
|
||||
ldy #S.DHCP.GIADDR+3
|
||||
ldx #3
|
||||
* ldy #S.DHCP.YIADDR+11 Copy YIADDR,SIADDR+GIADDR
|
||||
* ldx #11
|
||||
|
||||
.1 lda (ZPFrameBase),y
|
||||
sta DHCP.REQ.GIADDR,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
*.1 lda (ZPFrameBase),y
|
||||
* sta DHCP.REQ.YIADDR,x
|
||||
* dey
|
||||
* dex
|
||||
* bpl .1
|
||||
|
||||
ldy #S.DHCP.YIADDR+3
|
||||
ldx #3
|
||||
|
@ -215,15 +215,20 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||
dex
|
||||
bpl .2
|
||||
|
||||
ldy #S.IP.SRC+3
|
||||
ldx #3
|
||||
ldy #S.DHCP.SIADDR+3
|
||||
lda (ZPFrameBase),y
|
||||
bne .3
|
||||
|
||||
.3 lda (ZPFrameBase),y
|
||||
sta DHCP.REQ.OPT.SVRIP,x
|
||||
ldy #S.IP.SRC+3
|
||||
|
||||
.3 ldx #3
|
||||
|
||||
.4 lda (ZPFrameBase),y
|
||||
sta IPCFG+S.IPCFG.DHCPSRVR,x
|
||||
sta DHCP.REQ.OPT.SVRIP,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
bpl .4
|
||||
|
||||
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
|
||||
bne .6
|
||||
|
@ -239,7 +244,7 @@ CheckDHCPOffer jsr CheckDHCPXID
|
|||
.7 lda (ZPFramePtr)
|
||||
cmp #S.DHCP.OPTIONS.END
|
||||
beq .8
|
||||
jsr GetDHCPOption
|
||||
jsr GetDHCPOption May override SVRIP
|
||||
bra .5
|
||||
|
||||
.8 jsr CS.RUN.DISCARD
|
||||
|
@ -267,24 +272,37 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
|
|||
ldx #S.IPCFG.DNS1
|
||||
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
|
||||
|
||||
ldy #1
|
||||
|
||||
lda (ZPFramePtr),y Get String len
|
||||
cmp #80
|
||||
bcc .4
|
||||
lda #79
|
||||
cmp #45
|
||||
bcc .6
|
||||
lda #44
|
||||
|
||||
.4 sta IPCFG+S.IPCFG.DOMAIN store len
|
||||
.6 sta IPCFG+S.IPCFG.DOMAIN store len
|
||||
tax
|
||||
|
||||
.5 iny
|
||||
.7 iny
|
||||
lda (ZPFramePtr),y
|
||||
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
||||
dex
|
||||
bne .5
|
||||
bne .7
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -5,9 +5,10 @@ AUTO 4,1
|
|||
*--------------------------------------
|
||||
CFG.EtcFiles >LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPTmpPtr1
|
||||
bcc .1
|
||||
rts
|
||||
|
||||
.1 >STYA ZPTmpPtr1
|
||||
stx CFG.hBuf1
|
||||
|
||||
>LDYA L.HOSTNAME
|
||||
|
@ -31,15 +32,18 @@ CFG.EtcFiles >LDYAI 256
|
|||
beq .5
|
||||
|
||||
lda #S.IPCFG.STATUS.OK
|
||||
sta IPCFG+S.IPCFG.STATUS
|
||||
sta IPCFG+S.NETCFG.STATUS
|
||||
|
||||
.5 >LDYA L.HOSTS
|
||||
jsr CFG.Read.PrintF
|
||||
jsr CFG.Read.HOSTS
|
||||
|
||||
>PUSHW L.IPCFG
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
||||
|
||||
lda CFG.hBuf1
|
||||
>SYSCALL freemem
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CFG.Read.PrintF >PUSHYA
|
||||
|
@ -296,19 +300,6 @@ CFG.Read.HOSTS.Scan
|
|||
*--------------------------------------
|
||||
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
|
||||
|
||||
>PUSHYA
|
||||
|
|
|
@ -13,6 +13,7 @@ AUTO 4,1
|
|||
.INB INC/MLI.E.I
|
||||
.INB INC/NIC.I
|
||||
.INB INC/ETH.I
|
||||
.INB INC/LIB.NET.I
|
||||
.INB INC/LIBTCPIP.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.KO .DA MSG.CFG.KO
|
||||
L.MSG.CFG.OK .DA MSG.CFG.OK
|
||||
L.MSG.DNS.ADD .DA MSG.DNS.ADD
|
||||
L.HOSTNAME .DA HOSTNAME
|
||||
L.TCPIP.CONF .DA TCPIP.CONF
|
||||
L.HOSTS .DA HOSTS
|
||||
|
@ -121,7 +121,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
|
|||
dey
|
||||
bpl .1
|
||||
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
bne CS.RUN.SETUP
|
||||
|
||||
>LDYA L.MSG.NODEV
|
||||
|
@ -163,7 +163,7 @@ CS.RUN.SETUP
|
|||
sta (pData),y
|
||||
bra .1
|
||||
|
||||
.4 lda IPCFG+S.IPCFG.STATUS
|
||||
.4 lda IPCFG+S.NETCFG.STATUS
|
||||
bne .5
|
||||
|
||||
lda #$ff no config, force all
|
||||
|
@ -189,15 +189,12 @@ CS.RUN.SETUP
|
|||
|
||||
jsr DHCP.QUIT
|
||||
|
||||
.8 >PUSHW L.IPCFG
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
||||
|
||||
lda #0
|
||||
.8 lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DUMP >PUSHEA.G DIB
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>SYSCALL GetDevStatus
|
||||
|
||||
>LEA.G DCB.NIC
|
||||
|
@ -207,7 +204,7 @@ CS.RUN.DUMP >PUSHEA.G DIB
|
|||
|
||||
>PUSHEA.G IOCTL
|
||||
>PUSHBI IOCTL.STATUS
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>SYSCALL IOCTL
|
||||
|
||||
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
|
||||
|
||||
ldx IPCFG+S.IPCFG.DevID
|
||||
ldx IPCFG+S.NETCFG.DevID
|
||||
lda Dev.Table,x
|
||||
clc
|
||||
adc #S.FD.DEV
|
||||
|
@ -231,7 +228,7 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
|||
|
||||
>PUSHYA
|
||||
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>PUSHA
|
||||
>PUSHBI 11
|
||||
>LDYA L.MSG1.DEV
|
||||
|
@ -299,7 +296,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
|
|||
CS.RUN.DUMPIP >PUSHBI 0
|
||||
>LDYA L.MSG2
|
||||
>SYSCALL printf
|
||||
lda IPCFG+S.IPCFG.STATUS
|
||||
lda IPCFG+S.NETCFG.STATUS
|
||||
and #S.IPCFG.STATUS.OK
|
||||
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.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.OK .AZ "OK."
|
||||
MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..."
|
||||
*--------------------------------------
|
||||
HOSTNAME .AZ "${ROOT}ETC/HOSTNAME"
|
||||
TCPIP.CONF .AZ "${ROOT}ETC/TCPIP.CONF"
|
||||
|
@ -450,11 +446,11 @@ CFG.Keywords >PSTR "address"
|
|||
CFG.IP.SScanF .AZ "%d.%d.%d.%d"
|
||||
CFG.HOST.SScanF .AZ "%d.%d.%d.%d %s %s"
|
||||
*--------------------------------------
|
||||
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.NA .AZ "TCPIP Already configured, exiting."
|
||||
MSG.DHCP.CFG1 .AZ "IPCONFIG:Searching for DHCP servers..."
|
||||
MSG.DHCP.CFG2 .AZ "IPCONFIG:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n"
|
||||
MSG.DHCP.KO .AZ "IPCONFIG:Time Out [%h].\r\n"
|
||||
MSG.DHCP.OK .AZ "IPCONFIG:Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n"
|
||||
MSG.DHCP.NA .AZ "IPCONFIG:TCPIP Already configured, exiting."
|
||||
*--------------------------------------
|
||||
IPCFG .BS S.IPCFG
|
||||
CFG.hBuf1 .BS 1
|
||||
|
@ -498,7 +494,7 @@ DHCP.REQ.XID .BS 4
|
|||
.HS 00000000 CIADDR
|
||||
DHCP.REQ.YIADDR .HS 00000000
|
||||
.HS 00000000 SIADDR
|
||||
DHCP.REQ.GIADDR .HS 00000000
|
||||
.HS 00000000 GIADDR
|
||||
DHCP.REQ.CHADDR .HS 00000000.00000000.00000000.00000000
|
||||
.BS 64 SNAME
|
||||
.BS 128 FILE
|
||||
|
|
|
@ -23,8 +23,8 @@ OptionList >PSTR "CRYQcryq"
|
|||
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.DIR .AZ "MV Dir :%S to %S..."
|
||||
MSG.FILE .AZ "MV File:%S to %S..."
|
||||
MSG.DIR .AZ "MV Dir :%s to %s..."
|
||||
MSG.FILE .AZ "MV File:%s to %s..."
|
||||
MSG.OVERWRITE .AZ "Overwrite %S [Yes,No,All]?"
|
||||
MSG.OK .AZ "[OK]"
|
||||
MSG.ERR .AZ "[%h]\r\n"
|
||||
|
|
|
@ -172,6 +172,7 @@ CS.QUIT lda hLIBTCPIP
|
|||
*--------------------------------------
|
||||
CS.END
|
||||
LIBTCPIP .AZ "libtcpip"
|
||||
hLIBTCPIP .BS 1
|
||||
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.T.RAW .AZ "RAW "
|
||||
|
@ -197,7 +198,6 @@ MSG1.S.8 .AZ "FIN-WAIT-2"
|
|||
MSG1.S.9 .AZ "CLOSING"
|
||||
MSG1.S.10 .AZ "TIME-WAIT"
|
||||
MSG1.S.INV .AZ "???"
|
||||
hLIBTCPIP .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
|
|
@ -23,8 +23,8 @@ OptionList >PSTR "CRYQcryq"
|
|||
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.DIR .AZ "RM Dir :%S..."
|
||||
MSG.FILE .AZ "RM File:%S..."
|
||||
MSG.DIR .AZ "RM Dir :%s..."
|
||||
MSG.FILE .AZ "RM File:%s..."
|
||||
MSG.OK .AZ "[OK]"
|
||||
MSG.ERR .AZ "[%h]\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.DevID .EQ 1
|
||||
S.NETCFG.MAC .EQ 2
|
||||
S.NETCFG.DevFlags .EQ 2
|
||||
*
|
||||
S.NETCFG.MAC .EQ 4
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/LIB.NET.I
|
||||
|
|
|
@ -72,25 +72,27 @@ ERR.ARP.PENDING .EQ $B5
|
|||
UDP.PORT.DNS .EQ 53
|
||||
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.SDISC .EQ %00000001 DISCOVERY Sent
|
||||
S.IPCFG.STATUS.ROFFER .EQ %00000010 OFFER Received
|
||||
S.IPCFG.STATUS.SREQ .EQ %00000100 REQUEST Sent
|
||||
S.IPCFG.STATUS.RACK .EQ %00001000 ACK Received
|
||||
S.IPCFG.STATUS.OK .EQ %10000000 Fully configured (static or DHCP)
|
||||
S.IPCFG.DevID .EQ 1
|
||||
S.IPCFG.MAC .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.DevID .EQ 1
|
||||
*S.IPCFG.DevFlags .EQ 2
|
||||
*
|
||||
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.PENDING .EQ 1
|
||||
|
|
|
@ -41,6 +41,7 @@ S.DHCP.OPTIONS.GW .EQ 3
|
|||
S.DHCP.OPTIONS.DNS .EQ 6
|
||||
S.DHCP.OPTIONS.DOMAIN .EQ 15
|
||||
S.DHCP.OPTIONS.MSGTYPE .EQ 53
|
||||
S.DHCP.OPTIONS.SRVID .EQ 54
|
||||
S.DHCP.OPTIONS.END .EQ 255
|
||||
*
|
||||
S.DHCP .EQ S.UDP+240
|
||||
|
|
|
@ -12,63 +12,61 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
|||
dey
|
||||
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
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
sta IOCTL+S.IOCTL.STATCODE
|
||||
|
||||
>PUSHW L.IOCTL
|
||||
>PUSHBI IOCTL.STATUS
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>SYSCALL IOCTL
|
||||
bcs *
|
||||
|
||||
ldx #5
|
||||
|
||||
.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 #11 IP/MASK/GW
|
||||
|
||||
ldx #3
|
||||
|
||||
.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
|
||||
.4 lda IPCFG+S.IPCFG.IP,x
|
||||
sta DCB.NIC+S.DCB.NIC.IP,x
|
||||
dex
|
||||
bpl .1
|
||||
bpl .4
|
||||
|
||||
lda S.IOCTL.CTRLCODE.SETDCB
|
||||
sta S.IOCTL.CTRLCODE
|
||||
|
||||
>PUSHW L.IOCTL
|
||||
>PUSHBI IOCTL.CONTROL
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>SYSCALL IOCTL
|
||||
bcs .9
|
||||
|
||||
.2 lda hDNSSocket
|
||||
beq .3
|
||||
.5 lda hDNSSocket
|
||||
beq .6
|
||||
jsr SKT.Shutdown
|
||||
stz hDNSSocket
|
||||
|
||||
.3 lda IPCFG+S.IPCFG.DNS1
|
||||
.6 lda IPCFG+S.IPCFG.DNS1
|
||||
beq .8
|
||||
|
||||
>PUSHBI 0 no protocol
|
||||
|
@ -83,7 +81,7 @@ CFG.SET.I >LDYA L.DCB.NIC
|
|||
|
||||
>PUSHW L.SA.LOCAL
|
||||
lda hDNSSocket
|
||||
jsr SKT.Bind
|
||||
jmp SKT.Bind
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
|
|
@ -98,7 +98,7 @@ FRM.NewIP stx .8+1
|
|||
adc ZPFrameOutPtr+1
|
||||
sta ZPDataOutPtr+1
|
||||
|
||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
||||
lda IPCFG+S.NETCFG.DevFlags
|
||||
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
||||
bne .7
|
||||
|
||||
|
@ -158,7 +158,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
|||
dex
|
||||
bpl .1
|
||||
|
||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
||||
lda IPCFG+S.NETCFG.DevFlags
|
||||
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
||||
bne .21
|
||||
|
||||
|
@ -239,7 +239,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
|||
bne .5
|
||||
jsr IP.ComputeICMPChecksum
|
||||
|
||||
.5 lda DCB.NIC+S.DCB.NIC.FLAGS
|
||||
.5 lda IPCFG+S.NETCFG.DevFlags
|
||||
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
||||
bne .6
|
||||
|
||||
|
@ -343,7 +343,7 @@ FRM.Send ldx #3
|
|||
|
||||
FRM.Send.IOCTL >PUSHW L.IOCTL
|
||||
>PUSHBI IOCTL.WRITE
|
||||
lda IPCFG+S.IPCFG.DevID
|
||||
lda IPCFG+S.NETCFG.DevID
|
||||
>SYSCALL IOCTL
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -34,6 +34,7 @@ IPDEBUG .EQ 0
|
|||
.INB INC/MLI.E.I
|
||||
.INB INC/NIC.I
|
||||
.INB INC/ETH.I
|
||||
.INB INC/LIB.NET.I
|
||||
.INB INC/LIBTCPIP.I
|
||||
*--------------------------------------
|
||||
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
|
||||
sta (pNETCFG),y
|
||||
|
||||
iny S.NETCFG.DevFlags
|
||||
lda DCB.NIC+S.DCB.NIC.FLAGS
|
||||
sta (pNETCFG),y
|
||||
|
||||
ldx #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