ASMB,R,Q,C,Z
      IFZ 
      HED #DISM 91750-1X203 REV.2013 * (C) HEWLETT-PACKARD CO. 1980 
      NAM #DISM,7 91750-1X203 REV.2013 800702 RTE-IVB W/S.M.
      XIF 
      IFN 
      HED #DISM 91750-1X204 REV.2013 * (C) HEWLETT-PACKARD CO. 1980 
      NAM #DISM,7 91750-1X204 REV.2013 800702 ALL, W/O S.M. 
      XIF 
* 
* "Z" OPTION FOR SESSION MONITOR NODE, "N" OPTION FOR NON-SESSION NODE. 
      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 1 
      ENT #DISM 
      EXT EXEC,#PRNT,#INBF,REIO,$DSCS,#POOL 
      EXT #DFUN,#PASS,$OPSY,$LIBR,$LIBX,.DRCT 
      IFZ 
      EXT .UACT,.MVW,XLUEX,CNUMD,#READ,#PRNL,#EXFR,#CLSB
      EXT #RSM.,#RSM,#MSKD,#ABRT,LUSES,#BREJ,#NODE,#MHCT
      EXT PGMAD,SESSN,ISMVE,DTACH,ATACH,$SMII 
      XIF 
* 
* NAME:   #DISM 
* SOURCE: 91750-18203 
* RELOC:  PART OF 91750-12014 ("Z"), -12015 ("N") 
* PGMR:   JIM HARTSELL
* 
* SUBROUTINES TO PERFORM OPTIONAL REMOTE SESSION INITIALIZATION FOR 
* THE DS/1000 DINIT PROGRAM.      CALLING SEQUENCES:
* 
*  FOR SHUTDOWN, LOG OFF ALL REMOTELY OWNED SESSIONS: 
* 
*        CCA
*        JSB #DISM
* 
*  FIND AMOUNT OF SAM REQUIRED FOR REMOTE SESSION:
* 
*        CLA
*        JSB #DISM
*        <RETURN>     (A) = # SAM WORDS NEEDED. 
* 
*  BUILD SESSION ID POOL, GET DEFAULT ACCOUNT NAME & NON-SESSION PASSWORD:
* 
*        CLA,INA
*        JSB #DISM
* 
*  PERFORM ABORT FUNCTIONS FOR REMOTE SESSION:
* 
*        LDA B2 
*        JSB #DISM
      SKP 
