PCDMP        V01L02                    1130 PLAN (1130-CX-25X) 08/30/71        *
// XEQ X8K                                                              PCD00020
// FOR                                                                  PCD00040
*LIST ALL                                                               PCD00060
**    PCDMP- DUMP COMMUNICATIONS ARRAY                                  PCD00080
*NAME               PCDMP                                               PCD00100
C     THIS MODULE GENERATES A DUMP OF THE COMMUNICATIONS ARRAY          PCD00120
C     THE MANAGED ARRAY LENGTH IS DETERMINED FROM SWITCH WORD 10        PCD00140
C     THE NONMANAGED ARRAY LENGTH IS DETERMINED FROM SWITCH WORD  9     PCD00160
      DIMENSIONP(2)                                                     PCD00180
      COMMONL(625) ,LS(15) ,M(510)                                      PCD00200
      EQUIVALENCE(LS(9),LS9),(LS(10),LS10),(LS(8),LS8)                  PCD00220
C     ******************************************************************PCD00240
C     ERASEABLE COMMON LAYOUT                                           PCD00260
C      1 = -1 DUMP MANAGED                                              PCD00280
C           0  DUMP MANAGED AND NONMANAGED                              PCD00300
C           1  DUMP NONMANAGED ARRAY                                    PCD00320
C          -2  DUMP SWITCHES ONLY                                       PCD00340
C     2 = 'MANAGED ARRAY CONTENTS'                                      PCD00360
C     7 = 'NONMANAGED ARRAY CONTENTS'                                   PCD00380
C     12 = SWITCHES                                                     PCD00400
C     14 = LENGTH                                                       PCD00420
C     16 = DEVICE CODE                                                  PCD00440
C     ******************************************************************PCD00460
C     FIND MANANGED AND NONMANAGED SIZE                                 PCD00480
      IM = LS10                                                         PCD00500
      IN = LS9 - 640                                                    PCD00520
C     SET UP DEVICE CODE                                                PCD00540
      NOD = M(LS8 + 15)                                                 PCD00560
C     SET SYSTEM BUFFER                                                 PCD00580
      CALL PDBFA(NOD)                                                   PCD00600
C     SKIP TO NEW PAGE                                                  PCD00620
      CALL PCCTL(NOD,1)                                                 PCD00640
      IF (M(LS8)) 4,3,4                                                 PCD00660
    4 IF (M(LS8) + 2) 26,3,26                                           PCD00680
C     SET SWITCH WORD HEADING                                           PCD00700
    3 CALL PAOUT(NOD,1,8,M(LS8 + 11))                                   PCD00720
      CALL PLOUT(NOD)                                                   PCD00740
      CALL PLOUT(NOD)                                                   PCD00760
      I = 1                                                             PCD00780
    5 CALL PHTOE(LS(I) ,P,1)                                            PCD00800
      CALL PAOUT(NOD,6 + (I - (I - 1) / 8 * 8 - 1) * 12,4,P)            PCD00820
      CALL PAOUT(NOD,11 + (I - (I - 1) / 8 * 8 - 1) * 12,4,P(2))        PCD00840
      IF (I - 15) 10,25,25                                              PCD00860
   10 IF (I - 8) 20,15,20                                               PCD00880
   15 CALL PLOUT(NOD)                                                   PCD00900
   20 I = I + 1                                                         PCD00920
      GOTO 5                                                            PCD00940
   25 CALL PLOUT(NOD)                                                   PCD00960
      CALL PLOUT(NOD)                                                   PCD00980
C     IS MANAGED ARRAY TO BE DUMPED                                     PCD01000
   26 IF (M(LS8)) 27,27,75                                              PCD01020
   27 IF (M(LS8) + 2) 30,75,30                                          PCD01040
   30 L1 = LS8 + 2                                                      PCD01060
      CALL PAOUT(NOD,1,16,M(L1))                                        PCD01080
      CALL PAOUT(NOD,16,8,M(LS8 + 13))                                  PCD01100
      CALL PIOUT(NOD,23,4,IM)                                           PCD01120
C     PRINT DUMP HEADING                                                PCD01140
      CALL PLOUT(NOD)                                                   PCD01160
C     SKIP LINE                                                         PCD01180
      CALL PCCTL(NOD, - 2)                                              PCD01200
C     IS MANAGED ARRAY NULL                                             PCD01220
      IF (IM) 75,75,35                                                  PCD01240
C     SET LOOP TO DUMP MANAGED                                          PCD01260
   35 DO 65 I=1,IM,8                                                    PCD01280
