*DECK BUG202R 
          PROC BUG202REGTDP(STARTNUM, ENDNUM, HEADER);
                                                                         REGTDMP
 #** PURPOSE                                                             REGTDMP
          THIS ROUTINE DUMPS THE REG TABLE IN FORMATTED FORM FROM        REGTDMP
          ORDINAL STARTNUM TO ORDINAL ENDNUM.                            REGTDMP
                                                                         REGTDMP
          IF STARTNUM @ 1 THEN THE TABLE IS DUMPED FROM THE FIRST ENTRY  REGTDMP
          (ENTRY NUMBER 1).                                              REGTDMP
                                                                         REGTDMP
          IF ENDNUM = 0 THEN THE TABLE IS DUMPED TO THE END              REGTDMP
          (ENTRY NUMBER 99), ELSE IF ENDNUM <= STARTNUM THEN ONLY ONE    REGTDMP
          ENTRY IS DUMPED.                                               REGTDMP
                                                                         REGTDMP
          IF HEADER = 0 THEN NO HEADING IS PRINTED.                      REGTDMP
          IF HEADER = 1 THEN A HEADING IS PRINTED.                       REGTDMP
 #                                                                       REGTDMP
                                                                         REGTDMP
          BEGIN 
          ITEM  STARTNUM     I; 
          ITEM  ENDNUM       I; 
          ITEM  HEADER       I; 
  
          $BEGIN
  
  
*CALL M$
  
*CALL FIXCOM
  
*CALL FIXED 
  
*CALL LISTCTL 
  
*CALL REGTABL 
  
  
          XREF  PROC  CBLIST;          # PROCESS COBOL LISTING         #
          XREF  FUNC  DEC    C(10);    # DECIMAL NUMBER, LEFT-JUSTIFIED#
                                                                         REGTDMP
 # REG TABLE DUMP PRINT LINE ARRAY#                                      REGTDMP
                                                                         REGTDMP
          ARRAY REGLINE [0] S(14);                                       REGTDMP
          BEGIN                                                          REGTDMP
            ITEM REGLINE1    C(0,0,3)  = ["REG"];                        REGTDMP
            ITEM REGLINE2    C(0,18,3);                                  REGTDMP
            ITEM REGREAL     C(0,36,2) = ["99"];                         REGTDMP
            ITEM REGLINE3    C(0,48,2) = [": "];                         REGTDMP
            ITEM REGLINE4    C(1,0,10) = [" ATOM1 GCO"];                 REGTDMP
            ITEM REGLINE5    C(2,0,3)  = ["DE "];                        REGTDMP
            ITEM REGGCODE1   C(2,18,3) = ["999"];                        REGTDMP
            ITEM REGLINE6    C(2,36,4) = ["  GP"];                       REGTDMP
            ITEM REGLINE7    C(3,0,3)  = ["TR "];                        REGTDMP
            ITEM REGGPTR1    C(3,18,5) = ["99999"];                      REGTDMP
            ITEM REGLINE8    C(3,48,2) = ["  "];                         REGTDMP
            ITEM REGLINE9    C(4,0,7)  = ["GSCODE "];                    REGTDMP
            ITEM REGGSCODE1  C(4,42,3) = ["999"];                        REGTDMP
            ITEM REGLINE10   C(5,0,10) = ["  ATOM2 GC"];                 REGTDMP
            ITEM REGLINE11   C(6,0,4)  = ["ODE "];                       REGTDMP
            ITEM REGGCODE2   C(6,24,3) = ["999"];                        REGTDMP
            ITEM REGLINE12   C(6,42,3) = ["  G"];                        REGTDMP
            ITEM REGLINE13   C(7,0,4)  = ["PTR "];                       REGTDMP
            ITEM REGGPTR2    C(7,24,5) = ["99999"];                      REGTDMP
            ITEM REGLINE14   C(7,54,1) = [" "];                          REGTDMP
            ITEM REGLINE15   C(8,0,8)  = [" GSCODE "];                   REGTDMP
            ITEM REGGSCODE2  C(8,48,3) = ["999"];                        REGTDMP
            ITEM REGLINE16   C(9,6,7)  = ["  DNAT "];                    REGTDMP
            ITEM REGDNAT     C(9,48,5) = ["99999"];                      REGTDMP
            ITEM REGLINE17   C(10,18,7) = ["  SUBS "];                   REGTDMP
          ITEM REGSUBSCR   C(11,0,3) = ["999"]; 
            ITEM REGLINE18   C(11,18,6) = ["  LIT "];                    REGTDMP
            ITEM REGLIT      C(11,54,1) = ["9"];                         REGTDMP
            ITEM REGLINE19   C(12,0,7)  = ["  AUXT "];                   REGTDMP
            ITEM REGAUXT     C(12,42,5) = ["99999"];                     REGTDMP
          END                                                            REGTDMP
                                                                         REGTDMP
          ITEM   REGITEM C(3) = "T #";                                   REGTDMP
                                                                         REGTDMP
          ARRAY  REGVIRTUAL [0] S(1);                                    REGTDMP
          BEGIN                                                          REGTDMP
            ITEM REGVIRT     C(0,0,3) = ["99="];                         REGTDMP
            ITEM REGVIR      C(0,0,2);                                   REGTDMP
          END                                                            REGTDMP
                                                                         REGTDMP
          ARRAY BOUNDMESSAGE [0] S(6);                                   REGTDMP
          BEGIN                                                          REGTDMP
            ITEM BOUNDMESS1  C(0,0,10);                                  REGTDMP
            ITEM BOUNDMESS2  C(1,0,10);                                  REGTDMP
            ITEM BOUNDMESS3  C(2,0,10) = ["ING  REG T"];                 REGTDMP
            ITEM BOUNDMESS4  C(3,0,10) = ["ABLE ENTRY"];                 REGTDMP
            ITEM BOUNDMESS5  C(4,0,10) = [" NUMBER = "];                 REGTDMP
            ITEM BOUNDVALUE  C(5,0,10) = ["9999999999"];                 REGTDMP
          END                                                            REGTDMP
                                                                         REGTDMP
          ARRAY REGMESSAGE [0] S(6);                                     REGTDMP
          BEGIN                                                          REGTDMP
            ITEM REGMESS1    C(0,0,10) = ["**** ILLEG"];                 REGTDMP
            ITEM REGMESS2    C(1,0,10) = ["AL VIRTUAL"];                 REGTDMP
            ITEM REGMESS3    C(2,0,10) = [" REG TABLE"];                 REGTDMP
            ITEM REGMESS4    C(3,0,8)  = [" ENTRY #"];                   REGTDMP
            ITEM REGVIRTM    C(3,48,2) = ["99"];                         REGTDMP
            ITEM REGMESS5    C(4,0,10) = ["  VALUE = "];                 REGTDMP
            ITEM REGVIRVAL   C(5,0,10) = ["9999999999"];                 REGTDMP
          END                                                            REGTDMP
                                                                         REGTDMP
          ITEM   STARTORD    I;                                          REGTDMP
          ITEM   ENDORD      I;                                          REGTDMP
          ITEM   TEMP        I;                                          REGTDMP
          ITEM   REGINDEX    I;                                          REGTDMP
          ITEM   REGTINDEX   I;                                          REGTDMP
                                                                         REGTDMP
CONTROL EJECT;                                                           REGTDMP
                                                                         REGTDMP
 # EXECUTABLE CODE #                                                     REGTDMP
 # INITIALIZATION #                                                      REGTDMP
                                                                         REGTDMP
          REGLINE15 [0] = " GSCODE ";                                    REGTDMP
          REGLINE16 [0] = "  DNAT ";                                     REGTDMP
          REGLINE19 [0] = "  AUXT ";                                     REGTDMP
                                                                         REGTDMP
          IF HEADER NQ 0  THEN
              BEGIN 
              CBLIST(LISTCTL"OPEN", "REGTDMP", 7);
              CBLIST(LISTCTL"EJECT"); 
              END 
                                                                         REGTDMP
          STARTORD = STARTNUM;                                           REGTDMP
          IF STARTORD LS 0  OR  STARTORD GR 99  THEN
              BEGIN 
              BOUNDVALUE [0] = DEC (STARTORD);                           REGTDMP
              BOUNDMESS1 [0] = "****** ILL";                             REGTDMP
              BOUNDMESS2 [0] = "EGAL START";                             REGTDMP
              CBLIST(LISTCTL"LINE", BOUNDMESSAGE, 60);
              IF STARTORD GR 99  THEN 
