Technical Memorandum No. 102-IV 03674 -23-M CPS PROGRAM LOGIC MANUAL Volume IV CPS SYSTEM UTILITY PROGRAMS b. *?.d' G. N. Cederquist.;K Me-zger Approved by:.'_. for, COOLEY ELECTRONICS LABORATORY Department of Electrical Engineering The University of Michigan Ann Arbor, Michigan Contract No. Nonr-1224(36) NR187-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

str id~

PRE FACE TO THE SERIES 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

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

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. G. Cederquist K. Metzger Ann Arbor, Michigan December 1969

TABLE OF CONTENTS Page PREFACE TO THE SERIES ii PREFACE TO VOLUME 4 vii CHAPTER 1. FILE COPY I Listing 2 CHAPTER 2. *MARKP8 10 Listing 11 CHAPTER 3. PAPE RBIN 13 Instructions 1 3 Listing 15 CHAPTER 4. *TAPCOPY 22 Instructions 22 Comments 24 Listing 26 CHAPTER 5. ONE PAGE TAPE ROUTINES 38 PAGER 38 Data Field Modifications 38 Tape Format Modifications 39 Calling Sequence 39 Notes 40 Listing 41 FITAPE 44 Listing 45 vi

PRE FACE TO VOLUME 4 This volume contains the user descriptions and program listings of four CPS utility programs and two LINC-tape read/write routines. vii

CHAPTER 1 FILE COPY FILECOPY may be used to copy a symbolic or binary file from one set of CPS tapes to another. It is an interactive program run completely from the 33ASR Teletype. When the file copying process is complete, the copied file will reside in either -S or -B depending upon the type of file copies - symbolic or binary respectively. The user may then save the copy into a permanent file using the SAVE command in CPS.

oi 2 L. V# l L r- Nk Z v PAGE 01 2 /CPS FILE -r[ANS.FE PrOG,~tM /'WILL f TASFFEtt.A FILE FROivM.A CP FILE'rAPE /TO 1'HE iWO.KING,I AE OF fH SAMEt TYPE OF /FILE frPE; Ei.G,,p S Yi4ULC FLILS.ARE 1[rANSFSE<R') /FiiOM rHE SOLCRc TArPE HIH /ILIL B E MOiUNTED /ON 0Rfti.E I OiqfO I'HE bY.4t0LIC J0:,iK1IN1.AtiEA OF /UHE USE<'S SYSI~5[>M 5YMtOLIC FILE TAPE WHICiH /IS MOJUNrTE) 0J O,~I/vE ZEriO. THE COPlEh: /SE'S'THE JWORKING AAEA KJPAI'IN KEY AND /PANRIAMtEf:ES TO CAU SjE Ti'HE CONTEN rsI OF THE /SIN< FILE raPE Vroc; fo ~3 UP9.ATEO 4L H\EN /IT INVOKES CPS UPON COMPLEfIONi OF THE COPY. /RofINE UOSES I OCS3 *2000 2000 7300 CLA CLL 2001 4442 CALL iESEf 2002 4447 RoiRORPN 2003 4 455 SS-EA:Cl /R EWIND UNI-T 0 2004 003 5 UNI 0T 5 2005 3106 Oi)CA.WFLG 2'006 4777 GErYPE. JMS i'asI 2007 4 43 TEXT; 7# 2010 0317 CO 2011 2031 PY;2012 4023 S 2013 3115 YM 2014 0240 t 201:5 1722 0R 2016 4002 d 2017 1116 IN 2020 4006 F 2021 1114 IL 2022 0577 E? 2023 4050 S 2024 2340 S;2025 1'722 0 i 2026 4002 8 2027 5172 ): 2030 4030; 2031 4451 YP P, RDR FAG 2032 7410 SKP 2033 5253 JI.lrM GjO' f[Y 2034 4236 JiS r<E41 2035 52.31 JMP G i (P 2036 0030 Rt41, 0) 2037 1106 TAi RiJ1FLGL 2040 7640 SA CLA 2041 5636 EX I T RE,.il 2042 6147 IN TS 2043 7312 HTR 2044 7710 S9a CLA 2045 5636 JMP I it E1I

