I am transferring my laser light show information to the PC and figured I might as well upload it here for others. I plan to upload manual-like information, explanations and all the programs. To kick it off, here are a few excerpts:
I am using the CoCo (Radio Shack Color Computer) to draw "Laser Graphic" images with a low power, visible laser. The laser beam is directed at two mirrors, at right angles to each other. One mirror moves the beam horizontally; the other moves it vertically. This creates an 8-bit grid which is 256 by 256. Each mirror is attached to the shaft of a "galvanometer", a device which turns in response to its current. It is like a heavy duty meter movement. With a small current, it turns a few degrees; more current, and it turns further. Reverse the current and it turns in the other direction. The combination of galvanometer and mirror is called a scanner.
It's just like the Fourth 'O July sparklers we've all played with. Swing them around fast and you can draw circles. (Gee! if I could only move quick enough to write my name!!) Well, Now I Can! The limit on what I can draw is the speed of the scanners. As the images get more complex, it takes longer to draw the complete image.
Using programs I developed over several years I draw images, assemble them into a single file called an Image Library. Then, using a number of choreography commands I display the desired images and move them around on the screen, usually to music. The software allows independent control of each image for size, location, and rotation. For size and location the X and Y are independent. For rotations only one axis at a time is active on this under 1 MHz clocked Processor. For X and Y axis rotations Perspective and Depth Cueing are provided. The software also has the ability to tightly time the motions with external music.
LEDIT: This is the initial workhorse for producing a show. It is a Basic program for drawing images with the X-Pad. It enters a vector each time the pen is pushed, or generates continuous vectors as the pen is moved around. It has the ability to join two images, save part of an image and add or delete at only the end of an image. It also modifies the entire image for adjusting the size, location, rotation angle and shear. Editing single vector coordinates was crude; done manually by searching through the image coordinates on the screen. See IEDIT for more image editing. LEDIT has a “Circle Generator” for making circles, Lissajous patterns and the extended Quasi-Lissajous static and animated patterns describable easier in words. LEDIT operates the F7 Display Processor in Mode 1. It uses ML routines: LISTEND and GRID. See Circle Generator.
Laser-F7: The workhorse “Display Processor” is the “F7th” version of display processor that I went through to get to this point. This is a machine Language (ML) program that displays laser images and runs shows. It sequentially pulls image coordinates from memory, applies the parameters that determine things such as: show image, image size, location, rotation, etc. and sends the modified coordinates to the D/A addresses. These parameters are in what is called the “Picture Control Block” (PCB) located before the image coordinates. Note that the actual image coordinates stored in memory are never changed during a show. Changes to the memory values of an image are only changed in the drawing and editing phase. The Display Processor also pulls “Motion Control Commands” from memory and uses these to make changes to the PCB values to create a show. The commands are executed only in-between image scans. Doing otherwise would produce wobbling or scintillation within an image caused by the increased delay between vector outputs. I wrote all this code so that it is re-locatable by placing either addresses or address offsets into the proper places to allow it to find the Image Library and commands. F7 also reports unrecognized command opcodes with a value of 2 in a RAM location that (I believe) SEDIT reports. See ERR in the FCBs in the beginning of the assembly listing. Mode 0 displays all images in a library in sequence, one image scan at a time. Mode 1 displays only one specified image. Mode 2 displays all images, but only changes image on a key press. Mode 4 is the full show mode. Mode 8 was reserved for the un-implemented Disco mode, or a slow motion mode. The Laser-F7 Display Processor has 32 bytes of variables, 853 bytes of “action” code, 1067 bytes of command parser and 256 bytes of twos-complement cosine (-180 to +180) trig table for 2208 bytes total. The PCBMAP is 2 bytes per image and obviously varies in size. Assembly was done with SIGMON.SEDIT: A Basic program for assembling complete laser shows. It combines images from disk into an “Image Library”.
SEDIT is the show Editor. Using an already assembled Library of images, Choreography commands are used to control which images are displayed and the motions. Several Images can be displayed, each with its own independent motions. Command files can be combined with different Image Libraries to allow producing similar shows for different venues where the choreography is the same for a different set of images. Timing can then be adjusted to suit each venue.
...[snip]... To be Ciontinued
Updated Feb 7 2013