• Hello Guest! We're hosting a challenge to welcome vintage Intel macs to the MLA during the month of July! See this thread for more information.
  • We've made some quality of life improvements to the Trading Post. More info here.

PowerBook reverse engineering for fun and no profit

Okay, I chased this all the way down and want to correct my earlier 102 Hz claim it's colour depth, and it splits into two regimes.
I confused myself at first by changing depth while also toggling power management and rebooting, so I was seeing 68, 87 and 102 Hz without tracking what caused what. Isolated properly now, measured directly on FLM.
During boot (before the Mac OS splash screen), the frame rate depends on the colour-depth setting:
1-bit (B&W): 68 Hz
2-bit (4 greys): 87.4 Hz
4-bit (16 greys): 102 Hz
Once the OS splash/loading screen appears, it switches to a fixed ~69.94 Hz and stays there regardless of depth.
So the depth-dependent rates I first reported and the constant ~70 Hz I measured in the loaded OS are both real they're just different phases. Looks like the ROM picks a boot frame rate based on the stored depth setting, then the OS graphics driver (the DB-Lite driver) takes over and runs its own fixed rate. That fits your note about ROM setting things up before the OS is discovered.
Comparing to your figures: 1-bit (68 Hz) and 2-bit (87 Hz) match exactly. The difference is that your notes group 2-bit and 4-bit together at 87 Hz on the 180 they're distinct, with 4-bit running a full step higher at 102 Hz. So the 180 gives each greyscale depth its own boot frame rate (68/87/102), presumably scaling the refresh up for the extra dithering.
None of this touches the boot screen content or power management I ruled both of those out. It's purely depth-driven during boot, fixed in the OS.
 
Nice! I have logic analyzer records that should be a boot into 4-bit mode, but they don't show 102Hz....but I do have an oscilloscope record of 102Hz FLM. I trust your analysis either way. I was much more focused on GSC's data format (and thus just its data lines) than its clock signals.

Looking at the DB-Lite driver, the comments in the skew table on line 1071 say that 4-bit mode on a 4-bit TFT runs at 87Hz, even though the table value for that mode is different than 2-bit mode. (I think the 180 uses a 4-bit TFT, but I don't know.) I suspect the programmer in charge of the table just copy-pasted for the comment's third column.

On a related note, I noticed that if I boot my 160 into 4-bit mode, the screen briefly flickers and wobbles when the Mac OS progress bar loads to about 15%. I suspect that's the switch-over from the ROM GSC driver to the OS driver, and clearly they aren't configuring the chip in exactly the same way. I also wonder if there are different versions of the DB-Lite driver---the source code we have is from System 7.1, but I observe that behavior on System 7.5.5. Maybe it doesn't always do that?
 
Back
Top