Graphical display system
IMLAC Corporation
was an American electronics company in
Needham, Massachusetts
, that manufactured graphical display systems, mainly the
PDS-1
and
PDS-4
, in the 1970s.
The PDS-1 debuted in 1970. It was the first low-cost
[1]
commercial realization of
Ivan Sutherland
's
Sketchpad
system of a highly interactive computer graphics display with motion. Selling for $8,300 before options, its price was equivalent to the cost of four
Volkswagen Beetles
. 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.
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
.
[2]
Timeline of products
[
edit
]
- 1968: Imlac founded. Their business plan was interactive
graphics terminals
for
stock exchange
traders,
[3]
which did not happen.
- 1970: PDS-1 introduced for the general graphics market.
- 1972: PDS-1D introduced. It was similar to the PDS-1 with improved circuits and
backplane
.
[4]
[5]
- 1973: PDS-1G introduced.
- 1974: PDS-4 introduced. It ran twice as fast and displayed twice as much text or graphics without flicker.
[6]
Its display processor supported instantaneous interactive magnification with clipping. It had an optional
floating point
add-on.
- 1977: A total of about 700 PDS-4 systems had been sold in the US.
[7]
They were built upon order rather than being mass-produced.
- 1978: Dynagraphic 3250 introduced. It was designed to be used mainly by a proprietary Fortran-coded graphics
library
running on larger computers, without customer programming inside the terminal.
[8]
[9]
- ????: Dynagraphic 6220 introduced.
- 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.
[10]
[11]
The
DEC GT40
had a similar design and price point to the PDS-1D. Its desktop electronics were more compact and used a mass-produced
PDP 11/05
board set as its local minicomputer. This automatically gave it a much bigger set of programming tools. But it too, was usually driven by applications running on larger PDP systems.
Refreshed vector display
[
edit
]
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 (a 'bitmapped' image), and the CRT beam repeatedly sweeps the entire screen in a fixed horizontal pattern (like in TV sets), regardless of which dots are turned on.
[12]
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.
[13]
(It now costs only 0.05 cents of shared
DRAM
.)
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.
[14]
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.
[15]
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
[
edit
]
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. (This was fixed in later models.) 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
[16]
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
[17]
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.
Applications
[
edit
]
The PDS-1 and PDS-4 were bought in small numbers by R&D organizations and many universities. They developed pioneering computer applications and trained the next generation of graphics system designers. The
FRESS
hypertext
system had enhanced capability and usability if accessed from a PDS-1 system; the user could make hyperlinks with a light pen and create them simply with a couple of keystrokes. Multi-window editing on FRESS was also possible when using the PDS-1. PDS-1 systems were used to design Arpanet's network graphics protocol.
Imlac display systems were bundled into various larger commercial products involving visual design and specialized software. Imlac sold a newspaper layout and
typesetting
system using PDS-1 called CES. MCS's Anvil mechanical CAD system used later Imlac workstations to interactively design mechanical parts, which were then milled out automatically from metal stock.
[18]
Some simple applications such as text editors were entirely coded in Imlac assembler and could run without much involvement with a larger computer. Hofstadter composed his book
Godel, Escher, Bach
on an Imlac editor. But most graphics applications required strong floating point support, compilers, and a file system. Those applications ran mostly on an expensive timeshared computer, which sent digested image data to the Imlac, which ran a small assembler program emulating a generic graphics terminal. A typical use was rendering architectural drawings and animated walkthroughs that had been previously drawn offline. PDS-1 use was held back for several years by not having a standard program library supporting animation or interactive drawing and dragging of objects.
But at night time, students were willing to write large amounts of assembler code just for fun. The PDS-1 applications most remembered today are the early interactive
games
. The two-player
Spacewar!
was ported from a PDP-1 demo.
Freeway Crossing
, an early predecessor of the popular arcade game
Frogger
, was created on a PDS-1 as part of a psychology experiment in 1971.
[19]
[20]
Mazewar
, the first online
multiplayer computer game
, was created on a pair of PDS-1's. Later, up to 8 players ran on PDS-1 stations or other terminals networked to the
MIT
host
PDP-10
computer running the Mazewar
AI
program.
[21]
Mazewar games between
MIT
and
Stanford
were a major data load on the early
Arpanet
.
Pixels replace vector displays
[
edit
]
The density, capacity, and price of computer memory have improved steadily and exponentially for decades, an engineering trend called
Moore's Law
. The limitations of refreshed or storage vector displays were accepted only in the era when those displays were much cheaper than raster-scan alternatives. Raster graphic displays inevitably took over when the price of 128 kilobytes no longer mattered.
Imlac PDS-1's at
Xerox PARC
impressed them with its interactivity and graphics. But its ugly text prompted
Chuck Thacker
to develop the experimental bitmapped
Xerox Alto
machine in 1973,
[22]
a decade before that much memory was affordable for non-research single-user machines. And Alto led to the GUI revolution.
The PDS-1 and similar vector terminals were supplanted in the 1980s by (non-programmable) raster graphics terminals such as the AED767.
[23]
[24]
And by easily programmed personal workstations with raster graphics such as the
Terak 8510/a
UCSD Pascal machine and the high performance
PERQ
Unix
system. And those were supplanted by
microprocessor
-based mass-market
Macintoshes
,
Windows
PCs, and
video game consoles
. And now by single chips inside
smartphones
.
Emulation
[
edit
]
In 2013, an Imlac emulator named sImlac was written.
[25]
An update version of this emulator can be obtained from the GitHub repository of the Seattle-based
Living Computers: Museum + Labs
.
References
[
edit
]
External links
[
edit
]