simultaneous data sets (e.g., the arithmetic operators PLUS, SUBTRACT, 
MULTIPLY and DIVIDE each require two operands and generate one 
resultant) within a labeled common buffer of 8192 integer values (or 4096 
single precision values). Within the code that implements a new operator, files 
are accessed with a complete set of virtual file handlers coded in FORTRAN. 
These routines provide services for opening an existing file, creating a new file, 
reading a vector into the buffer from disk, writing a vector from the buffer to 
the disk and closing a file. To minimize disk access time and thereby insure 
optimum response time to the user, techniques employed in managing other 
virtual memory systems were adapted to the Bugsystem. All data sets, stored 
on disk as contiguous files, are accessed directly using multiple block transfers. 
If, for example, a command is issued from an applications program to read a 
given vector within a file, then the software first determines if the vector is 
resident within the buffer. If it is resident, then the routine immediately 
returns to the calling program providing the length of the vetor and a pointer 
into the buffer to the first element of the vector. If it is not resident, its logical 
address within the file is computed and it—and the vectors which succeed 
it—are read into the labeled common area. A similar algorithm is employed 
when writing a vector into a file; i.e., a disk write is not required unless the 
output buffer area is full. 
Funneling all file input/output through a common set of routines has 
significant advantages. The development of new BRL operators is simplified 
insofar as the underlying applications programs do not each separately (and 
redundantly) require the algorithms needed to manipulate large files. Another 
advantage lies in the increased portability of the software. Versions of 
FORTRAN supported by different machines and operating systems vary most 
markedly in their non-standardized methods of accessing files. Machine and 
operating system dependencies are thus isolated in a manageable number of 
software modules, yielding more portable and more easily maintainable 
software. 
COUPLING TO RESEARCH ENVIRONMENTS 
Images 
Primary input to the Bugsystem consists of digitized video data. If the video 
images are sufficiently “clean” (i.e., possess high contrast and lack structural 
complexity), input of data to the computer is accomplished automatically in 
real time. Video tapes are replayed into the Bugwatcher which compares the 
incoming video signal to a “video threshold” set by the user. Those points 
within the image where the video signal crosses the video threshold are 
displayed on a video monitor. The user adjusts the video threshold to make 
these points coincide with the outlines of moving organisms and selects a frame 
257 
