
/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<RELOC RH 2/6/75 **)
01734  1022          TAD MLNG        /WE WILL TRUNCATE LINES LONGER THAN
01735  3031          DCA TEMP        /THE SPECIFIED LINE LENGTH
01736  3411          DCA I 11        /SET UP PRECEEDING SPACE FOR LINEPT
01737  2047          ISZ LNCHAR      /AND COUNT IT
01740  4441  LLOOP,  NXTCHR          /READ A CHARACTER
01741  1044          TAD KM215
01742  7650          SNA CLA         /CARRIAGE RETURN?
01743  5351          JMP CNTR        /YES: END OF LINE
01744  1032          TAD CHAR        /NO: PUT IT INTO THE LINE BUFFER
01745  3411          DCA I 11
01746  2047          ISZ LNCHAR      /COUNT IT
01747  2031          ISZ TEMP        /LINE FULL?

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 7-2

01750  5340          JMP LLOOP       /NO: CONTINUE
01751  1047  CNTR,   TAD LNCHAR      /CALCULATE SLOP
01752  1022          TAD MLNG
01753  7041          CIA
01754  7110          CLL RAR         /DIVIDE BY TWO
01755  3412          DCA I 12        /PUT THIS AMT IN THE SPACE BUFFER
01756  5322          JMP CELP

01757  0000  SLUFR,  0
01760  1032          TAD CHAR
01761  1044  SLUF2,  TAD KM215
01762  7650          SNA CLA         /CARRIAGE RETURN (END OF LINE)?
01763  5757          JMP I SLUFR     /YES
01764  4441          NXTCHR          /NO: SLOUGH OFF ANOTHER CHARACTER
01765  5361          JMP SLUF2

01766  1115  EPLOC,  ENDPNC
01767  0000  CECT,   0
01770  1151  NLOC,   CR1

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 8

01771  4513  TR,     GRAB
01772  7041          CIA
01773  3417          DCA I 17
01774  4441          NXTCHR          /GET ITS SUBSTITUTE
01775  3417          DCA I 17
01776  3417          DCA I 17
01777  7240          STA
02000  1017          TAD 17
02001  3017          DCA 17
02002  5552          JMP I SLFLOC

02003  4473  TB,     NUMGET          /GET NEW NUMBER
02004  7450          SNA             /ZERO?
02005  1212          TAD K7          /YES: DEFAULT IS 7
02006  7041          CIA             /NO: MAKE THE CHANGE
02007  7001          IAC
02010  3133          DCA MTABS
02011  5552          JMP I SLFLOC
02012  0007  K7,     7

02013  2117  PH,     ISZ PHFLG       /SET UP FLAG
02014  3121          DCA PFFLG
02015  4441          NXTCHR          /EXAMINE NEXT CHAR
02016  1340          TAD KM262
02017  3120          DCA PHSKP       /SET PHSKP FLAG
02020  5552          JMP I SLFLOC

02021  2121  PF,     ISZ PFFLG       /SET PAGE FOOT FLAG
02022  3117          DCA PHFLG
02023  4441          NXTCHR          /EXAMINE THE NEXT CHAR
02024  1340          TAD KM262
02025  3122          DCA PFSKP       /SET PFSKP FLAG
02026  5552          JMP I SLFLOC

02027  4435  SQ,     LINEPT          /FINISH THE PENDING LINE FIRST
02030  4473          NUMGET          /GET THE NUMBER FOLLOWING 'SQ'
02031  1103          TAD KSP
02032  3103          DCA KSP         /MOVE THE LEFT MARGIN IN
02033  1143          TAD NMBR        /DOUBLE THE INDENTATION
02034  1143          TAD NMBR
02035  1022          TAD MLNG
02036  3022          DCA MLNG        /MOVE THE RIGHT MARGIN IN
02037  5542          JMP I SLUFLC

