Recent from talks
Nothing was collected or created yet.
IBM Monochrome Display Adapter
View on WikipediaIBM PC original MDA and parallel printer adapter | |
| Release date | 1981 |
|---|---|
| Discontinued | 1984 |
| Architecture | Motorola 6845 |
| Cards | |
| Entry-level | IBM MDA, Control Systems Artist 1, Hitachi HD6845SP, UMC UM6845 |
| History | |
| Successor | Hercules Graphics Card, Enhanced Graphics Adapter |
The Monochrome Display Adapter (MDA, also MDA card, Monochrome Display and Printer Adapter, MDPA) is IBM's standard video display card and computer display standard for the IBM PC introduced in 1981. The MDA does not have any pixel-addressable graphics modes, only a single monochrome text mode which can display 80 columns by 25 lines of high-resolution text characters or symbols useful for drawing forms.
Hardware design
[edit]The original IBM MDA was an 8-bit ISA card with a Motorola 6845 display controller, 4 KB of RAM, a DE-9 output port intended for use with an IBM monochrome monitor. A parallel port for attachment of a printer is also included, avoiding the need to purchase a separate card.[1]
Capabilities
[edit]

The MDA was based on the IBM System/23 Datamaster's display system,[2] and was intended to support business and word processing use with its sharp, high-resolution characters. Each character is rendered in a box of 9 × 14 pixels, of which 7 × 11 depicts the character itself and the other pixels provide space between character columns and lines.[3] Some characters, such as the lowercase "m", are rendered eight pixels across[citation needed].
The theoretical total screen display resolution of the MDA is 720 × 350 pixels, if the dimensions of all character cells are added up, but the MDA cannot address individual pixels to take full advantage of this resolution. Each character cell can be set to one of 256 bitmap characters stored in ROM on the card, and this character set cannot be altered from the built-in hardware code page 437. The only way to simulate "graphics" is through ASCII art, obtaining a low resolution 80 × 25 "pixels" screen, based on character positions.
Code page 437 has 256 characters (0-255), including the standard 95 printable ASCII characters from (32-126), and the 33 ASCII control codes (0-31 and 127) are replaced with printable graphic symbols. It also includes another 128 characters (128-255) like the aforementioned characters for drawing forms. Some of these shapes appear in Unicode as box-drawing characters.
There are several attribute values - bit flags that can be set on each character on the screen. These are invisible, underline, normal, bright (bold), reverse video, and blinking. Reverse video swaps the foreground and background colors, while blinking causes text to flash periodically. Some of these attributes can be combined, so that e.g. bright, underlined text can be rendered.[1]
| Attribute | Display |
|---|---|
| Invisible | Invisible |
| Normal | Normal |
| Underline | Underline |
| Bright | Bright |
| Bright underline | Bright underline |
| Reverse video | Reverse video |
| Invisible reverse | Invisible reverse |
Early versions of the MDA board have hardware capable of outputting red, green and blue TTL signals on the normally unconnected DE-9 video connector pins, theoretically allowing an 8-color display with a suitable monitor. The registers also allow the monochrome mode to be set on and off. No (widely) published software exists to actually control the feature.[4][1][5][6]
It is also possible to combine the values of output pins 7 (Video) and 6 (Intensity)[7][8][6], to generate four brightness levels. Video corresponds to 2/3 luminance and Intensity to 1/3 luminance),[9] but the actual display of these levels is monitor-dependent:[8]
| Output pin values | Displayed brightness | |
|---|---|---|
| 7 – Video | 6 – High intensity | |
| 0 | 0 | |
| 0 | 1 | |
| 1 | 0 | |
| 1 | 1 | |
Use
[edit]
The MDA was released alongside the IBM Color Graphics Adapter, and can be installed alongside the CGA in the same computer. A command included with PC DOS permits switching the primary display between the CGA and MDA cards.[10] Some software like Lotus 1-2-3 supports using both cards at the same time.[11]
Because of the lack of pixel-addressable graphics, MDA owners were unable to play PC games released with graphics support. However, textmode games were released for the PC (including text adventures) and at least one game, IBM's One Hundred And One Monochrome Mazes, requires MDA.[12] Box-drawing characters made the production of rudimentary graphics practical for early PC game titles, including BBS door games or titles such as Castle Adventure.
Another use for the MDA was as a secondary display for debugging. Applications like SoftICE[13] and the Windows debugger[14] permitted the simultaneous use of an MDA and another graphics card, with the MDA displaying a debugger interface while the other card was showing the primary display.
Disadvantage
[edit]This article needs attention from an expert in Computing. See the talk page for details. (December 2023) |
A typical 8-bit monochrome card could turn the 16-bit 8 MHz ISA bus into an 8-bit 4 MHz PC bus, which resulted in having the bus bandwidth cut by up to 75%. If the monochrome card was added to the PC as a second card besides a normal VGA card for debugging purposes, this resulted in slow VGA performance. Microsoft recommended in its Writing HOT Games for Microsoft Windows (1994) to remove the monochrome card in such a setup for maximum speed of the VGA card.[15]
Reception
[edit]The author of an internal IBM publication stated in October 1981 that he had planned to purchase the CGA adapter but changed his mind after seeing its poor display quality. Describing MDA as beautiful, he observed that "you stare at text a whole lot more than you stare at color graphics".[16] MDA was more popular than CGA for business applications. The higher resolution of MDA's text and inclusion of a printer port made it more appealing for the business applications that were the focus of the original PC. However, dissatisfaction with its limitations quickly led to third parties releasing competing hardware.[17]
A well known example was the Hercules Graphics Card. Introduced in 1982, it offered both an MDA-compatible high resolution text mode and a monochrome graphics mode. The founder of Hercules Computer Technology, Van Suwannukul, created the Hercules Graphics Card so that he could work on his doctoral thesis on an IBM PC using the Thai alphabet, which was impossible at the low resolution of CGA or the fixed character set of MDA.[18] It could address individual pixels, and displayed a black and white picture of 720 × 348 pixels. This resolution was superior to the CGA card, yet offered pixel-addressable graphics, so despite lacking color capability, the Hercules adapter's offer of high resolution bitmap graphics combined with MDA-grade text quality made it a popular choice, which was even shipped with many clones.[19]
Specifications
[edit]
MDA cards used a DE-9 output port intended for a digital TTL monitor, like the IBM monochrome monitor.
| Pin | Function |
|---|---|
| 1 | Ground |
| 2 | Ground |
| 3, 4, 5 | Not used |
| 6 | Intensity |
| 7 | Video |
| 8 | Horizontal sync (+) |
| 9 | Vertical sync (−) |
The signal had the following specifications:
Clone boards
[edit]
Other boards offer MDA compatibility, although with differences on how attributes are displayed or the font used.[1][21]
- 3270 PC
- Amstrad PPC / PC20
- Control Systems Artist 1
- Tamarack Microelectronics TD3088A3
See also
[edit]References
[edit]- ^ a b c d Elliott, John C. (2005-11-06). "Monochrome Display Adapter: Notes". Archived from the original on 2016-11-23. Retrieved 2016-11-23.
- ^ Bradley, David J. (September 1990). "The Creation of the IBM PC". BYTE. pp. 414–420. Retrieved 2 April 2016.
- ^ IBM Monochrome Display and Printer Adapter (PDF). IBM.
- ^ Wilton, Richard (1987). Programmer's Guide To PC And PS/2 Video Systems. Microsoft Press. p. 51. ISBN 1-55615-103-9.
- ^ "IBM 5150 - early version". minus zero degrees (-0º) IBM 51xx PC Family Computers. Retrieved 2014-08-30.
- ^ a b c "IBM: MDA / CGA / EGA". minus zero degrees (-0º) IBM 51xx PC Family Computers. Retrieved 2022-11-17.
- ^ a b IBM Personal Computer Hardware Library: Technical Reference (Revised edition, 1983).
- ^ a b c d Elliott, John (June 8, 2020). "Monochrome Display Adapter Notes". John Elliott's homepage.
- ^ "RGB Classic Games - Character attributes". www.classicdosgames.com. Retrieved 2022-05-06.
- ^ Elliott, John (April 24, 2011). "Dual-Head operation on vintage PCs". John Elliott's homepage. Retrieved 2020-08-16.
- ^ Derfler, Frank J. Jr. (March 1983). "A Program You Can Count On". PC Magazine. Vol. 1, no. 10. p. 187. Retrieved 2013-10-21.
- ^ Manes, Stephen (1984-01-24). "It's Not Easy Being Green". PC Magazine. p. 391. Retrieved 24 October 2013.
- ^ Using SoftICE (PDF). Compuware Corporation. 1998. p. 12.
- ^ Glass, Brett (April 1, 1991). "The AT's Shortcomings Force Single-Monitor Programming". InfoWorld. p. 62.
- ^ Writing HOT Games for Microsoft Windows – The Microsoft Game Developers' Handbook (PDF). Microsoft Windows Multimedia. 1994. p. 17.
- ^ Dievendorff, Dick (1981). IBM Personal Computer Questions and Answers. IBM. p. 25.
- ^ Gibson, Steve (September 19, 1988). "IBM's EGA Unified Backward-Compatible CGA, MDA, Hercules Standards". InfoWorld. p. 49.
- ^ "The Resolution Time Line: Additional Pixels Enhance Quality". PC Magazine. May 16, 1989. p. 96.
- ^ Ponting, Bob (June 26, 1989). "High-Resolution Standard is Latest Step in DOS Graphics Evolution". InfoWorld. p. 48.
- ^ There are four possible combinations of values for the 'Intensity' and 'Video' pins, but not all monitors will display them as four distinct intensity levels.
- ^ "VGA Legacy". vgamuseum.info. Archived from the original on June 29, 2014. Retrieved June 28, 2014.
IBM Monochrome Display Adapter
View on GrokipediaHistory and Development
Introduction and Release
The IBM Monochrome Display Adapter (MDA) was introduced as a key component of the original IBM Personal Computer (model 5150), marking IBM's entry into the personal computing market. Announced on August 12, 1981, at a press event in New York, the MDA became available for shipment starting in October 1981, coinciding with the first deliveries of the IBM PC 5150 system.[3][1] This adapter provided high-resolution text display capabilities tailored for professional use, reflecting IBM's focus on business-oriented computing during the early 1980s. Priced at $270, the MDA was offered as a standard option within the IBM PC lineup, often bundled with the compatible IBM 5151 monochrome monitor, which cost an additional $345.[1] This combination enabled clear, sharp text output on a 11.5-inch CRT screen, making it a practical choice for office environments where readability was paramount.[4] The adapter's design included an integrated parallel printer port, further supporting productivity tasks like document printing alongside display functions.[1] As one of the two inaugural display adapters for the IBM PC—alongside the Color/Graphics Adapter (CGA)—the MDA was specifically targeted at business users requiring reliable text-based operations, such as word processing and accounting.[1][3] Its emphasis on monochrome text modes addressed the needs of corporate professionals, contrasting with the CGA's focus on color graphics for more general or gaming applications. The MDA was eventually superseded by more advanced options like the Enhanced Graphics Adapter (EGA) introduced in 1984.Design Goals and Context
The IBM Monochrome Display Adapter (MDA) was engineered with the core goal of delivering a high-quality text display tailored for professional applications, placing a strong emphasis on readability and sharp character rendering to support business-oriented tasks such as document preparation and data analysis. This focus on text clarity, achieved through features like an 80-character by 25-line screen format, enabled efficient handling of alphanumeric content without the distractions of color or graphics, making it ideal for productivity in office environments.[5][1] In the nascent personal computer market of 1981, the MDA emerged as a response to the growing demand for reliable business computing solutions, targeting small businesses and professionals who required robust text-based tools like spreadsheets (e.g., VisiCalc) and word processors (e.g., EasyWriter) rather than the entertainment-driven graphics capabilities seen in contemporary home systems such as the Apple II. IBM positioned the MDA to bridge the gap between expensive mainframe setups and affordable desktop computing, streamlining operations for accountants, analysts, and planners who needed accessible problem-solving without advanced programming skills.[3][1] The design of the MDA was heavily influenced by IBM's prior mainframe terminal standards, notably the 3270 Information Display System, which emphasized monochrome text output for high-volume data processing and ensured seamless compatibility for users transitioning from larger enterprise systems. By emulating these terminal-like displays, the MDA maintained a familiar interface that supported asynchronous communications and terminal emulation modes to facilitate integration with host systems.[5][6] As part of IBM's Entry Systems Division initiatives in Boca Raton, Florida, the MDA's development was overseen by a dedicated team under Don Estridge's leadership, employing a fast-paced "skunkworks" methodology to standardize PC peripherals and accelerate market entry. This effort culminated in the adapter's inclusion as a core option for the IBM PC 5150, launched on August 12, 1981, to establish a professional-grade ecosystem that extended mainframe reliability to personal computing.[3]Hardware Architecture
Key Components
The IBM Monochrome Display Adapter (MDA) was built around the Motorola MC6845 cathode ray tube controller (CRTC), which served as the primary chipset responsible for generating scan timing signals to drive the display. This video display controller interfaced with the system's microprocessor and managed raster-scan operations, including horizontal and vertical synchronization, to support text-based output on monochrome monitors.[5] The adapter's video memory consisted of 4 KB of dual-ported static random-access memory (SRAM), enabling simultaneous access by the CPU and the display circuitry without contention delays during normal operation. This memory was implemented using two 2K static RAM chips, providing the 4,000 bytes required for an 80-column by 25-row text buffer, where each character position stored one byte for the ASCII code and one byte for attributes.[2][7] Supporting circuitry included discrete transistor-transistor logic (TTL) components for handling character attributes, such as underlining and blinking, and for generating dot patterns from the onboard ROM during scan-out. The character generation relied on an 8 KB ROM (IBM part 9264 or equivalent), which stored font patterns for the supported character set, allowing the TTL logic to serialize 9x14 pixel matrices for high-resolution text rendering.[5][8] Physically, the MDA was designed as a single-slot, 8-bit Industry Standard Architecture (ISA) expansion card, measuring full-length to fit the original IBM PC chassis, with integrated brackets for the DE-9 monitor connector and a parallel printer port.[9]Interfaces and Connectors
The IBM Monochrome Display Adapter (MDA) features a DE-9 (DB-9) connector for its video output, providing a TTL-level monochrome signal compatible with the IBM 5151 monitor, which uses a green P39 phosphor for display.[7] The connector's pinout includes grounds on pins 1 and 2, +intensity on pin 4, +video on pin 7, +horizontal sync on pin 8, and -vertical sync on pin 9, with pins 3, 5, and 6 unused, enabling direct-drive output at TTL voltage levels (0.0-0.6 Vdc low and 2.4-3.5 Vdc high).[7] This setup supports the adapter's text-based display without color or graphics capabilities beyond line drawing characters. In addition to video output, the MDA integrates a parallel printer adapter via a 25-pin D-shell connector, allowing direct text dumping to dot-matrix printers such as the IBM 5152.[5] The printer port provides 12 TTL-buffered outputs (sourcing 2.6 mA and sinking 24 mA), five steady-state inputs, and an interrupt on pin 10, operating at I/O addresses 3BC (data), 3BD (status), and 3BE (control) for 8-bit TTL-level data transfer.[7] The adapter connects to the host system through a standard 8-bit ISA expansion slot, utilizing I/O ports 3B0-3BF and a 4K RAM display buffer at memory address B0000h, while drawing power from the system's +5 V and +12 V supplies via the slot.[5] Some configurations also reference a -12 V supply, though it is not always required.[5] Early 1981 production models of the MDA included a 6-pin Berg connector for potential RGB output compatibility, with traces linking to the DE-9 pins, though this feature was not enabled in firmware and was removed in later revisions.[8]Display Features
Text Mode Operations
The IBM Monochrome Display Adapter (MDA) operates exclusively in text mode, providing a high-resolution monochrome display for character-based output on early IBM PCs. Its standard configuration supports 80 columns by 25 rows of text, utilizing 9x14 pixel character cells that yield an effective resolution of 720x350 pixels.[5] The 80x25 mode is the default for most applications due to its clarity on compatible monitors.[9] Character generation on the MDA relies on an onboard 8KB ROM containing bitmap fonts for 256 distinct characters, drawn from the IBM PC's original extended ASCII set, which includes alphanumerics, accented characters, and box-drawing symbols akin to Code Page 437.[5] Each character is rendered using an 8x14 dot bitmap from ROM within the 9x14 pixel cell, with the 9th column blank for spacing in alphanumeric characters or duplicating the 8th column for block graphics symbols (codes C0h-DFh) to maintain consistent width, and the ROM providing fixed bitmaps that the hardware scans line-by-line to form the display image.[9][8] This ROM-based approach ensures consistent, high-quality text rendering without requiring additional software intervention for basic glyph display. The MDA includes cursor support managed by the Motorola 6845 CRT controller, allowing for a programmable blinking or non-blinking cursor whose start and end scan lines, size, and position can be configured via dedicated registers.[5] Cursor visibility and behavior are controlled through the 6845's registers 10 and 11, enabling applications to adjust it dynamically for user input or navigation.[9] Display operations are limited to a single visible page at a time, stored in the adapter's 4KB dual-ported RAM buffer, though software can manage up to eight virtual pages for rapid switching.[5] Smooth vertical scrolling is facilitated by the 6845's address and line compare registers, which adjust the display start address to shift content without full buffer rewrites, supporting efficient text updates in business and terminal applications.[9] Attribute bytes accompany each character code to influence rendering, such as intensity or underlining, but these are processed separately from core text layout.[5]Character Attributes and Rendering
The character attribute byte in the IBM Monochrome Display Adapter (MDA) is an 8-bit value that controls various visual modifications to text characters, stored in memory immediately following each character code in the display buffer. Bits 0-2 set to 1 enable underlining, bit 3 sets high intensity for brighter rendering, bit 7 selects blinking or underlining based on global mode (via bit 5 of I/O port 3B8h: 1 for blinking, 0 for underlining), with reverse video achieved through specific attribute values producing inverted intensities.[5][9][8] Rendering effects on the MDA are limited to monochrome output, producing normal (standard intensity foreground on dark background), bright (enhanced intensity foreground), underlined (with a horizontal line at the character bottom), reverse (inverted intensities), or combinations thereof, without any color support. These effects utilize 2 to 4 intensity shades—typically dark background, normal foreground, bright foreground, and inverted variants—achieved through the interaction of video enable signals and attribute bits on the green phosphor display.[8][5] Blinking behavior, triggered by bit 7 in the attribute byte, applies to individual characters or groups when the global blink enable is active; it causes the affected characters to alternate visibility across the entire screen at a fixed rate, enhancing emphasis in text-based interfaces. The underline effect specifically renders as a solid horizontal line spanning the bottom row of the 14-pixel-high character cell, independent of other attributes.[9][8] Font rendering on the MDA uses a fixed 9×14 pixel matrix per character, generated from an onboard ROM, where the 9th column duplicates the 8th column for block graphics symbols to maintain consistent 9-pixel width and prevent visual gaps. The 8 KB ROM character generator supports international symbols, including accented letters and line-drawing elements from code page 437, allowing display of extended ASCII characters beyond basic English text.[5][8]Technical Specifications
Memory and Addressing
The IBM Monochrome Display Adapter (MDA) features 4 KB of static RAM dedicated to the display buffer, providing storage for the 80×25 text mode screen.[10] This memory is mapped to the address segment B0000h–B0FFFh in the system's memory map.[10] For compatibility with certain software and hardware configurations, the 4 KB buffer is mirrored across the full 32 KB range from B0000h to B7FFFh, allowing access to the same data at multiple offset points without altering the underlying storage.[8] The display memory is organized in a format that allocates two bytes per character position, supporting up to 2000 characters in the standard 80-column by 25-row layout.[10] The first byte stores the 7-bit ASCII character code, while the second byte holds the attribute information, including bits for underline (bits 0–2), high intensity (bit 3), and blink (bit 7).[8] This structure enables the CPU to update the screen content directly via memory-mapped I/O, with the display hardware reading from the buffer independently to refresh the output. The MDA's memory is dual-ported, permitting simultaneous write operations from the CPU and read operations by the display circuitry without contention in normal use.[10] During display refresh cycles, which may involve DMA-like access, the CPU experiences wait states to ensure data integrity.[10] Write protection for the display memory can be managed through the mode control register, preventing unintended modifications during specific operations. A key aspect of memory interaction is controlled by the mode control register at I/O port 03B8h, a write-only register that configures display behavior.[8] Bit 0 of this register enables high-resolution mode, which allows for finer scan lines per character (up to 16 pixels high, compared to the standard 14), enhancing text clarity on compatible monitors.[8] If this bit is unset (0), the pixel clock is halted, which can freeze the display and potentially halt the processor by preventing further memory access synchronization.[10] Other bits in the register, such as bit 5 for enabling blinking and bit 3 for video output enablement, further influence how the memory contents are rendered, but do not directly alter addressing.[8]Timing and Signals
The IBM Monochrome Display Adapter (MDA) generates video timing signals using the Motorola 6845 cathode ray tube controller (CRTC), which synchronizes the display output with precise horizontal and vertical parameters. The horizontal timing features a scan rate of 18.432 kHz, resulting in a line duration of approximately 52 μs, including blanking intervals, to support the 720-pixel-wide text mode resolution.[9][8] This rate derives from a character clock of about 1.808 MHz, divided across 98 character times per line as programmed in CRTC register R0 (value 97 decimal).[7] Vertical timing operates at a 50 Hz refresh rate, with 350 active scan lines per frame to accommodate the 25-row text display, where each character spans 14 scan lines.[9][8] The total vertical period includes additional lines for vertical blanking and synchronization, programmed via CRTC registers R4–R6 and R7 (typically set to values yielding 370 total lines).[7] This configuration ensures stable raster scanning for monochrome CRT monitors compatible with the MDA's parameters. The video output employs TTL-compatible digital monochrome signals at 0–5 V levels, where logic low (0–0.6 V) represents black and logic high (2.4–5 V) represents illuminated pixels in green phosphor.[9][5] Horizontal sync (HSYNC) and vertical sync (VSYNC) are separate TTL signals output on pins 8 and 9, respectively, of the DE-9 connector, with HSYNC active high and VSYNC active low to control monitor beam retrace.[8][7] Programming of scan parameters occurs through the 6845 CRTC at I/O addresses 03B0h–03B7h, where 03B4h serves as the index register (write-only) to select one of 18 programmable registers, and 03B5h as the data register (read/write) for loading values.[8][5] A status register at 03BAh (read-only) detects vertical or horizontal retrace intervals, with bit 3 indicating vertical retrace and bit 0 for light pen status, enabling software synchronization during display updates.[9][8] These interfaces allow dynamic adjustment of timing, such as cursor positioning and scan line addressing, while interfacing with the adapter's 4 KB display memory.[5]| CRTC Register | Function | Typical MDA Value (Decimal/Hex) | Citation |
|---|---|---|---|
| R0 | Horizontal Total | 97 / 61h | [7] |
| R1 | Horizontal Displayed | 80 / 50h | [7] |
| R2 | Horizontal Sync Position | 82 / 52h | [7] |
| R3 | Horizontal Sync Width | 15 / 0Fh | [7] |
| R4 | Vertical Total | 25 / 19h | [7] |
| R5 | Vertical Total Adjust | 6 / 06h | [7] |
| R6 | Vertical Displayed | 25 / 19h | [7] |
| R7 | Vertical Sync Position | 25 / 19h | [7] |
| R9 | Maximum Scan Line Address | 13 / 0Dh | [7] |