IMLAC
IMLAC Corporation was an American electronics company in Needham, Massachusetts, that manufactured graphical display systems, mainly the PDS-1 and PDS-4, in the late 1960s and 1970s.
The PDS-1 debuted in late 1969 at that year's Fall Joint Computer Conference. It was the first low-cost commercial realization of a highly interactive computer graphics display with motion. The PDS-1's initial selling price was $9450 for single units, and down to $6545 per unit in larger quantities. The PDS-1 was functionally similar to the much bigger IBM 2250, which cost 30 times more. It was a significant step forward towards computer workstations and modern displays.
The PDS-1 consisted of a CRT monitor, keyboard, light pen, and a control panel on a small desk with most electronic logic in the desk pedestal. The electronics included a simple 16-bit minicomputer, 8-16 kilobytes of magnetic-core memory, and a display processor for driving CRT beam movements. By 1971 a mouse for the PDS-1 was available.
IMLAC is not an acronym, but is the name of a poet-philosopher from Samuel Johnson's novel, The History of Rasselas, Prince of Abissinia.
Timeline of products
- 1968: Imlac founded. Their business plan was interactive graphics terminals for stock exchange traders, which did not happen.
- 1969: PDS-1 introduced for the general graphics market. First units delivered late that year.
- 1970: PDS-2 introduced. It consolidated all of the PDS-1's circuitry into the desktop display unit.
- 1972: PDS-1D introduced. It was similar to the PDS-1 with improved circuits and backplane.
- 1973: PDS-4 introduced. It ran twice as fast and displayed twice as much text or graphics without flicker. Its display processor supported instantaneous interactive magnification with clipping. It had an optional floating point add-on.
- 1974: PDS-1G introduced.
- 1977: A total of about 700 PDS-4 systems had been sold in the US. They were built upon order rather than being mass-produced.
- 1978: Dynagraphic 3205, 6210, and 6220 introduced. They were designed to be used mainly by a proprietary Fortran-coded graphics library running on larger computers, without customer programming inside the terminals.
- 1979: Imlac Corporation acquired by Hazeltine Corporation, a maker of text-only terminals.
- 1981: Hazeltine's Imlac Dynagraphic Series II introduced. It was designed to be compatible with SIGGRAPH's CORE 1979 3D graphics library standard. Its cost was $9000 in OEM quantities. It had 2Kx2K resolution,192 kilobytes of RAM, and an 8086 microprocessor, all inside the monitor unit.
Refreshed vector display
The monitor was a 14-inch monochrome vector display, continually refreshed from local memory. Its normal resolution was 1024 by 1024 addressable points, and 2K x 2K in small-font scaling mode. The CRT electron beam moved freely in X and Y position and angle under program control to draw individual sloped lines and letter forms, much like the pen-on-paper motions of a pen plotter. The beam skipped blank areas of the screen. Things could be drawn in arbitrary order.Vector displays are a now-obsolete alternative to raster scan displays. In vector displays, the CRT electron beam 'draws' only the lines and curves displayed. In raster scan displays, the image is a grid of pixel spots, and the CRT beam repeatedly sweeps the entire screen in a fixed horizontal pattern, regardless of which dots are turned on. Bitmap raster graphics require much more memory than vector graphics. XGA-level 1024x768 black/white resolution requires 96 kilobytes of video refresh memory, 12 times more than a basic PDS-1. In 1970, that much core memory cost about $8000.
Vector displays were good for showing data charts, modifying line drawings and CAD diagrams, tumbling 3-D wire-frame shapes, editing text, laying out printed pages, and playing simple games. But they did not handle colors, images, filled-in areas, black-on-white screens, or WYSIWYG fidelity to the fonts of professionally printed text.
The PDS-1 screen was repeatedly refreshed or redrawn 40 times per second to avoid visible flickering. But irregular beam motion was slower than the steady motions on raster displays. The beam deflections were driven by magnetic coils, and those coils fought against rapid changes to their current. The screen flickered when filled with more than 800 inches of lines or more than 1200 characters, because the beam then needed more than 1/40th of a second to retrace everything.
The competing lower cost Tektronix 4010 graphics terminal used an alternative storage tube CRT technology which required no continual refresh and hence no local computer display memory at all. The glowing image was remembered by the CRT phosphor itself. But like an Etch A Sketch, the accumulated image could be modified or moved only by flash-erasing the entire screen and then slowing redrawing everything with data resent from some large computer. This was much less interactive than the PDS-1 and could not show animations.
On other displays of this era, text fonts were hardwired and could not be changed. For example, the operator consoles of the CDC 6600 formed each letter all at once by sending the Charactron CRT electron beam through a metallic stencil mask with an A-shaped hole, or through a B-shaped hole, etc.
But on the PDS-1, all letter shapes, sizes, and spacing were entirely controlled in software. Each desired form of the letter E had its own display subroutine which executed a sequence of short vector strokes for that letter. Each occurrence of a letter on the screen was a display processor call to that letter's subroutine. This scheme handled arbitrary fonts, extended character sets, and even cursive right-to-left languages like Arabic. The smaller, fastest-drawing fonts were ugly, with diamond-shaped approximations of rounded loops. The display subroutine scheme also handled electronic design symbols.
The PDS-1 monitor face was rectangular and was available in portrait or landscape orientation. The 1K x 1K grid of points was stretched 33% in the longer direction to allow text and graphics to fill the screen. All graphics programs then had to account for the non-square pixels. If the system was to be used mainly for graphics, the monitor could be installed with an unstretched grid leaving ends of the screen permanently unused.
Dual processors
The PDS-1's display processor and its minicomputer ran simultaneously, out of the same memory.Instructions for the display processor consisted of 1-byte short-stroke instructions for letters and curves, and 6-byte long vector instructions, and 2-byte unconditional jumps. The display processor had no conventional ALU instructions and never modified memory. Jumps supported subroutine calls for repeated objects like letters and symbols. Jumps also supported arranging displayed objects into linked lists for quick editing. XY positions were in integer form only. There was no support for rotations or arbitrary scaling on the fly. If a symbol crossed over an edge of the screen, the beam wrapped around to the other side rather than being clipped, making a smear. So higher levels of the application had to do the clipping test, using separate data structures. Programming the letter font subroutines was via assembler language. Code for line drawings and overall layout was generated on the fly, by programs running on the local minicomputer or on a large remote computer.
The PDS-1's built-in minicomputer was needed for responding to user keyboard and light pen interactions quickly, without delays in talking to a remote timeshared large computer for help. The minicomputer's main task was to build and modify the display list as needed for the next refresh cycle. For text and 2-D line graphics this was easy and did not involve much computing. To minimize costs, Imlac designed their own simple minicomputer with as few registers and logic gates as possible. It was a single-accumulator machine much like a DEC PDP-8, except using 16-bit instructions and data instead of 12 bits. There were no integer multiply/divide instructions, no floating point instructions, no microprogramming, no virtual addressing, and no cache. The single form of address modification was via indirect address pointers held in memory. Certain pointer cells would auto-increment when used. Stack operations were not supported.
Programming of this minicomputer was via assembler language. It was not object code compatible with anything else and so had limited tool support. Imlac eventually added a self-hosted Fortran compiler with hour-long compiles due to the cramped memory. Some PDS models had an optional IBM 2310 cartridge disk drive or 8-inch floppy drive. These ran a rudimentary disk OS supporting program overlays. The disks were dropped from later products.
The PDS-1 electronics were built from 7400 series low-density TTL integrated circuits, with only a dozen logic gates or 4 register bits per DIP chip. Small printed circuit cards held up to 12 chips each. The shallow desk pedestal held three racks or rows of cards, with 25 cards per row, and a wire wrap backplane connecting all cards. There was no uniform backplane bus. Customer documentation included complete schematics down to the gate level, so that customers could design their own interface boards. It was possible to see, touch, and understand every detail of how the whole system worked. Cycle time for the core memory was 2.0 microseconds for the PDS-1, and 1.8 microseconds for PDS-1D. TTL logic ran 10x faster, with 10 timing pulses per core memory cycle.
The basic PDS-1 did not include the optional hardware cards for long vectors. Instead, the minicomputer created a long sequence of short-stroke display instructions. The software used a quick Bresenham method to compute intermediate points for sloped lines without doing multiplies or divides. The long vector hardware similarly needed only an add/subtract circuit. If a long vector program was mistakenly run on a basic machine without that option, the display processor could go wild and potentially burn the monitor phosphor or deflection amplifiers.