• Please review our updated Terms and Rules here

Tandy 2000 text display

VileR

Veteran Member
Joined
Jul 21, 2011
Messages
654
Location
Israel
A couple of questions I have about how text output works on the Model 2000. I don't own one so I can't answer them myself, but call it historical research.

  1. In text mode, is 10x16-pixel character display a real thing or not?

    The 2000's graphics resolution is 640x400, and a matching 80x25 text mode has 8x16-dot characters. The RAM-based character generator seems to work with 8-dot-wide bitmaps too.
    But... to believe the manual, the on-board video (monochrome text only) is supposed to allow 10-dot wide characters:

    - The number of dot clocks per character clock can be either 8 or 10 (video system, p60)
    - This is selected by programming bits 5-7 in the Address Control Register (p63). Note how "10 dot per character" is called "normal video", and "8 dot per character" is called "color and graphic video".
    - In 10-dot mode, the Video Attribute Controller's "Backfill" feature sets the value of the two extra dots, in one of two ways depending on the chip's mask programming (p332).
    - There's another mention of the on-board video controller's "800 x 400 mode", saying that it doesn't play nice with the hi-res graphics board (p279).

    The Address Control Register lives at port 101h (p. E-2). Going back to p63... if we're dealing with "production level boards (Rev 3)", then writing "101xxxxx" to this port would get you 10x16 characters from the on-board video.
    Does the BIOS do that by default? - Nope: the disassembly has the relevant values under "_pcb_revtable:", near the end. For Rev.3 boards (as well as Rev.1 and Rev.2), the possible values for port 101h are all "110xxxxx", meaning 8-dot characters.

    Accordingly, every photo/video I can find online shows what looks like 8x16 text characters. At least, they look pretty much the same as the 8x16 font I have here: https://int10h.org/oldschool-pc-fonts/fontlist/font?tandy2k.
    So was the 10x16-dot mode ever used at all? Would it even work? Gotta wonder what's up with that.

    --------------

  2. Other than the 8x16 characters, the ROM also contains a table of 8x8 chars at FD30:0000 (https://github.com/Tandy2K/Tandy2000/blob/master/Documentation/T2KBIOS Disassembled/table_8x8.inc).
    The BIOS sets a couple of vectors to that location when it initializes, and those vectors are described in the programmer's reference p205-206: "The 8x8 character fonts are used by the medium-resolution graphics option board only".

    What is this "medium-resolution" graphics board? Could it be the semi-mythical "TV/Joystick option board" for TVs or TV-frequency monitors, as mentioned in the TRS-80 Model 2000 FAQ? I can't really find any info about either of those.
 
Last edited:
No info to add, but I likewise wonder if that TV/Joystick option board ever actually existed and what its capabilities were. Considering the marketing focus of the 2000 it seems completely out of left field and the Internet seems to know nothing about it.
 
No info to add, but I likewise wonder if that TV/Joystick option board ever actually existed and what its capabilities were. Considering the marketing focus of the 2000 it seems completely out of left field and the Internet seems to know nothing about it.
The TV/Joystick board was also going to include a sound generator of some kind (maybe the same 3-voice chip as in the IBM PCjr/Tandy 1000?). It was slated to be released in March 1984, but maybe the public's underwhelming response to the 2000 (and PCjr) combined with the development of the Tandy 1000 rendered it unnecessary.
 
The TV/Joystick board merits a few paragraphs in the 2000's BASIC manual, but the specs described there don't make a lot of sense; it strongly implies it only supports 40 column text in Screen 0 and 320x200 graphics in Screen 1, both in only "4 of 15 colors". (It specifically says it supports the PALETTE command for specifying those colors.) It's kind of remarkable its specs are that weak considering the computer it was meant to go in. If it did actually have a sound generator and, I dunno, supported more colors and/or had some kind of sprite capability then you could at least imagine that Tandy was trying to fill a niche kind of like the Mindset computer attempted to create. The product might also have made a tiny modicum of sense if it'd instead provided something closer to CGA graphics (IE, compatible memory arrangement, etc) to mildly increase the machine's PC compatibility, but it doesn't really line up with that either.
 
The TV/Joystick board merits a few paragraphs in the 2000's BASIC manual, but the specs described there don't make a lot of sense; it strongly implies it only supports 40 column text in Screen 0 and 320x200 graphics in Screen 1, both in only "4 of 15 colors". (It specifically says it supports the PALETTE command for specifying those colors.)
Tandy was not known for always getting their specifications right. They advertised their low-end CGA monitors (like the CM-5) as being capable of only 320x200 graphics, even though their photos of it actually showed it displaying 640x200 graphics!

4 colors out of 15 colors + background is the CGA 320x200 spec, and maybe it did support 80-column text but they knew it would be illegible on a TV so they didn't bother mentioning it. So I do think the TV/joystick board was meant to give some degree of CGA compatibility to the Tandy 2000.
 
Ah yes, the BASIC manual also makes it clear that "medium resolution" refers to the TV/Joystick option. More than 40 columns/320 pixels wouldn't have been very useful on a TV... 4 colors still ain't much, but at that resolution I guess you could still exploit NTSC artifacts and get 16.
Although the 'SCREEN' and graphics statements mention the capabilities of this board, 'SOUND' says nothing about any special capabilities, so it seems likely that a sound chip wasn't part of the deal.

The BASIC is also weird in providing 320x200 and 640x200 SCREEN options for the hi-res boards, although they're really just 640x400 with doubled pixels. I thought BASIC might use those 8x8 characters in these "modes", but it doesn't, at least if MAME is any indication.

(MAME only emulates the hi-res color graphics option, so it's no use in answering my 10x16-dot monochrome text question.)
 
Ah yes, the BASIC manual also makes it clear that "medium resolution" refers to the TV/Joystick option. More than 40 columns/320 pixels wouldn't have been very useful on a TV... 4 colors still ain't much, but at that resolution I guess you could still exploit NTSC artifacts and get 16.

It would still be a really odd omission, though, if the card *supported* an 80 column mode (either text or graphics equivalent to CGA "SCREEN 2") that the manual wouldn't mention it/slash/BASIC wouldn't support it. But on the flip side, it's really hard to imagine that Tandy would actually think a 40 column *only* card would be a product you could actually pair with a $3,000 computer so... it *must* have actually done 80 columns, at least in text mode?

I guess ultimately it's unknowable what it did unless an actual unit shows up or there's enough support for it embedded in BASIC/BIOS/whatever that a detailed enough disassembly could turn something up.
 
Back
Top