When I interpret your photos above correctly, the short was on A0 of the RAMs, right? That does of course not match A0 on the system address bus. (Incidentally, the system address bus only starts at A1.)exxos wrote: Tue Apr 28, 2020 10:27 am
8 = 1000 so that must be the address. it gets back 1010 = 10. Even so it doesn't make sense. As if A0 is shorted to GND, then "1000" is still A0=0.. So it shouldn't have mattered anyway at that point.
It depends on the machine, the type of MCU and its configuration, but in your case the MCU mapped the address bits of the system as follows:
CPU A1 -> RAM A0
CPU A2 -> RAM A1
CPU A3 -> RAM A2
CPU A4 -> RAM A3
CPU A5 -> RAM A4
CPU A6 -> RAM A5
CPU A7 -> RAM A6
CPU A8 -> RAM A7
CPU A9 -> RAM A8
CPU A10 -> RAM A0
CPU A11 -> RAM A1
CPU A12 -> RAM A2
CPU A13 -> RAM A3
CPU A14 -> RAM A4
CPU A15 -> RAM A5
CPU A16 -> RAM A6
CPU A17 -> RAM A7
CPU A18 -> RAM A8
The RAM test puts 16 bits of the address as data into RAM:
always 0 -> data bit 0
CPU A1 -> RAM A0 -> data bit 1
CPU A2 -> RAM A1 -> data bit 2
CPU A3 -> RAM A2 -> data bit 3
CPU A4 -> RAM A3 -> data bit 4
CPU A5 -> RAM A4 -> data bit 5
CPU A6 -> RAM A5 -> data bit 6
CPU A7 -> RAM A6 -> data bit 7
CPU A8 -> RAM A7 -> data bit 8
CPU A9 -> RAM A8 -> data bit 9
CPU A10 -> RAM A0 -> data bit 10
CPU A11 -> RAM A1 -> data bit 11
CPU A12 -> RAM A2 -> data bit 12
CPU A13 -> RAM A3 -> data bit 13
CPU A14 -> RAM A4 -> data bit 14
CPU A15 -> RAM A5 -> data bit 15
With that knowledge you can see that the mismatch between 0000010000001010 and 0000000000001000, i.e. in data bits 1 and 10, clearly indicates RAM A0.