Go to index page.


A program to display images saved as GIF files on IBM PC display devices using the BGI (Borland) driver interface.

The program operates as follows:

  1. Reads the GIF file header and determines the image size.

  2. Dynamically allocates enough memory to hold all the image internally. One byte per pixel is always allocated, so a little bit more than width*height (of screen, not image) bytes are required.

  3. Reads all the image in. Interlaced images are read in correctly, although they are displayed sequentially.

  4. Display first image using the defaults as set by the command line option.

  5. Goes to interactive mode. For a full description of the interactive mode see below.


gif2bgi [-q] [-d BGI dir] [-u driver] [-z zoom] [-b] [-h] gif-file
If no GIF is given, gif2bgi will try to read a GIF file from stdin.

Memory required:



Quiet mode. Default off on MSDOS, on under UNIX. Controls printout of running scan lines. Use -q- to invert.

[-d BGI Directory]
Where we should look for default drivers (as supplied by Borland). For example '-d c:/tc/bgi'.

[-u driver]
Specifies a user-defined BGI driver. If for example you have a BGI driver for your special vga called MYVGA.BGI and you want to run it in mode 2, then type '-u c:/tc/bgi/myvga.2'. Note the absolute path to the driver must be specified. Also note that we use '/' and not '\' so they won't be treated as options.

[-z zoom]
Sets zoom factor of the view. Zoom factor should be power of 2 up to 256. Default is 1 (no zoom).

Print one line of command-line help, similar to Usage above.

Interactive mode:

Once the image is displayed, the gif2bgi program goes into interactive mode which recognizes the following commands:

C - get Color and position
In this submenu, a cursor appears and the location and color of the pixel underneath it are printed. The 4 arrows may be used (shifted for faster movement) to move the cursor. Any other key will abort this submode.

D - zoom Down
Zoom down by factor of 2 unless current zoom factor is 1.

R - Redraw
Redraw the image.

S - print Status
Print status of image and program.

U - zoom Up
Zoom up by factor of 2 unless current zoom factor is 256.

arrow keys
The 4 arrow keys can be used to pan in the desired direction, if the image overflows in that direction. If the image fits into the screen, arrow keys are ignored. The panning steps are 1/2 screen if not on image end.

SPC - abort
Space bar may be used to abort current image drawing.

ESC - abort
Escape may be used to abort current image drawing.


This program is useless in a Unix environment and is not normally built there.

No color quantization is used in this program; thus, if a GIF image has more colors than the BGI driver support, this program will abort.

This driver is optimized for drivers with one byte per pixel (256 colors) and will run MUCH faster on such drivers.


For some reason I could not figure out, on my ATI wonder card, int 10h call 10h (AH = AL = 10h) to set the color registers sometimes result with wrong colors. Direct access of the card registers gives correct results.


Gershon Elber
Eric S. Raymond <esr@snark.thyrsus.com>