Technical Memorandum No. 102-III 03674-23-M CPS PROGRAM LOGIC MANUAL Volume III CPS 8-K FORTRAN PACKAGE. _~'.:b.'K. Mefzger Approved by:'''B for' COOLEY ELECTRONICS LABORATORY Department of Electrical Engineering The University of Michigan Ann Arbor, Michigan Contract No. Nonr-1224(36) NR1 87-200 Office of Naval Research Department of the Navy. Washington, D. C. 20360 December 1969 Reproduction in whole or in part is permitted for any purpose of the U. S. Government

2ki ze~ if L.. -

PRE FACE TO THE SE RIES This report of four volumes is intended to document the May 21, 1969 version of the Cooley Programming System (CPS) which was developed at the Cooley Electronics Laboratory of The University of Michigan. The four volumes are titled: Volume 1: CPS System Architecture and Conventions Volume 2: CPS Basic Programming Package Volume 3: CPS FORTRAN Package Volume 4: CPS System Utility Programs The four volumes were written in order to take a snapshot of CPS at one point in its continuing development. This version of CPS is considered to be a first generation system; successive versions are on the drawing boards and internally resemble their parent less and less every day. CPS is a generalized programming and file management system written for use on the PDP-8 processor of Digital Equipment Corporation's LINC-8 computer. A minimum memory size of 8192 words is required. Extensive use is made of the two tape units present on every LINC- 8 for both file storage and system residence. Using CPS, programs can be entered, edited, assembled (or ii

compiled), loaded and executed entirely from the keyboard without the use of paper tape. CPS provides power and flexibility normally only found on larger computers and in fact was modeled after the Michigan Terminal System which operates on an IBM SYSTEM/360 model 67. In addition to a comprehensive file management and control system CPS contains: Symbolic Text Editor 8-K FORTRAN Compiler MACRO- 8 Assembler Two loaders SABR Assembler Various utility programs Each of the above programs contains service routines which permit automatic communication with the central file system and which allow direct access to CPS files. The general policy followed in implementing CPS was to borrow and adapt as much of DEC's software as possible in order to speed system development. The responsibility (or blame) for various segments of CPS is divided as follows: Gerald Cederquist System design and conventions, Control Program, Absolute Assembler, Absolute Loader, MARKP8 (tape marking program), and FILECOPY (file copying program).

Kurt Metzger SABR, FORTRAN, Relocating Loader, PAPERBIN (binary paper tape input program), TAPCOPY (tape copying program), and assorted tape routines. joint effort Text Editor, I/O Control System, and various compromises. Work started on CPS in November of 1968 with the first workable version being completed in February of 1969. The FORTRANSABR package was incorporated in the March-April period of 1969. Since this time CPS has been in use at CEL in the development of digital signal processing programs for project MIMI. It has been found to be a very effective tool and has greatly decreased program development time and programmer frustration. Tasks which formerly took over a month to complete using the DEC 8-LIBRARY System are now routinely completed in one to two weeks. The bulk of CPS and the associated routines were hurriedly written since the authors were effectively stealing time from their thesis research. Consequently portions of the code were done in a quick and dirty manner. Now that several months have passed, the fact that these portions were quick has dimmed in memory but the dirt remains. iv

The authors would like to thank Dr. T. G. Birdsall of CEL for his continued encouragement and support and Mr. C. Conley of DEC for his assistance in providing the FORTRAN-SABR package for use in CPS. GO Cederquist K. Metzger Ann Arbor, Michigan December 1969

TABLE OF CONTENTS Page PREFACE TO THE SERIES ii PREFACE TO VOLUME 3 vii CHAPTER 1. CPS FORTRAN COMPILER I Memory Organization 5 Subroutine Descriptions 5 Assembly Instructions 9 FORTRAN Highlights 10 Listing 11 CHAPTER 2. CPS SABR ASSEMBLER 28 Memory Organization 33 Subroutine De scriptions 34 Assembly Instructions 37 SABR Comments 38 SABR Highlights 39 Listing 40 CHAPTER 3. CPS RELOCATABLE LOADER 60 Loading Procedure 61 Loader Command Input 62 Loader Operation 63 Memory Organization 71 Subroutine Descriptions 73 Assembly Instructions 82 Listing 83 CHAPTER 4. CPS FORTRAN LIBRARY 134 APPENDIX A. FITAPE 1 37 Listing 138 vPi

PRE FACE TO VOLUME 3 This volume describes the modifications and support routines which were added to DEC's 8-K FORTRAN system in order to allow it to interface with CPS. The net effect of these alterations was to completely eliminate the need for paper tape and to allow 8-K FORTRAN to function as an integral part of CPS. The current version of 8-K FORTRAN as part of an operating system is the third such implementation made at CEL. The first such system was completed in August of 1968 and was a rudimentary two tape system. The unit 0 tape was a slightly modified 8-Library System tape and the unit 1 tape contained a CEL written file management and operating system. This was used to store, load and execute FORTRAN programs. The need for paper tape was completely eliminated. The second system never got off its feet because it contained an early (non-working) version of SABR. By the time SABR was fixed CPS was on the air. Using CPS as a programming aid it was possible to imbed DEC's 8-K FORTRAN into CPS in less than a month. The implementation of the relocatable loader required the greatest amount of time since its support code was the largest and most complicated portion of the FORTRAN package. In putting 8-K FORTRAN into CPS the primary emphasis was on rapidly getting a working system. Since vii

implementing 8-K FORTRAN new programming and tape handling tricks have been learned and it is recognized that some of the procedures and code can be improved. 8-K FORTRAN has been found to be a very useful programming tool and is being extensively used at CEL to post process the output of various signal processing programs.

CHAPTER 1 CPS FORTRAN COMPILER The FORTRAN compiler used in CPS is Version 04 of DEC's 8-K FORTRAN compiler. We have patched 26 locations and supplied additional support code in order to interface it with the CPS file system. The compiler is stored in the coreimage file *FORTRAN. *FORTRAN accepts input either from designated symbolic files or from the ASR- 33 Teletype. Its output is placed into the - S working area. The *FORTRAN output is in two sections and each half is placed into a separate file. If the compilation is successful the SABR assembler is automatically loaded into memory and is given the task of assembling the *FORTRAN output. The resulting binary is placed in the -B working area. Operation proceeds in the following manner: 1o The user types the command RUN *FORTRAN FILE1+. o.FILE6 P=... into the CPS file system. The files FILE1 through FILE 6 are assumed to contain a valid FORTRAN program with the last named file being terminated with the standard FORTRAN statement, END. A maximum of 6 files can be compiled as a single FORTRAN program. If no file

names are supplied the ASR- 33 is assumed to be the active input device. 2. The CPS file system loads the coreimage file *FORTRAN and starts it at location 1 5600 (in the support code). The following operations take place before control is passed to the compiler itself: The communication area (CA) file update switches are set. However, no file entries are made at this time. The input file list is checked to see if the first entry is -3 which indicates that the ASR-33 is to be used. If it is, RDRSW is set to 0, no file transfer operations are made and the compiler is started at location 11000. If the input is to be from CPS symbolic files then these files are transferred into the binary working area starting in block 1 on tape unit 1. This transfer is made so that the *FORTRAN output can be placed into -S for later use with SABR. This transfer is fairly fast and cuts down on later tape operations. The subroutine TRANS is used in this transfer. The transfer is effected using a 5 page buffer. During the transfer process the appropriate modifications are made in the CA in order to reflect the change in file locations. The original files are unmodified. When all transfers have been made (a maximum of 6) the SETUP routine is called. This routine is used to setup the input tape calls and handles the sequencing through input files. After the tape calls have been initialized the compiler is started at location 11000. 3. The compiler requests an input character by doing a JMS to the FEEDF subroutine located at 13315. This routine then obtains a character either from the reader using the RKBD routine (which forces the parity channel to 1 so we can use a dataphone for input) or from the specified input files using the DCODE subroutine.

3 The DCODE routine accesses the input data files through a heirarchy of subroutines, BITS, GETWOR, and SETUP. It is assumed that the input files use the *ED compressed data format. DCODE supplies each carriage return with a line feed. A two page input buffer located at 15200 is used for input. When a CTRL- C is encountered in the input string (the *ED end of file symbol) the input support routines cause the next user named file to be used for input. If there are no more files (i.e., END statement) an error message is typed and control is returned to the CPS file system. 4. Each time the compiler outputs a character it does a JMS to the support routine FWR at 13200. This routine accepts ASCII from the compiler, using the COMPRES routine packs it i nt o the *ED format and places the result into the output buffer (4 pages long starting at 13600). If a (CTRL-C) has been struck at the keyboard, the compiler output is echoed on the ASR-33. This can be turned off by striking any other character. COMPRES converts the ASCII output into *ED format and uses PUTOUT to form the packed word. Line feeds are ignored. PUTOUT uses the routine PLACE to place a packed word in the actual buffer. When the output buffer is full, WBUF is used to write it onto tape and to reset the buffer pointers. There is approximately an 8 to 1 expansion in file size between

4 input and output. 5. When the END statement is found by the compiler it does a JMS to the routine FMID at 13263. This routine terminates the current buffer with a (CTRL- C) character and writes it onto tape. FMID then sets up file pointers in the CA which SABR will later use to determine where its input is located. Two file entries are made. The file just formed on tape is set up as the second file entry. The first file entry points to the file to be formed next using the output to be produced when the compiler is re-entered. 6. The compiler is re-entered and produces additional output. This is buffered and written onto tape as before. However a new file area is used. When the compiler finishes this operation it returns control of the machine to the support routine, END at 11635. Compilation is now finished. 7. The END routine terminates the current buffer with a (CTRL- C) and writes the buffer onto tape. The appropriate entry is made in the CA file pointer list. If any errors have occurred during the compilation the file system is re-entered. If there were no errors then a small program is transferred to memory field 0 and started. This program uses the system boot read only tape routine to load the I page file system RUN loader. Pointers have been set up so that when the RUN loader is started it proceeds to load SABR and start it. The file pointers in the CA have been set so that the two FORTRAN output

5 segments are taken as SABR's input and operation proceeds as described in the SABR write-up. The P=... parameters supplied in the RUN *FORTRAN command are passed on to SABR. Memory Organization The upper 4-K of memory is organized as indicated below. The lower 4-K contains only patches. Locations Contents 11600-11777 SETUP, RKBD, END, LDSABR 12000-12177 COMPRES, PUTOUT, DCODE, BITS 12200-12336 DECOUT, MESAGE, GCDF 13200-13377 FWR, PLACE, FMID, FEEDF, GETWOR 13600-14577 output buffer 1 5000-1 5177 RTAPE, WTAPE 15200-15577 input buffer, TRANS (15400.. gets wiped) 15600-15777 START, SETRDR, NOROOM (all get wiped) 16400-17577 transfer buffer (in the symbol table) Subroutine Descriptions DECOUT A decimal output routine... not used. MESAGE A modified version of DEC's message typeout routine. The AC is assumed to contain the address of the text to be typed. GCDF This subroutine does a RDR with a CDF in the AC and sets the data field to 1. Return is made with a data field resetting CDF in the AC.

START The entry point to the FORTRAN support code. The file system starts *FORTRAN here. This routine first sets up the CA update switches, then checks for the proper input device. If the ASR- 33 is to be used, a call is made to SETRDR. If the input is to come from CPS files these files are transferred to -B using TRANS. Minus the number of input files is placed in GCNT and the file list pointer TA is set to 7600 (this initializes SETUP). The subroutine SETUP is called in order to initialize the input buffer management routines so that the first compiler input request causes the first input file to be accessed. The compiler is then started at location 11000. SETRDR Sets RDRSW to 0 which indicates that the input is to come from the ASR- 33. NOROOM Uses MESAGE to type an error message if the files transferred into -B require too much space. SETUP This routine is called whenever an input file has been emptied and an END statement has not been encountered. The file pointer list is checked to see if another file was named in the invoking RUN command. If there is another file, the input buffer routines are reset so that a read tape operation is forced when the next character is requested. If a file is not present then an error message is typed and control is returned to the file system. RL is set to 7777 and HALF is set to 0 to force the desired tape read. RKBD Reads one character from the keyboard setting the parity channel to 1. END Control comes to here when the compiler is all through. The current output buffer is terminated with a (CTRL- C) (a 7703 is placed into the buffer on the assumption that the last line was terminated with a carriage return) and the buffer is written on tape by calling WBUF. The length of the first entry in the CA file pointer list is calculated and placed in this list. If there were any errors in the compilation an error message is typed and control is returned to the file system. If there were no errors then the address of SABR (assumed to be the next file after *FORTRAN and whose address is thus in location 17773)

is placed in location 00134 and a 0 is placed in 00135 for use by the RUN loader. A 6 instruction program is transferred to location 07372 and then started. This program simply makes a call to the read-only tape routine contained in the system boot. This call causes the RUN loader to be read into memory and started at location 07400. The RUN loader then reads in SABR and starts it. TRANS Used to transfer the user designated files from their normal storage areas into -B. The original files are unaltered. The transfer is made using a fixed buffer size of 5 blocks. This is fine if the checksum is correct in the 1 to 4 tape blocks following a specified file. This routine should be changed so that only the exact number of blocks in a file are transferred. RTAPE and WTAPE are called on for the actual tape operations. TRANS is only used at startup and is never used later. It eventually gets clobbered. FWR'Accepts ASCII from the compiler and calls COMPRES to process it. If a (CTRL-C) has been struck on the ASR- 33, FWR types the compiler output. Striking any other character turns this typing off. PLACE Takes the contents of the AC and places them into the output buffer. LOC is the buffer pointer and is assumed to always be pointing to a valid buffer location. After the contents of the AC have been placed, LOC is incremented by one and tested to see if the next value is a proper bufber address. If it is a normal return is made. If LOC points outside of the buffer then a call is made to WBUF which writes the current buffer onto tape, advances the tape pointer and resets LOC. A normal return is then made-. WBUF Writes the current buffer onto tape and resets LOC to point at the first word in the output buffer. WBUF starts writing tapes at block 1 of unit 0. WTAPE is used for the actual tape operation.

8 FMID Control is returned to here when the compiler realizes it has found the END statement and it is at "mid-pass." The current output buffer is terminated with a 7703 [(CTRL-C), assuming the last stored character was a carriage return. ] The buffer is then written onto tape. The file pointers in the CA are set up with two file engries being constructed. The just completed output segment is set up as the second entry. The output segment to follow (storage allocations) will be used as the first entry. Control is returned to the compiler. FEEDF The compiler comes here seeking ASCII. If the RDRSW is 0 then RKBD is used to obtain the ASCII. Otherwise a call is made on DCODE. GETWOR This routine is used by BITS to fetch a packed word from the input buffer. RL is the input buffer pointer and is checked prior to fetching a word to see if it points into the current buffer. If it does, the next word is fetched and RL is incremented. If it doesn't, a call is made to RTAPE to read in two additional tape blocks (two blocks are'always read... this shouldn't cause problems), RL is reset to point to the start of the input buffer and the next word is fetched in the normal fashion. COMPRES Takes ASCII from the compiler and determines how it should be coded in order to place it into *ED format. PUTOUT is used to do the required packing and to cause the packed output to be placed into the output buffer. Line feeds are ignored. PUTOUT Strips the contents of the AC to six bits and depending on RLSW places the result in the left or right hand side of a computer word. If it goes into the right hand side, the result is placed into the output buffer through a call on PLACE o DCODE Obtains six bit characters using the BITS routine and maps these back into ASCII assuming the packed input uses *ED format. A line feed is supplied after every carriage return. If a (CTRL-C) is encountered a call is made to SETUP to set up the next input file and DCODE is then restarted.

9 BITS Furnishes DCODE with 6 bit words for use in reconstructing the source ASCII. Uses GETWOR to obtain its packed words and uses HALF as a switch to determine which side of a word should be used next. RTAPE A one page tape routine for reading and writing 128 WTAPE word blocks on LINC tape. See the enclosed listing for details. Assembly Instructions The following procedure is used in constructing the coreimage file *FORTRAN~ RUN *ASM C1+C2+C3+C4+C5+C6 2=C7+$ SAVE -B FORTSUP RUN *ASM FiTAPE SAVE -B BF1TAPE LOAD A GET FORTV4 GET FORTSUP GET BF1TAPE @15000 BUILD (the starting address is 15600) When control returns to the file system, -B will contain the desired coreimage file. Files C1 through C7 contain the symbolics for the patches and the support code required to interface the compiler with CPS. FiTAPE is a one page LINC tape read-write routine and is the only

10 tape routine used other than the one in the system boot. FORTV4 is a binary file which contains DEC's FORTRAN compiler, unmodified. FORTV4 is generated by reading the source binary paper tape into a file using PAPERBIN. FORTRAN Highlights The source files named in the invoking RUN command are moved into -B. Compilation proceeds from -B into -S. Two output files are produced. These are set up so that SABR operates on them in the correct order. SABR immediately follows the FORTRAN compiler on tape and the loader provides the location of SABR in the CPS file system. The RUN loader is accessible to the user via the boot read only tape routine. Input and output files use the *ED format. All line feeds are ignored on output. The input text is contained in 6 or less files. The standard CPS conventions for the system communication area are observed. The parameters specified in the P=... construct are passed directly to SABR on pass 2. If no input files are specified in the invoking RUN command, the ASR- 33 is used as the active input device. The input buffer is two pages long. The output buffer is four pages long.

~!AC'r05 0'' S _EiL L EI' ( A;;2 9'.& ) 11?A&E 01 /FI ELD 0 T T0PITEC CiA TPILE2I / FI ELD 0 / *352 0C,52 7C000 iCP / INIT START Pil-Cih 0353 70 CCG,P 0354 7200C LA / *357 C357 5177 5177 /7 O T1 II / *547 0547 3212 1 10 / LILA LA?TiC C 5.7 7TCt 0350 -'7T1 Jd;S I.+1 0551 3315 F'EEF / *5340 3>34C 32"12 CI g 10 /?U"'JCl PATCl-i 53411 4742 JtS I.+1 / 53 53 7,0.'. ~L E5' PAT5C 5 3 5 5 7 G O C L A I Ci 5353, 72C0 CL. 5357 3212 CI 10 5,0 GO 47-1I J;,-S I 0+1 5 3; 1 1 i 5 5 J:i) / ~310d7 71 7 *7170 7170:0/3 TL'O /0 N /Ci-,i'.I: sE, 127 I. if _,,',.7171 C0i TSF 7172 571 J.-1 / FII Lu 1 71 7'' 5 7 C 1' /i-S LrtA, T:; 1 T 1001 7200 CL.: 1 02 2. T. IL'' /CI' TT' t., L

12 I E L I /VlZLl 1" iiU - f Tr /D7CI.L I ri-i I'.2.' / /;ILIT RT 3 F0 OUTPUT / 2200 /, I 0C i 1 Y t i C 1' ia027 2201,.., r... LK,', /i ]~,?'Th2,.. Li-, l,'... 0 C 2202G 1 TI2 D'.Z F I,, /1T2;i, IST7. 20i, 1I 1 1h X4 222L /1\Xc C- I uI I TS 22905 22iC DGA DZuCC T,227 7',2.13 DCL, 7 L..,. 22 C 122 TAD DIs.VA 2211 7100 C'L /'2 I;, F;- /Uv'/:F 12.' 23 15 2 2/i 12_ F C VAL 22'~17 7300 DEX~ChAV, CLA CLL 222 1?42 TAD D 2CVAL 2221 7450 _;,A /7UP LD.:":: S'9222; _ 2,A *, 222 421C5 JA DZCT'? r- -1 I1 521 ZC?+1 /5 C?,-.,:.-,, 1 7 Ci 2'72? 5CC,'7 I J,POCOUT/i 1DC.? 22!? 7700.... 7' /7 L.:,..77 1 22? z 00 I /,C T C " COCO)/r SC I0 A' f /. C"', i- DC'?17 > 5002,7 C A?.2 0'~~07 S 1 05 1 1 D'"TY? 0o:~'? T;U rz,r-, - i: D r OCO? ""'....'3 3 /~ ) i; r~~~~~~~r -'

LI~~~~~~~~~~~~~~~~~~~~~~~L'-4~~~~~~~~~~~~~~~~~~~~~~~~~~IL~~~~~~~~~~~~~~~~~~~I jrJ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~~~~ f~ D C C C)~~~~~~~~~~~~~~~~~~~~~~~~- )-l ~~~~~~~~~~~~~~~~~~~~~~-L. - ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.4 ~~~ >~~~~~~~ >~~~~~~~ ~~~~~C) N r') N~~~CDC t)r-C) L r NV-i +W>- C C') N~~~~~~~~~~~~~~~~~~~~~~~,J D L CD ]' N (I (JD-' C)(D \ -.-~~ - C) C) CD N N K'- Ii ~~~ -'-~ C'-. C) (f,\ I: LICD - C:) - -;7NCDC? ~ ~ ~ ~ ~ ~ ---— ~~~~L2 -'C') LI LII) (~3 L~~~~~~~~~~~c'-' tf\ ur LI C) CD t' —7")4 00 Ol-4 — 4 — I —-'- l-4' ~~~~~~r-t- Nr- t -rH t N *C)> 3 *CD CDCD C'C ) - D )'-4 C\ C C C] -, \ \ \ C 11 C\ I -j C\ t,2) L-..t4 N- C)W f4 LILI0-0f'x) r2 f'C, F -, CIF-IL:C U \ \`f- C C, )i' \f CO C,. C,-\' \ilC J~D -'2 -')-'ICCC O"(,I'LJF-'`C I(\ -0C, C \! C\)")c' II t -C I C., C' O.-C

PAGE

15?ASE 05 FI LE: I /CODZ' TO ST-RT UP THE CO"P L"'"I / 5CCC 0- S CSTAT, TrKE /CL[, FLAi 55C1 7300 CLA CLL 50'2 1377 TAD (7773 /FI UP POI t l RS I TOP P A 5303 3010 DCA 10 5 n04 137 TA:2 (7402 5,30 7041 CIA 5 307 7240 C~,c CL 5S10 3410 OCA I 10 j3S11 7201 CLA IAC 5 51 3 410 UCA I 1C 5 13 13 775 T,'ADL ( 7'400 5314 3410 CA I 10 5315 1374 TAD (-3 /:A,.> NU.'i], 0F FILS ALLC;V',D 5'31S 3:7773 CA^..CONT 5l 7 17 7 TAD: (00C 1 /7'I CAI T CL -' 5S2C 3254 DCA?t.' I iER 5 21 1371 TAD (73 0 G 5522 3277 DCA TAP /PTS TO FI LE DATA I TOP PA I 53523 1370 TFA (3 /S3" IJ LEADSR IPT 5524 13577 TAD T TAP /-3-RDR 52?.5 7;5C SIt,: C!.A 5323 527,1i 5527 13 77 F Lr, TT)AD I TAP /ET I L 5330 7450 C'CA 5331 52 3 U':-, DE 5332. 3252: D 5,L 1 / PT U TO iCVl TS IiT 5533 1254 TMAD P:'liUrE /,!3Y,' LOC ON TAPE 5334 3377 DCA I TA? /i''' 3Lt. 535 2277 ISZ TA? /GUT -- 3LKe 5S3 1 77 TAD I TA? 5537 C337 AND; (77 /lOT RID- OF SCJOURiCE SI::K 2IT 53540 7450 SDA /:iOULD,OT:0 5 C 7 525o DCA OX / SUT TI OY 5 S4 1 1 5? 7 21 T 7 DS 0. 5343 125'. TAD W"if}cS-f' /SEL IF R00CC; 5~..!zi 0333 AD (1777 5'.3'/ 1253 TAD CX;5343 1335 TAD (-150 5 3 2:7 7 770 0 g [', A" C LA 53T5 50 CC J530P F "-OR S /RtFO;ii,iU SS 5S51 473 4 J' TI'S /XFR IT 5 52 0C00 }' 0 55 4 OC GC0 i'i -1. 0 5355 154 TAD Pi',F;EE /;ADV?POIlN;'Ef 555- 125I3 TAD O 5'S -7 5 2i D C A I" J " _ T 5'S 0 2277 IS3 TA? /NEVT T";TT\'

16 50 3 1 2773 ISZ 7OCNT /,5 XZT? 5 S2 5227 J.! P Ti-LOOP /IC 5 S3 1571 DO E, TAD (7S C /DON.5'i"4 3703 DCA T.A /FORf JSE'i C i'IL 5055 1302 TAD ( /HO' I, AY? 50S0S 1773 TAi GCNT / I IN AC 53 S 7 7 4 CI, 5570 3777 OCA f"C'T 5 7 1 47,S Jd S ETU? /SET 1? INPUT U AiT' CTALLS 5 72 5 73 ST RTC, Ji;,P I.+I 573 1 C000 1 00 /FOiR TfA:.,":INTR, Y i'T / 5 S74 7300 ETTS FDR, CLA CLL 5075 37SC DCA <RgDS' 5573 5272 Jd iP STAITC /SE.T 301 7N / 5577 00C0 TAP, C / 57CC0 1303 l;OCGi', TA D L1L2 5701 -4757 Jh5 fi'SAOE 57C2 5755 J.i? E" xT/ 5 73 574, i o i72 A 5704 4543?22A TEXT:Z# 57C5 2417 TO 57CS 174 0 0 5707 1525 tI;U 5710 C 31 C!, 5711 4C11 I 5 712 1 20,? 5713 2524 UT' 571 4 0CO0: 5 75 1707?A 5757 2252 -570 3357 5 7.51 1 0so 5701 1 000 5702 C 0 0 57 4 540O 57 5 7 30 57 3 1777 577 C0077 577C 0003 5771 70C0 577>2 4001l 5 773 1 7C33 5 77/ 7772 5775 7400 5773 740 2 5777 7773

17 A G2 07 /TAPE BUFEfi CHAN.R,i;'D,~:F Ox i, ESS,.L / FIE ELD I / 16OC00 I C30 OCO SETUP, 0 /SET UP TAPE UNlT CALLS C 1 73()(00 CLA CLL 1 302 1233 TAD SCN T 1 3S0 7350 SA CA CLA 1 SC0 53C2 Jti!P TO t4ANY 1 05 1534 TAt I TA /Li' 130G 0377 n'D (1777 1 C7 3773S DCA ITA3 1 S1 1 S3 TAD I TA /E-T UNlIT I SI 1 7003 HTL 1 31 2 0375 AND (1 1313 3774 DCA IUN /IP? T CA'LL U':-IT 1l14 7240 CLA C;;A 1 515 3773 DCA R-L /FnOfCE- I"ITIAL D'jEAD 1515 2233 lSEZ CGCNT /lONE LESS 3UFF 1 17 7000C r,;C? 1 C20 3772 DCA HALF /Sl4 FO[' SIDE TO GET FION', I 321 223/ I!SZ TA 1 522 22-/: ICZ TA /IGICOE ELK' COT 1 23 5300 JCl I SrET!P / 1 32x OCC00 C liD, 0 1 S35 03 1 C:F 1 525 5'225 JF2. -1 1 527 C3. 1330 0371 AND (177 1i31 1370 TAD ((200 1 532 5324 Ji? I F,.'.X-D / / $1 T3 O G(.) OC"iT Cf I 3 0CCOC T C,-, 0 / / 1 3.5 0000 END, 0 /CCI[E iiEDE VlRi-i ALL D"ONE 1 SZ3 3213 CDF CIF 10 1337 7300 CCA C Li C L 1 /iOi 1737 TAD LOC IS41 3234 DCA TA 1S,43 13S3 TfA (77C0 I 1313 3 3'i DCA I TA 1 3514 4755 Ji';KE Z' UF /P T CJl"'-zEST'OF BiUF'". I S35 1 7 i7 TAD I'L7C /,FIX TL LE:. 1 3'i 7C 1 CI". 1 S47 17 TA D r;:'O' 1350C 3750.JCA I L7301 /lAVE?DOLE~ LE[, 1651 32;01 C$D 1 552 1751 TAD I L75 /SEE IFD rECEi S-JI

18 1 53 511 CDF 10 1 54 7540 SZA CL?, 1,55 5307 JdP.ZEZ:T / /;(,i:T LOAD! "'A-' / 1S53 1759 TAD I L7773 /ADDRLS CF;DAvi 1357 3201 C';DF 133C 37 -435 DCA.O I L134 1 S31 7l RC;CA I L135 //0 LTT TO OOL'0U' IN-E 1 3,2 1 3'3 T.AD (7371 />7372 I 233 3. 0., A 1 0 /7 21 /Jd2S I.-1 1332ii \ TAD,. (7321 /1-C0 1270 13 0C t I 1, /( 1 55~7. "1Ci 0 CT; 7 1 7 /7 GC J.7C I S T I? (0 7 2 I 371 3'/IC 0D5r I 1C I7:'i j 3:10!)CA I 10 1375 1.357 TAD (7'ICO 1'73 7/ IC CA I 1 " 377 C,03? "' FI 17CC 5701 J2 I.. 17CI?775 7 7-77 / / 1.7r',7 TJ 7 17' 7C " "'E TA 7 L7, 17,1 ~1.", 71 rC;,'.7... 1 7r1 1 ":'.. 7...,,, 17171:7!.7 7 1 7.7.CC — 1 C 5 1 1 1 171? 7 r-7 - r" t 7.....' -' r_....',-v: _ L:': l r 171" I:..,'.. 17 -7 L C 1 7)) _T 777 T 17 1 1 7 1 7', 7 _. 7 1721 1''1'

19 7'-," i I? 7 1 -7 A t 7, 7 -A 1 73, 1107 I7 17 3. 0 CC 7: 1 74C C52,2 L-J 1 741 2217 F0 1742 2240 R 1 743 2205 RER 1744 2400 T: 1745 0134 L134, 134 174 0 1 3 5 L135, 1 5 1747 7C00 L7 SO, 7SCC 175C 7SC1 L73C1, 7I221 1751 0075 L75, 75 1752 7 7 773, 7773 1 7 5 5'?52 175 2 2O 1 7S0 C0450 1 7 1 4'772 1 737; 771 173~ 323 1 7 r 7 " 0 1707 32021 1 7N 7 C? fa 177 Cr 1 7 7 C 1?? 1 77 c? 17'7'7 1 77 "' 7 7 7 1 77? C?7?

20 ) A.., -- 1. I/RA, "'7FF tT I! I TY FIL! 1 3"1 7::Z ~l1 5.C.-. r T^ t-~', f " C'.77;7 (1777 / T L:J 5 1 LC.,A F L'; <:'-055 120 TMC)- IT. TY.A-i? /&ZT T? C. 7 71 1 rw TLt! W.!,. 13253 T.; I T /f... r 1 I 1 TI T TF AWC -"lt'1/ U~C1 IS TTV4 UT -5. - 1 J?X0 7 I "... (. 1 r,,,17 7', L' /1 " Sil/-O 1-300 TAD I 7. 5 710,.TL O7L S? 7220 k- 0 Ti;IT /f.' i IT ni' 1.m 5, ", 4,'2 7:7 12!" T"A'I.. r " I ~ 7 -sz r, r'- L 1'',.... I'1 7:av I.it 7,,7. 1417 7 ITC 5"I' 5i7 S nC Ie ii_ CL 7r 1 l/-T T^ -L'I77L _-.>iC 1 7. " OC, 5''.'257? 5. L < 72 71 T n C, C CC r7 * 7 T L L."-.' / "' "- " C, 1?'s, U. * 15 CCC', L'., C 5'. 00CCC TO'VT, 06.'i ot.., C C L" -

?~;Y"Z 11. 2, 0 01 1LOCOO /BU, 5/2 192351 TA., A L, 54 L5 1252 TAr F:, ~JU 5 4 5 1 X "' F DL. 54i 1232 TAD9 Tr"L K' 5'Ic" 1 57 TAD TC"::' 7 527 ) 5 _J;. 5,7,1- TCTLi, 5'71 0Cr. IT, C 5S7.'. 50 7 " 5575 5300 5577 1777

.*~~ ~~~~i-2 12~ A 722 /COE T.!JIPO;C'T COiI:'IILZ ljI I.: EX.CUTI / FIB LI 1 / "_0 2CC FC000 /l 09 /TAIT' -C1I F FR....TRAN 3201 3555 0C, Ii3202 7C 70 4 2nL /S7... VL LI7,e 35C2 0 7 5.22 DCA TlilK. 201,:4 1-'777 J;i'; COUjF /2T ClDF AiD DPC (;DF 1 C 32 0 5 3 15 C A F:. 1 T 320:; 2200 12Z Fvr:L /;ITSS PATChi 35C7 1553 TAD IPT 3210 4773 J'22 CCO.PFrES /PACI(IT 3211.;34 I.- /TYP~R FC, DEU"'GING, COI. C TJRS Of, A;YTKILC F7 5212 1375 T.D- (-IC3 3215 7350:S-;, CLA 321 4 52 24 J;"P?Pi YT 3521 5 0C00 Fi..RA2T, 0 3214 3202 CIi 7217 73C0 CLA CLL 32'0 1 2 TAD TLI NK /RESTC Fr LIN 3221 7010.: 3222 5 00 J[ih " I FVi /G0 BACK, / / 322 0 000 TLI >~X 0 / / 3227 OCCC?LACs C /PJT II 3BFF 3250C v532 D LOC /C(AC) 531 22352 ITa LOC 32. 1>?'S TAD L IP 32 v 7100 1' CLL /C2 E JF LO.T F- S2 T TO 1 327/ 1 Z 75 Ti (-400 325 73C L"L -CLL i /L 1 r JLL 323i'2'Q J::0'; &Z /J IT / 02'7 7 C' o?iFic CCC..O,.,i"' C /P T.- 3,?T iUFF 3241 7 I C /L CLL 324 12S503 TAD JL\ K 5245 1 5 T AD L l 3242 1572 TL; L (-25 /TL0 FJLL? 524c 770C "l S_ OLA'T 3241 3i 5771. T/SF!,LL 3 I I7 i77 0;> -TAhL 5230 02wu 1 L., I 4_51 0C04: 4 0 5252 Ou0O 0

23 a, v 3 253 00 "O 0 LOCI 3 S00 /STiT OF OPT 3BUFF 3254 1 250C IALD L 3255 1251 IAD 2Lt+1 3255 3250 DCA BL'L 3 257 1553 TAD LOCI 335-0 C3S22 L CAi LOC 3251 5254C0 JH? I t''UF / 322? 3200 LOC, 3C 00 / cOR STAiS i JP / 3'2 OCCO FiJID, 0 /'AIDPASS ALTERATI'O[N 3'?..' 4777 J,. 7CDF 3255 33 12 CA FiSRL T 322 gS. 223 ISZ FMI D /,iIS PATCHL[ 3 27 1 3Z 7 TAD (770C3 3270 32,2 DCA I LOC /TER BSUFFER 3271 4240 J,iS t.U F /S I I 3272 CI0C TAD 10 327Z3 37 777 L;oA OCDF /UJI i3 AI S A TY,?P 3274 130$ TAD (7577 3275 0 10 DCi 10 /ElT LUP LK CALS FOR SAiR 327S 1250 TAD.LX 3277 3410 DCA I 10 3200Q 3410 DCA I 10 / 1ILL FIX LATrR WH11EJ ENDI N 3301 72C1 CLA IAC 3302 3'l10 DCA I 1C 3303 7240 CLA CiA 3304 1250 TAD?;LK 3305 3410 CA I 10 3305 3410 ODCA I 1i /ZiERO FCLLO';INC E BNTRIES 33C7 3410 DCA I 10 3310 1777 TM GCJF3311 3C1C DCA 10 /R"STiE FOR CO.P.ILEF: 3312 7C000 I, D;R;,. f OP 7313 2202 CI, 3 3 1 4 5 G 3 J! IP I Fi I / 3315 CC0C F'LEDFr, 0 /FLJ; COV':.ASbCII 331 2315 ISL FE.,DF /.i.ISS PA TCi 3317 1 4777 J' S COF 3320 33)5 OCA F.i5_T 3'U1 1?57 TSAD,"Dq<SJ /'SEL IF i-LDI 3..,.:G2 7'.J0 (A CLA /0 YL 33'? 5V 3 Ji>;.P FDT INJ 335 70 C L T N T!J 7 32.7 7 1' $ J I5 FLD1 333 74 7DiI,', JXIS i 33231 53375 dJ?7 FiDC T' 3335 7300 CL' AI (L 3Z3I 1355 TAV \L

24 7?AG 14 3335 1V 3 TAD (-5S00 /1 0 353 3 7320 S;iL 0' i 3337 5552 J'iF? IXTLER 33t(, 473,2 J7iS riiA'i 3341 0001 11'2, 1 33'42 0002. IW>,I L'i 2 3343 0001 I LJN, 33,4/i 5200 IbLO, 5200 3345 1541 TADS ITAN 334 5 173,2 TAD I:i 3347 1:a 3347 3 41 CAI I iA 5305 1 44 TAD ILOC 3531 3355 DCA RL 3352 1755 I(TLE,, TAD I L 3355 255 I2 L iL 3354 5732, JtiP I GLQTUJID / 3355 300 1.\1, SC01 /FOGICLE READ / 3353 0OC00 INT 0,357 0CG 1 IDS,' 1 /CFF o 57 COU c 33352 500 3535 22C0 334 1 9Zi 33S5 20C5 3zS.S 7577 33G7 7703 3370 50CS 3571 1705 3, 272 7522 337 3200CC 33741 2245 3575 7575 3 375 200C 3377 2317

25 PAGI 15 h TAP:0CGO WJTAPE=500 3 / /SU DL'UII- TJI CO:; P RiSS ASCII /I'O T DITCi: F 0'A T /F7ULL ihAdiE PACK!!!! /'2000 2000 COCG C O P ifi "S, 0 2001 335G0 DCA IPT 2C002 1250 TAD ITl 2003 1 577 TAD (-212 20 4 7/;5'rA 2005 5500 J.;,1 I CO<fPES /I:O1CRE LF 220C 1 73 TAD (-A D f /-30;,; 2007 7510 -'PA /S I F 300 COD E 201: 230 G.&. 1 C LG 2011 1375 TAD (-40 2012 7710 D P C!L' /~AA-I' 77X;; 2(J 1 -I 5 1 J j,,, 2C0 14 7 2 40?';T77, 7,.. C,-i C" /77 P;F I X 2C1 5 457 JI T..T.. u 20O1 15 1,.50 T T;..,.TD /CDrU! 2SITS 2017 42357 J, PJiOUT 2020 155C TAD IPT! /CR? G021 1357; TAD (-215 o029 7.!0 SZi CLA C023 5I 100' I CC P. S 2024 1351 TAD itL.''I; - 015E? 02G5 7715 0 C:7LA 202:.: 427,i'.S PL'TOJT /15CC T' Ta;I IE;AT2C) 02 7 5 3 C J.;I.' 2C0C 1373 TC" T'0 "" (40 /+A;,r IE. -'C',.PI FOx? 2 031 7510 IP 2053 514. P UJT77 /?D-.F-IX I T 2073 132 J (-37 /A 27? X " V, 1 3 J,',.?,.., d _' J / I L L";;C7; 7 C -';iC T9 C':T- C; 2CL7 0CC 70 204 C i0571 AXD" (77 /TC?Ji I; Di','') i!4 1 )35 1 I -'.-1'' / J'{I\,I — SI 3.-" 5/.2 //s zj ij LD?.C. "< 4 770 J;S?-,n / r. IP I Oiw Yi' _ 4 p'.-) 5 J,'.,,.? 204/3i 71C', LAFT, CLL';TL /,' I T' - 20 C -i 7 7 00:3 C' 2 050 70 r" ITL 20 G5 1 O 337,,, (770C /2Jd1 I[t C0251 2C05 335,52 DC,:)' r.' 2033 7240'"C LA",;0.'

...' 1S 205_ 3 234 s w U 1 A C \ C _ T 2055 3337 PL T I; I?JTCUT /2UDCI;v.. 12 00?CId T UFFLAD.,r~r~ ~3L~ i k,,:LUt /t.ULL C,3ii' OL!1!1 U r' r' 225 0000 500CGC, C! C'C57 7730 CL O LL 05 7 7!0 0>p'>0,0':... - /.. _I.. 2'0 527' JC- 1 /,,'T YZ 237 1237 TI7 (7'> C' 7? 5 071 134 1 ( /, TA (0 1 0 272 1303 K200, TAD (240 ~) C 7( rI,, 230 7 3 5 5C Ji.? I DCODE /HAVE ASCII rr. o ~;r 3~7 7 T'-) 2C,~:)071 1 C7'-" 3; 2,. T77 -'IS /77 WATT? 2075 132 1 s (3 /,:2D 0F DUFFLr-? 20 73 7450': 7. 2A o,,77 70/;:-. T'r-,-:F /y,,, 1.; 11... I 7 (I / ^ I (~' 1'' TC i5 2 T 2: 32. j7 /,f;7 2710 C 1 7'.. 7. 21t KJ _-' >' v'S t 8 X,, T; _ u C'/. I; I 0? e71 1 - 7?t".:.': 7 OIi7'. ri 0J?!.2 -x.. /OC'/ VE 0 70'?11i- 10-,C,- =,15 21) 1 1.... /7? L IJ 3 7 /'?C'9- ~7~ T7,1I r -- I T 3 1, -..r..,fC'"1?" 75!C oK 2122 11 537?03,7 ( 7 2 1 i1 1 7 r J T z2i. 2.4 ( 5 7.3.. 1.7,J,2. I -, 5' 7: 7'~K''D ( 77. o.',,.;. (...T, W'.,r 7 o' 3 T; 7' C t 13.....r 7 - " /r"...>..

C-) ILTI_:I 1 -C C)'-4, _ - C) C) CU(DC) L:] C-) CC~ ~- i — te:~!c,] L%<x.. (2 )L,_ C CC c. C ) C). <C C C. r-c O, C. _ i 1 1 C C r 1 C C' 1 C i C CD C CI -: C" C ) Cl Ci C. C. C (,'~ c_' <,'~ ~"'~ I' —- [ -- - ) (:, CD C CX:'0 < ) c0'~0.-:) ~'.] u"~ ~."u" CD~ C.D I'- - -—, c_ I- I' — ~r.)," I'"~~~~~ -- C'-',I-~)r L:~.~t' ~ 0 C'rD L r)') I-I-'r,] -,CJ,I~ ~ c~Ux''-~!" t% "-h.,h' ~{'- " I —U " C}C~ ~ ~. C;:C'.' -~'- "-I'-'- O CDI'!~r~) ) "-C)U U"-I'- " L-.; r-.<,' ~',t~'.' r- c:~., Cx] ~. (~' b%~.:? I~'O ~ C,] Lr~.,']!'- CD — ~~] ~')' ~r~ L'~ 1' — D — ~ C?, r.)4<:' Lr' t" I'4 ('} ~.).') -')':j -')<2 -:' -:? <' <?'%' -.-' ~:T' L t;" U"' t, t4~b% ("~ (" ~, <.O (" ~,q(.,C~'}C"- ~ I"-!"-C, C{'- I"-I"' [",-. C~ 0'~~ ~~~~ C,\ C' - r}] 1 C.!\~ C'.! C',1. C. IC,.. ~('1C,., JC. 0,ci C',! C'.. 0C,,1 C.10,.,]C'..,(

CHAPTER 2 CPS SABR ASSEMBLER The DEC SABR assembler has been incorporated into CPS and provisions for listing control have been added. The file *SABR contains version 13 of SABR along with the associated CPS support code. *SABR is used to assemble files containing programs written using the SABR language. The resulting relocatable binary output is stored in the binary working area -B. *SABR is also used as the second pass of DEC's 8-K FORTRAN compiler. A total of 67 locations in the original DEC version have been patched in order to allow it to interface with CPS. Operation proceeds in the following manner: The command RUN *SABR FILEI+... +FILE6 2=FILE7+... +FILE12 3=FILE 13+... +FILE 18 P=... is used to load and start SABR. A maximum of 18 source files can be used to form a single SABR program. If no file names are supplied it is assumed that the input is to come from the ASR- 33. SABR recognizes the following parameters in the P=... construct: 28

29 B, NB binary, no binary L, NL listing, no listing S, NS symbol table, no symbol table The default set is BNLNS. 2. The coreimage file *SABR is loaded by the RUN loader and started at location 11200 in the support code. The parameter field is scanned by the subroutine, PARTST. This subroutine sets various switches depending on the specified parameters. Illegal characters are ignored and a blank terminates the scan. Next, the input file list is checked to see if the source program is contained in CPS files or if it is to come from the ASR- 33. If it is to come from the reader (the contents of 17600 is -3) then RDRSW is set to 0. If the input is to come from CPS files, BLKPT is set to point to the first set of file parameters in the communication area (CA). This has the effect of initializing the SETIPT routine (which is used to initialize the input buffering routines and handle concatenated files). SETIPT is then called so that when SABR is started the buffer routines will be initialized. Finally, the file update switches in the CA are set (no file specifications are made at this time) and SABR is then started at location 00200. 3. Each time SABR requests an input character it does a JMS to the GET subroutine~ GET fetches its characters through INSCAN.

30 INSCAN checks the input text stream for listing control commands which are flagged by the occurrence of a (CTRL-H). INSCAN deletes these commands from the text fed to SABR. When a (CTRL-H) is encountered, the trailing characters are checked for command interpretation. The listing control commands are described below. INSCAN gets its characters from INPUT. INPUT checks RDRSW to see if the input is coming from the ASR- 33 or from CPS files. If the ASR- 33 is being used INPUT reads in the next character and forces the parity channel to a 1. If the input is coming from CPS files INPUT makes a call to DCODE. DCODE is used to convert the *ED 6 bit packed data format into ASCII. It also supplies a line feed after each carriage return. When DCODE encounters a (CTRL- C) (*ED end of buffer symbol) it makes a call to SETIPT to set up the next input file (if there is one) The subroutine BITS is used to obtain 6 bit characters from the input buffer. BITS returns successive half words to DCODE,a half word per call. The full word packed code is obtained from GETWOR. GETWOR first checks to see if the next word is in the input buffer. It does this by checking to see if GLOC is less than 1600. (The input buffer is two pages long and lies between 11200 and 11577. ) I GLOC is in the desired range the next packed word is extracted from the buffer by doing an indirect on GLOC. GLOC is then incremented

31 by one and a return is made to the caller. If GLOC is equal to 1600, RBUF is used to read a new segment into the buffer and to reset GLOC to 1200. The next word is then obtained by making an indirect on GLOC and GLOC is then incremented by one. RBUF uses a one page LINC tape routine for the actual tape operations. 4. Each time SABR outputs a binary frame it makes a JMS to PUT. The PUT routine packs the output frames, 3 frames per two computer words. Each time a new location is required in the output buffer (2 pages long, located in 17200 through 17577) PUT makes a call to TSTPLC. TSTPLC advances PLOC by one and then checks to see if the new value is in the buffer. If it is, a normal return is made. If PLOC points outside the buffer then the current buffer contents are written into oB and PLOC is set to 7200 (WBUF does this). 5. When SABR completes its first pass it makes a JMS to MIDP. This routine first writes out the contents of the current buffer thus terminating the binary file being constructed in -B. MIDP checks to see whether I or 2 blocks are required out of the 2 page output buffer. SETIPT is reinitialized in case a listing has been requested and the output routine in SABR is set to feed PSCAN instead of PUT. Control is then returned to SABR.

32 6. SABR now proceeds to output the symbol table. This output goes to PSCAN which checks to see if the user has requested that it be typed. A line buffer is used starting at location 17200 in the old output buffer area. Upon forming an output line, PSCAN types this line if requested by the user. Otherwise the line is checked for the occurrence of an undefined symbol. If the symbol on the current line is defined, the line is ignored. If the symbol is undefined, the line is typed out. Thus the user is always notified of undefined symbols. 7. When SABR finishes outputting the symbol table it has been patched to output a 377 code. This output flags PSCAN that the symbol table has been output and that if SABR is returned to, the output listing will follow. The listing control switch is now checked. If the user did not request a listing, control is passed to FINISH. This routine sets up the file pointers for -B and returns to the file system. If a listing has been requested then a return is made to SABR. 8. Listing control is obtained by scanning the input line and setting switches which are checked by the output routines. Facilities have been included for turning the printing on and off and for forcing a page eject. The output from pass 2 is typed using a standard 8-1/2 by 11 inch format with 57 lines typed per page. Listing control is invoked through the occurrence of a (CTRL-H) in the input text.

33 listing command:: = CTRL- H < command character> command character = N < command character> I E I P I <other character> other character::= any ASCII character not N or E or P Other characters have no effect and are ignored. The above approach can cause problems if a (CTRL-H) is followed by a carriage return. The command characters have the following effect: N negate the following command character string. P turn the print on. E start a new page..o page eject. Memory Organization The upper 4-K of memory is used as indicated below. The lower 4-K only contains patches. The top of the SABR symbol table has been moved down to allow the inclusion of the support routines. Locations Contents 11000-11177 SETIPT, RBUF, GETWOR, CHTYP 11200-11377 SABR, SETRDR, also the first half of the input buffer 11400-15577 the rest of the input buffer 16000-16177 PSCAN, TSTLST, SCNRET, PRTLIN, BFIX, DPOST, ENDSYM, PLN, CRLF 16200-16377 EJECT, INSCAN

34 Locations Contents 16400-16577 DCODE, BITS, INPUT, FINISH 16600-16777 GET, PUT, TSTPLC, WBUF, MIDP, GCDF 17000-17177 RTAPE, WTAPE 17200-17 577 output buffer Subroutine Descriptions SETIPT Used to set up the input buffer routines whenever a new file is to be accessed. It also checks to see if a file is available. BLKPT must be initialized to 7600 in order to initialize SETIPT. This routine sets GLOC to 1777 and HALF to 0 so that the next data request forces the input buffer to be filled. RBUF This-routine calls RTAPE to read 2 blocks of text into the input buffer. It then resets GLOC to 1200 (the bottom of the input buffer). GETWOR Extracts a word from the input buffer. First it checks GLOC to see if the next data location is in the input buffer. If it is, GETWOR does an indirect access using GLOC, increments GLOC by 1 and returns. If the next location is not in the input buffer, RBUF is called which reloads the buffer and resets GLOC. The next word is extracted from the buffer, GLOC is incremented by 1 and GETWOR returns to the caller. CHITYP Used to type ASCII characters on the ASR- 33. Returns with a clear AC and link. SABR The file system starts *SABR here. The parameter string is scanned using PARTST, the file update switches are set, RDRSW is set depending on whether or not the input is to be on the ASR- 33, and control is passed to the SABR assembler at location 00200. SETRDR If the ASR-33 is to be used for input, SETRDR sets the reader switch RDRSW equal to 0.

35 PSCAN Used to monitor the output of SABR during the symbol table and listing operations. PSCAN places the SABR output into a line buffer using DPOST. A line is terminated by a carriage return with line feeds being ignored. Once a line has been formed MODE is checked to see if SABR is listing a program or dumping the symbol table. If MODE=O the symbol table is being dumped. If SYMSW if 0 the user has requested that it be typed. If SYMSW is 1 the line is checked to see if the symbol it describes is undefined. If it is defined the line is ignored. If the symbol is undefined then the current line is typed as an error message to the user. TSTLST Tests to see if the listing switch is on. If not, the buffer is reset and no line is typed. If the switch is on, control is transferred to PRTLIN. LSTSW is set and cleared by the listing commands, P and NPo SCNRET Used to make the return from PSCAN. PRTLIN Causes the current line to be typed and keeps count of the number of lines on the current page. Generates page ejects at the end of each page. BFIX Resets the line buffer used in typing the symbol table and the listing. Also clears the location where a U for an undefined symbol would be found. DPOST Places the output characters from SABR into the line buffer. Checks for the occurrence of a 377 code which flags the end of the symbol table output. The 377 code causes control to be passed to ENDSYM. ENDSYM Terminates the symbol table listing (if it is being typed) and checks to see if a listing has been requested by the user. If LSTSW=1 control is passed to FINISH. If LSTSW=0 then the listing switch LSTSWT is set to allow typing, the mode is set to listing and control is passed to PRTLIN forcing a new output page. Control is then returned to SABR for the second pass. PLN Prints the contents of the line buffer.

36 CRLF Types a carriage return followed by the number of line feeds specified by minus the contents of the AC when CRLF was entered. EJECT This is the page eject routine. It is also responsible for typing the page headings and page numbers. INSCAN Scans the code being fed to SABR in order to intercept listing commands and delete them from the text. When a listing command is encountered, INSCAN also sets the appropriate switches. DCODE Obtains six bit characters using the BITS routine and maps these back into ASCII assuming that the packed input uses the *ED format. A line feed is supplied after every carriage return. If a (CTRL- C) is encountered a call is made to SETIPT to set up the next input file and DCODE is restarted. BITS'Furnishes DCODE with 6 bit words for use in reconstructing the source ASCII. Uses GETWOR to obtain its packed words and uses HALF as a switch to determine which side of a word should be used next. INPUT Checks RDRSW to see if the input text is to come from the ASR-33 of from CPS files. If it comes from the ASR- 33 then a character is read and its parity channel is forced to a 1. If the input is to come from CPS files then a call is made to DCODE. FINISH Updates the -B pointers, forces the terminal page eject, and returns to the CPS file system. GET SABR comes here for an input character. GET goes to INSCAN to get the desired character. PUT SABR comes here to get rid of its binary paper tape frames. This routine packs these frames 3 per 2 words. PUT uses TSTPLC to insure that the buffer location currently in use is valid. TSTPLC Advances the output buffer pointer PLOC and checks to see if the indicated location is in core. If it is, a return is made. If it is not in core then a call is made to WBUF to write the current buffer onto tape and to reset PLOC.

37 wj3UF Writes the contents of the output buffer onto tape and resets the output buffer pointer PLOC. Uses the one page tape routine for the actual tape operation. MIDP SABR comes here after completing the desired assembly and before outputting the symbol table. The output buffer is written into -B and SETIPT is reset and called in case a listing pass is required (this does not involve a tape operation). The SABR output routine is set to PSCAN and SABR is restarted. GCDF This routine sets the data field to 1 and does a RDF with a CDF in the AC. Return is made with a data field resetting CDF in the AC. RTAPE A one page tape routine for reading and writing 128 word WTAPE blocks on LINC tape. See the enclosed listing for details. Assembly Instructions The following procedure is used in constructing the coreimage file *SABR. RUN *ASM S1+S2+S3+S4+S5+S6 2=$ SAVE -B SABRSUP RUN *ASM FlTAPE SAVE -B BF1TAPE LOAD A GET SABRV13 GET SABRSUP GET BFlTAPE @17000 BUILD (the starting address is 11200)

38 When control returns to the file system, -B will contain the desired coreimage. Files Si through S6 contain the symbolic version of the patches and support code required to interface SABR with CPS. F1TAPE is a one page tape routine for reading and writing LINC tapes using a 128 word format. It is the only tape routine used by *SABR. SABRV13 is a binary file which contains the binary paper tape of DEC's SABR assembler. This file is generated using the program PAPERBIN. SABR Comments The listing support code is somewhat more complicated than it has to be. The input buffer is two pages long and is always filled by reading two blocks off of tape. This can cause problems if the page following an input file does not have the correct checksum (note that LINC tapes have 8 extra blocks at the end of a tape so that end of tape encounters are not a problem). The file pointers for -B are not updated until after all of the user requested options have been supplied. In particular, if an impatient user manually terminates a listing and returns to the file system the -B parameters will not be those associated with its contents. A more reasonable approach would be to set the -B parameters when control returns to the support code before the symbol table is dumped.

39 SABR Highlights Input is assumed to use the *ED format. The input can contain listing control commands. The output is placed in -B. Undefined symbols are listed even if the user has not requested a symbol table listing. The input buffer is 2 pages long. The output buffer is 2 pages long. The output consists of binary paper tape frames 3 packed per 2 computer words. Assembly proceeds from source files into -B. The standard conventions for the CPS communication area are observed. If no input files are specified the input is assumed to come from the ASR- 33.

MACRO8 ASSEMBLER (AN229) PAGE 01 40 FIELD 0 /PATCHES FOR SABR ASSEMBLER V(03) COREl =6000 RTAP E=7000 WTAPE=7006 *6 0006 5777 COREl-1 *560 0560 5367 JMP 567 /JMP ENDEND-GETTING RID OF THE HALT *566 0566 5773 5773 /JMP I REE 0567 4455 4455 /JMS I WLNP 0570 6213 CDF CIF 10 0571 5772 JMP I.+1 0572 6505 FINISH *2762 2 762 5763 JMP I +1 /FATAL ERROR ROUTIN 2 763 6422 FAFERNET *31 62 3162 6000 CORE1 / *31 65 3165 6212 CIF 10 3166 4767 JMS I o+1 3167 6610 PUT /THIS IS PUNCH OVER RIDE *41 71 4171 4772 JMS I 9+1 /END OF SYMBOL TABLE 4172 4661 SETLIST / *4332 4332 7000 NOP /CRLF 4333 7000 NOP /CRLF / *4355 4355 7000 NOP /Lo.T / *4357 4357 5777 COREI-1 * 4657 /S PP tESS SABR BUFFER 4657 4702 4702 /JMS I INL)EV 4660 5656 5656 /JMP I R 4661 0000 SETLIST, O /FEEDS A 377 TO PSCAN 4662 4424 4424 /JYS I CRiLF

PAGE 0-2 4663 6212 CIF 10 4664 1271 TAD RUBOUT 4665 4666 JMS I.+1 4666 6000 PSCAAN 4667 2261 ISZ SETLIST /MISS PATCH 4670 5661 JMP I SETLIST 4671 0377 RUBOUT 377 *4722 /LDR ROUTINE 4722 6212 CIF 10 4723 4724 JMS I o+1 4724 6715 MIDP 4725 5721 JMP I 4721 *6421 6421 5617 5617 /JMP I IIOiNIT 6422 0000 FATERRETs 0 /IN IOINIT AREA 6423 6203 CDF CIF 6424 1634 TAD I FATML 6425 7450 SNA /DONE? 6426 5232 JMP. +4 6427 4454 JMS I 54 /TYPE IT 6430 2234 ISZ FATML 6431:5224 JMP.-5 6432 5633 JMP I o +1 6433 7600 7600 6434 6435 FATML. +1 6435 0241 "! 6436 0306'"F 6437 0301 "A 6440 0324 "T 6441 0 301 "A 6442 031 4 "L 6443 0241 "! 6444;0000 0 /TERMINATOR *6627 /HSR PATCH 6627 6212 CIF 10 6630 4631 JMS I o+1 6631 6600 GET 6632 5626 JMP I 6626 *6656 /ASR INPUT FIX 6656 6031 KSF 6657 5256 JMP o-1 6660 6036 KRB 6661 0264 AND o+3 6662 1265 TAD o+3 6663 5655 JMP I,-6 6664 0177 177 6665 0200 200 *6527

PAGE 03 42 6527 0001 1 /LIST ON HSP PAGE

PAGE 04 43 /SABR STARTS HERE!! FIELD 1 / *1200 1200 7300 SAL3R, CLA CLL 1201 4777 JMS PARTST /SCAN PAR LIST 1202 1776 TAD 7600 /SEE IF RDR INPUT 1203 1375 TAD (3 1 204 7650 SNA CLA 1205 5232 JMP SETRDR /Y ES, TURN ON 1206 1376 TAD (7600 1207 3774 DOCA dLKPT /SET UP BLOCK POINTER 1210 4773 JMS SETIPT /SET UP READ 8LOCKS 1211 7300 GOSASiR CLA CLL 1212 1372 TAD (7773 1213 3010 DCA 10 1214 1371 TAD (-7402 1215 3410 DCA I 10 1216 7240 CLA CMA 1217 3410 DCA I 10 1 220 7201 CLA IAC 1221 3410 DCA I 10 1222 1370 TAD (.7402 1223 3410 DCA I 10 1224 6203 CDF CIF /GO START SABR NOW 1 225 6046 TLS 1 226 6036 KRi 1227 7300 CLA CLL 1 230 5631 JMP I o +1 1231 0200 200 1232 7300 SETRDR, CLA CLL 1233 3767 DCA RDRSW /TURN ON 1234 5211 JMP GOSABR 1 367 6504 PAGE 1 370 7402 1 371 0376 1372 7773 1373 1100 1 374 1167 1375 0003 1376 7600 1377 1400

PAGE 05 44 *1100.1100 0000 SETIPT, 0 /SET UP CONCATS ETC 1 101 7300 CLA CLL 1102 1767 TAD I LLKPT 1 103 7450 SNA /NOT 0 DONT TERM 1104 5355 JMP TOMANY 1105 7500 SMA /SEE IF -1,-2,-3 1106 5313 JMP +5 1107 1377 TAD (10 1110 7500 SMA /NO VALID I3LN CAN GOOF IT 1 1ll 5355 JMP TOiMANY 1112 1376 TAD (-10 /RESOTRE 1113 0375 AND (1777 1114 3331 DCA BLK 1115 1 S 1767 TAD I 3LKPT /GET UNIT 1 116 7006 RTL 1117 0374 AND (1 1120 3333 DCA LOCI-1 1121 2367 ISZ BLKPT 1 122 2367 ISZ 3LKPT /IGNORE LENGHT 1123 1 375 TAD ( 1777 /FORCE FIRST READ 1124 3354 DCA GLOC 1125 3773 OCA HALF 1126 5700 JMP'I SETIPT 1127 0000 R3UF, 0 1 130 4772 JMS RTAPE 1 131 0000 BLK, 0 1132 0002 2 /BLOCKS 1133 0000 0 /iNORMALLY 0 1134 1200 LOCI- 1200 1135 1331 TAD 3Lr< 1136 1332 TAD BLK+1 1137 3331 DCA BLK 1 140 1334 TAD LOCI 1141 3354 DCA G'LOC 1 142 5727 JMP I RBUF 1 143 0000 GETWOR. 0 /GET WORD FROM INPUT DUFF 1144 7300 CLA CLL 1 145 1371 TAD (-1 600 fAiRE WE IN:6UFFER? 1146 1354 TAD GLOC /L=l WE ARE NOT 1147 7630 SZL CLA 11 50 4327 JMS Rd UiF /GET MORE 1151 1754 TAD I GLOC 1 152 2354 ISZ GLOC 1153 5743 JMP I GETWOR / 1 154 1700 GLOC, 1 700 /TO FORiCE FIRIST READ 1 155 6203 TOMfANY, C)F CIF 1 156 5757 JMP I.+1 /USE SAB R'S ROUTINE i1157 2702 2702

PAGE 06 1 160 0000 CHTYPJ 0 /CHARACTER TYP~R, RETS WI AC-L-O 1 61 60 46 TLS 1 162 60 41 TSF 11 63 5362 JMP.-1 1164 7300 CLA CLL 1165 5760 JMP I CHTYP 1166 2702 2702 167 0000 3LKPTt 0 1171 6200 PAGE 1172 7000 11i 73 6532 1174 0001 1175 1777 1176 7770 1177 0010

PAGE 07 46 /PARAMETER TESTING ROUTINE FIELD 1 *1 400 1 400 0000 PARTSTv 0 1401 7300 CLA CLL 1402 3236 DCA NEGSW /0=YES i 403 1377 TAD (7707 1 404 3237 DCA PARFLD /IT OT LIST 1405 2237 PLP3, ISZ PARFLD 1406 1240 TAD PTAB /CHAR TAB 1407 3241 DCA PTA8L 1410 1242 TAD PDISP /DISPATCH TABLE 1411 3243 DCA PDISPL 1412 1244 TAD NENT /# ENTRIES 1413 7041 CIA 1414 3245 DCA PCNT 1415 1637 PLPA, TAD I PARFLD /GET TEST CHAR 1416 7450 SNA 1417 5.600 JAP I PARTST /0 TERMINATES 1420 7041 CIA 1421 1641 TAD I PTABL 1422 7650 SNA CLA 1423 5232 JMP MATCH 1424 2243 ISZ PDISPL 1425 2241 ISZ PTA3L 1426 3236 OC A NEGSW /SET TO YES 1427 2245 ISZ PCNT 1430 5215 JMP PLPA 1 431 5205 JM.P PLP8 / 1 432 1643 MATCH, TAD I PDISPL 1433 3246 DCA MTEM 1 434 4646 JMS I MTEM 1 435 5205 JMP PLPi3 1436 0000 NEGS,J 0 1 437 0000 PARFLD, 0 1440 1447 PTA3, PARTAS 1 44L 0000 PTABL, 0 1 442 1453 PDISP, DISPATCH 1443 0000 PDISPL~ 0 1444 0004 NENTv 4 /4 ENTRIES 1445 0000 PGNT, 0 1 446 0000 WMT Er, 0 1447 0316 PARTAB3S "N 1450 0323 "S 1 451 0314 "L 1452 0240 240 /dLANK / 1453 1457 OlSPATCHs NtEG 1 454 1465 SYNHTA3

PAGE 08 1 455 1472 LI TING 1 456 1477 3LANK / 1.457 0000 NEG, 0 1 460 1236 TAD NEGS W 1 461 7650 SNA CLA 1462 7001 IAC 1463 3236 DCA NEGSW 1464 5657 JMP I NEG 1 465 0000 SYMTAB, 0 1466 1236 TAD NEGSW i467 3776 DCA SYMS W 1470 3236 DCA NEGS4J /SET TO YES 1471 5665 JMP I SYMTA8 1 472 0000 LISTINGS 0 1 473 1236 TAD NIEGSW 1474 3775 DCA LSTSW /EXTERNAL LIST SWITCH 1475 3236 DCA NEGSWJ /TO YES 1476 5672 JMP I LISTING 1477 0000 BLANK) 0 1 500 7300 CLA CLL 1 501 5600 JMP I PARTST 1575 6152 PAGE 1576 6150 1577 7707

PAGE- 09 4 /SABR I- 0 SUPPORT FIELD 1 *6600 / 6600 0000 GET, 0 /GET A CHARACTER FOR SABR 6601 2200 ISZ GET /MISS PATCH 6602 4340 JMS GCDF 6603 320 5 DCA RETG 6604 4777 JMS INSCAN /GET CHAR AND USE FOR CONTROL 6605 7000 RETG, NOP 6606 6202 CIF 6607 5600 JMP I GET 6610 0000 PUT, 0 /PUT AND PACK SABR BINARY 6611 0376 AND (377 6612 3314 DCA IPT 6613 2210 ISZ PUT /MISS PATCH 6614 4340 JMS GCDF 6615 3260 DCA PRET /FOR RET 6616 1351 TAD PUTSW /WHICH THIRD?, INIT = 0 6617 7450 SNA /O=LEFT 6620 5251 JNiP PART1 6621 7700 SMA CLA /-I=RI'GHT 6622 5231 JMP PART2 /+1 =MID 6623 1314 TAD IPT /DO RIGHT SIDE 6624 1713 TAD I PLOC 6625 3713 DCA I PLOC /PACKED IN 6626 4263 JMS TSTPLC /GET NEXT WORD ADVANCE 6627 3351 DCA PUTSW /SET FOR LSIDE 6630 5260 JMP PRET 6631 1314 PART2, T4AD IPT /SPLITS TWO WORDS 6632 7112 RTR CLL 6633 7012 RTR 6634 0375 AND (17 6635 1713 TAD I PLOC 6636 3713 DCA I PLOC /PACKED HIGH 4 BITS 6637 4263 JMS TSTPLC /ADVANCE TO THE NEXT WORD 6640 1314 TAD IPT 6641 7112 RTR CLL 6642 7012.RTR 6643 7010 RAR 6644 0374 AND (7400 6645 3713 DCA I PLOC 6646 7240 CLA CMA 6647 3351 DCA PUTSW 6650 52 60 JMP PRET 6651 1314 PART1, TAD IPT 6652 7006 RTL 6653 7006 RTL 6654 0373 AND (7760 6655 3713 DCA I PLOC 6656 7201 CLA IAC

PAGE 10 4Y 6657 3351 DCA PUTSW 6660 7000 PRET, NOP 6661 6202 CIF 6662 5610 JMP I PUT / 6663 0000 T STPLC, 0 /ADVANCE PLOC AND SEE IF IN CORE 6664 2313 ISZ PLOC 6665 1 372 TAD (- 7600 6666 1313 TAD PLOC 6667 7700 SMA CLA /-IS IN CORE 6670 4272 JMS WS3UF 6671 5663 JMP I TSTPLC 6672 0000 1BUFv, 0 /WRITE BUFFER 6673 1301 TAD PBLK /TEST FOR END OF 8dFFER 6674 1302 TAD PBLK+1 6675 1371 TAD (-150 6676 7700 StMA CLA 6677 5346 JMP TOOFAR 6700 4770 J MS WTAPE 6701 0001 PBLXKP 1 6702 0032 2 6703 0001 PUNIT,v 1 6704 7200 P-LOCI, 7200 6705 1301 TA'D PbLK 6706 1302 TAD P8LK+1 6707 3301 OCA POLK 6710 1304 TAD PLOCI 6711 3313 DCA PLOC 6712 5672 JMP I WBUF 6713 7200 PLOC, 7200 /INIT VALUE TO START 6714 0000 IPT, 0 6715 0000 MIDP, 0 /MID PASS HANDLING FOR POSS LISTING 6716 2315 ISZ MIDP /MISS PATCH 6717 4340 JMS GCDF 6720 3335 OCA MRET 6721 1313 TAD PLOC /HALF? 6722 1367 TAD (-7400 6723 7710 SPA CLA 6724 7240 CL.A CMA /FOR LATER USE 6725 3350 DCA PART 6726 4272 JMiS WBUF 6727 1366 TAD (7600 6730 3765 DCA BLKPT 6731 4764 JMS SETIPT /RESET TAPE ACCESS ORDER 6732 1352 TAD PPATCH /SET PUNCH TO PSCAN 6733 6201 CDF /FOR POSSI8LE LISTING 6734 3763 DCA 3167 6735 7000 MRET, NOP /WILL BE A CDF X 6736 6202 CIF 6737 5715 JMP I MIDP 6740 000Q0 GCDF O

PAGE 11 50 6741 7300 CLA CLL 6742 1362 TAD (6201 6743 6214 RDF 6744 6211 CDF 10 674 5 5740 JMP I GCDF 6746 7402 TOOFAR, HLT /SHOULD NJEVER GET HERE, TOO MUCH BINARY 6747 5346 JMP o-1 /THIS IS PROTECTI ON / 6750 0000 PART, 0 6751 0000 PUTS, 0 6752 6000 PPATCHIU PSCAN 6762 6201 PAGE 6763 3167 6764 1100 6765 1 67 6766 7600 6767 0400 6770 7006 6771 7630 6772 0200 6773 7760 6774 7400 6775 0017 6776 0377 6777 6246

PAGE 12 51 /DECODIN` ROUTINE FOR SABR /FULL RANGE! FIELD 1 *6400 6400 0000 OCODE, 0 6401 7300 CLA CLL 6402 2334 ISZ LFSW /-1 NEED L FEED 6403 7410 SKP 6404 5234 JMP LF 6405 4250 JMS BI TS 6406 1377 TAD (-77 /SEE IF SPEC CODE 6407 7450 SNA 6410 5216 JMP T77 /YES BUT WHIICH 6411 1376 TAD (37 /-40 NOW 6412 7510 SPA 6413 1375 K300, TAD (100 6414 1374 K200, TAD (240 6415 5600 JMP I DCODE / 6416 4250 T77, JMS BITS /GET NEXT 6 BITS 6417 1373 TAD (-3 /TERMINATOR? 6420 7450 SNA 6421 5246 JMP 3GETMOR 6422 1372 TAD (-12 6423 7440 SZA /CR? 6424 5236 JMP REG /NORMiAL 6425 1332 TAD HALF 6426 7710 SPA CLA 6427 4250 JMS BITS /GET TRAILING 00 6430 7240 CLA GMA /-1 6431 3334 DCA LFSW IFOR LF TO FOLLOW 6432 1371 TAD (-23 /GET CR 6433 5214 JMP K200 6434 1370 LF, TAD (-26 /FOR LF 6435 5214 JMP K200 6436 1371 REG, TAD (-23 /NOW -40 6437 7510 SPA 6440 5214 JMP K200 6441 1367 TAD (-37 /A?? 6442 7450 SNA 6443 5211 JAP K300-2 /CLEVER? 6444 1376 TAD (37 6445 5213 JMP K300 6446 4766 GETMORP JMS SETIPT 6447 5201 JMP DCODE+1 / 6450 C0000 BITS, 0 /GET 6 3BITS 6451 2332 ISZ HALF /+=FETCH WOH) 6452 5256 JMP LiHF 6453 1333 TAD) WORD

PAGE 13 52 6454 0365 MASK, AND (77 6455 5650 JMP I BITS 6456 7240 LHF, CLA CMA /SET TO RHF NEXT 6457 3332 DCA HALF 6460 4764 JMS GET WOR 6461 3333 DCA WORD 6462 1333 TAD WORD 6463 7012 RTR 6464 7012 RTR 6465 7012 RTR 6466 5254 JMP MASK /STRIP IT 6467 0000 INPUTv 0 6470 7300 CLA CLL 6471 1304 fAD RDIRSW /O=RL)R 6472 7650 SNA CLA 6473 5276 JMP *+3 6474 4200 JMS DCODE 6475 5667 JMP I INPUT 6476 6031 KSF 6477 5276 JiPi o.-1 6 500 6036 KR83 6501 0363 AND (177 6502 1362 TAD (200 6503 5667 JMP I INPUT 6504 0001 RDRSW1 I /NORMALLY OFF /FINAL WRAP JP AND GO TO CPS 6505 7300 FINISH, CLA CLL 6506 1361 TAD (7767 6507 3010 DCA 10 6510 7201 CLA IAC 6511 3410 DCA I 10 6512 1760 TAD PBLK 6513 1357 TAD (-I 6514 1756 TAD PART 6515 3410 DCA I 10 6516 1355 TAD (1000 /iEL BIN CODE 6517 3410 DCA I 10 6520 1754 TAD PACNT /EJECT IF NON 0 6521 7650 SNA CLA 6522 5327 JMP 0+5 6554 61 57 TAD (7 6555 1000 6556 6750 6557 7777 6560 6701 6561 7767 6562 0200 6563 0177 6564 1 143 I

PAGE 1 4 6565 0077 6566 1100 6567 7741 6570 7752 6571 7755 6572 7766 6573 7775 6574 0243 6575 0100 6576 0037 6577 7701 6523 1353 1 /AT PAGE TOP? 6524 1752 TAD LNCNT 6525 7640 SEA CLA 6526 4751 JiS EJECT 6527 6203 CIF CDF 6530 5731 JMiP I.+1 /uO TO CPS 6531 7600 7600 6532 0000 HALFo 0 6533 0000 WORD, 0 6534 0000 LFS W 0 6551 6200 PAGE 6552 6244 6553 0071

PAGE 1 554 FI ELD 1 *6000 /OUTPUT MONITOR AND UNDEF SYM CHECK 6000 0000 PSCAN, 0 6001 2200 ISZ PSCAN /MISS PATCH 6002 3345 DCA IPTCH /IPT CHAR 6003 7004 RAL /SAVE LINK 6004 3346 DCA IPTLK 6005 4777 JMS GCDF /GET RET FLD 6006 3240 DCA PSCDF /SAVE 6007 1345 TAD IPTCH 6010 1376 TAD (-212 /LF? 6011 7450 SNA 6012 5237 JMP SCNRET /YESs IGNORE 6013 1375 TAD (-3 /CR? 6014 7640 SZA CLA 6015 5270 JMP DPOST /SAVE IT 6016 1347 TAD MODE /1=LI ST, O=SYM TAB 6017 7640 SZA CLA 6020 5233 JMP TSTLST /TEST IF LIST IS ON 6021 1350 TAD SYMS!W /0=PRINT 6022 7650 SNA CLA 6023 5245 JMP PNTLIN 6024 1374 TAD (-325 /UNDEF? 6025 1773 TAD 7214 6026 7640 SZA CLA 6027 5262 JMP BFIX /NOTHING TO GO 6030 1351 TAD BUFPT /YEP, PRINT UNDEF SYM 6031 4315 JMS PLN 6032 5262 JMP BFIX /GET OUT 6033 1353 TSTLSTs TAD LSTSWT /LIST ON? 6034 7650 SNA CLA 6035 5245 JMP PRTLIN /YES 6036 5262 JMP 8FIX /NO 6037 7300 SCNRETs CLA CLL 6040 7000 PSCDF, NOR /CDF GOES HERE 6041 1346 TAD IPTLK /RESTORE LINK 60 42 7010 R1A 6043 6202 CIF 6044 5600 JiMP I PSCAN / 6045 1357 PRTLIN, TAD PACNT /IF 0 STARTING 6046 7650 SNA CLA 6047 4772 JMS EJECT /HEAD PAGE 6050 1371 TAD (7200 6051 33 54 DCA TLOC 6052 1351 TAD 8UFPT 6053 4315 JMS PLN /PRINT LINE 6054 2770 ISZ LNCINT /COUNT IT 6055 7610 SKP CLA

PAGE 16 60 56 47 72 JMS EJECT /PAGE DONE 6057 1767 TAD E WT /iEXTE.iRNAL PAGE EJECT? 6060 7640 SZA CLA 6061 4772 JiS E JECT 6062 1371 3FIX, TAD (7200 6063 3351 DCA BUFPT /RESET BtFFiER 6064 1371 TAD (7200 6065 3354 lCA TLOC 6066 3773 DCA 7214 /CLEAR U 6067 5237 JMP SCNRET /GO BACK 6070 1366 iPOST, TAD (-377 /TEST FOR RU30UT 6071 1345 TAD IPTCH 6072 7650 SNA CLA 6073 5302 JMP ENDSYM /END OF SYM TAB 6074 1345 TAD IPTCH 6075 3751 DCA I SUFPT /SAVE 6076 2351 ISZ BUFPT 6077 5237 JMP SCNFRET /ALL DONE 6100 7402 HLT 6101 5300 JMP. - /SHOULDN'T BE ABLE TO GET HERE 6102 7240 ENOSYM, CLA CMA /SET LISTING 6103 3360 OCA HDRSW 6104 1352 TAD LS TSW. 6 10 5 7640 SZA CLA 6106 5765 JMP FINISH 6107 3353 DCA LSTSiT /ALLOW LOCAL CONTROL 6110 7201 CLA lAG 6111 3347 DCA MODE 6112 7201 CLA IAC 6113 3767 DCA ESWT 6114 5245 JMYI) PRTLIN /FORCE NEW PAGE 6115 0000 PLN, 0 /PRINTS LINE 6116 7041 CIA /AC =END OF LINE 6117 1354 TAO TLOC /AC=NUM CHAR 6120 3355 DCA CHCNT 6121 72 40 CL CLA CMA /1 CRLF 6122 4334 JMS CRLF 6123 1355 TAD CHCNT 6124 7700 SAA CLA 6125 5715 JMP I PLN /NO CHARS 6126 1754 TAD I TLOC 6127 4764 JMS CHTYP 6130 2354 ISZ TLOC 6131 2355 ISZ CHCNT 6132 5326 JMP 0-4 6133 5715 JMP I PLN 6134 0000 CRLF, O 6135 3356 DCA CRLFCN 61 36 1363 TAD (215 6137 4764 JMS CHTYP

PAGE 17 56 6140 1362 TAD (212 6141 4764 JMS CHTYP 6142 2356 ISZ CRLFCN 6143 5340 JMP.-3 6144 5734 JMP I CRLF 6145 0000 IPTCH, 0 6146 0000 IPTLK, 0 6147 0000 MODEi 0 6150 0001 SYMSWJ, 1 6151 7200 BUFPT, 7200 6152 0001 LSTSW, 1 6153 0000 LSTSWT, 0 6154 7200 TLOC, 7200 6155 0000 CHCNTo 0 6156 0000 CRLFCIN, 0 6157 0000 PACNT, 0 6160 7777 HDRSW, -1 6162 0212 PAGE 6163 0215 6i64 1160 6165 6505 6166 740 1 6167 6245 6170 6244 6171 7200 6172 6200 6173 7214 6174 7453 6175 7775 6176 7566 6177 6740

PA-GE 18 57 *6200 /MO~RE I-0 STUFF 6200 0000 EJECT, 0 /PAGE EJECT 6201 1 244 TAD LNCNT /AC=0 6202 1377 TAD (-4 6203 4776 JMS CRLF 6204 1375 TAD (255 6205 4774 JMS CHTYP /6206 1373 TAD (-2 6207 4776 JMS CRLF 6210 3243 DCA ECNT /FOR PAGE NUd 6211 2772 ISZ PACNT /ADV PAGE NUMBER 6212 1772 TAD PACNT /GET PAGE NUM 6213 1371 TENL~ TAD (-12 6214 7510 SPA 6215 5220 JMP o+3 6216 2243 ISZ ECNT 6217 5213 JMP TENL 6220 1370 TAD (12 6221 1367 TAD (260 6222 3320 DCA NU2 /LOWER DIGIT 6223 1243 TAD ECNT 6224 1367 TAD (260 6225 3317 DCA NUI /TENS DIGIT 6226 1366 TAD (-71 6227 3244 DCA LNCNT 6230 3245 DCA' ESWT /EXTERNAL EJECT OFF 6231 1310 TAD PMES /PAGE 6232 3765 DCA TLOC 6233 1311 TAD PMES+1 6234 2764 ISZ HDRSW 6235 7410 SKP 6236 1346 TAD ADDTNL /SEND-S3EG+1 6237 4763 JMS PLN /PRINT 6240 1373 TAD (-2 6241 4776 JMS CRLF 6242 5600 JMP I EJECT 6243 0000 ECN, Tv 0 6244 7775 LJ C NT, -3 /FOR FIRST CALL 6245 0000 ESWT, 0 /INPUT SCAN.N ER 6246 0000 INSCAN, 0 /SEE IF CTRL-H 6247 4762 JMS IN PUF 6250 1361 TAD (-210 6251 7450 S'NA 6252 5255 JNMP C T RL H 6253 1360 TAD (210 /RESTORE 6254 5646 JMP I INSCAN 6255 4762 CTRLH, JMS INPUT /WHAT CONTROL? 6256 1357 TAD (-305 /E? 6257 7450 SNA 6260 5272 JMP1 EFX /SET UP EJECT

PAGE 19 58 6261 1356 TAD (-13 /P? 6262 7450 SNA 6263 5277 JMP PFX 6264 1355 TAD (2 /N? 6265 7650 SNA CLA 6266 5302 JM1P NFX /NEGATE 6267 3307 ALRET. DOCA NEGSW 2 /SET YES 6270 4762 JMS INPUT /GET VALID CHAR 6271 5646 JMP I INSCAN / 6272 1307 EFXv TAD NEGSeW2 /BACKWJARDS 6273 7650 SNA CLA 6274 7001 IAC 6275 3245 OCA ESWT 62 76 5267 JMP ALRET 6277 1307 PFX, TAD NEGSW-i2 6300 3754 OCA LSTSWT 6301 5275 JMP EFX+3 /TURN EJECT OFF / 6302 1307 NFX, TAD NEGSW2 6303 76503 SNA CLA 6304 7001 IAG 6305 3307 DCA NEGSW2 6354 61 53 JMP CTRLjH /GET AN4OTHER CHAR 6355 0002 6356 7765 6357 7473 6360 0210 6361 7570 6362 6467 6363 6115 6364 6160 6365 6154 6366 7707 6367 0260 6370 0012 6371 7766 6372 61 57 6373 7776 6374 1160 6375 0255 6376 6134 6377 7774 6306 5255 / 6307 0000 NEGSW2. 0 / 6310 6312 PMES, P1 6311 6321 NU2+1 /FOR HEADINGS 6312 0320 P1I "P 6313 0301 "'A 6314 0307 "G

PAGE 20 59 6315 030 "E 6316 0240 " 6317 0260 NU1, "0 6320 0260 NU2 "0 6321 0240 SaEG, " 6322 0323'"S 6323 0301 "A 6324 0302 "B 6325 0322 "R 6326 0240 " 6327 0301 "A 6330 0323 "S 6331 0323 tS 6332 0305 "E 6333 0315 "'tM 6334 0302 "8 6335 0314'L 6336 0305 "E 6337 0322 "R 6340 0240 " 6341 0326 tVV 6342 0250 "( 6343 0261 "1 6344 0263 "3 6345 0251 SEN, ) 6346 0025 ADOTNL"i SEND-SBEG+1 /ADD L FOR SABR HEADING / PAGE

CHAPTER 3 CPS RE LOCATABLE LOADER The relocatable loader used in CPS is version 06 of DEC's relocatable loader. A total of 31 locations have been patched and extensive support code has been added in order to permit keyboard control of the loading process. The user operation of the relocatable loader is very similar to that of the absolute loader. The relocatable loader does not operate under interrupts. The relocatable loader uses the (.) as its prefix character on input command lines. Line editing facilities are also provided. The editing control characters are: (RUBOUT) delete the last typed character... echos a (BACKARROW) delete the entire line (LNE FEED) echo the current command line (CTRL-P) accept the next character as is... literal next (-) (CR) continue this command on the next line (CR) end of command line Up to 255 characters can be used to form a command line. The loading procedure consists of taking CPS SABR produced binary files and loading their contents into a core image maintained in 60

61 the -S working area. The loader has been restricted to a maximum of 8-K of memory. The area used on unit 0 for the coreimage consists of tape blocks 200 through 277. Location 0 of block 200 corresponds to location 0 in memory and location 127 of block 277 corresponds to location 17777 of memory. The field 1 run time is located in block 241. The field 0 run time is kept in core during the loading procedure so that the required linkage lists can be constructed with a minimum of fuss. The field 0 run time is written into the coreimage when the BUILD command is given by the user. The finalized coreimage module is left in -B and the proper pointers in the CPS communications area (CA) are set to indicate the current state of -B to the file system. Loading Procedure The relocatable loader is invoked by giving the CPS file system the command LOAD R This should be changed to RUN *RLOAD in order to maintain a uniform command structure in CPS. The relocatable loader is already in coreimage form so that this change should be a minor one. The RUN loader loads the entire relocatable loader file into the lower 4-K of memory. This is done in order to preserve the CPS

62 indexes contained in memory field 1. The program is then started at location 05600. The first order of business consists of searching the unit I CPS index for all relocatable binary file entries and moving these into the area in memory field 1 which is to serve as the relocatable loader index. Only the names and file locations for files on tape unit I are retained. Each entry in the new index consists of 5 locations, the first 4 locations consist of the file name and the fifth, the file location. After the new index has been constructed the loader code is moved up into field 1, the field 0 run time is placed where it belongs, control is transferred to field I and the field I run time is written onto tape. At this point control is transferred to the restart point CRES. CRES enters the DEC relocatable loader (DRL) for initialization at location 6200. DRL returns to CRES at RLSTRTR.. Portions of low core are zeroed and the coreimage area on tape is sprayed with zeros as a "core constant". Next the page reference list is zeroed and the run time pages referenced. Finally, the file input routines are initialized in order to force an initial tape read and control is passed to the internal re-entry point, ENTER. Loader Command Input ENTER sets the prefix character to (.) and goes to PLIB (Place Line In Buffer). The PLIB routine uses a 2 page line buffer to

63 accumulate the input command line. The buffer holds straight ASCII with the parity channel forced to 1. All line editing operations are carried out in PLIB. When a terminal carriage return is supplied by the user, PLIB returns to the caller. The output routine is initialized and the Get Word From Line Buffer routine (GWFLB) is called in order to transfer the first input word into the word area W1 through W4. The word is constructed using simple 6 bit stripped ASCII with two characters stored per computer word. Trailing blanks are provided if needed. The contents of WI - W4 are reduced to 3 characters and SLRV is used to do a table search for the specified command (SLRV is also used in performing index searches). If the command is valid, control is passed to the appropriate module. If an invalid command has been entered, an error message is typed out and control is again passed to ENTER. Loader Operation Because of the complexity of the loader, its operation will now be described on a command by command basis. GET The GET command is used to cause user specified files to be loaded. Up to 6 files can be loaded with a single GET command. Control is transferred to CGET. CGET first transfers the

64 file names following the GET command into a get list, CGETL. No names or more than six names cause an error message to be typed and control returned to ENTER. The get list is terminated by a 0 and is then used in searching the index for the named files and for constructing a block number list which will be used in the actual loading operation. SLRV is used in searching the index. When the block number list has been constructed control is passed to LOADP. LOADP is the routine used to initialize the input routines and cause the user supplied list of programs to be loaded by DRL. SETIPT is used to set up the input routines. Control is finally passed to DRL at location 7251. After the loading of a program control returns to LOADP. If another program is to be loaded LOADP recycles. If not, control is returned to ENTER. The DRL obtains binary paper tape frames by making calls on GETIPT. This routine unpacks the frames stored in SABR binary files and returns them to DRL. Before trying to extract a frame from the input buffer (locations 01000 through 02777) GETIPT checks to see if the next input word is in core by making a call to GNXLOC. GNXLOC checks to see if the next data word is in core. If it is, a normal return is made with GETLO pointing at the desired location. If the next word is not in core then a call is made to RTAPE in order to fill the buffer and GETLO is reset to point at the buffer bottom. Note that the actual size of a SABR file is not retained, thus the buffer

65 is always filled using 8 blocks off of tape. This can cause problems if the blocks following a SABR file do not contain the correct checksum. It is strongly recommended that the relocatable loader support code be rewritten so that this problem is eliminated. When the DRL is ready to deposit-a program word into core it instead makes a call to RLOAD. RLOAD sets up the desired address using DRL pointers and makes a call on GETLOC. GETLOC checks to see if the desired address is in the coreimage segment currently in core (the coreimage buffer occupies locations 03000 through 07000). If it isn't, GETLOC writes out the current buffer and loads in a portion of the coreimage which contains the desired location. When the current location is in core, GETLOC determines the buffer address of this location and sets a page pointer. Control is then returned to RLOAD. Next PLACE is called. This routine stores the contents furnished by DRL into the coreimage buffer and returns to RLOAD. The memory page just stored into (in the coreimage, that is) is then referenced through a call to REFER. Finally, RLOAD returns to DRL. If during the loading process DRL encounters an error, control is transferred to RLERROR. This routine first checks to see if the current memory field has been filled. If it has and the current field is field 0, the memory bank used by DRL is set to I and LOADP is re-entered at LOAD2 in order to make a second try at loading the

66 current file. If field 1 has also been filled, the appropriate error message is typed and control transferred to ENTER. All other errors cause an error message to be typed and control to be transferred to ENTER. After successfully loading a program DRL returns control to LOADP. Any additional files are then loaded. Control eventually returns to ENTER when the input file list has been exhausted. BUILD This command is used to take the current contents of the coreimage on tape unit 0 and form a coreimage module in -B on unit 1. The command dispatch routine transfers control to the BUILD module at CBUI. The first order of business is to check whether or not the user has supplied a starting address to be used with the coreimage module being constructed. If he has, it is used. If he hasn't then the entry point of the first loaded SABR file is used. This address is extracted from the field 0 run time which is located in the lower memory bank. The subroutine WPRESC is then called in order to write the contents of the current coreimage buffer onto tape. The memory field 0 run time is then written into the coreimage. Next the entire field I portion of the coreimage is read into the lower memory bank and DISCBL is called to pack this into the RUN loader format and write the result into the -B working area. The same procedure is

67 followed for the field 0 portion of the coreimage. Once both fields have been packed and transferred into -B a coreimage descriptor block is appended and a return is made to the file system with the -B update switches set properly. It is felt that the BUILD command can be re- coded in a much more efficient manner. DUMP This command is used to allow the user to examine locations within the coreimage file under construction. The command dispatcher enters this module at CDUM. If the user has only speCified one location to be dumped then the following sequence of operations occurs: Control goes to CDUMI, a carriage return line feed is typed, an = is typed, calls are made in order to GETLOC, EXTRAC, and OCTOUT, control is finally returned to ENTER. If two locations are specified by the user then the contents of the locations inclusively contained between them are dumped on the teletype, 8 values per line. The arithmetic is somewhat funny in this section of code with only the lower four octal digits being used in the calculations. The resulting output uses the same format as the Absolute Loader. Provision has been provided for the user to terminate the dumping by merely typing a (CTRL-C). Control returns to ENTER when the dump terminates.

68 RE PLACE This command is provided in order to allow the user to replace selected locations in the current coreimage with values entered from the keyboard. The command dispatcher enters the replace module at CREP. The first octal number following the REP command is used as the starting address for the requested replacements. The remaining octal numbers are used as contents until the list is exhausted or until an invalid value is encountered (5 octal digits or more). Replacement proceeds by successive calls on GETLOC, PLACE, and REFER. Control is returned to ENTER. EXIT This command allows the user to return to the CPS file system without modifying the contents of -B. The command dispatcher goes to CEXI. This routine simply does a JMP to location 07600 which is the start of the CPS system boot routine MAP This command is used to list the names of the unloaded program entry points. If the letter A follows this command (or any word starting with an A such as ALL) then all defined program entry points are listed.

69 This command module is entered at CMAP. GWFLB is used to check for the presence of an A. UNLSW is set to -1 if only the unloaded file names are to be typed. A call is made to INITIB in order to initialize the output line buffer which will be used to hold the DRL output until a full output line has been accumulated. DRL is then started with a 2000 in the AC, faking the original OSR instruction used by DRL. DRL outputs its lines to RLTYP. This routine stores up a line and then checks to see if it should be typed depending upon whether the entry point has been defined and upon the setting of UNLSW. The command line buffer is used as the MAP buffer. When all of the entry points have been output by DRL control returns to the CMAP portion of the code. At this time UNLSW is checked. If only the unloaded entry points have been listed then a call to the SPACE command is faked in order to cause typing of the remaining number of unused pages of memory. Control eventually ends up at ENTER. SPACE This command is used to type out the number of pages of memory remaining available for loading programs into. This module is entered at CSPA. The output buffer is initialized, UNLSW is set to 0, 4000 is placed in the AC and DRL is restarted. DRL passes its output to RLTYP which types the two line which DRL outputs. Control is finally passed to ENTER.

70 LIBRARY This command is used to cause the commonly used FORTRAN support routines to be loaded without fuss, muss, bother or pain. The modules loaded are: IOH, FLOAT, INTEGER, UTILITY, ERROR and SUBSC. (These modules have their names preceded with a (.) in order to set them off from other file names. It is suggested that these names be preceded with an (*) instead. This means that they won't be listed every time someone wants a CPS index listing of non- system file names. The required modification is minor.) The library module is entered at CLIB. The input program count PRGCNT is set equal to 6 and the GET command code is entered in such a way to cause a special list of file names to be used. RE START Control is transferred to CRES. The resulting operation is described in the section titled, Loading Procedure. COMMENT This is a "do nothing" command. Control is passed directly back to ENTER via CCOM. UNRE FE RENCE This command is used to remove pages from the coreimage under construction. Pages are removed simply by clearing the

71 appropriate location in the page reference table. The unreferenced page is not sprayed with a core constant (0 for the relocatable loader). The command dispatcher transfers control to CUNR. DPOI is used to obtain a location on the page to be unreferenced. The appropriate location in the page reference table is calculated and zeroed. Control is then passed back to ENTER. INDEX This command causes a list of all loadable relocatable binary file names to be typed out. This command starts at CIND. MVTW is used to transfer the names to be typed into WI - W4 and MESAGE is used to type them. Control is returned to ENTER. Memory Organization The memory storage allocation after the relocatable loader has been loaded and started is as follows: Locations Contents 00000- 00777 field 0 run time 01000- 02777 input buffer 03000-06777 coreimage buffer 07000- 07577 not used 07600-07777 CPS boot loader

72 Locations (Cont.) Contents (Cont.) 10000-10177 constants and pointers 10200-11377 index 11400-11777 input line buffer 12000-12177 magnetic tape routine 12200-12377 PLIB, DPOSIT, TYPECH, CRLF, CCOM 12400-12577 GCNFB, OBI, EXCHR, GWFLB, SPRSPA, TERMTST 12600-12777 ENTER, SLRV, CGET, INDSRH 13000-13177 MESAGE, DPOI, OCTOUT 1 3200-13377 CDUM, CRE P 13400-13 577 LOADP, RLERROR, RLTYP, INITIB, SPACER, RDRIN 13600-13777 GETLOC, PLACE, EXTRAC, RLOAD, WPRESC, GTOUT2 14000-14177 GETIPT, GNXLOC, CIND 14200-14377 SETIPT, CMAP, CSPA, CLIB, NOTHER, MVTW, CEXI 14400-14577 REFER, CUNR, reference table 14600-14777 command dispatch table, library list 15000-15177 messages 15200-15377 CRES, CBUI 15400-15577 DISCBL 15600-15777 system entry point... gets clobbered, PACKIN

73 In the actual coreimage file the field 0 run time is found in locations 00200 through 00777. The field I run time is stored in locations 01000 through 01177. Subroutine Descriptions RTAPE This is a version of the one page tape routine used in WTAPE ( *FORTRAN and in *SABR. However it has been modified to work into and out of memory field 0 and to start the tapes moving in the direction determined by the last accessed tape block. This tape routine is kludged up and should be replaced by one which also provides the capability of leaving the tapes in motion after a tape operation. The tape settle time out delay segment would then have to check to see if the tapes are moving in order to see if the delay should be provided. PLIB Used to enter and edit user typed command lines. Upon entry the input character store routine DPOSIT is initialized, a carriage return-line feed provided and the prefix character typed. This routine also recognizes the editing control characters and implements them. DPOSIT This routine places input characters into the two page command line buffer. If the buffer capacity is exceeded an error message is typed and the current contents of the line buffer are lost. TYPECH Used to type single ASCII characters. Returns with a clear AC. CRLF Used to put out a single carriage return-line feed pair. CCOM The code implementing the COMMENT command. Simply does a JMP to ENTER. GCNFB Extracts characters from the input line buffer. It has three return points depending on whether the buffer is empty, whether an alphabetic (defined as non-octal digit) character has been obtained or whether an octal digit has been found. The extracted character is left in the AC upon return.

74 OBI Initializes the character count and buffer pointer for the EXCHR routine. EXCHR Used to pull character off of the command line buffer. Has two return points. One for an end of buffer, the other for when a character has been found and is in the AC. GWFLB Used to pull whole words off of the input line buffer. This routine has two returns, one for a successful extraction and the other for an end of line buffer. The extracted word is left in the registers WI through W4 and is constructed using stripped 6 bit ASCII with two characters contained in each computer word. Trailing blanks are supplied for words of less than 8 characters and words longer than 8 characters are truncated to 8 characters. Words are strings of ASCII characters terminated by (blank) or (+). The terminator is not considered to be part of a word. Blanks preceding a word are ignored. SPRSPA Sprays 4 words containing packed (blanks) wherever the user wants. Kind of a senseless routine. TERMTST Used to see if the user has struck a (CTRL- C). Used wherever an attention interrupt feature has been incorporated. The code for this routin6 should be changed so that it forces the parity channel to 1. ENTER This is the main internal re-entry point. The prefix character is set to the (.) and PLIB is called. PLIB returns when the user terminates his command line. The output routines are initialized by a call on OBI and the first word in the command line buffer is extracted using GWFLB. This word is contained in W1 - W4 and is next truncated to 3 characters. SLRV is used to search the command dispatch table and return with the address of the specified command in the AC. If the proper command was not found in the table an error message is typed and a jump to ENTER is made. After saving the command address, an indirect jump is made to the specified command module. SLRV This routine is used to scan the list specified by the contents of the AC for the first occurrence of the contents of locations WI - W4. The specified list is assumed to

75 contain entries 5 words long. The first four words are compared against WI - W4 and the contents of the fifth word are returned in the AC if a match is found. A special return is made if no match is found in the list. The list search is terminated when a zero is found as the first word in a list entry. CGET This code implements the GET command. Calls are made on GWFLB in order to transfer the user supplied list of file names from the command line buffer into a name list. A maximum of 6 names can be transferred. More than 6 names or no names cause an error message to be typed. The location of the file name list is placed in the AC and control is transferred to INDSRH. INDSRH This routine is used to search the index for names contained in the list specified by the contents of the AC when this routine was entered. If a name is not located in the index NOTHER is used to request a replacement name from the user. As each name is located its location on tape is stored on another list for later use in the loading operation. When the block number list has been constructed control is passed to LOADP in order to start loading the specified files. MESAGE This is a modification of DEC's message type out routine. The address of the text to be typed is assumed to be in the AC when this routine is entered. The TEXT pseudoop in MACRO- 8 is used to generate the text for use with this routine. DPOI This is a double precision octal input routine. Octal numbers in the range of 0 through 17777 are read from the input command line buffer using this routine. There are two return points. One is used when there are no remaining octal numbers in the current buffer. The other is used whenever a value has successfully been extracted. The resulting 13 bit value is returned in the link and AC. Numbers falling outside of the valid range are flagged as errors. OCTOUT This routine is used to type out 4 digit octal numbers.

76 CDUM This implements the DUMP command. Two output formats are provided. If the user only requests one location to be dumped, a new line is started and the desired value is typed out. If several locations are to be typed then each line in the dump is provided an address header and up to 8 values are dumped per line. The desired output location is forced to be in the current coreimage buffer by making a call to GETLOC with the required address contained in the link-AC. GETLOC returns with the address of the required location in the coreimage buffer contained in the AC. EXTRAC is called and returns with the contents of the specified location in the AC. OCTOUT is then called which types out the contents of the AC. This routine could be improved upon with little effort. CREP This is the REPLACE command implementation. The first octal value contained in the command line buffer is taken as a memory address. Trailing octal numbers are used. as contents of succeeding locations starting with the specified address. The replacements continue until the input buffer is exhausted or until an invalid input value is detected. Control is returned to ENTER. The following procedure is used in storing into the coreimage. GETLOC is called with the desired address contained in the link-AC. This causes the segment of the coreimage containing the desired location to be loaded into the coreimage buffer and the location in the buffer to be determined. Next PLACE is called to place the desired contents into the buffer. Finally the page just stored into is referenced through a call on REFER. LOADP This section of code access the file block list constructed by INDSRCH and uses this list to control the loading process. After setting up the block list pointers, LOADP sets the DRL memory bank pointer to bank 0, initializes the input routine, and transfers control to DRL. After DRL successfully loads a program it returns to LOADP. If another file entry is present LOADP loops on LOAD2 which then places a call to SETIPT and restarts DRL. When all entries in the block list have been exhausted control is returned to ENTER.

77 The LOAD2 point is also used for a re-entry when memory bank 0 has been found to be full and memory bank 1 is to be tried. RLERROR This routine handles all error returns from DRL. DRL error number 2 (current memory bank too full) is accorded special treatment. All other error messages are typed and control is passed to ENTER. When a type 2 error is encountered the current memory bank selector is checked to see which field is being loaded into. If it is field 1 then this implies (because field 0 is always tried first) that there is insufficient room in the machine for the current program. If the current field is field 0 then the memory bank selector location in DRL is set to bank one and a second try is made. The bank resetting and second try are accomplished by making a jump to LOAD2 with a 1 in the AC. RLTYP This routine is used to buffer and type character strings generated by DRL. The input command line buffer and the associated support routines are used in the process. Whenever a carriage return is encountered RLTYP checks to see if UNLSW is -1 or 0. If it is 0 then the current line is typed and control is returned to DRL. If UNLSW is -1 then only unloaded entry points (flagged by a U) are typed out. Control is then returned to DRL. INITIB Used to initialize the input line buffer. SPACER Used to type a specified number of blanks. RDRIN The support routine for Teletype input. Ignores leadertrailer and forces the parity channel to 1. GETLOC A utility for determining the coreimage buffer address of a memory location specified in the address formed by the link and AC upon entry. If the desired address is not in core, the current buffer is written back into the coreimage and a coreimage segment containing the desired location is loaded into the coreimage buffer. When GETLOC returns, the address of the desired location in the coreimage buffer is contained in the AC. RPAGE is set to the page number which contains the desired address.

78 RPAGE is used by the page reference routine, REFER. Special provision is included for properly handling the memory field 0 run time addresses. PLACE Uses the value of the AC upon entry as a pointer into the coreimage buffer and places the contents of HOLD into this location. EXTRAC Extracts the contents of the location specified by the AC from the coreimage buffer. Returns with the desired value in the AC. RLOAD The DRL comes here when it wishes to deposit values into the coreimage under development. DRL does not come here when modifying the run time tables. This routine extracts the desired address from DRL and makes calls to GETLOC, PLACE, and REFER before returning to DRL for another number. WPRESC This routine writes the present contents of the coreimage buffer onto tape. GTOUT2 This is part of the BUILD command code which had to be segmented because of space limitations. This section sets the communication area file update switches and exits to the CPS system boot. GETIPT This routine is called whenever DRL desires an input frame. The input frames are contained in binary files produced by *SABR. The GNXLOC routine is used to check if the next input frame can be extracted from the current input buffer or whether the buffer has to be refilled. GETIPT returns to DRL with the resulting SABR binary frame in the AC. GNXLOC This routine checks to see if the input buffer has been exhausted. If not, it returns with GETLO pointing at the next available data word. If the input buffer has been exhausted, 8 additional blocks from the current input file are loaded and GETLO is reset to point at the buffer start. It should be noted that GNXLOC always attempts to fill the input buffer with 8 blocks independent of input file size. DRL is depended upon to terminate whenever a file's

79 contents have been exhausted. In future versions the size of each file should be included in the index and GNXLOC should manage the input buffer so that it never attempts to read past the end of a file. It should also check to see if DRL is attempting to read past the end of a file (however, there is no record of this happening). CIND This routine performs the operations required for the INDEX command. All of the entries in the loader index are listed on the Teletype. Striking a (CTRL- C) causes an attention interrupt and returns control to ENTER. SETIPT This routine is used to setup new input files so that the first data request made of the input buffer routines will cause the buffer to be loaded from a new file. SETIPT also checks to see if the file requested is presently in core. If it is, a tape read is not forced. This is useful when trying to load a program into bank 0 and having to retry loading it into bank 1. CMAP This' subprogram handles the work for the MAP command. If this command is followed by a word starting with an A UNLSW is set to 0. Otherwise it is set to -1. Next, the input buffer routines are initialized and control is passed to DRL with the octal number 2000 in the AC. The purpose of the 2000 in the AC is to fool DRL into behaving as if it had just read the switch register and found bit 1 set. DRL proceeds to put out all of its symbol definitions passing its output to RLTYP. After DRL is finished it returns to the CMAP code. If UNLSW is -1 the number of pages remaining in each memory bank is typed out by faking a call to the SPACE command. Otherwise control is passed to ENTER. CSPA CSPA implements the SPACE command. First the line buffer is initialized, UNLSW cleared and a 4000 is placed in the AC. Finally the CMAP command is jumped into at the call to DRL. The 4000 in the AC makes DRL think that bit 0 of the switch registers is set.

80 CLIB The LIBRARY command support code. The number of input file names is set to 6, the address of the library table is placed in the AC and INDSRH is jumped to. All we are doing here is faking the input from a GET command and then jumping into the GET command support code. The use of a library table containing file names instead of file locations makes modifications in file positions less traumatic NOTHER The code used by INDSRH to request a replacement name from the user if a file name he has specified is not present in the index. No files are loaded until all designated files have been found in the index. Typing a lone carriage return kills the command and returns control to ENTER. MVTW Used to move a block of 4 words from the address specified in the AC into W1 through W4. CEXI The EXIT command. Simply does a jump to the CPS system boot located in the top page of memory bank 0. REFER Maintains the page reference table. This table is used to keep track of which memory pages have been stored into and which have not. If a page has had something stored in it, it is said to be referenced. The reference table is structured, inefficiently, using 1 computer word per page of memory. An entry of 0 is associated with an unreference page, and an entry of I is associated with a referenced page. CUNR This implements the UNREFERENCE command. The octal number following this command is taken to be a memory address in the page to be unreferenced. The appropriate entry in the page reference table is replaced with a 0. CRES The RESTART command. This subprogram is also used as part of the relocatable loader startup. DRL entered at 6200 so that it initializes itself, the buffers are zeroed, the coreimage area on unit 0 is sprayed with zeros. (The coreimage area on unit 0 consists of blocks 0200 through 0377.) Finally, the page reference table is set up and control passed to ENTER.

81 CBUI Implements the BUILD command. The input line is checked for a starting address. If one has been supplied it is used, otherwise the first entry in the run time tables is used as the starting address (this is done as a service to FORTRAN users). The WPRESC subroutine is next called to write out the contents of the coreimage buffer onto tape. The memory bank 0 run time is written out next. The DISCBL routine is called twice in order to build up the desired coreimage module on tape unit 1 in -B. A coreimage descriptor block is then formed and placed in front of this module. The appropriate CA file pointers are set and a return is made to CPS. DISCBL This is used to compress the coreimage segment contained in the lower 4-K of memory. This routine is entered with the AC containing a pointer into the page reference table. The coreimage is worked on a memory bank at a time. The space held by unreferenced pages is removed and the coreimage descriptor block is built up. This routine must be initialized before being called the first time. This routine can and should be improved upon. SYSTEM ENTRY CPS starts the loader here. At the time it is started the entire coreimage module for the relocatable loader is contained in the lower memory bank. This is done in order to preserve the integrity of the CPS indexes contained in the upper memory bank. The unit I CPS index is scanned and all entries for *SABR type files are transferred to the area to be used by the relocatable loader for its index. The relocatable loader code is then transferred to the upper memory bank and activated. Next, the field 0 and field 1 run times are disposed of, with the field 1 run time being placed on tape. Control is passed to CRES. PACKIN Used to pack the designated CPS index and place the entries for *SABR type files into the relocatable loader index area.

82 Assembly Instructions The following procedure is used in constructing the coreimage file containing the relocatable loader. RUN *ASM LI+L2+L3+L4+L5+ L6 2=L7+L8+L9+L10+$ SAVE -B LDRSUP RUN *ASM LDRTAPE LOAD A GET LOADER GET LDRSUP GET -B BUILD (the starting address is 05600) When control returns to the system, -B will contain the desired coreimage module. Files LI through LIO contain the support code, patches and run time for the desired loader module. File LDRTAPE contains a hashed up one page tape routine for use in magnetic tape operations. LOADER is a file generated using PAPERBIN and contains the source binary for the DEC relocatable loader.

IiACRh 3 ASSEiBi'LER (A229 ) 83 PASE 01 CSU-RTI APE I NTS- S 1 47 IAAC-5171 IACb= S 1:1 IC 0 - 1 4 1 / / /TAPE ROUlJTI "NE FOFR READI N G /ANhD WRITII.G SIZE 12Z BLOCKS ON /THiE LIN iC;3 / /THIS IS TC REPLACE TlIE CON' /I SIOLE FR6;0', DEC /,200C / 2000 0000 RTAP~, 0 2001 7300 CLA CLL 2002 1 20C TAD RITAPE /OVE POINTER 2003 320S DCA WTAP 2C04 1143 TAD V1;4000 /TO F-ORCE FU) CT 3 2005 5210 J iP 1 I T 200G OGO:.:TAPrE, 0 2007 7300 CLA CLL 2010 1144 I;TO, TAD C4C03 /iVRITE WlTh S.;'1Ct, 2011 3145 DCA FUNCT 2012 114S TAD LLN /LAST BLOCK 2013 7141 C A CLL 201 4 1 0S TAD I',TAPE /L- 1 0 Fi.'D 2015 7210 ULA AF, 201 o 31 12 DC At TDIFL 2 0 1 7 1.0 C 5 T D I'.TA.? /LO LCK.U'i,. L. 2020 3145 DCA ZL;J 2021 220; t~E:,,T;? P 2.022 1 6S TAD I'TAPgL /lUiY' B OF:B.LOCKS 2C23 7041 CIA 2024 3147 r'CA,LU;: 2025 "2: ISZ.'.TAPE 2C02 1 SO3 TAD I'.,TAiPE /UN!IT 2027 7112 RiR CLL /PUT IJTC BIT 0 2030 1 321 TAD C2 /TO SET SEAi;Chi 2031 150 LCOA gUIi 2C32'2CO IS ~T?E 203 12 03 T S D I TAP E /CORE L C 2C3 -i 3151 DA LOC 2035 2152 ISZ C.T f /IIl'~OU'T TO A LLC.' TAPE 20C32 5%233 J,? o-3 /I T, E TLz J'203$7 2'20 S 1..3 TAPE oC40 7120 STL /LIi4 _ 1, FI:ST?.AS 2C041 2143; SJEjC0 A I' Z'L' /71 C0O'L 0C TArE' 2042 3200 SEhCl_,S_, DCA CSU,; /ZLEGO C'iC?',K ~UJ, 203Z 1324 TAD C07200 2o044 315 ) CA C,>T\ /J'10' 0C007 2045 11 50 TAD UNIT /NGO0! SET JSLiCi,

84 pA,; 02 20 C4S S1 41 ICO,; 2047 7201 CL, I" C /ITO START:i.iCTIO ACCWARADS 2050 11 2 TAD LDIT 2051 7430 SZL /SLE IF itOVI 1J 2052 141 I C0 cC05 13 47 TAD CS /TO CLEAR iNTS 2054 51 41, ICON 2055 4353 A, JMS WAIT /FOR BLK INT 205 7500 SNiA /ONLY NEG VALID 2057 7120 STL /POS W'ANT FWD FOR BLK 0 205C I11 S TAD BLLN 20S1 75.50 Sr't CLA /L-l, -'.;ANT FY'D. 2052 5275 J, P TH~F:E /O' tLLOCv 203: 3 1 7 I T S /! ANT CO0 2054 7010 1AR /11O 0 L, 1. TO,IT O o2C1 5 -0 1 TO I ~4GO0 2055 7450 SA SNL...~0~ 7 5~...'": - 2 7 5255 J;P A /., lA\T FORE, GOT FO1',. 2070 7C02C 2 C071 7520 " " 2 072 52 5 iJ P A /.ACK!.,ri"TAS 2073 7 141 IC ON /STOP 207 7001 IAC /I T 0 IS O K H EE 2~075 5254,: - /ChA,N:r,,OTIO! 2C75 5147 TIiZ, IriTS /'ANT N1 2077 7G12 2 -T ^ 1 C 7520 SNL CL A /CI AND FCRDW 11 0 1 5?55 riFP I A /O) A D / OI N 0I3 B,^ V RSE 2102 1 1 45 TAD F UN'CT 210 3 5 141 ICO) / SFT "ICOC' i ODC 2104 7500 S /S IF TO', ITE? 105 5335 Jd,_ "'DATA 27105 1321 TAD C2 /TO SET 5 2107 5141 ICO! /TJURf WR)ITIERS- CO; 2110 7200'RAITE, CLA 2111 5201 CDFA, CDF 2119 1551 T") I LOC.2113s 1 1 C F 1 0 2 1 1 5! IACI /AC TO LI NC RE2115 1200 T D CSU'; 2115 3200c [CA CSU, 21 17 453 J7iS WAIT /PUT IT OUT 120 2151 I 1 LIOC?1;21 I7 I (!CF o21i1 On0 C'J9 2 /STOR.A" 7, TI' i;AS NC,FFECT 2 12 2152 ISZ C.TiL /DON E??2 1'2 ~ -5310 1 0 J';!,S I TE /"'O 2124 7 O0 C7 0, 7O500 /ALSO A CLA 2 1:25 1 OC T AD C OS3Ui 2127 4353 j"Iq W.AIT 2.130 4353 Ji'iS.WAIT /ALLOW A'CT1JAL 1'IT OF CS 2131 7300 41AIT2, CLA CLL 2132 214 7 ISZ U:'iB /iiALL bLOCKS DOi;E? 133I 5241 J.;NP SEFiCIiA /NO 2134 5141 ICCON /1.1C

85 PA E' 03 2 135 5-50O JfNP I!WTAPE /:E 0 HiO;_ 2135S 4353'3 RDATA, J,,S "IJIT /UAI:\D 2137 4353 h nTA, J,';S WAIT,21 4C 12C3 TAD CSUi, 1 /41 3200 DCCA C2U,;i 2142 S171 IAAC /G T AGAI, 2143 C201 CDFI, CDF 2 1 44 3 551 DC C I LCC /PUT I N COR E 2145 32 11 CDF 10 2145 2151 ISZ LCC 2147 00C0 C'S, 3 /STORAtGE,:CO FFF:CT 2150 2152 I'Z C.JTF-.2151 5337 J; }IDTA /COTINiqJ, 21 52 4353 j;,S WAIT /CSJ 1 2153 7041 CIA 92154 1 20 T.A D C SUii 2155 7S50 S NA CLA /A'iAYE E BAD 2155 5331 J'1P'AIT2 /TIHIS IS OK 9157 1324 TAD C7S00 1S I 1151 TAD LOC /FI X B-ACK 2151 3151 DCA LCC 2132 5242 J:,P SERCH7B /TRY AGAIn' 21 3 0000C WAIT O 2154 730 0!1, CLA CLL 2155 5147 C7, Ii.TS 2155 7700 SfiNA.CLA /TAPL? 2 1 57 53 34 J 7i? 1 1 2170 1335 TAD C7,2171 S141 ICON /C'LAR I TS 2172 7300 CLA CLL 2173 5171 IAAC /,ET FIRO'! TAE 2174 5753 J~iP I WiAIT / / *140 0140 2111 LCDFA, CDFA 0141 2143 LCDF'?, CD F 0142 0000 TDI T, 0 0143 40CC 0 i4000 4000 0144 4003 CC4003 4003 0145 OCC0 FU.CT, 0 1 4 17 1777 SL;( 777 0 147 0000 N U;" 0 C 150 COOC U.IT, 0 0151 OCC LOG, 0 0152 0G00 C TVTi\' 0

86 R'..;.~s:;,i L1+! L.o~3+''. L5+L. 27+- L?+L L-'-iL- 1 G+~),-:,' i;:..XL

LTI * _. -42 _ C-) A " T_.,,;.3: E C).D (). -_1 1 -''.C ~: <' L.: c-:1 < -4 L (2, 4, I CD I.'CD C —)'-4 I l -L' b2 CD CD CD' — 4 E-7 t.. _ r J'.P C- >- _ C3 CD CD C CD i, i_ -,.'- ) C C,. t'o-.- I'D" " CL) L L I W'" - " -: i ICL- L1L c,4 - _ -T C-) -: C c —, O c c:' - - C " L - r- C- "- C\.: l; ~ lL1 t:-,. _;; H',,C)_E;'. D _ %C"\ OC.l ) J C/) fr_ O - D C.) j 4,, O r'_ _. C -.3 _. C O' I=]- < E L C-DO C.CO'._,~ ('- 1-L_) C2., O CC'CD.''-t (' C-, (..C CD CD C C O CD C_) CD C-) c) cO CD C- CD Lt [m. \9C)N-~r I 3 > UK LI ~) C3 C. _ C) C C_ ) -'.. _ C] C ) c C; D 0 j:', C D C). C ) O C) — ),-,,,,' — -" ~ ~, -- L._. -' C O -. O -— C C) rH' C),. CD. C.- -- C - <,-;>:C2C- K.c-x L: L'. ) - L p, Cn —: L- C) rO C (, 0.), l C'.} E C', 7).]. C] C' r r J X, _) -' 7 %- ~' -q -'-3 1~ - " 1 1 C) 1,' t * ~".,C) C _:. nU OL C) O O _C (.O C}'O'.:' O - CO') O O OO. o') C )' o o rO c) COC'C)C - C-.) C)' ).. Cj G C.) < O C) CO O._-_OD O O:) O O C:D O CD O C) O O C_~ C~. O O CL) O CO CD CZO OD eL C.) sC C.

88 PAGE 02 *2200 /PLID...PUT L LJi,, IN, "[;FFLR / 2200 0 0O PLI, O0 2201 10 1 TA1 0 FSTii T / I I II F J?i I 2202' 3035 DCA —;itLOC 9 I C I T P 20,4 103 TAD FI 2205 4.27 J..S TYC /TYPE PREFI,?II",~LA, J;,JiS JDI5 /;'JT CHA;.{ACTi, 2207 3030 DC7?L77' /TEi;P 2210 1030 TAD?L!3T 2_211 1 37; TAD (-220 /C0O;T P? 221 2 7450 Sf.A; 2:213 524 C0 J,;iP CNTRFLP 2214 137 TAD (-117 /'"AC; A i,' iO 221 5 7450 S':A 921 $ 5243 J2'; 3 3IACAhFO 2217 1 77 TAD (-4C /U0lOUT 2220 7/,5'A 92 1 52 4i Ji" - PI Un GLU)T 2222 1753 TAD (1 5 /LF 2223 7 450 S'A 2224 52,0 JM'? i L IFEED 2225 1 37 T7D (-3 /C2223 7450 S0A 2927? 5272 C/ST 2230 1 37 TAD (-40 /?1INUc 223 1 7350C'. CLA 223)2 5 277 J-P,I U 2233 130O PLI 2, TI A PLIST 2234 4'327 J.'.S TY} CH. 22 5 1 0 3C T TLI T 23 3.15 J..S DR 2SI O T _22'37 5203 JliP PLIr' A / 2240 4777 CNTRILP, JKS RDI N /R GL,-v P-t. R- tZ v,.tr. 241 30(30 DCA PLI JT 2242 5233 JL2-; PLI32 / O92L3 1771 A CARC, TAD (377 / -,,i4 i''kt,e",,-.-, 2244 4327 J!,: TYPCh 2245 320 1.J! PLV 1L I'+ I n? 2/ S4 137C;JLTCLT, TAD l ( 33:2 247 1' 327 J S TyP.- / 1L 2250.. 7...,7' L" C,', r 2251 1 03 5 TA bRLC / ), PLC,C' l' I (;: T.,-,J [C r, 25D. 7 1 ( CL i.. 2254- 7200 CLA 2255 1C31 T A D LFT S R TV 1.'2253 3035 DCA DCi{LOC 2257 5203~C. Ji.P PLI fL'. /

89 PAr3 C03 22'CC /4$35 L"'F'EI), J~;S CRILF /:-, — C-,i;: —' L-, -"L'221 13 ^7 TAF (275 223^2 4327 J., IY? C-i'o53 47'5. Jle 0 I /I" IT OUT.OU TIfT2204.,7";5 J'~ S 7C;F 2205 520J JvvP LILLA 220 7/ I 0 KS 22S7 175'3' T;1 (250 9970 43270 37 J;i TY P C; 2 7 1 5J' J k': -5 / 227. 1-3: C E'L,'I'S (240 /TEiTi",.I'i: IUFFEL','ITi LLAI"', 9 2273 3 15 JsS DPCSI T 2274 12 52 Th: (20C0 9,7 5 42?7 i TY? C'I 2275 500 J.:? I'LIJ /"' C ACK / 2277 130;A1 i'NI~US, TAD (255 /"I. NUS 230C 4327 JJS TY'P3C:-; /,C -K 2 30 1 4777 J;lI I ih 2302 130() TAD (-21 5 23C3 74 40 C' J Str,A 2C04 53 7 C'" MT Mtr'S2 39, 4 " 53 75 1J"": CkI L F./,'t' ": CR 3 C 5,, J 2300 52_05 J:ri',' I A' tLA 23 (07 1 357'I tJ2S? T A ( 21 5 /CfR i -..- A,.' cal~.i.-,-r 230I G OC _', P!.I.T 2311 13 TA A (255 /'i:, 2312 4315 J.?S DPOSIT 2313 1030C TA? LIDT 23 14 5207 J:''P PLIILA+ I / 2 31 5 00C00 POSI T C / P.,.:,.X2310 34Z5 -DCA I DCrLC A 2517 2055 iSZ CRILOC 2320 1 O5 TAD ncRx n 39 J1 1033 T. I -UFTOP / %c,1 c. cbf 2322 7710 S?P m'7323 5715 Jd: I FiPS'IT 2325 *755 U1I7 [ "ESr c2: 52C1 Ci'?' TI / 23?7 00CO TY?2- COil C /,741rtzA,',,_., 2,''5-. T''. 23 7., 1 J;. - 1535 72J0 CL 2 5727 JAB: I TYLCh 7/?335 OO0 C:.51 ir I 0 Pf i 337 1 357 T':.' (215 _3'. C 4i27 JAie TYprrlI ~23' 1554 TAD (212

1 -- CC - _': Li,':(.) _l'.! Vi 1I: C ( - L CI LQ;:C -: C — 4:' —J - ) C_ C" C), Ct —-,,~',,~ C:t ) C'..1 (:'? C.'. L~'~ r.) C~ "': C) 0 C_ C, t.r 0 -.:' t —- u', Ci ~ (.) r — C'-' Q,-) -,[.l C' rJ') -I' r'), " <' r "- C: ct'-.t r,; -:",' <' "- C, — C-; irb ":I' u", t.': 1 — - 1 < -- u- t ", L. U'" " " "? < ":'.' <,.~ t"-t 1- l>t — I- I'"- I I r —: L ). 3,,-):'-)'J r.) r),' ). r: C. C.),),' ) C, rr) ~) IrQ ) r) i. r,)') ]C. r ~c. (1 C'],\;.] O.,.1 C ] C^: e.~ c], C.. ~1 C\1? C-: C', C'.i (2, ] C'. C, C,. C,:, C,]

91 rN _ " C 7J I /1.. 1T,/';.IT I J;7 IF OCTA.,,- C o 7 /? In T C'S'>. j4 S n F'':'-'_/TY T C -' 0 00, I" T7, DiC 1 /11 7 7 T. -. ( /D J Ov I TI >tC 02 C J 7 5 1'5... _ T / TY 2407 137 7 TJ'7 1 (-1 2410 7500 SINA 24411 5215 JNV? GOC N73 I /NOT OCTAL 2412 1375 TAD ( C / 2420 0000 2,1'. ",:.I, C e/':,'eT I,. TY Z.I.':. * * i, b'II*..'. 2421 7CC CL " T..._. lCU T' - T' T.. -.',,', "... 0, 5 7' 5- T c t! C C C P'9 ( t -. -9 T, s T'1 7'7 (1-: 1 r'j*~.. 1 7 _0, T A F ""CS T 5TIS 07 / 13 C vT4,10s 7r 75 0 a ~41 1 37!'r.'1,t TA;, * -9~~~ ~ ~~ ~ - r!~ t * C~- t- r -._./1 7"1 _ 1 2, C 7 rl r r -. ~r- / -;T,-I T Y P ~ _t-. ~, r- Ore/'_'t,: I..; _,,.. c 7 - r.-' T - 1 _ 1 ~ 3/:./:,' L" P 1 a W( 1.1, -,

92 "f r 7 7'/C; -;"J kJ J kJ' *- 7 Z C.'' /i T - 1 C7?"7 Tf A', me "'' 5 f, 7 7, /2T: T > T.......''J5 1 r (.., 77 I,? --, % >.,'/ 5 7,# /D r 1 ~, C; -. /; i.' i T JA/')"5' 177?...... I.' L.,. C?.'.~,, -I 7, I,.',, -,7./. r Y'"1CZF? /.',LKt^-S, r 2L1>7 5277.J? 3<L _,,_ /J — T S O L,.I-'sC-''-'1 b 7O TTO. ( o/C T C11' 2C.?' ~'57,:,, _,:. F / r -.~ C, CT ~ 7 ) I 37, /C' —.L,: 2I7- 17 G, (-2 - / S ACE? RI7T t T, /T.!" S i 7,7 S 1 7,., 1 (1,. -,,,,., 1 i. 1 7.1 I7I ( - I-, I'll.CE 7~C 7 r 7'-2- 0 1 J T /. 2 5 0 C 7 r7 CG. ( r...?) i7r A TCi"' /:' 51C 57 J'~'O C I, " I...,' ->.: 7/70........ /L....7 35W'c l_ LT /C T.? Ih /LTT.,z3V''; T.'.C'"C, /'>. 7O 251' 7 5 1 T',III 27517 3..', 1T' -';T 2520~ C_ 7 C70' 0I 95'5- 1- J_ T^., T,' (' _7' I G I. - 23 217 724 UI bt I C 2535's7 C m C..L t,,'53 1.''T',..5270. I;)9 7/r.\I 2'512 050, / l.-.. I.. r,2 5 3^ e)COC_', O 7?. Y,' I LlP 1' A, C?

93; A., C:. 0 7 25,5 1,24 TAD (4040 2557 7 7'- D I'T' }T "5'iO 2944/' IcZ,-7;P TRk o5:1 2345I ISZ.i;Ci T 2 534 53 T P, 9543 5732 Pi;? I PRSP A / 2544'. Cu T C:2545 00.l"T, 2543 OCCC 00.0'.'LT, 0 2547 CO00 &.JL, C0 / 2'550C CC, TiDR;TTS~T, 0 /SEE IF USDR'- JAr'TS 1' T T.OP cUS' i',,AJ'. " 2 551 72C 0 2552 030..(s ^ i' P 255 1 T, lAD (-'203 "-r. (,3 255) 5 S32!<CC 2557 57 S J,' P -S 253'>GO5C P" " -.E'25)3 7575 2 5' 45 0 2535 0040 253S- 77.C 2527 0077 2;570 0253 2 571 77 35 2572 7 40 2573 7774 2.374 C 2C0 2575 CG1CI 2 573 7770 5 77 752u

94 C O /1-.L. CL.CAT2LlE I' Y L ADnR, I AI N I'.Ti-nY /(fNWi IT;,2, YST-' S TAl2T POIU T ) / >. SO C / 2S r! 7:C_ rT",, CLA CLL'2%';1 1377 TAD (253. /. 2 302 3C04 DC.EA PZIX /(c,. P: T.. I 2 C 7 7 JSS?L1' / 7c t CT uf *.t,,;At,, L., 25U4 / 775 Ji' C I /1INIT OJTJ! T' )I SI *2 0 C477 JL F 7 IL / LET CO"':..23503 5203~ JiP.-K7 /;IOThIt ri lThi E 2207 137v TAD (40/40 /CJT COi':AD TO 3 C"u ARC 2 510 30 42, WC24 2511 1 37 TAD (4 40 31 S C 41 DCA,13 O213 1040/i Ti DW 2'214 0372 Ai 7 (7700 2;15 1 71 TAD ( 4 C?2312 30,i, 0 SiDCA t'.12 21 7 1770 TAil C S:;TA- /START COC CO.[i"A;LD TAELL 23 S 0 4 250 J.iS S 1:\V 232 G1 $2~5 _ J5225 & I?',T2 /i3OT IiSEi-\ 2 22 _'?224 DCA *.+2 /,i',};,- C, 0.,23232 35?24 J;F I +1 /I 0 TO I 1 2324 00CO GOO 0 /f S, IR Vr / 23: 25 17 7 7E;T2,' T AD'.ILC -,, 22 23 73, J.2,1;'1 3A" /ILL..LL LCC. [, 2,27? 52?000 J'iP sNTL.S / T iY A AI 1N / / / iRELT i:~R AC-C IF C'.'T FlID 3 / P ET i~LCKL AC:~U~4, L C i' I' i F IF i L VC IF FO K',SI / 2332 1411 TAD I ~LfcVPT /221 1ST k.2V 3 2323 s SLiVPT-1 1 l- I74 CI53? 1 411 TAD (-I SL T 5 2 7CI11 d,, ~L:",vPT /c~V: LI'ST A,.:S2 2 2"3 7041 C' ) W7 1047 TAD /'O},. CJ2T F I,S3 45 7S40 SZrA CLA 2241 5 3 5 J L - P ( JLVJ /"SS E, OK?? 2347 1411 TAD I ShL,,VlT

D A _ ~ G D:;D95 2 $50 70 41 CIA 2551 1 C041 TAD 1J3 2652 7040 SZA CLA 53 552S J$.jF SL'VC 0554 1411 TDA I &SLVT'255 7041 CIA 2S5 1C 42 2057 7540 OZA OLA /I IIJE' AIC1{ 2200C 5r,7 J L'? SL,'VD'20 5 11 T1411 A I SL 1VPI /VP I IS'0 TA"T`T 2252 2250 12L SLRV /ADV itET:2 53E 9 O 1 I St 1\ V., I SZ LS ~'i VIA 2003 5050 Jd;,4 I 2LiV /d0 L,::,ACI 2554 2c01 SL RV I 7Z SLV i:T 2000 55 20C11I SL.-VC, ICZ SLIVPT 2 57 2011 LtIV, 1.SZ SL-VP'1 2070 5235 J L S L RV+3 / /2 OJI...'LLT; CO VN D, 2 S7 1 7..0 C T CL CiA 072 11704 TJ CZIL /SS.T VOF -2A- Ltt R 1? 2073 Z 1 G DC 1 /!.JT IND 2074 504'i5 DC.' P-S GC:tT /00U;T fr 2-F02 -& r; 3075 47741' CGLT3, JtS G 5YFLO /GST A C;A-j 20 57 S 23 ETD /c 2077 20 45 1 PTIGCIIT /'A- D 1 TO C0J-'7C 0 103 TA (-7 /OTCP AT S s 2701 1045 TO? SLRC>V 2703 53C7 J:PG CSZT? /CA FIT IL 2 7 C04 1 702 TAD T.1'-1It /T10 34`LY A!'AIA - i 7 C 5' 7 j) SJ..A 270C 5200 J; 3i r1 2 / 2707 10i57 0CG1.12, TAD G1 /2AVE I PJT CIO- (:';TLA 2710 521C 0 DCT IC 1 2:711 1740 TAIo^J /'. 27 271 DO C AI!!2 C /7 U T' S~575 177/; CGET, J[;S G"F2' 1;4cL r.I C, 2715 1C04 TI - 1-J: 7 1 1.. L;I I 1 27 1 75 JSA C -7 /ST T C, T., i: 2720 5410C VOZT, DCA- I 1 0 /0 1 C T L.; i I I.i l A',&" Li C 2'71 1I I TAD 1.C:T'722 7:40 S CLA /0 1t? - _723 3550 1,2,i 0C T5 2-"725 1 70.1 TArD:'1') TOE /TCOC FZ.; * - - 27 23D, 47v., -:: 2>7279' 5200 JD" D\;T"

96 ~ 7 1. 7 7 I / 73G 1731'4 TAj.-.ITL h 2731 5J:2 JP I! Ii, -i /TE.CT I I, L,vZX. t-t -r 4* / I/AJiL 106 Ci,0ST E! C IiP L hA-: LIC7 / 2773" 17"J T'3 ST /L CC:';L ~ IST TO J- JS. 1 C:O.h,~:' 2_-.702 773 A T A.. /A i; vC'. Jwd _I I. J LI 74' 5 T' Cl / vc I'_,J, 74C 1 G5?', T A I I~.PT 1 /1 C;TC'-r ib i 27 7 57.J; T / - C 7 C C 1 Al -, I T ( T 1 I L > I 27 A? U, / T:,. 2 7C3. Q, l. 6 " S T L CJ Iv A. J 1 -L 274 l5r7 ~, A17 1 L5 1 3 (L 7J~ / T" 7 7'U1 "~7.:;5~~ T7 TI C L. 27 71 - 1, /,, sj L - J?i77~ C7 S 71* C,,,", " 7 17,! 7 -7 i t J 7. S.,.'. 7 7 7 _,,,, Il j 4 -w r i il_, /

., i 13CD...l V-C ~~< _ - 3 ) IH 0 -... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~L, (12 ~ 1( ( J I CD C ~ -)1 a. 0-.. L-'. ~ ~ C >-, >- _l)'N C 1;'JI'.' H->:i L -iL - - L _ r -:_. Cj — <F,2.'" L'C-) N I Nr ----.+; _-,. _ — N. N L, c' ) <.. J-:_.-:.~ b- _f' ",:: I i C-) C"- ).' _:'. A ^ N_'.2) 12 12 (zn -,-: " C' 1: (1 >2 C" >2 21>O. L_' ~ N J(2(J (2Q~~ H L:C~2 -:: I I C_7 >1-) C -e* t ~ i'-)-' ]fL.:.">2C' L',J (3'-.-,'J %'x + LJ r,,_. C':( —';' ( )'"., C"",. L _,, f,.!., _J _... I (21 <' ~-'U (. IV +v H ['+C>2i —' L:.] [ —4'C1'4" 1.. ('iV f () [ I [ V.] - " CD I (V 0,3r_,", C-) 0, L,-=CL e (,'-" C:)L': P-.H L'l F > r..,'.: r- i.~ f"'" I. r% 1 -, 1. o':-l r,._.,'r-' Lr. —, i.U C C- C - X- -3 I _ _ C) 2) \. 1-';4r C C).~ > ~' C,-: t ] # W) { --- Ds * _ t- _. _~' L r1:' C't.'-3:. -,' f. L-' -4i,it"')I-:') L..- Of r: V +.. _ *. - ] C -,}- (1- 1"C.-. L-.,,_ I; *, -, > C. ICI ~ ~;' ~.~: ~ F-t-" a:: ~ >'. —..". CD'>'" r'% L- rv-, -' ~ -' -.. e., )' C)' ~ ~ -'."': };) ( -- C_-) ]'-'-I C)'.,. ( \' t:, _. C'2::C. ff' P,- C'IN N C::',. -. O: t-_'..... _ -r't [* — NCDN;II* -.C'-... --.N., t "itU' —U CD CD()' -"; —4 -'-4-. -'r1.;:'::!'-S: -rC.' >. <.\,._).. t-; *,r r7.J,' o!;, _'z'. - i (.1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C]>- <::[,..] r,. r.. C",%1,..'7 J' - c.,..........!- I)DC.CC)C).C)_CDC))CCDIC)CCCC)-_)C,,)C()CCCCCC L.............C (_) C)- r". r3 N') N') N) N) N) ) )) _ ) _') _ ) N) N' __C) N —) N) N-' N' N N' N) N4 N')?,f) N V) ) N) ) N) N )' N,) N) I" ) N) -?. 2 ]) - "%':': ).' G~ Zvl —,C) ~-> 2' C ),'>" C) 6_)u& c._3'1.><' ~. ~. ~'-'~. f]c -t5T -r9r 3e _-..' -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I I C~~C)'','K r).-4 r.-., r o- 3 F) ~. u- *< r-_')- "C) C2 t, -'..U' O'-2 C) C_ f-:2<' ":' t{..') Lf% -:" rf-'. "c' Ul -r't' {'- s; 1"- <i <'' r' c-; —- 3 -.) l"''"^ c~ ~ ~~~.,.'.~ ) -'-' {"3 c.-q: cD ~... _ _- _', _4 _q._: _~ _, e7 1. el tf'~, O] C xse l e.: <]'] O.:,FJ C,] <; ). O) C', O. r-v 1.': ~_.) t — r.' t' (-,7., 7~ <7', r —-\(. t —-. l, -, cD ~ ~.- < r,.' ~ i- ["- c,-... --- -J c u"c, L.;, c3, C. c'- - ~,', --. l-:", t. u'x ~ c'- tr' c: u', o 1- i" cD oC'.- -~ b'' C') ~'- (.7 C' C2 C. c.~ c'" {'*c, — o., r:~c_),.~),.'):) rc) r..) c. c) ~ —, —, —, -,. —, —,. — O.^ 1< O.) 1- C,. O.!.r'l0 L'% rs ) r ) ~:F) r.') r~" ~.) r-') <' -gr).1' r~j -< " -)r )r-

00[t <-..'C::,'.. -~ ii~~~~~~~:i _ L (9- ~:' iI'll-! [ —,\( L-] - r.I-, t~ Li )-1 (.1 (T C~ ~": C.CD'- r _..,. 0-IC''.. -,: D ~_) L-i~5. (':.~ ~,,'-:''LD C], ~-~ 2:5 (..) ~, f,, ]... C].-. (9 C-.; f_ F- 7J.9 L~~~~ 1 (:1 F-'~~~C~ -1 Ti CN ~'-' _ C —'F, -'.'-4 ~.. -..] ", D >-' C.). -,-, H. J, ] —' --: oU)-' —i c-._> -) N. )C.'__..'- ~"~C) t> - 9 (;'..1 W-.- C _<.> ) U (9 " C -Z,,>,.:...... Z- ~-~ Iz.'-~ ~ -- ~.._]:>._i:.:,:.- H D[ L-", t'c.; ~ ~-,,.._].'] f::::>.i:, >.. T-' L- [ —..-:'.'u" CD::_ C, C r ) O _ Z / —.,: (C.2. C2, C)(~ C~:_:CDC('...:'~ — C,~ (' E — OC ~i cT)iC CD C-.... C _ I C3', C I:._ I P.DC (_ - 0.. - e_3 o".. -.- _] ": CD _ C",. I * I C JIJ -i C>A- ~ ~ I C t) C'_ -2'- Zt'-.' ~:: C.Li,.. —v:j. "- -- 21.-1'', ".;:)':' (]"] ) 1".._-1 U C <.ir;.l...",_1,,D,, C) -:). -,,]'., "j C - _ -] F c _... C ) C?,- (.) —':.'_ 2.: CC)' -.-'.- CC,- > -:..):);C- -' -C. - —'' C I:-,'.iC'C —. C- ) D C _ T C.' ). - C2, [., f.l [ —' ti7'. — }'-u'-3 C (Z~ F~ iT;. 9 _ J'' 7C * )_._v,' - (. F_. - 3- C) - t —,) t:." c-' — Ji i "-3.....' t- -,,) v'D Z':'. t ~.) - tC- r- C ) T ( -—'L.> ciCi —_, I - r-.4 c t-Tn.) f4 ) C- r0... rC -Tj f-.C D.C, C- ) C) 0t) -' - 1 ~ (-4-) Lr) C\ f, ~N- ] _ -l _],_ C} n N L }' ) Us W\ (7\1 U", LX t; -4 I-C -4'' C* (..) C) CD _ o C7)*~c 1 _ — CC ~ - eCC-'. C)'^CD I- - Cx] i'- C-D DC r_) C...),. ri C,. _C 1'"- ~ ");,'.- C-.".C- L2.C CD-.CC (; CD C. -- ) - - -4 Z, I, ) L o _ \L~~ C~~~ ) —----- - C~ ~ C\ C fP.):_.\4 C,),)I) t4) r;tj-(\ - o ^F -r)t vCr- )W ) r) r-,)* z 4_ 4<r s )rv-c 1r > C }r t) cDr< DC L

99 77 7 17 I L 3 1 37 US D 3CAt OC T6'1T 7 1' C r 7; 5 ~~T:L,., Ts-z ('CTiI'T 3141 700S D.TL 1? 7 Ci C iL 3 1'4 3 5 D CA iOC OCTI." 3144 1355 TAD GCTIPT 314t5 700C DA.L -1I 4 C37C AXO (7 3 147 1257 T AD (2 C 3150 4777 J, i TYJP Ci _1-1 732C CLQ L LL 3152 21 <53 ISZ 0CTCITi 3153 534C JA?' CCTL' 3154 5734s W'.K CICTOJT /AC-C LC / 3 1 55 00CC OCTIPT, n 2 1 r-; GOO SCriT 3153 0000 OCT0UT, C / 31 7 02 PACI 3170 0007 3171 7774 317 23C0 3173 5123 317/i 7 7 7 5 3 1 7 2400 3175' 7773 7 177 2 727

100?A3l E 14 / /CUU 1)'. D U;"? CC;''A,,,, D t,.',-, / 3'CO 0 4777 CDU"iI, Ji".S DOCI /GiLT NiJ.;~I3L9/{ 32C1 5773I JK? T0FZ'", /UF-K.ii i.SSAG(. 3202 3050 DCA CSThLO 3'03 700/! iAL 3? 0! 304C $!7 DCA C 2 Tr-i G 3905 4777 Ji7D D7OI 3'20S 5 302 JclP CDUY1I /CNLY 1 LGC 32207 3051 D 7CA CDLA 321C 7004 i'iAL 3211 30C52 DCA C' LE"DI321?2 10 50 TAD CSTILO /FIG'URE'L> 0. LA;INS, 321 0C375 AJND (7770 3214 3Z053 DC.. C DU' "T /TU.A'' 3" 1 5 1 03C TAD CSTRLO 32135 C074 7 (7 3'217 7041 CIA 322C0 054 DCA CDEi'r-)T /Th;IS:iiIANY 3221 10537 TArD COD"T: 3222 3.05C DCA CSThLC 3223 1051 TAn CiDLC 3:3 41 1I 0 I T: A LC C-) LO 3224 704zC C7 0A 3225 1050 TAD CS Ti'L 3 2S 7500 SA 3227 5773 JiO? "OPI /TOO DAD 32 0 3055 C A 3 TC T 32,31 4772 C;UJ:5, J;S. CRLF 3R23? 1371 TAD (240,3233. 4770 7 J "S TYP ECHi 323' 1C47 T'.D CSTRnS 32 5 1 37 TAD (2 0 323 4'770 J>':' TYPE Cii 327 1 OnC TfiAD CCTI C 3240C 47,5 JriS OCT'JT 3O2 1 1371 TqD (240 35242? 4770 J7 7 T' T CRI 323 1 775 TAD (-10 /OCTAL 3244,. 3053 DO" "' D' T 3245 13 35 CDU['"4, TAD (-2 3 ~ 4734' J.,Sc P ACE,, /2 SPACS 32417 1054i TAD CDL-i T 32SC; 7 S50,S l'A CLA 3251 5257 Ji;,P CDUJI';2 /',C ['iOTRf: DLAXLKS 3253 1353 TAD (-4 3253 ~'1,73 4 J'X;S pA iC / LAC 5254 203C4 I! CDR; PT 3'255 70C'.? 325 0 5 T A CD U IK / 3257 1 C i7 CDU;2, TAD CSTR7 AhG 3;2C 71100 i',:\ CLL 3251 105r0 TA C1 7 -LL

101 PAGE 15 3$2 472 J iS CETLOC /""-T LOC 3253 47 1 J S. TRAC /Q.,T.CD' 323 4 4 7 5 J"2 OCCTOiJT /?iINT / 33.5 7301 CDU';:3, CLA CLL IAC 3233 o lo5s TA^ CTRLOA 3 57 7305 DC. CSTI.RLL 0 3270 70 1 0 3271 1 G047 TAD CSTRHG 327? 304 7 DCA CS T li H2; 3273 2055 ISZ OUTC; T 327 7 170 SIt 3275 5730 J7:, ETTER /ALL DCOI' " 32.7 3 4757 J; Tl'-;i-TSlT /SEE IF UISER VWANTS TO STO? 3277 20C5 l~Z'..2CNT 3300 5245 J;? CDU V4 /IOR E 0U LI E 3301 523 1 J;IP CDJ, 5 / 5302 4,77'2 CDil,l, JVS CRLF 3303 1353 T.D (275 /: 3304 4770 Jl, TYPCi 3 305 104Z7 TAD CST.,lT 5330 711 1' FAh CLL 3307 1 05C TAD C T LOC 3310 47:2 JLS GETLOC 3311 4731 J iS FXTRI'AC 31 2 4 7 S3 J'iS OCTOUT 3313 57 C J'1? ET R / /CFr.: *. r?LAC C7Ci;'iAtD / 3 314 4777 CRE?, J;S uPOI /OG P" OtL. 3315 5773 J:'P TOFEJ',/ /Eiri0OR 3315 3(50 DCA C`STRL 33 1 7 700 C AL 3 320 30G17 DC C'CTR"T' 3321 30C3 DCA CDU;IT /COJITS // T 7PS 3322 4777 C.??,. R/- i. v. 33.7 57 "5 J / 73? "' 7 1 0/ 7 I C "hiOjLD 0 339 5 2 57 %-L T' T. LT i'2V.i 37v i 5 75 75 J iJI. I LL -. I -27 O5 Z Ci3S U L; T / I4t..T...P 3330 10 C 7 TA CT. iG 37=1 711t 1-,"-C!;'L,._.,.,t. 4T 3332 1G50 T.l. C:Tn;L7O /i,1 <"T 3355 313 7 FT L C /'T It A. ~3 ~.357 25. 3332 3370

102 PA2': 13 3'33 777/!t 3534 517 v3555 7773,333S 313/ 333 7 02SC 337G0 2397 3371 C2'AO 7O707 4 C O C 7 3573 4125 33575 7770 7 272 377 3055 33 5. 75 3333 7301 CLA ACO C L 3337 10C5 TfD COST.LO /thrnt;~ /Pb 7 3 3'050 DCA C7T7L0 73-1 7CC7' 3 3 -2 10 /t7 TAD CSTf;iiG 3/'3 37 7 7 OA C TI -; "3314 532'2 J"i'? rZP2. / r, ~'-,r c..4 33z5 10C3'.C.i.," TAD CDUi.,T / it..-' c,c t, 5, 3354 735 1,r CL. 3347 5752 2!"}? TFZ'! /,R'iOf 335C 5751 J..,.,5T., /;lL DO,)L / 7 7 7 1 C L 3 35.' C 7.. 7 r i~~C

A2 17' 1170 / " iCC 72C 3 IPD- CLA C' L /T -," --..-......3-0C2 70I1 cI. 3404 1 777 TA JL CIL. T J-I05 "7'17 DCA LOADT /O'-r.A - 3 i~ 5C J1?1 r LOAD'? /7 CC -' 7 T 7 D ( /. -, 2' I ";''t.1 7 5 0 L r. "t 17'7'5 "C _ -,"'"- I'. /'( -,.??l j,.' i r T t 7-.' 7l..5 I j - 127 T7 /'7~ 5 -',7,'.','' 7 t 7 7'' "'7 _,,,, 7 ro ~lir 1 r P T L, 4 3.,,. I 3 ~'.- D I r, li 3423- 52C J>? LC',4.- A-& T,. L., 3437 Cn C LDT / / 3443 13(5_ I TA (3 / L'' A I -r;f 19 745~\ T, AL —, r- 17't 7) 7 c. t, c 7,~.... ~ "-' r, 1 ".' 5"9c~l C I _ O f& I I ~\' I_,.j _, m? 7 T r? k 7'~~~~~-''3; J.'T "'' "r I7 L L" " 7',:I:' / 7 J". I'.TCL. r'4111, I", 7,r C) 7 t. /, ()7 I T;- - 7 A T I C"

104 T A' r'' 13C TA (015 3r'2 5 -2 21 / r IT /O 7'?C ~&T T. T.. l t;I.. 7Cv, 7.% C07?.P -':'.T': / tt~,,'t>rw T 7) T, I'?,,: ^i TP - ey. 7, 171 T TV n)'. 17 1 T 1 i t /' /_,? /.:. t",.'I.r'-._1 7'; i7 5 C7 I I LTD > /IITALJW F 10 y C 10v 5 LTV, TD L CCI' /1,i,7 3L Y LI' I4I.7 1 1 7 TAD (- 1't _ 77: L7' A7' -f 51 1) R' J L? T. I > 7'51; I/,I, I /I I..?._ iTI_ 7! 1-7 (7?-.' C C > X 77 -.'~ J 1i7.. C2. 2 ~;:i 7.'.....'...[":P _.,: " 7 -' Tr, r'"" 7 J 7'' 7' so r J j uuirV,: w _ CA 75 1 5:< r5.: j, i or 7 55 0 777I 7 7 3C 7 71' /-, 3 5 5 7 >) 7 _Y ^ t r 1C 7 r'- I 7.7. 357 O?7, 7?7 f 17 r 7 5. 7 7 7 7i. y,,.7. 7 2 5 7C 1 1 T_1;'3"ib j / r C r i il t7 _'!7 717; C:7' ~t 7,_, S,, 1 v...0,..;.O * C' / 3 ) 1 T

105 1 CC C' I'-'f. -, 75r1 1 r: T.'. (?4C 75 ~'" x 7:7r J: i, TY? EC. S IJ'~I* --'C"'5'5 717 J" * i.2' C t J,'. / 7? 7 f' r-> ~t l X 7rr 3 57J, 7 O /; I 357'~ 7' " 7,'5''.'7,.; ( 177 35 I 74 C 12 V3575 5 a'. J LL 1 I, T; 1 Lrt. A- # i - 5_ 1&4 TtAD (2;C S' 7-7 7. I, 35-7 177 3 551 1 1 3 552 2 327 3 553 0" "C

106 O3GCO / /UTIL ITY IPf R DTT:[INI:"' LO; Co02E ADi ESL G A LOG /.?CIjIZ I T- E J A,DrDZSS FVOf',ih EY LI,,i('-A,. AC /IF C T I TI TS C0T CIT Ai L T S L CC I II C 0' - /STAII iiG AT A "Z'R PA IC:i DA,Y /;-TS W;lli LCC I AC / 0CC 0000 h.TL C, 0 3 1 I 3021. CA,i-.LCC /C 4,,u Tt O c S 02 70i.4 ThAL 63.. 0 C DC C:, / &,iL Itit-%l $ 3 SCZi 1020 TAD:'K2E.' 3:'03) 7110,AFR OLL $g.3 1021 TA1'i.fllC 3507 7CC00 TL 3 310 70%0.S. TL 3'-11 7G00 TJL /G.ZTTIiXG PAG.'L* 3312 0377 AND (77 3313 3G022 OCA hO/G: /C-77 331.4 1022 TAD S /F.r' T..re D o -t', -', 33 1 5 70/41 CIA 33 1 17 1TAD (3 /I, P3S INJ }iUXI Tl.IE 317 77C0 SOA CLT A 3320 52C3 JP *1TNTN /hiANDL. h T DIFF -' " Y L"D L = 3 72 0 7C4 T1 3,;T i.2 /C;JiE T STRT i'I f 7 lz.3 SC22 7/G 41 vT l A; / L:z:~ ( paO,,. 73237' 1C22 TAD 2PAG. /ITF NE BELCOW CUEN T 33224 751 C SPAi3o25 5231 J,?-',iP /LO" V Tt t 3 2S 1 73 TIA (-20 /SE) IF AI OVE 327 7710 S? CLA 3331,1.5;.'i, J:.S IC.-L:C / T IJ c.;,, \ i LT 33 5 13. 12 T"',.'f -,3 3533 1 2 7 TA7 (-4 /ALLCO OV~2LA? TCO COJ C2':r-.. 3,'4 30'?'3ZTh-. _ CX'iSTR /Nr" STA2IT -,.~,or., 3535 1C29 TAD C!JUST[N: 3 3,S 373 TA (2c 3 37 3241 ICA GTOEL.,.ji',.i J S J- S I JETAPE / ~t,c a,-, tj.p tjI,,f A -.,,3541 0OCC,T2LL, C 3S2 CC00- 20~ 33:i3 C'OOC 0 31. O 0 C C / 3o3o45 75G0 l[iCOh_ CLrA CLL /Tpt;.,t t t c',..,. S 12 ) C1h S'i, /CALC ADESI I, v &FFI,=. S4c7 7041 ClAr 7 751 710 I r L TL 3352 7000 ATL 3 55 2 7 C C S A TL,, -,. 7C(; IL 3 5' 70 C4 Chi AL 30r55 1372 TADn (37000 /STiJI OF?iT Db UFF

107 I A L 21 3 S5 S30'2.' 0C24 CA TTEi'i 3 5 7 1 01 TA D'1'iLOC 3C5O C371 A.,D (177 3551 1 J24 TA D:LTI?1; 3'52 5 0CC0 3TTRET, J;c? I OEILOC 30553 1092 1AU ij. iT, TA\)..'HLCC / 8: b <.,~i-o /JL r,, mc 3534 71 G C L 3Z 325 52S2) J &2l,?'G T ET / / 3 05 OCCC?LACz, 0 /PUT C(iOLD) pI, J;FF ADD I, AC 3057 3C! 4 DCA - ITTEl 3S70 1025 TAD HCLD 3571 0201 C IE 30572 3424 DCi I G"TTEL 3 S73 2 11 C DF 10 3574 5S,5 JS? I PLACE /AC-0 / 3375 000C 0 EXThAC, C / ET C OYT C&F LGC I, AGC FfOi b;.UFIFL 57 3CS 2' DCA r T T IE 3 S 77 3201 C F 3 70 14 -/ TAD I CLTTE'" 37C1 5211 CDF 10 3702 53 75 Ji' I XT-R-AC / /FR L C.O.TU T I. UTIUL S A R USES TO DEPCCIT / 37C3 C0CC L;LO f, 0 /i.;.,t{ e#,,% ait-2a: ) I" _r Q,- 1 3704 2350 I3S 4LC.D /IAISS PATCHi 3705 3025 DCA CL /SAV CO;;T 370. 1 7 7 T.A A1(X 3707 7110 CYL AAR 3710'1727 TAD CU.i /AC - AiD2ESS L DESI RED 3711 42CO J;, S GTLOC /AC RC: F- AD L 3712 42.S JI'?S?LAC,: /STC' II 371 3 zi7, E /JS! EF T/-ii POE AJE 3714 5703 JaP I rLOAD / 3715 02CO0?i ESG, C /J.,'E C,,'1 Ci" ~t,'4r c,,.:,-ii..,.''i,.J A'. 371 7300G CLA CLL 3717 1375 TAD (200 372C 10'2 TAD CJAST' " 7.1 7 C L L 3721 3323,C_ EEICIK 3722 44427 2 2 J;I 1- 3723 C 00 G VC' LKc C 372'i CG20. 20,,,.. (o,,;', "a..> a Ft,. 3725 000C 0 3723 3000 DCC'i, 3000 /.'., ( c ) 3727 5715 J,. I',';iEC / 3730 13 5 T OJT?, T.AL"D (7773 /kiZ-T OrF i.JIL2, 14. -',,r,',.,-,, 3731 3010 DCA 10 I..;: c:.&.r -TTlr 3732 13,4 TD-) (-7 /',C, ~ ~ ~ ~ ~ /-~ rrc /'.R._.~ / ~__

108 PFA.]E 22 3 7 33 410 DCA I 1I r734 7? 4C CLA C;'\ 3735 3410 DC I 10 3737 7 C. 1 I CLA IIC 3737,7410 DCA I 10 37/0C 13 TA (7 / 0. 3741 I311 DCA I 1 3742 1 32 TAL (7757 37/'3 301 DC11 If 3744 13'1 TAD., (37 3745 3410G DU I 10 3743' 1100 TA? 10C 3747 CA I 10 5750 150I TAD (400 3751 3410 DCC I 10 3752 5757 JLP C:I / A.iT,,,;,, 7i'.,r, j / 3757 4311 AOZ 3 70 0 400 37'1 0037 37'32 77S7 37, 3 7402 3 75 0I 70;7 3755 7773 373 7S iCC 3 757 55'"! 377C 33 3333 3771 0177 37 7. 5 0 C 3 773 0200 3 774 7774,7 7 7 7' C0 3 77< C0 %0 3 777 0077

109 iCO0 el - 40CGC CC00 GE TIPT, 0 /F_,D2 B0IiAriY TC LhPOADTi i..,ixn L1,e i":ac' n "i t 40C 1 7700 CLLA CLL iC0O2 1250 TAD Ti-iS'J /0=LFT, 1-:ij, -l-;iT.e. r LUrDtfr tr; 7 40C3 7450 400C4 5'245 Ji'!P LFTS L T!4005 7700' A CLA 40C, 53 22 J?:i'IDS l 400C7 o201 CDF /-1 -ZX TACT YIGHT 4010 1 57 TAD I LTLC 4011 21 1 "iF 10 4012 0C77 A',D 7 (777'4013 72CC DCA INTT 40 1 4; 1 J;',"' 1`XL'CC /ltiAKS' SU.R IE'T I"' COLE 4G15 720CC CL o 01 3 252 GILh i T,, 3CA TH2SI 401 7 12 CC TAD I'" T 40C2 2200 IZ TI.7T 40'21 520 J",A I PT&hIPT /' 022 5201 "IDcS C' " 4023 1257 >,D I'. &TL, /LCh 3113 I. CC5 0 7: ( 1 7:022 7100 CLL RiTL 4027 700s 2TL 4ZC 2 0 C. DCA I PIT 4:0,31 42 21 JiiS G"XL CC, — 40C,7 i 57 TAD I ITLO'G0/,: 5'211 CDF 10,iG5 C375 Ai.D (74CC C405: 7 1 CLL ITL z; C ~7 707 5, -'I'L 4,0U 7 04. L 404 C-1 1i" "~r'" TAD I31T1 ~ r > tL o 1 7L j-,r -S v0 7s'1 7 l a _1 T__'C'5C C37('.^i (77C 0 ". 7' 1.. ~- C." "r 7' 1 1" A 5 I 0C Lt L C; I 0 3J12: JJ J~iiZT T' 0, J. v, C-..t;,; 7 571 CD;: I/ L..I -A L,,L

110 Ci >l. I j CO0 Li...,L C'; 1 7 T ( uIC 0 _T L:'-rC, 1 17 1,. C L.C r% 1....i IL 7', [ I' 2I,),, I'IC' r1C'C'C!""I'L,',,' /,Ji~'T'- 20I.,.,_ * rL r. -'''' u ~'' " ~ " "" 0,~,7'. 10vv 1 JL, I 0 / - 1('4 - & l n I! / r;J,.,.,D ~-': 7, 17 1 TVt5 I_1- *. ij07 127!' T:.T_' 2TLi I_:7' 7 Z mi77 Z71 bO, I: 0 TAOt -. 1- rv G 1 7 ^'. 1t. J, I,,, I O Ir 3~5A77 1... 4C1 1 7 0G) 5 0 N LA C L A10 10 7TAD'v' 1' L 1.Il 4115 470 7 "' J / " 1" - 5 7. 7 T 5 T i. "" * 7 Lt LL T i..' I 1111 1037 DY-'I' 1 17.' 17027 l., ". (''y1.16.I \ "7:')...... K. T.'"'! 4 r71 1 7, ~.. / Ty ~ e. -a,,t i120 1325 TAP D I"'^4 4 i1 1 I T7 (5 0 C. x'" 1' 5' 77n J 1 7-'"1 r ~ " 1 ('Q 7 i ";T r /,:".Ii 1 7I'-; T l'r;.1 I -i.CC S T',C,. I....-..... " -. 4"' 1 J' i9; Ld _' 1'. 1 I?.. c

11 i 7 t."'-' 7.':17 5OCC i 1 7 5C(' 17: 7:( ~, 1 7 CC 1 7' 17? 7'77 "1%7 C;017 *'177 0'77

112'i 200 / " 0'nC(C:C c LTI 0T 0 /SZ"T "_ "I'T ^;Iy -' I;,,.1 5" T: F- TT /T',:7G777 C'; U7 (1777,,20r,,. 1773 T' I 0 1 7 T - L 917 777 B2^ i/C!f 3 r 7 C I r) J C.. "'21 -' 377,::;,' ( 1 777, ~-,._,,~,.:. Ae''7, t~, Lz.~ 1 72 ( v_'G'.^ I /77 i; 7 /j 1 771 ~LC,-;T! 7IJ l 7 I I ( t I0 2.2 7 l O I A', i 7 7I C (1CC /A,, P.s ~2 s7 7.,7 A C.-.Ti7 7 -'? -'' l^ C_ XC 52C JrP, I i3T "1 5? 7 T 1.^ "'?v 1 /:I 7....-i l.;. L,. lU i\w'2' 977 i i 1 23 137 T.~ T1 /2 i235 170. J (-C ICC /Ai? I~.r 77r Ji,,;, [., C /, "I' 1..' i i Z. a,! r. ) n -.; C r s ~. 4 b -. 1 1 V t r \ _.,. _ i I L. 1! 7 -,,,,_ I,_.,.';211 20~ r JXLS! /IF -l D' "A&ZS,..7 r, -:' 7 7 J, r2-;T: C /!~c,~lL I".AY,m l-:?...'1 1i'. 25 1 "' T. (/'', 7 i. -q:'C- " ", C /C....'r -..,' It.1. ~~~ Tr~!?/y

% ~C., 2~ 7 113 1 253 73CC CLI?, CCl CLL 251 1357 T [ ( 412 5 0 1 75'5 T A 0 T'L /..rr I L' L-C L tA l&',9.7,755 J. I"S /A, 7:; / 12500 1 75,. O T~L.,.A0T; r,.T 1 /CRLF'" A\ z C(clA;1C i* k'i.:2C., P 1?753 J.A 120? 1033' TAD'VL:C ":23, 753 JyC ZSAGE 435 5 UC) u T.-,D; ART2 / vS0j rS.T LIS.. ~354 5053':355 073X 4 350 4730 1'357 C600. 4 30 5'C000C' 3 1 2 s C,33$' 7700 "' 3' n'4a 43'r 745 7: 4~*7~ 7rI1 4 371 i;C57 4 373 4073 4 37i4 C GC 1.375 10O71 4 377 1 777 12';4 175".. ~.~5 "'751 J; _-;, II.220S 15.-. TP. (277 /7 4'7 ""C".-.' Pt v. 14270 77 t;" J L' 1 271 47 J 7, 7. JI?/' L'' I' /'.27 7 02! 5 C.' ( / J t - 270t 131 il OC7 I 1Cj`'-77 1 OC.'U'13C1 14'i10 TQT I10 1 303 1 77 37 7 17 4 t2 7-/ o. l7. ~''' 0 i I C'L 43% 1/10C T.D I 71 C- - 7' C 7 C DG i3 10C~ 5075 cJ:T S? I X VT1

'C C 4?: ('- - C-) _- 0,._] ~ ~- C_).-,I ALt. * C * _l C) C) l. <. C<)') -' C) t, C) r-,' "') C,) C-,) U,,' to C-YT'tf t — C \ \1 C ) tP.- f ^ > O { C3 _~~ --- _ c < v *, -r 5i uf t (?, ~ ~~~ c;; ~Cr -, >>;; <r<^>,;4~ "<

115 PAt'E ~ >~ 4400 / /R E F'F:: E rR?" C'-0 i /REKCF:...VIkE..,CE RTC,,TI.:. / 4 C0 C C E 0 i / - r rf'l'I' t,.,,:, F t - l,-; m 140 1 72CC00 CL 4402 102:2 TA".R":PAGE / PA.-"t;;JF T/1,,'1,i 4,1037 1223 TAD A PAS /3ASE OFF PAGZ I'A3LL l4404; 3024 C.-; T TT'405 7201 CLA IAC';40 3294 DCA I GTT'J:40 7 5500 Ji I RUF.';, / /CU.',:R... U;i-sLFEtENCLE C)i'.i',7A 1ND / 4410 73C0 Cl'J;, CLA CLL' 4 11 -1777 JiS DPOI./"'ri r i:.. C L. 4412 5775 J:;" TOFEW /,/~:,,.si.''ir:,,' c.. /! A 7 O C A Fi T L / -cI4..,,''P,,;'. 4411 7CCS }TL 4. 415 7C00s FTL 4 4 1 0375 At,; (77 7 /, t i 4417 1 22 P.A- - L..t: c; -4.3.42. 3024 DCA -T T E -44?1 3/!24 DCAi I GETTEL. /ccLv' p,$L a c,.,/zt 442. 5774 J, L.E;TIr~ 4 4923 424'E +1 /START OF TA E L 4i574 2'I 0 / / Pacz#. c1- u e-( / 4 P&I} P4(;I: 4 577 3CC55 4 577 55',0'

C). C) U) [1 ~~~~~~~~~~~~~~~~~~Tj-I7 k-1 D \ _rwr_ ~.. CC).,._-. O CD CD ['O Cj C:> C-' c' O C) O -—,0 C'7) O O C.,,~ O O'), —,.,,) O C) O C7 ~-' C) O ('.~' —' ~- O OCC_~ O -.%C.-)O O r)\OC'C-O C7.) C) C CD-C.)>C —-)'"C- O O C-) CD-: — "- C.` -3, -— 2>';, [3C).>.- C.(,-D ).% -- [, C t&-> 7 [.3,-C-).,,->,-' ).~2_-[0',CD' C.-, - -~ Z>..; —,-')g. C)-. C)% ~ DX C-) C')',D' (.~ C',, C-) c') C,- [(,::, [-" C_-2)..~ [,,: —, C3 C-,. —- Cq.- D~) C-) ~ [''' - ) CD, - - C:-. r_) C) C:) C —)' C:) C..-", U.. CD C:) C, --- [',,,. D C'D C. —)-. )',Z-._-,._ —~ "~,,.2. ~- _r. D ~~ — ~>,[- ~' ~0,1'.-,'. ~ ~', ~>.%.:'%. l.'-:'- ~-' J. —X —,.-,-[J "- ~:~-_ )'.. J-' JC).'-[C:)= 2_C j> _C-Dx0C'-).'>./% \ — C "'.')(7 0 C-) C-) \,. —,I" C')O C_,) Lo~ ) _C-.') —.W C-) O7 O-'-UCD C. -~- ~, C)~ )O C-)O C — CDq:' CD O 1' C-) C-. ~- k.3q r- O- C) o~~3. - -- CCD) C):I — CD C rl-.-_.C): CDC):jf - - -) ~ C-.: >C~. C-: -)'(I DC1C - Z- - D- 7 C,~ C-'\ t. 37 C-o)U - DC% D n C DCIX~~~~~~~~~~~~~~~~~~~~~~~~~I'-2 i —

