Mode 13h

Mode 13h
Default VGA 256 color palette

Mode 13h is the IBM VGA BIOS mode number for a specific standard 256 color mode on IBM's VGA graphics hardware. It features a resolution of 320×200 pixels[1] and was used extensively in computer games and art/animation software of the late 1980s and early- to mid-1990s. Mode 13h provides programmers with a straightforward manner of access (nicknamed chunky graphics) to video memory at the expense of not being able to use some useful features that the VGA hardware was otherwise capable of providing. Due to the aspect ratio of a 320×200 resolution screen, Mode 13h does not have square pixels.

Contents

Technical layout

Mode 13h is something of a curiosity, because the VGA is a planar device from a hardware perspective, and somewhat unsuited for chunky graphics operation. It was made possible by a hardware trick. In order to understand how Mode 13h was possible, one must consider the VGA's memory layout:

The VGA's 256KiB of video memory is not directly available to the programmer and is accessed via a 64KB 'window' in the PC's real mode address space. The Video RAM is actually a bank of 4 planes, 64KB each. By manipulating the VGA's control registers the programmer can decide how some or all of these 4 planes will be affected by each write or read operation. In 256 color mode each byte in a plane represents a single pixel. On the first line of the screen pixels 0, 4, 8, 12 etc. are all contained in memory plane 0, while pixels 1, 5, 9, 13 etc. are contained in memory plane 1 and so on. A single byte written to the 64K window, when all planes are enabled can write up to 4 pixels (of the same value) at once. Through a combination of the 64K window available, and the selection of one of the four planes (an effective extra two bits of address space), this allows the manipulation of the total 256K video memory.

Mode 13h, however, allows the programmer to access the VGA in "chunky" (linear) fashion, where each consecutive address represents a consecutive pixel on screen. Planes need not be manipulated to select the correct pixels to modify or read.

This is made possible because in Mode 13h the hardware uses the last two bits of the address (in the 64K window) to select the plane to write to. The upshot is that the programmer has a simple access model; the downside is that three quarters of the video memory is now inaccessible (we can now only access a total of 64K of display memory through the window, rather than 256K that is accessible indirectly by manipulating the planes). A simple bank switching method could have made the remaining memory available, and indeed bank switching was made available on Super VGAs to access the larger VRAMs these devices sported.

Although never documented by IBM, an alternative planar 256 color mode is available by "unchaining" the video ram; video modes created using this technique are collectively called Mode X.

Unlike SVGA and higher color depths, Mode 13h, part of the MCGA set of video modes, has 18 bits of color, 6 per channel. The palette data is not stored in memory per se, but rather modified, read and written to by low level I/O port calls, to the DAC registers.

The color palette data was often copied from the low level ports one at a time to a spot in memory after the screen data so the colors could be saved along with the pixels they belonged to. A mode 13h screen capture is merely 64000 bytes of values from 0 to 255, each an index of a color from a known palette of multiple colors. If the color palette is jumbled or totally wrong, a green leaf will appear blue, or any other possible color, depending on what that particular color was set for, which particular one out of 256.

Due to the way chunks of memory are allocated in such an environment, the bytes at high address &hA000 low address 64000 to 64768, can be written to with no negative effects. This lets the programmer save the additional bytes, 256 (colors) * 3 (color channels) = 768 bytes, at the end of the screen capture file. These have to be read back out again and written to the color port for them to change, when an image containing a footer of color info gets loaded. A method used with this was to have a global palette, and match the colors from an old color palette, to a new color palette. This meant changing the index of each pixel, where it would point to a near perfect match of one color from old to new color set. This also had drawbacks, as sometimes there were not enough gradients, and artifacts and such would appear.

It was also good sense to keep the first 16 colors, as they were, and modify colors 16 - 255. This would make sure any GUI or UI had reliable colors. Otherwise a user might be presented with a message or bit of text which was unreadable, or very difficult to read.

It is not essential to set the graphics mode through the BIOS; it is possible to switch graphics mode in 32-bit protected mode, if a little more complicated. It involves writing size data to the VGA controller. Set VGA graphics mode without BIOS in C

Notation

The "h" in Mode 13h stands for "hexadecimal"; it is actually VGA mode 19 in decimal. In x86 assembly language the mode is entered when AL is 13h, AH is 0 and BIOS INT 10h is executed.[1] However, the "h" is sometimes dropped for languages that don't support that method of notation; for example, it is known as screen mode 13 in QuickBasic and its spinoffs.[2] In C, hexadecimal 13 is written 0x13.

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Mode 13h — Le mode 13h est un mode de fonctionnement des cartes graphiques VGA. Le nom provient de la valeur hexadécimale 13h (13 en hexadécimal correspond à 19 en décimal, le h servant à préciser que le nombre est en hexadécimal) à assigner à l un des… …   Wikipédia en Français

  • Mode X — is an alternative video graphics display mode of the IBM VGA graphics hardware that was popularized by Michael Abrash, first published in July 1991 in Dr. Dobb s Journal, republished in chapters 47 49 of Abrash s Graphics Programming Black Book… …   Wikipedia

  • Mode X — Le Mode X est un mode non documenté du VGA de résolution 320 × 240 × 8 (256 couleurs). Il fut découvert par de nombreux programmeurs, mais le premier à l avoir popularisé, en le documentant et le nommant, est Michael Abrash dans les colonnes du… …   Wikipédia en Français

  • 13h — ►AFFICH Mode de fonctionnement d une carte vidéo VGA produisant un affichage en 320 pixels par 200, utilisé de façon très courante et pendant de nombreuses années dans les jeux vidéos …   Dictionnaire d'informatique francophone

  • Modo 13h — El Modo 13h o modo13 es un término utilizado para un modo gráfico estándar de 256 colores en las tarjetas gráficas VGA de IBM. Tiene una resolución de 320x200 píxeles y fue usado bastante en juegos de computadora y software de arte/animación a… …   Wikipedia Español

  • Режим 13h — VGA (англ. Video Graphics Array)  стандарт мониторов и видеоадаптеров. Выпущен 1987 году для компьютеров PS/2 Model 50 и более старших[1]. VGA являлся последним стандартом, которому следовало большинство производителей видеоадаптеров.… …   Википедия

  • SCSI mode pages — SCSI target devices provide a number of SCSI mode pages. These can be interrogated by a Mode Sense command and set by a Mode Select command. The Mode Sense and Mode Select commands include a 6 bit address field, allowing for 64 possible mode… …   Wikipedia

  • Video Graphics Array — The term Video Graphics Array (VGA) refers specifically to the display hardware first introduced with the IBM PS/2 line of computers in 1987 [cite web|title=Chronology of IBM Personal Computers|url=http://www.islandnet.com/ KPOLSSON/ibmpc/ibm1987 …   Wikipedia

  • Fonctionnement Des Cartes VGA — Le rôle principal d une carte graphique est de permettre l affichage d informations sur un écran d ordinateur. Ces informations peuvent être de plusieurs types : caractères alphanumériques, figures géométriques... Une carte graphique dite… …   Wikipédia en Français

  • Fonctionnement des cartes VGA — Le rôle principal d une carte graphique est de permettre l affichage d informations sur un écran d ordinateur. Ces informations peuvent être de plusieurs types : caractères alphanumériques, figures géométriques... Une carte graphique dite… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”