• Please review our updated Terms and Rules here

C128 Repair - Status thus far / Consolidating threads

Joined
Jun 28, 2025
Messages
41
Consolidating threads so that all future updates will go here...

Purchased my first C128 (Alpha).
Alpha had a bad CIA (Joystick going Up permanently), but the computer was still usable.
Alpha had a weird tendency to need multiple power cycles to finally boot.
After playing a game, I reset Alpha and it came up for a second and then transitioned to the black screen of despair.

Issue #1 - Bad Power Supply
I was getting weird voltages on the power rails... +5VDC was fine, +12VDC was missing, and the 9VAC was showing fine on the PSU but would drop when plugged in to computer.
Resolved by buying an aftermarket supply.
Will troubleshoot the PSU once Alpha is back up and running.

Issue #2 - Bad socket on U28
In trying to troubleshoot, the contact on U28's socket became bent so that a leg (or a couple legs) were not making contact.
The sympton was no video at all... not even a black screen.
Temporarily resolved by bending a few pins inward.
Permanent resolution will be to replace the socket in the near future.

Steps taken to resolve further unknown issue(s):
1) Replaced caps (no change)
2) Swapped factory socketed chips with known good C128 - Beta (No change to Alpha. All Alpha chips will boot Beta fine. )
3) Socketed PLA's on Alpha and Beta, swapped chips (No change to Alpha. Beta boots fine with Alpha's PLA)

This weekend I socketed the CPU's on Alpha and Beta and swapped chips.
No change to Alpha and Beta boots fine with Alpha's CPU's.

Not sure exactly where to go next.
I purchased an 8 port logic analyzer.
My thoughts were to boot Beta and record various chip activity.
Use this info to compare to Alpha's boot and see what I find.
Thoughts?
 
I finally made progress!!!!

U31 - 74LS00 PC

I socketed this chip on both boards.
I swapped chips and Beta will go black screen if I use Alpha's U31.
With Beta's U31, Alpha will pass dead test fine... Sound and screen perfect.
Ordered a new chip.

But.... (there is always a but)...
40 Column in 128 mode is garbled characters.
80 Column mode is fine.
C64 mode is fine.

Did some searching and everyone points to the VIC chip.
However, I have swapped CIA's and VIC's with known good chips and no change.
Any suggestions?
 
A little more information on the new problem.
From a cold boot, the C128 will sometimes go to just a black screen... not all the time, just intermittent.
When I hit the reset button in any 40 column mode, the screen does the same garbage pattern as the when it boots.
 
That is really weird. Hardware wise afaik the 40 col C128 mode should be the same as C64 mode as seen from the VIC-IIe chips point of view.

Does C128 mode, in 80 col, seem to actually work when running software?

Btw, is it a USA C128 or an international C128?

if it has a Caps Lock key (that works as Caps Lock) then the CHAR ROM has one set of characters for C128 mode, and another set for C64 mode.

If it has a ASCII/CC (or ASCII/DIN for Germany) then the CHAR ROM has one set of characters for ASCII mode and another set for CC/DIN mode, and CHAR ROM is likely an EPROM rather than a mask programmed ROM

A common problem is that the adapter thingie for the CHAR ROM falls out of it's socket, causing garbage. But then you'd get garbage in 80 col mode too (as the CPU copies the CHAR ROM content to 80 col video RAM).
 
Does C128 mode, in 80 col, seem to actually work when running software?
I believe so. I have program from Jani called C128 Diagnose that runs in 128 mode and shows on both monitors. The 80 column monitor output looks great.

Btw, is it a USA C128 or an international C128?
It is an NTSC machine built in West Germany for the USA market.
It does have a Caps Lock key.
 
OK... here's some more information that may, or may not, be useful.

My Kung Fu Flash 2 menus work fine, but I believe those are running in C64 mode.
If I execute "GO64" in C128 mode, during the pause as it goes to switch, the C128 mode 40 column text appears normally (except for the right most characters are off the screen), then it switches to C64 mode and clears the screen.
If I run through the C128 Diag cartridge 785260, the screen is garbled but I can tell when tests are complete and if errors are detected.
No errors...
 
Last edited:
So I found something quite odd.
While probing the Character ROM, I advertently touched the probe to pins 20 and 21 at the same time.
Magically, the screen appeared normal (all normal text, colors, and all) but the system locked up.

I started following those pins around on the schematics and testing various chips with the scope.
U13 wasn't testing normal so I swapped U13 on both.
That was NOT it.
Taking a break for the night...
 
