Showing posts with label Tandy 1000. Show all posts
Showing posts with label Tandy 1000. Show all posts

Saturday, April 26, 2014

Capturing CGA, Tandy/PCjr. and EGA Video

It is not easy to capture true 16-color PC video.

One way to capture it is with a CGA card that has a composite video output.  The IBM PCjr. and Tandy 1000/A/HD/EX/HX/SX/TX also have composite video outputs, as does the IBM PC Convertible with the CGA adapter slice.  Some other laptops like the Tandy 1400LT also have CGA output.  Most EGA cards may have dual RCA jacks, but they are only connected to the EGA expansion feature port.  They are typically useless.

Composite video is necessary when trying to capture CGA artifact color.  Additionally, for capturing 40 column text it is usually adequate.  It is also good at capturing 160x200 graphics, since there is minimal artifacting going on in that mode.  Note that brown is dark yellow with a composite color connection. However, if you are trying to capture "pure" RGB 320x200x4 or 640x200x1, or 320x200x16 or 640x200x4, it is not suitable.  Composite video does not have the bandwidth to show pure colors in these modes.

CGA and its derivatives use digital TTL RGB.  The standard is also known as RGBI, with I standing for intensity.  One pin is devoted to the R, G, B and I signals.  When there is +5v on the line, that color will be displayed.  When there is Ground on the line, that color will not be displayed.  With the Red, Green and Blue signals, this gives you eight combinations, Red, Green, Blue, Cyan, Magenta, Yellow and Black and White.  The Intensity signal varies the strength of the colors, giving you a total of 16 colors.  CGA uses a 15kHz scan line frequency.

Other personal computers of the 1980s that supported RGB output, including the Commodore Amiga, Atari ST and Apple IIgs, support analog RGB output.  Consoles like the Sega Master System, Sega Genesis, Super Nintendo, Atari Jaguar, NEC Turbo Grafx 16, Playstation and an RGB modded NES or N64 also support 15kHz analog RGB.  Almost all arcade machines from the 1980s and into the late 1990s also support it.  With analog RGB output, the strength of each signal is based on the amplitude of a 0.7v Peak to Peak sine wave.  These systems typically use a15kHz scan line frequency.

The only other non-PC compatible device that supports CGA TTL RGBI is the Commodore 128.  Moreover, the C128 only supports this in its native video mode.  When emulating a C64, it uses a palette closer to the C64s.

All capture and conversion devices that advertise "CGA" like the GBS-8220 are using "CGA" only in the sense that they support a 15kHz horizontal scan line rate.  They expect an analog RGB signal.  CGA uses an RGBI signal.  If you connect the pins directly, you will only get 8 colors because it has no idea what to do with the I signal.  A simple passive adapter, like the one shown here, will give you 16 colors : https://sites.google.com/site/h2obsession/CBM/C128/rgbi-to-vga  However, color 6 will be dark yellow when it should be brown.  To get it to show brown, you need an active converter, such as the one here : http://he-insanity.blogspot.com/  That adapter will combine the separate CGA horizontal and vertical synchronization signals, which most 15kHz RGB outputs use.
  You can also purchase a similar kit here : http://www.microbeetechnology.com.au/vga_video_converter.htm but you will have to solder the board.  This has been verified to give a proper brown color.  There is another kit available here : http://gglabs.us/node/1619 which also shows proof of good colors.  There is another kit that is available from b i t - c 1 2 8 . c o m, but it does not give a proper brown.

After you have turned the digital RGB to analog, you will need to use a scan-line doubler to convert it to VGA and a capture card, for which there are many capture devices, or obtain an expensive PCI-E capture card that can handle 15kHz RGB analog video.  I have heard mixed reviews about the quality of the GBS-8220, which upscales 15kHz RGB signals into 31kHz VGA signals and is very common and not too expensive.  One suggestion is to use an XRGB-mini, the Framemeister.  The Framemeister will upscale analog RGB video into 720p, which can be captured by an HDMI capture card.

I would go for the latter, like this one : http://www.solarisjapan.com/sc-512n1-l-dvi-component-hd-and-dvi-capture-board/?setCurrencyId=1  Even though it is ridiculously expensive ($330!), it can handle just about anything, including VGA, HDMI and the like.  The StarTech PEXHDCAP is another PCI-E device that is very versatile and costs less than half as much : http://www.amazon.com/StarTech-com-Express-Video-Capture-1080p/dp/B007U5MGBE

The elgato game capture HD will capture 240p signals, which is essentially 15kHz scan rate video.  However, it only has composite, component and S-Video analog inputs.  You would need an RGB to Component converter for this device.  In essence you would need two converters.

If you want to capture 640x200x16 Tandy or EGA video, you will also need to use this method.  350-line EGA uses an unusual 21.8kHz horizontal refresh rate and 6-bit TTL RGB for a maximum selection of 64 colors.  VGA emulates 350-line EGA more-or-less perfectly and without double scanning.  It is just better to capture it directly from a VGA card.

Saturday, April 12, 2014

Tandy 1000TX vs. 1000TL

The Tandy 1000TX was released in 1987.  Its successor, the Tandy 1000TL was released in 1988.  The TL was mainly a refresh of the earlier machine, with some enhancements.  However, in its efforts to become more PC compatible, some things were lost.  Let's compare each machine.  

Consider what both machines possessed in common :

80286 CPU @ 8MHz in PLCC Socket
80287 Socket
5 ISA Slots
65W Power Supply
640KB built-in/768KB upgradeable

Lets look at some features :

Video : 
TX - Composite Video Output
TL - 640x200x16c and MDA/Hercules Graphics Emulation

