Jeff Walther said:
For my first cut, I'm considering only supporting grayscale on the
internal monitor (512 X 342). In a stock machine it's 1 bit, so this is a
modest improvement. The host CPU/68030 bus runs at 16 MHz and is 32 bits
data and 32 bits address. So it's not running very fast. Of course, my
video processor may run considerably faster.
Anyway, to simplify my first cut, I'm considering just using SRAM for the
video memory. That would save me needing to multiplex the addresses and
worry about refresh cycles. But dual-port SRAM is *expensive* so I'd
rather avoid going dual-port if I can.
The FPGA talks to the 68030 bus, to the SRAM and the D/A converters and
sync lines of the video display.
The 68030 writes to video RAM...it puts an address, data and other
signals on the bus. The FPGA reads those signals and stores the data
at the appropriate address in memory. As it whiles away the long
nanoseconds before the 68030 is ready to talk to it again, it grabs
data from the appropriate place in memory and sticks it on the D/A
converters.
With RAM from 1990 it took all sorts of double porting and fancy
circuitry to schedule the memory accesses and avoid flicker. Nowadays,
you just have the FPGA read a couple of pixels ahead so that when the
68030 needs to access the RAM, which the FPGA can do in 20ns or so, you
don't have to worry about hitting a tight timing window for producing
the next pixel.
You should check out the old Addison Wessley books Apple put out.
There were some on designing hardware devices for the Mac, and I think
it had a section on video cards.
I assume that you are doing this all for fun/education, because you
will certainly spend more than the $30 a Macintosh Color Classic will
cost on eBay. I assume you also know that you can buy video cards for
external monitors for the SE/30 (I used to have one).
Making something to interface to a Macintosh will be frustrating
because the Mac will already have ideas on how to do things. (Which
means that you have to dig through antique documentation to see how the
Mac wants to talk to a video card, and how you tell the Mac that your
video card is 640x480 8-bit color table 60Hz etc.). At the end of
this, you will know all the grungy interface details of a 15-year-old
computer that has less power than a $70 Palm.
If you want to learn how to do video electronics, you may want to start
with a project which just does video.
How about implementing pong with an FPGA or a microprocessor (Google
for 'pic pong' for an example). Implement it for an a VGA or high
resolution monitor so you can work out what to do to the various
connector wires. Make it accept a TV feed so that you have a pong ball
overlaid on the TV show, and can bounce the ball off objects on the
screen. Doing all that will teach you a lot, and then you will find it
much easier to make a video card for an old Mac, if you still want to.
That's just my advice.