Tandy Graphics Adapter Explained

Tandy Graphics Adapter
Entry:Tandy Video I
Highend:Tandy Video II
Predecessor:Color Graphics Adapter
Successor:Enhanced Graphics Adapter
Architecture:IBM Video Gate Array, Motorola MC6845

Tandy Graphics Adapter (TGA, also Tandy graphics) is a computer display standard for the Tandy 1000 series of IBM PC compatibles, which has compatibility with the video subsystem of the IBM PCjr but became a standard in its own right.

PCjr graphics

The Tandy 1000 series began in 1984 as a clone of the IBM PCjr, offering support for existing PCjr software.[1] As a result, its graphics subsystem is largely compatible.

The PCjr, released in 1983, has a graphics subsystem built around IBM's Video Gate Array[2] (not to be confused with the later Video Graphics Array) and an MC6845 CRTC[3] and extends on the capabilities of the Color Graphics Adapter (CGA), increasing the number of colors in each screen mode. CGA's 2-color mode can be displayed with four colors, and its 4-color mode can be displayed with all 16 colors.[4]

Since the Tandy 1000 was much more successful than PCjr, their shared hardware capabilities became more associated with the Tandy brand than with IBM.

While there is no specific name for the Tandy graphics subsystem (Tandy's documentation calls it the "Video System Logic"[5]), common parlance referred to it as TGA.[6] Where not otherwise stated, information in this article that describes the TGA also applies to the PCjr video subsystem.

While EGA would eventually deliver a superset of TGA graphics on IBM compatibles, software written for TGA is not compatible with EGA cards.

Output capabilities

Tandy Video I / PCjr

Tandy 1000 systems before the Tandy 1000 SL, and the PCjr, have this type of video.[7] It offers several CGA-compatible modes and enhanced modes.[8]

CGA compatible modes:

Both text modes could themselves be set to display in monochrome, or in 16 colors.

In addition to the CGA modes, it offers:

Some games detect the Tandy hardware and display enhanced graphics in Tandy mode even when their CGA display mode is selected, while others offer the option to select "Tandy" graphics.

Tandy Video II or ETGA

Tandy 1000 SL-series, TL-series, and RL-series models have this type of video.It offers the same modes as Tandy Video I, plus one more non-CGA mode:

Popularity

With built-in joystick ports, 16-color graphics and multichannel sound, the Tandy 1000 was considered the best platform for IBM PC-compatible games before the VGA era, and the combination of its graphics and sound became a de facto standard, "Tandy compatible".[9]

28 of 66 games that Computer Gaming World tested in 1989 supported Tandy graphics.[10] Titles such as Cisco Heat, Indiana Jones and the Last Crusade, Loom, Magic Pockets, Oh No! More Lemmings, Out of This World, Overkill, Prince of Persia, The Secret of Monkey Island and SimCity are indicated as supporting PCjr/Tandy graphics.[11] [12]

A display driver for Tandy graphics hardware was supplied with Windows 2.0, and could be used on Windows 3.0.[13]

Hardware design

Tandy/CGA RGBI hardware palette
Black0Gray8
Blue1Light Blue9
Green2Light Green10
Cyan3Light Cyan11
Red4Light Red12
Magenta5Light Magenta13
Brown6Yellow14
Light Gray 7White15
TGA graphics are built into the motherboards of Tandy computers. The PCjr uses a custom monitor with a unique 18-pin plug,[14] but an adapter (with the same DE-9 connector and pinout as IBM's CGA/EGA) can connect it to the IBM Color Display or similar 4-bit digital (TTL) RGBI monitor.[15] The Tandy 1000 provides the DE-9 connector directly.[16] The monitor is responsible for translating the 4-bit digital levels into 16 colors, as shown it the table "Tandy/CGA RGBI hardware palette" (actual colors could vary somewhat between monitors).

The later Tandy 1000 SL and TL models offers an enhanced version of the TGA, still capable of displaying 16 colors but at an improved resolution of .[17]

Programmable palette

When operating in the CGA video modes which use 1 or 2 bits per pixel, TGA allows remapping of the 2 or 4 palette entries to any of the 16 colors in the CGA gamut via programmable palette control registers. This allows software to use the CGA modes without being constrained to the three hardwired palettes of the actual CGA.

The following improvements in color choice are available in the CGA graphics modes:

The palette mapping logic is always active, even in text modes, so it is possible to cause certain text to change in appearance (appear, disappear, cycle colors, etc.) just by changing the palette, without making any changes to the character attribute bytes in RAM.

The PCjr/TGA programmable palette was carried over to the IBM EGA, where it was extended to 6-bit entries for 64 colors, and so on for the expanded palette of VGA.

Shared RAM

Unlike every other IBM-designed PC video standard, TGA uses some of the main system RAM as video RAM. The PCjr had 64 KB of built-in RAM on the mainboard, and an additional 64 KB can be installed via a special card that plugs into a dedicated slot on the PCjr mainboard.[18] This 64 KB or 128 KB of base RAM is special in that it is shared with the PCjr video subsystem.

TGA video modes use either 16 KB or 32 KB of RAM. Text modes uses 16 KB divided into 4 or 8 pages, for 80×25 or 40×25 text formats respectively.

In graphical modes, the base 128 KB of RAM is divided into eight 16 KB banks. The PCjr can use any bank for video generation, in a video mode that uses 16 KB. In a mode that uses 32 KB, it can use any even bank concatenated with the next higher odd bank. The PCjr can also independently map any 16 KB bank of base RAM to address 0xB8000 for CPU access, for CGA compatibility.

Apart from address 0xB8000, the CPU can access any bank at any time via its native address in the first 128 KB of the address space. The first bank overlaps the interrupt vector table of the x86 CPU and the data area used by the BIOS, so it is generally not usable for graphics.

Using system memory has advantages: It saves the cost of dedicated video RAM, and the dynamic RAM is refreshed by the 6845 CRT controller as long as the video is running, so there is no need for separate DRAM refresh circuitry. In the IBM PC XT upon which the PCjr is based, DRAM refresh is performed by one channel of the 8237 DMA controller, triggered by one channel of the 8253 programmable timer, while in the PCjr the 8237 is eliminated and the timer channel is repurposed (to work around a complication of other cost-cutting in the keyboard interface).

Up to almost 128 KB of RAM can be used for video (if software is mostly in ROM - e.g. on PCjr cartridges - or in RAM above the first 128 KB), and the displayed video banks can be switched instantaneously to implement double-buffering (or triple-buffering, or up to 7-fold buffering in 16 KB video modes) for smooth full-screen animation, something the CGA cannot do.

The Tandy 1000 computers do not incorporate the PCjr's cost-cutting measures (most of them have an 8237 DMA controller), but for compatibility with PCjr video, they use the same RAM-sharing scheme.

Incompatibilities

The PCjr video and Tandy 1000 graphics subsystems are not identical. One difference is in the size of the video memory aperture at address 0xB8000. While the PCjr video hardware can use up to 32 KB of RAM for the video buffer, it emulates the CGA precisely by making only 16 KB of this available at address 0xB8000. Like the true CGA, the 16 KB of RAM at 0xB8000 is aliased at address 0xBC000.

The Tandy hardware, in contrast, makes the full 32 KB of selected video RAM available at 0xB8000. This difference causes some software written for Tandy graphics not to work correctly on a PCjr, displaying images in 16-color or with periodic black horizontal lines: a "venetian-blinds" effect.

It is possible that software for the PCjr that relies on the memory wrap-around at address 0xBC000 will not work correctly on a Tandy 1000.

See also

Notes and References

  1. News: Bartimo . Jim . March 11, 1985 . Tandy Revamps Product Line . 28 . InfoWorld .
  2. News: Norton . Peter . 1984-01-24 . Sound Abilities: The PCjr . 137 . PC Magazine . 23 October 2013.
  3. Book: IBM PCjr Technical Reference . IBM . 1983 . 2–45.
  4. News: Norton . Peter . January 24, 1984 . Screening the PCjr's Color, Video, And Memory Options . 130 . PC Magazine .
  5. Book: Tandy 1000 HX Technical Reference Manual. 39.
  6. Book: Calabria, P. J. . How To Run Tandy Software On the PCjr . PC Enterprises . 74, 75.
  7. ftp://ftp.oldskool.org/pub/tvdog/tandy1000/documents/1kfaq.txt II.B.5. What is this weird video Tandy has?
  8. Book: Tandy 1000 Technical Reference.
  9. Book: Loguidice, Bill . Vintage Game Consoles: An Inside Look at Apple, Atari, Commodore, Nintendo, and the Greatest Gaming Platforms of All Time . Barton, Matt . CRC Press . 2014 . 978-1135006518 . 96–97.
  10. August 1989 . The Owner's Guide to Tandy 16 Color . Computer Gaming World . 14.
  11. Web site: RGB Classic Games - PCjr/Tandy games . 2023-04-13 . www.classicdosgames.com.
  12. Web site: Video Game Search . 2023-04-13 . Universal Videogame List . en.
  13. Web site: Tandy 1000 Utility Programs . 2023-04-13 . www.oldskool.org.
  14. News: March 15, 1988 . Salvaging Monitor JR . 28 . PC Magazine .
  15. Book: IBM PCjr Technical Reference . IBM . 1983 . 3-83, 3-93.
  16. Book: Purcaru, Bogdan Ion . Games vs. Hardware. The History of PC video games: The 80's . 2014-03-13 . Purcaru Ion Bogdan . 207 . en.
  17. Web site: Kellett . Andy . 2014 . PC (PCjr / Tandy 1000 Series) . https://web.archive.org/web/20160304064510/http://www.cvgm.net/demovibes/platform/86/ . 2016-03-04 . 19 June 2014 . Computer & Video Game Music.
  18. IBM PCjr Technical Reference