         PAGE
         SYSTEM   UTS
         DEF      PMD:
PMD:     CSECT    0
*
*        TRANSFER VECTOR FOR THE DEBUG ROUTINES
*        CONTAINED IN THE OVERLAY 'DEBUGSEG'
*
*        IN: R0 = INDEX TO THE PROPER ENTRY POINT
*
         DEF      DEBUGTV
         REF      MSNAP,MSNAPC,MIF,MAND,MOR
         REF      MCOUNT,DEBUGX1
*
DEBUGTV  EQU      %
         PUSH     11
         AI,0     TVEC
         B        *0              GO TO THE PROPER ROUTINE
TVEC     EQU      %             REG 0
         B        MSNAP           0
         B        MSNAPC          1
         B        MIF             2
         B        MAND            3
         B        MOR             4
         B        MCOUNT          5
         B        DEBUGX1         6
         B        PMDDP           7
         PAGE
         DEF      PMD
PMD      EQU      %
*                 SYMBOLIC REGISTER DEF'S.
R1       EQU      1
R2       EQU      2
R3       EQU      3
R4       EQU      4
R5       EQU      5
R6       EQU      6
R7       EQU      7
SR1      EQU      8
SR2      EQU      9
SR3      EQU      10
SR4      EQU      11
D1       EQU      12
D2       EQU      13
D3       EQU      14
D4       EQU      15
         PAGE
DCB      CNAME
         PROC
LF       DATA     0
         GEN,8,7,17  0,0,AF(1)
         RES      20
         PEND
DCB1     CNAME
         PROC
LF       DATA     AF(1)
         DATA     AF(2)
         GEN,8,24 AF(3),0
         DO       19
         DATA     0
         FIN
         PEND
         PAGE
 REF TELLUSR
         REF      T:RBUF,GETBUF
         REF      J:ASSIGN
         REF      J:RNST
         REF      J:DCBLINK
         REF      M:XX
         REF      J:JIT
         REF      Y08
         REF      DUMPER
         REF      Y4
         REF      Y8
         REF      Y003E
         REF      JITREE
         REF      Y002
         REF      MSRRDWT,CLSSEG
         REF      MUPO,QUEUE,RSG,SBSECTS
         REF      PUF
         REF      S:CUN
         REF      UH:DL             DO LIST HEAD AND FLAGS
         REF      XFFF
M12      EQU      XFFF
         REF      J:CFLGS
         REF      CLSXX,OPNSEG
         REF      CLOSEXX
         SPACE    3
         SPACE    3
         BOUND    8
DODCB    GEN,8,24 22,3
         GEN,15,3,14  2,1,5         OUT,LIST,DO DEVICE
TXTMDO   TEXTC    'M:DO'
XFF3E    DATA     X'FF3E'
XFFD1    DATA     X'FFD1'
M16      DATA     X'FFFF'
M24      DATA     X'00FFFFFF'
TTESIZE  EQU      11
BAFCN    EQU      7*4
KBUF     EQU      10
         PAGE
*
*        PMDS
         DEF      PMDDP
PMDDP    EQU      %
         PUSH     3,7
         LI,15    -1
         STH,15   J:CFLGS
         LI,15    0
         LW,5     J:JIT
         BLZ      RELGRAN
         MTB,0    J:RNST          RNST ZERO?
         BEZ      %+2             YES, NOTHING TO TELL HIM
         BAL,0    TELLUSR         TELL HIM ABOUT IT
         INT,5    MUPO+J:JIT
         LW,5     5
         BEZ      RELDONE
         LW,7     TSTACK
         LW,7     -2,7              RESTORE R7
         B        RELGRAN
RELDONE  EQU      %
         LW,D4    D4              GOT A SCRATCH BUFFER?
         BNEZ     CUPMD1
         LI,8     CUPMD0
         OR,8     Y4
         B        GETBUF
CUPMD0   EQU      %
         LW,D4    1
         BEZ      MEXIT2A
CUPMD1   EQU      %
         LW,4     J:DCBLINK
CHKPMD2  EQU      %
         AI,4     1
         LB,5     *4
         BEZ      BLDDO             BLD M:DO IN BFR
         LW,13    0,4               GET
         LW,14    1,4                   NAME
         AI,5     4
         SLS,5    -2
         AW,4     5
         LW,6     0,4               DCB ADR
         CW,13    TXTMDO
         BNE      CHKPMD2
         LB,14    14
         CI,14    'O'
         BNE      CHKPMD2