PAGE 02 2046 72240 SfrA 2047 3106 OCA,<W1FLG 20 50 4455 SEAIRCA 2051 4035 UNI T1 5 2052 5636 EXIT REXI1 2053 0376 GOTTYP, AND (177 2054 1375 [f0A (200 2055 3101 OGA C.rAar 2056 1101 T.AD CHAR 2057 4453 P RPd r 2060 1101 TAO CHAR 2061 1374 TAD (-302 2062 7450 SNA 2063 5270 JMP L3 /SOURJCE TAPE WILL BE 0ON UNITr 0 a)64 1373 I'A L) (-21 2065 7640 SZA GLA 2066 5206 JMP GETYPE /dAD AN 54ER 2067 1372 TAD) (4210 /SOUClE rAPE ON UNITr 1 /412.0+1 70 (SEE OCTLC+6) = 4600, UJ&dL( FO)X VTOCO 2070 3103 3, L)CA STYPE 2071 4777 JMS MESAGI 2072 4543 T X T; 7%# 2073 1517 MO 2074 2516 ON 2075 2440 T 2076 2317 SO 2077 2522 Uri 2100 0305 CE 2101 4036 F 2102 111 4 IL 2103 0540 E 2104 2 4,1 TA 2105 2005 PE 2106 4017 0 2107 1640 N 2110 2516 UN 2111 1124 IT 2112 4000; 2113 4236 JdiS rtiEW1 211 4 1103 TAD STYPE 211 5 7640 SZA CLA 2116 7001 l.AG 2117 1371 fAL) (260 2120 4453 PTr'P iUfi 2121 4777 JMS MESAGI 2122 5440 T XT;., 2123 1011 HI 2124 2440 r 2125 0322 CR 2126 2414 TL 2127 5503 -C 2 1 30 0000; 2131 4453 GCTLC,,DJ,0GET 2132 0376 AND (177 2133 1375 TA) (200 /CONVRT TO t )C ASCiI

PAGE 03 2134 1370 TAD (-203 2135 7640 SZA GLA 2136 5271 JiP d+l 2137 4453 PrTtPUT 2140 1103 LA) STYE 21 41 1367 TAO ( 1 70 2142 3344 OCA VTOCLOC 2143 4445 -OS,TAP 2144 0000 V roCLOC, 0O 2145 4010 FL1U 10 2146 4000 4000 2147 5766 JMP o&7600+200 2166 2200 PAGE 2167 0170 21 7 77575 2171 0260 2172 4210 2173 7757 2174 7476 2175 0200 2176 0177 2177 3000 2200 4777 GETFN, J1S MESAGI 2201 4543 TEXT;%/ 2202 0711 GI 2203 2605 VE 2204 4006 F 2205 1114 IL 2206 0540 c 2207 1601'NA 2210 1 505 ME 2211 4027 4 2212 1124 IT 2213 1040 H 2214 0140 A 2215 2422 TtR 2216 0111 41 2217 1411 LI 2220 1607 \iS 2221 4002 3 2222 1401 LA 2223 1613 >NJ( 2224 7240: 2225 0000; 2226 1376 TAD (27 2227 3010 OCA 10 2230 4450 GLOOPP ~ROROET 2231 0375 AqD (177 2232 1374 TAO (200 2233 3101 OCA CGHA,-. 2234 1101 i'A CH A< 2235 4453 P T r JT 2236 1101 Tr:A CHAR 2237 1373 TAd) (-al5 2240 7650 5N4A CLA

PAGE 04 2241 5247 JMP GO F F 2242 1101 -fAD CHAt< 2243 6211 CuF 10 2244 3410 COA 10 2245 6201 CPF 2246 5230 J;..P GLOOP 2247 1372 GrFN.'FAD (21'2 2250 4453 PTrPUT 2251 1371 TAL) (10 2252 6212 CIF 10 2253 47710 JmS COiMPRE1iS 2254 00:30 30 /SOirCE 2255 0020 20 /SINK 2256 6211 GCF 10 /iN FLO 1 2257 7201 CLA IAC 2260 6211 CDF 10 2261 3767 OCA I (O /SET VTOC FORi SEAtRCH 2262 6201 CDF 2263 4444 TPW.AIT /4AIT TIL V IOCG IS IN 2264 6212 CIF 10 2265 4766 J'4I S RHVT0C 2266 5301 J'1P FFNO 2267 4777 J4S' ESAI3 2270 0611 TEXT;FI 2271 1405 LE 2272 4016 N 2273 1724 0 2274 4006 F 2275 1725 00 2276 1 604 Ni0 2 277 0000; 2300 5200 JiP GEi'FN 2301 1365 FFNiJ, tAD (3 /Pi' TO FILr' INFO 2302 3010 OCA 10 2303 1 103 rA STYPE 2304 7650 9SNA CLA 2305 1365 TAD (3 2306 1364 TAD (7764 2307 3011 OCA A 11 2310 6211 COF 10 2311 1410 TAO I 10 2312 3100 OCA LK NO0 2313 7001 IAC 2314 3411 OCA4 I 11 2315 1410 TAO I 10 2316 0363 AND (377 2317 3104 O)CA 3LKi(LEFT 2320 1 1;4' TAO 31,KSLEFT 2321 3411 uCA I 11 2322 1410 FAD I 10 2323 3411 DCA I 11 2324 6201 COF 2325 1 103 ra jsrYPt 2326 76)50 SNA CLA 232 7 7340) SrEL CLQA -RA

PAGE 0 5 2330 7031 IAC 2331 3762 UCA KTPr3LN 2332 1100 TA ) EBLKNO 2333 7104 CLL RAL 2334 70)30 C ML RAt: 2335 3761 OCA ETPdLN 2336 1104 GCP'Y, TAD 3LKSLEFT 2337 1360 TAD (-40 2340 1700 SMA CLA 2341 5344 JMP.+3 2342 1104 TAD 8LKSLEFT 2343 7410 SKP 2344 1357 TAD (40 2345 3105 UCA N3LKS 2346 1 105 TAD NJ8LKS 2347 1356 TAD (FLD1 2350 3755 OCA EiLKS 2351 5754 JMP o &7600+200 2354 2400 PAGE 2355 2405 2356 4000 2357 0040 2360 7740 2361 2404 2362 2410 2363 0377 2364 7764 2365 0003 2366 1000 2367 0000 2370 0400 2371 0010 2372 0212 2373 7563 2374 0200 2375 0177 2376 0027 2377 3000 2 400 120 5'TAD E8LK$a 2401 1377 TAO (CHECK( 2402 3211 DCA ~BLKS 2403 4445 R O rAP 2404 0000 E TPL.3 L, 0 2 405 0000 EBLKS, 0 2406 0000 0 /LOCJ 2 40 7 4446 W ST.AP 2 410 0000 K TrPLN, 0 2411 0000 KLLKS 0J 2412 0000 0 /LOCN 2 413 1204 r AD [PdLN 2414 1105 TAO dt3LKS 2 415 3204 OCA KT? dLJ 2 41 6 12,10.g Kf ~TBLN 2 417 1105 TAO Jd LK.5 2 420 3210 OCR K )FPdL,'

PAGE 06 2421 1105 rAo NJJLKS 2422 7041 CIA 2 423 1104 TAD 3LKSLEFT 2424 7450 S i.A 2 425 S 230 Jvi? +3 2426 3104 DCA 3LKSLEFT 2427 5776 JlP COPY 2430 4775 JMS MESAGI 2431 2710 TEXT; JH 2432 0516 EiN 2433 4024 r 2434 1005 HE 2 43 5 400 4 0 2436 2211 RI 2437 2605 VE 2440 4000; 2441 1025 TAD LTON 2442 7650 SNA CL.A 2443 4774 JiS REW30UO 2444 4775 J'S,.1ESA3I 2445 2324 TEXT;ST'2 446 1 720 OP 2447 2354 S. 2450 4022 i 2451 0515 ElNM1 2452 1 725 Ou 2453 1624 NT 2454 4025 u 2455 1611 NI 2456 2440 T 2457 0000; 2460 1103 TAD STYPE 2461 7640 SZA CLA 2462 7001 I.AC 2463 1373 TAO (260 2 464 4453 PTiRPJT 2465 1025 TAD LTON 2466 7650 SNA CLA 2467 4774 JMS REWSOIJ 2470 4775 J-MS NMESAGI 2471 4 l 023 TEXT; S 2472 3123 YS 2473 2405 FE 2474 1540 m 2475 2401 rA 2476 2005 PE 2477 5645.% 2500 4327 #W 2 501 1005 lHE 2 502 1640 IN 2 503 041 7 0) 2504 1605 NJE 2505 5440 9 2506 1011 HI 2507'2440 r

PAGE 07 2510 0324 cr 2511 221 4 RL 2 51 2 5503 -G 2 51 3 5600 o; 2 51 4 4444 fP WA I T 2515 4774 JiiS RiEWSOd 2516 6147 INI'S 2 517 7012 RiTR 2520 7710 SPA CLA 2521 5316 JMP.-3 2522 1772 TAD VTOCLOC 2 523 700 4.<AL 2 524 7030 Ci'1L RAR 2 52 5 332 7 DCA. +2 2 526 4455 SEARCH 2 527 0000 0000 2 530 4450 CTLC, RO 3R.ET 2531 0371 ANi) (177 2532 1370 TAD (200 2533 3101 OCA CHAR 2534 1101 TAD CHAR 2 535 4453 P T RPU r 2536 1101 I'AD CHAR 2537 1367 TAD (-203 2540 7640 SZA CLA 2 541 5330 JMP CTLC 2542 4452.tDROCLO 2543 1366 TAD (7773 /INSERT UPDATE KEY 2544 3010 )CA 10 2545 6211 CDF 10 2546 1365 TAD (-7402 2547 3410'OCA I 10 2550 7 2 40 STA 2551 3410 DCA I 10 2552 7001 IAGC 2553 3410 OCA I 10 2554 1364 FAD (HLFr 2555 3410 OCA I 10 2556 6201 COF 2 557 4454 PT',iCLO 2 560 6002 IOF 2561 5763 JMP 7600 2563 7600 PAGE 2 564 7402 2565 0376 2566 7773 2567 7575 2570 0200 2571 0177 2572 21 44 2573 0260I 2574 2630 2575 300i)0 2576 2336 2 S77 2000

PAGE 08 2600 O0oU E W O 0, 0 2 601 1777 TAD ETPi3LI, 2602 7104 CLL HAL 2603 7210 CLA Aii 2 60 4 3206 L)CA. +2 2605 4455 SEARiCH 2606 0000 0000 2607 5600 EXIT iREvJSOU 2777 2404 PAGE *100 0100 0000 E3LKNO, 0 0101 0000 CHAiR, 0 0102 0000 COIUNi', 0 0103 0000 STYPE, 0 010 4 000i0 BLKSLEF Tv 0 0105 0000 NLKS. 0 0106 0000 1RWI FLGU 0 PAGE MESAGI =3000 COMP, ESS= 400 SRCHV TOC= 1000

CHAPTER 2 * MARKP8 *MARKP8 is a tape marking program which was generated by overlaying the program MARKL8 with a program called XMARK, available from DECUS as DECUS number L-32. XMARK was modified before making the overlay so that * MARKP8 marks tapes using 20008 blocks containing 2008 words apiece. *MARKP8 is completely interactive and may be run entirely from the LINC display and the 33ASR keyboard. It is invoked from CPS by the command RUN *MARKP8 To return to CPS after marking a tape, be certain that both CPS system tapes are mounted, and then load address 7600 into the program counter and press START. Note that CPS tapes must be marked using *MARKP8. 10

NOV 06 1968 11 XMARK P1 of 2 /XVMItIK - MO.DI FICATION S TO MAIAKL8 TO /MARK PDP-8 PIIOC!'A MINGC SYSTEM TAPES IN 2000(OCTAL) /BLOCKS OF 128(DEC I AL) COi1{)S APIECE. TH I S /PROCRAM MODI F IEiD f01 CEL USE t3Y JERRY CEDERQUIST /FROM DECUS L-32. 6 NO VEVBER, 1968 *2000 START, CLA CLL TAD C10 ICON /SELECT LINC IAC /-DESELECT'TO CLEAR ALL FF' S ICON TAD M1 /AND NO%; RESELECT ICON TAD C23 /SET LINC P EGC TO 23 - NOTE THAT /THIS LAST LINE.AS;RONG IN DECUS L-320 I SSP JMP I o+1 /CO TO PROCOFOP TO START LINC 313 C10, 10 C23, 23 Ml, -1 / /MODIFICATIONS TO PROGOFOF *1 124 TAD C1600 /PATCH F OR PROPER ADDR REF DCA 23 JMiS I 1 175 JMP I 1123 C1600, 1600 *1166 7600 /CHANCE ~400 TO -200 FOR SMALLER BLOCIKS *1170 1777 /CHANCE MASK 777 TO 1777 F0RH LARGER BN'S /MOD I FICATIONS TO LINC PhiOGRA M PART OF MARKL8 *40o3 6036 /JUMP AROUN-:D LINC TEST *4042 1577 /PATTERNW CODE ADDRESS -1 *4052 0000 /B13 IS ALL THAT IS NECESSARY *4065 2000 /FIN.AL iBN + 1 *4115 2000 /ITT r3 *4122 1577 /SAME AS *4042 /DELETE THE CG-UIDE tiETURiN BIT *4210 0000 /HLT

6210 /JMP.-1 *41174 12 NOV 06 19Sc 7774 /ONE LESS LINE IN GOOD TAPE DISPLAY XMARK /CHANGE THE COOD TAPE MESSAC:E P2 of 2 *4314 1246 4724 4547 1402 0014 4742 1440 2445 3612 2441 4247 3330 4514 4724 4330 1277 / /MODIFICATION TO PDP-8 PART OF MARKL8 / *4536 7614 /2O0 LESS DATA MARKS PER BLOCK *4541 5757 /2000 BLOCKS PER TAPE s

CHAPTER 3 PAPERBIN This program reads binary paper tapes into CPS from either the LINC ASR-33 or from any remote 8-level Teletype through the data phone. The binary paper tape is read into the binary working area -B and can be saved in a file using the CPS SAVE command. Instructions To load and start PAPERBIN use the command RUN PAPERBIN The program is self starting and will type out BINARY TO CPS R=REL A=ABS MODE = If a SABR produced binary paper tape is to be read, type "R" followed by a carriage return (CR). If an absolute binary paper tape is to be read (such as produced by PAL-III or MACRO-8), type "A" followed by a (CR). When PAPERBIN is ready to start reading in the binary paper tape the message 13

14 START READER will be typed. This is the time to turn on the paper tape reader, not before! The program ignores leader code (200 octal) and also throws away the first character read in. Always start reading the paper tape in the leader section. The program terminates when 3 trailer (also 200 octal) frames have been read. The binary working area then contains a copy of the information on the paper tape properly formatted for use by the CPS loaders. CPS is automatically reloaded after the comment DONE. RETURNING TO CPS. is typed. Turn off the paper tape reader when this message appears. Once back in CPS the binary can be saved using the command SAVE - B FNAME where FNAME is a file name chosen by the user.

MACRO8 ASSEMBLER (AN229) 15 PAGE 01 /BINARY TO CPS UTILITY /USES IOCS3 / *2000 / 2000 7300 CLA CLL 2001 4442 CALL RESET /INIT I-0 2002 4445 RDSTAP /ADVANCE TAPE TO BLK 1 2003 4001 4001 2004 2001 CHECK 1 2005 7200 7200 2006 1342 REDO, TAD MWHICH /ABS OR REL? 2007 4777 JMS MESAGE 2010 4447 RDROPN /OPEN READER 2011 4450 RED02, RDRGET /SEE HWAT HE WANTS 2012 0376 AND (177 2013 1375 TAD (200 2014 3334 DCA TEMP /SAVE 2015 1334 TAD TEMP /ECHO 2016 4453 PTRPUT 2017 1334 TAD TEMP /TEST 2020 1374 TAD (-215 /CR? 2021 7450 SNA /S IF NOT 2022 5226 JMP TYPLF /NEED LINE FEED 2023 1373 TAD (215 /RESTORE AC 2024 3335 DCA CHAR /SAVE 2025 5211 JMP RED02 /ALLOW FUNNY INPUT / 2026 1372 TYPLF, TAD (212 /LF 2027 4453 PTRPUT 2030 1335 TAD CHAR /SEE IF VALID 2031 1371 TAD (-301 /A? 2032 7450 SNA 2033 5243 JMP XESA 2034 1370 TAD (-21 /R? 2035 7650 SNA CLA 2036 5242 JMP YESR 2037 1341 TAD ERMES /BAD COMMAND 2040 4777 JMS MESAGE 2041 5206 JMP REDO / 2042 7240 YESR, CLA CMA /R=-l 2043 3336 YESA, DCA MODE /A:O 2044 4444 TPWAIT /WAIT FOR TAPE TO GET TO BLOCK 1 2045 1340 TAD GOM /START INPUT MESSAGE 2046 4777 JMS MESAGE 2047 4450 RDRGET /IGNORE FIRST CHARACTER 2050 7300 CLA CLL 2051 1367 TAD (-3 /SET LT CNT 2052 3337 DCA LTCNT /3 TRAILERS TERMINATE (IN A ROW) 2 0 53 4450 RDRGET /IGNORE LEADER 2054 1356 TAD (-200 2055 7450 SNA 2056 5253 JMP.-3

16 PAGE 02 2057 1375 STOWIT, TAD (200 /RESTORE AC 2060 4765 JMS PUT /STORE IT PACKED 2061 4450 RDRGET /GET MORE 2062 1366 TAD (-200 /3 IN A ROW TERMINATE 2063 7450 SNA 2064 5272 JMP MAYBT 2065 3334 DCA TEMP 2056 1367 TAD (-3 /RESET CNTR 2067 3337 DCA LTCNT 2070 1334 TAD TEMP 2071 5257 JMP STOWIT / 2072 2337 MAYBT, ISZ LTCNT /3? 2073 525.7 JMP STOWIT /NO 2074 4452 RDRCLO /TURN OFF INPUT 2075 1764 TAD PLOC /SEE IF WE HAVE TO WRT BUFFER 2076 1363 TAD (-7200 2077 7640 SZA CLA 2100 4762 JMS WBUF 2101 7240 CLA CMA 2102 1761 TAD PBLK /AC-NUM BLKS 2103 0360 AND (3777 2104 6211 CDF 10 2105 3757 DCA 7771 2106 7201 CLA IAC /START BLK 2107 3756 DCA 7770 2110 1355 TAD (1000 /R 2111 2336 ISZ MODE 2112 1355 TAD (1000 /A 2113 3754 DCA 7772 2154 7772 TAD (2155 1000 2156 7770 2157 7771 2160 3777 2161 2267 2162 2257 2163 0600 2164 2301 2165 2200 2166 7600 2167 7775 2170 7757 2171 7477 2172 0212 2173 0215 2174 75635 2175 0200 2176 0177 2177 2307 2 114 1353 7402 2 115 3752 DCA 7774 2116 7240 CLA CMA 2117 3751 DCA 7775 2120 7201 CLA IAC

PAGE 03 2121 3750 DCA 7776 2122 1347 TAD (7402 2123 3746 DCA 7777 2124 6201 CDF 0 2125 1343 TAD DONE 2126 4745 JMS MESAGE 2127 4454 PTRCLO 2130 4444 TPWAIT 2131 6203 CDF CIF 2132 6002 IOF 2133 5744 JMP 7600 / 2134 0000 TEMP, 0 2135 0000 CHAR, 0 2136 0000 MODE, 0 2137 0000 LTCNT, 0 2140 2424 GOM, GOMS 2141 2434 ERMES, ERM 2142 2400 MWHICH, MWH 2143 2442 DONE, DON / 2144 7600 PAGE 2145 2307 2146 7777 2147 7402 2150 7776 2151 7775 2152 7774 2153 0376

18 PAGE 04 *2400 / 2400 4543 MWH, TEXT:%# 2401 4302 #B 2402 s1115 IN 2403 0122 AR 2404 3140 Y 2405 2417 TO 2406 4003 C 2407 2023 PS 2410 4543 %# 2411 2275 R: 2412 2205 RE 2413 1440 L 2414 0175 A: 2415 0102 AB 2416 2345 S% 2417 4343 ## 2420 1517 MO 2421 0405 DE 2422 4075 2423 4000 2424 4543 GOMS, TEXT:%# 2425 2'324 ST 2426 0122 AR 2427 2440 T 2430 2205 RE 2431 0104 AD 2432 0522 ER 2 433 0000: 2434 4543 ERM, TEXT:%# 2435 0705 GE 2436 2440 T 2437 1005 HE 2440 1420 LP 2441 4100 1: 2442 4543 DON, TEXT:%# 2443 0417 DO 2444 1605 NE 2445 5640. 2446 2205 RE 2447 2425 TU 2450 2216 RN 2451 1116 IN 2452 0740 G 2453 2417 TO 2454 4003 C 2455 2023 PS 2456 5600.: PAGE

19 PAGE 05 *2200 / 2200 0000 PUT, 0 /PUT AND PACK SABR BINARY 2201 0377 AND (377 2202 3302 DCA IPT 2203 1303 TAD PUTSW /WHICH THIRD?, INIT 0 2204 7450 SNA /O-LEFT 2205 5236 JMP PARTI 2206 7700 SMA CLA /-I-RIGHT 2207 5215 JMP PART2 /+I-MID 2210 1302 TAD IPT /DO RIGHT SIDE 2211 1701 TAD I PLOC 2212 3701 DCA I PLOC /PACKED IN 2213 4250 JMS TSTPLC /GET NEXT WORD ADVANCE 2214 3303 DCA PUTSW /SET FOR LSIDE 2215 5245 JMP PRET 221s 1302 PART2, TAD IPT /SPLITS TWO WORDS 2217 7112 RTR CLL 2220 7012 RTR 2221 0376 AND (17 2222 1701 TAD I PLOC 2223 3701 DCA I PLOC /PACKED HIGH 4 BITS 2224 4250 JMS TSTPLC /ADVANCE TO THE NEXT WORD 2225 1302 TAD IPT 2226 7112 RTR CLL 2227 7012 RTH 2230 7010 RAR 2231 0375 AND (7400 2232 3701 DCA I PLOC 2233 7240 CLA CMA 2234 3303 DCA PUTSW 2235 5245 JMP PRET 2236 1302 PARTI, TAD IPT 2237 7006 RTL 2240 7006 RTL 2241 0374 AND (7760 2242 3701 DCA I PLOC 2243 7201 CLA IAC 2244 3303 DCA PUTSW 2245 7000 PRET, NOP 2246 6202 CIF 2247 5600 JMP I PUT 2250 0000 TSTPLC, 0 /ADVANCE PLOC AND SEE IF IN CORE 2251 2301 ISZ PLOC 2252 1373 TAD (-7400 2253 1301 TAD PLOC 2254 7700 SMA CLA /-IS IN CORE 2255 425-7 JMS WBUF 2256 5650 JMP I TSTPLC / 2257 0000 WBUF, 0 /WRITE BUFFER 2260 1267 TAD PBLK /IEST FOR END OF BUFFER 2261 1270 TAD PBLK+1 2262 0372 AND (777

20 PAGE 06 2263 1371 TAD (-150 2264 7700 SMA CLA 2265 5305 JMP TOOFAR 2266 4446 WRSTAP 2267 4001 PBLK, 4001 2270 0001 1 2271 7200 PLOCI, 7200 2272 4444 TPWAIT 2273 1267 TAD PBLK 2274 1270 TAD PBLK+1 2275 3267 DCA PBLK 2276 1271 TAD PLOCI 2277 3301 DCA PLOC 2300 5657 JMP I WBUF / 2301 7200 PLOC, 7200 /INIT VALUE TO START 2302 0000 IPT, 0 2303 0000 PUTSW, 0 2304 3167 L3167, 3167 / 2305 7402 TOOFAR, HLT 2306 5305 JMP.-1 2307 0000 MESAGE, 0 /AC-ADDR OF TEXT 2310 1362 TAD MESNI /-1 2311 3010 DCA 10 /USES AUTO-INDEX 2312 1410 TAD I 10 2313 3324 DCA MSRGHT /SAVE PACKED WORD 2314 1324 TAD MSRGHT 2315 7012 RTR 2316 7012 RTR 2317 7012 RTR 2320 4325 JMS TYPCH /TYPE LH 2321 1324 TAD MSRGHT 2322 4325 JMS TYPCH /TYPE RH 2323 5312 JMP MESAGE+3 2324 0000 MSRGHT, 0 /TEMP 2325 0000 TYPCH, 0 /TYPES 2326 0353 AND MASK77 2327 7450 SNA /0 TERMINATES 2330 5707 JMP I MESAGE /RETURN 2331 1354 TAD MESN40 /-40 2332 7500 SMA /<40? 2333 5336 JMP *+3 2334 1355 TAD C340MES /340 2335 5351 JMP MTP 2336 1356 TAD M3MES /-3 2337 7440 SZA /LFD 2340 5343 JMP.+3 2341 1357 TAD C212MES 2342 5351 JMP MTP 2343 1363 TAD M2MES /-2 2344 7440 SZA /CR? 2345 5350 JMP.+3 2346 1360 TAD C215MES

PAGE 07 21 2347 5351 JMP MTP 2350 1361 TAD C245MES 2351 4453 MTP, PTRPUT /TYPE IT 2352 5725 JMP I TYPCH /RET / / 2353 0077 MASK77, 77 2354 7740 MESN40, -40 2355 0340 C340MES, 340 2356 7775 M3MES, -3 2357 0212 C212MES, 212 2360 0215 C215MES, 215 2361 0245 C245MES, 245 2362 7777 MESNI, -1 2363 7776 M2MES, -2 / 2371 7630 PAGE 2372 0777 2373 0400 2374 7760 2375 7400 2376 0017 2377 0377

CHAPTER 4 *TAPCOPY *TAPCOPY is a general purpose magnetic tape copying utility program. It can be used to copy blocks of LINC or PDP-8 formatted magnetic tapes onto another or the same tape using either the LINC or PDP- 8 format. Instructions The program *TAPCOPY is loaded and started by the command RUN *TAPCOPY The following heading is typed TAPE COPY UTILITY CTRL-C RETS TO CPS RUBOUT RESTARTS The following control options are provided to the user on the input lines. A (CTRL-C) on any line immediately terminates program execution and automatically returns control of the computer to CPS (provided the proper CPS tapes are mounted at the time!). 22

23 A (RUBOUT) on any line immediately deletes all previously entered data and causes a return to the first input request. A (BACK-ARROW) deletes the information entered on the current line. The request is not retyped. Lines should be terminated by a (CARRIAGE RETURN) or a (CTRL-C) or a (RUBOUT). The following is a description of the input requests on a line by line basis. These requests are typed by the program and the user must type the appropriate responses. Minimal error checking is done by this program. Be careful! All numbers used below are octal. Request I FRM BLK = The user should type in the tape block number on the source tape at which the transfer is to start. Inputs on this line are treated modulo- 4000. Request 2 FRM UNT = Type in the tape unit upon which the source tape is mounted. Only units 0 and 1 are valid inputs. Request 3 AMT = Type in the number of blocks to be transferred (octal). Values of I through 3777 are acceptable. (PDP-8 format tapes contain 2000 blocks and LINC format tapes contain 1000 blocks.)

24 Request 4 L OR 8 = The format of the source tape is either PDP-8 or LINC. Type "L" for LINC format or "8" for PDP-8 format. Request 5 TO BLK = Type the starting block number of the sink tape to which the transfer is to be made. This number is taken modulo- 4000. Request 6 TO UNT = Type the unit number upon which the sink tape is mounted. Only units 0 and 1 are valid inputs. Request 7 L OR 8 = The tape format to be used in writing the transferred information onto the sink tape. Type "L" for LINC format or "8" for PDP-8 format. No checking is done for consistent source and sink specifications or formats. Comments If a LINC tape is being transferred to a PDP-8 tape, twice as many blocks will be written as were read because of the difference in size of the data blocks. If an odd number of PDP- 8 blocks are being transferred to a LINC tape format, the first 200 words of the last LINC block will correspond to the last PDP-8 block. The remaining 200 words in the

25 last LINC block will be undetermined. The normal transfer is two PDP-8 blocks per LINC block. When request line 7 is terminated by a (CR) the requested transfer will take place. When the transfer has been completed the following message will be typed 0000 CHECK SUM ERRORS Which gives the number of check sum errors which occurred in reading the source tape.

MACR08 ASSE;4dLER (AN229) PAGE 01 26 /TAPE COPY UTILITY /USES 1OCS3 CHECK _'- =3 1 I GNNOE= 3 4 *100 0100 0000 TEMP, 0 0101 2422 LI, LNI1 0102 2 43 4 L2, LbJ2 0103 2447 L3, LJ3 0104 2460 L4P LN4 0105 2467 LS5 LN5 0106 2476 L6, LN6 0107 2505 L7s LN7 0110 2514 LS, LN8 0111 1 1 2523 L9, LN9 0112 2532 L10, LNJ1 0113 2534 L 1l LNI I 0114 2545 L12, LN12 0115 0000 FRi40ED, 0 01 1 6 0000 TiOMODE 0 0117 0000 AiT, 0 0120 0000 D0N E Wj, 0 0121 0000 Ei~RRAC 0 / *2000 2000 7300 CLA CLL 2001 4442 CALL RESET 2002 4447 RDROPN 2003 7240 CLA CMA /IGNORE READ ERRORS 2004 3034 DCA IGNORE 2005 1101 TAD L1 /PRINT HEADER 2006 4777.J>S M NESAGE 2007 1102 TAD L2 2010 4777 J'4S MESAGE 2011 1103 TAD L3 2012 4777 JM1S ESAGE 2013 7300 AUAIN, CLA CLL 2014 3121 OCA EiRRAC /ZEiiO EvRi OJr COUNT 201 5 1104 TAD L4 2016 4777 JMS MESAGE /FRM 5LK = 2017 4776 JMS OCTIN /GET BLK NJi4 2020 4775.J.MS CHECKA /CH-EC I' Ei'MI NATOR 2021 0374 AND (3777 /FOkRCE VALID 2022 3773 )CA FHMBLK /SAVE 2023 1105 TAD L5 2024 4777 JMS MESAGE /FPRM UNT = 2025 4776 JMS ocrIN /GET UNIT 2026 4775 JNS CHECKA 2027 3100 DCA TEMP 2030 1100 TAD TEMP

PAGE 02 27 2031 7450 SNA /0 OK 2032 7410 SKP 2033 1372 TAD (-1 /1 OK< 2034 7640 SZ.A CLA 2035 5213 JMP AGAIN /BAD JNIT 2036 1100 TAD TEMP 2037 7112 CLL RTiR 2040 1773 TAO FR.M3LK 2041 3773 DC1A FRMtLK 2042 1106 TAD L6 2043 4777 JMS MESAGE /AMOiJNrT 2044 4776 JMS OCTIN 2045 4775 JMS CHECKA 2046 1371 T.AD (4000 /LIqNK WAS 0 2047 7430 SZL 2050 5213 JMP AGAIN 2051 1371 TAD (4000 /R~STOr<E AC 2052 7450 SNA /DONT DO 0 2053 5213 JMP AGAIN 2054 3117 DCA AMT /SAVE 2055 1107 TAD L7 2056 4777 JMS MESAGE /L OR 8 2057 4770 JMS SEELOR8 2060 3'11 5 SET8F, OCA FRMODE /SEr FRtOM MODE, O=PDP 2061 1110 TAD LB /TO 8LOCK 2062 4777 JMS MESAGE 2063 4776 JMS OCTIN 2064 4775 JMS CHECKA 2065 0374 AN D (3777 /FORCE VALID a 66 3767 OCA T03LK 2067 1111 TAD L9 2070 4777 JMIS MESAGE /TO UNIT 2071 4776 JMS OCTIN 2072 4775 JMS CHECKA 2073 3100 DCA TEMP 2074 1100 TAD TEMP 2075 7450 SNA 2076 7410 SKP 2077 1372 TAD (-1 2100 7640 SZA CLA 2101 5213 JMP AGA IN 2102 1100 TrAD TEMP 2103 7112 CLL RTR 2104 1767 TAD TOS3L: 2105 3767 OCA TO L K 2106 1107 TAD L7 /L OR 8 2107 4777 J4MS MESAGE 2110 4770 JMS SEELORi 211 1 3116 SETST, ULCA TOMODE / /ALL DATA IN, GO f0 I r 2112 1 1 1 4 TAD L12 /ALLOW USER'rTO START TRANSEER 2113 4777 JMS MESAGE 2114 4776 JMS OCTIN

PAGE 03 28 2115 4775 JMS CHECKA 211 6 7300 CLA CLL 2117 5766 JMP TriA;jSF / 2166 2200 PAGE 2167 2316 2170 3000 2171 4000 2172 7777 2173 2245 2174 3777 21 75 2400 2176 2654 2177 2600

PAGE 04 29 *2200 / 2200 3120 TRANSF, OCA tO)NESW 2201 4216 JMS REAi /GET IN AS lMUCH AS?OSSI3LE 2202 4276 JMS WRITE /WrITE IT OUT 2203 2120 ISZ DONESW /-1 =DONE 2204 5200 JMP T-RANSF 2205 4444 TPWAIT 2206 1112 TAD LIO 2207 4777 JMS MESAGE 2210 1121 TAL ERiiAC 2211 4776 J1MS OCTOUJ' /TYPE NLJMd OF'READ ERORiS 2212 7300 CLA CLL 2213 1113 A0L L11 2214 4777 JMS MESAGE 2215 5775 JMP AGAIN 2216 0000 READ, 0 /READS INTO FIELD 1 36 PAGESa MAX (OCTAL) 2217 4444 TPtWAIT 2220 1115 TAD FRMODE 2221 7004 RAL /L=1=LINC 2222 4443 CALL r'TP,"MODE /SET MODE 2223 1,115 TAD FRMODE 2224 7004 RAL 2225 1374 TAD (17 /LINC SIZE 2226 7420 SNL 2227 1374 TAD (17 /8 SIZE 2230 3330 DCA RMAX 2231 1330 TAD RMAX 2232 7041 CIA 2233 1117 TAD A4T /AC.G. 0 =AMT LEFT 2234 7450 SNA 2235 5272 JMP RDONE 2236 7510 SPA 2237 5272 J;Y1iR iDON E 2240 3117 DCA AMT /UPDATE NEW AMOUNT 2241 1330 TAD RMAX 2242 1373 Ri)DD!, TAD ( 4000 /FIELD I 2243 3246 DCA RNUM 2244 4445 RDSTAP 2245 0000 FRIM3LK, 0 2246 0000 riNUM, 0 2247 0000 LOC, 0 2250 1246 FAD RNJM 2251 0372 AND) (77 2252 1245 TAD FRM3LK 2253 3245 DCA Fr-MdLK 2254 1 1 15 T LD FRMOLE 2255 7004',L 2256 1246 TAD RiJNuM1 /HriO MANY PAGES 1'0 IT E? 2257 0372 AND (7 7 2260 3326 OCA TE; 2261 1326 fAD TEN 2262 7430 SZL

PAGE 30 2263 1326 TADO TEM 2264 3327 OCA PAGECG 2265 4444 f P WiAI T 2266 1031 fAD C'ICEGKE 2267 1121 TAD ERRAC 2270 3121 OCA E.RRtAC 2271 5616 J'47 I Ei)AD /REiTruiiN / 2272 7240.0iON'. CLA GCMA /rE'AD ALL DON 2273 3120 DCA4 DONESW 2274 1117 rAo AMT 2275 5242 Jivp tRoDI 2276 0000 WirITEl, 0 2277 4444 TP WAIT 2300 1116 TAD TOMODE 2 301 73004 RAL 2302 4443 CALL TPMIODE 2303 1116 TAD TOMODE 2304 7004 RAL 2305 1327 TAD PAGE:Ciq 2306 7430 SZL 2 30 7 70 10 r.R 2310 7430 SZL 2311 7001 lAGC /tOUO UP 2312 0372 ND ( 77 /'AASK( 2313 1371 TAO (6000 /FIEL' 1I CHECK 2314 3317 OCA TNUVI 2315 4446 WkS rap 2316 0300 TOLK, 0 2317 0000 TFNJM O 2320 0000 TLOC, 0 2321 1 317 TAI) T i'Ui 2322 0372 AND ( 77 2323 1316 TAO TOSLK 2324 3316 DCA TO0LK 2325 5676 JMP I iWRITE 2326 0000 TEAM, 0 2327 0000 PAGECN, O 2330 0000 R'MAX, 0 2371 6003 PAGE 2372 00 77 2373 4300 2374 00 17 237 5 2013 2376 2733 2377 2600

PAGE 06 31 *2400 2 400 00)00 CHECKA, 0 2 401 3221 DCA CH 1'4 2 402 1777 TAD OCTIINP 2 403 1376 TAD (-203 /CTtRL-C? 240 4 7450 SNA 2 40 5 521 4 J.MP r-ET 2 406 1375 TAD (-1 74 /RsJ3,0J'f? 240 7 76-50 Si4A CLA 2410 5774 JMP AGAIN 2411 1221 TrAO CH r 2412 7100 CLL 2413 5600 JiP? I CHECKA 2414 4444 RETv TPWAIT 2415 4454 P TRCLO 2416 6203 CDF CIF 2417 6002 IOF 2420 5773 JMP 7600 / 2 491 0000 CHTM, 0 2422 4543 LNI TEXT:%# 2423 2401 TA 2424 2005 PE 2425 4003 C'2426 1720 OP 2427 3140 Y 2430 2524 U'T 2431 1114 IL 2432 1124 IT 2433 3100 Y' 2434 4543 LN2, TEXT:%# 2435 0324 CT 2436 2214 I'L 2437 5503 -C 2 440 4022 i: 2441 0524 ET 2442 2340 S 2443 2417 TO 2444 4003 C 2445 2023 PS 2446 0000: 2447 4543 L~J3, TEXT:%# 2450 2'22 5 i-U 2451 0217 30 2452 2524 UT 2453 4022 R 2454 05'23 ES 2455 2401 TA 2456 2224 RT 2457 2300 S: 2460 4543 LN4, TEXT': Z# 2461 0622 FR

PAGE 07 32 2462 1 540 i 2463 0214 3L 2 464 1340 K 2465 7540 = 2466 0000: 2467 4543 LN5, TEXT:%#/ 2470 0622 Fr 2471 1540 M1 2472 251 6 d. I 2473 2440 T 2474 7540 = 2475 0000: 2476 4543 LN;6, TEXT:%# 2477 0115 Af 2500 1725 OU 2501 1624 NT 2 502 4040 2 503 7540 2 504 0000: 2505 4543 LN7, TEXT: %# 2506 1 440 L 2507 1722 0OR 2510 4070 8 2 511 40 4040 2512 7540 = 2 513 0000: 2 51 4 4543 L'48, TEAT: 7# 2515 2417 TO 2516 4040 2517 0214 SL 2 520 1 340 K 2521 7540 = 2522 0000: 2523 4543 LN9, TEXT: %# 2 524 2417 TO 2 52S 44040 2 526 251 6 UN 2527 2440 r 2 530 7 540 = 2531 0000: 2532 4543 LN:10. TEXT:%# 2533 0000: 2534 4003 L.1 1,'TEX: C 2535 1005 HE 2 536 0313 CK 2 537 4023 S 2540 251 5 UJ 2541 4005 E 2542 2222 R;2543 1722 OR 2 544 2300 5: 2545 4543 LN12, TEXT:%# 2 546 5'30 3 (C 2 547 2251 SIR) 2 550 4023 S

PAGE 08 33 2551 2401 TA 2552 2224 XT 2553 2340 S 2554 0317 GO 2555 2031 PY 2556 1116 IN 2557 0700 G: 2573 7600 PAGE 2574'2013 2575 7604 2576 7575 2577 2731

PAGE 09 34 *3000 3000 0000 SiEELOR8, 0 /TEST FOR LINC 0R PDP-8 3001 4777 JMS ROtsi r /IEN T CIAR 3002 31 00 DCA TE_'P /SAVE 3003 1100 TAD TEMP 3004 4776 JMS PTh.OUT /ECHO 3005 1100 TAD TEMP 3006 3775 DCA OCTINP 3007 4774 JdiS CH-ECKA 3010 1100 TAD TEM4P 3011 1373 TAD (-215 /CR? 3012 7640 SZA CLA 3013 5225 JMP UPDOATE 3014 1230 TAD CdARAC 3015 1372 TAD (-270 3016 7450 SNA 3017 5600 JMP I SEELOR8 /PDP-8 3020 1371 TAD (-24 /L? 3021 7640 SZA CLA 3022 5770 iMP AGAIN /00PS 3023 1367 TAO (4000 3024 5600 JMP I SEELOR8 3025 1100 UP.DATE, TAD TEMP 3026 3230 CA CGHARAC 3027 5201 JlMP SEELOri3+1 / / 3167 4000 PAGE 3170 2013 3171 7754 3172 7510 3173 7563 3174 2400 3175 2731 3176 2764 3177 2757

PAGE 10 35 /1-0 UTILITY /CONTAINS E.ESAG, ()CTIN,4. OCTOUT *2 600 2 600 0000 MESAGE, 0 /AC=ADDR OF TEXT 2601 3254 DCA OCTIN /USE AS A TEMP 2602 1654 TAD I OCTIN /GET I40RD 2603 2254 ISZ OCTIN /ADV Pfi' 2604 3215 DCA MSiRGHT /SAVE PACKEO WORD 2605 1215 TAD IMSR GiHT 2606 7012 r'il 2607 7012. RTrH 2610 7012 RTi 2611 4216 JMS TYPCH /TYPE LH 2612 1215 TAo) MSRG-IHT 2613 4216 JMS TYPCHI /TYPE kd 2614 5202 JMP MESAGE+2 2615 0000'MSRGHT, u /TEi,'P 2616 0000 TYPCH, 0 /TYPES 261 7 0244 AND MASK<77 2620 7450 SNA /0 TERMINATES 2621 5600 JPd9 I MiESAGE /R ETUJRN 2622 1245 TAD MESN40 /-40 2623 7500 SaM'A /<40? 2624 5227 JMP.+3 2625 1246 TAD C340UES /340 2626 5242 JNIP MTP 2627 1247 TAD NM3MES /-3 2630 7440 - ZA /LFD 2631 5234 JMP.+3 2632 1 250 TAD C212MES 2633 5242 JMP MTP 2634 1253 TAD M2MES /-2 2635 7440 SZA /CR? 2:636 52 41 JMP.+3 2637 1251 TAD C215M'iES 2640 5242 JMP MTP 2641 1252 TAD C245MIES 2642 4364 MTP, JMS PT.ROUT 2643 5616 JMP I TYPCH /RET 2644 0077 MASK77, 77 2645 7740 MESN40,p -40 2646 0340 C340MES, 340 2647 7775 M3MES, -3 2650 0212 C21 2MES 212 2651 0215 C215MES, 215 2652 0245 2 45'I ES, 245 2653 7776 M2M1ES, -2 2654 0000 OCTI4, 0 /OCTAL INPlr, 4 DIGI T S MAX 2 655 7300 CLa CLL 2656 1322 TAD f40C /-4

PAGE 1 36 2657 3330 DCA OCTCNT 2660 3332 DCA OCTOPr /0 OUTPUr VALUE 2661'4357 OCTA, JMS r-)RINT /GEi CHAR 2662 3331 DCA OCTINP /SAVE 2663 1331 TAD OCTINP 2664 0323 AND MS7770 /MASK OFF LAST DIU IT 2665 1324 TAD NH2600C /SEE IF OCTAL DIGIT 2666 7640 SZA CLA /S IF YES 2667 5306 Ji'IP OCTC /NO 2670 1331 TAD OCT I P 2671 4364 JdMS?PT.OU /ECHO 2672 1332 TAD OCTOPT /i'ULTIPLY BY 8 2673 7004 RAL 2674 7006 iiTL 2675 3332 DCA OCTOPT 2676 1331 TAD OCTINPr 2677 0325 AN;D iMS0007 /GET OCTAL DIGIT 2700 1332 TAD OCTOPT /UPDATE VALUE 2701 3332 DCA OCTOPT 2702 2330 ISZ OCTC T /SEE IF WE HAVE DONE 4 2703 5261 JMP OCTA /MORE ALLOWED 2704 4357 Ji'S RORINT /TERIINATE 2705 3331 DCA OCTINP 2706 1331 OCTC, TAO OCTINP /WHICH NON OCTAL? 270 7 1326 TAD M3370C /3ACK ARROW? 2710 7640 5ZA CLA /S IF YES 2711 5317 JM P OCrT /HRETURN 2712 1331 TAD OCTINP /ECHO 2713 4364 JMS PTROUT 2714 1327 TAD C2400C /SPACE 2715 4364.JMYS PTROUT /TYPE IT 2716 5255 J MP OCTIN+l /RESTART 2717 7300 OCTBi CLA CLL /EXIT NO'W' 2720 1332 TAD OCTOPT 2721 5654 JjMi I OCTIN /RET W AC=VALUE L=O 2722 7774 M40C, -4 2723 7770 iWIS7770s 7770 2724 7520 M'12600C, -260 2725 0007 MS0007, 7 2726 7441 "13370C, -337 2727 0240 C2 400Cv 2 40 2730 0000 0CTC! 1i, 0 2731 0000 OCTI'fNPP 0 2732 0000 OCTOPT, 0 / 2733 0000 OCTOUTs 0 2734 3254 OCA OCTIN /SAVE AC 2735 1322 TAD "140C 2736 3330 DCA OCTONT /4 DIGITS OUT 2737 1254 TAD OCTINJ 2740 3332 DCA OCTOPT 2741 1332 OCT)D, TAD OCTiOT 2742 7006; TL

PAGE 12 37 2 743 7004 ilAL /ROTATE LEFT 3 2744 3332 DCA OCTOPT /SAVE 2745 1332 TAD OCTOPT /UGET AGAIN. 2746 7004 RAL /FINISH GTfTI:NG DIGIT 2747 0325 AND SOO0007 /MASK 2750 1356'fAD C2600C /fiAKE A SCII 2751 4364 JMS PTiOUJT /TYPE 2752 2330 IS L OCTCNT /DONE? 2753 5341 JMP OCTD /NO 2754 1254 -AD OCTIN /lRESTORE AC 2755 5733 JMP I OCTOUT /L=O 2756 0260 C2600C, 260 / 2757 0000 RDRRI NT, 0 2760 4450 JAS I 50 /IUSE USER iROUTINE 2761 0377 AND (177 /FORCE PARITY 2762 1376 TAD (200 2763 5757 JMP I RDRI T 2764 0000 PTROUT, 0 2765 4453 JMS I 53 /USE USER iROUTINE 2766 7300 CLA CLL 2767 5764 JMP I PTROUT 2776 0200 PAGE 2777 0177

CHAPTER 5 ONE PAGE TAPE ROUTINES 5.1 PAGER This is a compact read-write magnetic tape subroutine which requires only one page of memory in the PDP- 8. It is intended for use in data processing and system programs where space is at a premium. This program's predecessors have been used extensively at CEL. PAGER is page-relocatable. This subroutine, as documented in this memo, is set up to handle tapes using the PDP- 8 format and to work in field 0 into and out of field 0. By properly modifying the 4 CDF's in this routine it can read into and out of any memory field while resident in any memory field. An external subroutine can be used to make the required changes under program control. Similarly an external subroutine can be used to alter the tape format used by the tape routine. Data Field Modifications The CDF instructions labeled RCDF and WCDF should be set to the memory field corresponding to that of the data to be transferred. The CDF's two instructions later should be set to correspond to the memory field the tape routine is in. 38

39 Tape Format Modifications This routine can be modified to handle LINC format tapes by changing LMODI to a CIA LMOD2 to a NOP NTSIZE to a 7400 Calling Sequence This subroutine includes a time-out delay loop of about.08 seconds duration in order to allow the tape units to settle down on successive read/write operations. This is only necessary with PDP- 8 format tapes because of the small block size. This subroutine always starts tapes in the backwards direction. The calling sequence is JMS RTAPE (OR WTAPE) /READ OR WRITE BLN / STARTING AT TAPE BLOCK NUMBLK / FOR THIS MANY BLOCKS > 0 UNIT / USING THIS TAPE UNIT LOC /THIS IS WHERE IN CORE TO START / CONTROL RETS HERE WITH AC AND L EQUAL TO 0 Do not attempt to use this subroutine to transfer 0 blocks.

40 0 blocks gets treated as 4096. All starting block numbers between 0 and 3777 (inclusive) are accepted, however, they may not exist on your tape! Notes The symbolic version of PAGER is stored on the CPS library tapes under the name SPAGER. The following line numbers are handy: WCDF line 90 RCDF line 117 LMOD1 line 103 LMOD2 line 125 NTSIZE line 146

41 /TAPE ROUTINE FOR READING /AND WRITING SIZE 128 BLOCKS ON /THE LINC 8 /CAN BE MODIFIED TO SIZE 256 BLOCKS /CHANGE LOCATIONS LMODI1 LMOD2 AND NTSIZE /AS INDICA'TED BELOW /TO USE: / JMS RTAPE OR WTAPE READ OR WRITE / xxXX BLOCK NUMdER / YYYY NUMbER OF BLOCKS > 0 / 0 OR 1 UNIT NUMBER / ZZZZ WHERE IN CORE / CONTROL RETS HERE WITH CLEAR AC AND LINK /K. METZGER 5/21/69 *1200 1200 0000 RTAPE, 0 1201 7300 CLA CLL 1202 1200 TAD RTAPE /MOVE POINTER 1203 3205 DCA WTAP E 1204 5207 JMP INTO 1 205 0000 WrAPE, 0 1206 7320 CLA STL /SET LINK FOR WRITE 1207 1342 INTO, TAD C6 /ROTATE MAKES INTO 3 1210 7010 RAR 1211 3372 DCA FUNCT 1212 1605 TAD I WTAPE /BLOCK NUMBER 1213 3373 DCA BLN 1214 2205 ISZ WTAPE 1215 1605 TAD I WTAPE /NUMB OF BLOCKS 1216 7041 CIA 1217 3374 DCA NUMB 1220 2205 ISZ WTAPE 1221 1 605 TAD I WTAPE /UNI T 1222 7112 RTR CLL /PUT INTO BIT 0 1223 1313 TAD C2 /TO SET SEARCH 1224 3375 DCA UNIT 1225 2205 ISZ WTAPE 1226 1605 TAD I WTAPE /CORE LOC 1227 3376 DCA LOC 1230 2377 i Z CNTR /TIMEOUT TO ALLO i 1231 5226 JIMP.-3 /TAPE DRIVE ro SETTLE 1232 2205 I SZ WTAP E 1233 7120 STL /LINC = 1, FIiS r PASS 1234 2373 SERCHA, ISZ BLN /l'S COMPL ON TAPE 1235 3200 SERCHB, DCA CSUM /ZERO CHECK SUM 1236 1371 TAD NTSIZE 1237 3377 DCA CNTR / WORD COUNT 1240 1375 TAD UNIT /NOW SET SERCH 1241 6141 ICON

42 1242 7201 CLA IAC /TO START MOTION bACKWARDS 1243 7430 SZL /SEE IF MOVING 1244 6141 ICOON 1245 1342 TAD C6 /Tro CLEAR INTS 1 246 6141 B, ICON 1247 4356 A, JMS WAIT /FOR BLK INT 1250 7500 SMA /ONLY NEG VALID 1251 7120 STL /POS wANT F WD FOR BLK 0 1252 1373 TAD tLN 1253 7650 SNA CLA /L= 1 WANT r FiWD 1254 5270 JMP THERE ION BLOCK 1255 6147 INTrs /IWANT MO 1256 7010 RAR /MO TO Ls L TO BIT 0 1257 0370 AND M4000 1260 7460 SZA SNL 1261 5247 JMP A /WANT FORE, GOT FORE 1262 7020 CML 1263 7520 SNL SMA 1264 5247 JMP A /tACKWARDS 1265 6141 ICON /STOP 1266 7001 IAC /BIT 0 IS OK HERE 1267 5246 JMP B /CHANGE MOTION 1270 6147 THERE, INTS /WANT M1 1271 7012 RTR 1272 7620 SNL CLA /ON AND FOREW 1273 5247 JMP A ION AND GOING tBACK, REVERSE 1274 1372 TAD FUNJCT 1275 6141 ICON /SET tBLOCK MODE 1276 7500 SMA /S IF TO WRITE 1277 5331 JMP RDATA 1300 1313 TAD C2 /TO GET S 1301 6141 ICON ITURN WRITERS ON 1 302 7200 WRITE, CLA 1303 6201 WCDF, CDF /SET TO DESIRED FIELD 1304 1776 TAD I LOC 1305 6201 CDF /SET TO FIELD ROUTINE IS IN 1306 6161 IACB /AC TO LINC REG 1307 1200 TAD CSUM 1310 3200 DCA CSUM 1311 4356 JMS WAIT /IPT IT OUT 1312 2376 ISZ LOC 1 313 0002 C2, 2 /STORAGE, THIS HAS NO EFFECT 1314 2377 ISZ CNTR /DONE? 1315 5302 JMP WRITE /NO 1316 7200 CLA 1317 1200 TAD CSUM 1320 7000 LMOD1i NOP /MAKE CIA FOR LINC FORMAT 1321 6161 IACb /:IRITE CHECK SUM 1322 4356 JMS WAIT 1323 4356 JMS WAIT /ALLOW ACTUAL WRITE OF CS 1324 7300 DONE, CLA CLL 1325 2374 ISZ NUMB /ALL BLOCKS DONE? 1326 5234 JM? SERCHA /NO 1327 6141 ICON /STOP 1330 5605S JMP I WTAPE /GO HOME 1331 4356 RODATA, JMS WAIT /GUARD

1332 4356 ROTA, JMS WAI T 1333 1200 TAD CSUM 1334 3200 DCA CSUM 1335 6171 IAAC /GET AGAIN 1336 6201 RCDF, CDF /.SET TO DESIRED FIELD 1337 3776 DCA I LOC /PUT IN CORE 1340 6201 CDF /SET TO FIELD ROUTINE IS IN 1341 2376 ISZ LOC 1342 0006 C6, 6 /STORAGE, NO EFFECT 1343 2377 ISZ CNTR 1344 5332 JMP RDTA /CONTINUE 1345 4356 JMS WAIT /CSUM 1346 7041 LM0OD2 CIA /SET TO NOP FOR LINC FORMAT 1347 1200 TAD CSUM 1350 7650 SNA CLA /MAYBE BAD 1351 5324 JMP DONE /CHECKSUM OK 1352 1371 TAD NTSIZE 1353 1376 TAD LOC /FIX i.ACK 1354 3376 DCA LOC 1355 5235 JMP SERCHI /TRY AGAIN 1356 0000 WAIT, 0 1357 7300 W1, CLA CLL 1360 6147 C7, INTS 1361 7700 SMA CLA /TAPE? 1362 5357 JMP WI 1363 1360 TAD C7 1364 6141 ICON /CLEAR INTS 1365 7300 CLA CLL 1366 6171 IAAC /GET FROM TAPE 1367 5756 JMP I WAIT / 1370 4000 M4000O, 4000 1371 7600 NTSIZE, 7600 /MAKE 7400 FOR LINC FORMAT 1372 0000 FUNCT, 0 1373 0000 BLN, 0 1374 0000 NUMd, 0 1375 0000 UNIT, 0 1376 0000 LOC, 0 1377 0000 CNTR, 0 CSUM=RTAPE /

44 5.2 FITAPE This is PAGER's immediate predecessor set up to reside in memory field 1 and to read/write into/out of field 1. As programs are revised this routine is being replaced by PAGER. The main external difference between FITAPE and PAGER is the location of the entry point for writing tape.

MACRO8 ASSEM8LER (AN229) 45 PAGE 01 CSUM=RTAP E INTS=61 47 IAAC=61 71 IAC0=6161 ICON=61 41 /TAPE ROUTINE FOR READING /AND WRITING SIZE 128 bLOCKS ON /THE LINC 8 /THIS IS TO REPLACE THE ONE /I STOLE FROM DEC *400 0 400 0000 RTAPE, 0 0 401 7300 CLA CLL 0402 1200 TAD RTAPE /MOVE POINTER 0403 3206 DCA WTAPE 0404 1367 TAD M4000 /TO FORCGE FUNCT = 3 0405 5210 JYP INTO 0406 0000 WTAPE, 0 0407 7300 CLA CLL 0410 1370 INTO, TAD C4003 /WRITE WITH SWITCH 0411 3371 DCA FUNCT 0412 1606 TAD I WTAPE /BLOCK NUMtER 0413 3372 DCA BLN 0414 2206 ISZ WTAPE 0415 1606 TAD I WTAPE /NUMB OF BLOCKS 0416 7041 CIA 0417 3373 DCA NLIMt 0420 2206 ISZ WTAPE 0421 1606 TAD I WTAPE /UNI' 0422 7112 RTR CLL /PlUT INTO 8IT 0 0423 1313 TAD C2 /TO SET SEARCH 0424 3374 DCA UNIT 0425 2206 ISZ WTAPE 0426 1606 TAD I WrAPE /CORE LOC 0427 3375 DCA LOC 0430 2376 ISZ CNTR /TIMEOUT TO ALLOW TAPE 0431 5226 JMP.-3 /DRIVE TO SETTLE DOWN 0432 2206 I SZ WTAPE 0433 7120 STL /LINC = 1, FIRST PASS 0434 2372 SERCHA, ISZ BLN /1'S COMPL ON TAPE 0435 3200 SERCH., DCAR CSUM /ZERO CHECK SUM 0436 1316 TAD C7600 0437 3376 DCA Ci1qr /WORD COUNT 0440 1374 TAD UNIT /NOW SET SERCH 0,441 61 41 ICON 0442 7201 CLA IAC /TO START MOTION 5ACK(WARDS 0443 7430 SZL /SEE IF MOVING 0444 6141 ICON 0445 1341 TAD C6 /TO CLEAR INTS

46 PAGE 02 0446 6141 8., ICON 0447 4355 A, JMS WAIT /FOR BLK INT 0450 7500 SMA /ONLY NEG VALID 0451 7120 STL /POS WANT F WD FOR BLK 0 0452 1372 TAD 8LN 0453 7650 SNA CLA /L=l, WANT FWD 0454 5270 JMP THERE ION BLOCK 0455 6147 INTS /WANT MO 0456 7010 RAR /MO TO L, L TO I T 0 0457 0367 AND M4000 0460 7460 SZA SNL 0461 5247 JMP A /WANT FORE, GOT FORE 0462 7020 CML 0463 7520 SNL SMA 0464 5247 JMP A /8ACKWARDS 0465 6141 ICON /STOP 0466 7001 IAC /BIT 0 IS OK HERE 0467 5246 JMP 8 /CHANGE MOTION 0470 6147 THERE, INTS /WANT M1 0471 7012 RTR 0472 7620 SNL CLA /ON AND FOREW 0473 5247 JMP A ION AND GOING BACK, REVERSE 0474 1371 TAD FUNCT 0475 6141 ICON /SET BLOCK MODE 0 476 7 500 SMA /S IF TO WRITE 0 47 7 5330 JMP RDATA 0 500 1313 TAD C2 /TO GET 5 0501 6141 ICON ITURN WRITERS ON 0502 7200 WRITE, CLA 0503 62 11 CDF 10 0504 1775 TAD I LOC 0505 6211 CDF 10 0506 6161 IACB /AC TO LINC REG 0507 1200 TAD CSUM 0510 3200 DCA CSiM 0511 4355 JMS WAIT IPUT IT OUT 0512 2375 ISZ LOC 0513 0002 C2. 2 /STORAGE, THIS HAS NO EFFECT 0514 2376 ISZ CNTR /DONE? 0515 5302 JMP WRITE INO 0516 7600 C7600, 7600 /ALSO A CLA 0517 1200 TAD CSUM 0520 6161 IAC8 /WRITE CHECK SUM 0521 4355 JMS WAIT 0522 4355 JMS WAIT /ALLOW ACTUAL WRITE OF CS 0523 7300 WA I T2, CLA CLL 0524 2373 ISZ NUMB /ALL BLOCKS DONE? 0525 5234 JMP SERCHA /NO 0526 6141 ICON /STOP 0527 5606 JMP I WTAPE /GO HOME 0530 4355'DATA, JMS WAIT /GUARD 0531 4355 rDTA, JMS iWAIT 0532 1200 TAD CSUM 0533 3200 DCA CSUM 0534 6171 IAAC /GET AGAIN

47 PAGE 03 0535 621 1 CDF 10 0536 3775 DCA I LOC /PUT IN CORE 0537 6211 CDF 10 0540 2375 ISZ LOC 0541 0006 C6P 6 /STORAGE, NO EFFECT 0542 2376 ISZ CNTR 0543 5331 JMP RDTA /CONTINUE 0544 4355 JMS WAIT /CSUM 0545 7041 CIA 0546 1200 TAD CSUM 0547 7650 SNiA CLA /MAYBE BAD 0550 5323 JMP WAIT2 /THIIS IS OK 0551 1316 TAD C7600 0552 1375 TAD LOC /FIX BACK 0553 3375 DCA LOC 0554 5235 JMP SERCH8 /TRY AGAIN 0555 0000 WAIT, 0 0556 7300 WI CLA CLL 0557 6147 C7, INTS 0560 7700 SMA CLA /TAPE? 0561 5356 JMP WI 0562 1 357 TAD C7 0563 6141 ICON /CLEAR INTS 0564 7300 CLA CLL 0565 6171 IAAC /GET FROM TAPE 0566 5755 JMP I WAIT 0567 4000 M4000, 4000 0570 4003 C4003., 4003 0571 0000 FUNCT, 0 0572 0000 $LN, 0 0573 0000 NUMBP 0 0574 0000 UNIT. 0 0575 0000 LOC, 0 0576 0000 CNTR, 0

Security Classification DOCUMENT CONTROL DATA - R&D (Secuwfty classificatIon of title. body of abstract and indexing annotation must be entered when the overall report is claesilied) 1. ORIGINATING ACTIVITY (Corporate author) 2a. REPORT sECURITY C LASSIFICATION Cooley Electronics Laboratory | UNCLASSIFIED The University of Michigan 2b GROUP Ann Arhor- Michignn 3. REPORT TITLE CPS Program Logic Manual Volume IV -- CPS SYSTEM UTILITY PROGRAMS 4. DESCRIPTIVE NOTES (Type of report and Incuesive datese) Technical Memorandum No. 102-IV - 03674-23-M December 1969 S. AUTHOR(S) (Lest name, first name, initial) Cederquist, G. N. and Metzger, K. 6. REPO RT DATE 7-. TOTAL NO. OF PACES 7b. NO. OF RE.S December 1969 54 Sa. CONTRACT OR GRANT NO. s9. ORIGINATOR'S REPORT NUMBER(S) Nonr-1224(36) TM102-IV b. PROJECT NO. NR187-200 C. ib. OTHER' REPORT NO(S) (Any other numbere that may be assigned d. 03674-23-M 10. A V A IL ABILITY/LIMITATION NOTICES Reproduction in whole or in part is permitted for any purpose of the U. S. Government. 11. SUPPLEMENTARY NOTES 12. SPONSORING MILITARY ACTIVITY Office of Naval 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 F~R 1473 Security Classification

Security Classification LINK A LINK B LINK C ~KEY WORDS ROLE WT ROLE WT ROLE T Digital Computer Programming System PDP-8 LINC-8 I! 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: fense activity or other organization (corporate author) issuing (1) "Qualified requesters may obtain copies of this the report. report from DDC." 2a. REPORT SECURITY CLASSIFICATION: Enter the. over- (2) "Foreign announcement and dissemination of this all security classification of the report. Indicate whether report by DDC is not authorized" "Restricted Data" is included. Marking is to be in accordance 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 spcific rporting priod i Services, 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:r.ilitary, show rank and branch of service. The name of the principal author is an absolute minimum requirement. 12. SPONSORING MILITARY ACTIVITY: Enter the name of the departmental project office or laboratory sponsoring (pa;6. 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 OF 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. NUMBER 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 r(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. Isubprojct 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 conassigned any other repcrt numbers (either byteo text rgnt. Tthe assignment of links, rules, and weights is optional. or by the sponsor), also enter this number(s)., 10., AVAILABILITY/LIMITATION NOTICES: Enter any liraitations on further dissemination of the report, other than those Security Classification

UNIVERSITY OF MICHIGAN 3 9015 02086 6276111111111 I3I9015 02086 6276