• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

SuperMac Spectrum PDQ Display Issue

jmacz

Well-known member
I have had some bad luck with SuperMac cards in the last few months. 🤪

This is not to be confused with the two other recent threads I have had regarding issues with other SuperMac cards:

Now the current issue: I received a SuperMac Spectrum 24 PDQ card from a member of this community. 8-bit and 24-bit color unaccelerated works great! When acceleration is enabled however, in 8-bit mode there is some weird dithering going on and in 24-bit mode, all portions of the screen that are being accelerated have a cyan tint.

System:
  • SuperMac Spectrum 24 PDQ with ROM version 1.27.
  • Macintosh IIci running System 7.1.1.
  • No control panels installed except SuperVideo v2.7.5 which is the driver for the card.
  • No extensions installed.
  • No cards in the system aside from the SuperMac Spectrum 24 PDQ.
  • No cache cards or accelerators.
  • The monitor being used is an Apple 13" RGB Monitor (Trinitron).
  • The cable being used is an Apple DB-15 video cable (the right one with all the proper pins).
  • Same exact system with onboard video or with a SuperMac Spectrum 24/III or with a SuperMac Spectrum 24/IV run perfectly fine.
The following is a picture during the boot process. The image looks good during boot with no issues. Ignore the dark spot on the screen, it's just the vertical refresh.

boot.JPG

The following picture is the problem. This is 24-bit accelerated. Notice that the menu bar is fine. Some of the icons are fine. But when redraw happens, the portion of the screen redrawn has this blue tint. Please note that there is a "Millions of color" option, it's just that it's hard to see because of the blue tint. You can see it in white text where the cursor is.

711 - 24bit.JPG

The following picture is also a problem. This is 8-bit accelerated. Note the weird bands and dithering / dotted line pattern all over the screen.

711 - 8bit.JPG

Now the following two pictures are 8-bit and 24-bit with acceleration DISABLED. With acceleration turned off, the picture is good with 8-bit and 24-bit. The first is 8-bit unaccelerated.

711 - 24bit unaccelerated.JPG

This next one is 24-bit unaccelerated.

711 - 8bit unaccelerated.JPG

Note from the images you can see that I have minimal control panels and 0 extensions installed. I have also tried this with absolutely zero control panels installed. Same issue.

I spoke with @MacOSMonkey who's been helping me on the side (he's so awesome!) and have tried a few other things. I have tried multiple different System versions including:
  • System 6.0.5 with QuickDraw 32 v1.2.
  • System 6.0.8 with QuickDraw 32.
  • System 7.0.1.
All three of the above were fresh installs specifically for the IIci and with nothing else outside of SuperVideo installed. I have also tried SuperVideo versions:
  • SuperVideo 2.07
  • SuperVideo 2.49
  • SuperVideo 2.74
  • SuperVideo 2.75
And I have tried ROM versions:
  • ROM Version 1.11
  • ROM Version 1.27
Here are some screen shots from installs of System 6.0.8 and System 7.0.1.

618 - 8bit.JPG
618 - 24bit.JPG
701 - 8 bit.JPG
701 - 24bit.JPG

As you can see, the same issue happens across different SuperVideo versions, different System versions, different ROM versions. Anyways, I will continue debugging to try and see if I can sort through yet another SuperMac video card issue. 🤓
 

jmacz

Well-known member
On examining the board further, I am seeing some rust on one of the memory chips on the board.

IMG_4653.JPG

The chip is a P4C164 memory chip. I am going to take another look at it.
 

MacOSMonkey

Well-known member
Great - that helps. Different Mac? Anything non-stock in your IIci? Just rule it out.

I just messaged you about the fact that it looks like the RGB values on accelerated transfers are missing the high order bit. So, 0xffffff (white) is being seen as 0x7fffff (cyan). Given that you have seen some rust on the board, there could be some occult hardware issue. You can also check this issue in a paint program with the PDQ vs. an unaffected machine that you can use to compare good RGB data vs. what you see when you try different RGB values on the PDQ -- move the window around to do an accelerated transfer in 24-bit mode. The window should update quickly -- as a visual check to make sure it is being accelerated.