-z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~x V.'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1 7., Li,T, N,,.'~ ~ N!,.~~~~~~~~( w~ L] -g'- ).. H ) C C) CD ~ -',:: D C:) I'.2~~~~~~~~~...C. C" C C-) C CD' t-CD- C - C-.-.C- ] — C, C C- ) C_ )'.,- -:7 - C_)'"' CD, 0- 0- CD VI- - CD c0, —4 CDC:DQ:'D. — )]C., C- C:-) C' —- C CD c-) t- CD.. —c: C —,'" (.)IC-C" " C \" C _). _)c _ -C C C C )D),n C -) 0D C D.C'C C C )C ) ( 7'C'C ) -)C DC)-C"C<C -~C) LD O C C)D D<'l C) —O-, " C --- CD) -,C ~~~~~ C~~~~k- ) ( 7)% k, —-, Cx C',) C )', -~.'~ ~ -,c:)~ "~. c~. ~.~~~~~~~~~~~~~~~C-)' l.,-t C,,! ~ ~ C" C"-C)',,CT LDCZ -...-." —'C, -. —,,q' L" C~'~L>?<~ ~...~I'-I'-t-'-'- ~ - i —P c~ 0 9cDC~ 0 C. —,~ ~..- ~.-,. — x' ] ",3C,1C,]C]?~-)r~)~lh).) ~ON' ---- -

