% This is MAKEPROG.CF.SYSTEM.TURBO	  as of 02 May 89
%--------------------------------------------------------
% (c) 1988,1989 by J.Schrod.

% Revision 1 was released in November, 1988.
% Revision 2 switched to Turbo Pascal.				    (89-05-02)

%
% Changefile for system dependencies of Turbo-Pascal (V5.0)
% documentation updates (too less...)
% no non-local goto's (=> no global label end_of_MAKEPROG)
% units CRT and DOS are used (???)
% compiler directives
% othercases
% new_line is appended at end (for Compaq DOS 3.3!)
%
% I/O handling is done later
%


@x Limbo
\def\version{1.0}
@y
 \let\maybe=\iffalse
\def\version{1.0, Rev.~2}
@z


@x Limbo
   \centerline{\titlefont The MAKEPROG processor}
@y
   \centerline{\titlefont DOS Changes to the MAKEPROG processor}
@z


@x S 1
@d banner=='This is MAKEPROG, Version 1.0.'
@y
@d banner=='This is MAKEPROG, Version 1.0 (DOS Changes, Rev. 2).'
@z


@x
@d end_of_MAKEPROG = 9999 {go here to wrap it up}
@y
@f uses == const
@z


@x S 2
label end_of_MAKEPROG; {go here to finish}
@y
   uses CRT, DOS ;
@z


   the following change should be ignored after TIE

@x S 3
@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging}
@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging}
@y
@d debug==   {we are debugging \.{MAKEPROG}}
@d gubed==
@z


@x S 4
@<Compiler directives@>=
@{@&@=$D-@> @} {no debug overhead}
@!debug @{@&@=$D+@> @}@+ gubed @; {but turn everything on when debugging}
@y
@<Compiler directives@>=
@{@=$R-,B-,D-,E-,L-,S+,V-@>@}

{ R-  no range checking 		   }
{ B-  boolean evaluation ... short circuit }
{ D-  debug information off		   }
{ E-  emulation off			   }
{ L-  local symbols ... off		   }
{ S+  stack checking ... on		   }
{ V-  var string checking ... relaxed	   }
@z


@x S 7
@d othercases == others: {default for cases not listed explicitly}
@y
@d othercases == else {default for cases not listed explicitly}
@z


@x S 31
procedure jump_out;
begin goto end_of_MAKEPROG;
end;
@y
procedure jump_out;
   begin
   {here files should be closed if the operating system requires it}
   @;@#
   @<Print the job |history|@>;
   halt;
   end;
@z


@x
end_of_MAKEPROG:
   @#
   {here files should be closed if the operating system requires it}
   @;@#
   @<Print the job |history|@>;
@y
   jump_out;
@z


@x S 187
@<Print the job |history|@>=
case history of
spotless: print_nl('(No errors were found.)');
harmless_message: print_nl('(Did you see the warning message above?)');
error_message: print_nl('(Pardon me, but I think I spotted something wrong.)');
fatal_message: print_nl('(That was a fatal error, my friend.)');
end {there are no other cases}
@y
@<Print the job |history|@>=
begin
case history of
   spotless: print_nl('(No errors were found.)');
   harmless_message: print_nl('(Did you see the warning message above?)');
   error_message:
      print_nl('(Pardon me, but I think I spotted something wrong.)');
   fatal_message: print_nl('(That was a fatal error, my friend.)');
   end; {there are no other cases}
new_line;
end
@z