
      HED LENGTH
* THE LENGTH COMMAND CAUSES THE LENGTH OF THE USER'S PROGRAM TO 
* BE PRINTED ON THE USER'S CONSOLE. 
      SPC 1 
      ORG LIBRA 
      JSB RDPRG     READ IN USER PROGRAM. 
      LDB MLINK+1 
      ADB .+?PROG-?LINK 
      LDA 1,I       GET POINTER TO END OF 
      STA LTEMP      PROGRAM. 
      CPA PBUFF     IF NULL PROGRAM GO TO PRINTOUT
      JMP LEN1       SECTION. 
      ADB .+?FLAG-?PROG 
      LDA 1,I       TEST FOR COMPILED.
      AND CFLAG 
      SZA,RSS 
      JMP LEN1      USER NOT COMPILED.
      LDA SYMTB     USE SOURCE PROGRAM POINTER
      RSS 
LEN1  LDA LTEMP 
      CMA           COMPUTE LENGTH IN WORDS.
      ADA SPROG 
      CMA 
      SSA           IF NEGATIVE,
      CLA             SET TO ZERO 
      STA LTEMP 
* 
      LDA .+12B     OUTPUT LINE FEED. 
      JSB LOUT
      LDA .-2       SET COUNTER.
      STA LTEMP+1 
      LDA LTEMP     GET FIRST 2 DIGITS IN A.
      CLB            LAST 2 IN B. 
      DIV .100
      STB LTEMP 
LEN2  CLB 
      DIV .+10      GET 2 DIGITS. 
      STB LTEMP+2   SAVE 2ND. 
      ADA .+60B 
      JSB LOUT      PRINT 1ST 
      LDA LTEMP+2 
      ADA .+60B     PRINT 
      JSB LOUT       2ND. 
      LDA LTEMP     GET 2ND PAIR. 
      ISZ LTEMP+1   TEST FOR DONE.
      JMP LEN2
      LDA .-6       PRINT " WORDS". 
      LDB *+2 
      JMP LIBER 
      DEF *+1 
      ASC 3, WORDS
$LEN  EQU * 
      HED ECHO
* THE ECHO COMMAND IS USED TO TELL THE SYSTEM WHETHER A TELETYPE
* IS FULL DUPLEX OR HALF DUPLEX. TYPING 
*     ECHO-OFF   SAYS HALF DUPLEX.
*  AND
*     ECHO-ON       SAYS FULL DUPLEX. 
      SPC 2 
      ORG LIBRA 
      JSB LCHAR     TEST FOR FIRST CHARACTER O. 
      JMP ILFER 
      CPA ECHO
      RSS 
      JMP ILFER     FAIL. 
      JSB LCHAR     GET NEXT CHARACTER. 
      JMP ILFER     FAIL IF NONE. 
      CPA ECHN      TEST FOR N. 
      JMP ECH1
      CPA ECHF      TEST FOR F. 
      RSS 
      JMP ILFER     FAIL IF NOT.
      JSB LCHAR     TEST FOR F. 
      JMP ILFER 
      CPA ECHF
      RSS 
      JMP ILFER 
      LDA ECF       SET ECHO OFF
      RSS 
ECH1  LDA ECO       SET ECHO ON 
      STA LTEMP 
      JSB LCHAR     TEST FOR CR.
      RSS 
      JMP ILFER 
* 
      LDB MLINK+1 
      ADB .+?TNUM-?LINK 
      LDA 1,I       SEND
      IOR LTEMP       ECHO
      JSB S14SC,I       TO 2114 
      JMP LLEND 
* 
ECHN  OCT 116 
ECHF  OCT 106 
ECHO  OCT 117 
$ECH  EQU * 
      HED MESSAGE 