118 47'41 0507 0507 47' / 05~~.S ~74'i 052.? 052o 17/5 5525 5 25 / UTILITY 4743 % /11 2411 /i 747 1 i 11 1 i11 S-.(~~ 7; /.751 5S05 5505 /L.. O a752 o 22. " 75" 1 722 1 722'1754 404 0 iC'755 562: 5522 /.O'I;T0C 47 5 5 25 C' 5, 2) 5't. 57 2W.n m, 7 7 74757 2,7 C 2-0. 7' 0 0 04 C / 4 731 OCC.. /T i'>AT20 /?A'

C)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' E I -- +,, - +I - =I C~~~~~~~~~~~~) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ k — r% -4L, )L C) [I L. V. [-4f-: d': Q ~.P i -\ N -'12 2C - * C1' t Lf' Lr \ C r) C L N, (1`L~~~~~~~ c)Ctr-,~~c)~~~~)czc)()C —-— 4. —~~~~~~~~~~~~~ - Dk -L:-., —.. - C C C,, )' C..C f LP [' C - C — 4 1 C CU L,.> I 1U_ o~~~~~~~~~~~C [. — l:;-': ~ L L L.- L''\ r f_ Lf-'f" f.' ~' L —] >_ J r\L' r'~L -,t-~V V~t-,t~L ": L" V' >::-,,L t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,," I',~-~L1~ ~-.) -. "),-z -,'I"' ~ ~ <" "- _ -',1r".', "- " -,C,]i)-q u%<.:1 —C_) —,C]t,; — "u" t''-:; —,I < r r.'-c." —.]t-')- c,''': —,C],', r~.] _ ) ( _) C) C_ C, O.) s ) C..-~ ~ ~.-,.-4 ~. —,. —,']''! C J ~"].~.3 C. L'] C'.l r.')..~ -'.) t-"> r-.> ),.'9,).... <? "... < -.: -' <' u', u" is', Lr" u"' tls ~'-.c"'x' ~ ( ~ <.~ < <".CC._ ~) D 0 C;.,()C')~DC. _ C_' )'.)c')': _) D(. )~. _;C/ C (. _._,C.':3(. L)C:'~-:) _..)C.:.~()CC: t..~(3(: _'. _)<..;~: )C0.' xt.' r",trxL'. %L',L''~L~xL"'"xtr" t" f"~I',I~'~L'xL"~L'' fxLr r,'" f~IF,~' L"."~trxu-,L", L.U"' tU:,t.'' r, e", ~t' L L' ",U -,~,", xt, L',L"

0 cq; -L ~ ~ ~ 1 L:I c. a,,,..I~ -f.L. E- L].3 C I I —-, W CD c A A L...-. — dk~-~~~~~~~~~~~~~~~~~~~~~~~~i ~": O C *LL -1.2, 1;. v.-:C to t —e L:.~ ~ —i f C) C 7 C"] CA CA r -D C) C) N -'IT C) n r, CD:t- C-) C C j3 t C.t 3% C) C- 7-N I C-, JJ\ — - C, C t D ICC 2 t - LI C, I — t r- )&C - )- >' C ) t[l t ().-.( (I) (1-) C) C — (:)CC))C) C)C CCDCJC C) C D - - — 4 — 4 -— 4 --- -, — 4 A r- - 7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7~ C) C-) C C) C) CD C') C) Q I~~C~Z ~CgC) 3 ) ~>C~~ ~ C) -- -4 - - t - 4 -4 1 9 3r.9 *4 ~ r~) -~ E' r — -)z CLf-.,' C' ~ -:. D-! L-, (._) j Z C'. V _;,,'~ *-" <C ~- -. L'L.... L.I,,'\ L( kM U-\ \ U-; L'-. CV t —":,-N L\!q,', 1 — (} t%'. L —— \L A,'- C. L'I ---

,..- <:) t —.) N C) < - - e e. U*1 L, X

-, K,77 t"', 1.'.2 Cj~~~~~~~~~~~~~~q~ ~ ~ ~ ~~~. -.3 "j.' _ i —, _, C _ L — H I ['~ -' ~'' C),, "'-. 4_. _ —J C - r,, t:'' i C O' F._C C-) (2.-._;. L': f3.: [.' r-C " -'. I,, c- C. JJCI\ i _,, ICDI _ C D C C-, C.) t;r* c' *.'. " _'"' -.., -'7 [ -:.. <:'.:C[-.,cc(]:',., r',:- i I c.) L.) C ) I: — I C c.C " )C) -,IA(- I C. I c I C\ s. — C,_1"71 A c'i C.,'c.'.' l'..'C.-) "- I" C:,.' I- C L!- I~:C, -<.' VJ-i3 C 3 Q -~ L-'; Lr <P;-r t. ~.'N 1r. f-, te -; LO -,, ft- 3:'-,,' 3 C C _ 1 CX1 *. 9 r-"I — I-,-, i'.: " t.' L i ] r, - -=I.sz <vr->)* Ac-5 -, - _> D ) o z - z )<)cJr-cJ( c r-c <: i..- r-) r C r r- t ",,. c> — o.,]o0.'r- -'r-\ i-lt_ l - l< tu'r (",] U, t.,'. t! u-,] r~] C.r C', u.l u1u- u C'. C''. l ULU

123 O _ 7 r9E SI WsF vm n " %'X;77 I J; 1.i`752, 5 7 r7 J iT /0.., PI I. = 1 5 ITA~ 2/C'UI...UIL C0"1;"..D / C JSA:1 C1 DI0SLC 102 %S 1 1 h I. 2 = T7 0 1 C5 L I: 1 0 CFL LDl 10 LIC SFi 1C I1 CL [t- 1 0 IA I r 5 l7 7 I, J.7 LPOI / I 0 I 5?7 1 52.77 J' 1S7 7 /L 0 527 4 70 1 TL 55 17 DOA, C L /0A; L i' 5 ^'7- r V 1 GL 6 I A — i — %527 ) S 3C S IJ C "I 5300E 1755 T. 300 /,ic 1A 15 30 1... I'- DPA /IC IF C'',. "" 5C27 1'7 TAL /' A,, f4 577-'; r- C7 7 15 CrL D 301 1 27AE / OL 533'1 7 C rC' T3 3317 CA: C-'7I7 5c " 0' 5300 CoC C351 1? t (1 0:' 53?J2 I T D 5 323 101 T13T A ( O,;\ 7,

k J Yr. U~ _J r.,1 _; k l k. & k 1 \J1 l.n U.n V..',j,Ja 1. U- Ui j1 C( O( C(., *-J C~ 04 OJ t; C,-~ C,~ 0.4 O.~ C~ C,.' C, (.~ (~ (~ G., (.~ C~ ('.,,4 (.~ C~ C,.s (;J 0, C.~ C,,, (~, C:.~ C-. C... CC;0, CS4 ~ (9 CS (.;-J C~ C~ (', C;~ (< -. -- —. -. --, -. (,..,; L' O C. r- ('', C% < C,,.n k.. ~ kn cz ~ ~7,2.,J::..-c_.-,J:..-. C.,. (C.^ C. C,. C.t ) C.-1 [' -S,) ['C.' L'O —... c,,"~ k.;'.. C.~- [0L~ ~. —C 0.-.1,., ) ~..~L' — C.~; ~G. C,- O $ -,,lJ c,~ i — C~ [0 C'~..~~ (,,.~ kn,,b. ('.~ ~',.) 4- ~ C)S.,.. c> k.,q._-. C~ P,0 C~ OV.-,',.:,k[-"=''~ 6~ c C) -:.-: C.- C- (~j c" CD (, wn kj k J1 kn J- rl f.- cn o c- C0 S-, C.'t Ccl o o" 0 0 0 C - C'a kL4 4- ~- r' _..,. t;' O<! (..~ —,'':- s.'. C-) O [., - O Cc,' k.~, ~ C' C") C. t CJ ~1 n - ~ --. ~ ( C-)..c c) ~,.,( C. c c.' 4: ( C > -_1 r..,r -U1JJUlCC, c <C) 1. C C- wn s) -)CnCCJC\J1(A.CACC)C) — CV) -) r )(.i( Ar -i, 1ilcr U1: t-l -... CC5<OC~~~tnCDU'-){?C~~~~r>'COC ~ Cb A.N oJ < cowrco ~, o w~- tJ C3 < >C, - c~-JC. > esr.; ~') 1j "C) C_ _ -1 C') O C..) C_ U t-, — 1 kN - C. T,. t_ 2_. b C_ t C J.',! (.,) -.:-)< " " C-) C-':F ":-' O Z: _'". > C").... r>,,>. r i —t r- t_ t, C1 ~ ~ ~ ~; ~3:i'; O C;- t1 3) )7 ) tQ)).-1 -' t: z b - Q t V 1 rlrli C~ t-t1H Cc) I I,_ 5, --' t.r — -tC t 1.;-.3.. u _- r'1- -,' t' -I ut ~-" L [- t_ C,..'7) C_= }-' - "< ti' r 3 C -.'4 4: --- i~~H-I' - _.4 v _} t, 1: C -. hr-;2. L _' g- t1 r; tT,,1rj -;,, t v > 6 ff;' r r A - 56k r p > - <T' - a." I I~~C, ~.. ~ _,~. a.~ ~ ~~~~C (.f 4/ F ~ ~^ r It,;, r -' Z c o.4 _* t _ t, r.-. c.~~. F ^ ra~., I- ~~~~~~~~~~~~~~~~~..C r r- C t Cr, if'5,~~~~~~~~ —~ _,? J _& 3 c r~ cr rE C~ ~ ~ ~ 4 r'~ ~~i ~~~~~~ " 5 ~~~~~ t 5=r~~.

/'ri-i A~,r C(-:i~ /~,g C (~.,,i i(4. I-'L7fC, g::.,r4 / bt' C ~iP&rL~~ THiA''1/'1; tt<,,C P Th& J~w'L));}? (,c -C Z540 ~ C 51 /1 10 c~: 5401 3103 DCA,{LSE /SETS liP BASE TIAJLE;'.',<y,.: 7>-;At,A;b.: keF' -r+.3,iL 5402. 1103 TD AdS4L /UIJ i'ErF P..37 ALc4 tI., 54 403 1037 TAD 37 54.04 3ti 111 3DCA DI2CL; T 5405 511 DCA I DISC.iT / Ci', AL-.-. r.i,,',(,,. 540 1377 TAD (-37 5407 3111 DCA DISCIJ / DCI. "I. P" f. e4 -.,) 5410 31u 7 L_ C.;;1" (' 5412 1502 LO-L?, TA- I R:SE / ET ELF AIT 75513 7z550; GLA /3 IF rEF 5414 527 3 J:,'?2,,-,;,.-.,.,-,,.,, n"~-, 5415 11C4 TAD PLOCAT 51i15 3105 DOA PSIA.T-T /?-'W STAlF' T c (''F(ci'T-'.'T 5417 2111 DIS2, ISZ DISC T 5/C20 7 000 A., 5421 2 1 C0Zi ISZ LC AI:54. 21C3 1S7 SCTSE 5/2 13 T D I 5, A 5424 7 540C 2 CL / UL CF CUPi SEC T 5425 5217 j;;? I01? /i:G'C YET we C7, G-CrltL7 cJ-" 5425 1 10J TAD?TA I- /i Ai Cc,..c,:' 5427 7C 1 I I 5430 11 4 TAD PLOCAT 54 31 1 S C PA1iCSi 54 2 1I C TAD PA. JC T /l 1 T. IT.C t J t 3( S1 EC 5433 3502 0>~ I DIsLOC 5 34 Z 02 1 32 DISL OC Y I (.I,cj(.; C 5135 1110 TSAD CFLD /21 La D 54'3 3502 TCA I DIALOC; fir t4 {kJu (i-.1&i.L/7 54'37 2.102 IS5 DIELIC CI P.A; I 544C 11 5 TA P)SATT /FIXD AD>, r - - 0- 370cXS 544l1 71C CLL -TL 2 7 0T: 5 43 7 C I0 T PTL 5 444 7 C1 AL 544;5 7110?1 CLA CAT / ~T0VE T - CC..iL T,' A,,AA.r.#,-, 5 47 152 TA I DILSLO 549-i 1 3 00 r C 10 C/i..,,LC 5j 4A2 7 L " I L 5434 301 11/10 YT 545$ 71C0 CLL 7sTL 5457 7C00$ LL 5 4 13 7 C G L.::' L 54/12 7Il C ILA 5 44 17C C.'; I A I

126.' A. ~ G 5 1 53 141 0 TA D I I / /,'V Y _ 4:,' t. rx\ IL' L 54,23 3411 D CA-' I I' t- S1, L ni " 54.7 2112 I Z DISC 2C 3470 5 7 3D 5 ii.- 3 5471 5211 F 10 5.!'4 70 7 CLA I A 5473 l1 11 TAb 11 5474 3107 DCA CC*i'.3 /UPDA'1',; n',a*noLr /'c,, ~ 7 I P 2r ( 5 47 5 32 J* j: i? D C ONTT /S E IF DrI, / 5473 2104 AL LAD,! ILL PL OCAT 5477 210C3 It -. 350C0 111 IY52 DI'CNT 55 1 700 /' / T f.i',,.,,,' 5502 1 111 _.DXT-TIT, TA:'T /., iTr D.SCt i A~: j), 1~ PI', I;r L 55 C 77 4C S7A CLA 55 G. 5 2 1 2 J -;? LOO;PP /,, vc-/ 5505 1107 TAD CCFE,!D /.c,.,.,,.::n (.' it, ac~ v.: a,,C-.A T,..7; -i. 5503 7C12 5507 7G 1" l551C 7012..... 551 1 7 1 C 0 -'A i 351 2 7 -0i73.._ (3 7 / f rS 551 4 74C.. 5 5u J:' D.....) - " 7 O'I 5517 4i27 1> 2I aTAIE 3520 C0CC 0 /TC; FILL; TO'-' /.,;'k" 5521 0C000... C t-A2' L 0 /L 3a (; r,t 5522 00C1 1 5521' 0 0 5527 OC 7 C 2 O, 55?-i 175 TAD (7000 /;.0 CDF 2 IC TCim. A-n 2i.#4 0, U,, 552'- 1 75 TA;., (700C., /4*t-cC:v4 }v-' /" t — j'4; 5 5 221 I 553 11 0C T. A C_ JF706 / SCT'F'........Z 55331 DC I LI 7 T 0 5 21 1 C 1 i, C(75C 555( 1 5 35 C I C-IFLC / Si - 1,,2,; —.' 3- - E { o. 1 0 T -;'iL 55' r>Gi 7 ~ s., 1:3! " / A.A&n'~. ~ L,-b,11 i>i..t. 53 5 t: C 1 1. 553C 1C 14.7 C:' 3330 1 77 T. > > /: -- ='7,.-,o,,:_,. 551 11 TA7.'. e —~~~~~~~~~~~~~7'"

127.' *1 co 355 J. 1JCO ICOJ /2AZr / T-h, 3 53 1 7 7 i. T L T.I /,, 37 5 5i~. 77X / raIQ. /. -r. t _ - 7 ~,1 v7 7C 5 7'.,, I. 5'71 77 57 7. 7 7..7 5 57' 7? r1 c,)':, ~.',-.J.,-'-'~- 7IL,

128'-e /. i K L_ / S 1U? I_ L4, -' i P-/ a I,' 1 -'' I /,"',J.",.}J. / Ui II I *,,K; i!' I= J JiC 1 r c f i /f; t7'..2 —' G J I 7. 3 U D 0 C i C N' T 7 Ti' J:w C J U ~~~''1 i 3;C' 1-7,T.D / ~._,' 1'7.'/z.... ( 5210C 1iW7 TAD, (- 200 /PA'E 0 3511 334 DCA LVCNTTs,12 1 0 -'TA D I 10 5z1 911 DOA 1 C 501 I 1'ICI C(7 5,7 212 J!? * -5,A- 1 3:I 1 T7S 7Dt, (-5 00r /XP XG T r rc4 i t CJ f r C:5,3 r70D1 r'C %T 1 A 1 7 77 2 ( I2 j'::1 1- 4r lA I I 5'~1'11 11F I7 ) 1 X r,,-ll 5307 i v Al iCt1 11 o<t IX'.lC t',> II I r Vs, C t7':! 1 TC2^. (-1 0 "1 r 5 -, ) n -i /T: T 7 — I r T ) r/ 7 7. 7? 53-5Z3" 7 7.JJ C( /:,T';:; {>' I -,,. ]' j:."j 3(=A rlV Y Av 1 7.?, /.7 I IQ 1 9n - v-71 T- (1',, 7 -',. "1.: T-i I r;) S i -",, T -,.1~; t'|'.. -5 1 C' i 7 I. 1J ~~ ~~T 5 f u I: 5. 1,C 1 C_ S. "I?! ". VLClu.,,,-i..t k,, ~,. ~ 1 "'"' 5',C ": 1/-rT T"' {.,t:T~ -..~',:~4, (.o'

129 / L P4 C T / P L.- iTD' Ik.1T F TC / TZ-i:;IAhT'IT1. T O / C.L'" 1.2:'? L. Ii / "=" nr".On?" C,'.,-,. 5,'57 7I CC C l 1 / Trr1 iLc. )-(C7,i ) d5-J U 5' i. I.,->^ rs,) L/hh 55$11 5i 2 c 5,../ S C Jo / I' 15.TAs i..: I, T9 C' I Ts 5'C 1353 7TAC I I?PlI -, —-,,- K C 5335 t>1 LC 17. /2>;..'iL;, 3 7' 7 3 11 I i 5)370 1731 lT7 I?,,5C}'FT 5 7 1 f 7 3C PA CCZ T 5 7 7 7 C L n Ci 5 5715 7 7! 1'3:'U T / "':';';, JO 537'. C1C. 1 0':7 5 3 77''iC CL C. 5'570 1 71 5 /'~1 TADI':::ER % 5C:7 1V3-7 TAr7 (10A 5 7 7C C 3: 1 C' 5?C' t:.' 7,r,? TY -- 57I 7 17..t T I.TT,. 5702 133355 TA (-l1 R7r7 r 7, f5 7 0 1 1 I. i' 5,57 1 1 7 11'C.- ( 10 57V -,3 1.C 11'.57 1 ~C- 7": r,'5713 >ZIC C I 10 5717! C I i Ci.T S 7 " I? 1," 7 2 1515 - 572 2 I' 73 C I c' L 57237 3'A D 0 Ci. I 10 5.7> 1C1 7 TAP 10 57235 201 CUF 5,.7," ~ 5 J.'; 571 7 Ci35; C I TVC 5 731 00 C C C' 372 00 00, _,L_.T 5733 7C.. C LTY?: 0: 573 0CC: VC T'; r, C

130 57 7 777, 7?, 57 7. 7C3O0 57% 0 00 s 57 7 oC IC 5770 C200 5771 7 2~ 5772 0017 5773 0217 5 77' 1777 5775 220 rJ77, 7'( 5777 7777

131 I~. j - 1. /PATCiLZS FC,,Ci:':i.Ai7 LOAb1'"f V(C,) / COL: -30 0 32?.2/ 532,5 J~ P I.+I S2'>5 5"', - 5 1 3225 5202 RL~~Tli[;,323J 1 72'u 00 CLA /Ji-AD E.I i,.'iI TCA;lE 323 7000'CC I:, 7 70CC 0 I,3 / /4 47 3 4 7 7C000 NP 3450 7000?:O 0451 700. -3452 7200 CL, / 54 31'N453 4334 Lt;e I.+I 54 8, 37ZG LLO,.'"'.04 35 70 O.OA. 335 7200 CL A 3457 7C000, p' 4.70 7 0 0 34 71 7 C OC 00 o / 3S52 5S53 JC,'iP I.+1 353 0 4'20,C 1fvLEIBOR /'iJ;O,,lU IU. Ts AC / *7125 /TYPE FOUTI;E 7195 /i723 J";~ I.+1 712' 3-' CO r, TYD 71 7 70C / *7200 /DrOX T Kr:J I,;{Y / *725C /'~AIT 7:250 5 51 J;P I I+1 7:251 OOCC F~IrT C /CA: LLEF C0'01 1i'RE / x7492 / }.RF 742:?. 4'i;3 Jj;C I.+ 74 23 400 0 (A _ TI? T 7424' 5j21 Jl' I - /, 7 4i 5 4i 7454 77 777 777

, ——,. —., —.- CD O O.CZD CD O C'D O O CD O C..30 O CD O O _.rZ3..O CD C'D C'~ C"D O C).C'D C.") O C'b C) O C'~ O "qJ C.~ CD I.",3 [.,3 ['O DO DO i'x3 ['O DO ['~ ["O ix,.3 [',,) ["O [.,,.3 ["O ix,3 P,) ix3 t'.) ['O ['O DO D.3 ['O ['x3 DO DO DO DO DO t'O ix3 Lx3',on ~ OI ~.,.; l'O, —'.O., ~ ~..,~ ~'l ~% C,.~ ['0,-.' O'-~ ~~1 k.,q ~ C,~ [',0,-" O --— 10:'~,,.n ~ (~ [',), —- C~ —..J c, ~l..,_,-,, O..J ["l j.-... G%(.,'30 c:3,..=-. ~b,..~ c"3 c:~ ~ 0% ~J'~ O ~,.."z._ c.."~ ~..,'~.c:')',...,q c.,,~ ~') cD ~ ~% [',,7) c> O,.L:> C~ c,~ O C) ~;%- ~'~ C;;~ O ~'~ ['..3 ['C. o,j->,e.. l:'O i'D o.s:> ~ ~O[,3 o ~.~ — L'O [,3 c.3.,-.% [,3, c> O.~- DO c'> c3,..'~..~ ix3[Oo_ c~ ~ I."0 t"O o c)~ c'D Loq -...,1 o c30 cD6% c'D., oO ['0O} oOc-D,j1, —.- kJ~ o X.> C'~.~:- o O.~- _OO o c) (.~ o O,O ['C,~ C3' —- C,-~ [',3' —-- O c'3 0'5 t"O ~ O C,4, — ["3, —'- O, —~ ~-'O ~, —-.- k..r~ ~ o,z-"- [',3, — c> [O. —4 ["3, —' —..q73 [OIx3 c__'3, —-'=:: ~ ~:."3 [,3 c'~ 2 —.z'-> P.3 P') ~D,~ x>~DO C3 ~ Ix:) O c-).r..> LO O O 0'5,z'-:..POlXO o,.,% ~-. lX3 gO C3 ix,3 %1 =='~ C —q'.., ~ O O C.') L..n....-40 C') C'~ O c,.~ C:D C) r"3 [O',~q~ C) ~ C'D',,.~, —- ~ C..-D. ~"> O..~_e... O O ~> O O O CD C,,~ O O C7) G~ ~ tZ= ["0, —- O C.~ —'" ~ C.,.~ [',3, —- C"'0 C3 c.:3 [x3 ~ O (:,~ ~ l'O, —- O, —--, —-,-.- O t..n, — ~n O O ~> ['0, —.O_ [,0 -—,! [,,3, —- O C-s [7!:-:~: C-~ [-' [':3 o ",: r-' F'l U'~ %1 H'"q ":t O U) =.'~ "'-i I":1 r-' U'):Z>..,:: _ e.,O t'O c'D

r'(_\ C -- C\3 -,' CD CD L('] — ~ 0,_ — u C_ I —- r'5 r:.1 ko ~D CD CD L? CX? - L- 0 ~b, tr 0 C CD. O-r o 03 cl <\ ~ C-:'' x < <C. -- - C,] ~3V o -- c - - L - - L C' 0) c-.- c- -'-) - C ) CD -, _ - c'_ - -.'r C Lr -' -o (. c. -- - c.. o -- C o D- CD t- -c)'&(O (.) )n CDO C t(J - (J)C c D J C, c n CT: h c D C' X0 _. -, o L) - C',- -t _ -- C'x. C( o _ < v - 0O 0- C 0 C) C C C D) C) C D _ C c) CD C 0 C L) C) O) C) (CD ~% ~ S 4 _ _,| _.2 _ _ _ ~4-* _~ _ _ ~ _; _ -4 -" _ _ -i _I _~ _. _

CHAPTER 4 CPS FORTRAN LIBRARY The CPS FORTRAN Library is a collection of relocatable binary files into which the DEC FORTRAN library has been placed. These files were generated using PAPERBIN. The following are brief descriptions of the general support programs supplied by DEC as part of the FORTRAN-SABR package. Detailed information can be obtained from the FORTRAN manual or from the program listings..IOH Entry points: READ, WRITE, IOH This subroutine processes the format specifications used in input and output operations by FORTRAN. Support required:.FLOAT,. INTEGER,.ERROR,. UTILITY Space required: 13 octal pages. FLOAT Entry points: FAD, FSB, FMP, FDV, STO, FLOT, FLOAT, FIX, IFIX, IFAD, ISTO, CHS, CLEAR This subroutine does all floating point operations except absolute value which is done in the integer package,. INTEGER. Support required: -ERROR Space required: 6 octal pages 134

135. INTEGER Entry points: IREM, ABS, IABS, DIV, MPY, IRDSW This subroutine handles integer multiply and divide as well as some floating point operations. Support required:.ERROR, also oFLOAT if ABS is used Space required: 2 octal pages. UTILITY Entry points: OPEN, CKIO, TTYIN, TTYOUT, HSIN, HSOUT, EXIT This subroutine provides the necessary I/O calls to the actual devices. It also provides the system exit. Support required:. FLOAT, of all things Space required: 1 octal page E RROR Entry points: SETERR, CLRERR, ERROR This subroutine handles the run time error messages. Support required:. IOH Space required: 2 octal pages. SUBSC Entry points: SUBSC This subroutine calculates addresses for subscripted FORTRAN variables. Support required:.INTEGER Space required: 1 page

136 POWERS Entry points: IIPOW, IFPOW, FIPOW, FFPOW, EXP, ALOG This subroutine handles exponentiation. Support required:. FLOAT,.INTEGER,. ERROR Space required: 4 octal pages Note: EXP may overflow (unfortunately) for large negative arguments. SQRT Entry points: SQRT This subroutine finds floating point square roots. Support required:.ERROR,.FLOAT Space required: 1 page TRIG Entry points: SIN, COS, TAN This subroutine calculates the TRIG functions for radian arguments. Support required:.ERROR,.FLOAT Space required: 2 octal pages ATAN Entry points: ATAN This subroutine finds the principal value in radians. Support required:.ERROR,.FLOAT Space required: 2 octal pages

APPENDIX A FITAPE This appendix contains the listing of the one page tape routine used in the *FORTRAN and *SABR support code. 137

MACR08 ASSEMBLER (AN229) PAGE 01 1 CSUM=RTAP E INTS=61 47 IAAC=61 71 IACB=61 61 ICON=61i 41 / /TAPE ROUTINE FOR lrEADING /AND WRITING SIZE 128 3 LOCKS ON /THE LINC 8 /THIS IS TO REPLACE THE ONE / I STOLE FIROM DEC *400 0400 0000 RTAPE, 0 0 401 7300 CLA CLL 0402 1200 TAD RTAPE /MOVE POINTER 0403 3206 DCA WTAPE 0404 1367 TAD M4000 /TO FORCE FUNCT - 3 0405 5210 jlP INTO 0406 0000 W4TAP E, 0 0407 7300 CLA CLL 0410 1370 INTO, TAD C4003 /WRITE WITH SWITCH 0411 3371 DCA FUNCT 0412 1606 TAD I WTAPE /BLOCK NUMBER 0413 3372 DCA BLN 0414 2206 ISZ WT APE 0415 1606 TAD I WTAPE /NUMS OF BLOCKS 0416 7041 CIA 0417 3373 DCA NUMB 0420 2206 ISZ WTAPE 0421 1606 TAD I WTAPE /ONIT 0422 7112 RTR CLL /PUT INTO BIT 0 0423 1313 TAD C2 /TO SET SEARCH 0424 3374 DCA iJNI T 0 425 2206 ISE WTAPE 0426 1606 TAD I WTAPE /CORE LOC 0 427 3375 OCA LOC 0430 2376 ISZ CNTR /TIMEOUT TO ALLOW TAPE 0431 5226 JMP.-3 /DRIVE TO SETTLE DOWN 0432 2206 ISZ WTAPE 0433 7120 STL /LINC = 1, FIRST PASS 0434 2372 SERCHA, ISZ SLN /1'S COMPL ON TAPE 0435 3200 SERCHBS DOA CSUM /ZERO CHECK SUiM 0436 1316 TAD C7600 0437 3376 DCA CNTR /' JORD COUNT 0440 1374 TAD UNIT /NOW SET SERCH 0441 6141 ICON 0442 7201 CLA IAC ITO START MOTION SACK WARDS 0443 7430 SZL /SEE IF MOVING 0444 6141 ICON 0445 1341 TAD C6 /TO CLEAR IN TS

PAGE 02 139 0446 6141 B, ICON 0447 4355 A, JMS WAIT /FOR BLK INT 0450 7500 SMA /ONLY NEG VALI D 0451 7120 STL /POS WANT FWD FOR BLK 0 0452 1372 TAD BLN 0 453 7650 SNA CLA /L=l1 WANT F WD 0454 5270 JMP THERE /ON 3LOCK 0455 6147 INTS /WANT MO10 0456 7010 RAR /MO TO L. L TO 3IT 0 0457 0367 AND M4000 0 460 7460 SEA SNL 0461 5247 JMP A /W'ANT FORE, GOT FORE 0462 7020 CML 0463 7520 SNL SMA 0464 5247 JMiVP A /BACK WARDS 0465 6141 ICON /STOP 0466 7001 IAC /3IT 0 IS OK( HERE 0467 52 46 JMP B /CHANGE MOTION 0470 6147 THEREv INTS /WANT Ml 0471 7012 RTR 0 472 7620 SNL CLA /ON AND FOREW 0473 5247 JMP A /ON AND GOING BACK, REVERSE 0474 1371 TAD FUNCT 0475 6141 ICON /SET 3LOCK MODE 0 476 7500 SMA /S IF TO WRITE 0477 5330 JMP ROATA 0500 1313 TAD -C2 /TO GET 5 0501 61 41 ICON /'TURN WRITERS ON 0502 7200 WRI TE, CLA 0503 6211 CDF 10 0504 1775 TAD I LOC 0505 6211 CDF 10 0506 6161 IACS /AC TO LINC REG 0507 1200 TAD CSJM 0510 3200 DCA CSUM 0511 4355 JMS WAIT /PUT IT OUT 0512 2375 ISZ LOC 0513 0002 C2, 2 /STORAGE, THIS HAS NO EFFECT 0514 2376 ISZ CNTR /DONE? 0515 5302 JMP WRITE /NO 0 516 7600 C7600, 7600 /ALSO A CLA 0517 1200 TAD CSUM 0520 6161 IAC3 /lkRITE CHECK SUM 0521 4355 JM S'WAI T 0 522 4355 JMS WAIT /ALLOW ACTUAL WRITE OF CS 0523 7300 WAI T2P CLA CLL 0 524 2373 ISZ NUMB1: /ALL BLOCKIS DONE? 0525 5234 JMP SERCHA /NO 0526 6141 ICON /STOP 0 527 5606 JMP I,WTAPE /GO HO1ME 0530 4355 RUATA,,JiMS WAIT /GUARD 0531 4355 RDTA, JMS WAIT O 532 1200 TAD CSUM 0533 3200 DCA CSUM O0534 6171 IAAC /GET AGAINl

PAGE 03 140 0535 6211 CDF 10 0 536 37715 )CA I LOC /PUT IN CORE 0537 6211 COF 10 0 540 2375 ISZ LOC 0541 0006 C6, 6 /STORAGE, NO EFFECT 0542 2376 ISZ CNTR 0543 5331 JMP Ri)TA /CONTINUE 0544 4355 JMS WAIT /CSUM 0545 7041 CIA 0546 1200 TAD CSU M 0547 7650 SNA CLA /MAYB3E BAD 0550 5323 JMP WAIT2 /THIS IS OK 0551 1316 TAD C7600 0552 1375 TAD LOC /FIX S3ACK 0553 3375 DCA LOC 0 554 5235 JMP SERCHB /TRY AGAIN 0555 0000 WAI T 0 0556 7300 WI, CLA CLL 0557 6147 C7, INTS 0560 7700 SMA CLA /TAPE? 0561 5356 JHP WI 0562 1357 TAD C7 0563 6141 ICON /CLEAR INTS 0564 7300 CLA CLL 0565 6171 IAAC /GET FROM TAPE 0566 5755 JMP I -WAIT 0567 4000 M400'0, 4000 0570 4003 C4003, 4003 0 571 0000 FUNCT, 0 0 572 0000 E LN, 0 0 573 0000 NUJMB,3 0 0574 0000 U.N1IT, 0 0575 0000 LOC, 0 0576 0000 CNTR, 0

Security Classification DOCUMENT CONTROL DATA - R&D (Security clasmificatlon of title, body of abstract and indexing annotation must be entered when the overall report is cla ilfied) 1. ORIGINATING ACTIVITY (Corporate author) 2a. REPORT SECURITY C LASSIFICATION Cooley Electronics Laboratory UNCLASSIFIED The University of Michigan 2b GRouP Ann Arbor; Michigann 3. REPORT TITLE CPS Program Logic Manual Volume III -- CPS 8-K FORTRAN PACKAGE 4. DESCRIPTIVE NOTES (Type of report and inclusive datee) Technical Memorandum No. 102-III - 03674-23-M December 1969 S. AUTHOR(S) (Last name. first name, initial) Cederquist, G. N. and Metzger, K. 6. REPO RT DATE 7a. TOTAL NO. OF PAGES 7b. NO. OF REFS December 1969 148 es. CONTRACT OR GRANT NO. 9s. ORIGINATOR'S REPORT NUMBER(S) Nonr-1224(36) TM102-III b. PROJECT NO. NR187-200 C. s. OTH E R Rr EPORT NO(S) (Any other numbere that may be assigned this report) d. 03674-23-M O0. A VA IL ABILITY/LIMITATION NOTICES Reproduction in whole or in part is permitted for any purpose of the U. S. Government. 11. SUPPLEMENTARY NOTES "12- $SPI$ORING N.TARY ATIVITY iIlce of waval Research Department of the Navy Washington, D.C. 20360 13. ABSTRACT CPS iS a generalized programming and file management system written for use on the PDP-8 processor of Digital Equipment Corporation's LINC-8 computer. A minimum memory size of 8192 words is required. Extensive use is made of the two tape units present on every LINC-8 for both file storage and system residence. The four volumes entitled CPS System Architecture and Conventions, CPS Basic Programming Package, CPS 8-K FORTRAN Package, and CPS System Utility Programs were written in order to take a snapshot of CPS at one point in its continuing development. This version of CPS is considered to be a first generation system; successive versions are on the drawing boards and internally resemble their parent less and less every day. DD 1JAN64 1473 Security Classification

Security classification 14. LINK A LINK e LINK C KEY WORDS ROLE WT ROLE WT ROLE wut Digital Computer Programming System PDP-8 LINC-8l INSTRUCTIONS 1. ORIGINATING ACTIVITY: Enter the name and address imposed by security classification, using standard statements of the contractor, subcontractor, grantee, Department of De- such as: fence activity or other organization (corporate author) issuing (1) e'Qualified requesters may obtain copies of this the report. report from DDC " 3, REPORT SECURITY CLASSIFICATIOT: Enter the oveen 2...REPORT SECUTY CLASSIFICATION: Enter the. over- (2) "Foreign announcement and dissemination of this all security classification of the report. Indic ate whether "Restricted Data" is included. Marking is to be in accord report by DDC is not authorized." once with appropriate security regulations. (3) "U. S. Government agencies may obtain copies of this report directly from DDC. Other qualified DDC 2b. GROUP: Automatic downgrading is specified in DoD Di- users shall request through rective 5200. 10 and Armed Forces Industrial Manual. Enter the group number. Also, when applicable, show that optional markings have been used for Group 3 and Group 4 as author- (4) "U. S. military agencies may obtain copies of this ized. report directly from DDC Other qualified users 3. REPORT TITLE: Enter the complete report title in all shall request through capital letters. Titles in all cases should be unclassified. If a meaningful title cannot be selected without classification, show title classification in all capitals in parenthesis (5) "All distribution of this report is controlled. Qualimmediately following the title. ified DDC users shall request through 4. DESCRIPTIVE NOTES: If appropriate, enter the type of __._, report, e.g., interim, progress, summary, annual, or final, If the report has been furnished to the Office of Technical Give the inclusive dates when a specific reporting period is Seryices, Department of Commerce, for sale to the public, indicovered. cate this fact and enter the price, if known. 5. AUTHOR(S): Enter the name(s) of author(s) as shown on 11. SUPPLEMENTARY NOTES: Use for additional explanaor in the report. Enter last name, first name, middle initial. tory notes. If military, show rank and branch of service. The name of the principal au.thor is an absolute minimum requirement, 12. SPONSORING MILITARY ACTIVITY: Enter the name of the departmental project office or laboratory sponsoring (pay6. REPORT DATE. Enter the date of the report as day, ing for) the research and development. Include address. month, year; or month, year. If more than one date appears on the report, use date of publication. 13. ABSTRACT: Enter an abstract giving a brief and factual summary of the document indicative of the report, even though 7a. TOTAL NUMBER pOF PAGES: The total page count it may also appear elsewhere in the body of the technical reshould follow normal pagination procedures, i.e,, enter the port. If additional space is required, a continuation sheet shall number of pages containing information be attached. 7b. INIUMtBER OF REFERENCES: Enter the total number of It is highly desirable that the abstract of classified reports references cited in the report. be unclassified. Each paragraph of the abstract shall end with 8a. CONTRACT OR GRANT NUMBER: If appropriate, enter an indication of the military security classification of the inthe applicable number of the contract or grant under which formation in the paragraph, represented as (TS), (S). (C). or (U) the report was written There is no limitation on the length of the abstract. How8b, 8c, & 8d. PROJECT NUMBER: Enter the appropriate ever, the suggested length is from 150 to 225 words. military department identification, such as project number, 14. KEY WORDS: Key words are technically meaningful terms subproject number, system numbers, task number, etc. or short phrases that characterize a report and may be used as 9a. ORIGINATOR'S REPORT NUMBER(S): Enter the offi- index entries for cataloging the report. Key words must be cial report number by which the document will be identified selected so that no security classification is required. Identiand controlled by the originating activity. This number must fiers, such as equipment model designation, trade name, military be unique to this report. project code name, geographic location, may be used as key 9b. OTHER REPORT NUMBER(S): If the report has been words but will be followed by an indication of technical con-, ay or r t n s text. The assignment of links, rules, and weights is optional. assigned any other repcrt numbers (either by the oridinafor E or by the sponsor), also enter this number(s). 10, AVAILABILITY/LIMITATION NOTICES: Enter any limitations on further dissemination of the report, other than those Security Classification

UNIVERSITY OF MICHIGAN 390III1 5 II 02I 0lii 6 81111111 3 9015 02086 6268