* GLBLK-START 
* 
******************************************************************
*                                                                *
*     G L O B A L   B L O C K               REV 2013 791213      *
*                                                                *
*     GLOBAL OFFSETS INTO DS/1000 MESSAGE BUFFERS, USED BY:      *
*                                                                *
*         REMAT, RFMST, DEXEC, DMESS, FLOAD, POPEN, #MAST        *
*         GET,   #SLAV, RQCNV, RPCNV, GRPM,  DINIT, PTOPM        *
*         EXECM, EXECW, OPERM, RFAM1, RFAM2, DLIST, DLIS3        *
*         DSTIO, LUMAP, #CMGT, INCNV, OTCNV, RMTIO               *
*         RSM,   DLGON, #DISM, #DSSM, #MSSM, #SCSM, #UPSM        *
******************************************************************
* 
***!!!!! THE ORDER OF THE FIRST 8 WORDS (#STR THRU #LVL) IS      *
***!!!!!     FIXED BY THE REQUIREMENT THAT THE STREAM, ADDRESSES *
***!!!!!     ERROR CODES & LEVEL # ALWAYS BE IN THE SAME PLACE,  *
***!!!!!     REGARDLESS OF MESSAGE FORMAT.  THIS ALSO MAKES      *
***!!!!!     STORE-AND-FORWARD CODE MUCH SIMPLER.                *
#STR  EQU 0         STREAM WORD.
#SEQ  EQU #STR+1    SEQUENCE NUMBER.
#SRC  EQU #SEQ+1    SOURCE NODE #.
#DST  EQU #SRC+1    DEST. NODE #. 
#EC1  EQU #DST+1    REPLY ECOD1.
#EC2  EQU #EC1+1    REPLY ECOD2.
#ENO  EQU #EC2+1    NUMBER OF NODE REPORTING ERROR. 
#ECQ  EQU #ENO+1    ERROR CODE QUALIFIER (BITS 4 TO 7)
#LVL  EQU #ECQ      MESSAGE FORMAT LEVEL (BITS 0 TO 3)
* 
#MAS  EQU #LVL+1    MA "SEND" SEQ. #
#MAR  EQU #MAS+1    MA "RECV" SEQ. #
#MAC  EQU #MAR+1    MA "CANCEL" FLAGS 
#HCT  EQU #MAC+1    HOP COUNT 
#SID  EQU #HCT+1    SESSION ID WORD 
* 
#EHD  EQU #SID      LAST ITEM OF HEADER 
#MHD  EQU #EHD+1    MINIMUM HEADER SIZE 
#REQ  EQU #MHD      START OF REQUEST SPECIFIC AREA
#REP  EQU #MHD      START OF REPLY SPECIFIC AREA
* 
#MXR  EQU #MHD+24   <<< MAXIMUM DS REQ/REPLY BUFFER SIZE >>>
#LSZ  EQU 2         <<< SIZE OF LOCAL APPENDAGE AREA >>>
* 
******************************************************************
* 
* GLBLK-END 
      SKP 
* OPBLK-START 
* 
******************************************************************
*                                                                *
*      O P R E Q   B L O C K               REV 2013 791119       *
*                                                                *
*      OFFSETS INTO DS/1000 OPREQ MESSAGE BUFFERS, USED BY:      *
*                                                                *
*                   DMESS, OPERM, RQCNV, RPCNV                   *
*                   RSM,   DLGON, #MSSM, #UPSM                   *
******************************************************************
* 
* OFFSETS INTO OPREQ REQUEST AND REPLY BUFFERS. 
* 
#CML  EQU #REQ      COMMAND LENGTH. 
#CMS  EQU #CML+1    COMMAND STRING. 
#LGC  EQU #CMS+1    LOGON REQUEST CODE
#LNL  EQU #LGC+1    LENGTH OF USER NAME 
#LUN  EQU #LNL+1    LOGON USER NAME 
* 
#RLN  EQU #REP      REPLY LENGTH. 
#MSG  EQU #RLN+1    REPLY MESSAGE.
* 
* MAXIMUM SIZE OF OPREQ REQUEST/REPLY BUFFER. 
* 
#OLW  EQU #CMS+23     M A X I M U M   S I Z E   ! ! ! 
* 
* OPBLK-END 
      SKP 
      SUP 
PRINT EQU #PRNT 
INBUF EQU #INBF 
      IFZ 
READ  EQU #READ 
PRNTL EQU #PRNL 
ERXFR EQU #EXFR 
CLSUB EQU #CLSB 
MSKED EQU #MSKD 
ABORT EQU #ABRT 
      XIF 
A     EQU 0 
B     EQU 1 
* 
* INITIALIZE. 
* 
#DISM NOP           ENTRY.
      STA FCODE     SAVE FUNCTION CODE. 
* 
      JSB .DRCT     RESOLVE INDIRECT EXTERNAL REFS. 
      DEF INBUF 
      STA DINBF 
      JSB .DRCT 
      DEF #DFUN 
      STA DFUN
      JSB .DRCT 
      DEF #PASS 
      STA PASS
* 
* CHECK #DISM FUNCTION REQUESTED. 
* 
      LDA FCODE 
      IFZ 
      CPA N1
      JMP SHUTD 
      XIF 
      SZA,RSS 
      JMP AMNT
      CPA B1
      JMP FILL
      CPA B2
      JMP KILL
      CLA 
      JMP #DISM,I 
      SKP 
      IFZ 
* 
* LOG OFF ALL SESSIONS CREATED FROM REMOTE NODES.  USE THE SPECIAL
* NO-REPLY LOG-OFF REQUEST (SIMILAR ROUTINE IN #MSSM & #UPSM, BUT 
* #DISM'S VERSION IS BUILT FROM #POOL ENTRY INFO).  RSM IS HIGHER 
* PRIORITY THAN DINIT, THUS SESSIONS WILL GET RELEASED BEFORE DINIT 
* ABORTS RSM.  THERE IS NO NEED TO CLEAR #POOL ENTRIES SINCE DINIT
* WILL BE RELEASING THE S.A.M. AREA.
* 
SHUTD LDA #RSM      IS RSM STILL AROUND?
      SZA,RSS 
      JMP #DISM,I   NO. DON'T EVEN BOTHER.
* 
      LDB #POOL     GET ADDRESS OF SID POOL.
      SZB,RSS       DO WE HAVE ONE? 
      JMP #DISM,I   NO. DON'T BOTHER. 
      JSB LODWD     GET # POOL ENTRIES (NEGATIVE).
      STA CNTR
      INB           POINT TO FIRST #POOL ENTRY. 
LOOP1 JSB LODWD     (CROSS) LOAD WORD 1 OF POOL ENTRY.
      SSA,RSS       IS ENTRY ACTIVE (CHECK BIT 15)? 
      JMP NEXT1     NO.  GO TO NEXT ENTRY.
* 
      STB POOLA     YES. SAVE ADDRESS OF POOL ENTRY.
      AND B377      ISOLATE "IN-USE" SESSION ID.
      STA TEMP
* 
      JSB LUSES     IS THE SESSION FOR THIS 
      DEF *+2         #POOL ENTRY STILL AROUND? 
      DEF TEMP
* 
      SZA,RSS 
      JMP RSTOR     NO. GO TO NEXT ENTRY. 
* 
      LDB POOLA 
      CLA           RESET CERTAIN SLOTS.
      STA LGF+#SEQ
      STA LGF+#MAR
      STA LGF+#MAC
      LDA B7        BUILD STREAM WORD.
      IOR #BREJ 
      IOR BIT12     SET "LEVEL 1 & ABOVE" BIT.
      STA LGF+#STR
      INB           POINT TO 2ND WORD OF #POOL ENTRY. 
      JSB LODWD     (CROSS) LOAD SOURCE NODE NUMBER.
      SZA,RSS 
      JMP RSTOR     IF NONE, SKIP IT. 
      STA LGF+#SRC  STORE IN LOG-OFF REQUEST. 
      LDA #NODE 
      STA LGF+#DST  STORE DEST NODE # IN REQUEST. 
      CLA,INA 
      STA LGF+#LVL  STORE UPGRADE LEVEL # IN REQUEST. 
      LDA N2
      STA LGF+#MAS  SET TO BYPASS MESSAGE ACCOUNTING. 
      LDA #MHCT 
      STA LGF+#HCT  SET HOP COUNT.
      INB           POINT TO 3RD WORD OF #POOL ENTRY. 
      JSB LODWD     (CROSS) LOAD SOURCE SESSION ID. 
      AND B377
      ALF,ALF 
      STA LGF+#SID  (DEST SID ZERO.)
      LDA TEMP
      STA LGF+#LNL  STORE SESSION ID TO BE LOGGED OFF.
* 
      LDA B2        STORE COMMAND LENGTH. 
      STA LGF+#CML
      LDA "XX"      STORE "XX" COMMAND. 
      STA LGF+#CMS
      CCA           STORE "NO-REPLY" REQ CODE.
      STA LGF+#LGC
* 
      JSB EXEC      DO CLASS WRITE/READ TO RSM. 
      DEF *+8 
      DEF CLS20     NO ABORT. 
      DEF CONWX 
      DEF TEMP      NO DATA.
      DEF B0
      DEF LGF       REQUEST BUFFER. 
      DEF L#LNL     REQUEST LENGTH. 
      DEF #RSM      I/O CLASS.
      NOP           IGNORE ERROR. 
* 
RSTOR LDB POOLA     RESTORE B-REGISTER. 
NEXT1 ADB POOSZ     ADVANCE TO NEXT #POOL ENTRY.
      ISZ CNTR      LOOP TILL DONE. 
      JMP LOOP1 
* 
      JMP #DISM,I   RETURN TO CALLER (DSMOD). 
      SPC 5 
* 
* SUBROUTINE TO LOAD A WORD FROM S.A.M., CROSS LOAD IF DMS SYSTEM.
* 
LODWD NOP 
      LDA $OPSY     OP SYSTEM TYPE. 
      RAR,SLA 
      JMP *+3 
      LDA B,I       NON-DMS.
      JMP LODWD,I 
      XLA B,I       DMS.
      JMP LODWD,I 
      XIF 
      SKP 
* 
* FIND AMOUNT OF S.A.M. NEEDED FOR REMOTE SESSION.
* 
AMNT  LDA B7        INITIALIZE DEFAULT NUMBER OF
      STA NPOOL       CONCURRENT SESSIONS = 7.
* 
      LDA $DSCS     IF NO SESSION MONITOR, OR S.M. NOT
      SSA             INITIALIZED AT THIS NODE, 
      JMP DSMD1       USE DEFAULT.
      IFN 
      JSB PRNTW       ISSUE WARNING IF NON-SESSION
      DEF WARN1         MODULE WAS LOADED IN
      JSB PRNTW           A SESSION MONITOR NODE! 
      DEF WARN2 
      JMP DSMD1       CONTINUE AS IF NON-SESSION NODE.
      XIF 
* 
      IFZ 
      JSB PRINT     ASK USER TO SPECIFY 
      DEF SMSG1       "MAX # LOCAL SESSIONS FOR REMOTE..."
DSMR1 LDA B7        SET DEFAULT VALUE.
      STA NPOOL 
      JSB READ      READ RESPONSE.
      CPA B1        RESULT NUMERIC? 
      JMP DSMV1       YES--PROCESS IT.
      CPB /D        DEFAULT WANTED? 
      JMP DSMD1       YES--USE DEFAULT. 
DSME1 JSB ERXFR     IMPROPER REPLY: 
      DEF IVRES       INFORM USER OF ERROR
      JMP DSMR1         AND TRY AGAIN.
DSMV1 STB NPOOL     SAVE # POOL ENTRIES.
      SSB,RSS       IF NEGATIVE - ERROR.
      CMB,INB,SZB,RSS  NEGATE NUMBER & CHECK FOR ZERO.
      JMP DSME1     REPORT ERROR. 
      ADB D253      ADD MAXIMUM NUMBER ALLOWED (253). 
      SSB           BEYOND RANGE? 
      JMP DSME1       YES--REPORT ERROR.
      XIF 
DSMD1 LDA NPOOL     GET # POOL ENTRIES. 
      MPY POOSZ     MULTIPLY BY SIZE OF POOL ENTRY. 
      INA           ADD COUNT WORD. 
      STA BLKSZ     SAVE SAM SIZE NEEDED. 
      JMP #DISM,I   RETURN AMOUNT OF SAM REQUIRED.
      SKP 
* 
* BUILD SESSION ID POOL:  FIND AS MANY UNDEFINED LOGICAL UNIT NUMBERS 
* AS "MAX # CONCURRENT SESSIONS" ENTERED PREVIOUSLY.
* 
FILL  LDB $OPSY 
      RBR,SLB       SKIP IF NON-DMS.
      CLA,RSS 
      JMP FILL1 
      STA MOD1      MODIFY FOR DMS. 
      STA CLR1
* 
FILL1 LDA #POOL     CLEAR POOL AREA IN S.A.M. 
      INA 
      STA ADDR      START OF POOL AREA PAST COUNT WORD. 
      LDB BLKSZ 
      ADB N1
      CMB,INB       NEG. # WORDS (LESS COUNT WORD). 
      JSB $LIBR     GO PRIVILEGED.
      NOP 
      CLA 
CLR1  JMP CLR2      NOP IF DMS. 
      XSA ADDR,I    STORE IN ALTERNATE MAP. 
      RSS 
CLR2  STA ADDR,I
      ISZ ADDR
      INB,SZB 
      JMP CLR1
      JSB $LIBX     GO UN-PRIVILEGED. 
      DEF *+1 
      DEF *+1 
* 
      LDA $DSCS     IF NO SESSION MONITOR, OR NOT 
      SSA,RSS         INITIALIZED AT THIS NODE, 
      JMP SETAD 
XLIBX LDA NPOOL       JUST SET
      CMA,INA         COUNT WORD
      LDB #POOL       FOR S.I.D.
      JSB STUFF       POOL
      JMP #DISM,I     AND RETURN. 
* 
SETAD EQU * 
      IFN 
      JMP XLIBX     NON-SM LIBR IN SESSION NODE!
      XIF 
* 
      IFZ 
      CLA 
      STA SID 
      STA BUFR
* 
      JSB PGMAD     GET DINIT'S ID SEGMENT ADDRESS. 
      DEF *+3 
      DEF BUFR
      DEF TEMP
* 
      JSB SESSN     IS DINIT RUNNING UNDER A SESSION? 
      DEF *+2 
      DEF TEMP      (ID SEG ADDR) 
* 
      SEZ 
      JMP POOL1     NO. 
* 
      STB TEMP      YES. SAVE POINTER TO SCB. 
* 
      JSB ISMVE     GET LOCAL SESSION ID FROM SCB.
      DEF *+5 
      DEF TEMP        SESSION WORD FROM ID SEG. 
      DEF $SMII       POINT TO SESSION IDENTIFIER.
      DEF SID         (RETURNED) SESSION ID.
      DEF B1          GET 1 WORD. 
* 
      JSB DTACH     DETACH TEMPORARILY FROM THE SESSION 
      DEF *+1         SO THAT WE CAN LOOK AT ALL LUS. 
* 
POOL1 LDA #POOL     SET ADDR OF 1ST POOL ENTRY. 
      INA 
      STA ADDR
      LDA NPOOL     SET COUNTER FOR MAX # 
      CMA,INA         SESSION ID POOL ENTRIES.
      STA CNTR
      CLA           INITIALIZE ACTUAL COUNT 
      STA POOL#       OF # POOL ENTRIES.
      LDA D253      SET 1ST SESSION ID CANDIDATE
      STA SLU         AT HIGH END OF LOGICAL UNITS. 
* 
LOOP  JSB XLUEX     GET STATUS OF NEXT LU.
      DEF *+4 
      DEF ICD13 
      DEF SLU 
      DEF TEMP
      JMP AVAIL     ERR RTN: UNDEFINED LU NUMBER? 
* 
NEXT  LDA SLU       IN USE: DECR TO NEXT LOWER LU.
      ADA N1
      STA SLU 
      ISZ CNTR      BUMP LOOP COUNTER,
      JMP LOOP        AND LOOP TILL DONE. 
      JMP CHECK     DONE: GO SEE IF WE GOT ENOUGH.
* 
AVAIL CPA "IO"      MAKE SURE IT IS AN UNDEFINED LU.
      RSS 
      JMP NEXT      NO. GO TRY NEXT LU. 
      CPB "02"
      RSS 
      CPB "26"
      RSS 
      JMP NEXT      NO. GO TRY NEXT LU. 
* 
      LDA SLU       HAVE UNDEFINED LU NUMBER: 
      LDB ADDR        STORE IN 1ST WORD 
      JSB STUFF         OF POOL ENTRY.
      ADB POOSZ 
      STB ADDR      ADDR OF NEXT POOL ENTRY.
      ISZ POOL#     INCREMENT # POOL ENTRIES. 
      JMP NEXT      GO LOOK FOR ANOTHER LU. 
* 
CHECK LDA POOL#     GET # POOL ENTRIES ACQUIRED.
      CPA NPOOL     YES. SAME AS # REQUESTED? 
      JMP SPCNT     YES.
* 
      JSB CNUMD     NO. ISSUE WARNING MESSAGE.
      DEF *+3 
      DEF POOL# 
      DEF SWARN+19
* 
      JSB PRNTW 
      DEF SWARN 
* 
      LDA POOL# 
      SZA,RSS       GET ANY AT ALL? 
      JMP ABORT     NO.  ** ABORT DINIT **
* 
SPCNT CMA,INA       NEGATE # POOL ENTRIES AND 
      LDB #POOL       STORE IN POOL COUNT WORD. 
      JSB STUFF 
* 
      LDA SID       WAS DINIT UNDER A SESSION?
      SZA,RSS 
      JMP ASIGN     NO. 
* 
      JSB ATACH     YES. RE-ATTACH TO THE SESSION.
      DEF *+2         (WE MIGHT BE A CLONE) 
      DEF SID 
* 
* ALLOCATE CLASS NUMBER AND SCHEDULE RSM. 
* 
ASIGN CCA           ASSIGN A
      JSB CLSUB       CLASS NUMBER FOR
      DEF #RSM.         "RSM".
* 
      JSB MSKED     SCHEDULE RSM. 
      DEF #RSM. 
      SZA           CATASTROPHIC ERROR? 
      JMP ABORT     YES.  ** ABORT DINIT ** 
      SKP 
* 
* GET DEFAULT ACCOUNT NAME. 
* 
      LDB BLANK     BLANK OUT #DFUN IN RES. 
      LDA DFUN
      STB A,I 
      LDB A 
      INB 
      JSB .MVW
      DEF D10 
      NOP 
* 
      LDA B6        SET "USER.GENERAL" LENGTH.
      STA TEMP
      ALS 
      STA LEN 
* 
      JSB PRINT     ASK THE USER TO 
      DEF SMSG2       "ENTER DEFAULT SESSION USER-NAME:"
DSMR2 JSB READ      GET THE RESPONSE. 
      CPA B2        RESULT ASCII? 
      JMP DSMV2       YES--PROCESS IT.
DSME2 JSB ERXFR     IMPROPER REPLY: 
      DEF IVRES       INFORM USER OF ERROR
      JMP DSMR2         AND TRY AGAIN.
DSMV2 LDA US.GN 
      CPB /D        IF "/D" WAS INPUT,
      JMP DSMD2       USE "USER.GENERAL". 
* 
      LDA PRNTL     COMPUTE # WORDS INPUT.
      STA LEN 
      INA 
      ARS 
      STA TEMP      SAVE FOR MOVE.
      ADA N12       IF GREATER THAN 11, 
      SSA,RSS         INFORM USER OF ERROR
      JMP DSME2         AND TRY AGAIN.
* 
      LDA DINBF     MOVE USER-NAME TO #DFUN (IN RES). 
DSMD2 LDB DFUN
      JSB .MVW
      DEF TEMP
      NOP 
* 
      LDA LEN       VERIFY WHETHER VALID NAME.
      CMA,INA 
      LDB DFUN
* 
      JSB .UACT 
      DEF BUFR
* 
      SSA 
      JMP DSME2     INVALID USER NAME.
      SKP 
* 
* GET PASSWORD FOR NON-SESSION ACCESS.
* 
      LDB BLANK     BLANK OUT #PASS IN RES. 
      LDA PASS
      STB A,I 
      LDB A 
      INB 
      JSB .MVW
      DEF B4
      NOP 
* 
      JSB PRINT     ASK THE USER TO 
      DEF SMSG3       "ENTER PASSWORD FOR NON-SESSION ACCESS:"
DSMR3 JSB READ      GET THE RESPONSE. 
      CPA B2        ASCII?
      JMP DSMV3       YES--PROCESS IT.
DSME3 JSB ERXFR     IMPROPER REPLY: 
      DEF IVRES       INFORM USER OF ERROR
      JMP DSMR3         AND TRY AGAIN.
DSMV3 CPB /D        IF "/D" WAS INPUT,
      JMP #DISM,I     LEAVE PASSWORD = BLANKS.
* 
      LDA PRNTL     GET # WORDS INPUT.
      INA 
      ARS 
      STA TEMP
      ADA N6        IF GREATER THAN 5,
      SSA,RSS         INFORM USER OF ERROR
      JMP DSME3         AND TRY AGAIN.
* 
      LDA DINBF     MOVE PASSWORD TO #PASS (IN RES).
      LDB PASS
      JSB .MVW
      DEF TEMP
      NOP 
* 
      JMP #DISM,I   RETURN TO DINIT.
      XIF 
      SPC 3 
* 
* SUBROUTINE TO STORE A WORD IN S.A.M.
* 
STUFF NOP 
      JSB $LIBR     GO PRIVILEDGED. 
      NOP 
MOD1  JMP STUF2     NOP HERE IF DMS.
      XSA B,I       STORE IN ALTERNATE MAP. 
      RSS 
STUF2 STA B,I 
      JSB $LIBX 
      DEF STUFF 
      SKP 
* 
* PERFORM ABORT FUNCTIONS FOR REMOTE SESSION. 
* 
KILL  CLA           CLEAR POINTER TO S.I.D. POOL. 
      STA #POOL 
* 
      JMP #DISM,I   RETURN TO DINIT.
      SPC 3 
* 
* DISPLAY WARNING MESSAGE ON INTERACTIVE DEVICE AND SYSTEM CONSOLE. 
* 
PRNTW NOP 
      LDA PRNTW,I   GET ADDRESS OF MSG BUFFER.
      STA MSLOC 
* 
      JSB PRINT     DISPLAY ON INTERACTIVE DEVICE.
MSLOC NOP 
* 
      DLD MSLOC,I   DISPLAY ON SYSTEM CONSOLE.
      STA ADDR
      LDB B,I 
      STB CNTR
* 
      JSB REIO
      DEF *+5 
      DEF B2
      DEF B1
      DEF ADDR,I
      DEF CNTR
* 
      ISZ PRNTW 
      JMP PRNTW,I   RETURN. 
      SKP 
* 
* CONSTANTS AND STORAGE.
* 
B1    OCT 1 
B2    OCT 2 
B6    OCT 6 
B7    OCT 7 
D18   DEC 18
D20   DEC 20
N1    DEC -1
POOSZ DEC 7         SIZE OF #POOL ENTRY.
FCODE NOP 
BLKSZ NOP 
NPOOL NOP 
ADDR  NOP 
LEN   NOP 
CNTR  NOP 
DFUN  NOP           RESOLVED "DEF INBUF". 
PASS  NOP           RESOLVED "DEF #PASS". 
DINBF NOP           RESOLVED "DEF INBUF". 
* 
      IFZ 
B0    OCT 0 
B4    OCT 4 
B377  OCT 377 
BIT12 OCT 10000 
CLS20 OCT 100024
CONWX OCT 10100 
D9    DEC 9 
D10   DEC 10
D253  DEC 253 
N2    DEC -2
N6    DEC -6
N12   DEC -12 
ICD13 OCT 100015
"XX"  ASC 1,XX
"IO"  ASC 1,IO
"02"  ASC 1,02
"26"  ASC 1,26
BLANK ASC 1,
/D    ASC 1,/D
TEMP  NOP 
POOL# NOP 
SLU   OCT 0,0 
SID   NOP 
POOLA NOP 
L#LNL ABS #LNL+1
* 
US.GN DEF *+1 
      ASC 6,USER.GENERAL
* 
IVRES DEF *+2 
      DEF D9
      ASC 9, INVALID RESPONSE!
* 
SMSG1 DEF *+2 
      DEF D20 
      ASC 20, MAX # LOCAL SESSIONS FOR REMOTE NODES?_      *
* 
SMSG2 DEF *+2 
      DEF D18 
      ASC 18, ENTER DEFAULT SESSION USER-NAME:  _          *
* 
SMSG3 DEF *+2 
      DEF D20 
      ASC 20, ENTER PASSWORD FOR NON-SESSION ACCESS:_      *
* 
SWARN DEF *+2 
      DEF D20 
      ASC 20, WARNING - # SESSIONS FOR REMOTE = XXXXX 
* 
BUFR  BSS 128 
LGF   EQU BUFR      "NO-REPLY" LOGOFF REQ BUFFER. 
      XIF 
* 
      IFN 
WARN1 DEF *+2 
      DEF D18 
      ASC 18, WARNING - SESSION MONITOR NODE HAS
WARN2 DEF *+2 
      DEF D20 
      ASC 20,           WRONG REMOTE-SESSION LIBRARY! 
      XIF 
* 
      BSS 0         SIZE OF #DISM.
* 
      END 
                                                                                                                                                                                                                                                          