ASMB,Q,C
      HED <LOG3K> ACCESS TO 3000 LOGGING * (C) HEWLETT-PACKARD CO.  
      NAM LOG3K,19,80 91750-16132 REV.2013 790508 MEF 
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS      *
*  * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY.   *
******************************************************************
      SPC 2 
      UNL           NEXT 5 LINES ARE FOR PRODUCTION ENGINEERING 
*  NAME: LOG3K    
*SOURCE: 91750-18132
* RELOC: 91750-16132
*  PGMR: DMT      
      LST         
**************************   LOG3K   *************************
*                                                            *
* SOURCE: 91750-18132                                        *
*                                                            *
* BINARY: 91750-16132                                        *
*                                                            *
* PROGRAMMER: DAVE TRIBBY                                    *
*                                                            *
* OCTOBER 13, 1978                                           *
*                                                            *
**************************************************************
      SPC 1 
* 
* DS/1000 PROGRAM TO PROVIDE OPERATOR ACCESS TO 3000 LOGGING. 
* 
      EXT $OPSY,IFTTY,SPOPN,#CL3K,#LU3K,#FWAM,PGMAD 
      EXT EXEC,CNUMD,REIO,LOGLU,NAMR,.DFER,LUTRU
* 
A     EQU 0         A-REGISTER
B     EQU 1         B-REGISTER
      SUP 
      SKP 
LOG3K LDA $OPSY     CHECK FOR OPERATING 
      RAR,SLA        SYSTEM TYPE. 
      JMP XLABI 
      LDA B,I       NON-DMS LOAD. 
      JMP CHKPR 
XLABI XLA B,I       DMS LOAD. 
      SPC 1 
* 
*  WHAT IS THE CONSOLE LU?
* 
CHKPR SZA,RSS       IF FIRST PARAM IS 0,
      JMP SETLU      SET TO LOGLU.
      IOR B600      SET ECHO AND COL 1 BITS.
      STA CONSL     STORE CONSOLE LU. 
      JMP PRHED 
* 
SETLU JSB LOGLU     GET CONSOLE LU
      DEF *+2        OF SCHEDULER.
      DEF TEMP
      IOR B600      SET ECHO AND COL 1 BITS.
      STA CONSL     STORE AS CONSOLE LU.
      SPC 1 
*  PRINT CURRENT STATUS INFORMATION.
PRHED JSB PRINT     PRINT 
      DEF HEAD1      FIRST
      DEC 14          HEADING.
* 
      LDA #FWAM     IF NO SAM 
      SZA,RSS        ALLOCATED, 
      JMP NOTEN        NOT ENABLED! 
* 
      LDA #LU3K     IF NO 
      SZA,RSS        3000 LU, 
      JMP NOTEN        NOT ENABLED! 
* 
      DLD ".LU"         MOVE " LU " TO
      DST LUINF+2        LU INFORMATION.
      LDA D4            LENGTH IS 4.
      STA LULEN 
* 
      LDA #CL3K     IF NO 
      SZA            LOGGING LU,
      JMP CHKCL 
      JSB .DFER          MOVE "<NONE>"
      DEF LUINF+4 
      DEF NONE
* 
      JSB PRINT        PRINT IT.
      DEF LUINF 
      DEC 7 
      JMP CHKIN        GO CHECK FOR INPUT.
* 
CHKCL AND BIT13     IF I/O CLASS BIT
      SZA,RSS        IS SET,
      JMP GETLU 
* 
      JSB .DFER     (BIT IS SET...) 
      DEF LUINF+2   MOVE "CLASS"
      DEF CLASS 
      LDA BLNKS 
      STA LUINF+5 
      LDA D6
      STA LULEN 
* 
GETLU LDA LULEN 
      ADA @LUIN     ADD STARTING ADDR 
      STA ADDR       TO LENGTH. 
      LDA #CL3K 
      AND B377      ISOLATE LU OR CLASS.
      STA TEMP
      JSB CNUMD     CONVERT 
      DEF *+3        TO 
      DEF TEMP        ASCII 
      DEF ASCII        (DECIMAL). 
