You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am repairing an A4000, which had a failed U975 resulting in MDAT stuck at logic '0'. The symptoms in DiagROM were all joystick direction buttons being pressed, and although I didn't check this, the upper byte of DENISEID should have been $00 also. As I was not familiar with normal operation of DiagROM, I didn't realise the joystick buttons were all pressed - I had nothing plugged in, and I thought the colour red was not pressed instead.
I lifted the leg of U975 pin 13, which allowed MDAT to float to logic '1' at Lisa. I could tell that Lisa was reading MDAT, as the buttons changed colour when my oscilloscope probe was touching MDAT. (Floating gate.)
What I propose is that DiagROM should check for stuck joystick pins at startup, and report this. On AGA machines, add an extra warning if all pins are stuck at the same logic level as the upper eight bits of DENISEID, as this points to MDAT being stuck. The message should say if it's stuck at '0' or '1'.
Add another comment if the first test passes but the upper byte of DENISEID is unexpected. I think it should always be $FC for an A4000, or $00 for A1200 and CD32. Any other ID is either caused by jumpers installed on J975 of A4000, or a fault somewhere around the second shift register.
It could actually be useful to use DENISEID to control how DiagROM boots - on the A4000 you have six jumpers on J975, but on CD32 it appears that the upper byte can be set to $FF instead of $00, by pulling up the signal MX, which is U34 pin 1, going to a via which seems to go nowhere. (It has a 470 ohm pull-down.) So that via looks like a factory test point which we can use to force alternate behaviour in DiagROM. Desperate users could also float this pin on an A1200, and use it similarly.
I have confirmed that going out and back into the "0 - System info" menu item, produces a different DENISEID as jumpers are moved around on J975. Likely this can be polled as fast as the joystick switches, maybe we can use this someday to create a test harness?
The text was updated successfully, but these errors were encountered:
I am repairing an A4000, which had a failed U975 resulting in MDAT stuck at logic '0'. The symptoms in DiagROM were all joystick direction buttons being pressed, and although I didn't check this, the upper byte of DENISEID should have been $00 also. As I was not familiar with normal operation of DiagROM, I didn't realise the joystick buttons were all pressed - I had nothing plugged in, and I thought the colour red was not pressed instead.
I lifted the leg of U975 pin 13, which allowed MDAT to float to logic '1' at Lisa. I could tell that Lisa was reading MDAT, as the buttons changed colour when my oscilloscope probe was touching MDAT. (Floating gate.)
What I propose is that DiagROM should check for stuck joystick pins at startup, and report this. On AGA machines, add an extra warning if all pins are stuck at the same logic level as the upper eight bits of DENISEID, as this points to MDAT being stuck. The message should say if it's stuck at '0' or '1'.
Add another comment if the first test passes but the upper byte of DENISEID is unexpected. I think it should always be $FC for an A4000, or $00 for A1200 and CD32. Any other ID is either caused by jumpers installed on J975 of A4000, or a fault somewhere around the second shift register.
It could actually be useful to use DENISEID to control how DiagROM boots - on the A4000 you have six jumpers on J975, but on CD32 it appears that the upper byte can be set to $FF instead of $00, by pulling up the signal MX, which is U34 pin 1, going to a via which seems to go nowhere. (It has a 470 ohm pull-down.) So that via looks like a factory test point which we can use to force alternate behaviour in DiagROM. Desperate users could also float this pin on an A1200, and use it similarly.
I have confirmed that going out and back into the "0 - System info" menu item, produces a different DENISEID as jumpers are moved around on J975. Likely this can be polled as fast as the joystick switches, maybe we can use this someday to create a test harness?
The text was updated successfully, but these errors were encountered: