ASMB,L,R,C
      HED <CNSLM> 3000 $STDLIST MONITOR * (C) HEWLETT-PACKARD CO. 1979
      NAM CNSLM,19,30 91741-16006 REV 1913 781114 
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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 
      EXT EXEC,XLUEX,#QXCL,#RSAX,D65GT,$OPSY
      SPC 3 
***************************  CNSLM  ******************************
*                                                                *
*     SOURCE: 91741-18006                                        *
*                                                                *
*     BINARY: 91741-16006                                        *
*                                                                *
*     PROGRAMMR: JIM HARTSELL                                    *
*                                                                *
*     DATE: FEBRUARY 10, 1976                                    *
*                                                                *
*----------------------------------------------------------------*
*                                                                *
*         MODIFIED BY DMT BEGINNING NOVEMBER 3, 1978             *
*                                                                *
******************************************************************
      SPC 3 
*     CNSLM IS THE DS/1000 MONITOR WHICH RECEIVES "UNEXPECTED"
*     $STDLIST REQUESTS INITIATED BY AN HP 3000. THESE ARE USUALLY
*     "TELL" MESSAGES OR THE LOGOFF FROM A "KILLED" SESSION.
      SPC 2 
A     EQU 0 
B     EQU 1 
      SUP 
      SKP 
CNSLM LDA $OPSY     CHECK FOR OPERATING 
      RAR            SYSTEM TYPE. 
      SLA,RSS 
      JMP LDABI 
      XLA B,I       DMS LOAD. 
      RSS 
LDABI LDA B,I       NON-DMS LOAD. 
      STA CLSN      SAVE CLASS NUMBER.
* 
GET   JSB D65GT     DO A CLASS GET AND WAIT FOR REQUEST 
      DEF *+6 
      DEF CLSN      CLASS # 
      DEF RQBUF     REQUEST BUFFER
      DEF D80       MAX LENGTH = 80 WORDS.
      DEF TEMP      DUMMY BUFFER. 
      DEF D0
      JMP GET       ERROR RETURN. 
* 
      LDA RQBUF     GET LENGTH/CLASS WORD.
      AND B77       ISOLATE CLASS.
      CPA D5        IS IT 5?
      RSS 
      JMP GET        NO. IGNORE.
* 
      LDA RQBUF+2   GET STREAM TYPE WORD. 
      AND B77       ISOLATE STREAM TYPE.
      CPA B20 
      RSS           STREAM 20 IS $STDLIST.
      JMP REJCT     REJECT ALL OTHERS.
* 
      LDA RQBUF+4 
      AND B377
      STA TONUM     STORE "TO" NUMBER (LU # OR 0) 
* 
      LDA RQBUF+7   GET BYTE LENGTH.
      ADA MD4       OMIT CONTROL WORDS FROM COUNT.
      CMA,INA       NEGATE MESSAGE BYTE LENGTH. 
      STA BUFL      SAVE NEGATIVE LENGTH. 
* 
      LDA TONUM     IF DIRECTED TO USER,
      SZA 
      JSB OTPUT      DISPLAY ON THAT LOG LU.
      CLA,INA       IF USER CONSOLE 
      CPA TONUM      IS NOT 1,
      RSS             DISPLAY ON
      JSB OTPUT        SYSTEM CONSOLE.
* 
* BUILD A REPLY FOR THE $STDLIST REQUEST. 
* 
      LDA RQBUF     STORE COUNT WORD. 
      AND B377
      IOR LB9 
      STA RQBUF 
      LDA RQBUF+2   SET REPLY BIT.
      IOR BIT15 
      STA RQBUF+2 
      LDA D2
      STA RQBUF+7 
      LDA CCE       STORE STATUS WORD.
      STA RQBUF+8 
* 
*  SEND THE REPLY OR  REJECT
* 
SEND  LDA RQBUF+4   REVERSE PROCESS NUMBERS.
      ALF,ALF 
      STA RQBUF+4 
      AND B377      IF NO REPLY TO BE SENT, 
      SZA,RSS 
      JMP CNSL1      GO RELEASE SLAVE TCB.
* 
      LDA RQBUF+7   GET BYTE COUNTER. 
      INA 
      CLE,ERA 
      ADA D8
      STA RQLEN     LENGTH OF REPLY.
* 
      LDA #QXCL     IS 3000 LINK DOWN?
      SSA 
      JMP CNSL1     YES. IGNORE REPLY.
* 
      JSB EXEC      WRITE REPLY TO QUEX.
      DEF *+8 
      DEF CLS20 
      DEF D0
      DEF RQBUF 
      DEF RQLEN 
      DEF RQLEN 
      DEF D0
      DEF #QXCL 
      NOP           IGNORE ERROR RETURN.
* 
CNSL1 JSB #RSAX     DELETE SLAVE TCB. 
      DEF *+4 
      DEF D7         CODE FOR "CLEAR".
      DEF RQBUF+5    LOCAL SEQUENCE #.
      DEF D2         CNSLM STREAM TYPE. 
* 
      JMP GET       GO WAIT FOR ANOTHER REQUEST.
      SKP 
* SUBROUTINE TO PERFORM $STDLIST ON LU IN A-REGISTER
* 
OTPUT NOP           ENTRY POINT 
      STA LU        STORE LU NUMBER 
* 
      JSB XLUEX     DISPLAY MESSAGE 
      DEF *+5 
      DEF SD2 
      DEF LU
      DEF RQBUF+10
      DEF BUFL
      NOP           IGNORE ERRORS 
* 
      LDA RQBUF+8   IF DOUBLE 
      CPA B60        SPACE WAS
      RSS             SPECIFIED,
      JMP OTPUT,I 
* 
      JSB XLUEX     PRINT A 
      DEF *+5        BLANK
      DEF SD2         LINE. 
      DEF LU
      DEF BLANK 
      DEF D1
      NOP 
      JMP OTPUT,I   RETURN. 
* 
B60   OCT 60
BLANK ASC 1,
* 
*  DO NOT CHANGE THE ORDER OF THE FOLLOWING TWO STATEMENTS. 
LU    BSS 1         LU NUMBER 
      OCT 200       CONTROL BIT TO PRINT COL 1
      SPC 5 
* 
* SEND "REJECT" REPLY FOR ILLEGAL REQUESTS. 
* 
REJCT LDA RQBUF     TOTAL 
      AND B377       LENGTH 
      IOR LB8         IS 8. 
      STA RQBUF 
      LDA RQBUF+2   SET REJECT BIT. 
      IOR BIT14 
      STA RQBUF+2 
      CLA           DATA LENGTH = 0.
      STA RQBUF+7 
      JMP SEND      SEND REJECT TO QUEX.
      SPC 5 
* 
* CONSTANTS AND WORKING STORAGE.
* 
D0    OCT 0 
D1    DEC 1 
D2    DEC 2 
D5    DEC 5 
D7    DEC 7 
D8    DEC 8 
D80   DEC 80
B20   OCT 20
B77   OCT 77
B377  OCT 377 
CLS20 DEF 20,I
MD4   DEC -4
SD2   DEF 2,I 
LB8   BYT 10,0      DECIMAL 8, LEFT BYTE. 
LB9   BYT 11,0      DECIMAL 9, LEFT BYTE. 
BIT14 OCT 40000     REJECT BIT
BIT15 OCT 100000    REPLY BIT 
CLSN  NOP 
RQLEN NOP 
TEMP  NOP 
CCE   OCT 1000
BUFL  NOP 
TONUM NOP 
RQBUF BSS 80
* 
      BSS 0         SIZE OF CNSLM 
* 
      END CNSLM 
                                                                                                                                                                                                    