home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / sigmv062.ark / GOLBALS.TOP < prev    next >
Text File  |  1984-04-29  |  5KB  |  131 lines

  1. {++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
  2. {+  GLOBALS FOR KFORMAT Text Output Processor.        +}
  3. {++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
  4.  
  5. CONST
  6.   BACKSPVAL = 8;
  7.   COMNDFLAG = '.';
  8.   DEFAULT   = 255;    { The default length such that all strings   }
  9.             { do not have to be 255 chars in length      }
  10.   DQUOTE    = '"';
  11.   EOSVAL    = 0;    { same as a null value    }
  12.   FOMARGDEF = 3;    { default footer margin }
  13.   HEMARGDEF = 3;    { default header margin }
  14.   HUGE        = 32000;    { not quite infinity }
  15.   MAXBUF    = 255;    { maximum allowed string length }
  16.   MINUS     = '-';
  17.   maxargc   = 5;
  18.   null        = 0;
  19.   PAGENUM   = '#';
  20.   PAGWIDDEF = 60;    { default page width }
  21.   PAGLENDEF = 66;    { default page length }
  22.   PLUS        = '+';
  23.   SMAX        = 255;    { MAXIMUM ALLOWED STRING LENGTH }
  24.   SPACE     = ' ';
  25.   SQUOTE    = '''';
  26.  
  27.  
  28. TYPE
  29.   byte      = 0..255;
  30.   int      = INTEGER;
  31.   DSTRING = STRING DEFAULT;
  32.   MSTRING = STRING SMAX;{ Max string }
  33.   S$0      = string  0 ;
  34.   S$255   = string SMAX ;{ Max string }
  35.   CMDVAL  = packed array [1..2] of char;    { *** 3-81 *** }
  36.   BUFFER  = MSTRING;
  37.  
  38.   CMDSET =
  39.       (CMD0,{ command set lower limit              }
  40.        bp,  {<+,-><n> Begin Page & set page number      }
  41.        br,  {          BReak, finish current line      }
  42.        ce,  {<n>      CEnter n lines <DEFAULT=1>      }
  43.        fi,  {          FIll <fill lines but not justify>   }
  44.        fo,  {<text>   FOoter text              }
  45.        he,  {<text>   HEader text              }
  46.        ind, {<+,-><n> INdent n columns              }
  47.        ls,  {<+,-><n> Set Line Spacing              }
  48.        nf,  {          Lines Not Filled <justify OFF>      }
  49.        pl,  {<+,-><n> Page Length n lines          }
  50.        rm,  {<+,-><n> Right margin n columns          }
  51.        sf,  {          Space Fill lines <justify text>      }
  52.        sp,  {<n>      Break and SPace n lines <DEFAULT=1> }
  53.        ti,  {<+,-><n> temporary indent n columns      }
  54.        ul,  {<n>      underline n lines <DEFAULT=1>      }
  55.        UNKN);{command set upper limit, command error flag }
  56.  
  57.  
  58. VAR
  59.   {++++++++++++++++++++++++++++++++++++++++++++}
  60.   {+  VARIABLES USES IN EXTERNAL PROCEDURES.  +}
  61.   {++++++++++++++++++++++++++++++++++++++++++++}
  62.   argc : byte;
  63.   argv : ARRAY [1..maxargc] OF DSTRING;{ * proc STDOPEN * }
  64.   infile,                { * proc STDOPEN * }
  65.   outfile,
  66.   params : byte;
  67.   xeof,     { end of file flag }
  68.   xeoln:BOOLEAN;{ end of line flag }
  69.   ioresult,
  70.   con_wanted,
  71.   printer_wanted : boolean;
  72.  
  73.   EOS,        { holds value of END-OF-STRING character }
  74.   BACKSPACE,    { holds value of back-space         }
  75.   BLANK,    { holds value of space             }
  76.   NEWLINE,    { holds value of END-OF-STRING character }
  77.   TAB        { holds value of tab char         }
  78.     :CHAR;
  79.  
  80.   STDIN,    { standard input file             }
  81.   STDOUT    { standard output file             }
  82.     :TEXT;
  83.  
  84.   spacefill,    { straight left and right      INIT = FALSE    }
  85.   direction,    { control for space filling    INIT = FALSE    }
  86.   fill        { fill if TRUE               INIT = TRUE     }
  87.     :BOOLEAN;
  88.  
  89.   lsval,    { current line spacing           INIT = 1        }
  90.   inval,    { current indent >= 0           INIT = 0        }
  91.   rmval,    { current right margin           INIT = PAGWIDDEF}
  92.   tival,    { current temporary indent     INIT = 0        }
  93.   ceval,    { number of lines to center    INIT = 0        }
  94.   ulval,    { number of lines to underline INIT = 0        }
  95.   spval,    { number of lines to space     INIT = 0        }
  96.   curpag,    { current output page number   INIT = 0        }
  97.   newpag,    { next output page number      INIT = 1        }
  98.   lineno,    { next line to be printed      INIT = 0        }
  99.   plval,    { page length in lines           INIT = PAGLENDEF}
  100.   m1val,    { margin before and inc header INIT = HEMARGDEF}
  101.   m2val,    { margin after header           INIT = 2        }
  102.   m3val,    { margin after last text line  INIT = 2        }
  103.   m4val,    { bottom margin incl footer    INIT = FOMARGDEF}
  104.   bottom    { last text line on page = plval-m3val-m4val   }
  105.     :int;
  106.  
  107.   header,    { top of page title           INIT = NEWLINE  }
  108.   footer    { bottom of page title           INIT = NEWLINE  }
  109.     :BUFFER;
  110.  
  111.   cmdlist    { array used for command decoding           }
  112.     :ARRAY [CMD0..UNKN] of CMDVAL;
  113.  
  114.   outp,     { last char position in output INIT = 0        }
  115.   outw,     { current WIDTH of outbuf      INIT = 0        }
  116.   outwds    { number of words in outbuf    INIT = 0        }
  117.     :int;
  118.  
  119.   inbuf,    { input buffer work area               }
  120.   outbuf    { output buffer work area               }
  121.     :BUFFER;
  122.  
  123.  
  124. {++++++++++++++++++++++++++++++++++++++++++}
  125. {+ COMPILER OPTIONS FOR PASCAL/Z COMPILER +}
  126. {++++++++++++++++++++++++++++++++++++++++++}
  127. {$C-}{ * control-c checking OFF         * }
  128. {$F-}{ * floating point error checking OFF    * }
  129. {$M-}{ * integer mult & divd error checking OFF * }
  130.  
  131.