C     IF THIS IS FIRST LINE SKIP EQUAL COMPARE                          PCD01300
      IF (I - 1) 45,45,40                                               PCD01320
C     IS LINE EQUAL TO PREVIOUS                                         PCD01340
   40 IF (PCOMP(M(I) ,M(I - 8) ,8)) 45,65,45                            PCD01360
C     CONVERT TO EBCDIC                                                 PCD01380
   45 J = I                                                             PCD01400
      K = 1                                                             PCD01420
   50 CALL PHTOE(M(J) ,P,1)                                             PCD01440
      CALL PAOUT(NOD,7 + (K - 1) * 12,4,P)                              PCD01460
      CALL PAOUT(NOD,12 + (K - 1) * 12,4,P(2))                          PCD01480
C     ARE  WE AT ARRAY END                                              PCD01500
      IF (I + K - IM) 55,55,60                                          PCD01520
C     TO NEXT POSITION                                                  PCD01540
   55 J = J + 1                                                         PCD01560
      K = K + 1                                                         PCD01580
C     IS LINE COMPLETE                                                  PCD01600
      IF (K - 8) 50,50,60                                               PCD01620
C     PRINT LINE                                                        PCD01640
   60 CALL PIOUT(NOD,1,5,I)                                             PCD01660
      CALL PLOUT(NOD)                                                   PCD01680
   65 CONTINUE                                                          PCD01700
C     SKIP FIVE LINES                                                   PCD01720
      DO 70 K=1,5                                                       PCD01740
   70 CALL PLOUT(NOD)                                                   PCD01760
C     IS NONMANAGED ARRAY TO BE DUMPED                                  PCD01780
   75 IF (M(LS8)) 80,85,85                                              PCD01800
C     RETURN TO PLAN                                                    PCD01820
   80 CALL LRET                                                         PCD01840
C     PRINT NONMANAGED HEADER                                           PCD01860
   85 L1 = LS8 + 7                                                      PCD01880
      CALL PAOUT(NOD,1,16,M(L1))                                        PCD01900
      CALL PAOUT(NOD,18,8,M(LS8 + 13))                                  PCD01920
      CALL PIOUT(NOD,25,5,IN - IM)                                      PCD01940
C     PRINT DUMP HEADING                                                PCD01960
      CALL PLOUT(NOD)                                                   PCD01980
C     SKIP LINE                                                         PCD02000
      CALL PCCTL(NOD, - 2)                                              PCD02020
C     IS NONMANAGED ARRAY NULL                                          PCD02040
      IF (IN - IM) 80,80,90                                             PCD02060
C     SET LOOP TO DUMP NONMANAGED                                       PCD02080
   90 IM = LS10 + 1                                                     PCD02100
      DO 120 I=IM,IN,8                                                  PCD02120
C     IF THIS IS FIRST LINE SKIP EQUAL COMPARE                          PCD02140
      IF (I - IM) 100,100,95                                            PCD02160
C     IS LINE EQUAL TO PREVIOUS                                         PCD02180
   95 IF (PCOMP(M(I) ,M(I - 8) ,8)) 100,120,100                         PCD02200
C     CONVERT TO EBCDIC                                                 PCD02220
  100 J = I                                                             PCD02240
      K = 1                                                             PCD02260
  105 CALL PHTOE(M(J) ,P,1)                                             PCD02280
C     SET TO PRINT                                                      PCD02300
      CALL PAOUT(NOD,7 + (K - 1) * 12,4,P)                              PCD02320
      CALL PAOUT(NOD,12 + (K - 1) * 12,4,P(2))                          PCD02340
C     ARE WE AT ARRAY END                                               PCD02360
      IF (I + K - IN) 110,110,115                                       PCD02380
C     SET TO NEXT POSITION                                              PCD02400
  110 J = J + 1                                                         PCD02420
      K = K + 1                                                         PCD02440
C     IS LINE COMPLETE                                                  PCD02460
      IF (K - 8) 105,105,115                                            PCD02480
C     PRINT LINE                                                        PCD02500
  115 CALL PIOUT(NOD,1,5,I - IM + 1)                                    PCD02520
      CALL PLOUT(NOD)                                                   PCD02540
C     END CONVERT LOOP                                                  PCD02560
  120 CONTINUE                                                          PCD02580
      CALL PLOUT(NOD)                                                   PCD02600
      CALL PLOUT(NOD)                                                   PCD02620
      GOTO 80                                                           PCD02640
      END                                                               PCD02660
// DUP                                                                  PCD02680
*DUMP       WS  CD  PCDMP                                               PCD02700
*DELETE             PCDMP                                               PCD02720
*STORECI    WS  UA  PCDMP                                               PCD02740
