Jump to content

Commodore 128 RAM Replacement

From RetroTechCollection
Commodore 128 schematic 310378 rev 6 sheet 4, system RAM U38-U53
Commodore's schematic of the system RAM, sheet 4 of 4, rev. 6. Bank 0 (U38-U45) is the upper row and bank 1 (U46-U53) the lower; each chip holds one data bit, D0 at the left to D7 at the right. CAS0 reaches bank 0 through U9 and R29, and CAS1 reaches bank 1 through U9 and R30.

The Commodore 128 has 128 KB of system RAM in sixteen 4164 DRAMs (64K × 1) on the main board, PCB assembly 310379. U38-U45 form bank 0, used in both 64 and 128 mode, and U46-U53 form bank 1, used in 128 mode only. Each chip holds one bit of the data bus: U38 and U46 carry D0, and so on to U45 and U53 for D7.[1][2] A failed RAM chip is a common cause of a blank screen or a garbled start-up; Commodore's C128 diagnostic and its C64 Dead Test cartridge both point to the failing chip by position.[3][4] The procedure below finds the faulty chip and replaces it.

Symptoms

[edit | edit source]

Ray Carlsen lists these symptoms of a failed 4164:[2]

  • Blank screen with no border.
  • A "garbage" screen, an abnormal number of bytes free, or an "out of memory" error on the start-up screen.
  • Programs crashing when loading, depending on which part of memory has failed.
  • A shorted chip may get hot.

Because bank 1 is used only in 128 mode, a fault there can leave 64 mode working.[2]

Faults that look similar:

  • The 74LS257 multiplexers U14 and U15 can also give a blank screen, abnormal bytes free or a garbage screen.[2] They drive the RAM addresses MA0-MA7.[5]
  • When every RAM test fails, suspect the addressing first. Adam Wilson's third C128 board failed all the RAM tests and the serial port test; the RAM was good, and the fault was the 8502 processor.[6] Commodore notes that a PLA or MMU failure can show as bank 0 and bank 1 failing in the same pattern with every I/O test failing.[3]
  • Commodore's Dead Test manual warns that several defective RAM chips may point to a defective power supply or on/off switch.[4] Check the supply first: see Commodore 128 Power Supply Testing and Repair and Commodore 128 Power Switch and Regulator Repair.

For other faults, see the Commodore 128 Troubleshooting Guide.

Tools and parts

[edit | edit source]
  • Replacement 4164 DRAMs. Commodore's parts lists give 200 ns for rev. 6 boards and 150 ns for rev. 7.[7][8]
  • 16-pin sockets for the new chips.[9]
  • Desoldering tools: a solder sucker, desoldering braid and a larger tip for the power and ground pins.[9]
  • A diagnostic cartridge. Commodore's C128 diagnostic (kit 314060) tests both banks and names the failing chip.[3] World of Jani notes that the C64 Dead Test cartridge finds faulty low memory on a C128 with a blank screen, and that the C128 diagnostic can then test the upper memory once the C64 side works.[10]
  • An oscilloscope or logic probe for Commodore's signal checks.[11]

Procedure

[edit | edit source]

Open the computer

[edit | edit source]

Carlsen's steps for the flat C128:[12]

  1. Unplug the supply and all cables and remove the six screws, Phillips or Torx T10, from the bottom of the case.
  2. Lift the top at the front edges, releasing the two snaps on each side, and unplug the power LED lead.
  3. Shift the top to the left, pull the keyboard plug straight up by its wires, rocking it, and remove the ground strap screw on the right of the main board.

Find the failing chip with the Dead Test

[edit | edit source]
C64 Dead Test RAM error flash code chart (314139-02 p. 2-2)
Commodore's Dead Test flash code chart. The C128 column gives the pair of chips for each data bit.
  1. Fit the C64 Dead Test cartridge and power up. With a RAM fault the border flashes a code.[4][10]
  2. Count the flashes and find the bit and the chips in the table below.[4]
  3. The Dead Test reports one chip at a time: when that chip has been replaced it flashes the code for the next.[4]