* 
*         THE MESSAGE COMMAND IS USED TO SEND A MESSAGE TO
*     THE SYSTEM CONSOLE.  THE PORT NUMBER OF THE REQUESTING
*     USER IS ALSO OUTPUT.  IF THE MESSAGE QUEUE IS FULL AT 
*     THE TIME OF THE REQUEST, THEN THE USER IS INFORMED
*     AND HIS MESSAGE IS IGNORED.  IF NOT, IT IS PLACED ON
*     THE QUEUE.  A MESSAGE MORE THAN 68 CHARACTERS LONG WILL 
*     BE TRUNCATED.  EACH MESSAGE FITS IN A 39 WORD BUFFER
*     WHOSE FORMAT IS:
* 
*     <LENGTH><CRLF><PORT><  ><MESSAGE><CRLF> 
* 
      ORG LIBRA 
      LDA MSQCT     IS THE MESSAGE QUEUE
      ADA .-2         ALREADY FULL? 
      SSA,RSS 
      JMP MESS1     YES, TELL USER
      LDA MSQP3     => NEXT AVAILABLE BUFFER
      INA           PUT CR LF INTO
      LDB CRLF        THE MESSAGE BUFFER
      STB A,I 
      INA 
      STA MSQP2     SET POINTER 
      LDA MLINK+1   GET THE USER NUMBER 
      ADA .+?TNUM-?LINK 
      LDA A,I         INTO THE A REGISTER 
      ALF,ALF 
      CLB           SET UP FOR AND
      DIV .+10        DIVIDE BY TEN 
      ALF,ALF       CONVERT TO ASCII
      IOR B 
      IOR ASC00 
      STA MSQP2,I   STORE INTO BUFFER 
      ISZ MSQP2     ADVANCE POINTER 
      LDA ASCBB     GET TWO BLANKS
      STA MSQP2,I     AND PLACE IN THE BUFFER 
      LDB MSQP2     TURN BUFFER POINTER 
      INB 
      RBL             INTO
      STB MSQP2         A CHARACTER POINTER 
      LDA .+6 
      STA MSSCT     SET CHARACTER COUNT 
      CLA 
      STA LCHR2     PREVENT BLANK SUPPRESSION 
      JSB LCHAR     GET A CHARACTER 
      JMP MESER     EMPTY MESSAGE IS AN ERROR 
MESS2 EQU * 
      LDB ..74      IS THE MESSAGE TOO LONG?
      CPB MSSCT 
      JMP MESS4     YES, TRUNCATE HERE
      JSB MESCH     STORE CHARACTER INTO BUFFER 
      JSB LCHAR     GET ANOTHER CHARACTER 
      JMP MESS4     CR SEZ END OF MESSAGE 
      JMP MESS2     NO, PUT THIS CHARACTER INTO BUFFER
* 
MESS4 EQU * 
      LDA .+12B     LF
      JSB MESCH 
      LDA MSSCT     SET CHARACTER COUNT 
      STA MSQP3,I     INTO BUFFER 
      LDB MESWK     RESTORE LCHAR 
      STB LCHR2 
      ISZ MSQCT     INCREMENT THE MESSAGE COUNTER 
      LDB MSQP3     ADVANCE POINTER 
      ADB .+MESLN     FOR 
      CPB MSQND         THE 
      LDB MSQBG           NEXT
      STB MSQP3             MESSAGE 
      JMP LLEND     EXIT
* 
MESER EQU * 
      LDB MESWK     FIX LCHAR AND 
      STB LCHR2 
      JMP ILFER       GIVE ERROR EXIT 
* 
MESS1 EQU * 
      LDA .-14
      LDB *+2 
      JMP LIBER 
* 
      DEF *+1 
      OCT 5103
      ASC 6,ONSOLE BUSY 
* 
*     THIS ROUTINE PUTS INDIVIDUAL CHARACTERS INTO THE BUFFER 
* 
MESCH NOP 
      LDB MSQP2     LOAD THE BUFFER POINTER 
      CLE,ERB       TURN INTO WORD POINTER
      SEZ,RSS       SKIP IF LOWER CHARACTER 
      ALF,ALF       CHARACTER TO LEFT 
      SEZ           SKIP IF UPPER CHARACTER 
      IOR B,I       OR IN UPPER CHARACTER 
      STA B,I       STORE CHARACTER (S) 
      ISZ MSQP2     ADVANCE CHARACTER POINTER 
      ISZ MSSCT     INCREMENT COUNT 
      JMP MESCH,I   RETURN
* 
MESWK JMP LCHR1 
MSSCT BSS 1 
MSQP2 BSS 1 
..74  DEC 74
$MES  EQU * 
      HED LPRINTER
*  THE LPRINTER COMMAND IS USED TO REQUEST THE USE OF THE LINE
*  PRINTER.  THE FORMAT IS: 
*              LPRINTER-[CHARACTER STRING]
* 
      SPC 1 
      ORG LIBRA 
      LDA MLINK+1   GET TTY# ADDRESS
      ADA .+?TNUM-?LINK 
      STA PRITY     SAVE IT 
      LDA PRIST     GET LP INDICATOR
      SZA,RSS       LP BUSY?
      JMP LPR1      NO
      CPA PRITY     YES - DOES USER HAVE LP?
      JMP LLEND     YES, TERMINATE
      LDA .-9       NO, OUTPUT
      LDB LPM1        LP BUSY MESSAGE 
      JMP LIBER 
