      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       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 .+?MASK-?PROG       LDA 1,I       TEST FOR COMPILED.      AND CFLAG       SZA,RSS       JMP LEN1      USER NOT COMPILED.      JSB RDPRG     READ IN USER PROGRAM.       LDA SPTR      USE SOURCE PROGRAM POINTER.       RSS LEN1  LDA LTEMP       CMA           COMPUTE LENGTH IN WORDS.      ADA PBUFF       CMA       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       CLA,RSS       SET ECHO BIT 0. ECH1  CCA           SET ECHO BIT -1.      STA LTEMP       JSB LCHAR     TEST FOR CR.      RSS       JMP ILFER *       LDB MLINK+1       ADB .+?MASK-?LINK       LDA 1,I       SET ECHO BIT 1.       IOR PLEX      ISZ LTEMP     IF ECHO-OFF       XOR 1,I        SET TO 0.      STA PLEX      JMP LLEND * ECHN  OCT 116 ECHF  OCT 106 ECHO  OCT 117 $ECH  EQU *       HED REPORT* 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.       SPC 2       ORG LIBRA     MOVE HEADING      LDA T35B1      TO PRINT       STA MOVED       BUFFER.       LDA REPHD       STA MOVES       LDB REP29       JSB MOVEW       LDB IDLEN     USE WORD 35 OF THE BUFFER TO      STB REPLN      COUNT ID ENTRIES.      LDA REP57     WE WILL PRINT 57 CHARACTERS.      SZB           IF ID TABLE IS LENGTH >0, GO TO       JMP REP1       PRINT AND SUSPEND. REP2  LDB T35B1     OTHERWISE, JUST PRINT THE       JMP LEND+2     HEADING AND TERMINATE. * REP1  LDB T35B1     PRINT AND       JSB T35SP      SUSPEND. *       LDA T35B1     SET BUFFER      STA REPBF       POINTER.      LDA IDLEN     COMPUTE PARAMETERS FOR DISC       CMA,INA        TRANSFER.      ADA REPLN       STA REPID     REPLN-IDLEN.      CLB       LSR 6         DIV BY 64 TO GET # OF SECTORS       STA 1          TO SKIP.       ADA IDLOC     COMPUTE DISC ADDRESS.       BLF           COMPUTE # OF WORDS      RBL,RBL        TO TRANSFER.       CMB,INB       ADB REPID       STB REPID     LN-IDLEN-(LN-IDLEN)/64*64       ADB .+24      SET TRANSFER LENGTH TO READ       CMB,INB        3 NEW ID RECORDS.      STB WORD      LDB LIBDI       JSB DISC,I    INITIATE DISC TRANSFER.       LDA REPID     SET REPID TO POINT TO THE       ADA LIBD       FIRST ENTRY TO BE CONVERTED.       STA REPID *       LDB ENDSK     WAIT FOR DISC.      SZB       JMP *-2 * * 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. *                                                                [F]      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.      LDA REPXF     INSERT XOFF INTO             [F]  [F]       STA REPBF,I    BUFFER.                     [F]  [F]       LDA REPBF     COMPUTE #       ALS            OF CHARACTERS.              [F]  [F]       ADA REPTT                                  [F]  [F]       JMP REP2* REP3  LDA REP57     IF END OF                    [F]  [F]       LDB REPBF      BUFFER, GO TO      CPB REPND       PRINT AND SUSPEND.      JMP REP1      ISZ REPBF     MOVE BUFFER POINTER UP FOR   [F]  [F]       ISZ REPBF      NEXT ENTRY.                 [F]  [F]       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 DISC      ID   TIME DISC       ASC 7,ID   TIME DISC                       [F]  [F] REPXF OCT 11400     XOFF.                        [F]  [F] REPLN EQU T35BF+35REPBF EQU LTEMP REPID EQU LTEMP+1 REPT  EQU LTEMP+2 REPK  EQU LTEMP+3 REPTT ABS 1-T35BF-T35BF                          [F]  [F] REPND DEF T35BF+28                               [F]  [F] REPMS OCT 17400 REPFX ASC 1,@0REPB0 ASC 1, 0REP29 DEC -29 REP57 DEC 57*                                                                [F]$REP  EQU *       HED RESET * RESET ALLOWS A USER'S TIME-TO-DATE ENTRY TO BE MODIFIED.* THE FORMAT IS AS FOLLOWS: * * RESET             ALL TIMES ARE SET TO ZERO * * RESET-ID          SPECIFIED USER'S TIME SET TO ZERO * * RESET-ID,TIME     SPECIFIED ID SET TO SPECIFIED TIME. *       SPC 2       ORG LIBRA       SPC 1       LDB IDLEN     SET DISC TRANSFER LENGTH.       STB WORD      ASR 3         SET RESC=-# OF ENTRIES -1.      ADB .-1       STB RESC      LDA IDLOC     INITIATE DISC       LDB LIBDI      TRANSFER.      JSB DISC,I*       CLA           INITIALIZE ID TO 0.       STA ID      STA REST      INITIALIZE TIME ALSO.       JSB T35CH,I   GET 1ST CHAR.       JMP RES1      CR--NO PARAMETERS.*       CCA           BACKSPACE       ADA T35CP      BUFFER POINTER.      STA T35CP *       JSB GETID     GET THE ID.       JMP RES2      GO GET TIME--NO CARRIAGE RETURN.* RES1  LDA ENDSK     WAIT FOR DISC.      SZA       JMP *-2 *       LDB LIBD      LDA ID      SZA,RSS       IF ID=0 WE WANT TO CLEAR      JMP RES4       ALL TIMERS.* RES5  ISZ RESC      SEARCH IDT FOR CORRECT ENTRY.       RSS           TEST ENTRY. *       JMP LEND*       CPA 1,I       IS THIS THE ENTRY?      JMP *+3       YES.      ADB .+8       JMP RES5*       ADB .+5       SET IN      LDA REST       NEW TIME.      STA 1,I * RES6  LDA IDLEN     WRITE ID      STA WORD      TABLE BACK.       LDA IDLOC       LDB LIBD      JSB DISC,I      JMP LEND* RES4  ADB .+5       CLEAR ALL TIMERS.       ISZ RESC      TEST FOR ANY MORE.      RSS       JMP RES6      GO WRITE IDT BACK OUT.      STA 1,I       STORE 0.      ADB .+8       BUMP ADDRESS TO NEXT ENTRY.       JMP RES4+1    LOOP* *  COMPUTE THE TIME * RES2  CPA .+54B     TEST FOR COMMA      JSB T35CH,I   COMMA OK--GET NEXT CHAR.      JMP LFRER     ERROR IF NONE.      JMP *+3 RES3  JSB T35CH,I   GET NEXT CHAR.      JMP RES1      ADA M72B      TEST FOR DIGIT.       SSA,RSS       JMP LFRER     ERROR.      ADA .+10      CLE,SSA       JMP LFRER     ERROR.      STA RESD      SAVE DIGIT.       LDA REST      GET PARTIAL RESULT.       MPY .+10      COMPUTE NEW VALUE.      ADA RESD      ADD IN NEW DIGIT.       STA REST      SAVE NEW RESULT.      SEZ,SZB,RSS   TEST FOR OVERFLOW.      JMP RES3      JMP LFRER     ERROR.* RESC  EQU LTEMP REST  EQU LTEMP+1 RESD  EQU LTEMP+2 $RES  EQU *       HED CHANGEID* THE CHANGEID COMMAND CAN BE USED TO MODIFY THE PARAMETERS IN AN * ID ENTRY. THE MODIFIABLE ENTRIES ARE THE PASSWORD, TIME ALLOWED,* AND DISC ALLOWED. THE POSSIBLE FORMATS ARE: * *     CHANGEID-ID,PASSWORD,TIME,DISC*     CHANGEID-ID,PASSWORD,TIME *     CHANGEID-ID,PASSWORD,,DISC*     CHANGEID-ID,,TIME,DISC*     CHANGEID-ID,PASSWORD*     CHANGEID-ID,,TIME *     CHANGEID-ID,,,DISC      SPC 2       ORG LIBRA       SPC 1       JSB GETID     GET ID ENTRY.       RSS           SKIP TO COMMA TEST.       JMP LFRER     FAIL IF NOTHING FOLLOWS.      CPA .+54B     TEST FOR COMMA FOLLOWING.       RSS           OK.       JMP LFRER     FAIL IF NO COMMA FOLLOWS. *       LDA IDLEN     READ IN IDT.      STA WORD      LDA IDLOC       LDB LIBDI       JSB DISCL *       LDB IDLEN     SEARCH ID TABLE       CMB,INB        FOR CORRECT ID.      ADB LIBD      LDA IDCHA1  CPB LIBD      TEST FOR IDT EXHAUSTED.       JMP CHA2      ADB .-8       MOVE BACK TO NEXT ENTRY.      CPA 1,I       TEST FOR CORRECT ENTRY.       JMP CHA3      FOUND IT.       JMP CHA1* CHA2  LDA CHA2E     OUPUT NO ID MESSAGE.      STA MOVES       LDA T35B1       STA MOVED       LDB .-6       JSB MOVEW       LDA .+11      LDB T35B1       JSB TTY35,I       JMP LENDR     TERMINATE.CHA2E DEF *+1       OCT 5116      LF-N      ASC 5,O SUCH ID * * B NOW POINTS TO THE CORRECT ID. * CHA3  INB           SET CHAID TO POINT TO THE       STB CHAID      PASSWORD.      STB CHAI1     STORE COPY IN CHAI1.      JSB T35CH,I   GET FIRST CHARACTER OF POSSIBLE       JMP LFRER      PASSWORD--ERROR IF NONE.       CPA .+54B     IF COMMA, WE DON'T WANT TO      JMP CHA5       CHANGE PASSWORD.       CLB           INITIALIZE PASSWORD       ISZ CHAID       TO NULLS.       STB CHAID,I       ISZ CHAID       STB CHAID,I       LDB CHAI1     SET CHAID TO POINT AT       STB CHAID       PASSWORD AGAIN.       LDB .-3       SET COUNTER FOR 3 WORD      STB CHAC       PASSWORD.CHA4  ALF,ALF       SET LEFT CHARACTER OF WORD.       STA CHAID,I       JSB T35CH,I   GET RIGHT CHARACTER.      JMP CHA10     TERMINATE IF CR.      CPA .+54B     IF COMMA, WE'RE DONE WITH       JMP CHA5       PASSWORD.      IOR CHAID,I   MERGE IN WITH LEFT CHAR.      STA CHAID,I       ISZ CHAC      TEST FOR ALL OF PASSWORD IN.      RSS           NOT ALL IN YET.       JMP CHA6      ISZ CHAID     BUMP POINTER.       JSB T35CH,I   GET ANOTHER PASSWORD CHARACTER.       JMP CHA10     DONE IF CR.       CPA .+54B     TEST FOR COMMA.       JMP CHA5      JMP CHA4      LOOP. * CHA6  JSB T35CH,I   TEST FOR TOO MANY PASSWORD CHARS.       JMP CHA10     END OF REQUEST.       CPA .+54B     TEST COMMA.       RSS       JMP LFRER     FAIL. * CHA5  LDA CHAI1     SET CHAID TO POINT TO       ADA .+3       TIME ALLOWED.       STA CHAID *       JSB T35CH,I   GET 1ST CHAR OF POSSIBLE TIME.      JMP LFRER     ERROR IF NONE.      CPA .+54B     IF COMMA, GO TO DO DISC PART.       RSS       JSB CHA#      OTHERWISE GET NEW ALLOTTED TIME.      ISZ CHAID     SET POINTER TO ALLOTTED DISC      ISZ CHAID      SPACE.       JSB T35CH,I   GET FIRST DIGIT OF DISC.      JMP LFRER     FAIL IF NONE.       JSB CHA#      COMPUTE IT.       JMP LFRER     RETURN HERE IS ILLEGAL. * CHA10 LDA IDLEN     WRITE OUT THE NEW ID TABLE.       STA WORD      LDA IDLOC       LDB LIBD      JSB DISC,I      JMP LEND      TERMINATE.* CHA# SCANS THE INPUT BUFFER FOR A # FROM 0 TO 65535. IF IT FINDS* ONE, IT STORES IT IN CHAID,I. IF NO CHARACTER FOLLOWS THE #,* CHA# TRANSFERS TO CHA10. IF A COMMA FOLLOWS IT RETURNS. IF AN * ERROR IS FOUND, IT TRANSFERS TO LFRER. THE 1ST CHARACTER OF * THE NUMBER IS IN A UPON ENTRY.      SPC 1 CHA#  NOP       CLB           INITIALIZE # TO ZERO.       STB CHAID,I CHA7  ADA M72B      TEST FOR DIGIT.       SSA,RSS       JMP LFRER     FAIL.       ADA .+10      SSA       JMP LFRER     FAIL.       STA CHAD      SAVE DIGIT.       LDA CHAID,I   GET OLD VALUE.      MPY .+10       * 10       CLE       ADA CHAD       + NEW DIGIT.       SEZ,SZB,RSS   TEST FOR OVERFLOW.      RSS           OK      JMP LFRER     FAIL      STA CHAID,I   STORE AGAIN.      JSB T35CH,I   GET NEXT CHAR.      JMP CHA10     DONE IF CR.       CPA .+54B     RETURN IF COMMA.      JMP CHA#,I      JMP CHA7      ELSE LOOP.      SPC 1 CHAID EQU LTEMP CHAI1 EQU LTEMP+1 CHAC  EQU LTEMP+2 CHAD  EQU LTEMP+3 $CHA  EQU *       HED DIRECTORY * THE DIRECTORY COMMAND IS A SYSTEM COMMAND WHICH CAUSES THE* CONTENTS OF THE DISC DIRECTORY TO BE PRINTED ON THE SYSTEM* CONSOLE.  THE FORMAT OF THE PRINTOUT IS AS FOLLOWS: * * <ID> <NAME>  <PURGE DATE> <DISC ADR> <LENGTH> * * THE PURGE DATE IS PRINTED AS A 3-DIGIT INTEGER INDICATING THE DAY * OF YEAR AND A 2-DIGIT INTEGER INDICATING THE YEAR. THE DISC * ADDRESS CONSISTS OF 3 INTEGERS INDICATING DISC, TRACK, AND SECTOR.* THESE ARE ALL PRINTED IN DECIMAL.       SPC 2       ORG LIBRA       SPC 1       LDA DIR1      MOVE HEADING TO       STA MOVES      PRINT BUFFER.      LDA T35B1       STA MOVED       LDB .-20                                   [F]      JSB MOVEW       LDA .+39      PRINT                        [F]  [F]       LDB T35B1      HEADING AND      JSB T35SP       SUSPEND.*       CLA           SET UP LTEMP(0:3) FOR       STA LTEMP      INITIAL DIRECTORY SEARCH.      STA LTEMP+1       STA LTEMP+2       STA LTEMP+3 * DIR2  JSB DLOOK     PERFORM DIRECTORY SEARCH FOR      NOP            LAST ENTRY.      LDA LTEMP+5   MOVE POINTER UP TO      ADA .+8        NEXT ENTRY.      STA LTEMP+5       ADA LTEMP+4,I TEST FOR END OF TRACK.      ADA MLIBD       SZA       JMP DIR3      NOT END OF TRACK. *       LDB LTEMP+4   BUMP TRACK POINTER TO NEXT      ADB .+7        TRACK.       CPA 1,I       LOOP IF EMPTY.      JMP *-2 * * FOUND NEXT NON-EMPTY TRACK--WANT TO READ IT IN. *       STB LTEMP+4       LDA 1,I       SET WORD LENGTH.      STA WORD      ADB .+6       LDA 1,I       GET DISC ADDRESS.       LDB LIBDI       JSB DISCL     READ TRACK. *       LDA LIBD      SET POINTER TO ENTRY.       STA LTEMP+5 * DIR3  LDA LTEMP+5,I GET USER ID.      STA T35BF+35 LEAVE IN BUFFER;       CPA .-1       IF NEGATIVE, WE'RE AT END OF      JMP LEND       DIRECTORY, SO TERMINATE.       CPA LTEMP     IF ID SAME AS LAST TIME, GO PUT       JMP DIR4      BLANKS IN.*       AND B1777     GET NUMERICAL PART OF ID.       CLB       DIV .100      GET FIRST DIGIT IN A,LAST 2 IN B      STA T35BF     SAVE FIRST DIGIT.       LDA LTEMP+5,I GET ID AGAIN.       RAR,RAR       POSITION LETTER.      AND DIRMS     KEEP ONLY THOSE 5 BITS.       ADA T35BF     ADD IN DIGIT.       ADA DIRFX     CONVERT TO ASCII.       STA T35BF       LDA 1       JSB DIRNM     CONVERT LAST 2 DIGITS TO      JMP *+3        ASCII AND STORE IN BUFFER. * DIR4  LDA T35BF+2   PLACE BLANKS IN ID POSITION IN      STA T35BF      BUFFER.      STA T35BF+1 *       ISZ LTEMP+5   MOVE PROGRAM NAME INTO BUFFER.      LDA LTEMP+5,I       STA T35BF+3       ISZ LTEMP+5       DLD LTEMP+5,I       DST T35BF+4 *       LDB LTEMP+5   SET POINTER TO DATE LOCATION.       ADB .+3       STB LTEMP+5       LDA LTEMP+5,I GET DATE.       AND B777      GET DAY OF YEAR.      CLB       DIV .+10      SET A=1ST 2 DIGITS, B=LAST ONE.       BLF,BLF       POSITION LAST DIGIT IN LEFT       ADB DIR0S      HALF AND MERGE IN ASCII.       STB T35BF+8   STORE IN BUFFER.      JSB DIRNM     CONVERT 1ST 2 DIGITS AND STORE      STA T35BF+7    IN BUFFER.       LDA LTEMP+5,I GET YEAR.       ALF,ALF       POSITION.       RAR       AND B177      MASK,       JSB DIRNM      CONVERT,       STA T35BF+9     STORE.*       ISZ LTEMP+5   BUMP POINTER TO DISC ADDRESS.       LDA LTEMP+5,I GET DISC ADDRESS.       RAL,RAL       POSITIOM DISC NO. IN LOW 2 BITS.      AND .+3       KEEP IT.      ALF,ALF       POSITION AS LEFT CHAR.      ADA DIR0S     ADD IN ASCII JUNK.      STA T35BF+11  STORE IN BUFFER.*       LDA LTEMP+5,I GET DISC ADDRESS AGAIN.       ALF,ALF       POSITION TRACK IN LOW 6 BITS.       AND B77       KEEP ONLY THOSE BITS.       JSB DIRNM     CONVERT.      STA T35BF+12  STORE IN BUFFER.*       LDA LTEMP+5,I GET DISC ADDRESS AGAIN.       AND B177      KEEP ONLY SECTOR ADDRESS.       CLB           GET FIRST DIGIT IN A,       DIV .100       LAST 2 IN B.       ADA DIRS0     CONVERT FIRST ONE.      STA T35BF+13      LDA 1         CONVERT LAST      JSB DIRNM      TWO.       STA T35BF+14*       LDA T35BF+2   STORE INBETWEEN BLANK.      STA T35BF+15*       ISZ LTEMP+5   BUMP POINTER TO LENGTH.       LDA LTEMP+5,I GET LENGTH.       CMA,INA       MAKE POSITIVE.      CLB           GET FIRST 2 DIGITS IN A, LAST 2       DIV .100       IN B.      STB T35BF+17  SAVE LAST 2.      JSB DIRNM     CONVERT FIRST 2.      STA T35BF+16  STORE IN BUFFER.      LDA T35BF+17  GET LAST 2.       JSB DIRNM     CONVERT.      STA T35BF+17  STORE IN BUFFER *       LDA DIRXF     INSERT XOFF INTO             [F]      STA T35BF+18  BUFFER.                      [F]      LDA .+37                                   [F]  [F]       LDB T35B1       JSB T35SP     SUSPEND.*       LDA T35BF+35  SET UP LTEMP(0:3) IN ORDER TO       LDB T35BF+3       DST LTEMP     FIND NEXT PROGRAM       DLD T35BF+4       DST LTEMP+2       JMP DIR2      LOOP FOR NEXT OUTPUT. * * * DIRNM NOP           CONVERT A # <100 TO ASCII.      CLB       DIV .+10      ALF,ALF       ADA 1       ADA ASC00       JMP DIRNM,I DIR1  DEF *+1       OCT 5040      LF-BLANK      ASC 18,ID    NAME    DATE   DISC ADR LENGTH DIRXF OCT 11400     XOFF.                        [F]DIRMS OCT 17400 DIRFX ASC 1,@0DIR0S ASC 1,0/DIRS0 ASC 1,/0$DIR  EQU *       HED STATUS*  THE STATUS COMMAND PRINTS A SUMMARY OF THE SYSTEM RESOURCES, * AND THE EXTENT OF THEIR UTILIZATION, ON THE SYSTEM TELETYPE.*  THE SUMMARY GIVES THE DISC LOCATION AND LENGTH OF ALL SYSTEM * TABLES, THE DISC LOCATION OF SYSTEM AND USER TRACKS, THE SELECT * CODES OF ALL I/O DEVICES (A SELECT CODE OF ZERO INDICATES A * DEVICE DOES NOT EXIST), AND THE AVAILABLE TRACK TABLE * (0 INDICATES A TRACK IS AVAILABLE, 1 INDICATES THAT IT IS *  LOCKED OR ON A NON/EXISTENT DISC).       ORG LIBRA       LDA T35B2     INITIALIZE      STA STABF       BUFFER POINTER      JSB STAST     PRINT       OCT 5012      ASC 2,IDT       IDT       OCT 0       LDA IDLOC         AND       LDB IDLEN       JSB STALL           ADT       JSB STAST       ASC 2,ADT       OCT 0       LDA ADLOC       LDB ADLEN       JSB STALL       JSB STAST       OCT 6412,5104       ASC 2,IREC      OCT 0       JSB STAPR *       LDA DIREC+6   PRINT       LDB DIREC       JSB STALL       DIRECTORY       LDA  DIREC+13       LDB DIREC+7       TRACK       JSB STALL       LDA DIREC+20   INFORMATION      LDB DIREC+14      JSB STALL       LDA DIREC+27      LDB DIREC+21      JSB STALL       JSB STAPR *       JSB STAST     PRINT       OCT 5123      ASC 3,YSTEM       OCT 0       LDA ADLEN     TRACK       STA WORD      LDA ADLOC           ADDRESSES       LDB LIBDI       JSB DISCL       LDA LIBD      STA LTEMP+3       LDA .-5       STA LTEMP+4 STAL1 DLD LTEMP+3,I       ISZ LTEMP+3       ISZ LTEMP+3       SZB       JMP STAL1       JSB STADS       ISZ LTEMP+4       JMP STAL1       JSB STAST       OCT 6412,5125       ASC 2,SERS      OCT 0       JSB STAPR *       JSB STAUS          PRINT      DEF TTY00+?DISC       JSB STAPR            USER TRACK       JSB STAUS       DEF TTY08+?DISC       JSB STAPR * * PRINT SELECT CODES. *       JSB STAST     PRINT LF,MAG=       OCT 5115      ASC 2,AG=       NOP       LDA MAGSC     PRINT MAGSC.      JSB STAOC       LDB MAGSC     IF MAGSC(BIT15) IS SET,      [F]      LDA .+52B      OUTPUT A * TO INDICATE      [F]      SSB             7970.                      [F]      JSB STACH                                  [F]      JSB STAST     PRINT "PHONES="       ASC 5,  PHONES=       NOP       LDA PHSC      PRINT PHSC.       JSB STAOC       JSB STAST       ASC 4,  DISC= PRINT "DISC="       NOP       LDA .-4       SET UP DISC COUNTER.      STA LTEMP+6 STAD1 LDA LTEMP+6   GET SELECT      ADA .+4        CODE & TRACK       ADA ?ATBL       LENGTH OF DISC.       LDA 0,I       STA LTEMP+7   SAVE IT.      AND B77       MASK SC.      JSB STAOC     OUTPUT SC.      LDA .+55B     OUTPUT DASH.      JSB STACH       LDA LTEMP+7   NOW GET TRACK LENGTH.       ALF,ALF       AND B377      JSB STA3D     OUTPUT IT.      ISZ LTEMP+6   DONE?       JMP STAD1     NO.       JSB STAST     OUTPUT CRLF"TRACKS".      OCT 6412,5040       ASC 3,TRACKS      OCT 0       JSB STAPR *       LDA DTRAX     PRINT       STA T35LC       LDA .-4         AVAILABLE STAL2 STA T35BF+34      ADA .+4           TRACK       JSB STADG       JSB STAST           TABLE       ASC 1,      OCT 0       LDA .-4       STA LTEMP+1 STAL3 LDA .-16      STA LTEMP+2       LDA T35LC,I STAL4 STA LTEMP+3       AND .+1       JSB STADG       LDA LTEMP+3       RAR       ISZ LTEMP+2       JMP STAL4       ISZ T35LC       ISZ LTEMP+1       JMP STAL3       JSB STAPR       LDA T35BF+34      INA,SZA       JMP STAL2       JMP LEND      SKP * * STAPR PRINTS THE BUFFER.* STAPR NOP       LDA STAPR     SAVE RETURN ADDRESS.      STA T35SP       LDA T35B2     COMPUTE # OF CHARS.       CMA,INA       ADA STABF       LDB T35B2     RESET BUFFER      STB STABF      POINTER.       LDB T35B1       JMP T35SP+1   OUTPUT. * * STAST OUTPUTS A STRING* STAST NOP       LDA STAST,I   GET CHAR. PAIR      SZA,RSS       JMP STAST,I      ALF,ALF        OUTPUT LEFT CHAR.       JSB STACH       LDA STAST,I   OUTPUT RIGHT CHAR.      JSB STACH       ISZ STAST     BUMP POINTER.       JMP STAST+1   LOOP. * * STALL OUTPUTS A DISC LOCN AND LENGTH. * STALL NOP       STB LTEMP+2   SAVE LENGTH.      JSB STADS     OUTPUT DISC ADDRESS.      LDA LTEMP+2   GET LENGTH.       CMA,INA       MAKE POSITIVE.      CLB       DIV DVSRS+1   GET FIRST DIGIT.      JSB STADG     PRINT IT.       JSB STA3D     PRINT REMAINING 3.      LDA .+40B       JSB STACH     OUTPUT BLANK.       JMP STALL,I * * STAUS PRINTS 8 USER TRACKS. * STAUS NOP       LDB .-8       COUNTER       STB LTEMP+4       LDB STAUS,I   POINTER TO FIRST ONE.       STB LTEMP+3       LDA LTEMP+3,I       JSB STADS     PRINT ONE.      LDB LTEMP+3   NEXT USER.      ADB .+TTY01-TTY00       ISZ LTEMP+4   DONE?       JMP STAUS+4   NO      ISZ STAUS       JMP STAUS,I * * STADS OUTPUTS A DISC ADDRESS AS 8 CHARS FOLLOWED BY A BLANK.* STADS NOP       STA LTEMP+1       RAL,RAL       GET DISC NO.      AND .+3       JSB STADG       LDA .+57B     SLASH.      JSB STACH       LDA LTEMP+1   GET TRACK NO.       ALF,ALF       AND B77       JSB STA2D       LDA .+57B     SLASH.      JSB STACH       LDA LTEMP+1   SECTOR NO.      AND B177      JSB STA3D       JMP STADS,I * * STA2D OUTPUTS A 2 DIGIT NUMBER. * STA2D NOP       CLB       DIV .+10      JSB STADG       JSB STADG       JMP STA2D,I * * STAOC OUTPUTS A 2-DIGIT OCTAL INTEGER.* STAOC NOP       CLB       DIV .+8       JSB STADG       JSB STADG       JMP STAOC,I * * STADG OUTPUTS A DIGIT.* STADG NOP       ADA .+60B       JSB STACH       JMP STADG,I * * STACH INSERTS A CHARACTER INTO THE BUFFER.* STACH NOP       STB LTEMP+8   SAVE B-REG.       AND B177      CLEAR TOP BITS.       LDB STABF     GET BUFFER POINTER.       CLE,ERB       SEZ,RSS      ALF,SLA,ALF    CHARACTER ON LEFT.      IOR 1,I       CHARACTER ON RIGHT.       STA 1,I       ISZ STABF     BUMP POINTER.       LDA LTEMP+8   RESTORE OLD B-REG.INTO A.       JMP STACH,I * * STA3D OUTPUTS A 3-DIGIT NUMBER. * STA3D NOP       CLB       DIV .100      GET 1ST DIGIT IN A, LAST 2 IN B.      JSB STADG     OUTPUT FIRST DIGIT.       JSB STA2D     OUTPUT LAST TWO.      LDA .+40B       JSB STACH     OUTPUT BLANK.       JMP STA3D,I $STA  EQU * 