• 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.

SE/30 extra vertical screen resolution

apm

Well-known member
Since I guess one compact Mac resolution hacking project isn't enough, I found a relatively easy hack to get extra vertical resolution on the SE/30 with no analog mods at all:

IMG_3991.jpg

As the screen shot shows, this Mac is running with internal video at 512x406 resolution -- 64 more lines than standard.

Making this modification requires cutting one connection on the logic board, making one new connection, and changing six bytes in the UK6 video DeclROM. Here's the wiring mod:

Screen Shot 2016-05-14 at 23.42.55.png

I'll save the details for a following post, but in short, pin 7 of UG6 needs to be lifted from the board, so that instead of attaching to pin 10 of UF8, it attaches to pin 9 of UF8.

This needs to be done on the UG6 side because the signal from UF8 also goes elsewhere on the board. I did this by unsoldering and then socketing UG6, while bending pin 7 outward so it doesn't go into the socket. But now that I know this mod works, it would be just as easy to clip the leg on UG6 just above the board and solder a wire to the remaining stub coming from the chip.

Making this change causes the screen to scan 64 more lines than before (406 lines rather than 342), after which the screen will look like this:

IMG_3947.jpg

The Simasimac stripes on the bottom are because the Mac doesn't yet know about the extra video resolution so it doesn't initialise that part of VRAM. To get it to use the space, two bytes in Video DeclROM UK6 need to be changed: locations 0x6f3 and 0x1047 both change from value "0x56" to "0x96" -- these both in some way define the vertical resolution. Then the 4-byte checksum at the end of the ROM has to change. Fortunately, UK6 is already socketed and easily replaced.

To start with, the picture will be too tall:

IMG_3955.jpg

I changed the height to be just small enough to fit on the CRT, and put the horizontal width down quite low to keep the pixels roughly square since it's a weird aspect ratio. The result is what you see in the first image.

The catch? The refresh rate drops to 51Hz which is pretty noticeably flickery! I'm not sure I'd want to spend long hours looking at it. But still, it's almost 20% more screen real estate than before, and more vertical resolution than the Portable. :)

 

360alaska

Well-known member
Good Job Dude! I bet If we slightly overclock the SE/30 with a crystal that's just a tad faster some of the flicker will go away... I actually tried it on a MAC SE, I used a 18mhz crystal in place of the 15.6 mhz crystal and it booted, I didn't test it beyond that since that logic board was corroded junk...

 
Last edited by a moderator:

techknight

Well-known member
refresh drops to keep the line frequency the same? I wonder how well 512x384 with a slightly higher scanrate (Macintosh 12" RGB/B&W) would fare with those scan circuits. 

 

apm

Well-known member
That's right -- the pixel clock and horizontal frequency stay the same, but there are more scan lines, hence lower refresh rate.

It makes sense to try overclocking to get the refresh rate back up. The constraint, aside from how fast the logic board circuits can operate, will be the horizontal frequency, which will also go up. From my experiments on the other thread, it looks like the analog board can comfortably handle up to about 25kHz. To get back to 60Hz at 512x406, the horizontal rate would need to be 26.4kHz (with an 18.6MHz CPU clock). Maybe doable, but pushing it.

There are some other options on vertical resolution, but not every resolution is possible. This has to do with UG6. Attempted explanation below. TL;DR: 512x384 is a pain, but I bet 512x390 could be done.

--

UF8 counts pairs of vertical lines (see red labels in my earlier post), and UG6 appears to generate 3 different signals when the count reaches particular numbers. I put these signals on a scope and found:

VIDTIME (UG6 pin 12): goes low on line 344; goes high on line 2  -- this signal controls VRAM access

VSYNC (UG6 pin 14): goes low on line 344; goes high on line 348 -- this signal controls the vertical sweep

LCTRRST (UG6 pin 15): strobes for a single 16MHz clock cycle on line 372 -- this resets the counters and starts a new video frame

All these line numbers are represented by the 7 logic signals on pins 2-9 of UG6. Only 7 of the 8 counter lines from UF8 are used because none of the specific values above include the "128 lines" bit. For example, line 344 corresponds to 1[0]101100 from UF8, where [0] is the pin not connected to UG6 (344 = 256 + 64 + 16 + 8 ).

To get the extra 64 lines, I swapped the "64" and "128" lines so now all of the VIDTIME, VSYNC and LCTRRST signals happen 64 lines (= 128 - 64) later. There's plenty of extra VRAM: the chips are 64k of which only about 44k is used at the original resolution.

Anyway... getting exactly to 512x384 means adding 42 lines. This is a pain because it changes a bunch of different logic signals (e.g. 386 = 11000001 which is very different from 344 = 10101100). It would probably need some external adder logic between UF8 and UG6.

But I suspect adding 48 lines (512x390) might be possible. This would work by attaching pin 8 of UF8 ("256 lines") to pin 5 of UG6, in addition to the swap I already described on UG6 pin 7. If UG6 works the way I think it does, it would have the effect of triggering VIDTIME, VSYNC and LCTRRST 16 lines earlier, while leaving the VIDTIME transition on line 2 unchanged. When I get a chance, I'll test it. 

If that works, the refresh rate would be 52.7Hz. Overclocking the CPU to 17.9MHz would get the refresh rate back to 60Hz, and the horizontal line frequency would move to 25.4kHz, probably a bit more comfortable for the analog board.

 
Last edited by a moderator:

techknight

Well-known member
Thats not what I was thinking, Let me explain:

the IIsi video cards fit inside the SE/30 with some hacks, but its lowest possible resolution is 512x384. The advantage: Full Greyscale. 

we had a thread on this long long ago, but it died off because lowest resolution was the 512x384 which is a higher frequency than the original 512x342 so I didnt know if the analog board would do it. 

 
Last edited by a moderator:

apm

Well-known member
It might work. The 12" RGB specs say its horizontal frequency is 24.5kHz. Based on my measurements from this post, 24.5kHz changes the voltages from the flyback by less than 10%.

Did anyone ever try it? I have an SE/30 Radius Pivot card (and one of the IIsi cards) so I could try at some point with just a comparator on the video.

The main upside to the logic board mod is that it doesn't cost much extra (just one EPROM) to add some screen real estate. Obviously grayscale is out of the question though.

 

techknight

Well-known member
Cool thing is, the micron xceed schematics for the neck board are out there, so you can obtain full grayscale at the CRT. 

The video card as long as you can set the ID bits for Macintosh 12" RGB, and then sum the 3 video signals into a grayscale format, it should work. 

 
Top