At present CIGAL recognizes the following periperal devices:
Pointing devices (see CURSOR[4])
mouse - Mouse (Microsoft-type if PC) is automatically detected at startup
tablet - Summagraphics or ASCII data formats (see TABLET[4])
joystick - PC gameport device
Video Display:
PC:
8-bit pseudocolor (256 colors)
16-bit true color (RRRRRGGGGGGBBBBB binary color format)
24-bit true color (0RRGGBBh 3-byte format)
32-bit true color (0RRGGBBh 4-byte format (high byte ignored))
Mac:
8 - bit pseudocolor (256 colors)
16 - bit true color "thousands of colors" (RRRRRGGGGGBBBBB binary
color format)
Image acquisition:
Matrox MVP-AT
Imaging Technologies 151
Image Processor:
Matrox MVP-AT
Imaging Technologies 151
Printer:
PC:
PRINTER NOT SUPPORTED YET
Mac:
Text - This is a bit flaky
Graphics - This doesn't work
Analog/Digital data acquisition:
GW Instruments - MacAdios
National Instruments - analog and or digital boards
supported by the NIDAQ interface
library
Electronic Energy Design - ADB 4 channel serial analog
device
Gameport joystick device - 2-3 analog + 1-4 digital channels
per joystick
CIGAL is designed to be essentially machine independent. This is
accomplished in three ways. First, all data transfers to and from
hardware devices are handled as though they are writing to or reading
from standard CIGAL variables. For example, hardware frame buffers,
lookup tables, and camera settings work simply as special cases of
images, arrays, and number variables for CIGAL users. To modify the
hardware you simply change the values in the appropriate variables.
This feature means that CIGAL macro programs generally do not need to
know anything about the specific hardware available and lets algorithms
be moved easily from one system to another.
Second, almost every processing feature within CIGAL is available on
all machines regardless of peripheral hardware. This is possible
because software routines can emulate most hardware processing
capabilities if and when the appropriate hardware is not available.
Moreover, for any large computation CIGAL first checks to see if
specialized hardware is available and if so it is automatically used; if
not, software carries out the calculation. This strategy means that you
if you have better hardware, CIGAL will take advantage of it, but if you
don't have the hardware you can still do almost everything, it will just
be at slower speeds. The one major feature that the software cannot
emulate is digitizing images. To digitize images some form of a frame
grabber or scanner is required.
The third aspect of CIGAL's machine independence is that all hardware
specific functions are concentrated into just a few subroutines and
device tables. Adapting the language to a new system therefore merely
requires modifying this relatively simple interface to deal with the new
hardware.
These changes primarily involve substituting hardware-specific calls for
generic functions, such as transferring a block of data or switching
from one display mode to another. Since most hardware devices come with
a library of such low-level subroutines, moving to a completely new
device can be accomplished in just a matter of days, with a little
practice. See NEWDEVICE[1] for more information on adding new devices.