As above, try a different machine, and if you still see the problem, do a thorough visual examination of the board and make sure there is no other corrosion or debris-shorting. Also, clean it carefully with a fine horsehair brush and maybe flux remover, etc. The rust on the board implies that it came from a machine with battery break-down/leakage.
 
Last edited:

MacOSMonkey

Well-known member
I looked more closely at that corroded SRAM. I guess you should pull it, clean it and resolder it. There could be a corroded connection. I think that SRAM is only being used by the accelerator. The main frame buffer on board is the zip RAM.
 

jmacz

Well-known member
The problem is following the card. I moved it into another Mac and the same problem. Will take a closer look at the chip with the rust.
 

MacOSMonkey

Well-known member
Yeah - it shouldn't be doing that. Must be a hardware issue. Clean the whole board with a brush and compressed air, eliminate any debris shorts and address the rusty SRAM. The SRAM devices are probably still available if it turns out to be the culprit and not just a pin connection/corrosion issue (after cleaning/resoldering).

Hopefully, you will have the SuperMac acceleration trifecta - Gens 1, 2 & 3, all in working order, albeit the hard way! :D
 

jmacz

Well-known member
Ok... so...

IMG_4697.JPG

Acceleration is enabled.

IMG_4698.JPG

24-bit color..... and..... NO color issue!!!

So what was it? It was that rusted P4C164 SRAM chip. 6 legs had corroded to the point where they were no longer touching the pads. I was able to clean up all the legs of the chip and 2 of the pads, but 4 of the pads were toast. So for the 4 pads that were gone...

.... ok, don't laugh ....

IMG_4696.JPG

My video card has red earrings now! :cool: Put in connections directly from the legs to spots on the bottom of the board. With those 6 legs reconnected, the card is working now.

Glad this one didn't take as long as the other two cards did! Thanks again @MacOSMonkey!
 

MacOSMonkey

Well-known member
Great job! You did it! (y)

Very creative rework! And most importantly, it works! You were definitely losing the high order RGB bit. What a weird, kind of lucky hardware issue!