02040  4435  RM,     LINEPT
02041  1103          TAD KSP         /TWICE KSP MINUS 4 IS WHAT SHOULD
02042  1103          TAD KSP         /BE ADDED TO THE LINE LENGTH
02043  1134          TAD KM4
02044  7041          CIA             /FORM 2'S COMPLEMENT
02045  1022          TAD MLNG
02046  3022          DCA MLNG        /RESTORE LINE LENGTH
02047  1125          TAD K2
02050  3103          DCA KSP         /RESTORE LEFT MARGIN
02051  5542          JMP I SLUFLC


/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 8-1

02052  7476  TABLE,  -302    /B
02053  7460          -320    /P
02054  1705          BP
02055  7476          -302    /B
02056  7456          -322    /R
02057  1670          BR
02060  7475          -303    /C
02061  7473          -305    /E
02062  1714          CE
02063  7474          -304    /D
02064  7455          -323    /S
02065  2175          DS
02066  7455          -323    /S
02067  7455          -323    /S
02070  2172          SS
02071  7464          -314    /L
02072  7464          -314    /L
02073  1660          LL
02074  7460          -320    /P
02075  7470          -310    /H
02076  2013          PH
02077  7460          -320    /P
02100  7472          -306    /F
02101  2021          PF
02102  7455          -323    /S
02103  7460          -320    /P
02104  1335          SPCC
02105  7454          -324    /T
02106  7476          -302    /B
02107  2003          TB
02110  7454          -324    /T
02111  7456          -322    /R
02112  1771          TR
02113  7455          -323    /S
02114  7457          -321    /Q
02115  2027          SQ
02116  7456          -322    /R
02117  7463          -315    /M
02120  2040          RM
02121  7462          -316    /N
02122  7473          -305    /E
02123  1672          NE
02124  7467          -311    /I
02125  7462          -316    /N
02126  2200          IN
02127  7473          -305    /E
02130  7460          -320    /P
02131  2204          EP
02132  7462          -316    /N
02133  7460          -320    /P
02134  2206          NP
02135  7462          -316    /N
02136  7464          -314    /L
02137  1165          NL


/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 8-2

02140  7516  KM262,  -262

02141  0000  FM,     0       /ROUTINE TO PRINT THE FOOT MARGIN AND PAGE NO.
02142  1121          TAD PFFLG
02143  7640          SZA CLA         /PAGE FOOT FLAG SET?
02144  5350          JMP FOOT        /YES
02145  1105  FSKP,   TAD MARG        /NO
02146  4477          MCRLF
02147  5361          JMP STOP
02150  1122  FOOT,   TAD PFSKP
02151  7640          SZA CLA         /SUPPOSED TO SKIP THIS ONE?
02152  5355          JMP FOOT1       /NO
02153  2122          ISZ PFSKP       /YES: RESET THE FLAG
02154  5345          JMP FSKP
02155  1124  FOOT1,  TAD MARG2
02156  4551          NUMPAG
02157  1123          TAD MARG1
02160  4477          MCRLF
02161  7410  STOP,   SKP             /CHANGED TO NOP IS S OPTION IS CHOSEN
02162  4501          WAIT
02163  1145          TAD TO
02164  1116          TAD PAG
02165  7700          SMA CLA         /PARTIAL PRINTOUT COMPLETE?
02166  5771          JMP I FINLOC    /YES: FINISH UP
02167  2116          ISZ PAG         /NO: CONTINUE
02170  5741          JMP I FM

02171  0473  FINLOC, FIN

02172  7240  SS,     STA             /SINGLE SPACE FROM NOW ON
02173  3102          DCA SPCR
02174  5552          JMP I SLFLOC

02175  1111  DS,     TAD KM2         /DOUBLE SPACE FROM NOW ON
02176  3102          DCA SPCR
02177  5552          JMP I SLFLOC

02200  4473  IN,     NUMGET
02201  7040          CMA
02202  3153          DCA INDNT
02203  5552          JMP I SLFLOC

02204  2116  EP,     ISZ PAG
02205  5552          JMP I SLFLOC

02206  3117  NP,     DCA PHFLG
02207  3121          DCA PFFLG
02210  5552          JMP I SLFLOC

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 9

