*DECK TMDTPGN 
USETEXT TENVIRN 
USETEXT TOPTION 
USETEXT TREPORT 
USETEXT TRPTLST 
USETEXT TXSTD 
      PROC TMDTPGN; 
  
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     STCOL                        STORE *IN COLUMN*                   #
#     STDATE                       STORE *DATE*                        #
#     STDEFT                       STORE DEFAULT LINE + COLUMN POSITION#
#     STLINE                       STORE *AT LINE*                     #
#     STPGNUM                      STORE *PAGE-NUMBER*                 #
#     STRECPL                      STORE *AT RECAP LINE*               #
#     STTAB                        STORE *IN TAB*                      #
#     STTIME                       STORE *TIME*                        #
#     STTITLN                      STORE *AT TITLE LINE                #
#     TSDEFT                       CHECK IF WORD WAS PART OF DIRECTIVE #
#                                                                      #
#----------------------------------------------------------------------#
  
      BEGIN 
  
       DEF DFTRPWD #O"40000000000001000000"#;  #DEFAULT VALUE FOR 
                                                REPORTLIST WORD 1,
                                                BEYOND IS ON, 
                                                LINE NB IS 1# 
         DEF DFTRPWD2 #O"04010000000000000000"#;
  
  
      XREF PROC DIAG;              # ISSUE DIAGNOSTIC MESSAGE TO USER  #
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
  PROC REPORTENT (CLTYPE,LEVELNO,HEADARRAY,ENTYPE,LENGTHCHAR);
  BEGIN                                                                 001180
      ITEM CLTYPE, LEVELNO, ENTYPE, LENGTHCHAR; 
      ARRAY HEADARRAY [1:1];                                            001220
         ITEM HEDFIRST I(0,24,12),                                      001230
              HEDLAST  I(0,36,12);                                      001240
      IF REPORTINDEX GQ MAXREPORT                                       001250
        THEN                                                             PAGESYN
          BEGIN                                                          PAGESYN
          STDNO;                                                         PAGESYN
          END                                                            PAGESYN
                                                                         PAGESYN
      IF HEDFIRST[1] EQ 0 
         THEN  HEDFIRST[1] = REPORTINDEX;                               001280
      HEDLAST[1] = REPORTINDEX;                                         001290
      P<REPORTLIST> = AREPORTLIST;
       IF CLTYPE NQ 0  THEN 
         CALLTYPE[REPORTINDEX] = CLTYPE;
      IF LEVELNO NQ 0  THEN 
        LEVEL[REPORTINDEX] = LEVELNO; 
       LINENUMBER[REPORTINDEX] = XLINE;                                 001320
      HEADPOINTER[REPORTINDEX] = LOC(HEADARRAY);                        001330
      IF ENTYPE NQ 0  THEN
         TYPENTRY [REPORTINDEX] = ENTYPE; 
      IF LENGTHCHAR NQ 0  THEN
      CHARLENGTH[REPORTINDEX] = LENGTHCHAR;                             001360
      XINT = (XCOLUMN + 9) / 10  - 1; 
      TOCHAR[REPORTINDEX] = XCOLUMN - 10*XINT;
      IF ENTYPE EQ 0  OR ENTYPE GQ 4
         THEN XINT = XINT + LOC(FORMATDLINE); 
      TOADDRESS[REPORTINDEX] = XINT;
      REPORTINDEX = REPORTINDEX + 1 ; 
            REPORTWORD1[REPORTINDEX]=DFTRPWD; 
              REPORTWORD2[REPORTINDEX] = DFTRPWD2;
      STDYES;                                                            PAGESYN
      END                                                               001410
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STCOL;
   PROC STCOL;                                                          000520
  BEGIN                                                                 000525
      XCOLUMN = ICWI[5];
      IF (XCOLUMN + 9) GR MAXCOL   # IF WONT FIT IN MAXIMUM PAGE SIZE  #
        OR XCOLUMN LS 1 
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
        DIAG(107,ICW[0],(MAXCOL - 9));  # COLUMN NO. OUTSIDE LIMITS    #
        STDNO;                                                           PAGESYN
                                                                         PAGESYN
        END                                                              PAGESYN
      IF NOT FULLSYNTX                                                   PAGESYN
        THEN                                                             PAGESYN
        BEGIN                                                            PAGESYN
        STDYES;                                                          PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
      IF (XCOLUMN + 9) GR PSCOLUMN # IF WONT FIT IN THIS PAGE SIZE     #
      THEN
        BEGIN 
        DIAG(614,"COLUMN");        # FIELD EXTENDS BEYOND PAGE SIZE    #
        STDNO;
        END 
  
      STDYES;                                                            PAGESYN
   END                                                                  000570
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STDATE; 
   PROC STDATE;                                                         000990
  BEGIN                                                                 001000
      IF NOT FULLSYNTX                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
        STDYES;                                                          PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
 # SET UP DEFAULTS IF REQUIRED #
      IF XLINE EQ -1  THEN XLINE = DATLINE; 
      IF XCOLUMN EQ - 1  THEN BEGIN 
        XCOLUMN = DATCOL; 
        IF (XCOLUMN + 9) GR PSCOLUMN THEN  # IF WONT FIT IN MAX PG SZE #
          XCOLUMN = PSCOLUMN - 19;
        # LEAVE IF NOT AT LEAST 20 COLUMNS IN PAGE #
        IF XCOLUMN LQ 0                                                  PAGESYN
        THEN                                                             PAGESYN
          BEGIN                                                          PAGESYN
          DIAG(615, "DATE");       # DEFAULT DATE WONT FIT IN PAGE     #
          STDYES;                                                        PAGESYN
          END                                                            PAGESYN
      END 
      REPORTENT(6, 0, DATEHEAD, 1, 10);                                  PAGESYN
      END                                                               001030
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STDEFT; 
  PROC STDEFT;
 BEGIN
      XLINE = -1; 
      XCOLUMN = -1; 
      STDNO;
 END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STLINE; 
   PROC STLINE;                                                         000190
  BEGIN                                                                 000195
      XLINE = ICWI[5];
      IF NOT FULLSYNTX                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN 
        IF XLINE GR MAXLINE        # IF LINE NUMBER TOO LARGE          #
          OR XLINE LS 1            # OR LINE NUMBER TOO SMALL          #
        THEN
          BEGIN 
          DIAG(106,ICW[0],MAXLINE);  # DIAG LINE NO. OUTSIDE LIMITS    #
          STDNO;                   # BAD RETURN                        #
          END 
  
        STDYES;                    # GOOD RETURN                       #
        END 
                                                                         PAGESYN
        IF XLINE GR PSLINE THEN 
        BEGIN DIAG(153,PSLINE); STDNO; END
      STDYES;                                                            PAGESYN
   END                                                                  000240
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STPGNUM;
   PROC STPGNUM;                                                        001110
  BEGIN                                                                 001120
      IF NOT FULLSYNTX                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
        STDYES;                                                          PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
 # SET UP DEFAULTS IF REQUIRED #
      IF XLINE EQ -1  THEN XLINE = PGNLINE; 
      IF XCOLUMN EQ - 1  THEN BEGIN 
        XCOLUMN = PGNCOL; 
        IF (XCOLUMN + 9) GR PSCOLUMN # IF WONT FIT IN MAX PAGE SIZE    #
        THEN
          BEGIN 
          XCOLUMN = PSCOLUMN -9;
          END 
  
        # LEAVE IF NOT AT LEAST 10 COLUMNS IN PAGE #
        IF XCOLUMN LQ 0                                                  PAGESYN
        THEN                                                             PAGESYN
          BEGIN                                                          PAGESYN
          DIAG(615, "PAGE-NBR");   # DEFAULT PAGE-NUMBER WONT FIT PAGE #
          STDYES;                                                        PAGESYN
          END                                                            PAGESYN
                                                                         PAGESYN
      END 
      REPORTENT(8, 0, PGNMHEAD, 1, 10);                                  PAGESYN
      END                                                               001150
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STRECPL;
   PROC STRECPL;                                                        000670
  BEGIN                                                                 000675
      XLINE = 0;                   # FLAG FOR NON-FULLSYNTX MODE       #
      IF NOT FULLSYNTX
      THEN
        BEGIN 
        STDNO;
        END 
  
          P<REPORTLIST> = AREPORTLIST;
      XLINE = LINENUMBER[RECFIRST[1]];
        IF RECWORD[1] NQ 0                                               PAGESYN
          AND NOT BEYOND[RECFIRST[1]]                                    PAGESYN
        THEN                                                             PAGESYN
        BEGIN                                                            PAGESYN
          STDNO;                                                         PAGESYN
          END                                                            PAGESYN
        DIAG(98);                                                        PAGESYN
      XLINE = PSLINE;    # SET DEFAULT TO LAST LINE # 
      STDNO;                                                             PAGESYN
   END                                                                  000720
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STTAB;
   PROC STTAB;                                                          000870
  BEGIN                                                                 000880
      ITEM TEMPINT;                                                     000910
      XCOLUMN = 0;                 # FLAG FOR NON-FULLSYNTX MODE       #
      IF NOT FULLSYNTX                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
        STDYES;                                                          PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
      TEMPINT = TABCOL(ICWI[5]);
      IF TEMPINT EQ -1                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
          DIAG(116);               # TAB <C> NOT SPECIFIED             #
        STDNO;                                                           PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
      IF (TEMPINT + 9) GR PSCOLUMN # IF WONT FIT IN THIS PAGE SIZE     #
      THEN
        BEGIN 
        DIAG(614,"TAB");           # FIELD EXTENDS BEYOND PAGE SIZE    #
        STDNO;
        END 
  
      XCOLUMN = TEMPINT;                                                000950
      STDYES;                                                            PAGESYN
      END                                                               000970
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STTIME; 
      PROC STTIME;                                                      001050
  BEGIN                                                                 001060
      IF NOT FULLSYNTX                                                   PAGESYN
      THEN                                                               PAGESYN
        BEGIN                                                            PAGESYN
        STDYES;                                                          PAGESYN
        END                                                              PAGESYN
                                                                         PAGESYN
 # SET UP DEFAULTS IF REQUIRED #
      IF XLINE EQ -1  THEN XLINE = TIMLINE; 
      IF XCOLUMN EQ - 1  THEN BEGIN 
        XCOLUMN = TIMCOL; 
        IF (XCOLUMN + 9) GR PSCOLUMN # IF WONT FIT IN MAX PAGE SIZE    #
        THEN
          BEGIN 
          XCOLUMN = PSCOLUMN - 29;
          END 
  
        # LEAVE IF NOT AT LEAST 30 COLUMNS IN PAGE #
        IF XCOLUMN LQ 0                                                  PAGESYN
        THEN                                                             PAGESYN
          BEGIN                                                          PAGESYN
          DIAG(615, "TIME");       # DEFAULT TIME WONT FIT IN PAGE     #
          STDYES;                                                        PAGESYN
          END                                                            PAGESYN
                                                                         PAGESYN
      END 
      REPORTENT(7, 0, TIMEHEAD, 1, 10);                                  PAGESYN
      END                                                               001090
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC STTITLN;
   PROC STTITLN;                                                        000790
  BEGIN                                                                 000795
      XLINE = 0;                   # FLAG FOR NON-FULLSYNTX MODE       #
      IF NOT FULLSYNTX
      THEN
        BEGIN 
        STDNO;
        END 
  
          P<REPORTLIST> = AREPORTLIST;
      XLINE = LINENUMBER[TITFIRST[1]];
      IF NOT FULLSYNTX OR (TITWORD[1] NQ 0)  THEN STDNO;
      DIAG(99);                                                          PAGESYN
      XLINE = 1;         # SET DEFAULT TO FIRST LINE #
      STDNO;                                                             PAGESYN
   END                                                                  000830
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC TSDEFT; 
      PROC TSDEFT;
      BEGIN 
      IF XLINE NQ -1               # IF A LINE NUMBER SPECIFIED        #
        OR XCOLUMN NQ -1           # OR A COLUMN NUMBER SPECIFIED      #
      THEN
        BEGIN 
        STDNO;                     # NOT YET DONE WITH THIS SYNTAX     #
        END 
  
      STDYES;                      # NO OPTIONS SPECIFIED... ALL DONE  #
      END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
      END 
      TERM
