{$M 4096,0,0}
USES DOS;

CONST MAX = 200;
      OPTIONS = '/uW:\;P:\DPMI /I..';

VAR files   : ARRAY[1..MAX] OF STRING[8];
    r       : SearchRec;
    i, j, k : INTEGER;
    pc      : STRING;

BEGIN
  i := 0;
  FindFirst('int\*.pas', AnyFile, r);
  WHILE DOSError=0 DO BEGIN
    j := Pos('.', r.Name);
    IF j<>0 THEN BEGIN
      Inc(i);
      IF i>MAX THEN BEGIN
        Writeln('Too many files.');
        Halt(1);
      END;
      files[i] := Copy(r.name, 1, j-1);
    END;
    FindNext(R);
  END;
  pc := FSearch('tpc.exe', GetEnv('PATH'));
  IF pc='' THEN BEGIN
    Writeln('tpc.exe not found.');
    Halt(1);
  END;
  ChDir('int');
  FOR j:=1 TO i DO BEGIN
    Writeln(files[j]);
    SwapVectors;
    Exec(pc, ' /m ' + OPTIONS + ' ..\' + files[j]);
    SwapVectors;
    k := DOSExitCode;
    IF k<>0 THEN BEGIN
      Writeln('---> Program exited with ', k, ' exit code.');
      Chdir('..');
      Halt(k);
    END;
  END;
  Chdir('..');
END.