02211  0000  PAGNUM, 0       /ACTUAL PAGE NUMBER PRINTER
02212  4477          MCRLF
02213  1022          TAD MLNG
02214  7041          CIA
02215  1103          TAD KSP
02216  4437          SPACE
02217  1116          TAD PAG
02220  4436          DECPNT
02221  5611          JMP I PAGNUM

02222  0000  NG,     0       /ROUTINE TO GET THE NUMERICAL ARGUMENT FOR
02223  7200          CLA     /IN-TEXT COMMANDS
02224  3074          DCA DIG
02225  3143          DCA NMBR
02226  4513          GRAB
02227  1147  ZONK2,  TAD KM260
02230  7510          SPA             /IS ASCII LESS THAN 260?
02231  5251          JMP DONE        /YES: END OF NUMBER
02232  1146          TAD KM12
02233  7500          SMA             /IS ASCII GREATER THAN 271?
02234  5251          JMP DONE        /YES: END OF NUMBER
02235  1254          TAD K12         /NO: GET THE DIGIT
02236  3266          DCA TP
02237  1074          TAD DIG
02240  1042          TAD KM3
02241  7650          SNA CLA         /THREE DIGITS ALREADY?
02242  5622          JMP I NG        /YES: RETURN ZERO
02243  4255          JMS MULT        /NO: MULT OLD NUMBER BY 10
02244  1266          TAD TP          /AND ADD NEW DIGIT
02245  3143          DCA NMBR
02246  2074          ISZ DIG
02247  4441          NXTCHR
02250  5227          JMP ZONK2
02251  7200  DONE,   CLA
02252  1143          TAD NMBR
02253  5622          JMP I NG

02254  0012  K12,    12

02255  0000  MULT,   0       /INEFFICIENT ROUTINE TO MULTIPLY NMBR BY 10
02256  7200          CLA
02257  1146          TAD KM12
02260  3265          DCA MULTCT
02261  1143  URP,    TAD NMBR
02262  2265          ISZ MULTCT
02263  5261          JMP URP
02264  5655          JMP I MULT
02265  0000  MULTCT, 0
02266  0000  TP,     0

02267  0000  NCHAR,  0       /ROUTINE TO GET THE NEXT CHARACTER FROM THE INPUT
02270  7200          CLA     /STREAM
02271  1347  NC1,    TAD INFLG2      /3RD CHARACTER IN GROUP?
02272  7640          SZA CLA
02273  5321          JMP NC3         /YES: IT'S IN THIRD

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 9-1

02274  2351          ISZ BPTR        /NO: INCREMENT BUFFER POINTER
02275  1346          TAD INFLG1
02276  7640          SZA CLA         /2ND CHARACTER IN GROUP?
02277  5307          JMP NC2         /YES
02300  1751          TAD I BPTR      /NO: MUST BE FIRST!
02301  0063          AND MASK3
02302  3350          DCA THIRD
02303  2346          ISZ INFLG1      /SET FLG TO INDICATE 1ST CHAR DONE
02304  1751  XIT,    TAD I BPTR
02305  0064          AND MASK4
02306  5324          JMP FINISH
02307  1751  NC2,    TAD I BPTR
02310  0063          AND MASK3
02311  7112          CLL RTR
02312  7012          RTR
02313  1350          TAD THIRD
02314  7012          RTR
02315  7012          RTR
02316  3350          DCA THIRD       /COMPLETE THIRD
02317  2347          ISZ INFLG2      /SET FLAG TO INDICATE 2ND CHAR DONE
02320  5304          JMP XIT
02321  3346  NC3,    DCA INFLG1      /RESET FLAGS
02322  3347          DCA INFLG2
02323  1350          TAD THIRD
02324  1345  FINISH, TAD KM232       /CONTROL-Z?
02325  7450          SNA             /EOF?
02326  2050          ISZ EOFLG       /YES: SET FLAG
02327  1352          TAD K232        /NO: RESTORE
02330  3032          DCA CHAR
02331  2374          ISZ WCTR        /END OF RECORD?
02332  7410          SKP             /NO
02333  4467          GETREC          /YES: GET ANOTHER
02334  1032          TAD CHAR
02335  1353          TAD KM212
02336  7450          SNA             /LINE-FEED?
02337  5271          JMP NC1         /YES: IGNORE IT
02340  1111          TAD KM2         /NO
02341  7650          SNA CLA         /FORM FEED?
02342  5271          JMP NC1         /YES: IGNORE IT (END OF FILE PAGE)
02343  1032          TAD CHAR
02344  5667          JMP I NCHAR
02345  7546  KM232,  -232
02346  0000  INFLG1, 0
02347  0000  INFLG2, 0
02350  0000  THIRD,  0
02351  0000  BPTR,   0
02352  0232  K232,   232
02353  7566  KM212,  -212