*  6 = M:DO ADR
CHKPMD3  RES      0
         LI,5     J:JIT
         LW,R7    TSTACK
         AI,R7    -17-4
         LD,SR1   *R7               (SR1) = EXIT ADR
         LW,R7    J:RNST
         SLS,R7   -16
         AND,R7   XFF3E             (R6) = RUN STATUS AND  RUN FLAG
         CI,R6    0                 CHECK IF DO DCB FOUND
         BE       MEXIT2A           NO, BYPASS ABORT MESSAGE AND DUMPS
         LI,4     0
         LW,5     Y003E
         STS,4    J:JIT+PUF         CLEAR USE FLGS TO SHOW MON RUNNING
         LI,5     J:JIT
         LI,SR3   TSTACK+20
         BAL,SR4  PMDDMP
MEXIT2A  EQU      %
         LI,5     J:JIT
         LW,14    15
         BEZ      %+3
         LI,5     0
         BAL,2    T:RBUF
         PULL     3,7
         PLW,11   TSTACK
         MTH,1    J:CFLGS
         B        T:SELFDESTRUCT
BLDDO    LW,6     15                SCRATCH BFR
         AI,6     X'1B0'            MIDDLE
         LD,SR1   DODCB             SET IT UP
         STW,8    -24,6
         STW,9    -23,6
         LI,5     -22
         LI,SR1   0
         STW,SR1  *6,5
         BIR,5    %-1
         AI,6     -22
         B        CHKPMD3
         PAGE
*
*
*        PMDDMP  -  HONOR  PMD'S
*
*        ENTER WITH
*                 (SR3) = ADR OF    D4   IN  TEMP STACK
*                 (D4)  = ADR OF SCRATCH PAD BLOCKING BUFFER
*
PMDDMP   EQU      %
         LW,2     S:CUN
         DISABLE
         LH,12    UH:DL,2           GET DO LIST HEAD
         AND,12   M12               SCRUB TO RESET FLAGS
         STH,12   UH:DL,2           STORE
         ENABLE
         LD,12    STKPD
         LW,12    D4                BUFFER FROM GETBUF
         AI,12    1                 MANUFACTURE THE STKPD
         STD,12   *D4               AND STORE IT AWAY
         LD,12    STKPD1            SET UP STACK
         LW,12    D4
         AI,12    X'1C0'
         STD,12   *12
         MTW,1    *12
         LI,2     0
         PSW,2    *12               EXTENDED DUMP FLAG
         LW,12    J:RNST
         AND,12   M24
         XW,12    J:RNST
         LCI      8
         PSM,5    *D4
         CI,R7    X'10'             IS USER
         BANZ     PMDDMP1           YES, CONTINUE
         CI,R7    X'FF00'           ABORT
         BANZ     PMDDMP27          YEP, GIVE REGS
         B        PMDDMP28          NO, JUST EXIT
PMDDMP1  EQU      %
         LI,5     X'20000'          PMD BIT
         CW,5     J:ASSIGN
         BAZ      PMDDMP27          GIVE REGS
         BAL,5    CLSXX
         LW,0     *D4
         AI,0     2                 PLIST POINTER
         LCI      11
         LM,1     ODBFPT
         LW,4     0
         AI,4     5                 BUFFER ADDRESS
         LW,10    J:JIT
         AND,10   M16               ID
         SLS,10   8
         OR,10    03ZD              +D = IDD FILE NAME
         LCI      12
         PSM,0    *D4               PLIST TO TSTACK
         LW,7     0                 SET UP ARGUMENTS FOR OPEN
         LI,6     M:XX
         LI,8     X'14'
         LI,5     J:JIT
         LI,10    0
         PSW,15   TSTACK
         OVERLAY  OPNSEG,0          GO TO OPEN
OPNER    LI,1     -12               CLEAR STACK
         PLW,15   TSTACK
         MSP,1    *15
         CI,10    0                 OPEN ERROR
         BNE      PMDDMP27          YES, GIVE ONLY REGS
         LW,12    *D4
         AI,12    1                 BUFFER ADDR & SPACE
         LI,5     15
         MSP,5    *D4
         LI,5     J:JIT
         LI,6     M:XX
         LW,7     12                PLIST ADR IN TSTACK
         LCI      5
         LM,0     DCBPLIST
         STM,0    0,7
         AWM,7    3,7               SET BUF ADR
         LW,R2    JITREE,R5         (R2) = ADR OF TREE TABLE
         AI,R2    1                 (R2) = ADR OF 1ST ENTRY
         LW,R3    -1,R2
         AW,R3    R2                (R3) = END ADR +1 OF TREE TABLE
         AI,3     -1
         AI,7     -1                POINT TO FPT-1