Dead Test flash codes on the C128 (Commodore)[4]
Flashes Data bit C128 chips
1 7 U45 / U53
2 6 U44 / U52
3 5 U43 / U51
4 4 U42 / U50
5 3 U41 / U49
6 2 U40 / U48
7 1 U39 / U47
8 0 U38 / U46

Each code names one chip in each bank. Adam Wilson's board gave eight flashes, a stuck data bit 0; he removed both U38 and U46 and found one of them faulty.[6]

Find the failing chip with the C128 diagnostic

[edit | edit source]
  1. Fit Commodore's C128 diagnostic cartridge and power up. If a normal power-up does not start it, Commodore advises trying the reset switch.[3]
  2. Note the chips shown as bad at the first failing RAM test. Commodore stresses that the first pass matters: let the diagnostic run on and it reports more chips, because it needs memory itself.[3]
  3. Replace the chips named and restart the diagnostic. If the same chip is still flagged, or more than one is flagged at the start, a defective chip may be making another look bad; Commodore then sends you to its signal checks, below.[13][14]

Wilson's fourth board started in 128 mode once U38 or U46 was replaced, and the diagnostic then flagged U50 in bank 1; replacing it cleared all the RAM tests.[6]

Check the RAM signals

[edit | edit source]

These are Commodore's checks, made with the diagnostic cartridge fitted and an oscilloscope.[3][5]

  1. Pin 4 (RAS) of U38 and U46: a pulsing strobe. If not, Commodore names U21 and the RAM chips.
  2. Pin 15 (CAS0) of U38-U45: a pulsing strobe. If not, U9 and the bank 0 chips.
  3. Pin 15 (CAS1) of U46-U53, at power-up: a 4-5 V level with negative pulses once on reset. If not, U9 and the RAM chips.
  4. Pins 5-7 and 12 (MA0-MA3) of U38-U53: a pulsing address. If wrong, U15, RP4 and the RAM chips.
  5. Pins 9-11 and 13 (MA4-MA7): if wrong, U14, RP3 and the RAM chips.
  6. Pin 2 (data) of U38-U45, at power-up: strong +5 V data pulses immediately. Commodore notes that a data pulse below 4 V, or slow to reach 5 V, usually means a defective 4164.

