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 appUcations 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 

 v^thin 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 



