#!/usr/bin/perl # PROGRAM ABSTRACTS $catalog = "missing"; $heredoc = <<'HEREDOC'; DECUS NO. 8-711 Microprocessor Cross Reference Program for OS/8 Robert Tedford, Digital Equipment Corporation, Marlborough, Massachusetts MXR8 is a cross reference program which operates on output from MLA8, the Microprocessor Cross-Assembler. It is written in PAL8 and runs under OS/8. MXR8 aids the programmer in writing, debugging, and maintaining assembly language programs by providing the ability to pinpoint all references to a particular symbol. Minimum Hardware: OS/8 System, DECtape or Disk Pack Storage Requirement: 8K Restrictions: All characters after the first semi-colon in a statement will be ignored. Characters appearing after the first set of delimeters in a TEXT statement will be treated as a user symbol. Source Language: PAL-8 Catalog: December 1974 DECUS NO. 8-712 IRSPEC: Calculation "On Line" of Far Infrared Spectra by Fourier Transform M. Boniface, J. P. Huvenne, B. Boniface, Laboratorie de Physique et Mathematiques, U.E.R. de Pharmacie, Lille, CEDEX, France IRSPEC enables the on-line acquisition of the signal given by a far-infrared Michelson Interferometer. It, simultaneously, computes the data Fourier transform after apodisation and displays the results. Many calculation loops, using all the data points every time, allow the user to observe the spectrum evolution and eventually to stop acquisition.

As soon as the wanted data have been completed (max. 2048) IRSPEC computes the final coefficients of spectrum (max. 200) and displays permanently the result which can then be printed or plotted. A reference spectrum can be stored to compute, from a sample spectrum, transmission (I/1.) or absorbance (log (I./1) ).

Documentation for the program is written in French. Minimum Hardware: LAB 8/E with 8K Other Programs Needed: EAE, FPP Restrictions: FPP must be entered before IRSPEC Source Language: PAL III DECUS NO. 8-714 PDPLST: PDP-8 - IBM 360/370 Cross Listing Program R. E. Stickel, Jr., University of Kentucky, Lexington, Kentucky PDPLST is an interface program which provides IBM 360-370 listings and-or decks of programs prepared using the DEC-08-ESAB PDP-8 Editor and dumped as core images onto IBM compatible magnetic tape. PDPLST is compatible with the SYSMON monitor system. Minimum Hardware: IBM compatible magnetic tape drive Storage Requirement: 12K IBM Bytes Source Language: 360/370 Assembly DECUS NO. 8-722 Mini-Copy Philip Hunt, Middletown TWP. High School, Middletown, New Jersey This program when loaded and started at 00200 will accept data, either Binary or ASCII from the high speed reader, a character at a time and send it out to the low speed punch on the ASR33 teletype. Other Programs Needed: Bootstrap Loader Source Language: PAL-D DECUS NO. 8-729 DS340 DEMO Package Business Products Group, Digital Equipment Corporation Submitted by: Gene Naddeo, Digital Equipment Corporation, Maynard, Massachusetts

The demonstration programs contained in this package range from data entry and generalized bookkeeping to a calendar program. Although complete in themselves, these programs should not be considered a complete application package since they do not have the support programs needed to maintain the data files.