Swap the banks (Commodore's advanced test)

[edit | edit source]

Commodore gives this method "for information only", warning that it may void credit for a board returned to Commodore.[15] It finds a bank 0 fault that stops the machine starting.

  1. Make sure the signals above are correct, then switch off.
  2. Cut one end of R29 and of R30 and lift it from the board.
  3. Solder a jumper from the lifted end of each resistor to the other resistor's pad, so that R29 feeds the R30 position and R30 the R29 position. This swaps CAS0 and CAS1, and with them the two banks.
  4. Fit the diagnostic and power up. If the machine now starts, the fault is in bank 0 and the diagnostic shows it, with the positions moved by eight: U38 is reported as U46, U39 as U47, and so on.
  5. If it still does not start, the RAM is probably good. Restore R29 and R30.

World of Jani mentions the same idea for the Dead Test: rewire the high and low memory and run the cartridge again.[10]

Replace the chip

[edit | edit source]

Carlsen's method for small chips such as the RAM:[9]

  1. Cut each pin of the old chip close to the body. Replacements are cheap and this does not risk the board.
  2. Remove the pin stubs one at a time and clear each hole.
  3. Inspect both sides of the board. A copper-coloured blob on a removed pin is torn through-hole plating; repair it with a single strand of wire through the hole, soldered on both sides.
  4. Fit a 16-pin socket. Never solder a socket with a chip in it.
  5. Fit the new 4164 with its notch the same way as the others in the row.

If the chip is to be kept for testing, desolder it whole instead: heat each pin for about two seconds until the solder is molten on both sides, draw the solder out, and free every pin before lifting the chip.[9] Wilson socketed U38 and U46 and tested the removed chips.[6]

Reassemble

[edit | edit source]

Refit the ground strap screw, the keyboard plug, the power LED lead and the six case screws. Do not overtighten the screws; the plastic strips easily.[12]

Testing

[edit | edit source]
  1. Run the Dead Test: it should complete without a flash code.[4]
  2. Run Commodore's C128 diagnostic and check that all the RAM tests pass in both banks.[3][6]
  3. Start in 128 mode and in 64 mode and check the start-up screens and the bytes-free figure.[2]

Board revisions

[edit | edit source]

Both revisions of PCB 310379 use sixteen 4164s at U38-U53; the parts lists differ only in the speed, 200 ns on rev. 6 and 150 ns on rev. 7.[7][8] The C128D column of Commodore's Dead Test chart gives U38-U41 for its 64K × 4 RAM.[4] Carlsen notes that later US C128DCR boards use four 4464 chips.[2] Those machines are not covered here.

[edit | edit source]

References

[edit | edit source]
  1. ↑ Commodore Business Machines, Service Manual C-128/C128D Computer, PN-314001-08, November 1987, schematic 310378 rev. 6, sheet 4 of 4, "RAM, ROM", printed p. 69 (PDF p. 76): U38-U53, data bits, MA0-MA7, RAS, CAS0/CAS1, R29 and R30. Hosted as File:Commodore 128 128D Service Manual 314001-08 (1987 Nov).pdf.
  2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 Ray Carlsen, "C128 chips and common symptoms", updated 8 August 2013: U14/U15 and U38-U53.
  3. ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 C128 Diagnostic Instruction and Troubleshooting Manual (1986), section 2.6, "Troubleshooting the 4164 system RAM", and "Overview of the C128 memory organization", pp. 2-6 and 2-7.
  4. ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Commodore Business Machines, Diagnostic Manual, C-64 Dead Test, PN-314139-02, January 1988, "RAM error flash code chart", p. 2-2, which includes C128 and C128D columns. Hosted as File:C64 Dead Test Diagnostic Manual (314139-02, 1988 Jan).pdf.
  5. ↑ 5.0 5.1 C128 Diagnostic Instruction and Troubleshooting Manual (1986), section 2.6, steps 1-5, pp. 2-7 and 2-8.
  6. ↑ 6.0 6.1 6.2 6.3 6.4 Adam Wilson, Adam's Vintage Computer Restorations, "Commodore C128 board repairs", 18 May 2021: boards 3 and 4.
  7. ↑ 7.0 7.1 Service Manual C-128/C128D (1987), parts list for PCB assembly 310379 rev. 6, printed p. 64: U38-53 4164 dynamic RAM, 200 ns.
  8. ↑ 8.0 8.1 Service Manual C-128/C128D (1987), parts list for PCB assembly 310379 rev. 7, printed p. 71: U38-53 4164 dynamic RAM, 150 ns.
  9. ↑ 9.0 9.1 9.2 9.3 Ray Carlsen, "Replacing IC chips in Commodore equipment", updated 19 December 2012.
  10. ↑ 10.0 10.1 10.2 World of Jani, "Diagnostic carts and manuals": the C64 Dead Test on a C128 and rewiring high and low memory.
  11. ↑ Commodore Business Machines, C128 Diagnostic Instruction and Troubleshooting Manual, Assembly #314060-01/02 (1986), section 2.1, p. 2-1: readings with an oscilloscope, cartridge fitted. Hosted at Commodore 128 Diagnostic Instruction and Troubleshooting Manual (314060).
  12. ↑ 12.0 12.1 Ray Carlsen, "Commodore keyboards", updated 17 November 2015, section "Disassembly / reassembly... C128 computer".
  13. ↑ C128 Diagnostic Instruction and Troubleshooting Manual (1986), section 1.6, RAM tests: replace any RAM chip shown as bad before letting the diagnostic proceed, and go to sections 2.6 and 2.7 if more than two are shown.
  14. ↑ C128 Diagnostic Instruction and Troubleshooting Manual (1986), section 3.1, "Diagnostic errors displayed", p. 3-1.
  15. ↑ C128 Diagnostic Instruction and Troubleshooting Manual (1986), section 2.7, "Advanced 4164 RAM troubleshooting", p. 2-9.