* 
      DLD ASCII+1   PICK UP RESULT. 
      RRL 8         ROTATE LEFT 1 BYTE. 
      DST ADDR,I    STORE.
* 
      LDA LULEN     ADD 2 TO LENGTH.
      ADA D2
      STA LULEN 
* 
      LDA #CL3K+2   IF FILE NAME
      SZA,RSS        IS IN RES, 
      JMP DOWN? 
      JSB .DFER     MOVE IT 
      DEF LUINF+6    INTO 
      DEF PFILE        BUFFER.
      JSB .DFER 
      DEF LUINF+9 
      DEF #CL3K+2 
      LDA PARN
      STA LUINF+12
      LDA D13       LENGTH IS 
      STA LULEN      NOW 13.
      SPC 1 
DOWN? LDA #CL3K     IF SIGN BIT 
      SSA,RSS        IS SET,
      JMP PRLU
      LDA @LUIN      POINT TO 
      ADA LULEN       NEXT BUFFER 
      STA TEMP         WORD.
      DLD DOWN       MOVE "DOWN"
      DST TEMP,I      TO BUFFER.
      LDA LULEN      ADD 2
      ADA D2          TO LENGTH.
      STA LULEN 
      SPC 1 
PRLU  JSB PRINT     PRINT 
      DEF LUINF      LU 
LULEN NOP             INFORMATION.
      SPC 1 
      CLA           SET LOGGING LENGTH
      STA LGLEN      TO ZERO. 
      LDB @LGIN     SET DEST. ADDR. IN CASE OF NO BUF.
      LDA #CL3K+1   BUFFERS BEING TRACED? 
      SSA,RSS 
      JMP DRVR?       NO. CHECK FOR DRIVER. 
* 
      LDB @HEDR     SET UP MOVE 
      STB MPNTR      POINTER. 
      LDB D4        SET LENGTH
      STB LGLEN      TO 4.
* 
      RAL           POSITION BIT 14.
      SSA,RSS       APPENDAGE BIT SET?
      JMP MOVLG       NO. GO MOVE MESSAGE.
      LDB @APND     SET UP MOVE 
      STB MPNTR      POINTER. 
      ISZ LGLEN     SET LENGTH TO 5.
* 
      LDA #CL3K+1   GET MAX DATA LENGTH 
      AND LENBT      FROM BITS 0-12.
      SZA,RSS       IF ZERO,
      JMP MOVLG       GO MOVE MESSAGE.
      STA TEMP      SAVE LENGTH.
      JSB CNUMD     CONVERT 
      DEF *+3        TO 
      DEF TEMP        ASCII 
      DEF ASCII        (DECIMAL). 
      DLD ASCII+1 
      DST WRDDT 
      LDA D8        SET MOVE
      STA LGLEN      LEN TO 8.
      LDA @WRDT     SOURCE ADDRESS. 
      RSS           READY TO MOVE.
* 
MOVLG LDA MPNTR     SOURCE ADDRESS. 
      LDB @LGIN     DESTINATION.
      MVW LGLEN     MOVE LOGGING MESSAGE. 
* 
      LDA #CL3K+1   CHECK DRIVER
      AND BIT13      BIT. 
      SZA,RSS 
      JMP PRLOG     NOT SET. GO PRINT.
      LDA @&DVR     SET. MOVE " AND 
      MVW D6         DRIVER". 
      LDA LGLEN     INCREMENT 
      ADA D6         LENGTH BY
      STA LGLEN       SIX.
* 
PRLOG LDA LGLEN     CALCULATE TOTAL 
      ADA D4         MESSAGE LENGTH.
      STA LGLEN 
      JSB PRINT     PRINT 
      DEF LGINF      LOGGING
LGLEN NOP             INFORMATION.
* 
      JMP CHKIN     GO CHECK FOR INPUT. 
      SPC 3 
*  CHECK TO SEE IF DRIVER IS BEING LOGGED.
DRVR? LDA #CL3K+1   DRIVER BIT SET? 
      AND BIT13 
      SZA 
      JMP DRVR!       YES. GO MOVE "DRIVER".