To insure accessibility to any COS300 user regardless of input media, the actual program material should be requested directly from Mr. Naddeo of DEC'S Business Products Group. Distribution fees will be compatible with DECUS Service Charges. Minimum Hardware: PDP-8, VT05, LS8E, RK08 or RK8E Other Programs Needed: COS300 Operating System Storage Requirement: 12K Source Language: DIBOL DECUS NO. 8-787 LISZ - An Extended ISZ Instruction for the PDP-8/L J. S. B. Clark, Poultry Research Center, Edinburgh, Scotland The write-up describes a hardware modification to the PDP- 8/L which will allow a greater facility for bit manipulation than is possible with the standard instruction set. The modification extends the use of the ISZ instruction. An example shows the application of this LISZ instruction to a polarity-quantized algorithm, with a reduction of between 15% and 50% in execution time. Hardware Required: PDP-8/L or 8/I Source Language: PAL III, PAL-D Restrictions: Involves a small hardware modification Catalog: June 1976 DECUS NO. 8-788 Using the RAR RAL Micro-Instruction as an Auxiliary Command J. S. B. Clark, Poultry Research Centre, Edinburgh, Scotland The limited instruction set of the PDP-8/L can cause program inefficiency. A modification is described which allows the redundant micro-instruction RAR RAL to be used as a control command. An example of its use in enabling another modified command under program control is given. Hardware Required: PDP-8/L or PDP-8/I (unverified) Source Language: PAL III, PAL-D Restrictions: Involves a hardware modification DECUS NO. 8-790 CHRDIS - Display Alphanumeric Characters on ND-50/50 System Dipl. Phis. Mircea Pentia, Nuclear Education and Training Center, Bucharest, Romania This program is an overlay for Physics Analyzer program (ND 40-1042). It is used to write and display the ASCII characters typed to the teletype keyboard, on the scope from the standard Series 50/50 Nuclear Data Analyzer. It is possible to display maximum 256 characters. (32 per line times 8 lines.) Object Computer: PDP-8/L Storage Requirement: 8K Hardware Required: Nuclear Data 50/50 Interface System Other Programs Needed: Nuclear Data's Basic Software Source Language: PAL III DECUS NO. 8-791 DELAY J. Victor Nahigian, 39 Beaver Rood, Weston, Massachusetts When entering a tape via the low-speed reader in 8K BASIC or 8K FOCAL, characters are occasionally dropped. To avoid this, null characters must be inserted after each line in order to allow the computer to catch up. This program performs that function. Storage Requirement: 4K Hardware Required: PDP-8, ASR33 Source Language: PAL III Restrictions: Can't be used on high-speed reader or punch DECUS NO. 8-807 UTILITY Routine and Patches for the FORTRAN Compiler Dr. IR. L. Boullart Stedelijk Instittuut voor Handel & Secretariaat Gent, Belgium These patches enable a user with only a low-speed reader/punch to write, compile, load and run FORTRAN-written programs. One of the FORTRAN library programs "UTILITY" has been rewritten to allow use of the low-speed reader/punch at run-time and is included with this offering. Storage Requirement: 8K Hardware Required: PDP-8E, 8K, TTY Other Programs Needed: 8K FORTRAN Compiler, 8K Sabr Assembler, 8K Linking Loader Source Language: PAL-8 DECUS NO. 8-810 PING: Ping-Pong Game on Display M. Boniface, Laboratoire de Physique, U.E.R. de Pharmacie, Lille CEDEX, France This program allows the users to play a kind of ping-pong on the display. The rackets (cursors) are set by the levels of analogic channels. The speed of the ball (spot) and its direction vary during the game with the rebound.

Documentation and listing are in French. Storage Requirement: 4 pages Hardware Required: EAE, clock A/D converter, display Source Language: PAL III DECUS NO. 8-817 LABCOL I: Laboratory Control and Automation Language Donald A. Walter and Kathryn B. Willis, West Virginia College of Graduate Studies, Institute, West Virginia LABCOL I is a user oriented language to be used on PDP/8 series computers for control of laboratory devices or other equipment. It is easily used by those familiar with FORTRAN, BASIC, or other computational languages. Commands are easily substituted or added, and it can be readily adapted to various peripheral device configurations. The language has these features: integer arithmetic; decision and branching; subroutines; variable, numerical, array, and literal arguments; nesting and looping one and two dimensional arrays; and manipulation of symbol lists.

LABCOL I is particularly suited for conducting human and animal research, where experimental decisions must be made based on responses. Storage Requirement: 4400(8) Hardware Required: PDP-8E, ASR33, DK8-EC, VC8E, (DR8-EA*) Other Programs Needed: RIM-BIN Source Language: PAL III Restrictions: * Program has been used with user designed 12-bit relay I/O interface. Adaptable to any 12-bit interface configuration. DECUS NO. BASIC8-5 PLOTTING - SET 2 Varied Includes:

