Here I am installing a (64K
byte) EPROM board into one of the two ZAP computers in Stone Mountain Park,
Georgia. The 24 slot card cages were built into the laser projectors. The
projector was installed in a glass room that lifts out of the ground for
the nightly LASER show. This was a great arraignment, as you can test the
lasers during the day (see the poo bear animation in the background.)
The funny thing about this photo is that its the smallest image I ever saw the lasers make, yet when the glass room rises it projects the biggest digital image that I know about, some 3,000 feet wide (not counting the fireworks.)
I wrote the whole software system for LaserMedia. This included:
> TOP, the graphic digitizing program, a mixture of Z80-assembler and FORTRAN
> LV3, Level-3, the sequencing language, written in FORTH
> ZAP, the Zap animation Program. ZAP was written entirely in assembler, and
was about 20K Bytes (three 8KB chips) in size.
ZAP was written in a very object oriented style, although I did not
know what was meant by object oriented programming until the late 80's.
Within ZAP was the display routines which outputted a point every 70 microseconds
(14,285 time a second), in an interrupt process took about 70% of the
CPU. The other 30% of the CPU was used to handle real time request from
the ASCII terminal, updating the display of the ASCII terminal, interpreting
what we called level 2 commands, and running compiled level-3 code. I
added an ability to display real time text from an installed font, it
was called Word-Fire. The whole system ran from EPROM (plus 8K RAM). This
was a great feature, as in rock 'n roll concerts, the way things get fixed
is to kick it and hit reset. It only took about 3 or 4 seconds for ZAP
to come back up again, and that delay was due to the time to update the
ASCII screen over the 9.6K baud serial link.
I also added a level-4 interface, which was simply connecting level-3 programs
in the one hit function keys. We added to the program as needed, features
such as a host / multiple slave communication, audio time code (my home
brew version), relay output / input synchronizing, fireworks ignition control,
etc. We also added battery backed RAM for saving level-2 programming.
Laser Media's graphic personal were trained in the art of burning EPROM's.
I wrote the simple program and taught them hexadecimal! Both the graphic
animation's and level-3 control programs were burnt onto EPROM's and placed
on the 64K byte cards. Because the address space of a typical 8-bit CPU
like the Z80 was 64K total, we "bank switched" the upper 32K.
Those funky looking wires in the photo are bank switching wires. When
the ZAP program started up, it would look through all possible banks to
find the special headers, to find the programs, graphics and fonts installed.
Because this was a STD industrial bus, you could hot swap the cards. Usually
you needed to reboot after hotswaping. This is where I must of got the
bad habit of hot swapping SCSI cables. I know in some video equipment,
they hot swap cards as well, but I digress here ...
Usually I'm modest, but I know the ZAP system was a real accomplishment,
because it got cloned in Germany. They actually figured out all my checksum
tricks and worked around them, those &%&%#$&. One of the great
things about the system was the 16 channel D2A (digital to analog) card
that Gary Thompson designed. Since the DACs were multiplying DACs, we
were able to configure it to do real time analog rotations using matrix
algebra. This was a pretty cool trick that did not tax the 4 MHz 8-bit
processor. Also Seiji Inatsugu designed a super powerful servo scanner
driver. It had to be adjusted just right, or you blow up the scanners,
which happened quite often, but was worth it to get the look we got.
The next year (1984) we installed a five projector system for EPCOT, Florida,
around (and in) the World Showcase Lake for the show "IllumiNations".
That was fun.
Both systems are still running 16 years later, and I am under the impression
LaserMedia continued to sell ZAP up until the end, 2000.