* 
LPR1  LDA PRITY,I   GET TTY#
      IOR LPR       ADD OPCODE
      JSB S14SC,I   TELL I/O PROCESSOR
      SFS CH2         AND WAIT FOR
      JMP *-1           RESPONSE
      LIA CH2       GET RESPONSE
      SZA,RSS       DID USER GET LP?
      JMP LPR2      NO- NOT AVAILABLE 
      SSA 
      JMP ILFER     NO - HEADING TOO LONG 
      LDA PRITY     YES - GET TTY# ADDRESS
      STA PRIST       AND SET LP INDICATOR
      STA LFLAG     SET LPR COMMAND FLAG
      JMP LLEND     TERMINATE 
LPR2  LDA .-19      LP NOT AVAILABLE
      LDB LPM2
      JMP LIBER 
* 
      SUP 
LPM1  DEF *+1 
      OCT 5114
      ASC 3,P BUSY
      OCT 6400
LPM2  DEF *+1 
      OCT 5114
      ASC 8,P NOT AVAILABLE 
      OCT 6400
      UNS 
PRITY EQU LTEMP 
$LPR  EQU * 
      HED PORT - USER CONSOLE 
*    THE PORT COMMAND PRINTS THE CHARACTER SIZE AND BAUD RATE 
*    FOR WHICH EACH PORT IS CONFIGURED. 
* 
      SPC 1 
      ORG LIBRA 
      LDB MLINK+1 
      ADB .+?ID-?LINK 
      LDA B,I       GET ID. 
      CPA A000      A000? 
      JMP UPO0      YES.
      LDA .-19      NO. NOT ALLOWED!
      LDB *+2 
      JMP LIBER 
      DEF *+1 
      OCT 5120
      ASC 9,RIVILEGED COMMAND 
UPO0  EQU * 
      LDA NPORT     INITIALIZE
      ADA .-1 
      STA UPCT2       NUMBER-OF-PORTS 
      CLA               COUNTERS
      STA UPCTR 
UPRT  LDA UPCRL     OUTPUT
      JSB UPOUT       CARRIAGE RETURN-LINEFEED
      LDA .-8       INITIALIZE
      STA UPCT3       LINE COUNTER
UPRT0 ISZ UPCT2     FINISHED? 
      JMP UPRT2     NO
      LDA UPCRL     YES - OUTPUT A
      JSB UPOUT       CR-LF AND 
      JMP LLEND         TERMINATE 
UPRT2 JSB UPORT 
      ISZ UPCT3     COMPLETED A LINE? 
      JMP UPRT3     NO
      JSB UPTSV     YES - SAVE VARIABLES
      JSB SCHOU,I     AND SUSPEND 
      JSB UPTRV     RETRIEVE VARIABLES
      JMP UPRT
UPRT3 LDA ASCBB     INSERT AND
      JSB UPOUT       OUTPUT SEPERATORS 
      JMP UPRT0 
UPOUT NOP           THIS ROUTINE OUTPUTS A WORD 
      STA UPTMP 
      ALF,ALF       OUTPUT
      JSB LOUT        LEFT CHAR 
      LDA UPTMP 
      JSB LOUT      OUTPUT RIGHT CHAR 
      JMP UPOUT,I 
* 
*    PROCESS THE INFORMATION OF A PORT
* 
UPORT NOP 
      LDA UPCTR     GET PORT NUMBER,
      ALF,ALF         POSITION IT,
      IOR GRP           ADD REQUEST CODE, 
      JSB S14SC,I         SEND TO I/O PROCESSOR 
      SFS CH2 
      JMP *-1 
      LIA CH2       GET AND SAVE THE
      STA UTMP        RECEIVE PARAMETER 
      AND PRTMK     MASK OUT CHARACTER SIZE 
      SZA           SELECTRIC?
      JMP UPRT1     NO
      LDA ASCAH     YES 
      RSS 
