fix(arnitech): the network entries also check the PacketPage Pointer
Without a chip the RR-Net's ports read the floating bus, which can read like the Product ID by chance. The probe now also reads back the PacketPage Pointer it set to $0000: on a CS8900A its bits C-E always read 011b (DS271F5 4.10.5), so the high byte reads $30. Seven bytes.
This commit is contained in:
1 parent
05e4b67858
commit
1a6c821cfa
1 file changed
+7
-2
@@ -212,8 +212,10 @@ arnitech_net_args:
|
|||||||
; FALLTROUGH
|
; FALLTROUGH
|
||||||
|
|
||||||
;
|
;
|
||||||
; Whether the chip answers: its Product ID at PacketPage $0000. Out: carry clear if it does.
|
; Whether the chip answers: the PacketPage Pointer, set to $0000, reads back $3000, as its
|
||||||
; X and Y are kept.
|
; bits C-E always read 011b (DS271F5 4.10.5), and the Product ID is at PacketPage $0000, so a
|
||||||
|
; floating bus that reads like the Product ID by chance is no chip. Out: carry clear if it
|
||||||
|
; answers. X and Y are kept.
|
||||||
;
|
;
|
||||||
|
|
||||||
arnitech_net_probe:
|
arnitech_net_probe:
|
||||||
@@ -221,6 +223,9 @@ arnitech_net_probe:
|
|||||||
lda #$00
|
lda #$00
|
||||||
sta RRNET_PP_POINTER+0
|
sta RRNET_PP_POINTER+0
|
||||||
sta RRNET_PP_POINTER+1
|
sta RRNET_PP_POINTER+1
|
||||||
|
lda RRNET_PP_POINTER+1
|
||||||
|
cmp #$30
|
||||||
|
bne @1
|
||||||
lda RRNET_PP_DATA+0
|
lda RRNET_PP_DATA+0
|
||||||
cmp #<CS_PRODUCT_ID
|
cmp #<CS_PRODUCT_ID
|
||||||
bne @1
|
bne @1
|
||||||
|
|||||||
Reference in new issue
Block a user