#**RETURN#        RETURN; 
              END 
          IF STARTORD LQ 0  THEN
              STARTORD = 1; 
  
          ENDORD = ENDNUM;
          IF ENDORD LS 0  OR  ENDORD GR 99  THEN
              BEGIN 
              BOUNDVALUE [0] = DEC (ENDORD);                             REGTDMP
              BOUNDMESS1 [0] = "******** I";                             REGTDMP
              BOUNDMESS2 [0] = "LLEGAL END";                             REGTDMP
              CBLIST(LISTCTL"LINE", BOUNDMESSAGE, 60);
              IF ENDORD GR 99  THEN 
#**RETURN#        RETURN; 
              END 
              IF ENDORD EQ 0  THEN
              ENDORD = 99;
          ELSE
              BEGIN 
              IF ENDORD LS STARTORD  THEN 
                  ENDORD = STARTORD;
              END 
                                                                         REGTDMP
 # MAIN LOOP #                                                           REGTDMP
                                                                         REGTDMP
          FOR REGINDEX = STARTORD STEP 1 UNTIL ENDORD                    REGTDMP
            DO BEGIN                                                     REGTDMP
                                                                         REGTDMP
          IF REGINDEX LQ 49  THEN 
              BEGIN 
              REGTINDEX = REGINDEX;                                      REGTDMP
              REGLINE2 [0] = REGITEM;                                    REGTDMP
              END 
          ELSE
              BEGIN 
              REGTINDEX = FIXEDCELL[REGINDEX];
              REGVIR [0] = DEC (REGINDEX);                               REGTDMP
              REGLINE2 [0] = REGVIRT [0];                                REGTDMP
              IF REGTINDEX LS 1  OR  REGTINDEX GR 49  THEN
                  BEGIN 
                  REGVIRTM [0] = DEC (REGINDEX);                         REGTDMP
                  REGVIRVAL [0] = DEC (REGTINDEX);                       REGTDMP
                  CBLIST(LISTCTL"LINE", REGMESSAGE, 60);
#****GOTO#        GOTO LOOPEND; 
                  END 
              END 
                                                                         REGTDMP
          REGREAL [0] = DEC (REGTINDEX);                                 REGTDMP
          TEMP = REGGCODE [REGTINDEX];                                   REGTDMP
          REGGCODE1 [0] = DEC (TEMP);                                    REGTDMP
          TEMP = REGGPTR [REGTINDEX];                                    REGTDMP
          REGGPTR1 [0] = DEC (TEMP);                                     REGTDMP
          TEMP = REGGSCODE [REGTINDEX];                                  REGTDMP
          REGGSCODE1 [0] = DEC (TEMP);                                   REGTDMP
          TEMP = REGGCODETWO [REGTINDEX];                                REGTDMP
          REGGCODE2 [0] = DEC (TEMP);                                    REGTDMP
          TEMP = REGGPTRTWO [REGTINDEX];                                 REGTDMP
          REGGPTR2 [0] = DEC (TEMP);                                     REGTDMP
          TEMP = REGGSCODETWO [REGTINDEX];                               REGTDMP
          REGGSCODE2 [0] = DEC (TEMP);                                   REGTDMP
          TEMP = REGDNATADDR [REGTINDEX];                                REGTDMP
          B<0,30>TEMP = 0;             # CLEAR KLUDGE BITS FOR NUM LITS#
          REGDNAT [0] = DEC (TEMP);                                      REGTDMP
          TEMP = REGSUBSC [REGTINDEX];
          REGSUBSCR [0] = DEC (TEMP); 
          REGLIT [0] = 27 + REGLITFLAG [REGTINDEX];                      REGTDMP
          TEMP = REGAUXTADDR [REGTINDEX];                                REGTDMP
          REGAUXT [0] = DEC (TEMP);                                      REGTDMP
                                                                         REGTDMP
          CBLIST(LISTCTL"LINE", REGLINE, 132);
                                                                         REGTDMP
LOOPEND:                                                                 REGTDMP
            END                    # MAIN LOOP #                         REGTDMP
                                                                         REGTDMP
          IF HEADER EQ 0  THEN                                           REGTDMP
              CBLIST(LISTCTL"CLOSE", "REGTDMP", 7); 
  
          RETURN; 
  
          $END
  
          END 
          TERM
