#!/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.

  1. Main Program, MSCPNT, which is 1622(8) lines long.
  2. Q & A subroutine, Q+ASUB, which is 471(8) lines long.
  3. Teletype driver, TTYSUB, which is 204(8) lines long.
Storage Requirement: Binary Program: 6 blocks of tape for storage under GUIDE. The program uses 8 quarters of memory at execution time. DECUS No. L-2.1 "Clock 1" for LINC and "Clock 8" for LINC-8 Prof. P. Finkenzeller, University of Erlangen, Erlangen, West Germany "Clock 1" and "Clock 8" are demonstration programs for the LINC and LINC-8 respectively. The programs also check for the position of sense switch 0. If the switch is down, the clock runs normal (keeping time); switch up and the clock will run fast (not keeping time). DECUS No. L-3 Off-Line LABCOM (Laboratory Aided By COMputer) System Submitted by: University of Wisconsin Hospital, Madison, Wisconsin This system was developed by the University of Wisconsin Hospital, Clinical Laboratories, to assist the staff in hospital clinical laboratories in performing routines calculations and to store laboratory data for administrative reports and quality control.

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:

  1. The simulation of the Classic LINC interrupt system, in conjunction with a one-second Program Interrupt Clock with which the system is provided.
  2. The addition of I/O commands to allow PROGOFOP to answer the Soroban Keyboard.
  3. The modification of the PROGOFOP execute and magtape commands to utilize the EXC command to request magtape operations from tape units 2 and 3. DECUS No. L-8 DECtape Interface for LINC-8 Submitted by: Digital Equipment Corporation, Maynard, Massachusetts Programming and documentation for a minimal hardware interface which allows the LINC-8 to read and write single blocks of PDP-8 format DECtape. It consists of eleven modules which are added to the LINC-8 memory section. Digital Equipment Corporation will make this interface available to LINC-8 customers, either as a factory installed option, a field installed option, or supply the drawings and programming for those who wish to implement this interface themselves.

    Material available:

    1. The block schematic diagram C-BS-7605206-0-1.
    2. A description of the interface and its function.
    3. A set of PDP-8 subroutines to use the modified LINC-8 Tape Control to read and write blocks of PDP-8 format DECtape.
    4. A program which will copy a LINC format DECtape to a PDP-8 format DECtape or vice versa.
    5. Binary and ASCII paper tapes, ASCII third-pass listings, and LINCtape containing the appropriate programming.
    DECUS No. L-9A LINC-CalComp Plot Subroutine Package (LAP5) A. Maynard Engebretson, Washington University, St. Louis, Missouri The following three subroutines are for use on the LINC-CalComp:
    Character Plot Subroutine
    Pen Control Subroutine
    X-V Motion Subroutine
    To obtain revision version of this program see Programs Available from Authors. DECUS No. L-10 LINC-8 Multianalyzer (Adapted to the LINC-8 from the Pulse Height Analysis Program - J-5260) Richard M. Merrill, Digital Equipment Corporation, Maynard, Massachusetts The analysis facilities for high-speed data input and display have been adapted to the LINC-8 computer and several extra features have been added.

    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.)

    1. Display
      1. Histograms (including three-dimensional histograms) may be plotted as an option via sense switch zero.
      2. The data matrix is 100 x 53; the Twinkle Display is 100 x 100.
      3. For one-dimensional analysis, the X or Y coordinate may be changed via a control knob for selection of the data region. (Max: 53(Y) sets of 100(X) values of Z.)
    2. Z-Coordinate
      1. The Z-coordinate may also be an analog signal instead of a count.
      2. X; Y; or Z coordi nates may be taken from any of 16 built-in A-D converters. The value of Z for a given X, Y will be the last one taken.
      3. If the signal-to-noise ratio is small, then Z may be taken as a running average over 2N samples; plus N is read from the left switches.
    3. Miscellaneous
      1. A built-in variable timer is used and may be calibrated.
      2. Qualitative audio indications oft X andĀ±Z are available.
      3. The LINC-8 Library System and data storage via DECtape may be used.
    DECUS No. L-11 DATUM8 Richard W. Young Submitted by: Dr. Walter H. Moran, Jr., West Virginia University, Morgantown, West Virginia DATUM8 is a revision of an an addition to DATAM by James Hance contained in the general library supplied with the LINC-8 computer. This program has retained all the features of DATAM. Some of the original routines have been changed in order to eliminate undesired features. In addition, DATUM8 has the ability to multiply, subtract, and display the data with two cursors. The data not included between the cursors can be suppressed allowing, for instance, integration between definite limits. The program has been recoded to facilitate future modifications. Minimum Hardware: LINC (2K) or LINC-8 Source Language: LAP6 Storage Requirement: 0-3777(8) DECUS No. L-12 READIT T. D. Williams, University of Bristol, England READIT is a program for measuring data stored on LINCtape. The program will read the data into store and then display it. DECUS No. L-13 AVPROG T. D. Williams, University of Bristol, England AVPROG is a program for averaging analog signals. DECUS No. L-14 MEAN T. D. Williams, University of Bristol, England MEAN is a program for calculating the mean and standard deviation of a set of numbers. DECUS No. L-15.1 LEAP-1 Harold L. Pearson, West Virginia University, Morgantown, West Virginia LEAP-1 is a LINC-8 modification for DECUS No. 5/8-64. It allows the LINC-8 user to edit, assemble and load PDP-8 programs with LINCtape. DECUS No. L-16 RWTAPE Harold L. Pearson, West Virginia University, Morgantown, West Virginia RWTAPE is a general input-output subroutine for LINCtapes. The program replaces the DECtape routines in the PDP-8 DECtape Programming System (DECUS No. 5/8-64). It will read or write consecutive blocks on any LINC-8 tape unit. Storage Requirement: 1 page of memory DECUS No. L-17 LOAD - Extended Load Sequence for LINC-8 L. N. Law, Institute of Psychiatry, London, England This program extends the load sequence so that the LINC Operating System, GUIDE, may be started without using any toggle switches other than the LOAD switch. Restriction: LINC-8 only. DECUS No. L-18 BUFFER - Fully Buffered Teletype I/O L. N. Law, Institute of Psychiatry, London, England BUFFER extends PROGOFOP to provide fully buffered operation for the ASR-33 Teletype. The input and output buffers each have storage for up to 100(8) Teletype characters and communicate with the ASR-33 via the computer interrupt. LINC instructions KST, KBD, KBDI, and TYP are executed by the Buffer Routines. In addition, OPR 12 reads ASCII or binary character values from the input buffer. Restriction: LINC-8 only. DECUS No. L-19 LABELS for LINC-8 L. N. Law, Institute of Psychiatry, London, England This program punches patterns on paper tape to reproduce the character typed on the keyboard. A 4 x 6 matrix is used, based on the LINC display characters. All printing keys are valid, together with the space bar. All other control keys are ignored. The program uses L-18, BUFFER, for I/O and checks that it is operating on a LINC-8 with the BUFFER routines avaiable on the Unit 0 tape. Restriction: For use on LINC-8 only. DECUS No. L-20 MONTOR - A Monitor for Automatic Sequential Operation of Programs on the LINC-8 R. W. Tuttle, K. Pavel, and C. F. Stroebel, Institute of Living Hospital, Hartford, Connecticut MONTOR is a monitor operating system for the LINC-8 which permits sequential, automatic processing of GUIDE-filed programs. Any combination of data sampling, data reduction, process control, and data processing jobs can be intermixed on a daily or more frequent basis. Very minor alterations are required in GUIDE-filed programs to make them MONTOR compatible. DECUS No. L-21 LINC-TRAN: FORTRAN Macros for the LINC-8 R. W. Tuttle, K. Pavel, andC. F. Stroebel, Institute of Living Hospital, Hartford, Connecticut LINC-TRAN is a programming system which permits FORTRAN object programs and the FORTRAN Operating System to be called as part of a LINC-8 program. For example, data could be collected, primary processed, and stored in the LINC mode, floating point calculation performed in the PDP-8 FORTRAN mode, with a return to the LINC mode for further processing or display of results. As a result, full use can be made of the unique capabilities and full power of the joint configuration (LINC and PDP-8) of the LINC-8 computer. DECUS No. L-22 A New PDP-8 Display Instruction for LINC-8 R. W. Tuttle, K. Pavel, and C. F. Stroebel, Institute of Living Hospital, Hartford, Connecticut This documentation describes hardware changes for a new PDP-8 IOT instruction so that the LINC-8 display unit may be controlled directly by the PDP-8. DECUS No. L-23 Control to Designate Left or Right LINC-8 Tape Transport as Unit Zero R. W. Tuttle, K. Pavel, and C. F. Stroebel, Institute of Living Hospital, Hartford, Connecticut Since many programs for the LINC-8 are designed to run only on Tape Unit 0, it has been found convenient to add a "NORMAL-REVERSE CONFIGURATION" switch to the LINCtape transports. This switch allows the operator to choose NORMAL (left-hand Unit 0, right-hand Unit 1) or REVERSE (right-hand Unit 0, left-hand Unit 1) designation for the tape transports. All tape control functions are shifted by this one switch. One could also place this switch under program control by either using the relay register or constructing a new one-bit register. Circuit diagram available. DECUS No. L-24 PLTKBD: Plot Keyboard R. Cooper, Burden Neurological Institute, Bristol, England PLTKBD, Plot Keyboard, is a LINC-8 program which plots the characters of the Teletype keyboard on a CalComp 365 Plotter. The program occupies four blocks and starts at 1 or 20. It uses the OPR instructions embedded in PROGOFOP (DEC-L8-SFAO-D). The size of the characters is set by the LSW. They can be rotated through 90 degrees by SNS 0.

    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:

    1. To make the numbers typed correspond to the (inverted) labeling on the data terminal panel.
    2. To vary the duration of relay closure via the SAM 0 knob.
    3. To automatically repeat the relay closure at a rate determined by SAM 2 knob (enabled by SNS 0 up).
    DECUS No. L-27 Q & A Subroutine (Modification for LAP6 Characters) Submitted by: Dr. W. H. Calvin, University of Washington, Seattle, Washington This Q & A Subroutine is the original Q & A Subroutine (DEC-L8-TAAA-D) modified to use the LAP6 character table. DECUS No. L-28 TEXT TTY Subroutines Dr. W. H. Calvin, University of Washington, Seattle, Washington This subroutine types out a list of LINC characters generated by LAP6 quotation mark method, analogous to the way in which Q & A Subroutine displays them. Control is restored at the location following the end of the list, marked by a 77 half-word. DECUS No. L-29 DEC-BI Dr. W. H. Calvin, University of Washington, Seattle, Washington The subroutine retrieves the half-words typed into the question marks during the Q & A Subroutine and converts them from decimal to binary. It will do a decimal-to-binary conversion on one to four digits. There may be any number of question marks (1, 2, 3, or 4) and leading zeros need not be typed. DECUS No. L-30 LAP6-1C (Modification to LAP6) Unknown This is a modification procedure for modifying LAP6 to adapt it to:
    1. LINC-8 Teletype and mnemonics SKP, PDP, TYP and EXC.
    2. Fanfold paper in the Teletype.
    The Teletype, mnemonic, and fanfold mods are independent of one another. DECUS No. L-31 SNAP: Simplified Numerical Analysis Program for the LINC -8 (with and without EAE) Harvard Medical School, Boston, Massachusetts (See DECUS No. 8-122) DECUS No. L-32 XMARK Harold L. Pearson, West Virginia University, Morgantown, West Virginia XMARK is a program which marks LINCtapes in a format which allows more efficient usage of the LINC-8 library System and the LEAP-1 System (DECUS No. L-15.1) tapes. It marks the tape in 128 word blocks with 1792 (3400 octal) blocks per tape. The standard tape marking program (MARKL8) marks 256 word blocks with 512 (1000 octal) blocks per tape. XMARK significantly increases tape capacity and speed of operation for PDP-8 programs on the LINC-8. Other Programs Needed: DECUS No. L-15.1 DECUS No. L-33 On-line LABCOM System {Version IV) University of Wisconsin Medical School, Madison, Wisconsin The objective of the LABCOM (Laboratory Aided By COMputer) system approach is to implement a computer-based laboratory information system in a series of meaningful steps, permitting the laboratory to secure a firm economic and operational foothold in each phase of implementation before taking the next step.

    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 <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; } } # 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*$//; $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'; } } }