Image Viewers on CP/M

CP/M is by default a text-only affair. However, many of the machines that can run CP/M have hardware that would allow them to display graphics. As BBSing started to grow so too did the distribution of electronic images in formats such as: .RLE, .PCX, .GIF and .BMP. Therefore, programs were written on popular CP/M machines to display these pictures. Each program was hardware dependant because there were no standard operating system calls to interact with the graphics hardware. There was GSX-80, but you still needed a hardware dependant screen driver for each machine and not that many machines had them, plus it was pretty slow. There were also programs that printed the image to a printer rather than display on screen. This was particularly useful for those machines that didn't have sufficient graphical hardware or a version couldn't be found or adapted for them.

The main image formats, prior to 1990, were are as follows.

.RLE

CompuServe developed what is probably the earliest widespread image format in the mid eighties, possibly before 1985. It encodes black and white images in resolutions of 128×96 or 256×192, compressed using Run Length Encoding. This had the most widespread support and I've found the following RLE viewers for CP/M on the Walnut Creek CD:

  • PIXRLE.ARK - RLE graphics viewer for the NEC CP/M Starlet/8500
  • VTCRLE.LBR - RLE graphics viewer for the Visual 1050. This can display an .RLE image as well as save a screen to .RLE. It only works with 'high-resolution' 256x192 images, which the author states virtually all were then anyway. It was written by Alex Fetesoff in 1988.
  • RDUMP10.LBR - RLE graphics viewer, which can display on a TeleVideo TPC-1 or TS-803 graphics screen or print to EPSON FX, SEIKOSHA SP-1000 or 1200, or almost any other EPSON-FX 'work-a-like' printer on any CP/M computer. It was written in Basic and Assembler by Dave Clifford in 1987.

MacPaint: .MAC, .PNTG, .PIC, etc

MacPaint was released in 1984 by Apple and its image format used a form of Run Length Encoding called PackBits. The images are always 576×720 and monochrome. I found one viewer for this on the Walnut Creek CD:

  • PRINTEP v0.6 - Prints Electric Paintbrush/Macpaint images to a MicroBee DP80/100 printer or if you have a Microbee Premium or 256TC, to the screen. Dated 1992.

.PCX

ZSoft Corporation released PCX in 1985 as an image format for its PC Paintbrush graphics editing software. PCX stands for PiCture eXchange and supported a version of Run Length Encoding to compress the images. Over time several releases of the format were made to support more features and colour palettes.

The only viewers I found for PCX files were written by Steve Goldsmith in 1993 for the Commodore 128 with an 80 column monitor. They work reasonably well but can only view monochrome images and there is some image distortion. The best variants can be found on the Walnut Creek CD:

  • PCX'EM 1.0 - This can view 640x200 images and works with a 16k VDC. If you do have a 64k VDC then it has a mode which supports this and works faster.
  • PCX'EM 1.1 - This can view 640x480 images but requires a 64k VDC and a monitor capable of displaying in interlace mode.

.GIF

As colour support and display resolutions increased CompuServe decided to release a new image format in 1987, called the Graphics Interchange Format (GIF). This supported upto 256 colours and its use of LZW data compression was much more efficient than RLE. The original release was known as GIF87 and a further release was made in 1989 called GIF89a which added several features, most notably animation. However, not all GIF viewers can view the '89 version of the files so there is a program called GIFSTRIP to convert GIF89a images to GIF87. There are a few GIF viewers for CP/M:

  • GIFVIEW v1.05 - A GIF viewer for the Amstrad PCW. It was released by John Elliott in 1996 and is available from his John Elliott's Amstrad CP/M Software page as PWGIFSEA.COM. This is a self-extracting archive and the program allows you to view image files in GIF87 or GIF89a format as monochrome or greyscale images.

  • GIFPAS - The Turbo Pascal source for a GIF viewer/printer. This is useful if you want to adapt a GIF viewer to your own machine. It can be found on the Walnut Creek CD uuencoded within two emails about it, dated 1992.

  • VALGIF - This was available for the Epson QX-10/QX-16. I've seen it mentioned in a few places, such as on Vintage Computer Federation Forum, which has documentation dating to 1989. The documentation says that it could also view RLE files, but I haven't been unable to obtain a copy of the program.

.BMP

Microsoft developed the BMP format in 1987 to store Device Independent Bitmaps and was first used in Windows 2.0. It supports compression using RLE or a form of Huffman coding. I found one viewer for this format:

  • PCWBMP v1.5 - A BMP viewer for the Amstrad PCW, released by John Elliott in 1996 and available from John Elliott's Amstrad CP/M Software page as PWBMPSEA.COM. It can only view uncompressed .BMP files in monochrome or greyscale.

Miscellaneous Formats

There were many other formats supported by various applications, which tended to be specific to a single machine or hardware manufacturer. Some of the most notable are:

Stop Press: .SPC, .CUT
A Desktop publishing application for the Amstrad PCW.
Valdocs
An integrated software suite featuring a word processor; spreadsheet; charting, graphing and painting applications; email and more. It was written for the Epson QX-10/QX-16.
DR Graph
A graphing program written by Digital Research which used a GSX driver.
DR Draw
A drawing program written by Digital Research which used a GSX driver.

Video Demonstrating the Image Viewers

You can see some of the images viewers in action on various types of machine in the following video.

Creative Commons License
Image Viewers on CP/M by Lawrence Woodman is licensed under a Creative Commons Attribution 4.0 International License.

Share This Post

Feedback/Discuss

Sign up to get new articles straight to your inbox.

Delivered by FeedBurner

Related Articles

I Love ED on CP/M

I love ED on CP/M. It's often derided but I think it's just misunderstood and with a little practise its true value can shine through. It's elegant, easy to learn and only has about 25 commands but t...   Read More

The Pilot Programming Language on CP/M

Pilot was created by John A. Starkweather in the early 1960s as a programming language for Computer Assisted Instruction. It has often been compared to Logo because of its use with children. However,...   Read More

Walnut Creek CD: C64 Images

The Walnut Creek CD has a number of images on it from the 1980s and this article displays a selection of the Commodore C64 images that can be found on the CD. The quality of some of these pictures is ...   Read More

Walnut Creek CD: .RLE Images

The Walnut Creek CD has lots of images on it from the 1980s and this article displays a selection of the .RLE images that can be found on the CD. Where there are duplicates they are only shown once. ....   Read More

The Mouse Programming Language on CP/M

Mouse is an interpreted stack orientated language designed by Peter Grogono around 1975. It was designed to be a small but powerful language for microcomputers, similar to Forth, but much simpler. On...   Read More