* 
      LDA @NOTH     MOVE "NOTHING". 
      RSS 
* 
DRVR! LDA @DRVR     MOVE "DRIVER" 
      LDB @LGIN     DESTINATION ADDRESS.
      MVW D4        MOVE MESSAGE. 
      LDA D4        LENGTH
      STA LGLEN      IS 4.
      JMP PRLOG     GO PRINT. 
       SPC 5
**  ENTER HERE WHEN NODE IS NOT ENABLED FOR 3000 COMMUNICATIONS **
* 
NOTEN JSB PRINT     PRINT 
      DEF NTENL      MESSAGE. 
      DEC 10
      JMP DONE      TERMINATE.
* 
NTENL ASC 10, HP 3000 NOT ENABLED 
      SKP 
CHKIN JSB IFTTY     CHECK CONSOLE 
      DEF *+2        TO SEE IF IT'S 
      DEF CONSL        INTERACTIVE. 
      SSA,RSS       IF NOT, 
      JMP DONE       ALL DONE.
      SPC 2 
      JSB PRINT     ASK:
      DEF CHNG?      "CHANGES?".
D6    DEC 6 
* 
      JSB READ      READ REPLY. 
      SPC 1 
      LDA NAME      GET COMMAND.
      CPA "LU"      LU? 
      JMP GTLU       YES. 
      CPA "FI"      FI? 
      JMP GETFI      YES. 
      CPA "TY"      TY? 
      JMP GETTY      YES. 
      CPA "UP"      UP? 
      JMP UP         YES. 
      CPA "/E"      /E? 
      JMP DONE       YES. 
      CPA "EX"      EX? 
      JMP DONE       YES. 
      CPA "NO"      NO? 
      JMP DONE       YES. 
      CPA "EN"      EN? 
      JMP DONE       YES. 
      CPA "??"      ??? 
      JMP XPLAN      YES. 
* 
*  COMMAND NOT RECOGNIZED. PRINT ERROR MESSAGE. 
* 
PRERR JSB PRINT 
      DEF ERMSG 
      DEC 19
      JMP CHKIN     TRY AGAIN.
* 
ERMSG ASC 19, UNRECOGNIZED. TYPE "??" FOR COMMANDS. 
      SPC 1 
*  PRINT FINAL MESSAGE AND TERMINATE
DONE  JSB PRINT     PRINT 
      DEF ENMSG      ENDING 
      DEC 5           MESSAGE.
      JSB EXEC      ALL DONE--TERMINATE.
      DEF *+2 
      DEF D6
      SKP 
*  GET NEW LOGGING LU.
* 
GTLU  JSB PNAMR     PARSE AHEAD.
      LDA STATS     IF NUMERIC PARAM PROVIDED,
      AND D3
      CPA D1          DON'T NEED TO PROMPT. 
      JMP GTLU1 
* 
      JSB PRINT     PROMPT FOR NEW LU.
      DEF NEWLU 
      DEC 6 
      JSB READ      READ. 
GTLU1 LDA NAME      GET RESPONSE. 
      CPA "/E"      IF "/E" 
      JMP CHKIN      PROMPT AGAIN.
      AND HB377     IF > 255, 
      SZA 
      JMP INVAL       INVALID.
* 
      JSB CLOLD     CLEAR OLD ENTRY.
      JSB LUTRU     GET "REAL" LU NUMBER
      DEF *+2        SINCE QUEX RUNS
      DEF NAME        OUTSIDE OF SESSION. 
      SSA           IF ERROR, 
      JMP INVAL       IT'S INVALID. 
      STA #CL3K     SET NEW LU. 
      JMP PRHED     PRINT NEW STATUS. 
      SPC 3 
INVAL JSB PRINT     PRINT 
      DEF INVMS      INVALID
      DEC 7           MESSAGE.
      JMP CHKIN     GET NEW COMMAND.
* 
INVMS ASC 7, INVALID VALUE
      SKP 
