Jump to content

Tandy Graphics Adapter: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
 
(27 intermediate revisions by 9 users not shown)
Line 2: Line 2:
{{Infobox GPU
{{Infobox GPU
| name = Tandy Graphics Adapter
| name = Tandy Graphics Adapter
| image =Ega 320x200x16 ratio.png
| image = Tandy 1000 rl 1.jpg
| codename =
| codename =
| created = {{Start date and age|1984}}
| created = {{Start date and age|1984}}
| transistors =
| transistors =
| entry = Tandy Video I
| GPU Architecture =
| entry = Tandy Video I
| midrange =
| midrange =
| highend = Tandy Video II
| highend = Tandy Video II
| enthusiast =
| enthusiast =
| openglversion =
| openglversion =
| d3dversion =
| d3dversion =
| predecessor = [[Color Graphics Adapter]]
| predecessor = [[Color Graphics Adapter]]
| successor = [[Enhanced Graphics Adapter]]
| successor = [[Enhanced Graphics Adapter]]
| caption = Tandy 1000 RL computer with a Tandy Video II display
|caption=320×200 image using the full 16 color palette, an improvement over CGA}}
| 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.
'''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.
Line 26: Line 27:
Since the Tandy 1000 was much more successful than PCjr,{{r|loguidice2014}} their shared hardware capabilities became more associated with the Tandy brand than with IBM.
Since the Tandy 1000 was much more successful than PCjr,{{r|loguidice2014}} 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"<ref>{{Cite book|title=Tandy 1000 HX Technical Reference Manual|pages=39}}</ref>), common parlance referred to it as TGA.<ref name=":1">{{Cite book |last=Calabria |first=P. J. |url=https://www.brutman.com/PCjr/docs/PC_Enterprises_5_System_Modifications.pdf |title=How To Run Tandy Software On the PCjr |publisher=PC Enterprises |pages=74,75}}</ref> Where not otherwise stated, information in this article that describes the TGA also applies to the PCjr video subsystem.
While there is no specific name for the Tandy graphics subsystem (Tandy's documentation calls it the "Video System Logic"<ref>{{Cite book|title=Tandy 1000 HX Technical Reference Manual|pages=39}}</ref>), common parlance referred to it as TGA.<ref name=":1">{{Cite book |last=Calabria |first=P. J. |url=https://www.brutman.com/PCjr/docs/PC_Enterprises_5_System_Modifications.pdf |title=How To Run Tandy Software On the PCjr |publisher=PC Enterprises |pages=74, 75}}</ref> Where not otherwise stated, information in this article that describes the TGA also applies to the PCjr video subsystem.


While [[Enhanced Graphics Adapter|EGA]] would eventually deliver a superset of TGA graphics on IBM compatibles, software written for TGA is not compatible with EGA cards.{{citation needed|date=March 2023}}
While [[Enhanced Graphics Adapter|EGA]] would eventually deliver a superset of TGA graphics on IBM compatibles, software written for TGA is not compatible with EGA cards.{{citation needed|date=March 2023}}


==Output capabilities==
==Output capabilities==
=== Tandy Video I / PCjr ===
[[File:Screen color test PCjr 16colors 160x200.png|thumbnail|Sample image of simulated Tandy 16-color screen at 160×200]]
[[File:320x200 4c r corrected.png|thumb|Tandy Video I / PCjr {{resx|320x200}} x 4 colors]]
[[File:640x200 2c ar corrected.png|thumb|Tandy Video I / PCjr {{resx|640x200}} x 2 colors]]
[[File:160x200 16c ar corrected.png|thumb|Tandy Video I / PCjr {{resx|160x200}} x 16 colors]]
[[File:Ega 320x200x16 ratio.png|thumb|Tandy Video I / PCjr {{resx|320x200}} x 16 colors]]
[[File:Plantronics 640x400 corrected.png|thumb|Tandy Video I / PCjr {{resx|640x200}} x 4 colors]]


=== Tandy Video I / PCjr ===
Tandy 1000 systems before the Tandy 1000 SL, and the PCjr, have this type of video.<ref name="oldskool1">[ftp://ftp.oldskool.org/pub/tvdog/tandy1000/documents/1kfaq.txt II.B.5. What is this weird video Tandy has?], Tandy 1000-series FAQ (Version 2.52 / October 25, 2005)</ref> It offers several CGA-compatible modes and enhanced modes.<ref>{{Cite book |title=Tandy 1000 Technical Reference}}</ref>
Tandy 1000 systems before the Tandy 1000 SL, and the PCjr, have this type of video.<ref name="oldskool1">[ftp://ftp.oldskool.org/pub/tvdog/tandy1000/documents/1kfaq.txt II.B.5. What is this weird video Tandy has?], Tandy 1000-series FAQ (Version 2.52 / October 25, 2005)</ref> It offers several CGA-compatible modes and enhanced modes.<ref>{{Cite book |title=Tandy 1000 Technical Reference}}</ref>


CGA compatible modes:
CGA compatible modes:
* 320×200 in 4 colors from a 16 color ([[List of monochrome and RGB color formats#IBM PC graphics|4-bit RGBI)]] hardware palette. Pixel [[aspect ratio]] of 1:1.2.
* '''{{resx|320x200}}''' '''in 4 colors''' from a 16 color ([[List of monochrome and RGB color formats#IBM PC graphics|4-bit RGBI]]) hardware palette. Pixel [[aspect ratio]] of 1:1.2.
* 640×200 in 2 colors from 16. Pixel aspect ratio of 1:2.4
* '''{{resx|640x200}} 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)
* '''{{resx|40x25}} with {{resx|8x8}} pixel font text mode''' (effective resolution of {{resx|320x200}})
* 80×25 with 8×8 pixel font text mode (effective resolution of 640×200)
* '''{{resx|80x25}} with {{resx|8x8}} pixel font text mode''' (effective resolution of {{resx|640x200}})
Both text modes could themselves be set to display in monochrome, or in 16 colors.
Both text modes could themselves be set to display in monochrome, or in 16 colors.


In addition to the CGA modes, it offers:
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 16&nbsp;KB 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)
* '''{{resx|160x200}} with 16 colors''' (equivalent to the graphical quality of many contemporary 8-bit home computers and games consoles, using the same 16&nbsp;KB 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
* '''{{resx|320x200}} with 16 colors'''
* 640×200 with 4 colors (from 16)
* '''{{resx|640x200}} 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.<ref name=":1" />
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.<ref name=":1" />
===Tandy Video II / ETGA===

[[File:640x200 16c ETGA ar corrected.png|thumb|Tandy Video II / ETGA {{resx|640x200}} x 16 colors]]
===Tandy Video II or ETGA===
[[File:Tandy 1000 rl 1.jpg|thumb|Tandy 1000 RL computer with a Tandy Video II display]]
Tandy 1000 SL-series, TL-series, and RL-series models have this type of video.<ref name="oldskool1" />
Tandy 1000 SL-series, TL-series, and RL-series models have this type of video.<ref name="oldskool1" />
It offers the same modes as Tandy Video I, plus one more non-CGA mode:
It offers the same modes as Tandy Video I, plus one more non-CGA mode:<ref name=":0" />
*640×200 with 16 colors
*'''{{resx|640x200}} with 16 colors'''
== Popularity ==
== Popularity ==
With built-in joystick ports, 16-color graphics and multichannel sound, the Tandy 1000 was considered the best platform for [[PC game|IBM PC-compatible games]] before the VGA era, and the combination of its graphics and sound became a de facto standard, "'''Tandy compatible'''".<ref name="loguidice2014">{{cite book |author1=Loguidice, Bill |url=https://books.google.com/books?id=wZnpAgAAQBAJ&pg=PA96 |title=Vintage Game Consoles: An Inside Look at Apple, Atari, Commodore, Nintendo, and the Greatest Gaming Platforms of All Time |author2=Barton, Matt |publisher=CRC Press |year=2014 |isbn=978-1135006518 |pages=96–97}}</ref>
With built-in joystick ports, 16-color graphics and multichannel sound, the Tandy 1000 was considered the best platform for [[PC game|IBM PC-compatible games]] before the VGA era, and the combination of its graphics and sound became a de facto standard, "'''Tandy compatible'''".<ref name="loguidice2014">{{cite book |author1=Loguidice, Bill |url=https://books.google.com/books?id=wZnpAgAAQBAJ&pg=PA96 |title=Vintage Game Consoles: An Inside Look at Apple, Atari, Commodore, Nintendo, and the Greatest Gaming Platforms of All Time |author2=Barton, Matt |publisher=CRC Press |year=2014 |isbn=978-1135006518 |pages=96–97}}</ref>


28 of 66 games that ''[[Computer Gaming World]]'' tested in 1989 supported Tandy graphics.<ref name="cgw198908">{{Cite magazine |date=August 1989 |title=The Owner's Guide to Tandy 16 Color |url=https://www.cgwmuseum.org/galleries/issues/cgw_62.pdf |magazine=Computer Gaming World |pages=14}}</ref> Titles such as [[Cisco Heat]], [[Indiana Jones and the Last Crusade: The Graphic Adventure|Indiana Jones and the Last Crusade]], [[Loom (video game)|Loom]], [[Magic Pockets]], [[Oh No! More Lemmings]], [[Out of this World game|Out of This World]], [[OverKill (video game)|Overkill]], [[Prince of Persia (1989 video game)|Prince of Persia]], [[The Secret of Monkey Island]] and [[SimCity (1989 video game)|SimCity]] are indicated as supporting PCjr/Tandy graphics.<ref>{{Cite web |title=RGB Classic Games - PCjr/Tandy games |url=https://www.classicdosgames.com/video/tandy.html |access-date=2023-04-13 |website=www.classicdosgames.com}}</ref><ref>{{Cite web |title=Video Game Search |url=https://www.uvlist.net/gamesearch/?ftag=display-tga |access-date=2023-04-13 |website=Universal Videogame List |language=en}}</ref>
28 of 66 games that ''[[Computer Gaming World]]'' tested in 1989 supported Tandy graphics.<ref name="cgw198908">{{Cite magazine |date=August 1989 |title=The Owner's Guide to Tandy 16 Color |url=https://www.cgwmuseum.org/galleries/issues/cgw_62.pdf |magazine=Computer Gaming World |pages=14}}</ref> Titles such as [[Cisco Heat]], [[Indiana Jones and the Last Crusade: The Graphic Adventure|Indiana Jones and the Last Crusade]], [[Loom (video game)|Loom]], [[Magic Pockets]], [[Oh No! More Lemmings]], [[Out of this World game|Out of This World]], [[OverKill (video game)|Overkill]], [[Prince of Persia (1989 video game)|Prince of Persia]], [[The Secret of Monkey Island]] and [[SimCity (1989 video game)|SimCity]] are indicated as supporting PCjr/Tandy graphics.<ref>{{Cite web |title=RGB Classic Games - PCjr/Tandy games |url=https://www.classicdosgames.com/video/tandy.html |access-date=2023-04-13 |website=www.classicdosgames.com}}</ref><ref>{{Cite web |title=Video Game Search |url=https://www.uvlist.net/gamesearch/?ftag=display-tga |access-date=2023-04-13 |website=Universal Videogame List |language=en}}</ref>


A [[display driver]] for Tandy graphics hardware was supplied with [[Windows 2.0x|Windows 2.0]], and could be used on [[Windows 3.0]].<ref>{{Cite web |title=Tandy 1000 Utility Programs |url=http://www.oldskool.org/guides/tvdog/utilities.html |access-date=2023-04-13 |website=www.oldskool.org}}</ref>
A [[display driver]] for Tandy graphics hardware was supplied with [[Windows 2.0x|Windows 2.0]], and could be used on [[Windows 3.0]].<ref>{{Cite web |title=Tandy 1000 Utility Programs |url=http://www.oldskool.org/guides/tvdog/utilities.html |access-date=2023-04-13 |website=www.oldskool.org}}</ref>


== Hardware design ==
== Hardware design ==
TGA graphics are built into the motherboards of Tandy computers. The PCjr uses a custom monitor with a unique 18-pin plug,<ref>{{Cite news |date=March 15, 1988 |title=Salvaging Monitor JR |pages=28 |work=PC Magazine |url=https://books.google.com/books?id=ZMFPZz0ZIxYC&q=pcjr+ega+compatibility&pg=PA27}}</ref> but an adapter (with the same [[DE-9]] connector and [[Color Graphics Adapter#DE-9 connector for RGBI monitor|pinout as IBM's CGA/EGA]]) can connect it to the [[List of IBM products#IBM PC components and peripherals|IBM Color Display]] or similar [[4-bit computing|4-bit]] digital ([[Transistor-transistor logic|TTL]]) [[RGB(I)|RGBI]] monitor.<ref>{{Cite book |url=https://archive.org/details/IBMPCJrTechnicalReference_201705 |title=IBM PCjr Technical Reference |publisher=IBM |year=1983 |pages=3-83, 3-93}}</ref> The Tandy 1000 provides the DE-9 connector directly.<ref>{{Cite book |last=Purcaru |first=Bogdan Ion |url=https://books.google.com/books?id=lB4PAwAAQBAJ&q=tandy%201000%209%20pin&pg=PA207 |title=Games vs. Hardware. The History of PC video games: The 80's |date=2014-03-13 |publisher=Purcaru Ion Bogdan |pages=207 |language=en}}</ref>
{| class="wikitable" style="float:right;"

! colspan="4" | Tandy/CGA RGBI hardware palette
The monitor is responsible for translating the 4-bit digital levels into 16 colors, as shown it the following table (actual colors could vary somewhat between monitors):<ref name=":5">{{Cite book |url=http://minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Color%20Display%20(5154).pdf |title=IBM Personal Computer Hardware Reference Library: IBM Enhanced Color Display |page=4}}</ref><ref>The color brown, represented by R=1, G=1, B=0, I=0, is an exception; whereas a straight interpretation of these bit values would resolve this color as dark yellow, the intensity of the green component is reduced, to produce brown, for only this one [[4-bit computing|4-bit]] value. See [[List of 8-bit computer hardware palettes#CGA|this page]] for details. This special RGBI interpretation for brown is performed in the monitor; the IBM 5153 monitor designed for the CGA performs it, but some early third-party monitors did not.</ref><ref>International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-42 to D-43.</ref><ref>{{Cite book |url=https://archive.org/details/tandy-service-manual-cm-2-color-monitor-26-3212 |title=Tandy CM-2 Color Monitor Service Manual |page=48}}</ref><ref>{{Cite book |title=Tandy CM-4 Color Monitor Service Manual |page=41}}</ref><ref>{{Cite book |url=https://archive.org/details/Sams_Computerfacts_Radio_Shack_Model_CM11_Monitor_1988_Howard_Sams |title=Sams&Company ComputerFacts Technical Service Data: Magnavox® Model 7BM613074G - Radio Shack® Model CM11 Monitor |year=1988 |page=11}}</ref><ref name="viler">{{cite web |date=2022-06-11 |title=The IBM 5153's True CGA Palette and Color Output |url=https://int10h.org/blog/2022/06/ibm-5153-color-true-cga-palette/ |access-date=2024-05-18 |publisher=VileR}}</ref>
{| class="wikitable"
! colspan="10" | Tandy/CGA RGBI hardware palette
|-
!Displayed Color
!R
!G
!B
!I
!Displayed Color
!R
!G
!B
!I
|-
|-
| style="color:white; background:#000;" | Black
| style="color:white; background:#000;" | Black
| 0
| 0
|0
|0
|0
| style="color:white; background:#555;" | Gray
| style="color:white; background:#555;" | Gray
| 8
| 0
|0
|0
|1
|-
|-
| style="color:white; background:#00a;" | Blue
| style="color:white; background:#00a;" | Blue
| 1
| 0
|0
|1
|0
| style="color:white; background:#55f;" | Light Blue
| style="color:white; background:#55f;" | Light Blue
| 9
| 0
|0
|1
|1
|-
|-
| style="color:white; background:#0a0;" | Green
| style="color:white; background:#0a0;" | Green
| 2
| 0
|1
|0
|0
| style="color:black; background:#5f5;" | Light Green
| style="color:black; background:#5f5;" | Light Green
| 10
| 0
|1
|0
|1
|-
|-
| style="color:white; background:#0aa;" | Cyan
| style="color:white; background:#0aa;" | Cyan
| 3
| 0
|1
|1
|0
| style="color:black; background:#5ff;" | Light Cyan
| style="color:black; background:#5ff;" | Light Cyan
| 11
| 0
|1
|1
|1
|-
|-
| style="color:white; background:#a00;" | Red
| style="color:white; background:#a00;" | Red
| 4
| 1
|0
|0
|0
| style="color:black; background:#f55;" | Light Red
| style="color:black; background:#f55;" | Light Red
| 12
| 1
|0
|0
|1
|-
|-
| style="color:white; background:#a0a;" | Magenta
| style="color:white; background:#a0a;" | Magenta
| 5
| 1
|0
|1
|0
| style="color:black; background:#f5f;" | Light Magenta
| style="color:black; background:#f5f;" | Light Magenta
| 13
| 1
|0
|1
|1
|-
|-
| style="color:white; background:#a50;" | Brown
| style="color:white; background:#a50;" | Brown
| 6
| 1
|1
|0
|0
| style="color:black; background:#ff5;" | Yellow
| style="color:black; background:#ff5;" | Yellow
| 14
| 1
|1
|0
|1
|-
|-
| style="color:black; background:#aaa;" | Light Gray
| style="color:black; background:#aaa;" | Light Gray
| 7
| 1
|1
|1
|0
| style="color:black; background:#fff;" | White
| style="color:black; background:#fff;" | White
| 15
| 1
|1
|1
|1
|}
|}
TGA graphics are built into the motherboards of Tandy computers. The PCjr uses a custom monitor with a unique 18-pin plug,<ref>{{Cite news |date=March 15, 1988 |title=Salvaging Monitor JR |pages=28 |work=PC Magazine |url=https://books.google.com/books?id=ZMFPZz0ZIxYC&q=pcjr+ega+compatibility&pg=PA27}}</ref> but an adapter (with the same [[DE-9]] connector and [[Color Graphics Adapter#DE-9 connector for RGBI monitor|pinout as IBM's CGA/EGA]]) can connect it to the [[List of IBM products#IBM PC components and peripherals|IBM Color Display]] or similar [[4-bit computing|4-bit]] digital ([[Transistor-transistor logic|TTL]]) [[RGB(I)|RGBI]] monitor.<ref>{{Cite book |url=https://archive.org/details/IBMPCJrTechnicalReference_201705 |title=IBM PCjr Technical Reference |publisher=IBM |year=1983 |pages=3-83, 3-93}}</ref> The Tandy 1000 provides the DE-9 connector directly.<ref>{{Cite book |last=Purcaru |first=Bogdan Ion |url=https://books.google.com/books?id=lB4PAwAAQBAJ&q=tandy%201000%209%20pin&pg=PA207 |title=Games vs. Hardware. The History of PC video games: The 80's |date=2014-03-13 |publisher=Purcaru Ion Bogdan |pages=207 |language=en}}</ref> 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 640×200.<ref>{{cite web |last=Kellett |first=Andy |date=2014 |title=PC (PCjr / Tandy 1000 Series) |url=http://www.cvgm.net/demovibes/platform/86/ |archive-url=https://web.archive.org/web/20160304064510/http://www.cvgm.net/demovibes/platform/86/ |archive-date=2016-03-04 |access-date=19 June 2014 |website=Computer & Video Game Music}}</ref>
The later Tandy 1000 SL and TL models offered an enhanced version of the TGA, still limited to displaying 16 colors but at an improved resolution of {{resx|640x200}}.<ref name="oldskool1" /><ref name=":0">{{cite web |last=Kellett |first=Andy |date=2014 |title=PC (PCjr / Tandy 1000 Series) |url=http://www.cvgm.net/demovibes/platform/86/ |archive-url=https://web.archive.org/web/20160304064510/http://www.cvgm.net/demovibes/platform/86/ |archive-date=2016-03-04 |access-date=19 June 2014 |website=Computer & Video Game Music}}</ref>

=== 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.<ref name=":2" /> 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:

*'''{{resx|320x200}} 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
*'''{{resx|640x200}}''' '''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. VGA retained this 16 x 6-bit "internal palette" and added another, cascaded 256 x 18-bit RAMDAC "external palette".


=== Shared RAM ===
=== 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.<ref name=":2">IBM PCjr Technical Reference</ref> This 64 KB or 128 KB of ''base RAM'' is special in that it is shared with the PCjr video subsystem.
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.<ref name=":2">IBM PCjr Technical Reference</ref> 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.<ref name=":2" /> Text modes uses 16 KB divided into 4 or 8 pages, for 80×25 or 40×25 text formats respectively.
TGA video modes use either 16 KB or 32 KB of RAM.<ref name=":2" /> Text modes use 16 KB divided into 4 or 8 pages, for 80×25 or 40×25 text formats respectively; any part of the 16 KB not used for text display pages can be used as general RAM.


In graphical modes, the base 128 KB of RAM is divided into eight 16 KB banks.<ref name=":2" /> 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.<ref name=":2" /> The PCjr can also independently map any 16 KB bank of base RAM to address 0xB8000 for CPU access, for CGA compatibility.<ref name=":2" />
In graphical modes, the base 128 KB of RAM is divided into eight 16 KB banks.<ref name=":2" /> 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.<ref name=":2" /> The PCjr can also independently map any 16 KB bank of base RAM to address 0xB8000 for CPU access, for CGA compatibility.<ref name=":2" />
Line 123: Line 199:


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.
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.

===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.<ref name=":2" /> 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.


==Incompatibilities==
==Incompatibilities==
{{Unsourced section|date=March 2023}}
{{Unreferenced section|date=March 2023}}
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 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 320×200 16-color or 640×200 with periodic black horizontal lines: a "venetian-blinds" effect.
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 {{resx|320x200}} 16-color or {{resx|640x200}} 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.
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.
Line 152: Line 217:


{{Computer display standard}}
{{Computer display standard}}
{{TRS-80 and Tandy computers}}


[[Category:Computer display standards]]
[[Category:Computer display standards]]

Latest revision as of 08:19, 14 November 2024

Tandy Graphics Adapter
Tandy 1000 RL computer with a Tandy Video II display
Release date1984; 40 years ago (1984)
ArchitectureIBM Video Gate Array, Motorola MC6845
Cards
Entry-levelTandy Video I
High-endTandy Video II
History
PredecessorColor Graphics Adapter
SuccessorEnhanced Graphics Adapter

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

[edit]

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 is largely compatible.

The PCjr, released in 1983, has a graphics subsystem built around IBM's Video Gate Array[3] (not to be confused with the later Video Graphics Array) and an MC6845 CRTC[4] 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.[5]

Since the Tandy 1000 was much more successful than PCjr,[1] 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"[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 is not compatible with EGA cards.[citation needed]

Output capabilities

[edit]

Tandy Video I / PCjr

[edit]
Tandy Video I / PCjr 320 × 200 x 4 colors
Tandy Video I / PCjr 640 × 200 x 2 colors
Tandy Video I / PCjr 160 × 200 x 16 colors
Tandy Video I / PCjr 320 × 200 x 16 colors
Tandy Video I / PCjr 640 × 200 x 4 colors

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

CGA compatible modes:

  • 320 × 200 in 4 colors from a 16 color (4-bit 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 16 KB 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 / ETGA

[edit]
Tandy Video II / ETGA 640 × 200 x 16 colors

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

  • 640 × 200 with 16 colors

Popularity

[edit]

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".[1]

28 of 66 games that Computer Gaming World tested in 1989 supported Tandy graphics.[11] 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.[12][13]

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

Hardware design

[edit]

TGA graphics are built into the motherboards of Tandy computers. The PCjr uses a custom monitor with a unique 18-pin plug,[15] 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.[16] The Tandy 1000 provides the DE-9 connector directly.[17]

The monitor is responsible for translating the 4-bit digital levels into 16 colors, as shown it the following table (actual colors could vary somewhat between monitors):[18][19][20][21][22][23][24]

Tandy/CGA RGBI hardware palette
Displayed Color R G B I Displayed Color R G B I
Black 0 0 0 0 Gray 0 0 0 1
Blue 0 0 1 0 Light Blue 0 0 1 1
Green 0 1 0 0 Light Green 0 1 0 1
Cyan 0 1 1 0 Light Cyan 0 1 1 1
Red 1 0 0 0 Light Red 1 0 0 1
Magenta 1 0 1 0 Light Magenta 1 0 1 1
Brown 1 1 0 0 Yellow 1 1 0 1
Light Gray 1 1 1 0 White 1 1 1 1

The later Tandy 1000 SL and TL models offered an enhanced version of the TGA, still limited to displaying 16 colors but at an improved resolution of 640 × 200.[8][10]

Programmable palette

[edit]

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.[25] 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. VGA retained this 16 x 6-bit "internal palette" and added another, cascaded 256 x 18-bit RAMDAC "external palette".

Shared RAM

[edit]

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.[25] 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.[25] Text modes use 16 KB divided into 4 or 8 pages, for 80×25 or 40×25 text formats respectively; any part of the 16 KB not used for text display pages can be used as general RAM.

In graphical modes, the base 128 KB of RAM is divided into eight 16 KB banks.[25] 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.[25] The PCjr can also independently map any 16 KB bank of base RAM to address 0xB8000 for CPU access, for CGA compatibility.[25]

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.[25] 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).[25]

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

[edit]

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 320 × 200 16-color or 640 × 200 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

[edit]

References

[edit]
  1. ^ a b c 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 978-1135006518.
  2. ^ Bartimo, Jim (March 11, 1985). "Tandy Revamps Product Line". InfoWorld. p. 28.
  3. ^ Norton, Peter (1984-01-24). "Sound Abilities: The PCjr". PC Magazine. p. 137. Retrieved 23 October 2013.
  4. ^ IBM PCjr Technical Reference. IBM. 1983. pp. 2–45.
  5. ^ Norton, Peter (January 24, 1984). "Screening the PCjr's Color, Video, And Memory Options". PC Magazine. p. 130.
  6. ^ Tandy 1000 HX Technical Reference Manual. p. 39.
  7. ^ a b Calabria, P. J. How To Run Tandy Software On the PCjr (PDF). PC Enterprises. pp. 74, 75.
  8. ^ a b c II.B.5. What is this weird video Tandy has?, Tandy 1000-series FAQ (Version 2.52 / October 25, 2005)
  9. ^ Tandy 1000 Technical Reference.
  10. ^ a b Kellett, Andy (2014). "PC (PCjr / Tandy 1000 Series)". Computer & Video Game Music. Archived from the original on 2016-03-04. Retrieved 19 June 2014.
  11. ^ "The Owner's Guide to Tandy 16 Color" (PDF). Computer Gaming World. August 1989. p. 14.
  12. ^ "RGB Classic Games - PCjr/Tandy games". www.classicdosgames.com. Retrieved 2023-04-13.
  13. ^ "Video Game Search". Universal Videogame List. Retrieved 2023-04-13.
  14. ^ "Tandy 1000 Utility Programs". www.oldskool.org. Retrieved 2023-04-13.
  15. ^ "Salvaging Monitor JR". PC Magazine. March 15, 1988. p. 28.
  16. ^ IBM PCjr Technical Reference. IBM. 1983. pp. 3–83, 3–93.
  17. ^ Purcaru, Bogdan Ion (2014-03-13). Games vs. Hardware. The History of PC video games: The 80's. Purcaru Ion Bogdan. p. 207.
  18. ^ IBM Personal Computer Hardware Reference Library: IBM Enhanced Color Display (PDF). p. 4.
  19. ^ The color brown, represented by R=1, G=1, B=0, I=0, is an exception; whereas a straight interpretation of these bit values would resolve this color as dark yellow, the intensity of the green component is reduced, to produce brown, for only this one 4-bit value. See this page for details. This special RGBI interpretation for brown is performed in the monitor; the IBM 5153 monitor designed for the CGA performs it, but some early third-party monitors did not.
  20. ^ International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-42 to D-43.
  21. ^ Tandy CM-2 Color Monitor Service Manual. p. 48.
  22. ^ Tandy CM-4 Color Monitor Service Manual. p. 41.
  23. ^ Sams&Company ComputerFacts Technical Service Data: Magnavox® Model 7BM613074G - Radio Shack® Model CM11 Monitor. 1988. p. 11.
  24. ^ "The IBM 5153's True CGA Palette and Color Output". VileR. 2022-06-11. Retrieved 2024-05-18.
  25. ^ a b c d e f g h IBM PCjr Technical Reference