home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / turbopas / zindent5.lbr / SYSFILE.IQC / SYSFILE.INC
Text File  |  1986-09-24  |  4KB  |  152 lines

  1.  
  2. (* Include File *****************************************************)
  3. (* SysFile.inc, v. 0544pm, thu, 18.Sep.86, Glen Ellis *)
  4.  
  5. (* from sysline.inc procedure heading
  6. (* SYSFILE(InFileName,IndentNum,Comment,LineCnt,
  7. (*   LenMax,IndentPos,InSourceCnt,InSourceMax);
  8. *)
  9.  
  10. (* included in the core program SYSTEM.PAS as an auxillary module.
  11. (* as an auxillary module to be modified for each application.
  12. (*
  13. (* function:
  14. (*    fetches parameters from text file named SYSFILE.DAT
  15. (*
  16. (* file format:
  17. (*    for INDENT.PAS and FIND.PAS applications
  18. (*    the format is list of FILE.TYP
  19. (*    standard CP/M text file format
  20. (*
  21. (*    for future applications built on the Core Program System.Pas
  22. (*    the format specs will be different.
  23. *)
  24.  
  25.  
  26. (* reads sysfile.dat for list of files, into array *)
  27.  
  28. (* fill array of filenames for operations at core of SYSTEM.PAS loop *)
  29.  
  30. (* format of filenames is 'file.typ' , delimiter is <0D><0A)  *)
  31. (* this is CP/M and MSDOS text file standard *)
  32.  
  33. (*-------------------------------*)
  34.  
  35. BEGIN (* proc *)
  36.    
  37.    (* sent by calling main module *)
  38.    (* SysInFilename := SysPgmName; *)
  39.    
  40.    (*$I-*);
  41.    ASSIGN( SysInFile, SysInFilename );
  42.    RESET( SysInFile );
  43.    pIOcheck( SysIOcheck );
  44.    (*$I+*);
  45.    
  46.    (* local I/O check to capture the IO flag from pIOcheck *)
  47.    
  48.    (*-------------------------*)
  49.    (* NO I/O Err, do the routine *)
  50.    If not IOerr then
  51.    begin
  52.       
  53.       (* tracer for user *)
  54.       IF SysUserTrace then
  55.       writeln('-------> SysFile.Inc  Reading ',SysInFileName);
  56.       
  57.       IF SysPgmTrace then delay(1000);
  58.       
  59.       SysCmdUser := false; (* disable User entry *)
  60.       SysCmdUserFile := false;
  61.       SysCmdUserParm := false;
  62.       
  63.       SysInSourceMax := 0;
  64.       
  65.       WHILE not eof(SysInFile) do
  66.       begin
  67.          
  68.          (* inc tail-end counter *)
  69.          SysInSourceMax := SysInSourceMax + 1;
  70.          
  71.          (* fetch line *)
  72.          readln(SysInFile,SysInSource[SysInSourceMax]);
  73.          
  74.          (* filename(1) of "?" will enable user entry of parameters *)
  75.          IF SysInSource[SysInSourceMax] = '?' then
  76.          begin
  77.             SysCmdUserParm := true ; (* enable User entry of parms *)
  78.             SysInSourceMax := SysInSourceMax-1; (* repeat the fetch *)
  79.          end;
  80.          (**)
  81.          
  82.       end; (* while *)
  83.       
  84.       writeln;
  85.       
  86.       CLOSE( SysInFile );
  87.       pIOcheck( SysIOcheck );
  88.       
  89.    end; (* not IOerror *)
  90.    
  91.    
  92.    (* error recovery *)
  93.    IF IOerr then
  94.    begin
  95.       
  96.       (* lock the CORE *)
  97.       SysCmdFile := false;
  98.       
  99.       SysInFileName := '?';  (* enable SysUser module *)
  100.       
  101.       IF SysUserTrace then
  102.       begin
  103.          writeln;
  104.          writeln('-----------------------------------------');
  105.          writeln(SysPgmName,' with filename list  not found');
  106.          writeln('SysCmdFile  = ',syscmdfile);
  107.          writeln('User Entry / Documentation available');
  108.          IF SysPgmTrace then delay(1000);
  109.       end;
  110.       
  111.    end;
  112.    (* default settings manually inserted
  113.    (* required, originally for INDENT.PRO called by KEYWORD.PRO,
  114.    (* Indent.pro written into STRING.INC
  115.    (* default output is for a running dBASE/Pascal command file
  116.    (*         with indents and comments, but no line numbering.
  117.    (*
  118.    (* these defaults are to be modified for each application
  119.    (* incorporating the System.Pas CORE module.
  120.    *)
  121.    
  122.    (* Array Has Been Loaded, clean the vars   *)
  123.    SysInFilename  := '        ';
  124.    SysOutFilename := '        ';
  125.    SysInSourceCnt := 0 ;
  126.    (* InSourceMax installed above *)
  127.    
  128.    (* from sysFILE method : Default Operation Modes *)
  129.    SysIndent    := true;    (* enable indent procedure        *)
  130.    SysComment   := true;    (* enable comment line write      *)
  131.    SysLineCnt   := false;   (* disable line number write      *)
  132.    SysVertiate  := false;   (* disable vertical markers       *)
  133.    
  134.    (* Default Operating Parameters *)
  135.    SysIndentNum := 3;       (* standard, useful figure        *)
  136.    SysIndentPos := 0;       (* always                         *)
  137.    SysLenMax    := 79;      (* print page                     *)
  138.    
  139.    
  140. END; (* proc *)
  141.  
  142. (********************************************************************)
  143. (*:B:0*)
  144. (*:B:0*)
  145. (*:B:0*)
  146. 
  147.    
  148. END; (* proc *)
  149.  
  150. (********************************************************************)
  151. (*:B:0*)
  152. (*:B