02354  0000  GR,     0       /ROUTINE TO GET NEXT BLOCK OF INPUT FILE
02355  2057          ISZ CDIL        /EOF ALREADY REACHED?
02356  5361          JMP GR1         /NO
02357  7402          HLT             /YES: BIG TROUBLE
02360  5427          JMP I MON
02361  1162  GR1,    TAD BUFLOC

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 9-2

02362  3351          DCA BPTR
02363  1024          TAD KM600
02364  3374          DCA WCTR
02365  4527          JMS I HNDLOC
02366  0200          0200
02367  4400          HNDLR+1000
02370  0000  BLKIN,  0
02371  5430          ERRMES
02372  2370          ISZ BLKIN
02373  5754          JMP I GR
02374  0000  WCTR,   0

       2400  PAGE

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 10

02400  0000  HM,     0       /ROUTINE TO PRINT THE HEAD MARGIN AND PAGE NO.
02401  1117          TAD PHFLG
02402  7640          SZA CLA         /FLAG SET?
02403  5207          JMP HEAD        /YES
02404  1105  HSKP,   TAD MARG        /NO
02405  4477          MCRLF
02406  5220          JMP HEXIT
02407  1120  HEAD,   TAD PHSKP
02410  7640          SZA CLA         /SUPPOSED TO SKIP THIS ONE?
02411  5214          JMP HEAD1       /NO
02412  2120          ISZ PHSKP       /YES: RESET FLAG
02413  5204          JMP HSKP
02414  1123  HEAD1,  TAD MARG1
02415  4551          NUMPAG
02416  1124          TAD MARG2
02417  4477          MCRLF
02420  1076  HEXIT,  TAD LINES
02421  3106          DCA LINCTR
02422  5600          JMP I HM

02423  0000  OP,     0       /ROUTINE TO OUTPUT CHARACTERS
02424  3243          DCA OPTEM
02425  1144          TAD FROM
02426  1116          TAD PAG
02427  7710          SPA CLA
02430  5623          JMP I OP
02431  1243          TAD OPTEM
02432  4273          JMS STUFF       /ADD CHARACTER TO BUFFER
02433  2020          ISZ CHRCTR      /BUFFER FULL?
02434  5623          JMP I OP        /NO
02435  1024          TAD KM600       /YES: RESET VARIABLES
02436  3020          DCA CHRCTR
02437  1244          TAD OBLOC
02440  3271          DCA SPTR
02441  4245          JMS WRITE       /OUTPUT THE BUFFER
02442  5623          JMP I OP

02443  0000  OPTEM,  0
02444  4777  OBLOC,  4777

02445  0000  WRITE,  0
02446  2157          ISZ FILIM       /OUTPUT SPACE EXHAUSTED?
02447  5256          JMP WR1         /NO
02450  4504          PRINT           /YES
02451  4543          TEXT "%#FULL"
02452  0625
02453  1414
02454  0000
02455  5427          JMP I MON

02456  4556  WR1,    JMS I ODLOC
02457  4200          4200
02460  5000          HNDLR+1400
02461  0000  BLKO,   0
02462  5430          ERRMES

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 10-1

02463  2261          ISZ BLKO
02464  2666          ISZ I BCLOC
02465  5645          JMP I WRITE

