• Please review our updated Terms and Rules here

C128 black screen / blank screen

Do we know for sure that the VIC chip doesn't pull the interrupt line low if it's not initialized? Anything connected to IRQ rather than NMI should be able to have whichever state it wants without affecting the initial startup.
 
@MiaM I swapped in the VIC II chip from the bad C128 into the good C128 and it worked fine, got the C128 40-column startup screen....so I assume the VIC II is good.

Well, I've tested the bad C128 again and now the Z80 pin 16 (INT) tests constantly high (5.2-4.7 VDC). Not sure if a component on the INT circuit could be causing the sporadic behavior. I know Z80 pin 16 connects to the 8502 pin 3, the VIC II pin 8, the CIA (U1) pin 21 and resistor R10....and possibly more--I haven't followed all the traces yet.
 
I socketed the Z80's in both C128's. I put the Z80 from the bad C128 into the good C128, and the good C128 boots up just fine. So, it's not the Z80.

I'll turn my attention to the traces. There's an area on the board where the traces are a bit corroded. Maybe I'll find something there.
 
I found 3 traces that failed continuity. I connected them with jumper wire and passed continuity. Also replaced a transistor (Q4) as one of its legs was corroded. Still a blank screen.
What's different is Z80 pin 16 (/INT) is now high. Here's the what the control lines read on the Z80 on the bad C128. The '/' indicates active low.
16 /INT = high
17 /NMI = high
18 /HALT = high
19 /MEMREQ = low
20 /IORQ = high
21 /RD = low
22 /WR = high
23 /BUSAK = low
24 /WAIT = high
25 /BUSRQ = low
26 /RESET = high
27 /M1 = high
28 /RFSH = high

I asked Google's AI what it means if these are low and it responded:

If the Z80 microprocessor has the following signals low:
  • MREQ (Memory Request): This indicates that the Z80 wishes to access memory.
  • RD (Read): This indicates that the Z80 wants to read data.
  • BUSAK (Bus Acknowledge): This means an external device has requested the bus via BUSRQ and the Z80 has granted control to it by putting its address, data, and control signals (including MREQ and RD) into a high-impedance state.
  • BUSRQ (Bus Request): This is the request from an external device for control of the bus.
Therefore, if all four signals are low, it means that an external device has requested control of the bus via BUSRQ, and the Z80 has acknowledged this request by asserting BUSAK and placing its buses in a high impedance state, effectively relinquishing control to the external device. The external device is now performing a memory read operation, indicated by the low MREQ and RD signals on the bus, and the Z80's participation is suspended during this time.

If this is correct, then maybe the 8502 is attempting a read but is unable to do so due to a bad memory IC or bad logic IC, etc. I'll have to read up more on the start-up sequence.
 
I asked Google's AI what it means if these are low and it responded:
Um, yeah. Do not ask LLMs about this sort of thing. They will more often than not spout rubbish. If you're lucky, you'll notice internal contradictions, though it's apparent you didn't in this case.

If the Z80 microprocessor has the following signals low: [MREQ, RD, BUSAK, BUSRQ]....
  • BUSAK (Bus Acknowledge): This means an external device has requested the bus via BUSRQ and the Z80 has granted control to it by putting its address, data, and control signals (including MREQ and RD) into a high-impedance state....
Therefore, if all four signals are low....
If MREQ and RD are low, they are not in a high impedance state. The LLM, of course, doesn't see that contradiction because it just generates plausible-sounding words with no care for what they actually mean.
 
@MiaM well, yes and no...it's sporadic. On the bad C128, on the Z80 there are times I turn on the machine I get pulsing on the data and address lines for the entire time I have the machine on....i.e. 4-5 minutes. But there are also times after turning on the machine, that I get pulses on the data and address lines for 5 seconds or 30 seconds, etc., then the data lines just hover at 2v and address lines at 5v. Every once in a while after a few seconds or more, the screen will go from black/blank to a solid white, green or some other color or even more rarely it shows garbage characters for a few seconds then solid color again.
 
Thinking about this, if you had access to one of those in-circuit CPU emulators for the Z80 that might be handy to test things out. :)
 
