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