Repairing an A501 Trapdoor expansion for Amiga 500

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.

The symptoms

Not booting but with 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.

Diagnosis

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

JP7 on a Rev 6A Board.

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:

So we have an error. The actual address is not important, we want to see which data bits get corrupted. Here we find that one long-word (32 Bits) has the following error:

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 path with the data lines going to trapdoor slot marked.

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:

Which Ram IC serves which data line on the A501.

From this we see that we have to replace U53 which corresponds to D5.

Replacing the IC

First desolder U53:

U53 desoldered.

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.

U53 replaced with a new chip.

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:

And find no more errors. Indeed the Amiga now boots with the expansion memory turned on. The yellow screen is gone and the card repaired!

References

  • Amiga schematics including the A500 Rev 6A
  • Data sheets for the DRAMs used on the A501: Here.
  • The a1k.org memory checker: Here.