I received my second C128 (call it C128 #2) and I verified it works (displays C128 mode green startup/BASIC screen), as advertised by the seller. Luckily, it's the same motherboard as my first C128, 310381 Rev 7. I haven't had a whole lot of time but here's what I covered so far. I didn't see any physical differences between the motherboards, e.g. bodge wires, trace by U3 (post #5). On the C128 #2 the voltages looked OK, pin 2 on the datasette port tested 5.030 VDC.

Below are the readings (MHz) when the C128 #2 was plugged into a composite monitor (1702) and in C128 40-col mode in slow/default mode, and nothing plugged into any other port.
VIC II pin (these VIC II readings matched what was measured on C128 #1)...
18 = 1.023
23 = 1.022 (2.045 in fast mode--wasn't able to test fast mode on C128 #1)
25 = 2.273 same waveform as in post #39
29 = 14.37
30 = 8.163
MMU pins 43 (Z80EN - low if Z80 mode) and 47 (C128/C64 mode - high when in C128 mode) were both high, (I'll have to measure this on C128 #1)
Z80 pin 6 (PHI system clock) = 2.273 which is also what C128 #1 showed
8502 pin 1 = 1.023 (2.045 in fast mode)

Chip swapping: Next I removed each of the following socketed chips from C128 #2 and put in the one from C128 #1:
MMU (U7), SID (U5), VIC II (U21), ROMs (U32 through U35), CIA's (U1, U4), VDC (U22), IC timer (U28)
All of them worked fine...showed green startup/BASIC screen. Therefore, I assume those chips from C128 #1 are OK.

So, it seems the next ones to test are the 8502, Z80 and PLA. But unfortunately, none of these are socketed. Any input on which one I should try first? Also, I've seen this but not sure if it's recommended. Is it possible to remove, for example the 8502 from C128 #1 and simply set it atop/piggyback on the existing 8502 in the C128 #2?

I know this is late to the party but I wanted to thank you for this thorough post here.
I finally got back to a black screen on my non-working C128 and started down the same Diag manual as you.
I, too, got totally concerned when my clock values were not matching the Diag manual.
I was about to post a similar question when I re-read this thread.
This saved me a lot of time and worry.

Thank you!!

BTW - I'm at a similar place in my troubleshooting as you were 2 months ago. Still trying to catch up :)
 
I swapped in the PLA in the bad C128 into the good C128, the good C128 started up fine and diagnostic cartridge tested just fine. Therefore, the PLA is OK.

I did continuity checks on the address lines among the Z80, 8502, MMU and kernal ROM. No issues.
I did continuity checks on the RAM chips amongst themselves. No issues.

I did RAM testing per instructions starting on page 2-7 of the Diagnostics/Troubleshooting manual.
Step 1 - pin 4 (RAS) always passes.
Step 2 - pin 15 (CAS0) U38-U45 sometimes passes.
Step 3 - pin 15 (CAS0) U46-U53 always fails. Always pulses, or sometimes always high but with negative pulses until I turn off the machine.
Step 4 - pin 5-7, 9-13 (address lines) always passes.
Step 5 - pin 2, not sure...it gets to 5V or greater withing 1.5 to 2 seconds. Not sure if that's considered passing. Will need to compare with good C128.

Also followed the steps on page 2-9 where I swapped the leads of resistor R29 and R30. Still the same outcome as above for the respective banks.

At this point it looks like U9 may need to be replaced/swapped given the outcomes of steps 2 and 3.
 
Last edited:
I swapped in the PLA in the bad C128 into the good C128, the good C128 started up fine and diagnostic cartridge tested just fine. Therefore, the PLA is OK.

I did continuity checks on the address lines among the Z80, 8502, MMU and kernal ROM. No issues.
I did continuity checks on the RAM chips amongst themselves. No issues.

I did RAM testing per instructions starting on page 2-7 of the Diagnostics/Troubleshooting manual.
Step 1 - pin 4 (RAS) always passes.
Step 2 - pin 15 (CAS0) U38-U45 sometimes passes.
Step 3 - pin 15 (CAS0) U46-U53 always fails. Always pulses, or sometimes always high but with negative pulses until I turn off the machine.
Step 4 - pin 5-7, 9-13 (address lines) always passes.
Step 5 - pin 2, not sure...it gets to 5V or greater withing 1.5 to 2 seconds. Not sure if that's considered passing. Will need to compare with good C128.

Also followed the steps on page 2-9 where I swapped the leads of resistor R29 and R30. Still the same outcome as above for the respective banks.

At this point it looks like U9 may need to be replaced/swapped given the outcomes of steps 2 and 3.
Not sure if you are following my thread but U31 was one of my culprits.
With a bad U31, I would only get a black screen.
I think I have another bad glue logic chip (probably U14 or U15) but I'm letting the board rest from all the soldering abuse I've been giving it :)
 
Thanks @Ozymandias_EBON for letting me know about your thread. I read through it just now. Similar to you, I've been replacing/swapping all major IC's. I still get a black or solid color screen...sometimes with garbage. Now it's getting down to the RAM and glue logic chips. But the question is, which one do I swap/replace? I've been using the C128 Diagnostic Instruction and Troubleshooting Manual (1986)(Commodore)[PN-314060-01] document as a guide. I ordered a replacement for U9 based on the RAM testing I just did, and I ordered U12 based this post.

What was it that led you to replace U31? Was it some particular testing or suggested by a service manual? I'm trying to keep my desoldering/soldering (and chip purchases) to a minimum.
 
I've been using the same one (I think).
Mine has a 01/02 at the end.
It's the one available in the Commodore Repair Toolbox.

What was it that led you to replace U31? Was it some particular testing or suggested by a service manual?
For me, I was going down the Z80 route and hit section 2.8 step 2, on page 2-10.
I knew U10 was good after I swapped with a known good chip and tried it on a known good board.

My next chip to socket and test is U18.
I've gotten much better at solder work so doing the chip-swap-tango is more about finding time.
 
Back
Top