02466  0507  BCLOC,  BLCT
02467  7400  K7400,  7400
02470  0000  STEMP,  0
02471  4777  SPTR,   4777
02472  7775  SCTR,   -3

02473  0000  STUFF,  0
02474  2272          ISZ SCTR
02475  5323          JMP FILL
02476  3270          DCA STEMP
02477  7240          STA
02500  1271          TAD SPTR
02501  3271          DCA SPTR
02502  1270          TAD STEMP
02503  7006          RTL
02504  7006          RTL
02505  0267          AND K7400
02506  1671          TAD I SPTR
02507  3671          DCA I SPTR
02510  2271          ISZ SPTR
02511  1270          TAD STEMP
02512  7012          RTR
02513  7012          RTR
02514  7010          RAR
02515  0267          AND K7400
02516  1671          TAD I SPTR
02517  3671          DCA I SPTR
02520  1042          TAD KM3
02521  3272          DCA SCTR
02522  5673          JMP I STUFF

02523  2271  FILL,   ISZ SPTR
02524  3671          DCA I SPTR
02525  5673          JMP I STUFF

02526  0000  INPT,   0       /SUBROUTINE TO ACCEPT 4 DIGIT DECIMAL INPUT
02527  7200  INPUT1, CLA
02530  3074          DCA DIG
02531  3143          DCA NMBR
02532  6031  ZONK1,  KSF             /GET TELETYPE CHARACTER
02533  5332          JMP .-1
02534  6036          KRB
02535  1044          TAD KM215
02536  7450          SNA             /CARRIAGE RETURN?
02537  5363          JMP DON1        /YES: END OF INPUT
02540  1370          TAD KM43
02541  7510          SPA             /IS IT LESS THAN 260?
02542  5332          JMP ZONK1       /YES: IGNORE IT
02543  1146          TAD KM12
02544  7500          SMA             /IS IT GREATER THAN 271?
02545  5332          JMP ZONK1       /YES: IGNORE IT

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 10-2

02546  1371          TAD K272        /RESORE THE ANSCII
02547  6046          TLS
02550  1147          TAD KM260
02551  3031          DCA TEMP
02552  1074          TAD DIG
02553  1134          TAD KM4
02554  7650          SNA CLA         /4 DIGITS ALREADY?
02555  5373          JMP GOOF1       /YES: TOO LARGE
02556  4772          JMS I MTLOC     /NO: MULT OLD NMBR BY 10
02557  1031          TAD TEMP        /ADD NEW DIGIT TO OLD NUMBER TIMES
02560  3143          DCA NMBR        /TEN TO GET NEW NUMBER
02561  2074          ISZ DIG         /INCREMENT DIGIT COUNTER
02562  5332          JMP ZONK1

02563  4504  DON1,   PRINT
02564  4543          TEXT "%#"
02565  0000
02566  1143          TAD NMBR
02567  5726          JMP I INPT

02570  7735  KM43,   -43
02571  0272  K272,   272
02572  2255  MTLOC,  MULT

02573  4504  GOOF1,  PRINT
02574  4543          TEXT "%#TOO LARGE; PLEASE RETYPE IT: "
02575  2417
02576  1740
02577  1401
02600  2207
02601  0573
02602  4020
02603  1405
02604  0123
02605  0540
02606  2205
02607  2431
02610  2005
02611  4011
02612  2472
02613  4000
02614  5615          JMP I .+1
02615  2527          INPUT1

02616  0000  FP,     0       /ROUTINE TO FILL OUT THE CURRENT PAGE
02617  4435          LINEPT          /PRINT PENDING LINE, IF ANY
02620  1076          TAD LINES
02621  7041          CIA
02622  1106          TAD LINCTR
02623  7120          STL
02624  7650          SNA CLA         /HAVE WE JUST FINISHED A PAGE?
02625  5616          JMP I FP        /YES: EXIT WITH LINK=1
02626  1106          TAD LINCTR      /NO: DO REST OF PAGE
02627  7041          CIA
02630  4477          MCRLF           /SPACE DOWN TO THE BOTTOM MARGIN

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 10-3

