• 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
Did some more tinkering around. Downgrading to System 7.1.2 did resolve the "cannot communicate" issues. But I am still having an issue with one of the resolutions/configurations.

I was able to procure a 64MHz oscillator and plugged it into the empty socket (4th oscillator on the video card). That allowed me to test 1024x768 at @60Hz and that worked. So now 30MHz (640x480), 64MHz (1024x768 @ 60Hz), 100MHz (1152x864) works fine. The one that isn't working is 1024x768 @ 75Hz.

I then remembered when I open the SuperVideo 2.7.5 CDEV, in the list of resolutions, there are two 1024x768 @ 75Hz entries... one is labeled SuperMac 1024x768 @ 75Hz and the second is labeled RasterOps 1024x768 @ 75Hz. I had been trying the SuperMac one so I tried the RasterOps one and go figure that one works.

So that rules out an issue with the 80MHz oscillator because both of those options use and require the 80MHz oscillator. And I did put probe that 80MHz oscillator using my probe and it seems ok.

What then is the difference between these two configuration options in the CDEV? I already installed a fresh copy of the CDEV just to rule out the CDEV getting corrupted.

Ran out of time this evening. Will have to play with this some more tomorrow. Some thoughts: I need to revisit the VGA adapter settings to see if that changes anything. Need to also check if the ROM got corrupted somehow.
 

bigmessowires

Well-known member
My SuperMac ColorCard SE/30 outputs composite sync at 1024x768. Maybe the "RasterOps 1024x768" setting uses separate H and V sync. That wouldn't explain why it freezes your computer, though.
 

jmacz

Well-known member
Yeah, I was also suspecting the sync hence why I was going to revisit the VGA adapter later today. But I also don't understand why that would cause a hang on startup. There's definitely a PRAM check executing during initialization and if it's not configured, the card does pause startup to present that GUI for selecting the mode, but in this case, it hangs and no space bar/user input allows it to proceed. That's why I'm going to reflash the ROM incase it somehow got corrupted?

But weird how it's just that one mode (which happens to be the one I have been using) that's not working.
 

jmacz

Well-known member
Fiddling with the VGA adapter switches did not help.

I had erased and reburned the latest firmware v1.27 onto the EPROM and that also did not help... BUT, I tried swapping in the original v1.11 firmware and things started working again!

So now I have some additional things to check:
  • Why was it working under v1.27 before? I could not have been running at 1024x768 @ 60Hz since the card did not have the necessary 64MHz crystal to do so. I was definitely running at 1024x768 @ 75Hz.
  • I reburned v1.27 onto the EPROM last night (after erasing it) so it cannot be corrupted firmware. I'm using a GQ4x4 and ran a verification pass as well.
  • Maybe something is wrong with the EPROM chip itself?
  • The EPROM is a 27C512-150 ... (150 nanoseconds). Maybe that's too slow? Although I had thought I saw 200 nanosecond chips on other PDQs.
  • My Spectrum 24 PDQ is a revision C board which shipped with v1.11. The revision that had v1.27 is a revision J I believe? Maybe my board can't support the new firmware fully?
Tagging @MacOSMonkey in case he has some insights.
 

jmacz

Well-known member
Ok yeah, I don't get it. I'm stumped for now.

Old firmware v1.11 works great at 1024x768 @ 75Hz. New firmware v1.27 does not work for just that one mode, and specifically the SuperMac version of that mode. The RasterOps config works.

This board with v1.27 was working before on 1024x768 @ 75Hz (maybe I was using the RasterOps version? - but I could swear it was the SuperMac configuration).

Only thing else I can think of is v1.11's SuperMac 1024x768 @ 75Hz configuration is different from the v1.27's SuperMac 1024x768 @ 75Hz configuration. Understanding that difference might tell me what might be wrong with the board.

My Setup
  • Quadra 800 onboard video going to Apple RGB 13" Monitor.
  • SuperMac Spectrum 24 PDQ (swapping between v1.11 and v1.27 firmware) driving an NEC LCD (native 1024x768 and supports both 60Hz and 75Hz).
  • Onboard video is the primary.
