Glossary of Terms

48-bit Addressing

The Intel 80386 and higher processors are actually native 48-bit [addressing] processors. This means it uses a 16-bit selector and a 32-bit offset. Borland Pascal 7.0 is a 16 bit protected mode compiler which can be turned into a 48-bit protected mode compiler.


Blits are transparent bitmaps (ie, a bitmap with a colour, usually 0, removed). Extensive work (by Mark Iuzzolino) has gone into developing blindingly fast blits. Currently the Blit Format Specification (BFS) is version 2.0, which includes automatic blit clipping.


Borland Graphics Interface. Originally a way to write graphics programs easily and quickly. Somewhat outdated today.


DOS Protected Mode Interface is an industry standard that allows DOS programs to access the advanced features of the 80286-, 80386-, and 80486-based PCs in a well-behaved, hardware-independent fashion. For further reading, look in the Borland Pascal Language Guide under DPMI server.


General Protection Fault. Also known as Runtime error 216. The DPMI server generates a GPF when an error has occurred in your program. Most likely the error occured by one of the following:


HxVxNbpp is Horizontal resolution by Vertical resolution by N bits per pixel. For example: 640x400x8bpp is 640 pixels wide, by 400 pixels high, with one byte per pixel. Other possible bit depths are 15bpp, 16bpp, 24bpp, 32bpp or higher. Other possible resolutions are 640x480, 800x600, 1024x768, 1280x1024, 1600x1200, 4800x3600, et al.

Michael Abrash

Michael Abrash is the author of several books, most notably Zen of Code Optimization and Zen of Graphics Programming. He used to write for Doctor Dobbs journal. He also used to work for Microsoft and recently moved to ID Software (a move we all cheered). His optimization techniques are amazing, and I highly recommend his books. The only person I know of who can optimize better than he can is Terje Mathisen.

Mode 13h

320x200x8bpp. Probably the easiest graphics mode to code for, since all of the screen memory is accessable within one segment. To initialize the mode, one could do the following:
procedure InitMode13h; assembler;
	mov 	ax,13h
	int 	10h


320x240x8bpp un-chained. ModeX is a term that Michael Abrash invented. This is an un-chained video mode, which means that you have to use a form of bank switching to access all the screen memory. Some benefits of this mode are hardware page flipping, multiple on-card virtual buffers (sometimes referred to as double buffers), fast horizontal line fills (used for *very* fast solid filled polygons), and hardware scrolling. Some drawbacks of this mode are that it is difficult to code for and isn't any faster than Mode 13h on a PC today. This mode isn't supported by our VESA library, since it is outdated and doesn't offer anything we can't already do in a higher resolution through software. There is an example of how to init ModeX on the Introduction to Linking External ASM Files Into Borland Pascal page.


320x200x8bpp un-chained. Similar to ModeX in that it has multiple video buffers, but has a vertical resolution of only 200 pixels. Doom 1 and 2 were written using this mode.

NewOrder Demo Group

We are affiliated with the NewOrder Demo Group. Two of the members (TCA and Surface) are part of the MonsterSoft team. The name NewOrder comes from the English band, of which we are all fans. There will be little or no information about the band on this web-site, but we do recommend them as excellent music to program to.

Protected Mode

Protected Mode is a mode of operation on the Intel processor that was implemented on the 286 and higher. It expands the amount of physically addressable memory from 1MB to 16MB.

Real Mode

Real Mode is the other mode of operation. It is compatible with the original 8086 processor and allowed only up to 1 MB of readily addressible memory.


Super Video Graphics Array. Anything 640x400x8bpp and above is considered SVGA, since implementations differ from video card to video card.

Terje Mathisen

Terje is a brilliant coder who occasionally posts in alt.lang.x86 and comp.lang.asm.x86 (and, strangely enough, rec.skiing.nordic). If you see a post by him, save it (except for the skiing ones ;). They are always useful, even if you can't use it now. I have at least 2 meg of posts by him that I use as a reference guide to optimizations


VESA stands for Video and Electronic Standards Association. In this context they dictated a [pseudo] standard interface so that programmers could write a VESA library that would work on any SVGA.
Up one level