PMDDMP4  EQU      %
         LCI      2
         PSM,2    *D4
         STW,R2   6,R7              SET KEY ADDRESS
         LW,D2    Y08
         STS,D2   1,R7              SET KEY PRESENTS BIT
         LI,SR1   X'10'
         PSW,D4   TSTACK
         LW,D4    Y4
         STS,D4   J:ASSIGN
         BAL,SR4  MSRRDWT
         PLW,D4   TSTACK
         LI,D1    0
         LW,D2    Y08
         STS,D1   1,R7              RESET KEY PRESENTS BIT
PMDDMP5  EQU      %
         LI,SR1   X'10'
         PSW,D4   TSTACK
         LW,D4    Y4
         STS,D4   J:ASSIGN
         LI,SR3   0
         BAL,SR4  MSRRDWT
         PLW,D4   TSTACK
         LB,SR3   SR3               CHECK IF RECORD READ
         BNEZ     PMDDMP20          NO
         LCI      2
         PLM,2    *D4
         LCI      2
         PSM,2    *D4
         LW,D1    KBUF,R6
         LB,R1    *D1
         AI,R1    -1
         CB,R1    *R2
         BNE      PMDDMP20
PMDDMP6  EQU      %
         LB,D2    *R2,R1
         CB,D2    *D1,R1
         BNE      PMDDMP20
         BDR,R1   PMDDMP6
         LW,R2    7,R7              (R2) = 1ST WORD OF RECORD
         LB,R2    R2                (R2) = RECORD ID
         CI,R2    5                 CHECK IF PMDI
         BE       PMDDMP7A
         LW,3     *D4
         LW,3     -22,3
         CI,R3    X'FF00'           CHECK IF NORMAL EXIT
         BANZ     PMDDMP6A
         B        PMDDMP5
*
PMDDMP6A CI,2     4                 PMDE
         BNE      PMDDMP7           NO
         LW,D3    D4
         AI,D3    X'1C2'
         STW,2    *D3
PMDDMP7  EQU      %
PMDDMP7A EQU      %
         LCI      3
         PSM,6    *D4
         LW,3     *D4
         LW,3     -25,3
         CI,R3    X'FF00'           CHECK IF M:EXIT AND PMDI'S
         BANZ     PMDDMP7D          NO
         LI,SR1   4                 YES
         LW,6     *D4
         LW,R6    -26,6             M:DO DCB ADDRESS
         LI,D3    TXTMDO            TEXTC M:DO
         PSW,10   *D4
         PSW,D4   TSTACK
         BAL,11   IOSDEV
         REF      IOSDEV
         PLW,D4   TSTACK
         PLW,10   *D4
PMDDMP7D EQU      %
         LCI      3
         PLM,6    *D4
PMDDMP8  EQU      %
         LW,D3    D4                FROM-TO STACK
         AI,D3    X'1C0'
         LCI      2
         PSM,6    *D4
         LW,R2    R7
         AI,R2    8                 (R2) = ADR OF FROM-TO'S
         LI,R3    4
PMDDMP9  EQU      %
         LW,R6    0,R2              (R6) = FROM ADR
         LW,R7    1,R2              (R7) = TO ADR
         LD,R6    R6                CHECK IF FROM-TO ADR'S = 0
         BEZ      PMDDMP10          YES
         LCI      2
         PSM,6    *D3               LIMITS TO DUMP STACK
PMDDMP10 EQU      %
         AI,R2    2
         BDR,R3   PMDDMP9
         LCI      2
         PLM,6    *D4
         B        PMDDMP5
PMDDMP20 EQU      %
         LCI      2
         PLM,2    *D4
PMDDMP22 EQU      %
         AI,R2    TTESIZE           GO TO NEXT ENTRY
         CW,R2    R3                CHECK IF TO END OF TREE TABLE
         BGE      PMDDMP24          YES
         LW,R1    3,R2              NO, CHECK IF SEGMENT IS IN
         BGEZ     PMDDMP22          NO
         B        PMDDMP4           YES
