This documentation is outdated and is to be rewritten under the new system specifications. Do not rely on this information.
The Mark 1's display is the most important part of the computer. It allows programs to display customizable text and simple pixel graphics on the fly without having to design and upload textures for UI elements or control rendering prims directly in the running program.
There are multiple parts to the display: the foreground and background character layers (called the "matrix"), the overlay layers, and the underlay layers. Additionally, the character layers can operate in either text mode or graphics mode.
When operating in both text and graphics modes, the Mark 1 can display foreground and background elements (characters or graphic arrays) in 16 colors. The Mark 1's color palette is identical to the Color Graphics Adapter's color gamut, except that all colors can be displayed simultaneously instead of CGA's 4-color palette limitation for graphics modes.
The display driver uses 16 hexadecimal color codes to identify the 16 colors available on the Mark 1's display. These colors are identical to those in the full color palette of CGA.
There are two additional color codes:
Each individual character on the display has its own foreground (text) and background colors. When setting characters or pixel graphics on the display, you must specify both the foreground and background colors using two color codes. For example, light gray on black would be the colors 70. This is the same format used by the SCOPE console's color command, and 70 is the default color combination for the console.
Additionally, each overlay and underlay layer can be set to a flat color using a single color code.
Users can select between a color monitor and a monochrome monitor. Additionally, monochrome monitors can have one of five phosphor colors - greyscale, amber, cyan, green, or red - which effectively tint the entire screen.
These colors vary in realism. Most early CRT monochrome monitors were green, similar to the Mark 1's green phosphor. When overbrightened, it could show more of a cyan phosphor color. Some early monitors were amber, similar to the Mark 1's amber phosphor. Later monochrome CRT monitors were greyscale. Red monochrome CRT monitors did not exist; however, red LCD displays were occasionally seen on portable computers.
When the connected monitor is monochrome, the color palette is converted into “intensity” values corresponding with each color's brightness, then tinted to match the monitor's phosphor color. The entire 16-color palette is still available, but each color (excluding black and white) will have one or two other colors at the same intensity, thus rendering the same brightness on a monochrome monitor. The intensity values are as follows:
Well-designed programs should not require any changes when running in monochrome as opposed to color. The exceptions are programs which utilize the Alternate Code Page with color images, and programs which use overlay or underlay layers with color images, which will not look correct when tinted.
If you are using a suggested color scheme, your program will work fine in monochrome. If you are designing your own, you should plan your color scheme such that your program is still functional on a monochrome monitor.
The display can operate in text or graphics mode. Most programs use text mode exclusively. In text mode, the Mark 1 can display all characters from code page 437 along with a handful of extra characters (additional fractions, button-drawing characters, and checkboxes). These characters are rendered in the same 9×16 bitmap font used in VGA (CGA's version of this font was slightly different due to its smaller resolution).
Text mode can display 48×20 characters for a simulated resolution of 432×320. Each character is individually addressable or you can set a string of characters, or the entire display, in the same function call. The full code page is shown below:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL
MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx
yz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ƒáíóúñѪ
º¿⌐¬¡«»αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■⌂↑↓→←↨
↕∟↔▲▼☺☻♥♦♣♠•○♂♀♪♫☼►◄¶§½¼¾⅓⅔⁅‡⁆☐☒☑
┌┐╔╗╓╖╒╕├┬┤╠╦╣║ │ ╥ ╤╬═ ▄ ░ ▓ ◙
└┘╚╝╙╜╘╛╞╧╡╟╨╢ ─┴┼╫ ╪╩ ▐▌ ▀ ▒ ◘
The full code page and default Alternate Code Page is rendered as shown below:
The space character is allowed but it is not shown on the code page; it is rendered as invisible.
The numbered blank positions are addressable but are left blank in the default texture. For more information, see the Custom Code Page section below.
The Mark 1 can support custom code page textures. Typically, custom code pages are loaded to make use of the Alternate Code Page, although it is possible to simultaneously overwrite the text characters.
Note that code page customization is limited by the Developer Integrity Guidelines - namely, when publishing software through the Developer Affiliate Program, custom code pages cannot use colors outside the Mark 1's original color palette. This can be done using a custom color palette in Photoshop.
TODO
When in text mode, the Mark 1's code page texture is duplicated, and only the top half of the texture is used for characters. The lower half of the texture is mapped exactly the same, but is blank by default. This section of the texture is the Alternate Code Page (ACP).
The ACP can be used to provide a special font or render graphics in character-sized segments. It is only useful when using a custom code page.
Note that the green area in the sample code page texture is not addressable by the display driver in either the normal code page or the ACP. This is done because the ACP is addressed using the same character set.
TODO
The display driver in SCOPE provides the same text mode functionality as the BIOS driver with several additional features to make UI building easier: a menu manager, dialog manager, button manager, input manager, and checkbox manager. These tools are collectively called the Extended Text Mode (ETM). ETM allows program developers to build program UIs dynamically by sending only a few commands instead of manually drawing box characters, waiting for input, and processing keystrokes. This is very similar to real-world GUI tools such as WinForms, WPF, AWT, and Swing, except limited to the capabilities of the Mark 1. ETM also natively supports mouse input when a mouse driver is loaded.
TODO