If you want to try to hide the rework vs. running the wires over the edge, you could do the following (but it's a bit more involved/tricky rework):

1. Remove the part
2. Scrape off the soldermask on the trace stubs on the destroyed pads
3. Strip the thinnest rework wire you have and roll or pound it flat so that it can run easily under the part - similar to plated up via or trace height.
4. Make sure the wires are flat against the board surface so that they don't overly elevate the device and then truncate the flat wires as fake pads and tape them down.
5. Minimally solder the flat wires to the exposed copper trace stubs (or vias, etc.)
6. Carefully affix the flat rework wire to the board surface using an appropriate adhesive (soldermask compound). You might be able to ask a local fab shop for a very tiny amount of green soldermask (they would probably just give it to you if uou explain you need to do a repair). A Loctite compond might also work, but it has to stick to soldermask. Regular epoxy probably won't stick. The goal is just to use enough to protect/glue the wires - and make sure you don't overstress the stub ends. There is only so much adhesion strength on FR4-bonded copper.
7. Cure the wet soldermask (carefully) with a heatgun. Do this step in a well-ventilated area. Soldermask releases a lot of fumes.
8. After curing, solder the device pins to their respective fake wire pads and nobody will ever see the rework. Start with all the other pins and make sure the fake traces are aligned.

n.b. you could skip the epoxy step and use a small amount of hot glue or kapton tape as you replace the device. The main thing is to ensure the wires never move/touch and that they are flat and aligned with their pins.

Or, if you want to leave it the way it is, then you could secure the red wires with a little bit of hot glue. It's up to you.

But ... 3 working boards and a v1.27 upgrade for the Spectrum/24 PDQ! Woohoo!(y)
 

MacOSMonkey

Well-known member
You could probably also use a very small amount of fingernail polish to fasten and protect thing, but soldermask would be best.
 

zigzagjoe

Well-known member
for small trace breaks you can use single strands from multi-strand wire to repair traces. I think I usually use a strand from 26 gauge SCSI wire. Looks to be 38 gauge (.1mm) equivalent. Incredibly small, just enough that solder will jump the gap without increasing thickness critically.

I recommend one of these overcoat pens for coating such repairs. tolerates isopropyl too. https://www.amazon.com/dp/B0111O76N2
 
Last edited:

jmacz

Well-known member
But ... 3 working boards and a v1.27 upgrade for the Spectrum/24 PDQ! Woohoo!(y)

Yeah, glad they are all working now. Learned a lot!

You could probably also use a very small amount of fingernail polish to fasten and protect thing, but soldermask would be best.

I have been protecting my reworks using fingernail polish, works pretty well. I will look at the fuller fix ideas you mentioned but will probably put that off for now as I have more on my to do list. Working on embedding an LCD into a CRT case just for fun.

I think those red bodge wires are quite fetching.

Haha, thanks!

I recommend one of these overcoat pens for coating such repairs. tolerates isopropyl too.

Oh hmm, I will take a look. Thx for the link!
 

MacOSMonkey

Well-known member
Stranded copper is good to use for trace repair as @zigzagjoe says. When flattened, you generally want something that is at least ~10 mils wide (standard trace width). Try to match the existing width whenever possible. But anyway -- not super-important at the moment, since it's working, which is great!
 

jmacz

Well-known member
After 5 months of working great, ran into an issue today with the Spectrum 24 PDQ. My entire machine (both a IIfx and a Quadra 800) fails to start with the card installed when a particular resolution/frequency is selected. I had thought it was stuck on the "press the spacebar" screen, but that wasn't it. On startup, the systems chime, perform the memory check, and then when the display turns on (gray screen), it starts flickering and hangs there. Hitting the space bar doesn't do anything FYI.

Once in this state, I have to remove the card to get the system to boot. If I put the card back in, same thing happens. In order to get the system to boot with the card in there, I have to zap the PRAM, and then it will show the "press the space bar" screen. But if I choose a particular resolution/frequency, it hangs again.

640x480 works fine (30 MHz clock)
1152x864 works fine (100 MHz clock)
1024x768 hangs (80 MHz clock)

If I choose 1152x864, it will boot fine. And then once I get to the Finder, I open the SuperVideo (v2.7.5) control panel and attempt to switch it to 1024x768 @ 75Hz. The control panel then says it's having trouble communicating with the card. And then begins erroring out at which point I can't use the control panel to select another resolution/frequency as the control panel no longer lists any modes. And then rebooting gets me to the stuck state again. If I choose 640x480 in the control panel, it works fine, no communication error, etc.

Not sure what would go wrong that could cause just this one resolution/frequency to error outside of maybe something's wrong with the 80MHz oscillator?

With the card in the machine, it's kinda awkward to probe the oscillator. I'll have to remove the motherboard and try it on a bench. Haven't had a chance to do that yet though.

Changing SuperVideo versions did not help.
 

jmacz

Well-known member
So I found this from @David Cook :


Looks like the 24 PDQ only fully supports up to System 7.1.x. I had recently upgraded to 7.5.5 and sounds like that might be causing my issue. That’s a bummer. That suggests both my 24 PDQ and 24 III can only go up to 7.1.2 whereas my 24 IV can go much higher since it has. 3.0 or higher ROM.
 

bigmessowires

Well-known member
Does the PDQ have a resolution-selection menu GUI in its ROM that forces itself into the boot sequence? My SuperMac ColorCard SE/30 does, but it only works correctly under System 6. When booting System 7, when the GUI tries to display it freezes the computer. Fortunately if the GUI doesn't try to display then the card still boots in System 7 without problems, so I can set the resolution in System 6 and save the setting in PRAM, then reboot in System 7. This does require having a working PRAM battery though.
 

bigmessowires

Well-known member
If you were feeling super motivated, you could probably patch the PDQ ROM to make it work under later System versions. There's already another thread going about SuperMac Spectrum ROM dumping, and another recent thread about examining and modifying DeclROMs with Hex Fiend, so you're halfway there already.
 

jmacz

Well-known member
Does the PDQ have a resolution-selection menu GUI in its ROM that forces itself into the boot sequence?

Yes, it does. On boot, the card checks for existing configuration in the PRAM for the Nubus slot its inserted in. If it's not found, it cycles through various resolutions/frequencies on the display and asks you to hit the space bar to select one. If the configuration is found, it doesn't show this UI. If you hold down the option key during boot, it also shows this UI regardless of whether the PRAM has the configuration or not.

I see this the UI and choose one. The system then reboots and on that next boot, it's a hit or miss, sometimes it boots, sometimes it hangs when the "Welcome to Macintosh" screen comes up and doesn't proceed further. Hitting the space bar doesn't do anything. Once it gets into this state, I need to zap the PRAM.

This was documented by @David Cook in his thread. It's the same behavior I am seeing:

The last two problems turn out to have the same cause. To be more specific, the card needs to be fully removed, replaced with a different card (a NuBus adapter in my case), and then the reinstalled card will work for just a single boot. This is an important clue.

Secondly, on the bad reboot, the card hangs with "Welcome to Macintosh" on the primary screen. This is an important SuperMac-specific clue. SuperMac normally cycles through each of the video modes at this point in the boot process to let you pick. Pressing the spacebar picks the mode. In my case, the spacebar did nothing.

Given the SuperVideo communication trouble and the inability to show video mode cycling made me suspect the ROM. But, the ROM cannot be partially corrupt, because the Slot Manager does a checksum of the ROM and, if bad, simply won't mount the card at all.

This is a v1.0 ROM. So perhaps it has a bug. But such an awful bug would never make it into the field.

Wait a minute. Maybe the ROM was designed and tested in an earlier OS, because newer operating systems had not yet been released? Indeed, booting from my 6.0.8 floppy allowed perfect operation.

Video cards go through two initialization stages at power up. They first perform the most basic display code and initialize themselves to the checkboard pattern. Then the System patches load ("Welcome to Macintosh") and each card is given a chance to initialize to a more specific mode (which may depend on the version of Quickdraw running on that particular booted drive).

The slot manager saves the configuration to PRAM so the user doesn't have to choose it each time. In my case, the v1.0 was not compatible with System 7.5.5. Worse, it was unhappy with the saved PRAM configuration from 7.5.5. By pulling the card and replacing it with another, the slot manager recognized the change in card IDs and cleared the configuration. That's why I was given one chance each time -- the card initially used it's internal default configuration. The second boot used an incompatible PRAM configuration.

Reading the SuperMac FAQ, it says "Q: Are SuperMac Spectrum graphics cards compatible with System 7.5? A: Yes, as long as your SuperMac card is being used with recent ROM and software versions. If, however, your card is too old to support the 3.0 or 1.7.2 ROMs, it may not be fully compatible." And, "If you’re using System 7, you must use SuperVideo 2.7 or greater".

Running SuperVideo 2.7.5 software in Macintosh OS 7.1.2 results in a happy video card across reboots.

The above systems are exactly what I'm seeing and the screenshot of the error even after boot from the SuperMac CDEV is also exactly what I am seeing:

Trouble-Communicating-With-Your-Card.png

If you were feeling super motivated, you could probably patch the PDQ ROM to make it work under later System versions. There's already another thread going about SuperMac Spectrum ROM dumping, and another recent thread about examining and modifying DeclROMs with Hex Fiend, so you're halfway there already.

Yeah, I was pondering this last night. Dumping/Writing ROMs I have done, but not understanding them or modifying them. Might be fun to look into as I have two cards that are potentially impacted by this.

That said, I was just playing with 7.5.5 and I think I still prefer 7.1.2. I could just downgrade and test that that resolves the issue and call it a day. Maybe after I get through the backlog of projects, I will look at this. If @David Cook's analysis is correct, sounds like it's some PRAM change in 7.5.x that is causing it so I would think it's resolvable.
 

jmacz

Well-known member
Well, although the symptoms are the same, I think my issue is more something going on with the card itself. I tried downgrading to 7.1.2 and I still have the same issue. It's just unable to utilize any mode that requires the 80MHz crystal. The 100MHz modes work fine as does the 30MHz ones. Going to solder a few leads onto the 80MHz crystal so I can check it in a scope while in the machine.
 
Top