When It Works
  • Running v1.11 and the SuperMac card is configured for SuperMac 1024x768 at 75Hz requiring the 80MHz oscillator.
  • Welcome to Macintosh screen is on the RGB 13" Monitor.
  • Gray screen with SuperMac logo on the NEC LCD.
  • Boots fine.
When It Doesn't Work
  • Running v1.27 and the SuperMac card is still configured for SuperMac 1024x768 at 75Hz requiring the 80MHz oscillator.
  • Welcome to Macintosh screen is on the RGB 13" Monitor.
  • Gray screen with SuperMac logo on the NEC LCD but it's moving vertically like the vertical sync is incorrect.
  • Boot is hung. Stuck on Welcome to Macintosh screen. No keyboard input (including space bar) does anything. It's hung.
 

MacOSMonkey

Well-known member
Hi - Didn't see these messages earlier. Below are some things to consider - maybe with some repetition vs. my earlier posts.

The v1.27 ROM should work much better than that v1.11 ROM. Also, when you burn the ROM, assuming you verified it, it should be OK. Make sure you cover the window with a label to prevent stray UV erasing -- I'm sure you are aware, but mentioning it just in case.

It's remotely possible that the ROM could have a marginal/bad bit, but in that case, you could try to read-verify it a few times after you see the 100% reproducible problem to check that it hasn't changed. It wouldn't be my first worry if it verified.

The board should be able to support v1.27 -- SuperMac had to ship field upgrades to fix the Quark problem (see earlier posts). There may have been some changes to reduce rework. Maybe the earlier release boards had some jumpers on them down around the nubus connector -- I would have to look at the physical boards. As I may have mentioned in earlier posts, there were some timing changes to account for changes in the Xilinx parts in later boards - could have also rolled the board rev, possibly because of the Xilinx config ROM, but the declaration ROM should have been backward-compatible. The timing changes occurred towards the end of 1990 into early 1991, I think.

The Spectrum/24 PDQ is originally vintage 1990 with a final firmware upgrade in 1991 (v1.27). I think the SuperMac and RasterOps 19" 75Hz configs were present in the earlier ROMs -- so not something added just for v1.27. You have already figured that out based on what configs SuperVideo shows when using each ROM. Both v1.11 and v1.27 show RasterOps. The version of SuperVideo in 1990-ish would have been v2.07 or maybe v2.09, but v2.47/.49 should work. Beyond that, I don't know, as before.

The original Spectrum/24 PDQ preceded the Quadra 800. The fastest box available during original testing was probably the IIfx? There might have been some Quadra DVT testing with later ROMs and also testing on the released Quadra 700/900. However, the 900 had hardware/firmware issues that weren't fixed until the 950 came out. The 900 was its dirty little step-sister, but still a pretty good box for its era.

In terms of PRAM configs -- you shouldn't have to pull boards -- just zap PRAM on restart. Also, it doesn't require putting another board in the same slot. Just boot briefly with nothing in the slot or put the board in a different slot. It will automatically trigger Round Robin config.

