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
|
||||
|
||||
;
|
||||
; Whether the chip answers: its Product ID at PacketPage $0000. Out: carry clear if it does.
|
||||
; X and Y are kept.
|
||||
; Whether the chip answers: the PacketPage Pointer, set to $0000, reads back $3000, as its
|
||||
; 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:
|
||||
@@ -221,6 +223,9 @@ arnitech_net_probe:
|
||||
lda #$00
|
||||
sta RRNET_PP_POINTER+0
|
||||
sta RRNET_PP_POINTER+1
|
||||
lda RRNET_PP_POINTER+1
|
||||
cmp #$30
|
||||
bne @1
|
||||
lda RRNET_PP_DATA+0
|
||||
cmp #<CS_PRODUCT_ID
|
||||
bne @1
|
||||
|
||||
Reference in new issue
Block a user