277 lines
11 KiB
Plaintext
277 lines
11 KiB
Plaintext
|
Character Attributes on Video Boards for the IBM PC
|
||
|
|
||
|
1. Introduction
|
||
|
|
||
|
This document describes the result of some testing of character attributes
|
||
|
on various video adaptor boards for the IBM PC. These boards may vary in
|
||
|
their handling of the attribute byte, especially when emulating the IBM
|
||
|
Monochrome Display and Adaptor; thus text which is readable on one board
|
||
|
may not be visible on another, or its characteristics may be different.
|
||
|
|
||
|
Currently, only the IBM Monochrome Display and Printer Adaptor, the
|
||
|
Tecmar Graphics Master and the IBM Enhanced Graphics Adaptor are described.
|
||
|
Information on other boards is solicited.
|
||
|
|
||
|
|
||
|
2. Terminology
|
||
|
|
||
|
The following diagram shows the attribute byte layout (the byte which follows
|
||
|
each character byte in the regen memory of the video adaptor boards). The
|
||
|
bit fields "B", "bg", and "fg" will be referred to in the following discussion.
|
||
|
|
||
|
|
||
|
+---+---+---+---+---+---+---+---+
|
||
|
| B | bg | fg |
|
||
|
+---+---+---+---+---+---+---+---+
|
||
|
bit: 7 6 5 4 3 2 1 0
|
||
|
(msb) (lsb)
|
||
|
|
||
|
|
||
|
Abbreviations for video boards:
|
||
|
|
||
|
CGMA = IBM Color/Graphics Monitor Adaptor
|
||
|
MDPA = IBM Monochrome Display and Printer Adaptor
|
||
|
EGA = IBM Enhanced Graphics Adaptor
|
||
|
TGM = Tecmar Graphics Master
|
||
|
|
||
|
|
||
|
3. Blink/Bright bit ("B")
|
||
|
|
||
|
First, port 3D8 bit 5 of the IBM Color/Graphics adaptor is supposed to control
|
||
|
the function of the "B" bit:
|
||
|
|
||
|
port 3D8 bit 5 = 0 ==> B bit = 0, dim background colors
|
||
|
B bit = 1, bright background colors
|
||
|
port 3D8 bit 5 = 1 ==> B bit = 0, char not blinking
|
||
|
B bit = 1, char blinking
|
||
|
|
||
|
On the IBM CGMA, this works as described.
|
||
|
|
||
|
On the MDPA, bit 5 of 3B8 disables blinking, essentially making bit "B"
|
||
|
of the attribute byte a "don't care".
|
||
|
(My IBM Tech Ref Manual indicates the the IBM Mono Adaptor has "CRT Control
|
||
|
Port 1" at 3B8 but does not detail the function of that port).
|
||
|
|
||
|
On the Tecmar Graphics Master (TGM) when configured to emulate the IBM CGMA,
|
||
|
this works as advertised. In addition, when the TGM is configured to emulate
|
||
|
the IBM Monochrome/Printer Adaptor, bit 5 of port 3B8 has an analogous effect
|
||
|
(ie: makes bit "B" cause bright background).
|
||
|
|
||
|
On the EGA this bit seems to have no effect in either mode (ie: port 3D8 in
|
||
|
CGMA emulation, or port 3B8 in MDPA emulation).
|
||
|
|
||
|
|
||
|
4. Attributes in CGMA mode
|
||
|
|
||
|
Both the TGM and EGA seem to behave just as the CGMA does.
|
||
|
|
||
|
|
||
|
5. Attributes in MDPA mode
|
||
|
|
||
|
IBM Monochrome Adaptor
|
||
|
|
||
|
bg background fg foreground
|
||
|
0-6 black 0 black IF bg = 0 or 7
|
||
|
7 dim IF fg = 0 0 dim otherwise
|
||
|
7 black IF fg not 0 1-7 dim
|
||
|
8 black IF bg = 0 or 7
|
||
|
8 bright otherwise
|
||
|
9-F bright
|
||
|
|
||
|
When fg is 1 or 9, the character is underlined, with the underline being the
|
||
|
same brightness as the character. The underline is scan line 12 (of 0..13).
|
||
|
The underline blinks with the character (if enabled).
|
||
|
|
||
|
The "B" bit causes the char to blink if bit 5 of port 3B8 is 1, otherwise
|
||
|
has no effect.
|
||
|
|
||
|
Tecmar Graphics Master
|
||
|
|
||
|
bg background fg forground
|
||
|
0 black 0 black
|
||
|
1 dim 1 dim
|
||
|
2 black 2 black
|
||
|
3-7 dim 3-7 dim
|
||
|
8 black
|
||
|
* 0 black 9 bright
|
||
|
* 1 bright A black
|
||
|
* 2 black B-F bright
|
||
|
* 3-7 bright
|
||
|
|
||
|
(* = when port 3B8 bit 5 is 0, and attribute bit "B" is 1)
|
||
|
|
||
|
When fg is 1 or 9, the character is underlined, with the underline being
|
||
|
the same brightness as the char (1 = dim, 9 = bright). The underline is
|
||
|
on the next to bottom scan line of the char (ie: line 12 of 0..13). The
|
||
|
underline is steady, ie: does not blink when the character blinks.
|
||
|
|
||
|
IBM Enhanced Graphics Adaptor
|
||
|
|
||
|
bg background fg foreground
|
||
|
0 black 0 black
|
||
|
1-7 dim 1-7 dim
|
||
|
8 black
|
||
|
9-F bright
|
||
|
|
||
|
When fg is 1 or 9, the character is underlined, ONLY if bg is 0. The
|
||
|
underline is the same brightness as the char, and is on the bottom scan
|
||
|
line if the char (ie: 13 of 0..13). The underline blinks when the char
|
||
|
blinks.
|
||
|
|
||
|
Bit 5 of port 3B8 does not affect the blinking versus bright.
|
||
|
|
||
|
|
||
|
6. Summary of Monochrome Attribute Modes
|
||
|
|
||
|
The following modes are the only ones supported by the IBM MDPA:
|
||
|
|
||
|
B bg fg notes
|
||
|
? 0 0 (-/-) black on black (little use)
|
||
|
? 7 0 (-/D) black on dim (reverse video)
|
||
|
? 0 1 (D/-) dim on black underlined
|
||
|
? 0 7 (D/-) dim on black
|
||
|
? 0 9 (B/-) bright on black underlined
|
||
|
? 0 F (B/-) bright on black
|
||
|
|
||
|
Note: the B bit controls blinking, unless disabled by
|
||
|
port 3B8 bit 5 = 0.
|
||
|
|
||
|
|
||
|
The IBM EGA can support all those and the following modes in addition:
|
||
|
|
||
|
B bg fg notes
|
||
|
? 7 F (B/D) bright on dim
|
||
|
? 7 7 (D/D) dim on dim (little use)
|
||
|
|
||
|
Note: the B bit always controls blinking.
|
||
|
|
||
|
|
||
|
The Tecmar GM supports all of the above, and in addition:
|
||
|
|
||
|
B bg fg notes
|
||
|
? 7 9 (B/D) bright on dim underlined
|
||
|
|
||
|
Note: the B bit controls blinking, if port 3B8 bit 5 = 1.
|
||
|
If port 3B8 bit 5 = 0, the following modes are also supported:
|
||
|
|
||
|
B bg fg (?/?) notes
|
||
|
1 7 0 (-/B) black on bright
|
||
|
1 7 1 (D/B) dim on bright underlined
|
||
|
1 7 7 (D/B) dim on bright
|
||
|
1 7 F (B/B) bright on bright (little use)
|
||
|
|
||
|
|
||
|
7. More Information
|
||
|
|
||
|
More information about character attributes on other IBM compatible boards
|
||
|
and IBM compatible machines is needed. The program "attrib.bas" will display
|
||
|
a matrix of 16 x 16 examples, one for each combination of foreground,
|
||
|
background, and "B" bit values. The text displayed at each place is the
|
||
|
hexadecimal value of the corresponding attribute byte. By using this program
|
||
|
others can test their machines/adaptors and report back about the results.
|
||
|
Try it both in "blink" and "bright" modes. See the tables at the end of
|
||
|
this document and record your results there. If you will send your results
|
||
|
to me I will incorporate them in future versions of this document.
|
||
|
|
||
|
Zhahai Stewart Compuserve address 74076,252 (EMAIL)
|
||
|
HiSystems
|
||
|
6521 Old Stage Rd.
|
||
|
Boulder, CO 80302 (303) 449-8180
|
||
|
|
||
|
|
||
|
8. Reference Diagrams (see attrib.bas)
|
||
|
|
||
|
In the following, the foreground "color" is represented by the columns 0 to F
|
||
|
across the page, while the background "color" is represented by rows 0 to 7
|
||
|
down the page. An additional "bottom half" is included for attributes with
|
||
|
the "B" bit set, if needed.
|
||
|
|
||
|
The entries are of the form:
|
||
|
f/b, foreground intensity (over) background intensity
|
||
|
where the codes are:
|
||
|
B = Bright
|
||
|
D = Dim
|
||
|
- = Black
|
||
|
Thus a dim character on a black background is D/-, while a black character
|
||
|
in a bright background would be -/B. Characters with the same foreground
|
||
|
and background brightness are of course unreadable and must be inferred.
|
||
|
|
||
|
|
||
|
|
||
|
>>>>>>>>>>>> IBM MDPA <<<<<<<<<<<<<
|
||
|
|
||
|
------------------------------ fg -----------------------------
|
||
|
B bg 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
|
0 0 / D/ D/ D/ D/ D/ D/ D/ / B/ B/ B/ B/ B/ B/ B/
|
||
|
0 1 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 2 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 3 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 4 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 5 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 6 D/ D/ D/ D/ D/ D/ D/ D/ B/ B/ B/ B/ B/ B/ B/ B/
|
||
|
0 7 /D D/ D/ D/ D/ D/ D/ D/ /D B/ B/ B/ B/ B/ B/ B/
|
||
|
|
||
|
The bottom matrix with B = 1 looks the same except that the characters
|
||
|
blink IF port 3B8 bit 5 is 1.
|
||
|
|
||
|
Columns 1 and 9 are underlined. The underline blinks when the char does.
|
||
|
|
||
|
|
||
|
>>>>>>>>>>> Tecmar Graphics Master <<<<<<<<<<
|
||
|
|
||
|
------------------------------ fg -----------------------------
|
||
|
B bg 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
|
|
||
|
0 0 -/- D/- -/- D/- D/- D/- D/- D/- -/- B/- -/- B/- B/- B/- B/- B/-
|
||
|
0 1 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
0 2 -/- D/- -/- D/- D/- D/- D/- D/- -/- B/- -/- B/- B/- B/- B/- B/-
|
||
|
0 3 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
0 4 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
0 5 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
0 6 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
0 7 -/D D/D -/D D/D D/D D/D D/D D/D -/D B/D -/D B/D B/D B/D B/D B/D
|
||
|
|
||
|
If bit 5 of port 3B8 is 1, the bottom part of the matrix is the same as the
|
||
|
top expect the chars are blinking. If it is 0, the dim backgrounds are
|
||
|
replaced by bright ones, thus:
|
||
|
|
||
|
1 0 -/- D/- -/- D/- D/- D/- D/- D/- -/- B/- -/- B/- B/- B/- B/- B/-
|
||
|
1 1 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
1 2 -/- D/- -/- D/- D/- D/- D/- D/- -/- B/- -/- B/- B/- B/- B/- B/-
|
||
|
1 3 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
1 4 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
1 5 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
1 6 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
1 7 -/B D/B -/B D/B D/B D/B D/B D/B -/B B/B -/B B/B B/B B/B B/B B/B
|
||
|
|
||
|
Columns 1 and 9 are underlined. The underline does NOT blink.
|
||
|
|
||
|
|
||
|
>>>>>>>>> IBM ENHANCED GRAPHICS ADAPTOR <<<<<<<<<<<
|
||
|
|
||
|
------------------------------ fg -----------------------------
|
||
|
B bg 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
|
|
||
|
0 0 -/- D/- D/- D/- D/- D/- D/- D/- -/- D/- D/- D/- D/- D/- D/- D/-
|
||
|
0 1 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 2 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 3 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 4 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 5 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 6 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
0 7 -/D D/D D/D D/D D/D D/D D/D D/D -/D D/D D/D D/D D/D D/D D/D D/D
|
||
|
|
||
|
The bottom half of the matric is identical except that it blinks. This
|
||
|
is unaffedted by port 3B8 bit 5.
|
||
|
|
||
|
The entries under columns 1 and 9 IN ROW 0 ONLY are underlined. The
|
||
|
underline blinks when the character does.
|
||
|
|
||
|
|
||
|
|
||
|
9. History of this document
|
||
|
|
||
|
1/10/85 Original draft (Tecmar & EGA) by Zhahai Stewart
|
||
|
1/15/85 Updated to include IBM MDPA by Zhahai Stewart
|
||
|
|