*  GET NEW FILE NAME--ONLY FOR SPOOLED SYSTEMS. 
GETFI JSB PGMAD     IS SMP
      DEF *+2        IN SYSTEM? 
      DEF "SMP" 
      SZA,RSS 
      JMP NOSMP        NO. TELL USER. 
      JSB PNAMR     PARSE AHEAD.
      LDA NAME      IF INFO GIVEN,
      SZA            DON'T NEED TO PROMPT.
      JMP GTFI1 
      JSB PRINT     PROMPT FOR
      DEF NEWFI      FILE NAME. 
      DEC 7 
      JSB READ      READ. 
      LDA NAME      GET RESPONSE. 
      CPA "/E"      IF "/E",
      JMP CHKIN      PROMPT AGAIN.
* 
GTFI1 JSB CLOLD     CLEAR OLD ENTRY.
* 
      JSB .DFER     MOVE
      DEF SPNAM      SPOOL
      DEF NAME        FILE NAME.
      DLD SECU      SET SECURITY AND
      DST SPSEC      CARTRIDGE NUMBER.
      JSB SPOPN     OPEN THE SPOOL LU.
      DEF *+3 
      DEF SPBUF 
      DEF SPLU
* 
      LDA SPLU      GET LU #. 
      SSA           NEGATIVE? 
      JMP RPTER       REPORT SPOOL ERROR. 
* 
      JSB LUTRU     GET "REAL" LU NUMBER
      DEF *+2        SINCE QUEX RUNS
      DEF SPLU        OUTSIDE OF SESSION. 
* 
      STA #CL3K     SET LU # IN SSGA. 
      JSB .DFER     MOVE FILE 
      DEF #CL3K+2    NAME TOO.
      DEF NAME
      LDA NAME+2
      STA #CL3K+4 
      JMP PRHED     PRINT NEW STATUS. 
      SPC 1 
*  REPORT SPOPN ERROR 
RPTER CMA,INA       MAKE POSITIVE.
      STA TEMP      SAVE ERROR. 
      JSB CNUMD     CONVERT 
      DEF *+3        TO 
      DEF TEMP        ASCII 
      DEF ASCII        (DECIMAL). 
      DLD ASCII+1   MOVE TO 
      DST SMPER+7    MESSAGE. 
      JSB PRINT     PRINT 
      DEF SMPER      MESSAGE. 
      DEC 9 
      JMP CHKIN     READ AGAIN. 
* 
SMPER ASC 9,***SMP ERROR -XXXX
      SPC 1 
*  SMP NOT PRESENT. 
NOSMP JSB PRINT     PRINT 
      DEF ERRSP      MESSAGE. 
D8    DEC 8 
      JMP CHKIN     READ AGAIN. 
* 
ERRSP ASC 8,SORRY, NO SPOOL 
      SPC 2 
*  SPOOL SET-UP BUFFER
SPBUF DEC 0         NO BATCH INPUT CHECKING 
      NOP 
SPNAM ASC 3,        SPOOL FILE NAME 
SPSEC BSS 2         SECURITY, CARTRIDGE 
      OCT 23        DEVICE TYPE=MAG TAPE
      OCT 23        DISPOSITION 
      DEC 0,0,0,0,0,0,0 
* 
SPLU  NOP           SPOOL LU (RETURNED BY SPOPN)
      SKP 
*  GET NEW TRACE TYPE 
GETTY JSB PNAMR     PARSE AHEAD.
      LDB NAME      IF INFO GIVEN,
      SZB             NO NEED TO PROMPT.
      JMP GTTY1 
* 
      JSB PRINT     PROMPT FOR NEW TYPE.
      DEF NEWTY 
      DEC 9 
      JSB READ      READ. 
      LDB NAME      GET RESPONSE. 
      CPB "/E"      IF "/E",
      JMP CHKIN       PROMPT AGAIN. 
* 
GTTY1 CLA           CLEAR OPTIONS.
      CPB "DA"      DATA? 
      JMP SDATA      YES. 
      CPB "AP"      APPENDAGE?
      JMP SAPND      YES. 
      CPB "HE"      HEADER? 
      JMP SHEAD      YES. 
      CPB "DR"      DRIVER? 
      JMP SETDR      YES. 
      CPB "NO"      NONE? 
      JMP STOPT      YES. 
      JMP PRERR     UNRECOGNIZED. PROMPT AGAIN. 