PLOTTR - Plots the graph of any function.
Note: This set will be expanded as new routines are submitted. Catalog: December 1974 DECUS NO. FOCAL8-311 SIXPAC Richard Small, Federal Products Corporation, Inc., Providence, Rhode Island SIXPAC reads, echoes, and packs characters into variable storage with a density of six (6) characters per variable, types them in the form entered, and does not require preassignment of core for character storage. Entering, editing and typing the six character blocks is done during execution of a FOCAL program. Minimum Hardware: PDP-8/E Other Programs Needed: FOCAL/F, paper tape version (FOCAL8-227a) Storage Requirement: 172 octal words (on one page) Source Language: PAL III DECUS NO. 12-164 DIAL. EXT John R. Raines, Northwestern University Medical School Chicago, Illinois This is an extension of DIAL-MS for 1600 blocks (DECUS 12- 110) which uses tape blocks 356 and 357 to provide 12 additional monitor commands including SQUASH and String search. "AP" has been speeded up. Provision for addition of 7 more commands has been made.

Many of the routines will run in 8K or 12K. Some modifications will be desirable for almost any other installation. Minimum Hardware: PDP-12, DIAL-MS Configuration, EAE Source Language: DUAL 32 (DECUS 12-153) DECUS NO. 12-165 NAP SYS: Program to Analyze Neuronal Spike Data William J. Vaughn Submitted by: Edward V. Evarts, M. D., National Institute of Mental Health, Bethesda, Maryland The program accepts as input two channels of analog data, one of which contains pulses at least 1 msec apart and the other being a control signal consisting of seven separate DC voltages. The first channel will usually represent continuous spike activity from a single neuron cell (it should not be the raw recording, however, but the output of a pulse generator whose input is the raw neuron potential), and the second a time record of stimulus and responses of some task performed during the recording.

The system does the following: 1) Translates the analog data into a digital record on LINCtape in a standard format; 2) Reads the digitized data from LINCtape and forms a raster, histogram and neural response display; 3) Outputs the data via a printout or by some suitable photographic setup.

The unique feature of this system is the ability to easily correlate spike activity not only with the stimulus but also with the response. The system is self-contained and may be loaded from the switches or from "DIAL". It requires an 8K PDP-12 with a KW12 clock, A-D channels, and two LINCtape transports. An "Interface" box will also be needed to monitor and control the two input channels from the tape recorder. The digitizing process is run separately from the analysis program, and other programs are available to catalog and label the data.

The system requires no programming experience to use, but some acquaintance with the PDP-12 will be necessary.

The system has its own Monitor/Loader which is loaded from the switches or which may be loaded from LAP6-DIAL by (LF) NAP,O (CR). The Monitor/Loader presents the "menu" of programs which are then loaded and started by use of the keyboard. The binaries cannot be loaded independently by the DIAL loader as they have no header block.

A system for generating two analog tape channels which the system digitizes is necessary. The digitizing resolution is 1 msec, whereas the final displays only show a 2 msec resolution. Source Language: LAP6-DIAL DECUS NO. 12-166 OS8-VC12 Display Device Handler for the PDP-12 Gotz Romahn, Heinrich Hertz Institut, Berlin, Germany The VC12 handler is a two-page output device handler for the PDP-12 display. It conforms to all OS/8 device handler standards, especially check for CTRL/C as a monitor call, error exit, when trying to read with the display and normal exit if zero pages of text are specified to be transferred. Advancing through the output file is done by typing any key on the teletype (except CTRL/C). Minimum Hardware: OS/8, VC12 Display Controller Other Programs Needed: OS/8 BUILD Storage Requirement: 2 pages Source Language: PAL-8 DECUS NO. 12-167 FOCAL Patches P. C. Diegenbach, University of Amsterdam, Amsterdam, Holland Eight FNEW, FX and FZ subroutines for FOCAL-12. Some may also be used under FOCAL '69. Their purposes are to use the Tektronix display terminal 4010 (8 and 12), to use a second teletype-like device (8 and 12), to type out an integer as consisting of two characters (8 and 12), to read in specified DIAL programs (12), and to read in the DIAL monitor (12). Other Programs Needed: FOCAL-12 (or FOCAL '69) Storage Requirement: 2K Source Language: DIAL (PAL) DECUS NO. 12-168 Spectral Analysis System Frieda Rods and Noel Flemming Submitted by: T. Joe Willey, Ph.D., Loma Linda University, Loma Linda, California The Spectral Analysis System is a series of programs developed for processing EEG data. To facilitate transitions from one to another, the programs have been placed in an executive. The system is designed to handle one channel at a time to allow for more flexibility. However, data from several channels can be digitized simultaneously and then separated into single channels for the analysis. This set of programs was developed for a particular environment, but could be applicable to a wide variety of settings. The system consists of the following programs:

