This post describes how I repaired an A501 Trapdoor memory expansion. I explain how to diagnose the error and some tricks how this can be done with just an Amiga 500. The symptoms are that the Amiga does not boot and indicates a yellow screen.
When installed into the trapdoor slot, the Amiga does not boot, and insted hangs with a yellow screen. This is a common indication that something is wrong with one or more of the RAM ICs. In this case I have no reason to suspect any damage to the traces on the PCB so we start with this hypothesis right away. Sometimes you also get a green screen, if one of the ICs is damaged.
The A501 has one IC per data line, so we have to find out which one is defective.
To find the defective chips we would like to use the switch usually provided with a trapdoor expansion. Then boot the Amiga with the expansion installed but switched off. The expansion can be safely switched on, while the Amiga is powered. This makes the memory expansion available to the CPU, but the OS is not aware of it. In
this way we can run tests on the expansion without interfering with the OS. This has a little problem though, the A501 can not be switched off. To compensate, a Revision 6A-board has Jumper 7 near the trapdoor expansion. It can act as a mainboard side switch. Two of the pads are connected with a PCB trace. This trace must be cut. I installed a pinheader on the other two pads. This can be used as a switch now.
Now we can proceed as follows. Install the A501, remove the Jumper and boot the Amiga. In this case the Amiga boots with no problems. Close the Jumper. Now the memory in the expansion area can be tested with a memory checker of your preference, I use the A1k.org memtest98. You can use it with the following parameters:
memtest98i C00000 C7FFFF MIRR
This tests the adress range of the trapdoor expansion (0xC70000-0xC7FFFF) using the mirror test. I found that the normal test is usually not capable of finding the errors we are after. In our case the output from memtest is the following:
expected: $FFFE.FDFC, got: $FFDE.FDDC
To find the defective bit, we convert this to binary:
$FFFE.FDFC = 1111 1111 1111 1110 . 1111 1101 1111 1100 $FFDE.FDDC = 1111 1111 1101 1110 . 1111 1101 1101 1100
we see that there is a 1-bit error in the data bits 5 and 21 (starting to count at 0 from the right). Since the data bus in the Amiga has 16 bits, these two are actually connected to the same data line D5. Hence we suspect the RAM IC connected to D5 to be our defective chip.
Identifying the RAM ICs
To find out which IC is connected to which data line, I found it easiest to buzz out the data lines in the Amiga directly to the corresponding pins on the RAM IC. The most conveniently accessible location in the Amiga where you can find the data bus is the Data Path.
The data lines are connected to Pins 2 and 14 of the RAM ICs. Buzzing out the data lines from the data path to these ICs we get the following distribution on the A501:
From this we see that we have to replace U53 which corresponds to D5.
Replacing the IC
First desolder U53:
And replace it with another DRAM 256k x 1. I managed to find one with a similar part number, but from a later make than to original.
It remains to test the card. To make room for memtest98i we boot the Amiga wit the expansion switched off and switch it on after booting. Then we can repeat our test:
- Amiga schematics including the A500 Rev 6A
- Data sheets for the DRAMs used on the A501: Here.
- The a1k.org memory checker: Here.