From 1a6c821cfab175a04a6f4160ca1bbd507b8ed5b4 Mon Sep 17 00:00:00 2001 From: Christian Werner Date: Sun, 18 Oct 2026 10:04:44 +0200 Subject: [PATCH] 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. --- src/kernal/arnitech/arnitech_net.s | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/kernal/arnitech/arnitech_net.s b/src/kernal/arnitech/arnitech_net.s index a391b817..34002a0d 100644 --- a/src/kernal/arnitech/arnitech_net.s +++ b/src/kernal/arnitech/arnitech_net.s @@ -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 #