This is the most tricky part. PC's do not POST an NTSC or PAL compliant video signal, but rather a basic VGA mode. It is possible to modify the BIOS to reprogram a VGA card to output the correct sync and scanrate. You will needed a very good understanding of assembly and disassembly to patch your PCs system BIOS properly (and even moreso if you want to modify a VGA card bios) . If you are up to the task, and willing to dig deep, check out:
Patching the system BIOS may be easier, as it is flash based and there are usually utilities to accomplish this. A VGA BIOS is often ROM based, requiring at the very least a new EPROM/flash part and a programmer as well as an eraser (because it never works right the first time).
Of course you could also buy a scan converter, that's the easy way. But depending on how many of these you are doing, this could get expensive.
The chipset and
is a multibillion dollar industry not particularly friendly to open
source or open specs. Obtaining useful chipset information is
often left to long hours reading cryptic cots bios binaries with a
disassembler. The original IBM PC may have been open
architecture, but that was about it. These days, PC's are very
closed with few similarities to the original IBM PC. In fact,
even the well known PC bios compatibility layer that every PC starts up
with may no longer stand the test of time. Check out http://www.uefi.org/
Linuxbios works for some platforms. Most notably AMD's opteron. And it does work with the geode with some hacking. But the task of reverse engineering a BIOS is in many ways a necessity to understand the real hardware. Still the Linuxbios framework has the most promise.
Fortunately the Award BIOS has become much more understandable recently. Check out Pinczakko's excellent pages at http://www.geocities.com/mamanzip/
1K ohm |
200 ohm |
Green Video o----+---/\/\/--+---------+--------o Composite Video In
| ^ | (Termination = Hi Z)
/ +--------o GND of monitor
\ 82 ohm |
GND (shield) o----+--------------------+
R, G, and B are unique independent video signals
Each color line is in effect a completely independent video signal (with only the sync pulse and dot clock shared). It is possible to have up to 3 separate greyscale images in the same video memory space. Here's some examples:
These images look strange on a color screen. But when each color signal is separated to its own display, the effect becomes clear.
How to Create RGB Triple exposures
1) Open up to 3 images in the gimp
2) For each image, convert them to greyscale, then encode each in red, green, and blue.
Gimp's "colorify" utility does all of this in one step: Filters->Colors->Colorify
3) Save each colorified image to a new bitmap (.bmp) file.
4) Open each of these newly created bitmaps in the gimp.
5) Copy and paste one of the colorified images over the other. (say the red one over the blue).
Doing this simply places a new image layer on top of the old one. The old one still exists,
but just not visible at the moment.
6) Now merge the layers.
Go to Dialogs->layers.
Select Addition mode in the pull down.
You will see the two images combined.
7) Repeat steps 5 and 6 for the last colorified image, pasting over the newly combined layer,
then merging it using the layers dialog, Addition mode.
I found that for this last step, I needed to close then reopen the layers dialog in order
to merge the last image.
8) Save the result to a new bitmap, you're done.
9) You can test the results by opening the new image in the gimp and pull down
Filters->Colors->Decompose. Uncheck "Decompose to layers" and press OK.
JPEG compression mangles the color information, making for some interesting but undesirable results. PNG and GIF are lossless, so these formats are the ones to use (png for its wide bit range and gif for animations).
Creating a jpeg compressor that works with individual color spaces is possible,
ie treating an rgb image as three distinct greyscale images to compress
(with a result filesize no larger than 3x the largest greyscale compressed image). But this is left as an exercise for the reader.
The same principal apples for video as fixed images. Ive looked at the sources for mplayer and it is possible to get it to work with some modifications. This can have many uses.
Given that a PC can have as many video cards as PCI slots it's possible to make a large array of video monitors. Typically, a PC has 3 or 4 as well as the onboard video card (or AGP), making for a possible total of 15 unique displays from a single PC. Consider the possibilities:
Ive never tried it myself, but dont see any reason why not. Each color line from the vga card would just be a shared RGB input to a vga monitor, making the color vga monitor monochrome and in theory any single color with some variations on the respective vga display rgb inputs. hsync -------+-/\/\/--- vga1 hsync | +-/\/\/--- vga2 hsync | +-/\/\/--- vga3 hsync vsync -------+-/\/\/--- vga1 vsync | +-/\/\/--- vga2 vsync | +-/\/\/--- vga3 vsync red -----------------+- vga1 red | +- vga1 green | +- vga1 blue green ---------------+- vga2 red | +- vga2 green | +- vga2 blue blue ----------------+- vga3 red | +- vga3 green | +- vga3 blue red gnd --------------- vga1 gnd green gnd --------------- vga2 gnd blue gnd --------------- vga3 gnd (resistors are like 0-1kohm. When in doubt, use a 1k potentiometer). To display a greyscale single color, use resistors or remove an input entirely. For example to get an amber/yellow color on vga1, do not connect the blue input and tie it to ground).
Modelines, FrameBuffers, and TextModes
DOS Test Tools