DIGITIZE: Converts up to 16 channels of analog input signal to digital data stored in LINCtape with no gaps in real time.

DATA UNSCRAMBLER: Unscrambles interleaved data from up to four channels stored by DIGITIZE.

WILD POINT EDITOR: Checks digital data for possible artifacts by finding points of large amplitude. The editor has several editing options.

FFT POWER SPECTRA: Computes power spectra by the sum of the squares of FFT coefficients and stores 64 components per spectrum on LINCtape. Also the program creates a format block. It uses DECUS 8-143 as the computing kernel.

FORMATTER: Accepts alphanumeric identification of data and control parameters to be used by AUTOMATIC PLOTTER.

AUTOMATIC PLOTTER: Plots serial FFT spectra using hidden line suppression methods from data stored on LINCtape acĀ¬ cording to format control parameters. Alphanumeric identification is plotted with the group. This program can bootstrap from one format block to the next for continuing operations.

FREQUENCY BAND PLOT: Computes and plots averages and standard deviations for a specified frequency band from spectra stored on LINCtape and displays them sequentially. The band plot can be plotted or typed out; alphanumeric identification is included with the output.

SPY: Moving window display of data on tape (modified from DECUS No. 12-57). Minimum Hardware: PDP-12 with 8K core, VR12 display and 2 LINC transports; KE12 extended arithmetic element; AD 12 A/D converters, 8 channels; ASR33 teletype or equivalent; CALCOMP plotter or equivalent Source Language: LAP6-DIAL-M3 DECUS NO. 12-169 HIST PLOT: A Versatile Program for Cross Correlation of Point Process Data on a PDP-12 Stephen C. Woods, John T. Williams, Eric Halgren, Thomas L. Babb, UCLA Center for Health Sciences, Los Angeles, California HSTPLT is a multi-option program for cross-correlating two STAP-12 compatible event trains. When one train is designated as a reference train, various long or short pre- and post-reference times may be selected and all or only certain reference events may be selected for computation. The computed histogram with calibrations for time and numbers of events may be plotted and simultaneously individual bin counts may be printed. Minimum Hardware: PS/8, OS/8 or OS/12 Operating System, LINCtape or other mass storage device, EAE Other Programs Needed: QANDA modified Storage Requirement: 8K Restrictions: Not restartable Source Language: PAL-12 or PAL-8 DECUS NO. 12-170 INPUT, STAT, DIST: A Statistical Analysis Package for the PDP-8 or PDP-12 Stephen C. Woods, Eric Halgren, Thomas L. Babb Submitted by: Thomas L. Babb, UCLA Center for Health Sciences, Los Angeles, California INPUT reads and stores trains of data. STAT performs a variety of statistical tests upon these trains (X^2, RUNS, KOLMOGOROX-SMIRNOV, MANN-WHITNEY U, t-test). DIST finds the probabilities associated with some of the values given by these tests. One application of these programs is the nonparametric statistical analyses of histograms derived from neuronal spike trains, a form of point process data. Minimum Hardware: OS/8 or OS/12; LINCtape or other mass storage Other Programs Needed: FORTRAN IV (RPTS) Storage Requirement: 8K, 12K for STAT2 DECUS NO. 12-171 Three Patches to the Clinical Lab-12 System Mark J. Hyde, Upstate Medical Center, Syracuse, NY

  1. AUTOTIME gives RE the ability to read the time of day maintained by the Monitor, thus simplifying the entry of requisitions.
  2. RWARDP causes RE to print the ward along with the name in the verification line, thus providing for better patient identification.
  3. WWARDP causes WO to print the ward next to the patient name on worksheets printed for workstations.