Pin 20 is _CS1
Pin 21 is either C64/C128 mode on a US ASCII C128, or US ASCII / national characters on an international C128

P.S. the quality testing wasn't the best at Commodore. The schematic shows the labels A8...A11 for five address inputs on the char rom :rolleyes:

When you accidentally touched these pins you forced the chip select signal to go active and/or forced the C64/C128 mode signal to the "wrong" state.

What does the garbled characters look like? Is it a bunch of incorrect characters, steady in place? Or does the screen show random but perhaps technically correct characters, that all differ for each frame? (I would think that a modern flat screen TV/monitor might struggle showing this correctly, at least if it tries to do some deinterlacing, possibly).

if the VIC-IIe for some reason runs the computer at 2MHz but still has the screen turned on then the display is supposed to look like this.

Maybe (in 80 col mode) test first what happens if you run the commands fast and slow, and then try the classic FOR I=1 TO 1000 : NEXT or perhaps a larger number than 1000, and check that it actually runs about twice as fast in FAST mode than in SLOW mode. C128 slow mode should be a little bit slower than a C64, while C128 fast mode should be a bit over 2x as fast as C128 slow mode. (The C128 basic is slower than the C64 basic due to it having code for bank switching and whatnot, but on the other hand in fast mode the clock is doubled and there are no VIC-II "bad lines" eating cycles).

Since you have already swapped the PLA, maybe try swapping the MMU chip too?
Otherwise maybe just follow the 64/128 signal and check what else it drives?
 
Mea culpa... Mea Culpa... Mea Culpa...

I was going over my notes this morning and realized I misspoke on the pins I shorted.
When shorting pins 21 (MS3) and 22 (TA9), the screen shows normal but then locks up.

I tested continuity on all the spots below and they are good.
MS3 - U18 (CHARROM) pin 21
U11 pin 15
U7 pin 47

TA9 - U18 (CHARROM) pin 22
U19 pin 22
U62 pin 8
U7 pin 9
U15 pin 11

I think the order of my next chips to socket and test are U18 (CHARROM), then U62 (74LS244), and then U15 (74LS257).
 
U62 is good.

About the time I'm feeling good about my soldering skills, I pull 3 pads on 1 chip.
Luckily, 2 of the pads went nowhere.
Had to add a bodge wire for the third pad.
I hate messing up...

On to U15... tomorrow.
 
Spent today just probing.
I think I may have found something.
U11 (PLA) pin 46 is not pulsing as it should on the bad board.
Since this is the "CHAROM" signal, I think it may be important to my current issue :)

If I move the chip to the good board, the chip pulses like normal.
I confirmed continuity from U11 pin 46 to U18 pin 20 on the bad board.

So my questions are:
Which chip "births" the pulses?
My assumption is the PLA creates the pulses.

What signal tells the chip to "birth" the pulse?
I can't tell by the schematics what signal triggers the PLA (or the CharROM) to create the pulses.
If I knew what that was, maybe I can backtrack further.
 
So I compared PLA pin 25 signals on the bad and good and they are exactly the same after start up.
However, they react differently when I hit the reset button.
The good board the signal will go low when you hold down reset, go up in voltage for a brief moment (not a pulse, more like a wave) then go back to low.
The bad board just stays low.

BUT!!!
If I ground PLA pin 25, the screen looks normal and the machine does not lock up.
If I ground 8502 pin 28, the screen does not clear up.
 
I figured it out.
The PLA wasn't pulling pin 25 low because... it couldn't.
On PLA pin 24 (ground), the pad on the bottom of the board had lifted slightly, and it a hairline crack between the pad and the trace.

The only reason I caught it was by sheer luck.
I was probing, left the board powered on and walked away for a few minutes.
When I came back, the screen was at the BASIC "Ready" prompt.
No garbled characters.

Utterly confused, I powered off and back on.... still good.
Powered the PSU off for a minute, powered back on... still good.
I moved the board a bit and the screen garbled.

I checked every solder point with magnifying glasses and it looked like PLA pin 24 was "cold".
I was reflowing it when it just looked odd.
Higher magnification showed the problem.
I scraped some of the trace, flowed solder from the trace, to the pad, to the pin on the socket.
Reseated the PLA and it has passed multiple tests without any issues.

Many thanks for helping me along on this journey.
I have another board I need to look at but I think that one is an easy fix.
 
Back
Top