* 
*  SET VARIOUS OPTIONS. 
SDATA LDA SECU      GET NAMR PARAMETER. 
      AND LENBT     MAKE SURE IT FITS IN BITS 0-12. 
* 
SAPND IOR BIT14     SET APPENDAGE BIT.
* 
SHEAD IOR BIT15     SET HEADER BIT. 
* 
      STA TEMP      HOLD OPTIONS. 
      JSB PNAMR     PARSE AHEAD.
      LDA TEMP      RESTORE OPTIONS.
* 
      LDB NAME      GET SECOND OPTION.
      CPB "DR"      DRIVER? 
SETDR IOR BIT13      YES. SET BIT 13. 
* 
STOPT STA #CL3K+1   STORE NEW OPTIONS.
      JMP PRHED     PRINT NEW STATUS. 
      SKP 
* REMOVE "DOWN" BIT FROM LU.
UP    LDA #CL3K     PICK UP LU. 
      AND NOT15     REMOVE SIGN.
      STA #CL3K     STORE.
      JMP PRHED     PRINT NEW STATUS. 
      SPC 3 
* EXPLAIN LOG3K FUNCTIONS 
XPLAN JSB PRINT 
      DEF EXPLN 
      ABS ENDXP-EXPLN 
      JMP CHKIN     PROMPT AGAIN. 
* 
EXPLN ASC 27,LOG3K SETS UP FIVE WORDS IN SUBSYSTEM GLOBAL WHICH ARE 
      ASC 10, USED BY THE HP3000
      BYT 15,12 
      ASC 27,COMMUNICATIONS MODULE QUEX. THESE WORDS INDICATE WHAT
      ASC 07,TRACING SHOULD 
      BYT 15,12 
      ASC 28,TAKE PLACE FOR COMMUNICATIONS BUFFERS AND WHETHER DRIVER 
      ASC 09, FUNCTIONS SHOULD
      BYT 15,12 
      ASC 27,BE RECORDED. LOG3K REPORTS CURRENT OPTIONS AND ALLOWS
      ASC 10,YOU TO CHANGE THEM.
      BYT 15,12 
      BYT 15,12 
      ASC 09,POSSIBLE CHANGES:
      BYT 15,12 
      ASC 15,    LU    NEW LOG LOGICAL UNIT 
      BYT 15,12 
      ASC 21,    FI    NEW LOG FILE (SPOOL SYSTEM ONLY) 
      BYT 15,12 
      ASC 17,    UP    RESET LOG LU TO BE "UP"
      BYT 15,12 
      ASC 13,    TY    NEW LOGGING TYPE 
      BYT 15,12 
      BYT 15,12 
      ASC 12,POSSIBLE LOGGING TYPES:
      BYT 15,12 
      ASC 09,    NO    NOTHING
      BYT 15,12 
      ASC 17,    HE    COMM. BUFFER HEADER ONLY 
      BYT 15,12 
      ASC 15,    AP    HEADER AND APPENDAGE 
      BYT 15,12 
      ASC 23,    DA:n  HEADER, APPENDAGE, AND n WORDS DATA
      BYT 15,12 
      ASC 28,    DR    DRIVER EVENTS AND STATES (MAY BE SECOND OPTN)
      BYT 15,12 
      ASC 26,EXAMPLE-- DA:50,DR  TRACES 50 WORDS DATA AND DRIVER. 
      BYT 15,12 
ENDXP EQU * 
      SKP 
* 
* SUBROUTINE TO PRINT A RECORD ON CONSOLE.
*   CALLING SEQUENCE: JSB PRINT 
*                     DEF <STRING>
*                     DEC <LENGTH>
* 
PRINT NOP           ENTRY POINT 
      LDA PRINT,I   PICK
      STA MSG        UP 
      ISZ PRINT       PARAMETERS. 
      LDA PRINT 
      STA MSLEN 
      ISZ PRINT     SET RETURN ADDR.
      JSB REIO      CALL REIO FOR WRITE.
      DEF *+5 
      DEF SD2 
      DEF CONSL 
