DECUS PDP-1 Program Library Catalog June, 1968 DECUS NO. --------- 1 Character-Display 2 Type, Punch and Display Decimal 3 Display Line 4 MAC - A Master Subroutine Control System 5 MACRO 6 DDT 7A Modified Expensive Typewriter 8 Multiply Subroutine 9 Divide 10 Single Precision Floating Point Routines 11 Tone Generation Routine 12 Bit Manipulation Package 13 Critical Path Analysis 14 Decimal Input-Output Package 15A FLINT-36 A3D 16 Check Parity 17 Get Number of Permutations 18 Random Walk Number 19 Floating Reciprocal 20 Millisecond Clock 21 Clear Block 22 Second Delay 23 Millisecond Delay 24 Move A Program 25 Get Number of Combinations 26 Floating Nth Integer Power 27 Obsolete - Replaced by DECUS No. 39 28 SCOPETRACE 29 TED: A Tape Editor 30 DX-1 Library Tapemaker 31 Expensive Desk Calculator 32 Gaussian Random Number Generator 33 Scatter-Gather Mag Tape Routine 34 Fast Bivariate Generator 35 RATBIN (read and type a binary paper tape) 36 CHKSYM (check a symbolic tape) 37 dbn (decimal to binary mixed number), dbi (decimal to binary integer) and dbf (decimal to binary fraction) 38 bdn (binary to decimal mixed number), bdi (binary to decimal integer) and bdf (binary to decimal fraction) 39 DECAL-BBN 40 Linking Loader for DECAL-BBN 41 Libtapemaker for DECAL-BBN 42 PDP-1 Two Memory Checkerboard Program 43 Compare Program 44 Tape Duplicating and Verifying Program 45 Start-Stop Reader Test 46 Obsolete - Replaced by DECUS No. 39 47 Modifications to 18-18 Floating Point Arithmetic Package (To be distributed with DECUS No. 10) 48 No longer available 49 Double Precision Fixed Point Routines 50 Banner 51 DSL Matrix Routines 52 Matrix Operations Program of the Experimental Dynamic Processor 53 No longer available 54 No longer available 55 Tape Editor 56 The KALAH Game Program 57 Input-Output Routines 58 Unary Manipulation Routines 59 TITLE 60 SFLAG, RFLAG 61 TLU - Table Look-up 62 DSL Block Manipulation Routines 63 Floating Point Interpreter (For use with DECUS No. 10) 64 Random Number Generators: Random, Ranmodn, Coin 65 Digital Function Generate and Display 66 Short, Read Magnetic Tape Routines 67 "SIN-COS": Floating-Point Sine-Cosine Routines 68 "SQRT": Floating-Point Square Root Routine 69 SATED: Scope Aided Tape Editor (ESD) 70 OLD DECUS LIBRARY I ADA-1 Analyzer ADA-2 Frapcorrector ADA-3 PRIM: Punch Read-In-Mode Tape ADA-5 AID: Adams Associates Intercom & Debug Program 71 OLD DECUS LIBRARY II BBN- 1 FRAP BBN- 2 Typewriter Control (TYC) BBN- 6 Colossal Typewriter Program (CT) BBN-12 Decimal to Binary Conversion BBN-13 Binary to Decimal Conversion BBN-21 TRANCE BBN-25 Rotate Test BBN-27 Master Duplicator BBN-32 Tem-Stor Push Down BBN-33 Pen Tracker Routines BBN-45 Grid Plotting Program (Plotgrid) BBN-54 Compare BBN-67 Debug (DB) 72 OLD DECUS LIBRARY III BBN- 3 Binary Punch and Load Package BBN-46 Binary Punchoff 73 MADCAP: MAmmoth DeCimal Arithmetic Program for the PDP-1 Computer 74 Tapelibrary Program 75 SEETAPE - A Magnetic Tape Dump Program 76 A 28-Bit Floating Point Package for the PDP-1 77 DSL Sort Routines - Sort 2, Sort 3 78 TAPE 52 Magnetic Tape Control Subroutines 79 Extended Memory Punch and Loader Routines (EXPCH1 and EXPCH0) 80 DEXTER: A Magnetic Tape Executive Routine 81 Calcomp Plotter Software 82.3 FORTRAN for the PDP-1 (Version 3) 83 340 Assembly Language and 340 DDT 84 M.I.T. Floating Point Arithmetic Package 85 LISP for the PDP-1 86 Precision Hypotenuse/Square Root Subroutine 87 Buffered DECtape Read and Write Routines 88 Typewriter Time Test 89 Cube Display 89a Matchbox Display 90 Color Debugger 91 DECtape Duplicate/Verify 92 EMP: Extended Math Package PROGRAM ABSTRACTS ----------------- DECUS No. 1 ----------- Character Display Ben Gurley and Weldon Clark This subroutine effects the display of alphabetic, numeric, and special characters on the scope. The program is devised to make the scope react like a typewriter. Storage used: 466(8) registers. (FRAP Subroutine) DECUS No. 2 ----------- Type, Punch and Display Decimal Mimi Wasser This subroutine is used to convert octal numbers to decimal and to type, punch, and display the results. Occupies 131(8) registers. However, when one calls display-decimal, the character display subroutine is required using 465(8) registers. (FRAP Subroutine) DECUS No. 3 ----------- Display Line William Fletcher, Bolt, Beranek & Newman, Incorporated The purpose of this routine is to display a line of dots on the CRT between two specified points X0, Y0 and X1 Y1. Storage-used: 165(8). (FRAP Subroutine) DECUS No. 4 ----------- MAC-A Master Subroutine Control System Richard Bennett The program is a subroutine control system for the PDP-1. MAC simplifies writing of subroutines, reduces the number of registers required to write closed subroutines, and allows subroutines using this system to call themselves or other subroutines. MAC requires 174(8) registers, and 24(8) registers of storage. In addition, storage is required for subroutine returns and subroutines used repeatedly. DECUS No. 5 ----------- MACRO Digital Equipment Corporation, Maynard, Massachusetts MACRO is an assembly program for the PDP-1. MACRO uses two passes to assemble a source program, and allows the use of the user's own definition as well as its own. It auto- matically stores constants and variables in adequate blocks of storage, allows the use of address tags and prints out errors in the source program during assembly. DECUS No. 6 ----------- DDT Alan Kotok, Digital Equipment Corporation, Maynard, Massachusetts DDT is a symbolic debugging program for the PDP-1. It occupies upper memory, starting at 600, and builds down into lower memory. Control is by the typwriter. DDT, by means of its "breakpoint" allows the user to program via the typewriter, edit, and examine any program location. In- structions can also be inserted by DDT. (MACRO) DECUS No. 7A ------------ Modified Expensive Typewriter Steve Piner and Peter Samson (Modified by S.B.Michaels and J.L.Ramsey) Facilitates the editing of symbolic tapes both off-line and on-line. DECUS No. 8 ----------- Multiply Subroutine Alan Tritter This subroutine is used on machines which have no high- speed multiply option. It will form the signed product of two signed 17-bit numbers. It requires 70(8) registers. The subroutine returns to main program when completed. (DECAL) DECUS No. 9 ----------- Divide Alan Tritter A subroutine for PDP-1's lacking automatic multiply & divide. It may be called for a fractional divider of a signed 34-bit number by a signed 17-bit number or for an integer divide (i-dvd) of a signed 17-bit number by a 17-bit number. In either case a signed quotient returns in the AC and a re- mainder with the same as the dividend returns in the I/O. Occupies 75(8) registers. (DECAL) DECUS No. 10 ------------ Single-DEC-Single Precision Floating Point Routine R. J. McQuillin (Roland Silver) These routines allow the use of the floating point mode, and include input, output, interpreter, arithmetic, exponential, square root, sine-cosine, natural log and arc tangent. Modified by DECUS No. 47. (DECAL) DECUS No. 11 ------------ Tone Generation Routine William Fletcher, Bolt, Beranek & Newman, Incorporated This routine, which is controlled by the typewriter, can produce tones for which amplitude, frequency, and length can be controlled. Frequencies from 168 down to and in- cluding 100 are possible. DECUS No. 12 ------------ Bit Manipulation Package C. Fletcher The program provides a convenient means for processing variable length contiguous groups of bits (referred to as items) without regard to word boundaries. Items of 1 to 16 bits can either by read from meory or stored in memory at an address relative to a pointer. Items from one to n bits may be moved forward or backward any amount and com- pared using routines in the package. The read and store routine is a general packing and unpacking program, and is intended to provide a standard, simple means of expressing and using an item's bit address and length to obtain the item. The pointer referred to is a word containing the addres of some particular bit in memory, that is, holds both a word address and the addres of a bit in that word. Storage used: 1-466(8). DECUS No. 13 ------------ Critical Path Analysis T. Shapin Critical Path Analysis is a method of coordinating the efforts of many diverse activities toward a common goal. This pro- gram will handle 400 activities and 266 events (nodes). Careful preparation is needed to insure accurate output. The first input should be as "educated" estimates as possible. The order of events must be carefully organized by flow charts described in the "write-up". Upon completion, the program types out (after error print-outs have been corrected) a solution to the problem. Storage Used: 5113(8) (DECAL) DECUS No. 14 ------------ Decimal Input-Output Package William Fletcher, Bolt, Beranek & Newman, Incorportated This package is a set of subroutines to allow decimal-to- binary and binary-to-decimal conversion of integers, frac- tions, and mixed numbers. The output format can be precisely controlled by a subroutine included in the package. The routines use the typewriter as input and output, and subroutines are provided to allow use of paper tape reader and punch, or CRT for this purpose also. In addition, the package can be set up to use any arbitrary input and output. DECUS No. 15A ------------- FLINT-36 A3D J. M. Baker and D. J. Isenberg, Charles W. Adams Associates, Incorporated FLINT is an interpretive routine that permits the PDP-1 to perform double-precision floating-point arithmetic, input, output, and elementary function evaluation. Originally written in FRAP for use in lens design work (though nonethe- less a general-purpose program), FLINT has now been translated into DECAL to be compatible with other programs in this language. Arithmetic and function evaluation are performed interpretively, input and output are handled by closed subroutines addressed directly by the user's programs, and overall format control is left to the user's routines. FRAP symbolic tape is also available. DECUS No. 16 ------------ Check Parity R. S. Nickerson The purpose of this routine is to check and/or add parity. Storage used: 33(8) (DECAL) DECUS No. 17 ------------ Get Number of Permutaions R. S. Nickerson This program is used to compute n(n-1)...n(n-4 1). (i.e., the number of permutaions of n things taken r at a time.) This program requires DECUS No. 25. Storage used: 70(8) (DECAL) DECUS No. 18 ------------ Random Walk Number R. S. Nickerson This program is used to do one of three things with equal probability: 1. add increment to number 2. subtract increment from number 3. leave number as is Storage used: 20(8) (DECAL) DECUS No. 19 ------------ Floating Reciprocal R. S. Nickerson This program is used to get the reciprocal of a floating point number. Storage used: 16(8) (DECAL) DECUS No. 20 ------------ Millisecond Clock R. S. Nickerson Purpose is to count the milliseconds from time msc is called until a typewriter key is struck. Storae used: 24(8) (DECAL) DECUS No. 21 ------------ Clearblock J. R. Hayes Purpose is to clear a block of registers. Storage used: 11(8) (DECAL) DECUS No. 22 ------------ Second Delay R. S. Nickerson The purpose of this program is to delay a running program for a specified number of seconds. Storage used: 13(8) (DECAL) Uses DECUS No. 23. DECUS No. 23 ------------ Millisecond Delay R. S. Nickerson Purpose is to delay a running program for a specified number of milliseconds. Storage used: 21(8) (DECAL) DECUS No. 24 ------------ Move a Program D. M. Forsyth To move a program from one memory location to another, changing effective addresses when appropriate. Storage used: 106(8) (DECAL) DECUS No. 25 ------------ Get Number of Combinations R. S. Nickerson n Purpose is to compute (r ) = n! / (r! (n-r)! ) i.e., the number of combinations of n things taken r at a time. Storage used: 22(8) (DECAL) DECUS No. 26 ------------ Floating point Nth Integer Power R. S. Nickerson Purpose is to raise a floating point number, x, to nth integer power. Sorage used: 56(8) (DECAL) Uses DECUS No. 19. DECUS No. 27 ------------ Obsolete - Replaced by DECUS No. 39. DECUS No. 28 ------------ SCOPETRACE John R. Hayes, Decision Sciences Laboratory, Hanscom Air Force Base, Bedford, Massachusetts The program is designed to facilitate the debugging of object programs by providing a geometrical representation of the operation of the object program. There is a Hiscopetrace (5700(8) to 5777(8) registers) and Loscopetrace (1(8) to 1000(8) registers). DECUS No. 29 ------------ TED: A Tape Editor C. R. Brown and D. W. Connolly, Operational Applications Laboratory, Hanscom Air Force Base, Bedford, Massachusetts The program is an aid in the editing or modification of alpha- numerical text in that the operator may communicate with the computer in the very alphanumerics of the text itself. All typing involved in preparing and editing tapes may be done at an off-line typewriter punch. DECUS No. 30 ------------ DX-1 Library Tapemaker Ted Strollo, Air Force Cambridge Research Laboratories, Bedford, Massachusetts DX-1 Library Tapemaker will load in any given number of LL tapes of subroutines, and punch these out as a single library tape. It may also be used to add new subroutines to an existing library tape. (DECAL) DECUS No. 31 Expensive Desk Calculator Robert A. Wagner, Massachusetts Institute of Technology, Cambridge, Massachusetts EDC provides for performing arithmetic operations on numbers typed either on- or off-line, and printing results. Decimal numbers (integers, decimal fractions or integer fraction com- binations) are acceptable; all indicated by ordinary decimal point conventions. EDC allows the internal storage of "variable" registers. The names of such registers, when used in the same contexts as typed numbers, automatically cause their current contents to be used in the calculation, as if contents had just been typed in. EDC stores arbitrary char- acter strings for laster use as input to EDC and for testing the sign of partial results. (MACRO) DECUS No. 32 ------------ Gaussian Random Number Generator Roland Silver Ran-gauss, as it is called, is a subroutine which computes a random number of approximately gaussian distribution, of zero mean and specifiable variance. It requires the dvd, mpy and random subroutines and, in itself, occupies 35(8) registers and is exeucted in 157 cycles (average). (FRAP) DECUS No. 33 ------------ Scatter-Gather Magnetic Tape Routine William Fletcher, Bolt, Beranek and Newman, Incoporated This routine is used to control up to three Type 50 Magnetic Tape Units connected to the PDP-1 computer through a Type 51 Tape Control Unit. Blocks of information on mag- netic tape in standard IBM low density (200 bit) format may be written or read. A scatter feature allows information in one contiguous block in the computer memory. The converse operation allows several smaller blocks in memory to be gathered together and written as just one block on the magnetic tape. Information read from magnetic tape may be compared with the contents of memory rather than stored. When read, sections of the blocks on the magnetic tape may be by-passed altogether. The IBM end-of-file may be written and it is automatically sensed by the read routine. All read operations function either forward or reverse. Write operations operate forward only. Storage Required: 732(8). (DECAL) DECUS No. 34 ------------ Fast Bivariate Generator G. A. Paquette, United Aircraft Corporation The program computes z as a function of x and y by cross- linear interpolation within the table of Z's. Fixed-point scaling used is under control of data provided at assembly or by user's program. Storage Used: 47(8) (FRAP) DECUS No. 35 ------------ RATBIN (read and type a binary paper tape) Gerald Clawson, The Geotechnical Corporation, Dallas, Texas The purpose is to read a machine language or data tape and list it on the typewriter. Storage used: Program, 300-3104, Data 3105-3363. (FRAP) DECUS No. 36 ------------ CHKSYM (check a symbolic tape) Gerald Clawson, The Geotechnical Corporation, Dallas, Texas The purpose is to check symbolic paper tape against a copy of it. Storage used: Program, 0010-0530, Data 0531-7777. (FRAP) DECUS No. 37 ------------ dbn (decimal to binary mixed number), dbi (decimal to binary integer) and dbf (decimal to binary fraction) Gerald Clawson, The Geotechnical Corporation, Dallas, Texas The purpose is to make decimal to binary conversions. Storage used: 3620-3770 (FRAP) DECUS No. 38 ------------ bdn (binary to decimal mixed number), bdi (binary to decimal integer) and bdf (binary to decimal fraction) Gerald Clawson, The Geotechnical Corporation, Dallas, Texas The purpose is to make binary to decimal conversions. Storage used: 4000-4167. (FRAP) DECUS No. 39, 40 and 41 ----------------------- DECAL-BBN Richard J. McQuillin, Bolt, Beranek, and Newman, Incorporated DECAL-BBN is an assembler-compiler designed to process two broad classes of statements: Instruction Word Statements and Algebraic Statements. DECAL is available for both 1-core and 2-core machines. Programming and Technical Manuals available. DECUS No. 42 ------------ Two Memory Checkerboard Program J. C. Murphy, Jet Propulsion Laboratory The program operates exactly as the MAINDEC 2 checker- board program with the following exception: Upon comple- tion of a selected pattern cycle in meory "0" the program will enter the extend mode, then jump to memory "1" and perform the same pattern cycle. Upon completion of this cycle the program will reenter memory "0" and select the next pattern. The program continues to alternate between memories until an error, or normal halt is incurred. An error in memory "1" is examined in the same manner as an error in memory "0" (barring extend mode or defer cycle logic failures). (DECAL) DECUS No. 43 ------------ Compare Program J. F. Fitzgerald, Itek Corporation Enables one to punch a tape which will typeout on the off- line Flexowriter the registers that have been changed in the operation of a given program and their contents. DECUS No. 44 ------------ Tape Duplicating and Verifying Program C. E. Hurlburt The purpose is to reproduce any paper tape and to verify the reproduction via the checksum method and by comparing line counts. DECUS No. 45 ------------ Start-Stop Reader Test T. Shapin, Beckman Instruments, Incorporated This program is used to test the braking action of the PDP-1 paper tape reader. DECUS No. 46 ------------ Obsolete-Replaced by DECUS No. 39. DECUS No. 47 ------------ Modifications to 18-18 Floating Point Arithmetic Package (To be used with DECUS No. 10) John B. Goodenough These modifications of DECUS No. 10 round the results of floating point additions, subtractions, multiplications, divisions and shifts (R. & L.) for single and multicore use. Storage used: 532(8). DECUS No. 48 ------------ No longer available. DECUS No. 49 ------------ Double Precision Fixed Point Routine Terry Kleffman, Minneapolis-Honeywell Company The double precision add, subtract, multipy, and divide subroutines and the 12 double precision MACRO instructions in this package provide the programmer with all the basic tools necessary for fixed point double precision programming. These subroutines were written specifically for maximum speed of execution and, therefore, little or no considera- tion was given to the amount of memory space it would occupy. This approach was taken in an effort to provide double precision accuracy for real-time, analog-to-digital simulations. However, the amount of memory space re- quired to store the double precision subroutines is not restrictive for most applications. These routines require 1262(8)=754(10) meory locations which in a 10,000(8)=4096(10) word memory still leave 6416(8)=3342(10) locations for addi- tional programs. (MACRO) DECUS No. 50 ------------ BANNER Robert F. Stover, Minneapolis-Honeywell Company Banner is a demonstration program for the PDP-1, and uses the Character Display Program - DECUS No. 1. It accepts a message typed in from the console typewriter and displays the message on the 16" display as letters moving from right to left. The message will be repeated indefinitely. The appearance is the same as the Times Square News Sign. DECUS No. 51 ------------ DSL Matrix Routines J. B. Goodenough, Decision Sciences Laboratory, Hanscom Air Force Base, Bedford, Massachusetts This Matrix Package consists of programs to perform the following functions in either fixed or single precision floating point: Add columns to store matrix. Add or subtract two matrices. Multiply a matrix by a constant. Multiply a row by a constant. Punch an intermediate matrix on paper tape. Read intermediate matrix tape. Calculate the row sum. DECUS No. 52 ------------ Matrix Operations Program for the Experimental Dynamic Processor C. Caso, J. Seltzer and J. Sexton, Wolf Research and Development Corporation, West Concord, Massachusetts This Matrix Package is a system of computer programs to perform general matrix operations. The matrix operations that can be performed are solved eigenvalues and eigenvec- tors, add, inversion, multiplication, subtraction, and trans- position. A set of input/output routines and an executive routine are included in this package. The executive routine is designed to allow effective usage of the package by people with minimal programming experience. This package has been coded for the experimental Dynamic Processor, DX-1. The system uses single-precision floating-point arithmetic. DECUS No. 53 ------------ No Longer Available DECUS No. 54 ------------ No Longer Available DECUS No. 55 ------------ Tape Editor (BBN) Harry Rudloe This program edits symbolic paper tapes making use of the scope and on-line typewriter. Occupies registers 2450- 7500. This version requires a full 16-channel sequence break machine. However, it can be modified to run on a machine with a different configuration. DECUS No. 56 ------------ The KALAH Game Program Roland Silver The computer plays kalah with you communicating through the typewriter as input and the scope as output media. (FRAP) DECUS No. 57 ------------ Input-Output Routines R. S. Nickerson and J. B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Masachusetts These routines are designed to supplement the DEC In-Out Package. They consist of the following DSL programs: Get Octal Number; Type Octal Numbers; Get and Read Alphanumeric Strings; Add Character, Delete Character, and Initialize String; String Decimal Numbers; and Space Decimal Output. (DECAL) DECUS No. 58 ------------ Unary Manipulation Routines R. S. Nickerson, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts Routines to: Count the number of ones in a block. Count the number of ones in a word. (DECAL) DECUS No. 59 ------------ TITLE C. V. Gaylord, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts Routine to punch out in readable form a typed title for binary tapes. (DECAL) DECUS No. 60 ------------ SFLAG RFLAG J. B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts This routine is used to save and restore condtion of flags. (DECAL) DECUS No. 61 ------------ TLU - Table Look-up J. B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts This routine looks up an argument in a tape and returns with address of the first table entry greater than or equal to argument. (DECAL) DECUS No. 62 ------------ DSL Block Manipulation Routines J. B. Goodenough and R. S. Nickerson, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts Consists of the following routines: Exchange Blocks; Move a Block; Compare Blocks, Get Standard Deviation; Push Block up N Registers; Larger, Equal, Smaller Algebraic or Absolute Magnitude; Order Block or Fixed Point Numbers Algebraic- ally or According to Absolute Magnitude; DZM Block, Search, Compare Strings; Get Median; Select with/without Replace- ment; Rotate Block Right, Left; Inclusive or Blocks; Sort a Block or Items; Sort a Block of Alphabetic Items Using Sort 1. (DECAL) DECUS No. 63 ------------ Floating Point Interpreter (Modified for DECAL-BBN) R. J. McQuillin, Bolt, Beranek, and Newman, Incorporated Routines to interpret fixed point coding as floating point when running a program. (DECAL) To be used in place of corresponding routine in DECUS No. 10. DECUS No. 64 ------------ Random Number Generators: Random, Ranmodn, Coin William Fletcher Random, when called, will return with a pseudo random number in the accumulator. The routine is initialized by depositing a known number in two preassigned registers. The routine occupies 12(8) registers. Ranmodn, if called with a mod number in the accumulator, will return with a random number in the accumulator in in-out register which is between zero and the mod number minus one. It uses random and idvd. Coin, when called, has a number in the accumulator which will be considered by the routine as a binary fraction with the radix at zero. If, at call time, Coin is at L then the routine will return to L+1 with a probability of N and L+2 with a probability of 1-N. It occupies 12(8) registers and uses Random. DECUS No. 65 ------------ Digital Fuction Generate and Display S. Jackson and G. Paquette, United Aircraft Corporation Scope display for univariant or bivariant functions stored in "DECUS No. 34-Fast Bivariate Generator" format. DECUS No. 66 ------------ Short, Read Magnetic Tape Routines William A. Fahle, Systems Research Laboratory, Incorporated, Dayton, Ohio The purpose of the program is to read a record of standard low density IBM format tape into a block of core. The entire record on tape must be transferred into core, thus allowing records of a non-predetermied length to be transferred. An entry is available for skipping records. The routine has an end-of-file return and a missed character indication. Storage used: 86(10 or 126(8). DECUS No. 67 ------------ "SIN-COS": Floating-Point Sine-Cosine Routines Richard Zacher, Princeton University, Princeton, New Jersey These routines compute the sine or the cosine of the number in the floating accumulator and leaves the result in the floating accumulator. The routines use 73(8) registers. DECUS No. 68 ------------ "SQRT": Floating-Point Square Root Routine Richard Zacher, Princeton University, Princeton, New Jersey This routine computes the square root of the floating point number in the floating accumulator and leaves the result in the floating accumulator. The routine uses 56(8) registers. DECUS No. 69 ------------ SATED: Scope-Aided Tape Editor Paul Weene, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts SATED is DSL program for preparing and editing symbolic tapes. The program requires a two core PDP-1, Type 30 CRT with character generator and light pen. Type 20 Sequence Break System and Automatic Multiply. (DECAL) DECUS No. 70 ------------ OLD DECUS LIBRARY I Charles W. Adams Associates, Incorporated 1. Analyzer Provides a program listing as a debugging aid. (FRAP) 2. Frapcorrector Provides a convenient means of making changes to a FRAP Lanuage source tape. (FRAP) 3. Punch Rim Tape Provides a means of punching out information from sections of core memory. The console typewriter is used to provide the control information (FRAP) 4. Adams Associates Intercom and Debug Program Purpose: To examine and modify individual memory locations via the console typewriter. To obtain printouts of memory area via the on-line console typewriter or on paper tape for off-line printing on a Flexowriter. To obtain up-dated binary read-in-mode format paper tape copies of programs which has been corrected from the console. To obtain a "what has changed" print-out (on-line or off-line) of a program which has operated incorrectly. To trap a program being debugged and obtain inter- mediate results by using the four functions above. Function 2 may be under program control as well as under manual control and thereby allows the program to continue automatically. A printout trace of JMP transfers is also available. To make the AID printout routines available to other programs as subroutines. Number of storage locations: 776(8), 510(10). DECUS No. 71 ------------ OLD DECUS LIBRARY II Bolt, Beranek and Newman, Incorporated 1. FRAP Assembly Program Edward Fredkin FRAP is designed to operate on a PDP-1 computer with at least 1024 words of memory and the minimum set of in-out equipment. The assembly language will accept, as input, a paper tape produced by a flexowriter. The tape is an iso- morphic representation of the information contained in a typewritten program. 2. Typewriter Control John McCarthy Helps in debugging other programs and allows the control of other programs from the on-line typewriter. It can be com- manded from the typewriter to do the following: type-out the contents of selected registers, change the contents of selected registers, execute instructions (including JMP in- structions which give control to other routines), list those registers having given contents in a given field and define new typewriter control commands (FRAP and DECAL) 3. Colossal Typewriter Program J. McCarthy and R. Silver (W. Fletcher) May be used for tape preparation and tape editing. It uses the reader, punch and typewriter under typewriter control. 4. Decimal to Binary Conversion William Fletcher This routine will convert a concise-coded decimal number between + 000000(8) and + 377777(8) to a binary number. (FRAP and DECAL) 5. Binary to Decimal Printout and Punchout William Fletcher This routine is used to print or punch out a binary number between -377777(8) and 377777(8). 6. TRACE R. Silver and W. Fletcher The TRACE Program is used to simulate the execution of a subject program one instruction at a time. After each instruction has been performed, the user's test routine is called to permit examination of the status of the machine, the pseudo-accumulator and the pseudo-program counter. (FRAP and DECAL) 7. Rotate Test William Fletcher Rotate Test verifies that all the rotate instructions are operating correctly. (FRAP) 8. Master Duplicator William Fletcher Master Duplicator routine allows the user to copy a tape from the reader to either or both punches and/or either or both typewriters. (FRAP) 9. Tem-Stor Push Down J.C.R. Licklider The purpose of this package is to provide, in convenient form, a system for saving and restoring a system that can be incorporated into any FRAP program. (FRAP) 10. Tracker Routines Roland Silver The Purpose of these routines is to track the light-pen over the face of the scope. (FRAP) 11. Grid Plotting Program (plotgrid) J.C.R. Licklider The plotgrid subroutine is used to plot, on the computer CRT display, a rectangular grid of the type used in graphs. The grid plotted by the program has eight parameters. These parameters are defined within the subroutine for external reference. It is assumed that they will be set (that their values will be filled in) by the subroutine that calls plot- grid. One calling of plotgrid plots the grid once. 12. Compare Edward Fredkin This routine will do a true 18-bit comparison for algebraic (signed) nubmers (gela?) or for 18-bit magnitudes (glem?). This result is communicated by a return to one of three loca- tions in the calling sequence. The numbers that are compared are masked prior to comparision. (DECAL and FRAP) 13. Debug R. Silver and H. Rudloe Debug is intended to help the programmer debug a program at the console. DECUS No. 72 ------------ OLD DECUS LIBRARY III William Fletcher, Bolt, Beranek and Newman, Incorporated Binary Punch and Load Package This routine allows the user to punch out any area of memory in the binary format, specifying the desired area with typed commands. (FRAP) Binary Punchoff This routine punches a tape which, when reloaded will reproduce the memory at time of punch-off. (FRAP) DECUS No. 73 ------------ MADCAP; MAmmoth DeCimal Arithmetic Program E. Myrvaagnes, Parke Mathematical Laboratories, Incorporated A multiple-precision floating-point arithmetic program. The number of significant digits maintained during calculations can be varied easily to suit user's requirements of speed vs. accuracy. Programming in MADCAP's own source language is extremely simple. DECUS No. 74 ------------ Tapelibrary Program Daniel Forsyth, Information International Incorporated, Cambridge, Massachusetts Tapelibrary Program stores the image of punched paper tapes on magnetic tape and reproduces them on command. Read checking is performed for paper-mag and mag-paper conver- sion. Records may be added to mag tape at any time, but not rewritten. Initial typed instructions are shortened when an operation is repeated. The program occupies 0-3117 registers. DECUS No. 75 ------------ SEETAPE - A Magnetic Tape Dump Program John B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts SEETAPE is a program for dumping magnetic tape information on the scope. The user may specify the structure of the tape blocks to be dumped, space forward and backward any number of blocks, and rewind the tape. Binary verions are avail- able for Type 51 Control and Type 52 Control. Equipment Required: 1. At least two cores 2. Type 30 Scope with Type 33 Character Generator 3. Standard Typewriter 4. Type 51 or Type 52 Tape Control DECUS No. 76 ------------ A 28-Bit Floating Point Package Lt. Richard D. Smallwood, Air Force Cambridge Research Laboratories, Bedford, Massachusetts The purpose is to provide a 28-bit mantissa and 8-bit expo- nent floating point numbers for more accuracy than the standard 18-18 package. Performs floating point arithmetic, conversion, input, and output. Storage used varies. Special Hardware Required: Automatic multiply and divide. DECUS No. 77 ------------ Sort Routines - Sort 2, Sort 3 John B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts Order (ascending) a two-dimensional array. These routines will work in either single core or multi-core machines. In multi-core machines, the program must be called in extend mode with the operands referencing the proper core. DECUS No. 78 ------------ TAPE 52 Magnetic Tape Control Subroutines John B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts A set of subroutines which exist on a library tape for using the tape transports connected to the Type 52 Control Unit. The routines allow the user to read or write, in even or odd parity, a block of consecutive words in core as one tape block; write and detect an IBM end-of-file mark; space forward and backward; rewind; maintain a block count, and automatically take corrective action when errors are detected during read or write operations. All routines may be used in extend mode and called from any core. DECUS No. 79 ------------ Extended Memory Punch and Loader Routines William E. Fletcher, Bolt, Beranek & Newman, Incorporated Facilitates punching and loading binary information from any memory bank in the PDP-1 (DECAL) DECUS No. 80 ------------ DEXTER, A Magnetic Tape Executive Routine R. D. Keim, Wolf Research & Development Corporation DEXTER is an executive routine designed to facilitate the operation of a PDP-1 data processing system during experi- mental runs. It provides an efficient method of loading programs from magnetic tape under on-line operator control. DEXTER requires an 8K PDP-1 with a Type 52 Magnetic Tape Control. The software consists of an executive routine and a maintenance routine. Other programs are written in a DEXTER COMPATIBLE FORMAT and stored on the execu- tive magnetic tape. (AMP Language but can be converted to DECAL or MACRO easily.) DECUS No. 81 ------------ Calcomp Plotter Software Charles W. Adams Associates, Incorporated Routines: PLOTS 1 GRAPH PICTUR SYMBL5 PLOT 1 NUMBR 1 DXDY 1 MINMAX SCALE 1 WHERE AXIS 1 FACTOR SCLGPH Expensive Tape-Calcomp Plotter DECUS No. 82 ------------ FORTRAN for the PDP-1 - Version 3 The FORTRAN Compiler for the PDP-1 is not intended to be a replacement language for the other compiler and assembly languages already in use on the PDP-1; however, it is useful for short programs which may easily be coded in FORTRAN. Version 3 is for machines with multi-div hardware. DECUS No. 83 ------------ 340 Assembly Language and 340 DDT John B. Goodenough, D.S.L., Hanscom Air Force Base, Bedford, Massachusetts This program resembles ordinary DDT in that it allows the bit patterns of the 340 Scope instructions to be inspected and changed, on-line, in a symbolic language. The symbols used are identical to the symbols when compiling pro- grams for the scope. In addition registers may be inspected and changed using ordinary machine language. The action operator tape, which defines 340 Assembly Language, can be compiled only with the 2-core DECAL of November 1964 (or with versions of DECAL derived from the Skeletal DECAL of November 1964). After compilation, DECAL can be punched off to obtain a permanent copy of DECAL with 340 definitions. Following the action operators is a test program which can be compiled and loaded to check that the compiler is using the definitions correctly. The pattern produced by the test program is described in the 340 DDT write-up. DECUS No. 84 ------------ M.I.T. Floating Point Arithmetic Package Bill Gasper and Tom Eggers, M.I.T., Cambridge Massachusetts The Floating Package is a group of arithmetic subroutines in 2e which numbers are represented in the form f x . f is a 1's complement 18-bit fraction with the binary point between bits 0 and 1. e is a 1's complement 18-bit integer exponent of 2. The largest magnitude numbers that can be represented ~ 39,000. are - 10, A number is normalized when 1/2<|f|<1. All the floating point routines, except the two floating unnormalized adds, return a normalized answer. The fraction appears in the AC, the exponet in the I/O. Routines include: Floating Add - jda fad Floating Multiply - jda fmp Floating Divide - jda fdv Floating Square Root - jda fsq Floating Log, base 2 - jda log Floating Reciprocal - jda rcp Floating Input - jda fip Floaitng Output - jda fop Floating Unnormalized add - jda fua Floating Unnormalized add and Round - jda fur Floating Exponentiation - jda f2x DECUS No. 85 ------------ LISP for the PDP-1 L. Peter Deutsch and Edmund C. Berkeley LISP (for LISt Processing) is a language designed primarily for processing data consisting of lists of symbols. It has been used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing, and other fields of intelligent handling of symbols. LISP for the PDP-1 uses, from the basic function, about 1500 registers, and for working storage from about 500 to 14000 registers (the latter in a four-core PDP-1) as may be chosen. It is flexible, permits much investigation, and the correction of preliminary expressions. DECUS No. 86 ------------ Precision Hypotenuse/Square Root Subroutine Nick Chase, Charles W. Adams Associates, Incorporated Precision Hypotenuse is used to form the 34-bit sum of the squares of two 17-bit one's complement deltas and takes the square root. Precision Square Root, indicated by coding within the comments, will calculate the 17-bit square root of the 34-bit number. The symbolic version of the subroutine is in Drum FRAP but will assemble with ordinary FRAP. The subroutine occupies 34(10) registers, using automatic multiply and divide hard- hare, and requires a constant of 200000(8). DECUS No. 87 ------------ Buffered DECtape Read and Write Routines R. J. McQuillin, Inforonics, Incorporated, Cambridge, Massachusetts These routines simulate paper tape on DECtape. When characters are written (punched) onto DECtape, they are packed two per word. Therefore, it is possible to put 776(8) characters on one DECtape block. DECUS No. 88 ------------ Typewriter Time Test Lloyd J. Ostiguy, Inforonics, Inc., Maynard, Massachusetts Indicates time ratios between key strokes on a typewriter. DECUS No. 89 and 89a -------------------- Cube Display and Matchbox Display T. Hart Demonstration programs displaying a cube or matchbox for use with the PDP-1 and Type 30 Display. DECUS No. 90 ------------ Color Debugger Nick Chase, Charles W. Adams Associates, Incorporated, Cambridge Massachusetts Provides on-line debugging in octal using PDP-1 with color display and pushbuttons. It has two basic modes: examine/modify and program trace. Requires PDP-1 with memory extension control and a color display console, or black and white display type 30 (preferably with pushbutttons connected to computer testword). DECUS No. 91 ------------ DECtape Duplicate/Verify R. J. McQuillin, Inforonics, Incorporated, Cambridge, Massachusetts This program copies DECtape on the PDP-1. When a DEC- tape is copied, it is automatically verified. An operation that will only verify one tape against another is also in- cluded. The user has control over how much of the tape is duplicated and verified. He may also adjust the internal buffer size to any core configuration. Minimum Hardware: 4K, DECtape Dual Transport Source Language: DECAL Storage: 100-577 plus rest of memory for buffer DECUS No. 92 ------------ EMP (Extended Math Package) Adams Associates, Cambridge Massachusets EMP is an interpretive routine to perform double precision floating point arithmetic and elementary function evaluations. It is a condensation and revision of FLINT (DECUS #15A) for the FLINT 3-word floating point format. Changes in- clude the addition of a floating jump instruction, operation only in extend mode, improved accuracy and elimination of the input-output routines. The program has been coded in MIDAS and may be fully relocated if desired. Minimum Hardware: Standard PDP-1, memory extension control. CAL in extend mode should go to module 0. Storage Requirement: 597(10), plus constants Execution Time: Typical floating add <300usec; normalize <80usec.