UPRT1 ADA ASC0H     CONVERT TO ASCII
      JSB UPOUT       AND OUTPUT
      LDA UTMP
      AND B377      MASK OUT BAUD RATE
      CLB 
      DIV .100      OBTAIN HUNDREDS 
      ALF,ALF 
      STA UPTMP 
      LDA B           AND TENS DIGIT, 
      CLB 
      DIV .+10
      ADA UPTMP 
      STB UTMP
      ADA ASC00         CONVERT TO ASCII
      JSB UPOUT           AND OUTPUT
      LDA UTMP
      ALF,ALF 
      ADA UPA0B 
      JSB UPOUT         AND OUTPUT
      ISZ UPCTR     INCREMENT PORT COUNTER
      JMP UPORT,I   RETURN
UPTSV NOP           THIS ROUTINE SAVES VARIABLES
      LDB MLINK+1 
      ADB .+?TEMP-?LINK 
      STB MOVED 
      LDB DLTEM 
      STB MOVES 
      LDB .-3 
      JSB MOVEW 
      JMP UPTSV,I 
UPTRV NOP           THIS ROUTINE RESTORES VARIABLES 
      LDB MLINK+1 
      ADB .+?TEMP-?LINK 
      STB MOVES 
      LDB DLTEM 
      STB MOVED 
      LDB .-3 
      JSB MOVEW 
      JMP UPTRV,I 
UPCT2 EQU LTEMP 
UPCT3 EQU LTEMP+1 
UPCTR EQU LTEMP+2 
UPTMP EQU LTEMP+3 
UTMP  EQU LTEMP+4 
UPCRL OCT 6412
UPA0B ASC 1,0 
$POR$ EQU * 
      HED REPORT - SYSTEM CONSOLE 
* THE REPORT COMMAND CAUSES IDT INFO TO BE LISTED ON THE SYSTEM 
* TELETYPE. EACH USER ID IS LISTED, ALONG WITH THE DISC AND TIME
* USED TO DATE. DISC STORAGE IS LISTED IN WORDS, AND TIME IS LISTED 
* IN MINUTES. 
* THE OUTPUT FORMAT IS: 
*   <ID> <TIME> <SPACE>  <ID> <TIME> <SPACE>  <ID> <TIME> <SPACE> 
* 
* OPTIONALLY, AN ID MAY BE INCLUDED IN THE REPORT REQUEST:
*     REPORT[-ID] 
* IN WHICH CASE THE REPORT BEGINS AT THE INDICATED ID.
      SPC 2 
      ORG LIBRA 
      CLA,INA       START WITH ID OF 1
      STA ID          IN CASE WE DON'T GO TO GETID
      JSB T35CH,I   SEE WHAT FIRST CHARACTER IS 
      JMP REPNI     CR - START AT BEGINNING 
      CCA           A _ -1
      ADA T35CP     MOVE BACK BUFFER POINTER
      STA T35CP 
      JSB GETID     GET STARTING ID CODE
      JMP LFRER     SHOULD END WITH CR
* 
* PRINT HEADING 
* 
REPNI EQU * 
      LDA ID        SAVE ID 
      STA REPLN       IN BUFFER 
      JSB HDBFA,I   PRINT HEADING 
      JSB T35SP       AND SUSPEND 
* 
      LDA REPLN     RESTORE 
      STA ID          ID
      LDA T35B1      TO PRINT 
      STA MOVED       BUFFER. 
      LDA REPHD 
      STA MOVES 
      LDB REP29 
      JSB MOVEW 
      JSB FIDTP,I   READ IN IDT TRACK 
      LDA IDTLN     GET POINTER TO LENGTH WORD
      STA REPPT       AND SAVE
      LDB A,I       IS THE TRACK
      SZB             LENGTH ZERO?
      JMP REPOK       NO
      JMP REPSG       YES - TRY ANOTHER 
* 
* LOCATE THE TRACK CONTAINING THE FIRST ID TO BE PRINTED
* 
REPAB EQU * 
      STA REPPT     SAVE LIVE TABLE ENTRY 
      LDB A,I       GET THIS TRACKS LENGTH
      SZB           SKIP IF TRACK EMPTY 
      JMP REPAF     GOOD TRACK.  GO 
REPSG EQU * 
      CPA RIDCL     LAST ID TRACK?
      JMP REPS      YES, EMPTY ID TABLE 
      ADA .+4       ADVANCE TO NEXT ENTRY 
      JMP REPAB 
