ARP:fixed bug preventing ICMP updating ARP cache

This commit is contained in:
Rémy GIBERT
2016-03-17 16:50:11 +01:00
parent dab1b519fb
commit c5bdbb93ad

View File

@@ -251,44 +251,32 @@ ARP.RESOLVE ldy #S.IP.DST
ARP.FIND.BY.IP >LDYA L.ARP.CACHE ARP.FIND.BY.IP >LDYA L.ARP.CACHE
>STYA ZPCachePtr >STYA ZPCachePtr
ldx #K.ARPCACHE.SIZE lda #K.ARPCACHE.SIZE
sta TmpOffset
.1 lda (ZPCachePtr) .1 lda (ZPCachePtr)
beq .2 beq .3
ldy #S.ARPCACHE.IP
lda (ZPCachePtr),y
cmp (ZPPtrIP)
bne .2
ldy #S.ARPCACHE.IP+1
lda (ZPCachePtr),y
ldy #1
cmp (ZPPtrIP),y
bne .2
ldy #S.ARPCACHE.IP+2
lda (ZPCachePtr),y
ldy #2
cmp (ZPPtrIP),y
bne .2
ldx #3
ldy #S.ARPCACHE.IP+3 ldy #S.ARPCACHE.IP+3
lda (ZPCachePtr),y
ldy #3 .2 lda (ZPCachePtr),y
cmp (ZPPtrIP),y cmp ARP.TmpCache+S.ARPCACHE.IP,x
bne .2 bne .3
dey
dex
bpl .2
clc clc
rts rts
.2 lda ZPCachePtr .3 lda ZPCachePtr
clc clc
adc #S.ARPCACHE adc #S.ARPCACHE
sta ZPCachePtr sta ZPCachePtr
bcc .8 bcc .8
inc ZPCachePtr+1 inc ZPCachePtr+1
.8 dex .8 dec TmpOffset
bne .1 bne .1
sec sec
rts rts