MSG   NOP 
MSLEN NOP 
      NOP           IGNORE ERRORS.
      JMP PRINT,I   RETURN. 
      SPC 3 
* 
* SUBROUTINE TO READ FROM CONSOLE AND PARSE INPUT.
*  CALLING SEQUENCE: JSB READ 
* 
READ  NOP           ENTRY.
      JSB REIO      DO READ.
      DEF *+5 
      DEF SD1 
      DEF CONSL 
      DEF INBUF 
      DEF N80 
      JMP DONE      TERMINATE UPON ERROR. 
      STB RDLEN     SAVE # OF CHARACTERS. 
      CLA,INA       SET POINTER TO
      STA PNTR       FIRST CHARACTER. 
      JSB PNAMR     PARSE.
      JMP READ,I    RETURN. 
      SKP 
*  SUBROUTINE TO CALL NAMR PARSE ROUTINE
*   CALLING SEQUENCE: <SET PNTR TO PROPER COLUMN OF INBUF>
*                      JSB PNAMR
* 
PNAMR NOP           ENTRY POINT 
      JSB NAMR      CALL
      DEF *+5        NAMR 
      DEF NAME        ROUTINE.
      DEF INBUF 
      DEF RDLEN 
      DEF PNTR
      JMP PNAMR,I   RETURN. 
      SPC 2 
*  RTE FILE NAMR PARAMETERS 
NAME  BSS 3 
STATS BSS 1 
SECU  BSS 1 
CRN   BSS 5 
      SPC 1 
INBUF BSS 40
RDLEN NOP 
      SPC 1 
PNTR  NOP           COLUMN POINTER
      SKP 
* SUBROUTINE TO CLEAR OLD ENTRY IN SSGA.
*  CALLING SEQUENCE: JSB CLOLD
* 
CLOLD NOP           ENTRY POINT.
      LDA #CL3K+3   SPOOLED LU? 
      SZA,RSS 
      JMP CLCLS 
      LDA #CL3K     YES.
      AND NOT15     SAVE LU NUMBER. 
      STA TEMP
* 
*  IF RUNNING UNDER SESSION, FIND THE SESSION LU WHICH MATCHES THE
*  "TRUE" LU THAT WAS RECORDED IN #CL3K.
* 
      LDA D63       START AT 63.
STSLU STA TESTL     SET THE TEST LU.
      SZA,RSS       IF DOWN TO 0, 
      JMP NTFND        NOT FOUND! 
      JSB LUTRU     COMPARE TEST LU'S 
      DEF *+2        "TRUE" LU TO 
      DEF TESTL       THE SPOOL LU. 
      CPA TEMP      IS THIS IT? 
      JMP FOUND       YES!
      CCA           NO DECREMENT
      ADA TESTL      AND TRY AGAIN. 
      JMP STSLU 
* 
FOUND JSB EXEC      TELL SMP
      DEF *+5        TO RELEASE.
      DEF SD23
      DEF "SMP" 
      DEF D4
      DEF TESTL 
      NOP           (ERROR RETURN.) 
* 
CLFIL CLA           CLEAR 
      STA #CL3K+2    FILENAME 
      STA #CL3K+3     IN SSGA.
      STA #CL3K+4 
      JMP CLOLD,I   RETURN. 
* 
* 
*  THE SPOOL LU WAS NOT FOUND IN THE SESSION SWITCH TABLE. WARN USER, 
*  BUT GO AHEAD AND CLEAR SSGA WORDS. USER SHOULD RUN GASP AND RELEASE
*  THE SPOOL FILE.
* 
NTFND JSB PRINT     PRINT 
      DEF SPWRN      WARNING. 
      DEC 15
      JMP CLFIL     GO CLEAR FILE NAME. 
SPWRN ASC 15,SPOOL NOT SET BY THIS SESSION
* 
* 
CLCLS LDA #CL3K     IF LOGGING IS NOT 
      AND BIT13      TO AN I/O CLASS, 
      SZA,RSS 
      JMP CLOLD,I       RETURN. 
