Saturday, July 14, 2012

CGA and Tandy Compatibility

Tandy 1000s (except for the RLX and RSXes) have a built-in video adapter which was based on the IBM PCjr.'s internal graphics adapter.  However, Tandy decided to do what IBM should have done, which was to make the internal graphics fully CGA compatible.  The PCjr. is really only compatible with CGA at the BIOS level, allowing for a 16KB graphics window at B800, implementing a compatible Status Register and using a genuine Motorola 6845 CRTC.  It does support CGA color composite video (with a different color palette) and a light pen.  Tandy added the Mode and Color Control Registers to allow for full CGA compatibility with software that wrote to those registers directly.

With Tandy's Graphics Adapter, a very high level of compatibility with CGA is maintained.  However, it is not perfect for reasons largely not attributable to Tandy.  First, IBM and Tandy use slightly different character glyphs in text-mode graphics.  IBM's "d" and Tandy's "d" do not look exactly the same, for example.  Text characters in text mode or taken from the patterns in the BIOS ROM will look slightly different.  This difference would be barely worth mentioning except that games that use tweaked text modes for their graphics will show graphical differences.  ICON : Quest for the Ring and The Seven Spirits of RA are the only two examples I can think of.  These games use a 40-column text mode where the character cells are 2 pixels high instead of the usual 8.  These games are unique in that they use many different text characters instead of solid block characters.

The two screenshots can give you an idea of the differences.  First look at this screenshot, using the standard IBM character set :



That is taken from the MACROCOM's ICON demo and that is how it is supposed to look.  Now lets look at same screen displayed with the Tandy characters :


I took the above screenshot using MESS, so there are some color errors due to its imperfect CRTC emulation which would not be seen on a real Tandy 1000.  But what will be noticeable on the Tandy 1000 is the text, Siegfried's sword arm, the heads of the snakes, the kobold's tail and the Rhine Maid's mouth.  The game itself, ICON : Quest for the Rings, is also affected.  The 7 Spirits of RA from Sir-Tech uses the same graphics engine and similar anomalies are present in that game.

Second, the composite video colors are also different from IBM's CGA, the PCjr. and Tandy.  Although IBM early and late CGA cards have differences in their colors, the differences are minor.  Games supporting composite color graphics almost always had their graphics displayed to the IBM CGA standards.  Displaying these games on a PCjr. or Tandy 1000 will show the wrong colors outside black, white and maybe the grays.  The TV or monitor's tint control may not be sufficient to correct the graphics to the IBM standard.  Compare the results here :

http://vogons.zetafleet.com/viewtopic.php?t=12319&postdays=0&postorder=asc&start=500

Third, some games will not display CGA graphics on a Tandy because they detect a Tandy 1000 and will only display Tandy 16-color graphics instead!  In that sense, the Tandy is not CGA compatible, again, through no fault of Tandy.  Some games offered a command line switch or install program to allow the user to manually specify the graphics mode.  16-color modes generally work better with higher speed processors, so a gamer may have sought to trade graphics quality for game performance on a lower powered machine.  Other games do not offer a way to bypass graphics autodetection.

Strangely enough, Tandy SX and TX and later machines with ISA slots will disable the internal Tandy Graphics if a CGA graphics card is installed.  Depending on how compatible the CGA card is, #1 should be solvable and #2 may be licked if the character ROM is close enough to IBMs.  #3 requires debug talent or replacing the Tandy BIOS ROM with a ROM without the Tandy 1000 identifier byte.  (FC00:0000, 21).

No comments: