*DECK SETBIT
USETEXT TCMMDEF 
USETEXT TOPTION 
USETEXT TREPORT 
USETEXT TRPTLST 
      PROC SETBIT;
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     SETBIT                       CLEAR CREPORT FOR NEXT PREPARE      #
#                                                                      #
#----------------------------------------------------------------------#
  
          BEGIN 
        #THIS IS A ROUTINE TO CLE R THE CREPORT AREA FOR                008350
           REPORT GENERATION#                                           008360
  
  
          DEF DFTRPWD #O"40000000000001000000"#;
          DEF DFTRPWD2#O"04010000000000000000"#;                        008150
      ITEM I            I;         # SCRATCH TEMPORARY                 #
      ITEM J            I;         # SCRATCH TEMPORARY                 #
      BASED ARRAY PTEMP; ITEM ITEMP;                                    000180
  
  
  
  
  
  
#----------------------------------------------------------------------#
#                                                                      #
#     BEGINNING OF EXECUTABLE CODE FOR      S E T B I T                #
  
       BEGIN
                           #CLEAR THE TABS#                             008380
      TAB[0]=0; 
      TAB[1]=0; 
      TAB[2]=0; 
                         #SET PAGE SIZE TO DEFAULT#                     008400
          PSLINE = DFTLINE; 
          PSCOLUMN = DFTCOL;
          PSSECTION = DFTSECTS; 
          PSIMAGE = DFTIMAGE; 
          SECTWID = PSCOLUMN / PSSECTION; 
         PSHORVER = 0;
                      #CLEAR DETAIL WORD AND SELECT WORD#               008420
      FOR I = 1 STEP 1 UNTIL MAXSELECT
          DO BEGIN DTLWORD[I] = 0;
                   SELWORD[I] = 0;
             END
           SELWORD[-1] = 0;                                             019900
                   #CLEAR LINE AND COLUMN POINTERS#                     008440
      XTAB=0; 
      XLINE=0;
      LPLINE = 0;                  # LAST PRINTED LINE IS NONE, YET.   #
      XCOLUMN=0;
      PRINTSQ = 0;
          NEXTTAB = FALSE;
                   #PRESET MOVE AND EVALUATE POINTER#                   008460
                  # CLEAR BREAKWORD#                                    008480
          FOR I = 0 STEP 1 UNTIL MAXBREAK DO
          BEGIN BRKWORD[I] = 0; 
                FTGWORD[I] = 0; 
                HDGWORD[I] = 0; 
          END 
          IF RPTLISTASN            # IF REPORTLIST ALREADY EXISTS      #
          THEN
            BEGIN 
            P<PTEMP> = AREPORTLIST;  # LOCATE EXISTING LIST            #
            FOR I = 0 STEP 3       # FOR EACH OF THE OLD RPTLIST ENTRYS#
              UNTIL (MAXREPORT + 1) * 3 - 1  # UNTIL LENGTH OF BLOCK   #
            DO
              BEGIN 
              ITEMP[I + 0] = 0;    # CLEAR FIRST  ENTRY WORD           #
              ITEMP[I + 1] = 0;    # CLEAR SECOND ENTRY WORD           #
              ITEMP[I + 2] = 0;    # CLEAR THIRD  ENTRY WORD           #
              END 
            END 
  
                  #IF REPORT LIST IS NOT CURRENTLY ASSIGNED,            008500
                   GET SOME SPACE AND ASSIGNED TO REPORT LIST#          008510
          IF NOT RPTLISTASN THEN
            BEGIN 
            AREPORTLIST = CMM$ALF((MAXREPORT + 1) * 3, 0, 0); 
                RPTLISTASN = TRUE;
          END 
           P<REPORTLIST> = AREPORTLIST; 
      ONCEFLG = FALSE;
               #CLEAR FIRST HEADING,FOOTING,TITLE,RECAP WORDS#          008530
      TITWORD[1]=0; 
      RECWORD[1]=0; 
                #SET FIRST REPORTLIST ENTRY TO DEFAULT#                 008550
          REPORTWORD1[1] = DFTRPWD; 
          REPORTWORD2[1] = DFTRPWD2;
                  #CLEAR DATE,PAGE,AND TIME WORD#                       008570
      DATWORD[1]=0; 
      TIMWORD[1]=0; 
      PGNWORD[1]=0; 
                #RESET REPORTLIST PTR TO 1#                             008590
      REPORTINDEX=1;
               #BLANK OUT FORMATDLINE#                                  008610
                                                                        008620
          FOR I = 0  STEP 1  UNTIL MAXWPL  DO 
          FMTDL[I] = "          ";                #BLANKS#
  
  
#   NOW CLEAR THE *TOATTRIBUTE* TABLE POINTING TO SPACE FOR CREATED    #
#   *TO* OR *FROM* ATTRIBUTE ENTRIES.                                  #
  
      P<PTEMP> = LOC(TOATTRIBUTE);  # POSITION FOR CLEARING POINTERS   #
      FOR I = 0 STEP 1             # FOR EACH *TOATTRIBUTE* ENTRY      #
      UNTIL 4                      # UNTIL NO MORE ENTRIES             #
      DO
        BEGIN 
        ITEMP[I] = 0;              # CLEAR THIS ENTRY                  #
        END 
  
      TOATTPTR = 0; 
  
      P<PTEMP> = LOC(REPORT);                                           000280
          J = 20 + 6*(MAXBREAK+2) + 4*(MAXSELECT+1) + 2 + 3;
               #CLEAR ALL THE REPORT-NAME WORDS AND THE EVALUATE-       008650
                 HEADER WORDS#                                          008660
      FOR I = 0 STEP 1 UNTIL J DO ITEMP[I] = 0;                         000300
                  #CLEAR EVALUATE WORD FOR TITLE AND RECAP#             008680
      RETURN; 
          END 
      END 
      TERM