If you want to debug this problem in a retro contemporary setting, start on a lower-end mac, like a II, IIcx or IIci with 6.0.8 and SuperVideo 2.0.7 as a baseline to see how it behaves (24-bit mode, assuming not using MODE32). If everything works as expected, then It might be possible that there is a 32-bit addressing gremlin somewhere (can't communicate, etc.). I think that error occurs when SuperVideo fails a call to get a resource from the board -- which could easily be an addressing error into boardspace. Also, I think the "can't communicate" error was associated with the custom programming feature in SuperVideo (which doesn't exist in Spectrum/24 PDQ). So, it could also be a SuperVideo software bug where it is doing something unexpected, leaping into hyperspace and hitting a dialog it shouldn't be hitting.

Once you profile the baseline config, you could then try using it in the Q800 in 24-bit addressing mode with System 7.1.2 as a test. Boot with a bare bones system. Also, make sure you have the correct system enabler for the Q800. I think that was back in the enabler days.

You don't need SuperVideo to set the video config (and acceleration should be on by default). So, you could boot without SuperVideo. Pull out any optional oscillators and just use Round Robin with the space bar at startup after zapping PRAM. What for it to sync on the 19" 75Hz config. As I mentioned earlier, I know that the 21" config was cable sense-based, but I don't recall if 19" 75Hz was or not. Maybe.

Another variable is the Shock INIT. The Spectrum/24 PDQ (and Spectrum/8 PDQ - a stripped 24) were the first boards that implemented SuperMac's VDI technology that allowed for external ROM patching. But, I think v1.27 ROM accounted for any interim external software patches.

Finally, there could be a hardware config/timing issue. The SuperMac SMT01 graphics controller was very touchy and could randomly bus error based on certain register timings (but usually when using Virtual Desktops). Seems unlikely based on what you describe...but maybe.

To help with debugging, if you are hanging at "Welcome to Macintosh," put in an appropriate version of Macsbug as the first extension that loads (root system level). It may not catch the problem...or it may. Might be interesting. You are hanging at the "Welcome to Macintosh" on the primary 13" screen, where the likely failure is when the OS tries to call Secondary Init on the Spectrum/24 PDQ before drawing the desktop (and that is also when the acceleration patches will be loaded).

And regarding baseline testing -- take out the other card(s) and just boot from PDQ as primary/only card installed. It sounds like there are too many variables in play. Also, in this single-card mode, then do 24/32-bit boot testing, etc. If it works in an older II box on a contemporary 1990-91 system (single/multiple boards, 24-bit/32-bit) and not on the 800, then it could just be a firmware or other bug because it was never tested on the Q800. I have all of these boxes and boards/ROMs. I don't know if my Q800 works, but maybe. Biggest issue at the moment is time. But, I hope the above helps.
 

jmacz

Well-known member
The v1.27 ROM should work much better than that v1.11 ROM. Also, when you burn the ROM, assuming you verified it, it should be OK. Make sure you cover the window with a label to prevent stray UV erasing -- I'm sure you are aware, but mentioning it just in case.

Yup, I've been covering the window after every erase.

It's remotely possible that the ROM could have a marginal/bad bit, but in that case, you could try to read-verify it a few times after you see the 100% reproducible problem to check that it hasn't changed. It wouldn't be my first worry if it verified.

I had tried verifying the write against the ROM dump multiple times. It passed each time. I did it multiple times each time I wrote an image just to be sure. The EEPROMs I'm using are 150ns which I'm hoping is ok. I think the stock one was 200ns so I think I'm fine. But it's as fast as some of the 70ns ones I think I've seen available for the 27C512.

The Spectrum/24 PDQ is originally vintage 1990 with a final firmware upgrade in 1991 (v1.27). I think the SuperMac and RasterOps 19" 75Hz configs were present in the earlier ROMs -- so not something added just for v1.27. You have already figured that out based on what configs SuperVideo shows when using each ROM. Both v1.11 and v1.27 show RasterOps. The version of SuperVideo in 1990-ish would have been v2.07 or maybe v2.09, but v2.47/.49 should work. Beyond that, I don't know, as before.

I've only tried 2.75. Maybe I need to try an older CDEV? But note that for me, the communication problem was solved by downgrading from System 7.5.5 to System 7.1.1. That problem is gone now. I'm just having a lockup during boot so I don't think the CDEV version should matter? or am I wrong?

The original Spectrum/24 PDQ preceded the Quadra 800. The fastest box available during original testing was probably the IIfx? There might have been some Quadra DVT testing with later ROMs and also testing on the released Quadra 700/900. However, the 900 had hardware/firmware issues that weren't fixed until the 950 came out. The 900 was its dirty little step-sister, but still a pretty good box for its era.

That's a good point. But I also tested with a IIfx and it has the same issue.

If you want to debug this problem in a retro contemporary setting, start on a lower-end mac, like a II, IIcx or IIci with 6.0.8 and SuperVideo 2.0.7 as a baseline to see how it behaves (24-bit mode, assuming not using MODE32). If everything works as expected, then It might be possible that there is a 32-bit addressing gremlin somewhere (can't communicate, etc.). I think that error occurs when SuperVideo fails a call to get a resource from the board -- which could easily be an addressing error into boardspace. Also, I think the "can't communicate" error was associated with the custom programming feature in SuperVideo (which doesn't exist in Spectrum/24 PDQ). So, it could also be a SuperVideo software bug where it is doing something unexpected, leaping into hyperspace and hitting a dialog it shouldn't be hitting.

Yeah, I'll have to try some additional configurations... so far I have tested in a IIfx and Quadra 800, both with 7.5.5 and 7.1.1. The test with 7.5.5 results in communication problems with the card in both the IIfx and the Quadra 800. Downgrading to 7.1.1 eliminates the communication problem on both machines but it still has the lockup when booting with the SuperMac 75Hz 1024x768 mode on both machines. Only that profile has a lockup. The RasterOps 75Hz 1024x768 mode works fine on both machines and it uses the same 80MHz oscillator as the SuperMac 75Hz 1024x768.

If I downgrade the card ROM from v1.27 to v1.11 everything magically works, both on the IIfx and the Quadra 800.

So if this card revision is meant to support the v1.27 ROM, that means there's something on this particular board that is faulty only under v1.27 and only when using the SuperMac 75Hz 1024x768 mode.

I still don't understand what the difference is between the SuperMac 75Hz 1024x768 mode and the RasterOps 75Hz 1024x768 mode. Clearly there's a difference between the two since one works and one does not under v1.27, and both work under v1.11. Do these particular displays have different sync signal requirements which is what's different between the two? Some information like that might help me uncover what might be wrong with my board causing this issue.

I still think that this SuperMac 75Hz 1024x768 mode under v1.27 WAS working on this card at one point and then stopped working. I'm not 100% positive but that's what I recollect. So it's possible something failed on this board but not sure what the difference would be between these SuperMac/RasterOps modes and what the difference is between v1.11 and v1.27 to help me identify what component might be failing or have failed.

To help with debugging, if you are hanging at "Welcome to Macintosh," put in an appropriate version of Macsbug as the first extension that loads (root system level). It may not catch the problem...or it may. Might be interesting. You are hanging at the "Welcome to Macintosh" on the primary 13" screen, where the likely failure is when the OS tries to call Secondary Init on the Spectrum/24 PDQ before drawing the desktop (and that is also when the acceleration patches will be loaded).

I do have MacsBug installed and it's not getting there. It's dying with just the "Welcome to Macintosh" part displaying. It does not show the "Debugger Installed" message yet. Which I think is the secondary init so I don't think it's loading extensions yet.

And regarding baseline testing -- take out the other card(s) and just boot from PDQ as primary/only card installed. It sounds like there are too many variables in play. Also, in this single-card mode, then do 24/32-bit boot testing, etc.

All of my tests have been with only the PDQ in the machine. The only other thing installed is the ZuluSCSI for the boot drive.

Thanks for all your help! I'll try a few more things when I get a chance. Have to take care of a few projects for a couple friends first and then get back to debugging this one.

One thing I need to try is when it locks up on the primary 13" monitor at the Welcome to Macintosh screen, the display connected to the PDQ is showing a sync issue. I was going to hook up my scope to the various video cable pins to see what sync rate is seen to confirm it's actually 75Hz as expected or something else. Again, since the RasterOps 75Hz mode works, I would think the 80Mhz crystal is fine. But want to confirm the actual vsync/hsync on the scope to be sure.
 

jmacz

Well-known member
I thought I'd update this thread before putting this project on the backburner.

Current status is that the card is actually working with the v1.27 ROM running at 1024x768 @ 75Hz using the SuperMac 19" 75Hz configuration in the SuperVideo control panel on my IIci which is running System 7.1.1.

What changed?
  • Reflowed the solder joints on the ROM socket - can't imagine this helped as the older ROM was working.
  • Rewrote the v1.27 ROM onto a new 27C512 eeprom - had tried this before, but maybe I had a bad eeprom chip?
  • Modified the three BT RAMDACs to lift the SYNC pin and add a jump to allow sync on red/green/blue to be configured - shouldn't have had an effect on this issue.
Or it could be that for whatever reason the new ROM/card isn't working right on my IIfx and Q800, but works on my IIci. It's most likely the new 27C512 eeprom chip.

But I'm going to table this one and put it on the backburner. Will revisit this in the future if it stops working properly again.
 
Top