Composite video is useful to record video from the computer, since there are many, many devices that will record a composite video signal, even a not-quite standard signal that the Tandy outputs. It is also works very well with games that use a true (Maniac Mansion, Starflight) or effective (King's Quest) 160x200x16c graphics mode.  In this mode, there is minimal artifacting and the colors presented are generally close to their RGB counterparts.  True composite artifact color games, generally made for the IBM CGA card, will show incorrect colors which no amount of fiddling with the tint control will perfectly fix.  Still, the results will look much better than on an RGB monitor.  However, recordings using the 320x200x16c mode will not look great, because the composite video signal does not have the bandwidth to keep up with the color changes. The TX can also support a true 200-line 80 column text mode.  The TL will display a rolling screen using the MODE 200 command that came with the system disks.  You can use an updated MODE.COM from the RL system disks.

The Tandy 640x200x16c mode was rarely used in games, and those games also supported the corresponding EGA mode and all of the known games support VGA as well.  Deskmate 3's draw application uses it, but Deskmate 3 does have VGA and probably EGA drivers.  The built-in graphics controller can also emulate MDA/Hercules, but there are three issues with it.  First, if you use the machine as an MDA/Hercules card, you will also need a TTL monochrome monitor like the IBM 5151.  Second, since there is only one video output port, using MDA/Hercules disables the built-in Tandy graphics support, as you cannot see it anyway with the MDA monitor connected to the port.  Third, some games will detect a Tandy 1000 and insist on using the Tandy or CGA graphics modes.  It can be useful if you have upgraded to VGA, but then you could simply obtain a generic system for a VGA/MDA combo.

The TX can add a MDA or Hercules card and retain the ability to output Tandy graphics to a separate video monitor.  Still, some games will autodetect Tandy and not work correctly with the Hercules card.

While both the TX and TL support upgrading to an EGA or 8-bit compatible VGA card, there is a very nice utility called VSWITCH that will allow you to switch between the built-in Tandy video and VGA.  More recently, someone made a similar program called ESWITCH for EGA cards.  However, due to the differences in disabling the built-in video on the TX and the TL, the program only works in the TL or later Tandy 1000s with 768KB of RAM.    

Advantage - Tie

Audio :
TX - 3 Voice Sound & Sound Blaster 1.0-2.0 Support
TL - 3 Voice Sound & built-in DAC/ADC

While the TX only has the basic 3 voice chip, it also can work with a Sound Blaster 1.0-2.0, or any other 8-bit sound card that only works with DMA1.  Many early Sound Blaster-supporting titles only work if the card is at IRQ7 and DMA1.  However, because the built-in joystick port cannot be disabled in software, the gameport of the Sound Blaster must be disabled.   

The TL has a very decent mono DAC built in, which can use the internal speaker for output.  The ADC can sample at a higher rate than a Sound Blaster 2.0, but in the TL it is speed sensitive.  While this is immaterial to Tandy Deskmate, third-party programs may have difficulty with recording. Some early games like SimCity and Outrun only support the Tandy DAC and not Sound Blaster. Overall, many more games support a Sound Blaster than the Tandy DAC.

The DAC was never released as an add-on card, so at its original ports (where many games expect it) it is unique to the 1000 TL and SL and successors up to and including the RLX. The TL's joystick port can be disabled in software, but using a Sound Blaster 1.0 or 2.0 will cause the system to freeze if the Tandy DAC is used.  Using a Sound Blaster Pro, with the DMA channel set to 3 and the IRQ set to 5, would allow the Sound Blaster and Tandy DAC to work fine. Many early games refuse to work with a Sound Blaster unless the DMA is set to 1.  Additionally, the DAC and the built-in joystick ports cannot be used at the same time, so a game supporting the DAC is not likely to read the joystick port, built-in or on an expansion card, while using the DAC.  

Advantage - TX

Drive Bays :
TX - 2 x 5.25” slots
TL - 1 x 5.25” slot & 2 x 3.5” slots

Two 5.25" slots allows for more flexibility than one 5.25" and two 3.5" slots.  If you wanted to install a 5.25 floppy drive and internal CD-ROM, you could do so in a TX but not a TL.  However, the TL offers a more appropriate setup of one bay for a 3.5" floppy drive, one for a 5.25" floppy drive and one for a 3.5" hard drive.  With a TX, you would need to use a hardcard.  The 3.5" bays on the TL are not generally useful for external drives because the faceplate is moulded into a certain shape and cutout.  The faceplate is made of plastic, so it can be dremeled out.

Advantage - TL

Keyboard Support :
TX - Tandy 1000 90-Key Keyboard or Northgate Omnikey 101-Key Keyboard (with adapter)
TL - Tandy Enhanced 101-Key Keyboard or Tandy 1000 90-Key Keyboard (with adapter)

The Tandy 1000 Keyboard has 90 keys and is slightly awkward to use from a modern perspective.  The keys use springs, but feel mushy.  The interface is proprietary to the 1000TX and earlier 1000 machines and the Tandy 2000.

The Tandy Enhanced keyboard has the standard 101-key layout, but feels too stiff.  The keyboard can automatically switch into XT or AT mode, and can work an IBM PC Model 5150 or a 2014 motherboard with a PS/2 port.

The TX can use a Northgate Omnikey keyboard with a special passive adapter cable for 101-key support.  You will not be able to use the F1-F4 function keys when booting with the Northgate.

The TL can use a 1000 Keyboard, with a special passive adapter cable.  The TL can use any keyboard that supports XT operation, including the IBM PC Model F keyboard and the IBM Model M keyboards made prior to 1993.  However, there are some games that expect a 1000 keyboard and will refuse to work at all (Snow Strike) or freeze (King's Quest Tandy booter) if the wrong key is pressed with a standard XT keyboard.  

Advantage - Tie

Real Time Clock :
Installable RTC
Built-in RTC

The TL has a standard RTC and uses a replaceable CR2032 coin battery.  The TX requires a no-slot clock like the Dallas 1216E, which has a built-in battery and is seated under a ROM socket.  The height added by the clock chip can make the slot next to it suitable for only short cards.  Tandy DOS 3.3 has built-in support for the TL's clock, the TX requires an upgrade.  

Advantage - TL

Heavy Shielding inside Case
No Shielding inside Case

The TX has shielding virtually all around the motherboard, making the internal slots and jumpers difficult to get to.  It's case cover is plastic.  The TL apparently solved any RFI problems of the older machine by using a metal case cover, because there is no shielding getting in the way.  

Advantage - TL

Configuration and Built-in Software :
Basic BIOS & Jumpers
DOS & Deskmate in ROM, EEPROM Settings

The TX is configured by eight jumpers or dipswitches.  The TL has five functional jumpers/dipswitches, the rest is configured by a program included on the DOS disks.  The TX uses Function Keys, pressed on startup, to use the monochrome mode, swap floppy drives, use the 40-column/200 line TV mode and set the processor to low speed.

The TL does all but the TV mode via the setup program.  The settings are written to an EEPROM.  If that EEPROM fails...

The TL also has a portion of DOS and Deskmate 3 in ROM.  This is only useful if you do not have a hard drive.  If you have a hard drive, then the DOS on that will boot and a standalone version of Deskmate may be required to be installed.

Advantage - Tie

Bundled Software :
TX - Personal Deskmate 2 & DOS 3.2
TL - Deskmate 3.2 & DOS 3.3

DOS 3.3 is better than DOS 3.2, there is no doubt about it.  Since neither the TX nor TL can support a high density floppy drive with its built-in controller, the best quality DOS 3.3 brings is its support for more than one 32MB hard drive partition.  However, the TX can use Tandy DOS 3.3 without any difficulty.  Deskmate 3 looks similar to Personal Deskmate 2, but 3rd party programs can easily be installed to it.  Of course, you can upgrade the TX to Deskmate 3.  On the TL, Deskmate 3 has music and sound programs in the ROM.  The music programs in Personal Deskmate 2 and Deskmate 3 should share compatible files.  However, the DOS installable version of Deskmate 3 does not come with the music program, so you will need to keep Personal Deskmate 2 for that on the TX.

Memory Upgrade :

The TX and TL both allow their memory to be upgraded from 640KB to 768KB, and when upgraded the video no longer encroaches on the conventional memory.  DOS will report 640KB available.  Both are upgraded in the same way, by adding four 64Kx4 DRAM chips.  The TL automatically will detect the chips, the TX requires a jumper to be removed.  However, the upgrade is incompatible with certain programs (detailed in a later post), forcing you to use CGA modes for those games.  To disable the upgrade, you must physically remove the chips in the TL, but you only need replace the jumper in the TX.

Advantage - TX

Sunday, March 2, 2014

A Hypothesis of the Tandy 1000 Parallel Ports

The Tandy 1000s, until the RL and TL/3, have a built in parallel port.  It does not use a standard DB-25 parallel port connector.  It uses a 34-pin card edge connector, and Tandy usually supplied adapter cables to connect to a Centronics 36-pin connector at the printer.  However, there are some very useful devices that use the parallel port as a generic input and output port.  Parallel port floppy drives, CD-ROMs, Zip drives, the Disney Sound Source and Network Adapters could in theory and with an adapter use these card edge ports.  What is unknown is whether Tandy 1000 ports can support any kind of standardized (and I mean that loosely) data input.  To begin the exploration of the Tandy parallel ports, first I will need to discuss a standard IBM PC printer port.

Unidirectional Printer Ports

The first parallel printer port for the IBM PC had eight data lines, five status lines and four control lines.  The data lines allowed the computer to send eight bits of data to the printer.  The four control bits would send control information to the printer, which could send five bits back to the PC on the status bits.  Thus, the parallel port has three registers, and in a system without a monochrome display adapter parallel port, their addresses are these :

0378 - Data Port
0379 - Status Port
037A - Control Port

The status port is read only, and the data and control ports are read and write capable.  If the data or control port is read, the computer will read the bits last sent to the port.  IBM warned against a printer or other external device trying to use the parallel port to write data on the lines meant for the data or control ports.  Thus these ports are designated as output only ports.  Officially, a printer communicated to the computer through the use of the status port.  This port is designated as an input only port.

The bit assignments for the status and control ports become important to the discussion below :

Line Name IBM Pin Active Low Direction Function Bit
Strobe 1 Yes Out Control Port 37A C0
Data 0 2 No Out Data Port 378 D0
Data 1 3 No Out Data Port 378 D1
Data 2 4 No Out Data Port 378 D2
Data 3 5 No Out Data Port 378 D3
Data 4 6 No Out Data Port 378 D4
Data 5 7 No Out Data Port 378 D5
Data 6 8 No Out Data Port 378 D6
Data 7 9 No Out Data Port 378 D7
Ack 10 Yes In Status Port 379 S6
Busy 11 No In Status Port 379 S7
Paper-Out 12 No In Status Port 379 S5
Select (Input) 13 No In Status Port 379 S4
Auto Linefeed XT 14 Yes Out Control Port 37A C1
Error 15 Yes In Status Port 379 S3
Init 16 Yes Out Control Port 37A C2
Select-In (Output) 17 Yes Out Control Port 37A C3
Ground           18-25




Strobe - The strobe signal is sent to the printer to alert it that there is valid data byte on the data output lines.  This signal is active low and held for at least 0.5uS.  AKA STB,
Ack - The acknowledge signal is sent from the printer to tell the computer that the printer has received the data byte and ready to accept more data.  This line is tied to IRQ7 through the IRQ enable bit, Control Port C4.  This signal is typically held low for 5uS.  AKA ACKNLG, PACK
Busy - The busy signal is sent from the printer to tell the computer, when high, that it cannot process data at the present time.  This is typically when the printer is busy processing data, printing data, when it is offline or has reported an error.
Paper Out - The out of paper signal is sent from the printer and, when high, tells the computer that the printer is out of paper.  AKA End of Form, P. End, PE, PAEM, Out of Paper
Select Printer (Status Port) - The printer selected signal is sent from the printer to indicate to the PC that, when high, the printer considers itself selected and on-line.  AKA Printer Selected, SLCT, SEL
Auto Linefeed XT - The auto linefeed signal is sent to the printer to tell it, when low, to advance the printer a line after a carriage return.  AKA AUTO FEED XT, AF
Error - The error signal is sent from the printer to the computer to alert the computer of a fault at the printer's end.  This is typically when the printer is offline, out of paper or has some error condition.  AKA FAULT
Init - The initialize printer signal is sent to the printer to tell it to reset itself and clear its printer buffer.  This signal must be held low for 50uS for it to be effective.  AKA PRIME
Select-Input (Control Port) - The printer select signal is sent to the printer to tell it that, when low, it has been selected and should be ready to receive data.  AKA SLCT IN, Select-In

One thing to note about these bits is that of the Control Port signals, the Strobe, Auto Linefeed and Select-In (Output) are all inverted as they are output from their register to the connector.  Since these are active Low, you must set these bits High (1) to activate these signals.  Also, the Busy signal, as it comes from the printer, is also inverted at the Status Port.  Since Busy is active High, a Low (0) bit means the Printer is Busy.

Not all bits are used by all printers.  Most printers have a dipswitch to set the printer to the Auto Linefeed mode, since this usually desired.  It is hard to imagine today that a printer or typewriter would not automatically advance to the next line after pressing the Carriage Return/Enter key.

IBM's Graphics Printer, essentially the standard of the day, had a dipswitch to always set Select Printer (which from the printer's perspective it is an output line) to the active state.

C5 is used as an Interrupt Enable line.  It is active High, so when a (1) is written to the bit, IRQ7 will be sent when the Ack signal becomes active.  The intended use for this signal is that the printer program, when the IRQ was sent, would know without having to waste time polling the Status Port that it could send the next byte to the printer.

Nibble Mode

Before the introduction of the PS/2 Bidrectional Mode, the Nibble mode was the only compatible way to read data from an external device connected to the parallel port.  The external device would drive its data onto the status port.  The high four bits of the port would be the easiest to use, which in this case would be the Busy, Ack, Paper Out and Select bits.  This would form a 4-bit nibble, and two nibbles would form a byte.  As the Busy signal is inverted, code would need to consider that in obtaining the right data nibble.

The Status Port is a 5-bit port, and if read eight times could be reformed into five bytes by including the Error bit in the read.

PS/2 Bidirectional Mode

In 1987, IBM released the PS/2 and it boasted of a bidirectional parallel port mode that would allow an external device attached to the parallel port to send eight bits of data to the computer via the data port.  TTL-based parallel ports for the IBM PC family, including IBM's, could easily be modified to do this.  In this case, Control Port C5, when set (1), would change the data output port to a data input port.  The default behavior was that C5 was not set (0).  When in data input mode, a read on the data port will give the value sent by the external device.  A write to the port would do nothing.

IBM's PS/2 and PS/1 family had more advanced bidirectional capabilities involving new registers outside the parallel port I/O space, but the basic functionality described in the previous paragraph is all that could be assumed on a regular PC compatible.

Tandy 1000

While there are the later EPP and ECP parallel ports, this post is primarily based on what the built-in ports of the Tandy 1000 are capable of, and none of them are capable of such advanced functionality.

Tandy 1000 printer ports are based off the pre-IBM Centronics standard and have some differences. Tandy marketed many, many printers, and they were designed to work with all its computer lines, including the TRS-80, the Color Computer and the Tandy 1000, 2000, 1200, 3000 & 4000.  Early printers did not use all the control and status lines of the IBM parallel printer port.  The two handshaking signals, strobe and ack, are the most important for any printer.

The Select signals are not used on Tandy printers.  Auto Linefeed is not used by some Tandy printers, the Init signal is not used by all Tandy printers and they provide an active low as well as an active high Busy signal on two separate pins.  Some Tandy printers also provide +5v on their Centronics connector at pin 18, you will want disconnect this pin at the DB-25 end of the cable if you use one of these printers.  Fortunately, pin 18 is unconnected on standard Centronics 36-pin male to DB-25 male printer cables.  Tandy Centronics connectors put Init, when used, at Pin 33, whereas it is on Pin 31 on IBM Centronics connectors.  This is the functional difference between Tandy Type A and B Card-edge to Centronics cables and Type C and D DB-25 to Centronics cables.

The Tandy 1000/A/HD have a 40-pin Parallel Port Array IC, it differs slightly from the later Array used on the SX, HX, EX and TX.  The technical reference implies that it is capable of bidirectional operation.  One difference is that the Auto Linefeed signal is on pin 32 of the 1000/A/HD card edge.  On later machines this signal is found on pin 27.  The Tandy 1000/A/HD connector leaves pin 34 unconnected, but later Tandys connect it to +5v.

The EX, HX, SX and TX all share the same Parallel Port Array IC and their ports are wired identically. While the IC has a pin (16) for the Select-Input (Control Port) line, it is not connected to any of the lines on the card edge.   Additionally, all five Status Port lines are connected from the card edge to the IC, so theoretically the port is capable of nibble transfers.  However, the Select Printer (Status Port) line usually needs to be connected via jumper to the Array IC because Tandy's printers do not use it).

Also, in theory, you could connect the Select-Input (Control Port) to the card edge and then to a parallel device by a custom adapter.  However, you would need a pullup resistor and a capacitor as the other lines have.

The TL and SL use the Jacksboro version of the PSSJ chip to implement a parallel port.  This chips does not have a pin for the Select-Input (Control Port) line at all.  Ditto for the TL/2, SL/2 and RL, even though they use the more advanced Bonanza PSSJ.  The number of pins on either version of the chip are the same.  Like the earlier devices, the Select Printer (Status Port) needs to be enabled via jumper.  On the TL/2 and RL, there are no jumper standoffs, so the jumper pins will need to be shorted.

The TL/3, RLX and RSX use the Hensdale version of the PSSJ, which has more pins and have a regular, bidirectional DB-25 parallel port.  The Select-Input (Control Port) and Select Printer (Status Port) lines are present on the connector.

Contructing a Converter Cable


Line Name        IBM Pin                    Tandy Pin
Strobe 1 1
Data 0 2 3
Data 1 3 5
Data 2 4 7
Data 3 5 9
Data 4 6 11
Data 5 7 13
Data 6 8 15
Data 7 9 17
Ack 10 19
Busy 11 21
Paper-Out 12 23
Select Input 13 25
Linefeed 14 32/27
Error 15 28
Init 16 30
Select-In Output 17
Ground            18-25                    see below

Fortunately, the 34-pin card edge connector used by the Tandy was also used by 5.25" floppy drives.  The Tandy printer card edge connector is not keyed while the floppy connectors usually are, so you will need to get an unkeyed connector or cut the plastic inside.  A short ribbon cable and a DB-25 female port connector is all that is required.  As you can see, the cable is very straightforward until IBM pin 15.  Never connect the card edge pin 34 to anything on a DB-25 connector. Pins 14, 26 and 32 are often grounded or unconnected, you can use one of the unconnected pins you try to connect Select In (Output).  Pins 2, 4, 6, 8, 10, 12, 16, 18, 20, 22, 24, 31 and 33 are connected to ground, but one Tandy ground wire for each DB-25 ground pin should be fine.

Covox Speech Thing & Disney Sound Source

The Disney Sound Source is an 8-bit D/A converter that is housed in a parallel port dongle and connected to a speaker.  The circuitry inside the dongle is powered by a 9V battery in the speaker, and a 4-pin wire with an RJ-11 jack connects the dongle to the speaker.  It does not require a bidirectional parallel port, but it does have a problem with the Tandy card edge port.

The problem is that the Sound Source, in addition to the eight data lines, uses the Ack, Init and Select-Input (Control Port) lines to control the D/A converter.  As the card edge does not include the Select-Input (Control Port)  line, the adapter will not work correctly in a Tandy.  Disney indicated that with a special adapter, the Auto Linefeed line could be used instead, but this would require a small modification to the code needed to run the Sound Source.

The Covox Speech Thing is a simpler device that does not use anything other than the data port, which is connected to a purely-passive resistor network to an audio jack.  The Tandy PSSJ DAC can emulate a Covox device using a program called Setdac, assuming the Covox-supporting program obeys DOS LPT address assignments.

Xircom PE3 Series Parallel Port Ethernet Adapters
Iomega Parallel Port Zip-100 Drives
MediaVision Audioport

Will only work with the ports in the TL3, RLX and RSX.  It is possible it may work in a TX or older if the Select-Input (Control Port)  line is brought to the connector.

Digital Joystick Adapters

The parallel port can be used as an adapter for simple, Atari-style digital joysticks.  This requires the game have specific support for this method.  Dyna Blaster is an example of a game that came with such an adapter.  In this case, the adapter had two DE-9 ports for Atari joysticks.  As you may recall from a prior post, there are many, many devices that are compatible with the Atari port.  For a game released in 1992 like Dyna Blaster, the user could use a spare Sega Master System or Mega Drive (Genesis) controller.

The maker of the adapter generally would not assume that the user would know the type of parallel port he had (unidirectional, bidirectional, EPP or ECP) or its setting.  Using the basic unidirectional port, five inputs bits are available on the status port.  Coincidentally, the basic Atari CX-40 joystick has four directional contacts and one button.  Each one can use one status bit to signal whether the directional or button has been pressed.  More buttons cannot be supported in this manner without activating some kind of multiplexer in the joystick.

Each button and joystick position hovers over an open switch.  The switch is closed when the user presses the joystick in a direction or the button down.  One contact of each switch is connected to a separate wire on the cable, and the other half of every switch is connected to a common wire.  Using one of the four control or eight data bits for the common wire, twelve joysticks could be controlled in this way.  The joystick essentially becomes a loop connector.

The Atari joystick has no chips inside it, nor does a Sega Master System or Atari 7800 controller, but the Genesis, NES and SNES controllers all have a logic chip or two that requires +5v.  Fortunately, the Tandy card edge provides +5v on pin 34 (except for the 1000/A/HD)  Using a dedicated line is much easier on the port than trying to combine the power with parallel port data pins as the NES and SNES adapters used by SNESkey do.

Parallel to SCSI Adapters

I take no credit for this discovery, that goes to my friend Cloudschatze, but there does exist a parallel port to Shuttle SCSI adapter that apparently works with the Tandy card-edge port to transfer data in both directions.  Shuttle made an adapter with a driver that will work in a pure bidirectional mode and overlook the lack of a Select-Input (Control Port) line, unlike other adapters.  Therefore, with the card edge to DB-25 converter, the Shuttle adapter and a SCSI storage device, it is quite possible to get the parallel port to transfer data to the Tandy, at least the *X or better models.

LapLink Cable

It is quite possible to get the MS-DOS program Interlnk to work with the Tandy 1000s and their parallel ports, see here for details :

http://nerdlypleasures.blogspot.com/2014/09/tandy-1000s-and-interlnk-and-laplink.html

Saturday, March 1, 2014

Evolution of 8088 PCs

From the first IBM PCs, there was a steady stream of innovation and improvements to PC compatible computers using an 8088 CPU.  However, there were also some bumps along the way.  In this entry, I will try to identify many of the positive and negative features of the main 8088 members of the IBM PC and Tandy 1000 families.

1.  IBM PC Model 5150 First Version

IBM PC BIOS 1st & 2nd Revision - The original PC BIOS was the byword for compatibility.  

Chassis - two full height drive bays, unique system board mounting, 13" maximum expansion board length, PC cone speaker.  

System Board & Expansion Cards - Use of off the shelf components or TTL logic chips, configuration by two rows of dipswitches.

Power Supply - The form factor would be the same for the IBM PC/XT and this established a standard "AT Power Connector", passthrough port for monochrome monitor

Expansion Slots - The 8-bit PC or XT slot was introduced.  Five slots were better than most other home computers at the time.  However, the floppy disk controller, the video card and memory cards each took up a slot, so expansion was limited.  

Cassette Interface - Important for saving programs in Cassette BASIC, used in Music Construction Set.  5-pin DIN connector, used TRS-80 cassette cables

Diskette Drive Adapter - Standard equipment, supports all double density drives, 34-pin card edge connector.

Diskette Drive (Single Sided) - Tandon TM100-1s were used in the beginning, supporting 160KB or 180KB per side.  4-pin molex connector used.

System Board Memory - 16-64KB on the motherboard, 16KB minimum, expandable to 544KB via expansion slot memory upgrades, first bank soldered, remaining three banks socketed.

System ROM - 6 x 8KB sockets, five used for BASIC and BIOS.  Empty socket, but requires an adapter for EPROMs.

IBM PC-DOS 1.0 - Included Disk BASIC and Advanced BASIC, loads COMMAND.COM, IBMIO.COM and IBMDOS.COM.  

Asychronous Communications Adapter - 8250B UART serial port, switchable between COM1 and COM2, DB-25 male connector.  Most can work in XT Slot 8.

Printer Adapter - Printer port, 378H (or 278H with modification), DB-25 connector female connector

Game Control Adapter - DA-15 female connector, joystick support (third party), four axes and four buttons.

Monochrome Display and Printer Adapter - DE-9 female display connector, 80-column text, 9x14 character cell, TTL monochrome displays only

IBM PC Display Model 5151 - Display for the above adapter and later Hercules Graphics Card, powered through PC power supply, long persistence phosphor, monochrome green screen, brightness and contrast controls.

Color/Graphics Adapter - CGA, 16 colors selectable, 4-color palettes, 40 & 80 column text mode, composite color output, artifact color, 320x200 and 640x200 graphics modes, RCA composite video jack, light pen support, RF switchbox (third party) support

Math Coprocessor - Unidentified at first, empty 40-pin socket for 8087 upgrade.  

IBM PC Keyboard - 83-key first standard keyboard, Function keys on side, buckling spring technology, 5-pin DIN connector

IBM Graphics Printer Model 5152 - Epson MX-80 clone, parallel printer, dot matrix printer

2.  IBM PC Second Version

IBM PC BIOS 3rd Revision - Fixed bugs, added support for 640KB of memory, bootable option ROMs

IBM PC-DOS 1.1 - Double sided disk drive support, used Tandon TM100-2As.

Double sided disk drives - 320K and 360K per disk supported

System Board Memory - 64KB to 256KB on system board, now expandable to 640KB via expansion slot upgrades

Bootable ROM - Devices can have a boot ROM and the BIOS will allow the device to install its own boot handler, booting directly to a hard drive now possible.  EGA and VGA support possible.

3.  IBM PC/XT Model 5160

System Board - Configuration now only by one bank of dipswitches.  Memory autodetected, tested and counted at bootup.  Faster bootup compared with PC.

Cassette Interface - Eliminated, making Cassette BASIC vestigial for programs that require it

IBM PC Color Display Model 5153 - Official CGA monitor (.31 dot pitch), 16 color support (intensity bit not properly supported on some third party monitors), color #6 brown, 14/13" viewable screen, vertical hold and size controls.  

IBM Expansion Unit Model 5161 - Adds seven more ISA slots, and official method to add hard disk drive to PC (whose power supply was not considered to output sufficient power to supply hard drive requirements)

IBM Graphics Printer Model 2 - Printer capable of supporting all IBM Extended ASCII characters.  Earlier printer did not.

Expansion Slots - Standard 8 expansion slots, distance between slots standardized for what would become known as ISA slots.  Slot 8 is on custom bus and only works with special cards (like the Async card).  Only 6 slots can support full length cards due to the case.  

Revised Expansion Card Brackets - Early PC brackets are black and color and are wider than later silver brackets.  This can be a problem using cards side by side in later systems.

Power Supply - 130W, sufficient to support a hard drive and more

Fixed Disk Adapter - Built around Xebec chips, standardized XT hard drive controllers, including XT-IDE drives, supports two MFM drives, slow 6:1 interleave.    

Fixed Disk - 10MB Seagate ST-412, Cylinder/Head/Sector addressing, MFM, Full Height.

System Board Memory - Same four banks as IBM PC, but all four banks socketed

IBM PC-DOS 2.0 - 9 sector floppy disks supported for 180KB per side or 360KB per disk, device driver support, revised file handling system, hard disk support (15MB maximum)

ROM Sockets - Support Standard 32KB EPROMS for 64KB ROM (only 40KB used on XT first BIOS)

Secret Memory Expansion - By adding a 74LS158 chip to socket U84, jumpering E2 and replacing the 64Kx1 RAM chips in banks 0 and 1 with 256Kx1 chips, you can have 640KB on the motherboard.  Later XTs come with the mod.

4.  IBM PC Portable

Composite Monochrome Monitor - 5" amber screen, composite connection to CGA card

Half-Height Diskette Drive - Two supported

Portability - For 1983, this meant a sturdy handle, a slightly modified keyboard that could attach to the chassis, and a power plug.  System weighed almost 40 pounds.  Only two full length cards supported

5.  IBM PCjr. Model 4860

Cartridge Slots - For games and software, up to 64KB for each cartridge, two supported.  Also used for Cartridge BASIC.  Only appears on PCjr. and JX.  

Sidecar Expansion Bus - Attach expansion boards without having to open computer, including parallel port and memory expansions.  It lengthens the physical footprint of the system.

Cordless Keyboard - IR keyboard powered by 4xAA batteries and allowing for cordless operation 20-feet away, line of sight must be maintained, keyboard cord optional.  

Internal Modem - 300 baud Novation non-Hayes compatible modem.  Special internal slot connector, standard RJ-45 port.

System Board Memory - 64KB on motherboard, 64KB via internal expansion card, up to 736KB total via sidecar.  System designed for 128KB, program must support extra RAM (Flight Simulator 2.0) or DOS must have a device driver to load more RAM

Enhanced CGA - Adds 160x200x16, 320x200x16 and 640x200x4 modes, but only BIOS level CGA compatibility

IBM PCjr. 3-Voice Sound - 3 square wave channels plus noise, 11-bit frequency selection, 4-bit volume control per channel, periodic and white noise selectable at four frequencies.  Requires external speaker of some kind

System Configuration - Totally jumperless and dipswitchless, internal expansion cards and external IBM expansions automatically detected, memory detected (up to 640KB) and configured via software

Diskette Drive Controller - Only one drive supported, accessed at different ports, uses 34-pin header

Proprietary Expansion - External ports use unique BERG connectors.  

Cassette Interface - Last PC compatible system to include a cassette interface.  Only official IBM cassette cable is for the PCjr.

TV Connector - Only official IBM RF switchbox is for the PCjr.

Joysticks - Gameport on systemboard, supports two joysticks without a y-adapter.  Only official IBM Joystick of the PC line is for the PCjr.  Joysticks function the same as PC joysticks, just have a different connector.

Serial Port - Includes 8250B Serial Port, official IBM DB-25 adapter available.  Uses COM2 resources, 278H/03I, but BIOS calls it COM1 if internal modem is not installed.

Power & Cooling - 33W power card came first, followed by 45W card.  45W sufficient to power three sidecars.  Only system here able to be run silently without risking overheating the power supply since the fan cools the disk inside the disk drive.  

IBM PCjr. Color Display Model 4863 - Higher dot pitch (.42) than the PC Color Display, but also includes a speaker and uses the PCjr. video connector.

IBM Compact Printer - IBM's official serial printer, uses PCjr. serial connector, can use an adapter for any serial port, low cost thermal printer, surprisingly decent.  

IBM PCjr. Speech Attachment - IBM's implementation of TI's Speak and Spell technology and more. Built in vocabulary.  Capable of recording and playback of digitized sound.  Later emulated by many devices.  

Compatibility - Compatible with most IBM software, but notable exceptions include Microsoft Decathalon, 101 Monochrome Mazes and Microsoft Flight Simulator 1.x.  Usually not so compatible with 3rd party software not written to take the PCjr. into consideration.  

IBM PC-DOS 2.1 - Adds full BASIC support for PCjr's advanced graphics and sound, but requires Cartridge BASIC to work at all.

6.  Tandy 1000 Model 25-1000

Expansion Slots - 3 standard XT slots, but only 10" cards or shorter supported

PCjr. Features - Brought over the Enhanced CGA and 3-Voice sound from the PCjr.

Compatibility Improvements - Unlike the PCjr., the Tandy 1000 could run most PC software that accessed the hardware directly.  

Tandy 1000 Keyboard - 90 keys, including separate cursor keys and F11 and F12 keys, but support for these keys was hit or miss.  

DMA & Memory Upgrades - Upgradeable to 384KB and DMA with one Board, 640KB with a second board.  Full DMA support compared to PCjr (which only allowed DMA for floppy, and available via 3rd party upgrades only)

Printer Port - Built in, but limited and uses card edge connector

Power Supply - 54W, considered adequate for two drives and three expansion cards

Tandy CM-2 High Resolution RGBI Color Monitor - Later known as the CM-10 and CM-11, this was the Tandy equilavent of the IBM PC Color Display, although the dot pitch (.43) is not quite as sharp as IBM's (.31)

Tandy MS-DOS 2.11 - GW-BASIC supports enhanced graphics and sound of the Tandy 1000s, no FDISK to partition hard drive.

7.  Tandy 1000A Model 25-1000A

Coprocessor - Adds 8087 Math Coprocessor Support

286 Express Upgrade - Compatible without special daughter board the plain 1000 requires.

8.  Tandy 1000HD Model 25-1000HD

Fixed Disk Drive - 10MB half-height model and Xebec controller that could use IRQ2.  IRQ5 is standard on XTs, but the Tandy uses it for a vertical retrace interrupt.

DMA & Memory - Came with one board that gave DMA and allowed you to upgrade to 640KB with one board, also supplied a PLUS connector (see below) to add another expansion device like a serial card without taking up another slot.  

Tandy CM-4 RGBI Color Monitor - Low cost RGBI monitor with a large dot pitch (.62).  Not recommended for 640x200 graphics.  

9.  IBM PC/XT Revised

101-Key Keyboard - IBM made Model M keyboards work quite reliably on an XT with 2nd and 3rd BIOS.  On a first BIOS XT or any PC, the odds are much lower that it will work at all.

Improved Drive Support - BIOS support in 2nd and 3rd BIOS for 3.5" double density and 5.25" high density drives, but a third party floppy controller is required for the latter.  

System Board Memory - Supports 640KB on the motherboard without modification.

Mounting Hardware - IBM supplied late XTs in a dual half-height floppy configuration and included mounting hardware to fit them inside a full height bay.  

10.  IBM PC Convertible Model 5140

LCD Display - Simulates something like a 2-color CGA display, but in 320x200 (stretched to double width) can manage four intensities of color.  Also can emulate the MDA.  

Diskette Drives - IBM's introduction of 3.5" double density disk drives.  Would take until the PS/2 for 3.5" disks to fully catch on.  

Keyboard - 78 key keyboard, functions similar to PCjr. keyboard but improved by using IRQ1 for keyboard interrupt and not using CPU to deserialize scancodes.  

Internal Modem - Slot inside for 1200 baud version of PCjr. modem, may or may not be Hayes compatible.

Expansion Bus - XT bus with multiplexed address and data lines.  

Battery Operation - Uses CMOS 8088 CPU, SRAM to save power and allow for battery operation, system can be suspended indefinitely.   

Attachable Printer - Thermal printer, more advanced than PC Compact Printer.

Display Slice - Provides full CGA compatibility to external RGBI monitor.  Connector supports IBM PCjr. Display or IBM PC Convertible Color Display Model 5145.  RCA jack can be used with color composite monitor.  IBM also introduced the 9" IBM PC Convertible Monochrome Display with green phosphor.  

Portability - Although still large and bulky by modern standards, this is a true laptop.

Convertibility - Can remove LCD to place unit underneath standalone monitor.  

11.  Tandy 1000 EX Model 25-1050

Dual Speed CPU - 7.16MHz/4.77MHz, selectable at bootup or via Tandy MS-DOS Mode command.

Slimline - Takes up less desk space and the keyboard is built into the system unit just like an Apple IIc.  (Does not apply to SX) 

Selectable Boot Drive - You could boot to the internal 5.25" floppy drive on an external 3.5" floppy drive 

Expansion Bus - Uses a 62-pin version of the XT expansion bus, cards (called PLUS cards) stack onto each other, but must be short.  (Does not apply to SX)

DMA and RAM Expansion - One PLUS card upgrades system to DMA and allows for 640KB

External Drive Connector - For connecting a second 5.25" floppy drive or a 3.5" floppy drive

Earphone Connector and Volume control - When you want a quiet PC (not on SX)

12.  Tandy 1000 SX Model 25-1051, 1052, 1054

Dual Floppy Drives - 2x360KB Floppy drives on Model 25-1051 and 1054, boot floppy can be selected on bootup.

Expansion Slots - Five expansion slots provided without any need for memory expansion

Memory Expansion - Upgrade from 384KB to 640KB with 8 x 256Kx1 chips

DMA - Included on all machines (optional on EX and HX)

286 Express - Official 286 speed upgrade, 8KB cache that can be disabled, supports 80287 coprocessor.  Software controlled. 8088 still available for programs that will not run on a 286 or on the faster speed

Tandy MS-DOS 3.2 - Supports 3.5" drives, FDISK partitioning, 3 extra 32MB DOS partitions using MLPART (non-standard)

Power Supply - 65W, considered adequate for two drives and five expansion cards

13.  Tandy 1000 HX Model 25-1053 (all the EX features plus) :

Boot Speed and Menu - Nearly instant boot to an optional menu where you can select the boot device (floppy, DOS, Deskmate)

EEPROM - Save settings permanently without dipswitches or jumpers.

DOS-in-ROM - Enough DOS 2.11 is on the system that you will not usually need to insert a DOS disk when loading programs off floppies.  Disabled if a hard drive is installed.  Also supports 3.5" disk drives natively, which regular DOS 2.11 cannot.

Power-in-drive cable - No separate molex or mini-molex connector required.  A headache for wanting to use standard drives.

Saturday, November 2, 2013

IBM PC Color Composite Graphics

In one of my recent posts, I discussed artifact color composite graphics as demonstrated by all computers which were intended to use them.  In this post, I want to focus on artifact color composite graphics as available on the IBM PC and compatible systems.

IBM PC CGA Color Composite Graphics

First, I would like to address some myths.  The first myth is that only a few games used composite color. Well over 100 games have been confirmed to use composite color.  The second myth is that virtually all of them used the 640x200 graphics mode.  In fact, many, many games used composite color, although many looked acceptable on an RGB monitor, and just as many games used 320x200 graphics mode and color composite graphics as those that used the 640x200 graphics mode.  Here are a list of games that are known to use composite artifact color graphics and the type of graphics they use :

Game Title Composite Color Type
Adventure in Serenia 320
Agent USA 320
Alphabet Zoo 320
Ancient Art of War 320
Archon: The Light and the Dark 320
Battle of Antietam 320
BC's Quest for Tires 640
Below the Root 320
Beneath Apple Manor 320
Black Cauldron, The 640
Blue Angels: Formation Flight Simulation 640
Borrowed Time 320
Boulderdash 320
Boulderdash II 320
Bruce Lee 640
BurgerTime 640
Buzzard Bait 320
California Games 640
Championship Baseball 640
Championship Golf: The Great Courses of the World - Volume One: Pebble Beach 320
Chuck Yeager's Advanced Flight Trainer 640
Crossfire 320
Demon's Forge 320
Dino Eggs 320
Donald Duck's Playground 640
Drag Race Eliminator 320
Dragon Wars 320
Exodus : Ultima III 320
Fooblitzky 320
Football 640
Freddy's Rescue Roundup 320
Frogger II: Three Deep 640
Gamma Force in Pit of a Thousand Screams 320
Gertrude's Puzzles 320
Gertrude's Secrets 320
Gettysburg: The Turning Point 320
Gold Rush 640
Indianapolis 500: The Simulation 640
J-Bird 640
Jumpman 640
Jungle Hunt 320
King's Quest 640
King's Quest II : Romancing the Throne 640
King's Quest III : To Heir is Human 640
King's Quest IV : The Perils of Rosella (AGI) 640
Lane Mastodon vs. the Blubbermen 320
Leisure Suit Larry in the Land of the Lounge Lizards 640
Lost Tomb 320
M.U.L.E. 320
Manhunter : New York 640
Manhunter 2 : San Francisco 640
Maniac Mansion (Low-Res) 320
MasterType 320
Mean 18 640
Mickey's Space Adventure 640
MicroLeague Baseball 320
MicroLeague Baseball II 320
Microsoft Decathlon 320
Microsoft Flight Simulator (v1.0) 640
Microsoft Flight Simulator (v2.0) 640
Mindshadow 320
Mixed-Up Mother Goose 640
Mr. Cool 320
Ms. Pac-Man 640
Murder on the Zinderneuf 320
Night Mission Pinball 640
Night Mission Pinball (v3.0) 640
Oil's Well 640
Pits & Stones ?
Pitstop II 640
Roadwar 2000 320
Roadwar Europa 320
Robot Odyssey 320
Rocky's Boots 320
Shamus 320
Sierra Championship Boxing 320
Solo Flight 320
Space Quest : Chapter I : The Sarien Encounter 640
Space Quest II : Vohaul's Revenge 640
Spy Hunter 320
Starflight 640
Strip Poker: A Sizzling Game of Chance 320
Sub Mission 320
Super Zaxxon 640
Superbowl Sunday 640
Tales of the Unknown: Volume I - The Bard's Tale 640
Tapper 640
Tass Times in Tonetown 320
The Bard's Tale II: The Destiny Knight 640
The Bard's Tale III: Thief of Fate 640
The Fourth Protocol 320
The Oregon Trail 320
The Seven Cities of Gold 640
The Tracer Sanction 320
The World's Greatest Baseball Game 640
Think Quick! 320
Transylvania 320
Troll's Tale 640
Ultima II : Revenge of the Enchantress 320
Ultima IV : Quest of the Avatar 320
Ulysses and the Golden Fleece 320
Wasteland 640
Where in the U.S.A. is Carmen Sandiego? 320
Where in the World is Carmen Sandiego? 320
Wilderness: A Survival Adventure 320
Winnie the Pooh in the Hundred Acre Wood 640
Wizard of Id's WizType 640
Zak McKracken and the Alien Mindbenders (Low-Res) 320
ZorkQuest: Assault on Egreth Castle 320
ZorkQuest: The Crystal of Doom 320

The advantage to using the 640x200 graphics mode is that a good color palette is available using white as the foreground color.  White or light gray, rather than high intensity or bright white was used because the brightness level was more tolerable on composite devices.  The disadvantages are that the game must support two completely different sets of graphics, otherwise users of RGB monitors would feel left out. Additionally, most games used an algorithm that requires extra coding and CPU time to implement for either the RGB or color composite mode.

The advantage to using 320x200 graphics is that only one set of graphics, or in a few cases two sets of very similar graphics, need be used.  Both users of composite monitors and RGB monitors can be satisfied, although the result may not be as impressive as tailoring graphics to either RGB or composite monitors.  The disadvantage is that the graphics designer has to cope with both direct and artifact colors, often giving a fuzzy image.  With the green/red/brown palette, the results often look somewhat garish and it was seldom intended to be used for composite color graphics.  Often that palette, many times with a blue background, would be used for the RGB graphics selection.  The colors choices available in the 320x200 modes are not as flexible as they would be in the 640x200 mode.

320x200 Palette 1 High Intensity Composite Color Graphics from L to R : RGB, Old CGA, New CGA, PCjr., Tandy
320x200 Palette 0 High Intensity Composite Color Graphics from L to R : RGB, Old CGA, New CGA, PCjr., Tandy
The above palettes do not quite give the full array of color combinations which the CGA card is capable. Although the palette choices in the 320x200 modes are limited, the background & border color can be freely selected from the full 16 colors which the CGA can display.  Similarly, the foreground color in the 640x200 mode can be set to any of the 16 colors CGA can display.  These color choices will affect the resulting artifact colors available.

640x200 Color Composite Graphics from L to R : Old CGA, New CGA, PCjr., Tandy
While color composite graphics may appear to be one way to display graphics, in reality there are three major types of color composite graphics.  First there are those generated by the IBM PC Color/Graphics Display Adapter and 100% compatible adapters.  Within this type there are two subtypes, early cards and late cards with minor differences between them.  Second, there are those generated by the IBM PCjr.  Third, there are those generated by the Tandy 1000 computers.

IBM CGA cards, Catalog Part Number 1504910 come with Card and PCB numbers

Card           PCB
1804456
1804464
1804472
1501486     1501453
1501981     1501982
6278550     6133807?
6447058

Cards 1804456 to 1501486 are early CGA cards.  1501981 to 6447058 re late CGA cards. The 180xxxx cards have the black brackets on them which the very earliest IBM PC cards had.  Later cards use a silver bracket appropriate for an IBM PC, XT or any compatible machine.  The major physical differences between the two versions of these can be seen here :

Old CGA vs. New CGA, note the increased number of resistors on the New CGA card (courtesy of minuszerodegrees.net)
An old CGA card will have either 7, 8 or 12 resistors, a new CGA card will have 15.  Note also in the above photo that the old card has a Motorola MC6845 and the new card has a Hitachi HD6845.  While the two work identically for typical software, demos may require one or the other.  The party-version of the 8088MPH demo only looks correct with an MC6845.  The final version looks correct with either chip.

Old cards seem to come exclusively with MC6845s, while new cards will use either chip.  Old cards always seem to use a green PCB color, but new cards almost always use a brown PCB color.

One of the chief differences between these cards is the number of shades of gray it can produce when connected to a monochrome composite monitor or B&W TV set through an RF modulator.  Old cards can produce two shades of gray plus black, while new cards can produce 15 shades of gray plus black in black and white modes.  Many computer users had to use monochrome green, amber or white monitors back in the day, and the increase in shades of gray meant that more detail could be seen in the graphics.  With the old cards, you had black for black and gray, white for white and bright white and gray for all other colors.  This is found in CGA Mode 5, which on an RGB monitor gives a cyan, red and white palette but on a color composite monitor will give either black and white (2 colors) or black, dark gray, light gray and white (4 colors).

Colorwise, new CGA was adjusted to more closely adhere to the NTSC standard.  It will appear more consistently across different monitors than old CGA.  There are differences between the saturation and brightness between the colors output by old and new CGA.  Newer monitors may make the image too dark with old CGA, requiring the user to increase the brightness level of his monitor.  There is a test program that can tell you which type of CGA card you may have.  Here are the screenshots of it showing how it informs you of the type you may have :



Old CGA has a raster bendiness issue with certain computers, and the black and white modes may not always eliminate all colors.  Running the signal through a powered RF modulator like the Recoton Video RF Modulator V647 should eliminate the bendy horizontal sections of the picture without reducing the video quality (assuming you are not modulating an audio signal with the video.)

Unlike the Apple II, where the pixels being output in the high resolution and double high resolution modes were either white or black, on the PC the pixels being put out have direct color.  The six colors in between black and white, without accounting for intensity, are generated by adjusting the phase of the 3.58MHz color burst signal for the hue and the amplitude of that signal for the brightness.  Unlike on an RGB TTL monitors from IBM, color #6 is dark yellow, not brown, because a color composite monitor or TV does not have circuitry built inside it to detect color #6 and turn it to brown.

For direct or chroma colors, both the old and new CGA cards look similar to the RGB colors, but there are minor differences between them.  The PCjr. and Tandy 1000 show direct or chroma colors identically with the new CGA cards.  Here are the 16 direct or chroma colors :

Rows 1 & 4 : RGB CGA Colors, Rows 2 & 5 : Old CGA Direct Colors, Rows 2 & 6 : New CGA, Tandy and PCjr. Direct Colors
For at least two games, Microsoft Decathlon and Championship Golf, the earlier card makes it much easier to read text than the later card.  Championship Golf may require the brightness controls to be turned down on the monitor.  Other games designed for old CGA are Sorcerer of Claymorgue Castle. Tournament Tennis, Quadrel and Willow look better with new CGA.

320x200 Palette 1 Color Composite Graphics Example - Adventure in Serenia New CGA
Some games like Donkey Kong, Boulderdash II, I, Damiano: The Wizard of Partestrada and Turbo Champions look like they support color composite graphics due to the vertical striped pattern graphics seen in some screens or tiles, but they really do an overall poor job on a color composite monitor. It is suspected that the ports did not convert the graphics with a great deal of thought.

320x200 Palette 0 Color Composite Graphics Example - Jungle Hunt (Note the Diving Bar, New CGA)
Pitfall 2 is an interesting piece of software when it comes to color composite mode support.  If you press 1 at the text screen, you will see 640x200 graphics with green as the foreground color on an RGB monitor.  I know of no game other than this that uses any foreground color other than white for 640x200 color composite graphics.  Obviously, this gives the graphics a greenish hue on a color composite monitor.  If you press 2 at the text readability screen, you will get 320x200 graphics with intense palette 0.  However, the road and the mountains have vertical stripes, which suggest that this mode is also intended to be used with a color composite monitor.  However, the stripes are there as a crude dithering effect, as using this mode on a color composite monitor makes the text very difficult to read.  The Fourth Protocol allows the user full control over the CGA card, and has a stripey pattern for 640x200 graphics that make them look tolerable with a color composite monitor.  It may be limited to the title screen, however, because the in-game graphics appear to always be 320x200, with the pixels doubled in a 640x200 mode.

640x200 Color Composite Graphics Example #1 - Pitstop II, New CGA
Color composite graphics were not limited to booters.  Sierra supported it in every AGI engine game it released, from King's Quest to Manhunter II : San Francisco.  Interplay supported it in The Bard's Tale 1-3, Dragon Wars and Wasteland.  No doubt their Apple II origins contributed to this.  Interestingly, in Wasteland you must select the graphics adapter in the install program, which then converts the graphics from 16-color to composite color as it installs.  To use another graphics adapter, you have to reinstall the game.  Considering its support for every other type of graphics adapter on the market, the color composite support in Lucasarts' Maniac Mansion and Zak McKracken is uncharacteristically poor.

640x200 Color Composite Graphics Example #2, - King's Quest, Old CGA
Tandy 1000 Composite Color Graphics

Tandy can only show the same direct or chroma colors as CGA, but the Tandy 1000 artifact colors are different.  Changing the hue adjust will be sufficient to change Tandy colors to late CGA colors in DOSBox, and vice versa, but only in the 640x200 mode.  A hue adjustment in the 640x200 mode of 120 degrees will give a good Tandy palette.  You can only approximate the palette colors for the 320x200 modes.  Games that are not "Tandy-aware" with their color composite graphics will show different colors. This occurs either with either 320x200 or 640x200 graphics.

Blue Angels: Formation Flight Simulation is the only game known where the color composite graphics look correct on the Tandy 1000 but do not look right on the IBM CGA cards.  It also apparently was developed on a system with a comb filter.  For a 1989 game, this would not have been difficult to find, but comb filters were not used on the composite color monitor and TVs of the early 1980s when most of the composite color CGA games were developed.  Many early 1980s games look better on monitors without comb filters.  Compare these two screenshots :

IBM CGA Composite
Tandy 1000 Composite
In the Tandy extended modes 160x200x16, 320x200x16 and 640x200x4, you will see color on a color composite monitor or TV.  In the 160x200x16 mode, there is no real artifact color since the pixel clock and the color burst frequencies are the same, 3.58MHz.  The graphics look blocky in this mode, but reasonably sharp.  Maniac Mansion on the Tandy 1000, using the Tandy graphics setting, would look very similar to how it looks on the Commodore 64, although there are color differences and the text is blockier.

Indianapolis 500 specifically supported both IBM and Tandy color composite graphics with different command line arguments so that the colors would look correct regardless of system.  However, the colors in each mode are not identical.  The command line switch /c1 will give colors appropriate for a CGA card, and switch /c2 will give colors appropriate for a Tandy graphics adapter.

Indianapolis 500 - The Simulation 640x200 RGB CGA
Indianapolis 500 - The Simulation 640x200 RGB Tandy
Indianapolis 500 - The Simulation Color Composite Early CGA
Indianapolis 500 - The Simulation Color Composite Late CGA

In modes using true 320x200 graphics (the AGI games use the 320x200 16 color graphics mode, but the effective graphics resolution is 160x200, at least for graphics above the command line), you can see color, but detail is lost, unintended artifacts that look like Hanover bars appear, and the game usually looks bad.  As far as 640x200x4 graphics go, no game is known to use that graphics mode.

Indianapolis 500 - The Simulation Color Composite Tandy (Simulated)
On a monochrome composite monitors or B&W TV sets, 16 shades of gray are always visible with Tandy 1000 or PCjrs.

IBM PCjr. Color Composite Graphics

The PCjr. does support color composite artifact colors, but the artifact colors are different from the CGA cards and the Tandy 1000.  Again this is due not to differences in the phase of the color burst but the pixel clock delay compared with the CGA cards.  In the 320x200 mode, there is a pixel clock delay of 120 degrees compared with the CGA cards.  PCjr. color composite graphics can appear quite different to CGA color composite graphics.

Below the Root sounds best (at least the opening song does) when run on an IBM PCjr. and the direct colors when the game is run on a PCjr. were tweaked to look very appropriate for a color composite monitor with artifact color.  Ditto for The Seven Cities of Gold, except it uses 640x200-based color composite graphics.

IBM PC CGA RGB
IBM PCjr. RGB

IBM PC CGA Old Composite

IBM PC CGA New Composite
IBM PCjr Composite

As explained in the prior blog entry, the PCjr's default 320x200 palette is not identical to the CGA's default cyan, magenta and white palette.  The PCjr. intentionally uses high intensity white instead, causing brightness and saturation differences.

Below the Root 320x200 Color Composite Late CGA
Below the Root 320x200 Color Composite Early CGA

Below the Root 320x200 Color Composite PCjr.

Wilderness : A Survival Adventure may show the best composite color results using the PCjr., but the underlying patterns are not changed for the machine.  Frogger II is PCjr. aware and shows good composite or RGB colors either with CGA or PCjr.  A late version of Pitstop II has direct support for the PCjr.'s 160x200x16 mode, so it will always look better than the CGA with or without color composite graphics.  Ditto for Murder on the Zinderneuf, all versions use 160x200x16 on the PCjr.  Several other games just use 160x200x16 on the PCjr. because it looks excellent on an RGB or color composite monitor.

BC's Quest for Tires uses 320x200 composite color graphics on the PCjr. but 640x200 composite color graphics on the PC.  Microsoft Flight Simulator 2.xx uses 640x200 composite color graphics for the PC and PCjr., but the patterns are different for each.  There was a version of Ultima II for the PCjr. that uses appropriate composite color 320x200 graphics.  M.U.L.E. also uses 320x200 composite color graphics.

Current SVNs of DOSBox emulate old and new CGA with the cga machine type, 640x200 and 320x200 color composite graphics but does not emulate color composite graphics with the tandy or pcjr machine types.

Other computers may have inaccurate CGA artifact colors.  The Columbia Data Products 1600 (one of the very first PC clones) came with a CGA clone card that is almost as off as the Tandy or PCjr.  A hue adjustment of 315 degrees will get something like its palette in 640x200 mode.  Here are the games that intentionally support composite color on an IBM PCjr. with the type of composite color they use :

Game Title Composite Color Type
BC's Quest for Tires 320
Below the Root 320
M.U.L.E. 320
Ultima II : Revenge of the Enchantress PCjr. Version 320
Frogger II: Three Deep 640
Microsoft Flight Simulator (v2.0) 640
The Seven Cities of Gold 640

Lode Runner : Support for All Composite Color Types

Lode Runner for the PC always looks best in composite color mode, despite using the 320x200 resolution. Only the in-game border and certain objects on the screen really take advantage of composite color, but the solid objects always look appropriate regardless of monitor.

When first released for the PC, the game only supported the IBM PC and CGA.  A second release added PCjr. support by adjusting the patterns for the composite color objects.  A final release under the Tandy label retained the PC and PCjr.'s respective patterns but adjusted the patterns again when it detected a Tandy 1000 machine.  Here are correct screenshots for the CGA, PCjr. and Tandy both in RGB and Composite :
IBM PC CGA RGB
IBM PC Old CGA Composite
IBM PC New CGA Composite
IBM PCjr RGB
IBM PCjr Composite
Tandy 1000 RGB
Tandy 1000 Composite

Limitations of the Tint Control

NTSC color TVs and monitors have a tint (hue) control dial, buttons or function.  The tint control is intended to adjust for phase errors in a transmitted broadcast signal.  The tint control adjusts the phase of the TV's reference color burst signal slightly toward the green or red end of the spectrum.  The color burst is intended to have a phase of 180 degrees, and by using the tint control, you can adjust the TV's phase by about 40 degrees from the official phase.  This was important during the era of broadcast TV before cable became ubiquitous.  Here is an NTSC color wheel to give you an idea of where the colors fall by degrees :


Unfortunately, for Tandy and PCjr. display adapters, 40 degrees is not sufficient to turn Tandy or PCjr composite colors into CGA colors.  Relative to late CGA, assuming its color burst is near 180 degrees, 640x200 Tandy is at 300 degrees and 640x200 PCjr. is at 120 degrees.  In the 640x200 mode, you can get somewhat close to the CGA colors at the extreme end of the tint control (green for PCjr, red for Tandy), but in 320x200 mode, you really won't.  In DOSBox, F11 and Alt F11 emulate the function of the tint control.

This blog entry gives a very readable overview of how composite CGA works : http://8088mph.blogspot.com/2015/04/cga-in-1024-colors-new-mode-illustrated.html