Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-30 10:51:37 +01:00
parent 703f201d2d
commit 877838ef55
5 changed files with 55 additions and 1 deletions

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,7 @@ NEW
DHCP.INIT lda IPCFG+S.NETCFG.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.NETCFG.STATUS stz IPCFG+S.NETCFG.STATUS
ldx #3 ldx #3
@ -22,6 +23,7 @@ DHCP.INIT lda IPCFG+S.NETCFG.STATUS
sta DHCP.REQ.CHADDR,x sta DHCP.REQ.CHADDR,x
dex dex
bpl .2 bpl .2
clc clc
.9 rts .9 rts
@ -91,6 +93,7 @@ DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
inx inx
cpx #4 cpx #4
bne .1 bne .1
>PUSHBI 4 >PUSHBI 4
>SYSCALL PrintF >SYSCALL PrintF
@ -167,6 +170,9 @@ DHCP.RUN.SKT.RECV
cmp #E.NODATA cmp #E.NODATA
bne .9 bne .9
lda #'@'
>SYSCALL putchar
lda TimeOut lda TimeOut
bne .1 bne .1
@ -183,11 +189,13 @@ DHCP.QUIT lda hSocket
beq .1 beq .1
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
.1 clc .1 clc
rts rts
*-------------------------------------- *--------------------------------------
CheckDHCPOffer jsr CheckDHCPXID CheckDHCPOffer jsr CheckDHCPXID
bcs .9 bcs .9
lda ZPFrameBase lda ZPFrameBase
clc clc
adc #S.DHCP.OPTIONS adc #S.DHCP.OPTIONS
@ -199,10 +207,12 @@ CheckDHCPOffer jsr CheckDHCPXID
lda (ZPFramePtr) lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.MSGTYPE cmp #S.DHCP.OPTIONS.MSGTYPE
bne .9 bne .9
ldy #2 ldy #2
lda (ZPFramePtr),y lda (ZPFramePtr),y
cmp #S.DHCP.OPTIONS.DHCPOffer cmp #S.DHCP.OPTIONS.DHCPOffer
bne .9 bne .9
* ldy #S.DHCP.YIADDR+11 Copy YIADDR,SIADDR+GIADDR * ldy #S.DHCP.YIADDR+11 Copy YIADDR,SIADDR+GIADDR
* ldx #11 * ldx #11
*.1 lda (ZPFrameBase),y *.1 lda (ZPFrameBase),y
@ -210,19 +220,25 @@ CheckDHCPOffer jsr CheckDHCPXID
* dey * dey
* dex * dex
* bpl .1 * bpl .1
ldy #S.DHCP.YIADDR+3 ldy #S.DHCP.YIADDR+3
ldx #3 ldx #3
.2 lda (ZPFrameBase),y .2 lda (ZPFrameBase),y
sta DHCP.REQ.OPT.REQIP,x sta DHCP.REQ.OPT.REQIP,x
sta IPCFG+S.IPCFG.IP,x sta IPCFG+S.IPCFG.IP,x
dey dey
dex dex
bpl .2 bpl .2
ldy #S.DHCP.SIADDR+3 ldy #S.DHCP.SIADDR+3
lda (ZPFrameBase),y lda (ZPFrameBase),y
bne .3 bne .3
ldy #S.IP.SRC+3 ldy #S.IP.SRC+3
.3 ldx #3 .3 ldx #3
.4 lda (ZPFrameBase),y .4 lda (ZPFrameBase),y
sta IPCFG+S.IPCFG.DHCPSRVR,x sta IPCFG+S.IPCFG.DHCPSRVR,x
sta DHCP.REQ.OPT.SVRIP,x sta DHCP.REQ.OPT.SVRIP,x
@ -232,35 +248,47 @@ CheckDHCPOffer jsr CheckDHCPXID
.5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102) .5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102)
bne .6 bne .6
inc ZPFramePtr+1 inc ZPFramePtr+1
.6 lda (ZPFramePtr) .6 lda (ZPFramePtr)
sec sec
adc ZPFramePtr add option len + 1 adc ZPFramePtr add option len + 1
sta ZPFramePtr sta ZPFramePtr
bcc .7 bcc .7
inc ZPFramePtr+1 inc ZPFramePtr+1
.7 lda (ZPFramePtr) .7 lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.END cmp #S.DHCP.OPTIONS.END
beq .8 beq .8
jsr GetDHCPOption May override SVRIP jsr GetDHCPOption May override SVRIP
bra .5 bra .5
.8 jsr CS.RUN.DISCARD .8 jsr CS.RUN.DISCARD
clc clc
rts rts
.9 jsr CS.RUN.DISCARD .9 jsr CS.RUN.DISCARD
sec sec
rts rts
*-------------------------------------- *--------------------------------------
GetDHCPOption cmp #S.DHCP.OPTIONS.MASK GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
bne .1 bne .1
ldx #S.IPCFG.MASK ldx #S.IPCFG.MASK
bra GetDHCPOption.CopyIP bra GetDHCPOption.CopyIP
.1 cmp #S.DHCP.OPTIONS.GW .1 cmp #S.DHCP.OPTIONS.GW
bne .2 bne .2
ldx #S.IPCFG.GW ldx #S.IPCFG.GW
bra GetDHCPOption.CopyIP bra GetDHCPOption.CopyIP
.2 cmp #S.DHCP.OPTIONS.DNS .2 cmp #S.DHCP.OPTIONS.DNS
bne .3 bne .3
ldx #S.IPCFG.DNS1 ldx #S.IPCFG.DNS1
bra GetDHCPOption.CopyIP bra GetDHCPOption.CopyIP
@ -269,21 +297,29 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
ldy #5 ldy #5
ldx #3 ldx #3
.31 lda (ZPFramePtr),y .31 lda (ZPFramePtr),y
sta DHCP.REQ.OPT.SVRIP,x sta DHCP.REQ.OPT.SVRIP,x
dey dey
dex dex
bpl .31 bpl .31
rts rts
.4 cmp #S.DHCP.OPTIONS.DOMAIN .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 #45 cmp #45
bcc .6 bcc .6
lda #44 lda #44
.6 sta IPCFG+S.IPCFG.DOMAIN store len .6 sta IPCFG+S.IPCFG.DOMAIN store len
tax tax
.7 iny .7 iny
lda (ZPFramePtr),y lda (ZPFramePtr),y
sta IPCFG+S.IPCFG.DOMAIN-1,y sta IPCFG+S.IPCFG.DOMAIN-1,y
@ -297,8 +333,11 @@ GetDHCPOption.CopyIP
lda (ZPFramePtr),y Get Byte count lda (ZPFramePtr),y Get Byte count
cmp #9 cmp #9
bcc .1 bcc .1
lda #8 max 8 bytes (2 DNS) lda #8 max 8 bytes (2 DNS)
.1 iny .1 iny
.2 pha .2 pha
lda (ZPFramePtr),y lda (ZPFramePtr),y
sta IPCFG,x sta IPCFG,x
@ -307,10 +346,12 @@ GetDHCPOption.CopyIP
pla pla
dec dec
bne .2 bne .2
rts rts
*-------------------------------------- *--------------------------------------
CheckDHCPAck jsr CheckDHCPXID CheckDHCPAck jsr CheckDHCPXID
bcs .9 bcs .9
lda ZPFrameBase lda ZPFrameBase
clc clc
adc #S.DHCP.OPTIONS adc #S.DHCP.OPTIONS
@ -322,13 +363,16 @@ CheckDHCPAck jsr CheckDHCPXID
lda (ZPFramePtr) lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.MSGTYPE cmp #S.DHCP.OPTIONS.MSGTYPE
bne .9 bne .9
ldy #2 ldy #2
lda (ZPFramePtr),y lda (ZPFramePtr),y
cmp #S.DHCP.OPTIONS.DHCPAck cmp #S.DHCP.OPTIONS.DHCPAck
bne .9 bne .9
jsr CS.RUN.DISCARD jsr CS.RUN.DISCARD
clc clc
rts rts
.9 jsr CS.RUN.DISCARD .9 jsr CS.RUN.DISCARD
sec sec
rts rts
@ -339,14 +383,18 @@ CS.RUN.DISCARD lda hFrame
*-------------------------------------- *--------------------------------------
CheckDHCPXID ldy #S.DHCP.XID+3 CheckDHCPXID ldy #S.DHCP.XID+3
ldx #3 ldx #3
.1 lda (ZPFrameBase),y .1 lda (ZPFrameBase),y
cmp DHCP.DISC.XID,x same XID ? cmp DHCP.DISC.XID,x same XID ?
bne .9 bne .9
dey dey
dex dex
bpl .1 bpl .1
clc clc
rts rts
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -13,6 +13,12 @@ IP.IN ldy #S.IP.PROTOCOL
bne .3 bne .3
jsr FRM.GetTargetSKT.TCPUDP jsr FRM.GetTargetSKT.TCPUDP
* lda SKT.LOC.ADDR+S.SOCKADDR.PORT
* cmp #68
* bne .77
* >DEBUG
*.77
jsr SKT.FindMatchingLocRem jsr SKT.FindMatchingLocRem
bcs .9 bcs .9

View File

@ -221,7 +221,7 @@ CS.INIT.CONF >LDYAI 64
>SYSCALL PrintF >SYSCALL PrintF
>PUSHW pBuf >PUSHW pBuf
>PUSHBI S.PS.F.HOLD >PUSHBI 0 S.PS.F.HOLD
>SYSCALL ExecL >SYSCALL ExecL
jsr CS.RUN.CheckErr jsr CS.RUN.CheckErr
>SLEEP >SLEEP