* 
      LDA #CL3K     SET NO-WAIT 
      IOR BIT15      BIT IN CLASS #.
      STA CLASN 
* 
DEFLU CCA 
      STA TEMP      SET RELEASE RETRY SWITCH TO -1. 
CLRTN JSB EXEC      RELEASE CLASS NUMBER. 
      DEF *+5 
      DEF SD21      SPECIFY CLASS GET - NO ABORT. 
      DEF CLASN     CLASS/RELEASE/NO WAIT.
      DEF D0
      DEF D0
      RSS           ERROR RETURN. 
      ISZ TEMP      RELEASE PROCESSING COMPLETED? 
      JMP CLOLD,I   YES. RETURN.
      INA,SZA       NO. ARE ALL PENDING REQUESTS CLEARED? 
      JMP DEFLU     NO. CONTINUE TO CLEAR REQUESTS. 
* 
      LDA CLASN     GET THE CLASS NUMBER AGAIN. 
      XOR BIT13     EXCLUDE THE NO-DEALLOC BIT (13).
      STA CLASN 
      JMP CLRTN     RETURN FOR FINAL DEALLOCATION.
      SKP 
** CONSTANTS ** 
      SPC 1 
D0    DEC 0 
D1    DEC 1 
D2    DEC 2 
D3    DEC 3 
D4    DEC 4 
D13   DEC 13
D63   DEC 63
SD1   DEF 1,I 
SD2   DEF 2,I 
SD21  DEF 21,I
SD23  DEF 23,I
N80   DEC -80 
B377  OCT 377 
HB377 BYT 377,0 
B600  OCT 600 
BIT13 OCT 20000 
BIT14 OCT 40000 
BIT15 OCT 100000
LENBT OCT 17777 
NOT15 OCT 77777 
      SPC 2 
HEAD1 ASC 14,DS/1000-3000 LOGGING STATUS
LUINF ASC 16, LOG LU
LGINF ASC 18, LOGGING 
CHNG? BYT 15,12     <CR>,<LF> 
      ASC  5,CHANGES? _*
NEWLU ASC  6,NEW LOG LU:_*
NEWFI ASC  7,NEW LOG FILE:_*
NEWTY ASC  9,NEW LOGGING TYPE:_*
ENMSG ASC  5,END LOG3K
HEADR ASC  4, HEADER
APNDG ASC  5, APPENDAGE 
WRDDT ASC  8,     WORDS DATA
*  KEEP &DVR AND DRIVR TOGETHER!
&DVR  ASC  2, AND 
DRIVR ASC  4, DRIVER
NOTHG ASC  4, NOTHING 
PFILE ASC  3,(FILE
NONE  ASC  3,<NONE> 
DOWN  ASC  2,DOWN 
PARN  ASC  1,)
"LU"  ASC  1,LU 
"FI"  ASC  1,FI 
"TY"  ASC  1,TY 
"/E"  ASC  1,/E 
"EX"  ASC  1,EX 
"EN"  ASC  1,EN 
"NO"  ASC  1,NO 
"??"  ASC  1,?? 
"HE"  ASC  1,HE 
"AP"  ASC  1,AP 
"DA"  ASC  1,DA 
"DR"  ASC  1,DR 
"UP"  ASC  1,UP 
"SMP" ASC  3,SMP
".LU" ASC  2, LU
CLASS ASC  3, CLASS 
BLNKS EQU WRDDT 
      SPC 1 
@LUIN DEF LUINF 
@LGIN DEF LGINF+4 
@HEDR DEF HEADR 
@APND DEF APNDG 
@WRDT DEF WRDDT 
@&DVR DEF &DVR
@DRVR DEF DRIVR 
@NOTH DEF NOTHG 
      SPC 1 
CONSL NOP 
ADDR  NOP 
CLASN NOP 
TEMP  NOP 
TESTL NOP 
MPNTR NOP 
ASCII BSS 3 
      SPC 1 
      BSS 0         SIZE OF LOG3K.
      SPC 1 
      END LOG3K 
                                                                                                                          