02631  4515          FMAR            /PRINT THE PAGE FOOT AND MARGIN
02632  7100          CLL             /AND EXIT WITH LINK=0
02633  5616          JMP I FP

02634  0000  NAMBUF, 0
02635  0000          0
02636  0000          0
02637  0000          0
02640  0000  TRBUF,  0
02641  0000          0
       3006  *.+144
03006  0000  LBUF,   0
       3207  *.+200
03207  0000  WBUF,   0
       3307  *WBUF+100
03307  0000  SYLPTS, 0
       3327  *SYLPTS+20
03327  0000  SPACES, 0
       3400  PAGE
03400  0000  HNDLR,  0       /DEVICE HANDLER GOES HERE
             $

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 11

ADDWRD 0561      DTEMP  1227      HNDLOC 0127      K7000  0264
ADLOC  0761      DXIT   1251      HNDLR  3400      K7400  2467
AFL    0360      ENDPNC 1115      HSKP   2404      K7577  0161
BACKWD 0731      EOFCHR 0513      HYPHEN 1105      K7617  0270
BCLOC  2466      EOFLG  0050      IG     1126      K7620  0271
BLCT   0507      EOL    0600      IN     2200      K7644  0272
BLINLC 0150      EOLOC  0526      IND    0520      K7700  0273
BLIP   1261      EP     2204      INDENT 0051      LBLOC  0065
BLKIN  2370      EPLOC  1766      INDEV  0060      LBUF   3006
BLKO   2461      ERRLOC 0030      INDNT  0153      LINCTR 0106
BLKOL  0160      ERRMES 5430      INFLG1 2346      LINEPT 4435
BP     1705      ERROR  0763      INFLG2 2347      LINES  0076
BPTR   2351      EUREKA 0636      INJACK 1332      LK     0227
BR     1670      EXACT  0055      INPT   2526      LK2    0235
BREAK  0416      F      1630      INPUT1 2527      LL     1660
BREAK1 0414      FBO    0357      INREP  0553      LLNG   0053
BR1LOC 0262      FILIM  0157      IPLOC  0260      LLOOP  1740
BUFLOC 0162      FILL   2523      KM1    0072      LNCHAR 0047
CALUSR 4425      FILPAG 4530      KM12   0146      LNFD   0054
CDIL   0057      FIN    0473      KM14   0163      LNILOC 0753
CE     1714      FINISH 2324      KM2    0111      LNINIT 0543
CECT   1767      FINLOC 2171      KM21   1132      LNOCH  1423
CELP   1722      FLG    0056      KM211  0135      LNPT   1400
CHAR   0032      FLIP   0754      KM212  2353      LOOK   1054
CHARCT 0075      FM     2141      KM215  0044      LPLOC  0035
CHRCTR 0020      FMAR   4515      KM23   0043      MARG   0105
CNTR   1751      FMLOC  0115      KM232  2345      MARG1  0123
CONTIN 0274      FOOT   2150      KM240  0071      MARG2  0124
CR     1150      FOOT1  2155      KM255  0762      MASK1  0061
CRLF   4452      FP     2616      KM260  0147      MASK2  0062
CRLNFD 1317      FPLOC  0130      KM262  2140      MASK3  0063
CRLOC  0052      FROM   0144      KM3    0042      MASK4  0064
CRS    0516      FSKP   2145      KM37   1131      MASK5  1511
CRS0   0514      FST    1634      KM4    0134      MCR    1267
CR1    1151      FSTHD  0131      KM40   1510      MCREP  1277
CSPCT  1357      FST1   1653      KM43   2570      MCRLF  4477
CSPR   1351      GB     1535      KM600  0024      MCRLOC 0077
CTR    0026      GBLOC  0113      KSP    0103      MLNG   0022
DECLOC 1230      GBREP  1536      K101   1667      MON    0027
DECODE 1462      GETREC 4467      K102   1174      MTABS  0133
DECPNT 4436      GOOF1  2573      K12    2254      MTLOC  2572
DECPT  1200      GR     2354      K2     0125      MULT   2255
DEFALT 0527      GRAB   4513      K200   0025      MULTCT 2265
DEFLOC 0267      GRLOC  0067      K212   0110      N      0767
DIG    0074      GR1    2361      K215   0107      NAMBUF 2634
DIGPT  1245      GWLOC  0756      K232   2352      NBLOC  0154
DONE   2251      GWORD  0436      K240   0045      NCHAR  2267
DON1   2563      GWORD1 0443      K245   1513      NCLOC  0041
DOT    1656      H      0316      K255   0757      NC1    2271
DOWN   0576      HEAD   2407      K260   1257      NC2    2307
DPCTR  1237      HEAD1  2414      K272   2571      NC3    2321
DPLOC  0036      HEXIT  2420      K340   1512      NE     1672
DPT    1240      HM     2400      K40    0265      NEXT   1053
DPTFLG 1260      HMAR   4514      K400   0266      NEXT1  1045
DS     2175      HMLOC  0114      K7     2012      NEXT2  1051