PMDDMP24 EQU      %
         LI,1     1
         XW,1     CLOSEXX+1         RELEASE *D FILE
         BAL,5    CLSXX
         XW,1     CLOSEXX+1         PUT BACK WAY IT WAS
PMDDMP26 EQU      %
         LI,1     -15
         MSP,1    *D4               CLEAR STACK
PMDDMP27 LW,D3    D4
         AI,D3    X'1C0'
         LW,1     *D4
         LW,6     -6,R1             M:DO DCB ADDRESS
         LW,SR3   -2,R1             ADDR OF D4 IN TSTACK
         BAL,11   DUMPER            GO DO CORE DUMPS
PMDDMP28 EQU      %
         LCI      8                 (7)
         PLM,5    *D4
         REF      IOSPIN
         PSW,11   TSTACK
         BAL,11   IOSPIN            WAIT FOR IO TO RUN DOWN
         PLW,11   TSTACK
         LCI      8
         PSM,5    *D4
         LW,R2    Y8                CLOSE AND SAVE M:DO IF FILE OR
         PSW,2    *D4
         LW,7     *D4
         LI,R2    2
         PSW,2    *D4
         LI,R2    3
         LI,SR1   X'15'
         AND,R2   0,R6
         CI,R2    3
         BE       NOCLOSE
         LW,R2    0,R6
         CW,R2    Y002
         BAZ      NOCLOSE
         PSW,D4   TSTACK
         OVERLAY  CLSSEG,0
         PLW,D4   TSTACK
NOCLOSE  LW,12    *D4
         AI,12    -2
         LW,12    *12
         STW,12   J:RNST
         LCI      10
         PLM,5    *D4
         B        *SR4              EXIT
         PAGE
ODBFPT   EQU      %                         REGS
         DATA     X'F7000001'       FILE      1
         DATA     OPNER                       2
         DATA     OPNER                       3
         DATA     X'80000004'                 4
         DATA     36                          5
         DATA     2                 ORG-KEYED 6
         DATA     1                 ACC-SEQ   7
         DATA     1                 MODE-IN   8
         DATA     X'01000101'                 9
         DATA     0                 NAME      A
         DATA     X'02010002'       ACCT      B
03ZD     DATA     X'030000C4'
DCBPLIST DATA     X'F0000010'       PLIST INDICATOR
         DATA     1                 ERROR ADR
         DATA     1                 ABN   ADR
         DATA     6                 BUFFER ADR
         DATA     36                REC SIZE
         DATA     0
         BOUND    8
STKPD    DATA     0
         DATA     X'1BE0000'
STKPD1   DATA     0,X'803E8000'
         PAGE
*
*                 RELEASE GRANULES FROM M:JOB
*
RELGRAN  EQU      %
         LI,5     J:JIT
         INT,7    MUPO,5
         LW,7     7
         BEZ      RELDONE
         PSW,15   TSTACK
         LW,6     7
         SLS,6    1
         LW,9     M24
         LI,8     0
         LS,8     20,6              FIRST DISC ADD.
         BEZ      CALJBFN1
CALJBCM  CS,8     21,6
         BE       CALJBFN           DONE
         STW,8    8,6               CDA TO DCB
         LS,8     7,6
         MTB,1    8
         STW,8    7,6               I/O OUTSTANDING TO DCB
         LW,8     6
         BAL,11   QUEUE
         LW,11    7,6
         LB,10    11                WAIT FOR I/O
         BNEZ     %-2
         LW,8     *11               FLINK
         BEZ      CALJBFN
         LI,11    1
         AND,11   8,6
         BEZ      CALJBCM           CDA EVEN
         LW,10    8                 SAVE FLINK
         LW,8     8,6               CDA
         AI,8     -SBSECTS
         BAL,11   RSG               RELEASE GRANULE
         LI,8     0
         STW,8    8,6               ZAP CDA IN DCB
         LW,8     10
         B        CALJBCM
CALJBFN  LW,8     8,6
         BEZ      CALJBFN1          ALREADY GONE
         BAL,11   RSG
CALJBFN1 LI,8     0
         LI,9     X'FFFF'
         STS,8    MUPO              ZAP FLAG
         PLW,15   TSTACK
         B        RELDONE
         END      DEBUGTV
		 
