/MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 1 /MEMO: VERSION 84 /LAST MODIFIED ON SEPTEMBER 27, 1974 @ 8:33 /PROGRAM TO PRODUCE MEMO'S 0020 *20 00020 7200 CHRCTR, -600 00021 2423 OPLOC, OP 00022 7677 MLNG, -101 00023 0000 SPTOT, 0 00024 7200 KM600, -600 00025 0200 K200, 200 00026 0000 CTR, 0 00027 7600 MON, 7600 00030 0763 ERRLOC, ERROR 00031 0000 TEMP, 0 00032 0000 CHAR, 0 00033 0000 SPL, 0 00034 1000 NWLOC, NWORD 00035 1400 LPLOC, LNPT 00036 1200 DPLOC, DECPT 00037 1562 SPLOC, SP 00040 1544 TLOC, TYP 00041 2267 NCLOC, NCHAR 00042 7775 KM3, -3 00043 7755 KM23, -23 00044 7563 KM215, -215 00045 0240 K240, 240 00046 0000 PSP, 0 00047 0000 LNCHAR, 0 00050 0000 EOFLG, 0 00051 0000 INDENT, 0 00052 1317 CRLOC, CRLNFD 00053 0000 LLNG, 0 00054 0000 LNFD, 0 00055 0000 EXACT, 0 00056 0000 FLG, 0 00057 7777 CDIL, -1 00060 0000 INDEV, 0 00061 7760 MASK1, 7760 00062 0017 MASK2, 0017 00063 7400 MASK3, 7400 00064 0377 MASK4, 0377 00065 3005 LBLOC, LBUF-1 00066 3206 WBLOC, WBUF-1 00067 2354 GRLOC, GR 00070 3326 SPLIST, SPACES-1 00071 7540 KM240, -240 00072 7777 KM1, -1 00073 2222 NGLOC, NG 00074 0000 DIG, 0 00075 0000 CHARCT, 0 00076 7712 LINES, -66 /=-54(10) 00077 1267 MCRLOC, MCR 00100 0000 ZONK, 0 00101 1304 WTLOC, WT /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 1-1 00102 7777 SPCR, -1 00103 0002 KSP, 2 00104 1444 TTLOC, TTYP 00105 0006 MARG, 6 00106 0000 LINCTR, 0 00107 0215 K215, 215 00110 0212 K212, 212 00111 7776 KM2, -2 00112 2637 TRLOC, TRBUF-1 00113 1535 GBLOC, GB 00114 2400 HMLOC, HM 00115 2141 FMLOC, FM 00116 0001 PAG, 1 /PAGE COUNTER 00117 0777 PHFLG, 777 /ON BY DEFAULT 00120 0000 PHSKP, 0 /ON BY DEFAULT 00121 0000 PFFLG, 0 00122 0000 PFSKP, 0 00123 0000 MARG1, 0 00124 0000 MARG2, 0 00125 0002 K2, 2 00126 0000 PTR, 0 00127 0000 HNDLOC, 0 00130 2616 FPLOC, FP 00131 0000 FSTHD, 0 00132 0000 TAB, 0 00133 7772 MTABS, -6 /DEFAULT IS TAB=7 SPACES 00134 7774 KM4, -4 00135 7567 KM211, -211 00136 0000 SYLS, 0 00137 3306 SPLLOC, SYLPTS-1 00140 1360 TRNLOC, TRNSF 00141 0422 RELOCX, REENT /*** RELOC CHANGED TO RELOCX FOR PAL8 V9 *** RH 2/6/75 00142 1710 SLUFLC, SLUF 00143 0000 NMBR, 0 00144 0000 FROM, 0 00145 3777 TO, 3777 00146 7766 KM12, -12 00147 7520 KM260, -260 00150 2370 BLINLC, BLKIN 00151 2211 PNLOC, PAGNUM 00152 1665 SLFLOC, SLUF1 00153 7777 INDNT, 7777 00154 2633 NBLOC, NAMBUF-1 00155 0000 OUTDEV, 0 00156 0000 ODLOC, 0 /ENTRY POINT FOR OUTPUT HANDLER 00157 0000 FILIM, 0 00160 2461 BLKOL, BLKO 00161 7577 K7577, 7577 00162 4377 BUFLOC, HNDLR+777 00163 7764 KM14, -14 /SYMBOL DEFINITIONS 4452 CRLF=JMS I CRLOC 4434 NXTWRD=JMS I NWLOC /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 1-2 4425 CALUSR=JMS I K200 4441 NXTCHR=JMS I NCLOC 4437 SPACE=JMS I SPLOC 4440 TYPE=JMS I TLOC 4435 LINEPT=JMS I LPLOC 4436 DECPNT=JMS I DPLOC 5430 ERRMES=JMP I ERRLOC 4467 GETREC=JMS I GRLOC 4473 NUMGET=JMS I NGLOC 4477 MCRLF=JMS I MCRLOC 4504 PRINT=JMS I TTLOC 4513 GRAB=JMS I GBLOC 4501 WAIT=JMS I WTLOC 4514 HMAR=JMS I HMLOC 4515 FMAR=JMS I FMLOC 4530 FILPAG=JMS I FPLOC 4551 NUMPAG=JMS I PNLOC 4421 OUT=JMS I OPLOC /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 2 0200 *200 /*****STARTING ADDRESS***** 00200 6212 CIF+10 00201 4673 JMS I K7700 00202 0010 0010 /LOCK IN USER SERVICE ROUTINE 00203 6212 CIF+10 00204 4425 CALUSR 00205 0005 0005 /CALL COMMAND DECODER 00206 2001 2001 /DEFAULT EXTENSION = .PA 00207 6211 CDF+10 00210 1670 TAD I K7617 /GET LENGTH & DEV. NO. OF INPUT FILE 00211 6201 CDF 00212 3060 DCA INDEV 00213 1112 TAD TRLOC 00214 3017 DCA 17 00215 6211 CDF+10 /PROCESS OPTIONS CHOSEN 00216 1672 TAD I K7644 00217 6201 CDF 00220 3031 DCA TEMP 00221 1031 TAD TEMP 00222 0265 AND K40 00223 7650 SNA CLA /S BIT SET? 00224 5227 JMP LK /NO 00225 1264 TAD K7000 /YES: REPLACE SKP AT STRATEGIC POINTS 00226 3663 DCA I STLOC /BY A NOP SO THAT THE PROGRAM WAITS 00227 1031 LK, TAD TEMP /AFTER EACH PAGE 00230 0125 AND K2 00231 7650 SNA CLA /W BIT SET? 00232 5235 JMP LK2 /NO 00233 1264 TAD K7000 /YES: REPLACE THE PROPER SKP BY A NOP 00234 3374 DCA WA /SO THAT THE PROGRAM WAITS BEFORE TYPING 00235 1031 LK2, TAD TEMP 00236 0266 AND K400 00237 7650 SNA CLA /P BIT SET? 00240 5274 JMP CONTIN /NO 00241 4504 PRINT /YES: GET THE LOWER LIMIT 00242 0622 TEXT "FROM " 00243 1715 00244 4000 00245 4660 JMS I IPLOC /GET TYPED NUMBER 00246 7041 CIA /FORM THE NEGATIVE 00247 3032 DCA CHAR /(DELAY PUTTING IT IN 'FROM') 00250 4504 PRINT /GET UPPER LIMIT 00251 2417 TEXT "TO " 00252 4000 00253 4660 JMS I IPLOC /GET TYPED NUMBER 00254 7041 CIA /FORM THE NEGATIVE 00255 7440 SZA 00256 3145 DCA TO 00257 5274 JMP CONTIN 00260 2526 IPLOC, INPT 00261 1552 PNFLOC, PNUMFX 00262 0414 BR1LOC, BREAK1 00263 2161 STLOC, STOP 00264 7000 K7000, 7000 /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 2-1 00265 0040 K40, 40 00266 0400 K400, 400 00267 0527 DEFLOC, DEFALT 00270 7617 K7617, 7617 00271 7620 K7620, 7620 00272 7644 K7644, 7644 00273 7700 K7700, 7700 00274 1060 CONTIN, TAD INDEV 00275 0061 AND MASK1 /ISOLATE FILE LENGTH 00276 7133 STL IAC RTR 00277 7133 STL IAC RTR /GET TWO'S COMPLEMENT 00300 1057 TAD CDIL 00301 3057 DCA CDIL 00302 3131 DCA FSTHD 00303 1060 TAD INDEV 00304 0062 AND MASK2 /ISOLATE DEVICE NUMBER 00305 3060 DCA INDEV 00306 6211 CDF+10 00307 1671 TAD I K7620 /GET STARTING BLOCK 00310 6201 CDF 00311 3550 DCA I BLINLC 00312 1060 TAD INDEV 00313 6212 CIF+10 00314 4425 CALUSR 00315 0001 0001 /GET DEVICE HANDLER 00316 3401 H, HNDLR+1 00317 5430 ERRMES 00320 1316 TAD H 00321 3127 DCA HNDLOC 00322 1134 TAD KM4 00323 3026 DCA CTR 00324 1154 TAD NBLOC 00325 3011 DCA 11 00326 1161 TAD K7577 00327 3010 DCA 10 00330 6211 CDF+10 00331 1410 TAD I 10 00332 6201 CDF 00333 0062 AND MASK2 /ISOLATE OUTPUT DEV # 00334 7450 SNA /ANY DEVICE SPECIFIED? 00335 5667 JMP I DEFLOC /NO: USE DEFAULT 00336 3155 DCA OUTDEV 00337 6211 NPUT, CDF+10 /PUT FILE NAME IN 00340 1410 TAD I 10 /BUFFER 00341 6201 CDF 00342 3411 DCA I 11 00343 2026 ISZ CTR 00344 5337 JMP NPUT 00345 1155 TAD OUTDEV 00346 6212 CIF+10 00347 4425 CALUSR 00350 0001 0001 /PULL IN HANDLER 00351 4001 OH, HNDLR+401 00352 5430 ERRMES /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 2-2 00353 1155 TAD OUTDEV 00354 6212 CIF+10 00355 4425 CALUSR 00356 0003 0003 00357 2634 FBO, NAMBUF /GETS STARTING BLOCK # 00360 0000 AFL, 0 /GETS AVAILABLE FILE LENGTH 00361 5430 ERRMES 00362 1357 TAD FBO 00363 3560 DCA I BLKOL 00364 1360 TAD AFL 00365 7440 SZA /FILE STRUCTURED DEVICE? 00366 1072 TAD KM1 /YES 00367 3157 DCA FILIM /NO 00370 1351 TAD OH /GET ENTRY POINT 00371 3156 OHGET, DCA ODLOC 00372 4467 GETREC 00373 4661 JMS I PNFLOC 00374 5662 WA, JMP I BR1LOC /CHANGED TO NOP IF W OPTION IS CHOSEN 00375 4504 PRINT 00376 2431 TEXT "TYPE RETURN WHEN READY%#" 00377 2005 00400 4022 00401 0524 00402 2522 00403 1640 00404 2710 00405 0516 00406 4022 00407 0501 00410 0431 00411 4543 00412 0000 00413 4501 WAIT 00414 1032 BREAK1, TAD CHAR 00415 3144 DCA FROM 00416 1065 BREAK, TAD LBLOC 00417 3011 DCA 11 00420 1070 TAD SPLIST 00421 3012 DCA 12 00422 2056 REENT, ISZ FLG 00423 4441 NXTCHR /READ FIRST CHARACTER 00424 1135 TAD KM211 00425 7450 SNA /IS IT A TAB? 00426 2132 ISZ TAB /YES: SET FLAG 00427 1134 TAD KM4 00430 7450 SNA /IS IT A CARRIAGE RETURN? 00431 5316 JMP CRS 00432 1043 TAD KM23 00433 7650 SNA CLA /IS IT A SPACE? 00434 2051 ISZ INDENT /YES: THERE IS AN INDENTATION 00435 3046 REINIT, DCA PSP 00436 3055 GWORD, DCA EXACT 00437 3047 DCA LNCHAR 00440 4434 NXTWRD /GET THE NEXT WORD 00441 4343 JMS LNINIT /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 2-3 00442 7410 SKP 00443 4434 GWORD1, NXTWRD 00444 1046 TAD PSP 00445 1075 PROC, TAD CHARCT 00446 1053 TAD LLNG 00447 3031 DCA TEMP 00450 1031 TAD TEMP 00451 1022 TAD MLNG 00452 7500 SMA /WILL IT FIT ON THIS LINE? 00453 5726 JMP I EOLOC /NO: DUMP THIS LINE 00454 7200 CLA /YES 00455 4361 JMS ADDWRD /ADD IT TO THE LINE BUFFER 00456 1033 TAD SPL 00457 3046 DCA PSP /UPDATE PSP 00460 1054 TAD LNFD 00461 7640 SZA CLA /LINE-FEED FLAG SET? 00462 5314 JMP CRS0 /YES: DETERMINE NUMBER OF LF'S 00463 1132 TAD TAB 00464 1051 TAD INDENT 00465 7640 SZA CLA /IDENTATION NEXT? 00466 5320 JMP IND /YES 00467 1050 TAD EOFLG 00470 7650 SNA CLA /END OF FILE? 00471 5243 JMP GWORD1 /NO: PROCEED AS USUAL 00472 4530 FILPAG /FINISH UP THE LAST PAGE 00473 1313 FIN, TAD EOFCHR /AND CLOSE THE FILE 00474 4421 OUT 00475 1024 TAD KM600 /INCOMPLETE PAGE LEFT? 00476 7041 CIA 00477 1020 TAD CHRCTR 00500 7640 SZA CLA 00501 4712 JMS I WRLOC /YES 00502 1155 TAD OUTDEV 00503 6212 CIF+10 00504 4425 CALUSR 00505 0004 0004 00506 2634 NAMBUF 00507 0000 BLCT, 0 00510 5430 ERRMES 00511 5427 JMP I MON /AND GO HOME 00512 2445 WRLOC, WRITE 00513 0232 EOFCHR, 232 00514 3054 CRS0, DCA LNFD /RESET LINE-FEED FLAG 00515 4435 LINEPT 00516 4452 CRS, CRLF 00517 5216 JMP BREAK 00520 4435 IND, LINEPT 00521 1065 TAD LBLOC 00522 3011 DCA 11 00523 1070 TAD SPLIST 00524 3012 DCA 12 00525 5235 JMP REINIT /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 2-4 00526 0600 EOLOC, EOL 00527 6212 DEFALT, CIF+10 00530 4425 CALUSR 00531 0001 0001 00532 2424 DEVICE TTY 00533 3100 00534 4001 HNDLR+401 00535 5430 ERRMES 00536 1333 TAD .-3 00537 3155 DCA OUTDEV 00540 1334 TAD .-4 00541 5742 JMP I .+1 00542 0371 OHGET 00543 0000 LNINIT, 0 00544 1153 TAD INDNT 00545 7040 CMA 00546 3053 DCA LLNG 00547 1053 TAD LLNG 00550 3047 DCA LNCHAR 00551 1153 TAD INDNT 00552 3031 DCA TEMP 00553 2031 INREP, ISZ TEMP 00554 7410 SKP 00555 5743 JMP I LNINIT 00556 1045 TAD K240 00557 3411 DCA I 11 00560 5353 JMP INREP 00561 0000 ADDWRD, 0 /ROUTINE TO ADD A WORD TO THE CURRENT LINE 00562 1031 TAD TEMP 00563 3053 DCA LLNG 00564 1066 TAD WBLOC 00565 3013 DCA 13 00566 1046 TAD PSP 00567 7450 SNA 00570 5376 JMP DOWN 00571 1072 TAD KM1 00572 3412 DCA I 12 00573 3411 DCA I 11 00574 2023 ISZ SPTOT 00575 2047 ISZ LNCHAR 00576 4540 DOWN, JMS I TRNLOC 00577 5761 JMP I ADDWRD 0600 PAGE /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 3 00600 7650 EOL, SNA CLA /EXACT LINE? 00601 5315 JMP OK1 /YES: SET FLAG 00602 1075 TAD CHARCT /NO 00603 1046 TAD PSP 00604 7041 CIA 00605 1031 TAD TEMP 00606 1022 TAD MLNG 00607 3031 DCA TEMP 00610 1136 TAD SYLS 00611 7450 SNA /ANY SYLLABLES? 00612 5274 JMP OP1 00613 7041 CIA 00614 3100 DCA ZONK 00615 1100 TAD ZONK 00616 7041 CIA 00617 1137 TAD SPLLOC 00620 3126 SYLREP, DCA PTR 00621 1046 TAD PSP 00622 7001 IAC 00623 1526 TAD I PTR 00624 1031 TAD TEMP 00625 7540 SMA SZA /DOES THE LONGEST SUB-WORD FIT? 00626 7410 SKP /NO: RECURSE 00627 5236 JMP EUREKA /YES 00630 2100 ISZ ZONK /ANY SUB-WORDS OF THE SUB-WORD? 00631 7410 SKP /YES 00632 5274 JMP OP1 /NO 00633 7240 STA 00634 1126 TAD PTR 00635 5220 JMP SYLREP 00636 3100 EUREKA, DCA ZONK 00637 1075 TAD CHARCT 00640 7041 CIA 00641 1526 TAD I PTR 00642 3360 DCA SHUFCT 00643 1526 TAD I PTR 00644 3075 DCA CHARCT 00645 4761 JMS I ADLOC 00646 1357 TAD K255 00647 3411 DCA I 11 00650 2047 ISZ LNCHAR 00651 3075 DCA CHARCT 00652 1066 TAD WBLOC 00653 3015 DCA 15 /MAKE REMAINING PART OF WORD INTO NEXT 00654 1413 TAD I 13 /TAKE CARE OF HYPHENATED WORDS 00655 1362 TAD KM255 00656 7450 SNA /WAS THE WORD SEPARATED AT A HYPHEN? 00657 5265 JMP SHF1 00660 1357 TAD K255 /NO: KEEP LAST CHARACTER 00661 7410 SKP 00662 1413 SHUFFL, TAD I 13 00663 3415 DCA I 15 00664 2075 ISZ CHARCT 00665 2360 SHF1, ISZ SHUFCT /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 3-1 00666 5262 JMP SHUFFL 00667 1100 TAD ZONK 00670 7450 SNA 00671 5317 JMP OK 00672 3031 DCA TEMP 00673 5275 JMP OUTPUT 00674 7200 OP1, CLA 00675 1354 OUTPUT, TAD FLIP 00676 7650 SNA CLA 00677 5331 JMP BACKWD 00700 3354 DCA FLIP 00701 1070 SPNOCH, TAD SPLIST 00702 3012 DCA 12 00703 1023 TAD SPTOT 00704 7041 CIA 00705 3026 DCA CTR 00706 2412 SPINC, ISZ I 12 /INCREMENT SPACES TO FILL LINE 00707 2031 ISZ TEMP 00710 7410 SKP 00711 5317 JMP OK /FINISHED 00712 2026 ISZ CTR 00713 5306 JMP SPINC 00714 5301 JMP SPNOCH 00715 4761 OK1, JMS I ADLOC 00716 2055 ISZ EXACT 00717 4435 OK, LINEPT 00720 1070 TAD SPLIST 00721 3012 DCA 12 00722 1065 TAD LBLOC 00723 3011 DCA 11 00724 1055 TAD EXACT 00725 7640 SZA CLA 00726 5756 JMP I GWLOC 00727 4753 JMS I LNILOC 00730 5755 JMP I PRCLOC 00731 2354 BACKWD, ISZ FLIP /ESSENTIALLY WHAT'S GOING ON HERE IS 00732 1023 ZNOCH, TAD SPTOT /THAT I'M PADDING OUT EVERY OTHER LINE 00733 7041 CIA /WITH BLANKS FROM RIGHT TO LEFT INSTEAD 00734 3026 DCA CTR /OF FROM LEFT TO RIGHT; IT'S MORE PLEAS- 00735 1070 TAD SPLIST /ING TO THE EYE THAT WAY 00736 1023 TAD SPTOT 00737 3126 DCA PTR 00740 2526 ZINC, ISZ I PTR 00741 2031 ISZ TEMP 00742 7410 SKP 00743 5317 JMP OK 00744 2026 ISZ CTR 00745 7410 SKP 00746 5332 JMP ZNOCH 00747 7240 STA 00750 1126 TAD PTR 00751 3126 DCA PTR 00752 5340 JMP ZINC 00753 0543 LNILOC, LNINIT /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 3-2 00754 0000 FLIP, 0 00755 0445 PRCLOC, PROC 00756 0436 GWLOC, GWORD 00757 0255 K255, 255 00760 0000 SHUFCT, 0 00761 0561 ADLOC, ADDWRD 00762 7523 KM255, -255 00763 6201 ERROR, CDF /ERROR HANDLER FOR USR 00764 6212 CIF+10 00765 4425 CALUSR 00766 0007 0007 00767 0000 N, 0 00770 7402 HLT 00771 5427 JMP I MON /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 4 1000 PAGE 01000 0000 NWORD, 0 /ROUTINE TO GET THE NEXT WORD IN THE INPUT 01001 7200 CLA /STREAM 01002 3033 DCA SPL 01003 1066 TAD WBLOC 01004 3010 DCA 10 01005 3075 DCA CHARCT 01006 3136 DCA SYLS 01007 1137 TAD SPLLOC 01010 3015 DCA 15 01011 3333 DCA SPCTNW 01012 1051 TAD INDENT 01013 7650 SNA CLA 01014 5227 JMP TABCHK 01015 3051 DCA INDENT 01016 1045 REP1, TAD K240 01017 2075 ISZ CHARCT 01020 3410 DCA I 10 01021 4441 NXTCHR 01022 1071 TAD KM240 01023 7650 SNA CLA 01024 5216 JMP REP1 01025 1032 TAD CHAR 01026 5254 JMP LOOK 01027 1132 TABCHK, TAD TAB 01030 7650 SNA CLA /HAS A TAB BEEN FOUND? 01031 5245 JMP NEXT1 /NO 01032 1133 TAD MTABS /YES: PUT IN SPACES 01033 7450 SNA /MORE THAN ONE SPACE? 01034 5216 JMP REP1 /NO 01035 3031 DCA TEMP 01036 1045 TABREP, TAD K240 01037 2075 ISZ CHARCT 01040 3410 DCA I 10 01041 2031 ISZ TEMP 01042 5236 JMP TABREP 01043 3132 DCA TAB /RESET THE FLAG 01044 5216 JMP REP1 01045 1056 NEXT1, TAD FLG 01046 7650 SNA CLA /NEXT CHARACTER IN CHAR? 01047 5253 JMP NEXT /NO: PROCEED 01050 3056 DCA FLG /YES: RESET FLAG 01051 1032 NEXT2, TAD CHAR /GET NEXT CHAR 01052 5254 JMP LOOK /PROCEED 01053 4441 NEXT, NXTCHR 01054 1044 LOOK, TAD KM215 01055 7450 SNA /CARRIAGE RETURN? 01056 5350 JMP CR /YES 01057 1043 TAD KM23 /NO 01060 7450 SNA /SPACE? 01061 5334 JMP SPC /YES 01062 1072 TAD KM1 /NO 01063 7450 SNA /EXCLAMATION POINT? 01064 5315 JMP ENDPNC /YES /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 4-1 01065 1163 TAD KM14 /NO 01066 7450 SNA /HYPHEN? 01067 5305 JMP HYPHEN /YES 01070 1072 TAD KM1 /NO 01071 7450 SNA /PERIOD? 01072 5730 JMP I PCLOC /YES: CHECK IT OUT 01073 1332 TAD KM21 /NO 01074 7450 SNA /QUESTION MARK? 01075 5315 JMP ENDPNC /YES 01076 1331 TAD KM37 01077 7650 SNA CLA /^? 01100 5311 JMP PART /YES 01101 1032 REGES, TAD CHAR /NO: JUST A REGULAR CHARACTER 01102 2075 ISZ CHARCT /INCREMENT CHARACTER COUNT 01103 3410 DCA I 10 /PLACE CHARACTER IN WORD BUFFER 01104 5253 JMP NEXT 01105 2136 HYPHEN, ISZ SYLS 01106 1075 TAD CHARCT 01107 3415 DCA I 15 01110 5301 JMP REGES 01111 2136 PART, ISZ SYLS 01112 1075 TAD CHARCT 01113 3415 DCA I 15 01114 5253 JMP NEXT 01115 1032 ENDPNC, TAD CHAR 01116 2075 ISZ CHARCT /INCREMENT CHARACTER COUNT 01117 3410 DCA I 10 /PLACE CHARACTER IN WORD BUFFER 01120 4441 NXTCHR /GET NEXT CHARACTER 01121 1044 TAD KM215 /CARRIAGE RETURN? 01122 7640 SZA CLA 01123 5326 JMP IG /NO: PROCEED AS USUAL 01124 2033 ISZ SPL /YES: INCREMENT SPACE COUNT 01125 5350 JMP CR /TREAT LIKE OTHER CR'S 01126 1032 IG, TAD CHAR 01127 5254 JMP LOOK 01130 1600 PCLOC, PERCHK 01131 7741 KM37, -37 01132 7757 KM21, -21 01133 0000 SPCTNW, 0 01134 2333 SPC, ISZ SPCTNW 01135 4441 NXTCHR 01136 1044 TAD KM215 01137 7450 SNA /CARRIAGE RETURN? 01140 5350 JMP CR /YES: TREAT AS SUCH 01141 1043 TAD KM23 /NO 01142 7650 SNA CLA /ANOTHER SPACE? 01143 5334 JMP SPC /NO: LOOK FOR MORE 01144 1333 TAD SPCTNW 01145 3033 DCA SPL /FIX UP SPACE COUNT 01146 2056 ISZ FLG 01147 5600 JMP I NWORD /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 4-2 01150 2033 CR, ISZ SPL /INCREMENT SPACE COUNTER 01151 2056 CR1, ISZ FLG /THROW UP FLAG (NEXT CHAR IN CHAR) 01152 4441 NXTCHR /GET THE NEXT CHARACTER 01153 1135 TAD KM211 01154 7450 SNA /TAB? 01155 2132 ISZ TAB /YES: SET FLG 01156 1134 TAD KM4 01157 7450 SNA /CARRIAGE RETURN? 01160 2054 ISZ LNFD /YES: SET FLAG 01161 1043 TAD KM23 01162 7650 SNA CLA /SPACE? 01163 2051 ISZ INDENT /YES: THROW UP FLAG 01164 5600 JMP I NWORD 01165 4473 NL, NUMGET /GET ARGUMENT 01166 7450 SNA /0 (OR MISSING)? 01167 1374 TAD K102 /YES: DEFAULT IS 66(10) 01170 1163 TAD KM14 /ADJUST FOR MARGINS 01171 7041 CIA 01172 3076 DCA LINES 01173 5552 JMP I SLFLOC 01174 0102 K102, 102 1200 PAGE /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 5 01200 0000 DECPT, 0 /ROUTINE TO PRINT AC CONTENTS IN DECIMAL 01201 3227 DCA DTEMP 01202 3074 DCA DIG 01203 3260 DCA DPTFLG 01204 1230 TAD DECLOC 01205 3126 DCA PTR 01206 1042 TAD KM3 01207 3237 DCA DPCTR 01210 1227 TAD DTEMP 01211 1526 SUB, TAD I PTR 01212 7510 SPA 01213 5216 JMP .+3 01214 2074 ISZ DIG 01215 5211 JMP SUB 01216 2126 ISZ PTR 01217 1526 TAD I PTR 01220 4240 JMS DPT 01221 2126 ISZ PTR 01222 2237 ISZ DPCTR 01223 5211 JMP SUB 01224 1257 TAD K260 01225 4421 OUT 01226 5600 JMP I DECPT 01227 0000 DTEMP, 0 01230 1231 DECLOC, .+1 01231 6030 -1750 01232 1750 1750 01233 7634 -0144 01234 0144 0144 01235 7766 -12 01236 0012 12 01237 0000 DPCTR, 0 01240 0000 DPT, 0 01241 3227 DCA DTEMP 01242 1074 TAD DIG /GET DIGIT 01243 7450 SNA /IS IT ZERO? 01244 5253 JMP ZER /IS IT ZERO? 01245 1257 DIGPT, TAD K260 /FORM ANSCII CODE 01246 4421 OUT 01247 2260 ISZ DPTFLG 01250 3074 DCA DIG 01251 1227 DXIT, TAD DTEMP 01252 5640 JMP I DPT 01253 1260 ZER, TAD DPTFLG /ANY DIGITS ALREADY PRINTED? 01254 7650 SNA CLA 01255 5251 JMP DXIT /NO: NO PRINTING DONE 01256 5245 JMP DIGPT /YES PRINT THE DIGIT 01257 0260 K260, 260 01260 0000 DPTFLG, 0 01261 0000 BLIP, 0 /ROUTINE TO PRINT CARRIAGE RETURN, LINE FEED 01262 1107 TAD K215 /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 5-1 01263 4421 OUT 01264 1110 TAD K212 01265 4421 OUT 01266 5661 JMP I BLIP 01267 0000 MCR, 0 /PRINTS MULTIPLE CRLF'S; CALLED WITH 01270 7041 CIA /NUMBER OF CRLF'S IN THE AC 01271 3100 DCA ZONK 01272 1107 TAD K215 01273 4421 OUT 01274 1100 TAD ZONK 01275 7650 SNA CLA /ZERO? 01276 5667 JMP I MCR /YES: DONE 01277 1110 MCREP, TAD K212 01300 4421 OUT 01301 2100 ISZ ZONK 01302 5277 JMP MCREP 01303 5667 JMP I MCR 01304 0000 WT, 0 /ROUTINE TO WAIT FOR A CARRIAGE RETURN /CHECK FOR PARTIAL PRINTOUT 01305 1144 TAD FROM /SO THAT YOU ONLY WAIT FOR THE 01306 7710 SPA CLA /PAGES TO ACTUALLY BE PRINTED 01307 5704 JMP I WT /EXIT IF FIRST PAGE NOT YET REACHED 01310 6031 W, KSF 01311 5310 JMP .-1 01312 6036 KRB 01313 1044 TAD KM215 01314 7640 SZA CLA 01315 5310 JMP W 01316 5704 JMP I WT 01317 0000 CRLNFD, 0 01320 7200 CLA 01321 1102 TAD SPCR 01322 3100 DCA ZONK 01323 4261 WIEDER, JMS BLIP 01324 2106 ISZ LINCTR 01325 7410 SKP 01326 5332 JMP INJACK 01327 2100 ISZ ZONK 01330 5323 JMP WIEDER 01331 5717 JMP I CRLNFD 01332 4515 INJACK, FMAR /PRINT THE PAGE FOOT AND MARGIN 01333 4514 HMAR 01334 5717 JMP I CRLNFD 01335 4473 SPCC, NUMGET /GET THE NUMBER FOLLOWING IT 01336 7450 SNA /ZERO? 01337 7001 IAC /YES: DEFAULT IS ONE 01340 7041 CIA /FORM THE NEGATIVE 01341 3357 DCA CSPCT /SET UP COUNTER 01342 4435 LINEPT /PRINT THE PENDING LINE 01343 3047 DCA LNCHAR 01344 3053 DCA LLNG /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 5-2 01345 1102 TAD SPCR 01346 3026 DCA CTR /SAVE OLD SPCR 01347 7240 STA /GET -1 01350 3102 DCA SPCR /ONE CR-LF AT A TIME 01351 4452 CSPR, CRLF 01352 2357 ISZ CSPCT 01353 5351 JMP CSPR 01354 1026 TAD CTR /RESTORE SPCR 01355 3102 DCA SPCR 01356 5542 JMP I SLUFLC 01357 0000 CSPCT, 0 01360 0000 TRNSF, 0 01361 1075 TAD CHARCT 01362 7450 SNA 01363 5760 JMP I TRNSF 01364 7041 CIA 01365 3031 DCA TEMP 01366 1413 TR1, TAD I 13 01367 3411 DCA I 11 01370 2047 ISZ LNCHAR 01371 2031 ISZ TEMP 01372 5366 JMP TR1 01373 5760 JMP I TRNSF 1400 PAGE /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 6 01400 0000 LNPT, 0 /ROUTINE TO PRINT THE NEXT LINE 01401 7200 CLA 01402 1131 TAD FSTHD /THIS THE FIRST HEAD? 01403 7650 SNA CLA 01404 4514 HMAR /YES 01405 7001 IAC /RESET THIS FLAG 01406 3131 DCA FSTHD 01407 1047 TAD LNCHAR 01410 7650 SNA CLA /ANY LINE TO BE PRINTED? 01411 5600 JMP I LNPT /NOPE 01412 1065 TAD LBLOC /POINTER TO LINE BUFFER 01413 3011 DCA 11 01414 1103 TAD KSP 01415 4437 SPACE 01416 1047 TAD LNCHAR 01417 7041 CIA 01420 3031 DCA TEMP 01421 1070 TAD SPLIST 01422 3012 DCA 12 01423 1411 LNOCH, TAD I 11 01424 7450 SNA /IF ZERO GET NO. OF SPACES TO BE TYPED 01425 5235 JMP SPPT 01426 4314 JMS TRTYPE 01427 2031 ISZ TEMP 01430 5223 JMP LNOCH 01431 4452 RET, CRLF 01432 3046 DCA PSP 01433 3023 DCA SPTOT 01434 5600 JMP I LNPT 01435 2031 SPPT, ISZ TEMP 01436 7410 SKP 01437 5231 JMP RET 01440 7001 IAC 01441 1412 TAD I 12 01442 4437 SPACE 01443 5223 JMP LNOCH 01444 0000 TTYP, 0 /SUBROUTINE TO TYPE MESSAGE FOLLOWING ITS CALL. /MESSAGE CREATED BY PSEUDO-OP "TEXT". NOTE /THAT THE CHARACTER "@" CAN'T BE USED & THAT /THE CHARACTERS % AND # ARE TRANSLATED INTO /CARRIAGE RETURN & LINE-FEED RESPECTIVELY. 01445 7240 CLA CMA /SET AC TO -1 01446 1244 TAD TTYP /ADD RETURN ADDRESS 01447 3014 DCA 14 01450 1414 TAD I 14 01451 3031 DCA TEMP /SAVE IT 01452 1031 TAD TEMP 01453 7012 RTR; RTR; RTR /ROTATE 6 BITS RIGHT 01454 7012 01455 7012 01456 4262 JMS DECODE 01457 1031 TAD TEMP /GET DATA AGAIN 01460 4262 JMS DECODE /TYPE RIGHT HALF 01461 5250 JMP TTYP+4 /CONTINUE /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 6-1 01462 0000 DECODE, 0 /ROUTINE TO TYPE CHARACTER IN AC BITS 6-11 01463 0311 AND MASK5 /ZERO AC BITS 0-5 01464 7450 SNA /IS IT END OF TEXT? 01465 5414 JMP I 14 /YES: RETURN TO LOCATION FOLLOWING TEXT 01466 1310 TAD KM40 /SUBTRACT 40 01467 7500 SMA /RESULT < 40? 01470 5273 JMP DECODE+11 /NO 01471 1312 TAD K340 /YES: ADD 340 01472 5306 JMP PRI /PRINT 01473 1042 TAD KM3 /SUBTRACT 3 01474 7440 SZA /IS IT ZERO? 01475 5300 JMP DECODE+16 /NO 01476 1110 TAD K212 /YES: CODE 43 (0R #) IS LINE FEED 01477 5306 JMP PRI /PRINT 01500 1111 TAD KM2 01501 7440 SZA /IS IT ZERO? 01502 5305 JMP DECODE+23 /NO 01503 1107 TAD K215 /YES: CODE 45 (OR %) IS CARRIAGE RET. 01504 5306 JMP PRI 01505 1313 TAD K245 /ADD 245 TO OTHERS 01506 4440 PRI, TYPE 01507 5662 JMP I DECODE 01510 7740 KM40, -40 01511 0077 MASK5, 0077 01512 0340 K340, 340 01513 0245 K245, 245 01514 0000 TRTYPE, 0 /ROUTINE TO PERFORM TRANSLATION 01515 3100 DCA ZONK 01516 1112 TAD TRLOC 01517 3016 DCA 16 01520 1416 TREP, TAD I 16 01521 7450 SNA 01522 5333 JMP NORMAL /END OF LIST: NO MATCH FOUND 01523 1100 TAD ZONK /COMPARE 01524 7650 SNA CLA /A MATCH? 01525 5330 JMP .+3 /YES: TYPE THE SUBSTITUTE 01526 2016 ISZ 16 /NO: INCREMENT POINTER 01527 5320 JMP TREP /AND TRY AGAIN 01530 1416 TAD I 16 01531 4421 OUT 01532 5714 JMP I TRTYPE 01533 1100 NORMAL, TAD ZONK 01534 5331 JMP .-3 01535 0000 GB, 0 /ROUTINE TO GET NEXT NON-SPACE CHARACTER 01536 4441 GBREP, NXTCHR 01537 1071 TAD KM240 01540 7650 SNA CLA 01541 5336 JMP GBREP 01542 1032 TAD CHAR 01543 5735 JMP I GB 01544 0000 TYP, 0 /ROUTINE TO TYPE ANSCII CHARACTER IN THE AC /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 6-2 01545 6046 TLS 01546 6041 TSF 01547 5346 JMP .-1 01550 7200 CLA 01551 5744 JMP I TYP 01552 0000 PNUMFX, 0 /SETS UP VERTICAL SPACING WHEN A 01553 1105 TAD MARG /PAGE NUMBER IS TYPED 01554 7110 CLL RAR /WE SPACE MARG1 LINES, TYPE 01555 3123 DCA MARG1 /THE PAGE NUMBER, THEN SPACE 01556 7004 RAL /MARG2 LINES FOR A PAGE HEAD 01557 1123 TAD MARG1 /VICE VERSA FOR A PAGE FOOT 01560 3124 DCA MARG2 01561 5752 JMP I PNUMFX 01562 0000 SP, 0 /SPACE PRINTER; CALLED WITH NUMBER OF 01563 7041 CIA /SPACES IN THE AC 01564 3100 DCA ZONK 01565 1045 SPREP, TAD K240 01566 4421 OUT 01567 2100 ISZ ZONK 01570 5365 JMP SPREP 01571 5762 JMP I SP 1600 PAGE /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 7 01600 1075 PERCHK, TAD CHARCT /CHECK FOR DIRECTIONS 01601 7640 SZA CLA /THIS THE FIRST CHARACTER IN THE WORD? 01602 5766 JMP I EPLOC /NO 01603 4441 NXTCHR /YES: GET NEXT CHAR 01604 3253 DCA FST1 /SAVE THE FIRST CHARACTER AFTER THE . 01605 1255 TAD TABLOC 01606 3254 DCA P /P POINTS TO THE OPTION TABLE 01607 1257 TAD TABLEN 01610 3367 DCA CECT /NUMBER OF OPTIONS 01611 4234 JMS FST /TRY TO FIND FIRST LETTER IN TABLE 01612 4441 NXTCHR /FIRST CHAR FOUND; TRY TO MATCH 2ND 01613 7200 CLA 01614 2254 SCD, ISZ P /SET POINTER TO NEXT LOCATION IN TABLE 01615 1032 TAD CHAR 01616 1654 TAD I P 01617 7650 SNA CLA /2ND CHARACTER MATCHES? 01620 5230 JMP F /YES 01621 2367 ISZ CECT /NO: END OF TABLE? 01622 7410 SKP /NO 01623 5265 JMP SLUF1 /YES: IGNORE THIS LINE 01624 2254 ISZ P 01625 2254 ISZ P /SET POINTER TO NEXT 1ST CHAR IN TABLE 01626 4234 JMS FST /TRY TO FIND FIRST LETTER IN TABLE 01627 5214 JMP SCD 01630 2254 F, ISZ P /SET POINTER TO POINT TO PROPER 01631 1654 TAD I P /HANDLER AND GO THERE 01632 3254 DCA P 01633 5654 JMP I P 01634 0000 FST, 0 /ROUTINE TO FIND NEXT TABLE ENTRY WHOSE FIRST 01635 1253 SRCH, TAD FST1 /LETTER MATCHES THE FIRST LETTER SEEN 01636 1654 TAD I P 01637 7650 SNA CLA /A MATCH? 01640 5634 JMP I FST /YES: EXIT 01641 2254 ISZ P /NO: BUMP POINTER UP BY 3 01642 2254 ISZ P 01643 2254 ISZ P 01644 2367 ISZ CECT /END OF TABLE? 01645 5235 JMP SRCH /NO: CONTINUE SEARCH 01646 1256 TAD DOT /YES: TREAT AS PART OF A WORD 01647 2075 ISZ CHARCT 01650 3410 DCA I 10 /ADD PERIOD TO THIS WORD 01651 5652 JMP I .+1 01652 1051 NEXT2 /GIVE NON-MATCHING CHAR TO NWORD 01653 0000 FST1, 0 01654 0000 P, 0 01655 2052 TABLOC, TABLE 01656 0256 DOT, 256 /ASCII FOR A PERIOD 01657 7756 TABLEN, -22 /18 OPTIONS 01660 4473 LL, NUMGET /GET THE NUMBER FOLLOWING IT 01661 7450 SNA /ZERO? 01662 1267 TAD K101 /YES: DEFAULT IS 65 01663 7041 CIA /MEMO: VERSION 84 PAL8-V9B 02/06/75 PAGE 7-1 01664 3022 DCA MLNG 01665 4357 SLUF1, JMS SLUFR 01666 5770 JMP I NLOC 01667 0101 K101, 101 01670 4435 BR, LINEPT /PRINT THE CURRENT LINE 01671 5310 JMP SLUF 01672 4473 NE, NUMGET /GET NUMBER FOLLOWING 'NE' 01673 7650 SNA CLA /ZERO? 01674 2143 ISZ NMBR /YES: DEFAULT IS 1 01675 7001 IAC /GET A ONE 01676 1102 TAD SPCR 01677 7640 SZA CLA /IF DOUBLE SPACE MODE 01700 1143 TAD NMBR /DOUBLE THE ARGUMENT 01701 1143 TAD NMBR 01702 1106 TAD LINCTR /SUBTRACT NO. OF LINES LEFT 01703 7750 SPA SNA CLA /ENOUGH SPACE LEFT? 01704 5265 JMP SLUF1 /YES: NO PROBLEM 01705 4530 BP, FILPAG /FINISH THIS PAGE 01706 7420 SNL 01707 4514 HMAR /AND TYPE THE MARGIN AND HEADING FOR 01710 4357 SLUF, JMS SLUFR /THE NEXT IF NECESSARY 01711 3047 DCA LNCHAR 01712 5713 JMP I .+1 01713 0416 BREAK 01714 4473 CE, NUMGET /GET THE NUMBER FOLLOWING 'CE' 01715 7450 SNA /ZERO? 01716 7001 IAC /YES: DEFAULT IS ONE 01717 7040 CMA /COMPLEMENT NUMBER 01720 3367 DCA CECT 01721 4357 JMS SLUFR /GET RID OF THE REST OF THIS LINE 01722 4435 CELP, LINEPT 01723 3047 DCA LNCHAR 01724 3053 DCA LLNG 01725 1065 TAD LBLOC 01726 3011 DCA 11 01727 1070 TAD SPLIST 01730 3012 DCA 12 01731 2367 ISZ CECT /FINISHED PROCESSING CENTER'S? 01732 7410 SKP /NO: CONTINUE 01733 5541 JMP I RELOCX /YES: GO TO REENT (** RELOCX