#!/usr/bin/perl #PDP-12 PROGRAM ABSTRACTS #$catalog = "July 1974"; $catalog = "May 1975"; $catalog = "November 1969"; $heredoc = <<'HEREDOC'; DECUS No. L-1.1 MSCPNT: Manuscript Compressed Print Prof. P. Finkenzeller, University of Erlangen, Erlangen, West Germany MSCPNT prints LAP4 manuscript (packed or unpacked) via the Teletype. The program is written to be used under GUIDE. Sense switch options and parameter input format are the same as MSPRNT (DEC-L8-PTAA-D). This program is approximately 25 per cent faster than MSPRNT.
The manuscript consists of three sections.
It also includes an experimental program for on-line monitoring by the computer of a single automatic laboratory analyzing device.
This system is written for the classic LINC. For use on the LINC-8, slight modifications to Teletype programs are necessary. (See DECUS No. L-33). Source Language: LAP4 Storage Requirement: 2048 words - programming is overlapped Restrictions: Full capability requires four LINCtape drives. DECUS No. L-4.1 IN HISTO Paul F. Sullivan, National Aeronautics and Space Administration, Cambridge, Massachusetts IN HISTO provides for the calculation and display of the histogram of the intervals between positive-going trigger-level crossings of an input signal. The resolution, trigger level, delay after trigger, and number of crossings counted are under the operator's control. Source Language: LAP6-3L Storage Requirement: 9 Quarters DECUS No. L-5 Tape Subroutine Juergen Klauske, Physiological Institute of the Free University of Berlin, Berlin, Germany This program can be used as a subroutine for reading, writing and checking one variable block size on LINC-8 tapes. The subroutine does not use program interrupt. If the main program does use the interrupt, then the interrupt service routine must assign highest priority to the LINCtape. Source Language: LAP4 DECUS No. L-6 TRIGGR Hans Reiter, Physiological Institute of the Free University of Berlin, Berlin, Germcny This program is to be used as a trigger program. Input is via channel 10 and comparison with a trigger level is controlled by knob 0. It is also posSible to arrange a delay by an octal number submitted from the main program to the subroutine. During the time of delay, no trigger is possible. The input and the trigger level is displayed.
The minimum delay is 450 usec with an input of 1776, 3776, 5776, or 7776 in register 1F <> 1.
The programs uses auto index registers 2, 3, and 6. The following tags are used. 1F, 2F, 4F, 1D, 4M, 5M. The execution time in each case is exactly 150 usec with the jump return to the main program, but without the jumb to the subroutine. The program triggers only if the input signal crosses the trigger level in the positive sense. Source Language: LAP4 Storage Requirement: 114(8) DECUS No. L-7 Modifications to PROGOFOP, Version 2 Submitted hy: Richard Clayton, Digital Equipment Corporation, Maynard, Massachachusetts This modification to PROGOFOP, Version 2, allows for:
Material available:
The basic program allows display of a complete three-dimensional data matrix as a 2D projection or as a contour display. Vertical or horizontal cross-sections of the data may also be displayed. The third basic mode, the Twinkle Display, shows dynamically the X and Y coordinates of only the current data points.
Additional features: (All numbers indicated below are octal.)
ALT MODE A draws a head stamp (useful in Electroencephalography).
ALT MODE B moves the drum down 1 inch so that the position of printing can be first set on the CalComp viewer crosswires.
ALT MODE C returns to GUIDE
The program is protected against illegal characters ALT MODE D, E, F, etc. Other Programs Needed: PROGOFCP (DEC-L8-SFAO-D) DECUS No. L-25 LINC Spectrum Program James Bryan, National Institute of Mental Health, Bethesda, Maryland This is a spectrum program using the new Cooley-Tukey Fast Fourier Transform Algorithm. DECUS No. L-26 RELTS8-1C (LINC-8 Only) Submitted by: Dr. W. H. Calvin, University of Washington, Seattle, Washington The original RELTS8 has been modified in three ways:
It is at the "bench level" of operation that the computer has the greatest opportunity to provide a direct service to the laboratory and thereby help to increase the quality and quantity of test results.
When operational, the on-line system provides a significant service by performing all calculations and increasing reliability through the computer implemented quality control procedures.
In the LABCOM system, a complete set of "USER CONTROL PROGRAMS" have been developed to permit the laboratory personnel to add new instruments or change essential variables in the on-line system without programming knowledge or assistance. Throughout, the emphasis has been to give the laboratory maximum control over the computer.
This manual describes the fourth version of the LABCOM system, the first major on-line system released for general use by the University of Wisconsin Clinical Laboratory Computing Division (See DECUS No. L-3). DECUS No. L-34 LINC-DDT I. D. Pugsley, University of Washington, Seattle, Washington Standard DDT functions include examination and modification of contents of any address using octal or symbolic notation, insertion and deletion of symbols, word searches, address searches, and program execution with breakpoint. LINC-DDT operates on the binary output of LAP6 and is used normally in close conjunction with LAP6. Other Programs Needed: LAP6 (DEC-L8-LTAF) Source Language: LAP6 Storage Requirement: 8 tape blocks 4000(8) words including symbol table DECUS No. L-35A DF.INOUT Dr. C. M. Malpus, University of Leeds, Leeds, England DF.INOUT combines into a single memory quarter subroutines to input and output signed decimal numbers of any magnitude, offering great savings of core storage from IFORL8 and OFORL8. It transforms between FORTRAN F-Format and DBLFLT format. Input accuracy is limited only by the DBLFLT format; output is correct to six significant digits plus any additional integer or fractional zeros necessary to correctly place the decimal point. Calls to the routine are comparable to those to DBLFLT. Other Programs Needed: DBLFLT (DEC-L8-SFAA-D) Source Language: LAP6 Storage Requirement: 400 octal locations Restrictions: Special call for numbers in DBLFLT Accumulator (FAC) DECUS No. L-35B I-O TAGS Dr. C. M. Malpus, University of Leeds, Leeds, England The I-O TAGS program contains defintions of the tags used in the DF.INOUT program (DECUS No. L-35A) including most of the functional ones of DBLFLT. It should be added to user's manuscripts when these are to be converted separately to DF.INOUT or when DF.INOUT and DBLFLT are called in binary form from LINCtape in the program. Source Language: LAP6-3L DECUS No. L-36 PRINTMSS Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin PRINTMSS provides a convenient means of listing more than one LAP6 program without operator action between each program. The output device may be either a Teletype or a line printer. Source Language: LAP6 Storage Requirement: 11(8) blocks in LAP6 file DECUS No. L-37 BINLAP6 Conrad C. Bjerke, University of Wisconsin, Madison, Wisconsin BINLAP6 disassembles a binary program stored on LINCtape to an equivalent LAP6 manuscript also on LINCtape. Locations which are referenced by the address fields of instructions are tagged. The user may specify that certain areas be converted to octal numbers or text rather than instructions. Source Language: LAP6 Storage Requirement: 10(8) blocks on LINCtape DECUS No. L-38 TAPEDUMP Marilyn S. Lenahan, University of Wisconsin, Madison, Wisconsin TAPEDUMP will print the contents of LINCtape with octal, unsigned or signed decimal, or octal and alphanumeric conversions. The output device may be either the LINC Teletype or a line printer. Source Language: LAP6 DECUS No. L-39 SPCWAR Anonymous Modifications by: E. Duffin, University of Pennsylvania, Philadelphia, Pennsylvania SPCWAR is a game program that permits two users to pilot individual spaceships that are displayed on the screen. Each pilot has control of a cannon that enables him to destroy his opponent's ship. Collisions destroy both vehicles. Source Language: LAP6 Storage Requirement: Memory banks 1,2,3 DECUS No. L-40 AVERAGER Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin The AVERAGER program provides a means of computing the average response of some signal-generating device to a series of excitations. Several options are available to the operator depending upon his specific needs.
The AVERAGER system provides a set of programs to average one channel while forming a post-stimulus histogram, average two channels, file data on tape, plot filed data, and measure latency and amplitude. Source Language: LAP6 DECUS No. L-41 COMPARE LINCtape Blocks Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin COMPARE will compare the contents of two sets of LINCtape blocks. Errors are either displayed on the LINC scope or printed on the Teletype. Source Language: LAP6 DECUS No. L-42 Using the Teletype with the LINC-8 Glen W. Johnson, Institute of Oceanography, Dalhousie University, Hal ifax, Nova Scotia, Canada This modification to PROGOFOP II defines LINC codes used by LAP6 when the character is formed on the Teletype. CASE is not needed; SHIFT is used more often. A minimal length (85(1O) locations), fully relocatable subroutine is presented which converts any LINC code to ASCII and types it out. Several different message subroutines are suggested. Source Language: LAP6 DECUS No. L-43 LAP6-1H Using High-Speed Punch for LINC-8 Glen W. Johnson, Institute of Oceanography, Dal housie University, Halifax, Nova Scotia, Canada LAP6-1H, a modification to LAP6-3L, uses the two OPR commands (defined as 0 and 1) to read or punch a character on the high-speed tape unit. Minimum Hardware: LINC-8 with PC01 High-Speed Reader/Punch Source Language: LAP6 and PAL III Storage Requirement: Virtually all available space in PROGOFOP. DECUS No. L-44 LINCDUMP Glen W. Johnson, Institute of Oceanography, Dalhousie University, Halifax, Nova Scotia, Canada LINCDUMP will allow the user to dump up to one memory bank at once without crossing a boundary. It will read data into memory and allow the operator to dump selected portions. Instructions are given for conversion to a subroutine. Minimum Hardware: LINC-8 with High-Speed Punch Other Programs Needed: Q & A and OPR0 defined in PROGOFOP to use high-speed punch (DEC-L8-PAA-D and DEC-L8-SFAO-D). Source Language: LAP6 DECUS No. L-45 PLOT and PLOTTEST Glen W. Johnson, Institute of Oceanography, Dalhousie University, Halifax, Nova Scotia, Canada With PLOT, any quarter of upper memory may be plotted on an X-Y Plotter {contents vs. location} in either a continuous or point-by-point mode. Linear or logarithmic plotting can be done in any axis combinations. Captions may also be entered on the plot and data can be read/written on either unit. One quarter can be plotted against another quarter in the same memory bank. The desired plots can be displayed on the oscilloscope before plotting.
PLOTTEST is a program designed to demonstrate a call ing sequence for PLOT and the system performance by generating a diagonal line for plotting. It is useful as a preliminary check. Minimum Hardware: Standard LINC-8 with X-Y Plotter and remote pen control (needs lots of DC offset) Other Programs Needed: Q & A (DEC-L8-PAA-D) Source Language: LAP6 Restrictions: Normally data must be in the range 0-+377(8) DECUS No. L-46 SERINDEX: Search LAP6 Index Peter Gutterman, University of Wisconsin, Madison, Wisconsin SERINDEX is a subroutine which searches for a given name in LAP6 Index. Source Language: LAP6 DECUS No. L-47 OCTBIN: Octal-to-Binary Conversion Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin The OCTBIN subroutines convert octal keyboard codes stored in memory to single-precision binary integers. Two routines are supplied: OCTBIN 1 and OCTBIN 2. Source Language: LAP6 DECUS No. L-48 DECBIN: Decimal-to-Binary Conversion Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin The DECBIN subroutines convert decimal keyboard codes stored in memory to binary integers. Four routines are supplied: DECBIN 1, DECBIN 2, DECBIN 3, and DECBIN 4. Source Language: LAP6 DECUS No. L-49 BINOCT: Binary-to-Octal Conversion Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin The BINOCT col!ection of conversion routines provide a standardized set of subroutines for various types of conversion from single-precision binary integers to octal keyboard codes. The resulting LINC keyboard codes are stored in consecutive half-words of memory. Two routines are supplied: BINOCT 1 and BINOCT 2. Source Language: LAP6 DECUS No. L-50 BINDEC: Binary-to-Decimal Conversion Dennis J. Nichols, University of Wisconsin, Madison, Wisconsin The BINDEC collection of conversion routines provides a standardized set of subroutines for doing various types of conversion from binary integers to decimal keyboard codes. The resulting LINCkeyboard codes are stored in consecutive half-words of memory. Eight routines are supplied: BINDEC 1 through BINDEC 9 with the exception of BINDEC 6. Source Language: LAP6 DECUS No. L-51 TAGSWAP: Change Manuscript Tags Michael Clark, University of Wisconsin, Madison, Wisconsin TAGSWAP allows the changing of any or all symbols within a LAP6 manuscript. Options include sequencing symbols, replacing selected symbols only, printing lines referencing any specified symbol, and printing a table of all symbols used. Source Language: LAP6 DECUS No. L-52 LINC-TAPE FORTRAN Richard V. Wolf and Lawrence L. Feth, Eye and Ear Hospita! of Pittsburgh, Pittsburgh, Pennsylvania A minor modification of the TAPE-4 program and the addition of a short pseudo-op service routine enables execution of FORTRAN "READ" & "WRITE" statements on the LINC-8.
A change in the interpretation of the magtape statement list elements enables block transfers to begin at any address in core. This permits programmed substitution of machine language subroutines into the function area, as well as complete FORTRAN program swapping. Thus, FORTRAN programs that are unusually large can be programmed to run in segments.
TAPE-4 and the service routine resides in the standard DECtape core area allowing the user 2000(8) locations for programs and data. No change in the compiler is necessary. Other Programs Needed: FORSYS (DEC-08-AFA3-PB) Source Language: MACRO-8 DECUS No. L-53 FIND 1 Richard A. Harshman, Department of Linquistics, University of California, Los Angeles, California FIND 1 allows the user to define categories or classes of data sets to be searched for in a large file. It then locates and retrieves relevant data from the files stored on magnetic tape. Files can be written in natural language (e.g. English) and entries need not be specially coded for subject headings or cross references. It is possible to search for data fitting into categories not anticipated when the file was created.
The files are created and stored as LAP6 manuscripts, and can be created, edited or updated by a typist or secretary who has no special knowledge of computers after only short training on the use of LAP6. Source Language: LAP6 DECUS No. L-54 LES Les Law, Institute of Psychiatry, London, England Submitted by: Robin Harte LES is a Library Executive System which provides filing and loading PDP-8 Programs including FORTRAN programs. Once filed these programs may be manipulated by LAP6 meta commands which are also capable of deleting the program from the file. Source Language: LAP6 DECUS No. L-55 COMPAREM I. D. Pugsley, Department of Physiology and Biophysics, University of Washington, Seattle, Washington COMPAREM will compare the contents of two sets of LINCtape blocks with errors displayed on the LINC scope. When an error is found, options allow the two files to become "out-of-step" if required, for example, to allow comparison of source manuscripts with insertions or deletions. Source Language: LAP6 Storage Requirement: The manuscript occupies 32(8) blocks of tape; the binary occupies 3 blocks. During execution, COMPAREM uses 8 memory quarters. DECUS No. L-56 FIDDLEX I. D. Pugsley, Department of Physiology and Biophysics, University of Washington, Seattle, Washington The program provides a convenient means of editing a LAP6 index. It is capable of inserting, deleting, modifying or rearranging entries. Source Language: LAP6 Storage Requirement: The manuscript for FIDDLEX occupies 42(8) blocks on tape; the binary occupies 5 blocks. During execution the program occupies 8 memory quarters. DECUS No. L-57 Obsolete Unknown See DECUS No. L-39 DECUS No. L-58 LOGS Paul F. Sullivan, National Aeronautics and Space Administration, Cambridge, Massachusetts LOGS is a DBLFLT subroutine which calculates log2(x), log10(x), or loge(x) depending on the entry point. Minimum Hardware: LINC-8 Other Programs Needed: DBLFLT (DEC-L8-SFAA-D) Source Language: LAP6-3L DECUS No. L-59 INDEX L4 Paul F. Sullivan, National Aeronautics and Space Administration, Cambridge, Massachusetts INDEX L4 resides on a LAP6-3L tape on unit 0 and examines the index tables of the various manuscript files of a LAP4 tape on unit 1. It is designed for use with the program TRANSLT6 in converting LAP4 manuscripts into LAP6-3L manuscripts and requires the program DISPATCH to control interactions between LAP6-3L, INDEX L4, and TRANSLT6. Minimum Hardware: LINC-8 Other Programs Needed: TRANSLT6, DISPATCH (DEC-L8-MAA0-UA) Source Language: LAP6-3L DECUS No. L-60 FORTRAN with LINCtape G. R. Hervey, The School of Medicine, University of Leeds, Leeds, England The system adapts 4K PDP-8 FORTRAN to make use of the magnetic tape facility of the basic LINC-8 computer. FORTRAN programs can be called from the left-hand tape (unit 0) by statements in the FORTRAN program in the core; data can be stored and recalled by WRITE and READ statements, using the right-hand tape (unit 1).
The programs may be called in any order, and may be read in at less than full length in order to leave data in core. Data can be transferred to-and-from tape in blocks of any length, which may be chosen to correspond with program variables. Incorporation of the program-calling facility does not involve any sacrifice of core space for program or data; use of the data transfer facilities uses from half to one page of core.
The system includes a modified, improved version of SYMBOL PRINT; increases the maximum length of the statement number tables; and corrects some errors in the compiler. Other Programs Needed: PDP-8 FORTRAN System (DEC-08-AFCO) Source Language: PAL III DECUS No. L-61 Alternative Binary Loader for LINC-8 Library G. R. Hervey, The School of Medicine, University of Leeds, Leeds, England The paper tape loader in the LINC-8 Library System (DEC-L8-SLAB of Feb. 1967) suffers from the defect that it puts zero in any location designated by an origin setting which is not followed by data; this is particularly liable to clear location 200, because PAL-III and MACRO-S output an assumed origin setting of 200 at the start of all binary tapes. There is a further minor limitation in that location 0 cannot be loaded. These defects have been overcome, and useful advantages gained, by adapting the Modified Binary Loader MKIV of R. Ward, DECUS No. 5/8-48. Other Programs Needed: LINC-8 Library System (DEC-L8-SLAB-D) Storage Requirement: 80(10) locations DECUS No. L-62 RTAPE/WTAPE K. Metzger, Cooley Electronics Laboratory, University of Michigan, Ann Arbor, Michigan RTAPE/WTAPE is a self-contained subroutine for reading and writing multiple blocks on LINCtape. Source Language: MACRO-8 Storage Requirment: 200(8) locations DECUS No. L-63 L6DISASS C. M. Malpus, The School of Medicine, University of Leeds, Leeds, England L6DISASS, a disassembler program, converts a binary program in the lower LAP6 binary working area into a LAP6 manuscript with symbolic and relative addressing, and adds this to the current LAP6 manuscript. By changing the value of tags in the L6DISASS manuscript it can be used with any present or foreseeable configuration of LAP6. Source Language: LAP6-3L (DEC-L8-MAA0-D) Storage Requirement: 4000(8) Locations Execution Time: 10-50 seconds depending on source program length DECUS No. L-64 A Pseudo Random Number Generator for the LINC-8 M. F. Lewis, W. M. Webber, J. E. Doyle, Federal Aviation Administration, Oklahoma City, Oklahoma This progiam is the LINC-8 version of DECUS No. 5-25. It simulates on the LINC the 2's complement arithmetic of the PDP-5 routine, but returns with the equivalent LINC number in the accumulator. Source Language: LAP6A Storage Requirement: 20-247(8) locations Execution Time: less than 0.5 msec. DECUS No. L-65 LAP6TYPE C. M. Maipus, The School of Medicine, University of Leeds, Leeds, England This subroutine, LAP6TYPE, outputs strings of characters on the Teletype of a LINC-8. The characters are entered into the main program using the text facility of LAP6. The length of the character string is unlimited and is terminated by LINCcode 76 (CASE,G). The characters may reside in upper or lower memory. Source Language: LAP6-3L Storage Requirement: 155(8) locations (uses 4 index registers) DECUS No. L-66 LAP6DlSP C. M. Malpus, The School of Medicine, University of Leeds, Leeds, England This subroutine displays strings of characters on the scope display. The characters are entered into the main program using the text facility of LAP6, and may reside in upper or lower memory; the string is terminated by 76(CASE, G). Up to 15 lines of text, each containing up to 24 characters, may be entered. The display self-centers vertically. Source Language: LAP6-3L Storage Requirement: 67(10) locations (using 3 index registers) DECUS No. L-67 TAPEIN Edwin G. Duffin, University of Pennsylvania Hospital, Philadelphia, Pennsylvania TAPEIN permits the user to read in a paper tape of a LAP6 generated manuscript via the ASR-33 reader. The manuscript is placed directly into the LAP6 manuscript area. The manuscript paper tape that is read by TAPEIN is generated by simply turning on the TTY punch before giving LAP6 the PM command. Source Language: LAP6, MACRO-8 Storage Requirment: Memory banks 2 and 3 DECUS No. L-68 DBLFLT 2: A Multibank Configuration of DBLFLT Paul F. Sullivan and Rayna B. Cole, National Aeronautics and Space Administration ERC, Cambridge, Massachusetts DBLFLT 2 is a repackaging of the LINC-8 double precision floating point package DBLFLT (DEC-L8-SFAA-D) and is designed to permit the DBLFLT subroutines to be stored and executed in memory banks other than those occupied by the main program. The new package contains not only the basic arithmetic subroutines contained in DBLFLT but also the input and output subroutines IFORL8 and OFORL8 and subroutines for the more common mathematical functions. Programs designed to operate with DBLFLT in the standard location can be readily modified to operate with DBLFLT 2. DECUS No. L-69 GRAPHAS Karl Lowy and Sandra Furman l University of Rochester, Rochester, New York GRAPHAS displays a coordinate system with individually variable scales for abscissa and ordinate.
If an extended memory is used, the program will display data
contained in four consecutive blocks of tape according to the
user's choice. The first two blocks containing the abscissae,
the last two the ordinates of points to be individually displayed.
Registers containing no entries are not displayed so that the
solid zero line is absent when the graph is projected.
GRAPHAS retains all features of the original program, GRAPHA
(DEC-L8-LTAB), but was not written to include the plotting
subroutine.
Scale, figure and labels can be displayed simultaneously as
well as individually, a feature helpful for the photographic
procedure.
Minimum Hardware: LINC-8 with 4K, extended memory
desirable
Source Language: LAP6
.
HEREDOC
# Don't forget the newline before HEREDOC above!
%italic = (
"Editor's Note", 1,
"Minimum Hardware", 1,
"Miscellaneous", 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,
);
#
# 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. (12-\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 < .
# (12-25, for example.)
$body .= $line;
if ($line =~ /^$/) {
# warn "decus: $decus\n";
# warn "title: $title";
print "\n";
print "
\n";
# warn "author: $author";
# warn "submitted: $submitted";
chop $author;
print "$decus\n";
print "