Tandy Graphics Adapter
Tandy Graphics Adapter (TGA, also Tandy graphics) is a computer display standard for the Tandy 1000 series of IBM PC compatibles, which had compatibility with the video subsystem of the IBM PCjr but became a standard in its own right for a period in the 80s and 90s.
Tandy 1000 RL computer with a Tandy Video II display | |
Release date | 1984 |
---|---|
Cards | |
Entry-level | Tandy Video I |
High-end | Tandy Video II |
History | |
Predecessor | Color Graphics Adapter |
Successor | Enhanced Graphics Adapter |
PCjr graphics
The Tandy 1000 series began in 1984 as a clone of the IBM PCjr,[1] offering support for existing PCjr software.[2] As a result, its graphics subsystem was largely compatible.
The PCjr, released in 1983, had a graphics subsystem built around IBM's Video Gate Array[3] (not to be confused with their later Video Graphics Array) and an MC6845 CRTC[4] and extended on the capabilities of their Color Graphics Adapter (CGA), increasing the number of colors in each screen mode. CGA's 2-color mode could be displayed with four colors, and its 4-color mode could be displayed with all 16 colors.[5]
Since the PCjr was largely a failure while the Tandy 1000 enjoyed substantial success,[1] their shared hardware capabilities were regarded as Tandy features, not IBM features.
While there was no specific name for the Tandy graphics subsystem (Tandy's documentation simply called it the "Video System Logic"[6]), common parlance referred to it as TGA.[7] 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 was not compatible with EGA cards.
Hardware design
TGA graphics were built into the motherboards of the machines they were shipped in. The PCjr included a custom monitor with a unique 18-pin plug,[8] but offered an adapter to permit use of the same DE-9 monitor connector and pinout as IBM's CGA/EGA, connecting to the IBM Color Display.[9] The Tandy 1000 provided the DE-9 connector directly.[10]
The later Tandy 1000 SL and TL models offered an enhanced version of the TGA, still capable of displaying 16 colors but at an improved resolution of 640×200.[11]
Output capabilities
Tandy Video I / PCjr
Tandy 1000 systems before the Tandy 1000 SL, and the PCjr, have this type of video.[12] It offers several CGA-compatible modes and enhanced modes.[13]
CGA compatible modes:
- 320×200 in 4 colors from a 16 color (RGBI) hardware palette. Pixel aspect ratio of 1:1.2.
- 640×200 in 2 colors from 16. Pixel aspect ratio of 1:2.4
- 40×25 with 8×8 pixel font text mode (effective resolution of 320×200)
- 80×25 with 8×8 pixel font text mode (effective resolution of 640×200)
Both text modes could themselves be set to display in monochrome, or in 16 colors.
In addition to the CGA modes, it offers:
- 160×200 with 16 colors (equivalent to the graphical quality of many contemporary 8-bit home computers and games consoles, using the same 16kb memory size and machine bandwidth as the original CGA modes, and analogous to/somewhat able to share graphics assets with CGA's "composite color" mode whilst remaining displayable on RGB monitors)
- 320×200 with 16 colors
- 640×200 with 4 colors (from 16)
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.[7]
Tandy Video II or ETGA
Tandy 1000 SL-series, TL-series, and RL-series models have this type of video.[12] It offers all the same modes as Tandy Video I, plus one more non-CGA mode:
- 640x200 with 16 colors
Full CGA 16-color palette | |||
---|---|---|---|
black #000000 |
0 | gray #555555 |
8 |
blue #0000AA |
1 | light blue #5555FF |
9 |
green #00AA00 |
2 | light green #55FF55 |
10 |
cyan #00AAAA |
3 | light cyan #55FFFF |
11 |
red #AA0000 |
4 | light red #FF5555 |
12 |
magenta #AA00AA |
5 | light magenta #FF55FF |
13 |
brown #AA5500 |
6 | yellow #FFFF55 |
14 |
light gray #AAAAAA |
7 | white (high intensity) #FFFFFF |
15 |
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."[14][15] 28 of 66 games that Computer Gaming World tested in 1989 supported Tandy graphics.[16]
Incompatibilities
Strictly speaking, the PCjr video and Tandy 1000 graphics subsystems are not identical.
One specific 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 320x200 16-color or 640x200 with periodic black horizontal lines: a "venetian-blinds" effect.
It is also at least technically possible that software for the PCjr (that relies on the memory wrap-around at address 0xBC000) will not work correctly on a Tandy 1000.
Technical details
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.[17] 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 each.[17] Text modes uses 16 KB divided into 4 or 8 pages, for 80x25 or 40x25 text formats respectively.
In graphical modes, the base 128 KB of RAM is divided into eight 16 KB banks.[17] 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.[17] The PCjr also can independently map any 16 KB bank of base RAM to address 0xB8000 for CPU access, for CGA compatibility.[18]
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.[17] 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.
This scheme has two 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).[17]
The shared-RAM scheme does have some advantages: 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 could not do.
The Tandy 1000 computers do not incorporate the same cost-cutting measures (most of them have an 8237 DMA controller), but for compatibility with PCjr video, they use the same RAM-sharing scheme.
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.[17] 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:
- 320×200 in 4 colors: The three foreground colors can be freely chosen, in addition to the background color which could already be set on the CGA
- 640×200 in 2 colors: The background color can be freely chosen, rather than always being black, in addition to the foreground color which could already be set on the CGA.
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.
See also
- Plantronics Colorplus, a graphic board with similar capabilities
- List of 8-bit computer hardware palettes
- List of defunct graphics chips and card companies
References
- Loguidice, Bill; Barton, Matt (2014-02-24). Vintage Game Consoles: An Inside Look at Apple, Atari, Commodore, Nintendo, and the Greatest Gaming Platforms of All Time. CRC Press. ISBN 978-1-135-00651-8.
- Inc, InfoWorld Media Group (1985-03-11). InfoWorld. InfoWorld Media Group, Inc.
The new Tandy 1000, a PC compatible, also runs much PCjr software.
- Inc, Ziff Davis (1984-01-24). PC Mag. Ziff Davis, Inc.
- IBM PCjr Technical Reference (PDF). pp. 2–45.
- Inc, Ziff Davis (1984-01-24). PC Mag. Ziff Davis, Inc.
- Tandy 1000 HX Technical Reference Manual. p. 39.
- How To Run Tandy Software On the PCjr (PDF). PC Enterprises.
- Inc, Ziff Davis (1988-03-15). PC Mag. Ziff Davis, Inc.
- IBM PCjr Technical Reference (PDF). pp. 3–93.
- Purcaru, Bogdan Ion (2014-03-13). Games vs. Hardware. The History of PC video games: The 80's. Purcaru Ion Bogdan.
- "PC (PCjr / Tandy 1000 Series)". CVGM.net. Retrieved 19 June 2014.
- II.B.5. What is this weird video Tandy has?, Tandy 1000-series FAQ (Version 2.52 / October 25, 2005)
- Tandy 1000 Technical Reference.
- Loguidice, Bill; Barton, Matt (2014). Vintage Game Consoles: An Inside Look at Apple, Atari, Commodore, Nintendo, and the Greatest Gaming Platforms of All Time. CRC Press. pp. 96–97. ISBN 1135006512.
- Norton, Peter (1984-01-24). "Sound Abilities: The PCjr". PC Magazine. p. 137. Retrieved 23 October 2013.
- "The Owner's Guide to Tandy 16 Color". Computer Gaming World. August 1989. p. 14. Retrieved 4 November 2013.
- IBM PCjr Technical Reference
- IBM PCjr Technical Reference