* 
* READ IN A TRACK 
* 
REPAF EQU * 
      STB MWORD     SAVE ACTUAL LENGTH
      LDA REPPT 
      ADA .-2       A => DISC ADDRESS 
      LDB LIBDI 
      JSB DISCZ,I   READ IT IN
      JSB SICKP,I 
REPOK EQU * 
      LDB MWORD 
      CMB,INB 
      ADB LIBD      MAKE POINTER TO LAST ENTRY+1
      STB REPBF       (IE! END-OF-TRACK)
      LDB LIBD
* 
* LOCATE THE ID 
* 
REPSC EQU * 
      LDA REPPT 
      CPB REPBF     CHECK FOR END 
      JMP REPSG     NOT ON THIS TRACK 
      LDA B,I       GET THIS ID 
      CMA 
      ADA ID        HAS THE ID BEEN 
      SSA             REACHED OR PASSED?
      JMP REPSE     YES, THIS IS WHERE WE START 
      ADB .+8       MOVE UP TO NEXT ENTRY 
      JMP REPSC 
* 
* THE ID HAS BEEN FOUND: PREPARE FOR PRINTOUT 
* 
REPSE EQU * 
      ADB MLIBD     MAKE POINTER FOR LATER
      ADB MWORD 
      STB REPLN     SET COUNT ON THIS TRACK 
      LDA REP57     GET CHARACTER COUNT 
      JMP REP1
REPS  EQU * 
      LDA REP57     WE WILL PRINT 57 CHARACTERS.
REP2  LDB T35B1     OTHERWISE, JUST PRINT THE 
      JMP LEND2       HEADING AND TERMINATE 
* 
REP1  LDB T35B1     PRINT AND 
      JSB T35SP      SUSPEND. 
* 
      LDA T35B1     SET BUFFER
      STA REPBF       POINTER.
* 
* READ IN THE NEXT 3 ID'S TO BE PRINTED 
* 
REPNT EQU * 
      LDA REPPT,I   GET TRACK LENGTH
      CMA,INA         & COMPLIMENT
      ADA REPLN 
      STA REPID     REPLN-IDLEN.
      CLB 
      LSR 8         /256 FOR # OF BLOCKS TO SKIP
      STA RPCNT                                  [B]
      LDA REPPT     GET THE TRACK 
      ADA .-2         DISC ADDRESS
      DLD A,I 
      CLE 
      ADB RPCNT     ADD THE SKIP-BLOCK OFFSET    [B]
      SEZ 
      INA 
      DST REPK
      LDA REPKP     LOAD POINTER TO DISC ADDRESS
      LDB RPCNT     COMPUTE # OF WORDS           [B]
      BLF,BLF         TO TRANSFER 
      CMB,INB 
      ADB REPID 
      STB REPID     # OF WORDS PRINTED WITHIN BLOCK 
      ADB .+24      SET TRANSFER LENGTH TO READ 
      CMB,INB        3 NEW ID RECORDS.
      STB MWORD 
      LDB LIBDI 
      JSB DISCZ,I 
      JSB SICKP,I 
      LDA REPID     SET REPID TO POINT TO THE 
      ADA LIBD       FIRST ENTRY TO BE CONVERTED. 
      STA REPID 
* 
* 
* NOW CONVERT ENTRIES INTO THE BUFFER. REPID POINTS AT THE ENTRY, 
* REPBF POINTS TO THE OUTPUT BUFFER.
* 
REP4  LDA REPID,I   GET ID. 
      AND B1777     MASK NUMBER PART. 
      CLB           GET #/100 IN A, # MOD 100 IN B. 
      DIV .100
      STB REPT      SAVE LAST 2 DIGITS. 
      STA 1         COMBINE FIRST DIGIT WITH
      LDA REPID,I    LETTER.
      ARS,ARS 
      AND REPMS 
      ADA 1 
      ADA REPFX 
      STA REPBF,I   STORE ASCII LETTER&DIGIT IN BUF.
      ISZ REPBF 
      LDA REPT      CONVERT LAST 2 DIGITS 
      JSB REPNM      AND STORE IN BUFFER. 
      STA REPBF,I 
      ISZ REPBF     MOVE REPBF TO POINT AT TIME AREA
      LDA REPID     SET REPID TO POINT
      ADA .+5        TO USERS TIME. 
      STA REPID 
      LDA REPID,I   GET USERS TIME. 
      JSB REPTR     CONVERT INTO BUFFER.
      ISZ REPID     POINT TO DISC USED
      ISZ REPID      AND
      LDA REPID,I 
      JSB REPTR     CONVERT IT. 
      LDA ASCBB     GET A PAIR OF BLANKS
      STA REPBF,I   BLANK OUT THIS SPOT 
      ISZ REPBF     MOVE BUFFER POINTER UP FOR
      ISZ REPBF      NEXT ENTRY.
      ISZ REPID     MOVE ID POINTER ALSO. 
      LDB REPLN     BUMP ID ENTRY COUNTER.
      ADB .+8 
      STB REPLN 
      SZB           IF ANY LEFT, TEST FOR BUFFER
      JMP REP3       FULL.