Minimum Hardware: Clinical Lab-12 Other Programs Needed: LAP6-DIAL-MS Source Language: LAP6-DIAL DECUS NO. 12-172 WVU Utility Package C. G. Roby, Jr., D. J. Duffy, J. A. Donnely, et al Submitted by: T. W. McIntyre, WVU Medical Center, Morgantown, West Virginia

DX - Displays the OS/12 index similarly to DIAL'S DX command. Will also print the index with an identification which is also displayed and may be changed.

IOPACK - Modifications to PIP's I/O package to simplify calling and using.

MAP - An improved bit map program which will print map, reverse map, ranges or reverse ranges.

LIST - A paged pretty lister. Lists, LS files, documents or forms with variable tabs, titles, etc. Also lists name of file in large block letters.

MARK12 - Trivial modifications to MARK12 to mark 128 word blocks with the P option and return to OS/12.

TTYLPT - A two page handler that simulates the line printer on the teletype.

PLT - A two page handler that accepts decimal ASCII input and plots on a standard XY plotter with retransmitting slide-wire or null detector. Uses relay and D-A converters.

IBM - Converts OS/12 ASCII files from any input device to EBCDIC files on Magtape (TU10). Also converts in the reverse direction and has an option for forms control to FORTRAN.

PSDIAL - A quick and dirty converter for OS/12 to DIAL compatible files. Writes on LINCtape starting at block 0 of Unit 1. Minimum Hardware: OS/8, OS/12 System; VR14 or other display, X-Y plotter, D-A Converters, LINCtape, A-D Converters, Relays, TU-10 Other Programs Needed: OS/8, PAL-12 Source Language: PAL-12 DECUS NO. 12-173 SCOPEFOCAL Mark J. Hyde, Jamesville-DeWitt Central Schools, DeWitt, New York SCOPEFOCAL is 4K FOCAL, 1969 (DEC-08-AJAE) patched to allow use of the PDP-12 scope. To circumvent the problem of FOCAL not being fast enough to refresh the display, all points are displayed from a buffer. Minimum Hardware: PDP-12, TTY, VC12, VR12/14 Source Language: LAP6-DIAL DECUS NO. 12-174 CLOCK: Digital Clock with Westminster Chimes Michael F. LubozynskI, Vanderbilt Medical School, Nashville, Tennessee This is a software digital clock written for a PDP-12 with the extended arithmetic element (EAE). It displays the current time, counting the line frequency on the KW12 clock control Input 1, and chimes on the quarter hour. The chimes are completely modifiable and consist of a series of musical notes played on the computer speaker. The "clock" also chimes the hours. Source Language: DIAL DECUS NO. 12-175 PLOTZER Klaus E. Liebold, National Institute of Mental Health, St. Elizabeth's Hospital, Washington, D. C. A collection of programs written in FOCAL to plot point by point graphs on the Calcomp 565 plotter, label them, plot histograms, and percentage distributions. Minimum Hardware: PDP-12 and Calcomp 565 Storage Requirement: 8K Source Language: FOCAL-12 DECUS NO. 12-176 FOCAL-12 Overlay to Access the DF 32 Disk University Observatory, Vienna, Austria Access is provided to the DF 32 disk from FOCAL-12 via the FZ user function. There are two files: a 2K integer file and a 1K floating point file.

