*DECK DEBUG 
USETEXT CCTTEXT 
          PROC DEBUG(OVLY); 
          BEGIN 
          CONTROL FTNCALL;
          CONTROL PRESET; 
          ITEM OVLY I;       #NEXT OVERLAY TO BE LOADED#
          $BEGIN             #THIS MUST BE ASSLED W/ E OPTION#
  
          XDEF ITEM WANTED I = 0;  #REQUESTED OVERLAY INDEX#
          XDEF ITEM SKIP$DF  I=0;   #SKIP TO D-FORMATTER FLAG#
  
*CALL OVLCOM
          XDEF
*CALL DUMPNRS 
  
          COMMON FWALWA;
          ITEM FWA I; 
  
          ITEM SAVEFWA I;    #USED TO SAVE FWA WHILE DUMPING# 
  
*CALL     SYSFET
  
          ARRAY WORDS [0:9];
          ITEM WORD C(0,0,10);
          ARRAY INSTRING [0:7]; 
          ITEM STRING C(0,0,10);
  
          SWITCH ROUTINES 
              ERROR,         #0#
              ANOVLY,        #1#
              ANOVLY,        #2#
              ANOVLY,        #3#
              ANOVLY,        #4#
              ANOVLY,        #5#
              ANOVLY,        #6#
              ANOVLY,        #7#
              ANOVLY,        #8#
              ANOVLY,        #9#
              ANOVLY,        #10# 
              ANOVLY,        #11# 
              ANOVLY,        #12# 
              ANOVLY,        #13# 
              ANOVLY,        #14# 
              ANOVLY,        #15# 
              ANOVLY,        #16# 
              DNATDMPR, 
              GTXTDMPR, 
              LATDMPR,
              PNATDMPR, 
              DNTDMPR,
              PNTDMPR,
              AWRTDMPR, 
              INTDMPR,
              PLTDMPR,
              CTXTDMPR, 
              PATDMPR,
              CCTDMPR,
              FDLTDMPR, 
              FNATDMPR, 
              AUXTDMPR, 
              ETEXTDMPR,
              POOLDMPR, 
              RFTDMPR,
              RPADMPR,
              RPDMPR, 
              SPBTDMPR, 
              PARAMR, 
              INTERCPTR,
              TABLESTATSR,
              TIMERSTATSR,
              STOPR,
              AT$END, 
              PARSERSR; 
  
          XREF
              BEGIN 
              PROC LOVER; 
              FUNC TOBIN  I;
              PROC GETSQ; 
              PROC RETRN; 
              PROC DISPLAY; 
              END 
  
          ITEM I    I;
  
          COMMON PARAMS;     #8 WORD COMMON BLOCK TO PASS PARAM # 
              BEGIN                #CARD IMAGES TO HIGHER OVLYS#
              ARRAY PARAMT[0:7];   #OVLY MUST CRACK IT ITSELF#
              ITEM PARAMC C(0,0,10) = [8("          ")];
              END 
  
*CALL PARSCOM 
  
              PROC COMMANDCRACK;
              BEGIN 
  
              LABEL ERROR;
              ITEM TEMPCHAR C(1); 
              ITEM INCDEX, INWDEX, OUTCDEX, OUTWDEX  I; 
  
              OUTCDEX = 0;
              OUTWDEX = 0;
  
              FOR INWDEX = 0 STEP 1 UNTIL 7 DO
                  BEGIN 
                  FOR INCDEX = 0 STEP 1 UNTIL 9 DO
                      BEGIN 
                      TEMPCHAR = C<INCDEX,1>STRING[INWDEX]; 
                 # C.F. END OF A COMMAND# 
                      IF TEMPCHAR EQ " " THEN GOTO WORDDONE;
                      IF TEMPCHAR EQ "." THEN GOTO WORDDONE;
                      IF TEMPCHAR EQ "=" THEN GOTO WORDDONE;
                      IF TEMPCHAR EQ "," THEN GOTO WORDDONE;
                      IF OUTCDEX GR 9 THEN GOTO ERROR;
                             #ELSE MOVE THE CHARACTER#
                      C<OUTCDEX,1>WORD[OUTWDEX] = TEMPCHAR; 
                      OUTCDEX = OUTCDEX + 1;
                      TEST INCDEX;
  
                   WORDDONE:  
  
                      IF OUTCDEX NQ 10 THEN 
                          C<OUTCDEX,10-OUTCDEX>WORD[OUTWDEX] =
                          "          "; 
                      OUTCDEX = 0;
                      OUTWDEX = OUTWDEX + 1;
                      IF OUTWDEX GR 8 THEN GOTO ERROR;
                      IF TEMPCHAR EQ " " OR TEMPCHAR EQ "." THEN
                          GOTO DONE;
                      END 
                  END 
  
               DONE:  
  
                  FOR I = OUTWDEX STEP 1 UNTIL 9 DO 
                      WORD[I] = " ";
                  RETURN; 
               ERROR: 
  
                  IF WORD[0] EQ "PARAM     "
                     OR WORD[0] EQ  "PARSERS   " THEN 
                      GOTO DONE;       #PARAM CARDS ARE FREE FIELD# 
                  WORD[0] = "          "; 
                  RETURN; 
              END 
  
              PROC DMPCALL(DMPNB1,DMPPARMS);
#      CALLS A DUMP ROUTINE#
              BEGIN 
  
              ITEM DMPNB1    U; 
              ITEM DMPPARMS  U; 
              ITEM CALLDITER I; 
  
              FOR CALLDITER = 1 STEP 1 UNTIL DMPPARMS DO
                  BEGIN 
                  DMPITEM[CALLDITER] = TOBIN(WORD[CALLDITER],0);
                  END 
              DMPITEM[0] = DMPNB1;
              SAVEFWA = FWA;
              FWA = 0;       #SINCE WE DONT KNOW WHAT IT IS#
              LOVER(DUMPS); 
              FWA = SAVEFWA;
              RETURN; 
  
              END 
  
  
#      NORMAL ENTRY POINT#
  
          FOR I = 0 STEP 1 UNTIL 7 DO 
              BEGIN 
              PARAMC[I] = "          ";   #CLEAR TH BLOCK#
              PARSCOMWORD[I] = "          ";  #CLEAR THE BLOCK# 
              END 
          SKIP$DF = 0;       #CLEAR THE SKIP FLAG#
  
          IF WANTED NQ 0 THEN GOTO NORMAL;
  
 GETNEXT: 
  
          GETSQ(CHKFET, LOC(INSTRING), 80, ATEND);
  
          DISPLAY(0,INSTRING,0,80); 
  
          COMMANDCRACK; 
  
          FOR I = 1 STEP 1 UNTIL COMMANDCNT DO
              IF COMMAND[I] EQ WORD[0] THEN GOTO ROUTINES[I]; 
  
 AT$END:  
  
          WANTED = -1;       #SET AT END CONDITION# 
  
 NORMAL:  
  
          IF WANTED EQ -1 THEN RETURN;
  
          IF WANTED EQ OVLY THEN GOTO GOTOVLY;   #PROCESS PARAMS# 
  
          IF WANTED GR OVLY THEN RETURN;
  
 ERROR: 
#      ERROR CONDITION# 
  
          RETURN;            #TEMP - DEBUG **********#
  
 ANOVLY:  
  
          WANTED = I; 
          GOTO NORMAL;
  
 STOPR: 
  
          SKIP$DF = 1;       #SKIP TO DF AFTER NEXT OVERLAY#
          GOTO GETNEXT; 
  
  
 DNATDMPR:  
  
          DMPCALL(DUMPNAMES"DNATDMP", 4); 
          GOTO GETNEXT; 
  
 GTXTDMPR:  
  
          DMPCALL (DUMPNAMES "GTXTDMP", 5); 
          GOTO GETNEXT; 
  
 LATDMPR: 
  
          DMPCALL(DUMPNAMES"LATDMP",4); 
          GOTO GETNEXT; 
  
 PNATDMPR:  
  
          DMPCALL(DUMPNAMES"PNATDMP", 4); 
          GOTO GETNEXT; 
  
 DNTDMPR: 
          DMPCALL(DUMPNAMES"DNTDMP",0); 
          GOTO GETNEXT; 
  
 PNTDMPR: 
          DMPCALL(DUMPNAMES"PNTDMP",0); 
          GOTO GETNEXT; 
  
 AWRTDMPR:  
          DMPCALL(DUMPNAMES"AWRTDMP",0);
          GOTO GETNEXT; 
  
 INTDMPR: 
          DMPCALL(DUMPNAMES"INTDMP",0); 
          GOTO GETNEXT; 
  
 PLTDMPR: 
          DMPCALL(DUMPNAMES"PLTDMP",0); 
          GOTO GETNEXT; 
  
 CTXTDMPR:  
          DMPCALL(DUMPNAMES"CTXTDMP",0);
          GOTO GETNEXT; 
  
 PATDMPR: 
          DMPCALL(DUMPNAMES"PATDMP",0); 
          GOTO GETNEXT; 
  
 CCTDMPR: 
          DMPCALL(DUMPNAMES"CCTDMP",0); 
          GOTO GETNEXT; 
  
 FDLTDMPR:  
          DMPCALL (DUMPNAMES"FDLTDMP",0); 
          GOTO GETNEXT; 
  
 FNATDMPR:  
          DMPCALL(DUMPNAMES"FNATDMP",0);
          GOTO GETNEXT; 
  
 AUXTDMPR:  
          DMPCALL(DUMPNAMES"AUXTDMP",3);
          GOTO GETNEXT; 
  
 ETEXTDMPR: 
          DMPCALL(DUMPNAMES"ETEXTDMP",0); 
          GOTO GETNEXT; 
  
 POOLDMPR:  
          DMPCALL(DUMPNAMES"POOLDMP",3);
          GOTO GETNEXT; 
  
 RFTDMPR: 
          DMPCALL(DUMPNAMES"RFTDMP",0); 
          GOTO GETNEXT; 
  
 RPADMPR: 
          DMPCALL(DUMPNAMES"RPADMP",0); 
          GOTO GETNEXT; 
  
 RPDMPR:  
          DMPCALL(DUMPNAMES"RPDMP",0);
          GOTO GETNEXT; 
  
 SPBTDMPR:  
          DMPCALL(DUMPNAMES"SPBTDMP",0);
          GOTO GETNEXT; 
  
 GOTOVLY: 
  
          FOR I = 0 STEP 1 UNTIL 7 DO  #PUT PARAMS IN COMMON BLOCK# 
              PARAMC[I] = WORD[I+1];
          GOTO GETNEXT; 
  
 PARAMR:  
  
          FOR I = 0 STEP 1 UNTIL 7 DO  #PUT CARD IMAGE IN COMMON BLOCK# 
              PARAMC[I] = STRING [I]; 
          GOTO GETNEXT; 
  
 PARSERSR:  
          FOR I = 0 STEP 1 UNTIL 7 DO # PUT CARD IMAGE IN COMMON BLOCK #
              PARSCOMWORD[I] = STRING[I]; 
          GOTO GETNEXT; 
  
 INTERCPTR:                  #PRINT OUT DIAGS AS ISSUED#
          CCTINTRDBUG = 1;
          GOTO GETNEXT; 
  
 TABLESTATSR:    # PRINT OUT TABLE USAGE STASTISTICS #
  
          CCTDBTBSTATS = TRUE;
          GOTO GETNEXT; 
  
 TIMERSTATSR:    # PRINT OUT TIMING REPORT #
  
          CCTTIMRPT = TRUE; 
          GOTO GETNEXT; 
 ATEND: 
          WANTED = -1;
          RETRN(CHKFET);
          RETURN; 
          $END
          END    #DEBUG#
          TERM