* 
*  ARRIVE HERE WHEN WE HAVE COMPLETED AN ID TRACK 
* 
REPET EQU * 
      LDA REPPT     GET CURRENT IDEC TABLE POINTER
      CPA RIDCL     WAS THIS THE LAST IDT TRACK?
      JMP REPEV     YES, DONE WITH REPORT 
      ADA .+4       NO, ADVANCE TO NEXT IDEC ENTRY
      STA REPPT 
      LDB A,I       GET COUNT ON THIS TRACK 
      STB REPLN       AND SET THE COUNTER 
      SZB,RSS 
      JMP REPET     EMPTY TRACK, TRY NEXT 
      LDA REP56     IF END OF BUFFER, 
      LDB REPBF       GO TO PRINT 
      CPB REPND         AND SUSPEND 
      JMP REP1
      JMP REPNT     OTHERWISE READ NEXT TRACK AND 
*                                     DO ANOTHER ENTRY
REPEV EQU * 
      LDA .-2 
      ADA REPBF 
      LDB REPSL 
      STB A,I       SPACE-LF
      ADA .+3       COMPUTE # 
      ADA REPTT      OF CHARACTERS. 
      ALS 
      JMP REP2
* 
REP3  LDA REP56     IF END OF 
      LDB REPBF      BUFFER, GO TO
      CPB REPND       PRINT AND SUSPEND.
      JMP REP1
      JMP REP4      ELSE GO DO NEXT ENTRY.
* 
REPNM NOP           CONVERT A #<100 TO ASCII. 
      CLB           GET 1ST DIGIT IN A. 
      DIV .+10       2ND IN B.
      ALF,ALF       PACK AND
      ADA 1          ADD ON ASCII 
      ADA ASC00       BITS. 
      JMP REPNM,I 
* 
REPTR NOP           TRANSLATE A 5-DIGIT NUMBER
      CLB             INTO THE BUFFER.
      DIV DVSRS     CONVERT FIRST 
      ADA REPB0      DIGIT. 
      STA REPBF,I   PUT IN
      ISZ REPBF      BUFFER.
      LDA 1         NOW GET THE REST. 
      CLB 
      DIV .100      COMPUTE AS 2 2-DIGIT #S.
      STB REPK      SAVE 2ND HALF.
      JSB REPNM     CONVERT AND STORE 
      STA REPBF,I    FIRST PART.
      ISZ REPBF 
      LDA REPK      SAME WITH 
      JSB REPNM      2ND PART.
      STA REPBF,I 
      ISZ REPBF 
      JMP REPTR,I 
* 
REPHD DEF *+1 
      OCT 5040
      ASC 20,ID  TIME  SPACE     ID  TIME  SPACE
      ASC 8,ID  TIME  SPACE 
RIDCL DEF IDEC+11   END OF IDEC TABLE POINTER 
REPPT EQU T35BF+34
REPLN EQU T35BF+35
REPBF EQU LTEMP 
REPID EQU LTEMP+1   => ID ENTRY 
REPT  EQU LTEMP+2 
REPK EQU LTEMP+3    DISC
*                         LTEMP+4     ADDRESS 
RPCNT EQU LTEMP+5                                [B]
REPKP DEF REPK
REPTT ABS -T35BF-2  USED TO FIGURE # WORDS IN BUFFER
REPND DEF T35BF+30  END-OF-BUFFER POINTER 
REPMS OCT 17400 
REPFX ASC 1,@0
REPB0 ASC 1, 0
REP29 DEC -29 
REP57 DEC 57
REP56 DEC 56
REPSL OCT 20012 
* 
* LTEMP+12, LTEMP+13, LTEMP+14 AND LTEMP+15 ARE ALSO USED 
* 
$REP  EQU * 