The programs are offered on DIAL-readable paper tape (source). Minimum Hardware: PDP-12, DF32 random access disk Other Programs Needed: FOCAL-12 Storage Requirement: 8K Source Language: DIAL DECUS NO. 12-177 TENNIS Lewis Brenner, Philadelphia Police Department Chemical Laboratory, Philadelphia, Pennsylvania The game of tennis Is played on the PDP-12 computer using the VR14 display scope. The rackets are controlled by A/D knobs 0 and 4 (left paddle) and 3 and 7 (right paddle). SSW0, when set, generates a ball from the center net. SSW5, when set, returns to the DIAL monitor on tape unit 0. The teletype bell rings when a player scores. Minimum Hardware: PDP-12, VR-14 display scope Other Programs Needed: DIAL System Storage Requirement: Less than 2K Source Language: DIAL DECUS NO. 12-178 NUFOCAL, Modified FOCAL-12 William E. Hatcher, Veteran's Administration Center, Temple, Texas This program is a patch to FOCAL-12 which allows the user to specify an output device which is unsuitable for output of an error message. A line printer not easily seen from the teletype might be such a device. If an error occurs when output is to the specified device, output will be restored to the teletype. Minimum Hardware: 8K PDP-12 Other Programs Needed: DIAL Operating System Source Language: PAL DECUS NO. 12-179 The Mann-Whitney U Test Klaus E. Liebold, National Institute of Mental Health, St. Elizabeth's Hospital, Washington, D. C. These three programs written in FOCAL-12 will perform the nonparametric Mann-WhItney U Test. For samples in which N2 Is larger than 20, a Z-value will be calculated and the correction for ties applied to the sampling distribution of U. Theoretically there Is no limit to the number of scores which can be analyzed. Minimum Hardware: PDP-12, VR12 scope, TU56 tape drive Storage Requirement: 8K Restrictions: Extended functions must be deleted Source Language: FOCAL . HEREDOC # Don't forget the newline before HEREDOC above! %italic = ( "Author", 1, "Contributed by", 1, "Editor's Note", 1, "Hardware Required", 1, "Minimum Hardware", 1, "Miscellaneous", 1, "Note", 1, "Object Computer", 1, "Other Programs Needed", 1, "PS/8 programming system", 1, "Restriction", 1, "Restrictions", 1, "Revised by", 1, "Source Language", 1, "Storage Requirement", 1, "Storage Requirements", 1, "Submitted by", 1, "Catalog", 1, ); # # This little routine simplifies the handling of lines # which end in commas, indicating they should be merged # with the following line. sub merge { local($line) = @_; while ($line =~ /,$/) { #warn "merge was: $line"; $line .= shift(@heredoc) . "\n"; #warn "merge now: $line"; } return $line; } # # The OCR doesn't save much by way of formatting information. # Here we use a heuristics and knowledge of the general layout # to try do do mark-up. @heredoc = split(/\n/, $heredoc); $state = 'header'; while (defined($line = shift(@heredoc))) { $line .= "\n"; # These were lost by split() #print "$state: $line\n"; $line =~ s/\r//g; if ($state eq 'header') { next if $line =~ /^$/; die "bad header: $line" unless $line =~ /^DECUS NO. ([^-]*-\d+[A-Z,]*)$/; # die "bad header: $line" unless $line =~ /^DECUS No. (L-[.\d]+[A-Z,]*)$/; $decus = "$1"; $decus =~ y/A-Z/a-z/; $decus =~ s/^l/L/; warn "mkdir $decus\n" unless -d "$decus"; $state = 'title'; $title = $author = ''; $submitted = $revised = ''; # print "cat >../$decus/decus-$decus.htm <decus-$decus.htm <

\1<\/I>:\2/ if defined $italic{$1}; # Colon cases may need more markup if ($1 eq 'Submitted by') { $submitted .= &merge("$2\n"); next; } if ($1 eq 'Revised by') { $revised .= &merge("$2\n"); next; } if ($1 eq 'Catalog') { $catalog = $2; $catalog =~ s/^\s+//; next; } } # Most bodies are just a big run-on paragraph. Where they are # not, it will be necessary to edit in a

. # (12-25, for example.) $body .= $line; if ($line =~ /^$/) { # warn "decus: $decus\n"; # warn "title: $title"; print "

\n"; chop $title; print "\n"; print "
$title
\n"; print "
$decus\n"; print "
\n"; # warn "author: $author"; # warn "submitted: $submitted"; chop $author; print "
Author: $author
\n"; $submitted =~ s/, $//; print "
Submitted by:$submitted
\n" if $submitted; $revised =~ s/, $//; print "
Revised by:$revised
\n" if $revised; $body =~ s/\t/ /g; $body =~ s/\n*$//; die "Missing a Catalog!\n" if $catalog eq 'missing'; $body .= "
\n
Catalog: $catalog
\n"; $body =~ s:\n
:\n:g; $body =~ s:
\n*
\n*::g; # warn "body: $body"; print "
$body
\n"; print "HERE\n"; $state = 'header'; } } }