ASMB,R,L,C,Q
*     NAME:   DTACH 
*     SOURCE: 92067-18307 
*     RELOC:  PART OF 92067-16268 
*     PGMR:   G.L.M.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
* 
      NAM DTACH,6 92067-1X307 REV.2013 800129 
* 
      ENT DTACH 
      EXT $LIBR,$LIBX 
      SPC 2 
*     PURPOSE: TO REMOVE A PROGRAM FROM SESSION.
* 
*        NOTE: IF THE CALLING PROGRAM IS NOT A SESSION PROGRAM, 
*              THIS ROUTINE DOES NOTHING MORE THAN RETURN.
*     CALLINNG SEQUENCE:
* 
*              CALL DTACH   \ REMOVES PROG FROM SESSION BY CHANGING 
*                             SESSION WORD TO CONTAIN -TERMINAL LU
*                             OF IT'S SESSION.
* 
*        OR 
* 
*              CALL DTACH(IDUMMY)  \ REMOVES PROG FROM SESSION BY 
*                            CHANGING SESSION WORD TO CONTAIN -1 (MAKES 
*                            IT APPEAR TO HAVE BEEN RUN FROM THE SYS
*                            CONSOLE).
* 
*              IN EITHER CASE, THE OWNER FLAG IS CHANGED TO INDICATE
*              THAT THE SYSTEM OWNS THIS ID.
* 
* 
* 
      SPC 2 
DTACH NOP 
      JSB $LIBR 
      NOP 
* 
      LDA XEQT      DEFINE ADDR OF SESSION WORD 
      ADA D32 
      STA TMP1
      XLB A,I       FETCH CONTENTS OF SESSION WORD
* 
      LDA DTACH,I   CHECK FOR SIMPLE DTACH OR RESET TO LU 1 
      ISZ DTACH     BUMP RETURN ADDR FOR TEST 
      CPA DTACH     IF NO PARMS PASSED
      JMP TRMLU     GO FETCH TERMINAL LU
* 
      STA DTACH     SAVE RETURN ADDR
      SSB           IF MTM
      JMP OUT 
      SZB,RSS       OR NON SESSION
      JMP OUT        DON'T CHANGE ANYTHING
* 
      CCA           SET (A) TO INDICATE LU 1
      JMP SYSCN 
* 
TRMLU SSB            IF MTM,  CONTINUE
      JMP OUT 
      SZB,RSS 
      JMP OUT 
*     JSB MMAP      MAP IN POSSIBLE TABLE PTN 
NXT   INB           POINT AT LU SWITCH
      XLA B,I 
      AND B377      ISOLATE SESSION INFO
      SZA           IF NOT LU 1 DEFINITION
      JMP NXT       GO GET THE NEXT ONE 
* 
      XLA B,I       FETCH THE SWITCH AGAIN
      ALF,ALF       GET SYSTEM LU TO LOW BYTE 
      CMA 
SYSCN XSA TMP1,I    SET NEW SESSION WORD
OUT   LDB TMP1      FETCH ID 33 ADDR
      ADB N1        BACK UP TO OWNER FLAG 
      XLA B,I       AND FETCH IT
      AND NOTID 
      XSA B,I       RESTORE IT WITH OWNER ID =0 
      JSB $LIBX 
      DEF DTACH 
* 
* 
B377  OCT 377 
NOTID OCT 177400
TMP1  NOP 
D32   DEC 32
N1    OCT -1
XEQT  EQU 1717B 
A     EQU 0 
B     EQU 1 
      END 
                                                                                                                                                                  