/MEMO: VERSION 84                         PAL8-V9B  02/06/75  PAGE 11-1

NG     2222      SCD    1614      TRNLOC 0140
NGLOC  0073      SCTR   2472      TRNSF  1360
NL     1165      SHF1   0665      TRTYPE 1514
NLOC   1770      SHUFCT 0760      TR1    1366
NMBR   0143      SHUFFL 0662      TTLOC  0104
NORMAL 1533      SLFLOC 0152      TTYP   1444
NP     2206      SLUF   1710      TYP    1544
NPUT   0337      SLUFLC 0142      TYPE   4440
NUMGET 4473      SLUFR  1757      URP    2261
NUMPAG 4551      SLUF1  1665      W      1310
NWLOC  0034      SLUF2  1761      WA     0374
NWORD  1000      SP     1562      WAIT   4501
NXTCHR 4441      SPACE  4437      WBLOC  0066
NXTWRD 4434      SPACES 3327      WBUF   3207
OBLOC  2444      SPC    1134      WCTR   2374
ODLOC  0156      SPCC   1335      WIEDER 1323
OH     0351      SPCR   0102      WRITE  2445
OHGET  0371      SPCTNW 1133      WRLOC  0512
OK     0717      SPINC  0706      WR1    2456
OK1    0715      SPL    0033      WT     1304
OP     2423      SPLIST 0070      WTLOC  0101
OPLOC  0021      SPLLOC 0137      XIT    2304
OPTEM  2443      SPLOC  0037      ZER    1253
OP1    0674      SPNOCH 0701      ZINC   0740
OUT    4421      SPPT   1435      ZNOCH  0732
OUTDEV 0155      SPREP  1565      ZONK   0100
OUTPUT 0675      SPTOT  0023      ZONK1  2532
P      1654      SPTR   2471      ZONK2  2227
PAG    0116      SQ     2027
PAGNUM 2211      SRCH   1635
PART   1111      SS     2172
PCLOC  1130      STEMP  2470
PERCHK 1600      STLOC  0263
PF     2021      STOP   2161
PFFLG  0121      STUFF  2473
PFSKP  0122      SUB    1211
PH     2013      SYLPTS 3307
PHFLG  0117      SYLREP 0620
PHSKP  0120      SYLS   0136
PNFLOC 0261      TAB    0132
PNLOC  0151      TABCHK 1027
PNUMFX 1552      TABLE  2052
PRCLOC 0755      TABLEN 1657
PRI    1506      TABLOC 1655
PRINT  4504      TABREP 1036
PROC   0445      TB     2003
PSP    0046      TEMP   0031
PTR    0126      THIRD  2350
REENT  0422      TLOC   0040
REGES  1101      TO     0145
REINIT 0435      TP     2266
RELOCX 0141      TR     1771
REP1   1016      TRBUF  2640
RET    1431      TREP   1520
RM     2040      TRLOC  0112



ERRORS DETECTED: 0
LINKS GENERATED: 0



