Program SamplePatch;

{
 This program demonstrates how to use the program
  PATCH.COM to enable a Turbo Pascal program to
  access the CP/M command tail.

 Background: the Z80 versions of Turbo Pascal trash all
  but the first 32 bytes of the CP/M command tail in a
  .COM file.  Eliot Moss wrote PATCH.PAS to move the
  command tail to high memory; his program will repair
  any .COM file generated with Turbo version 2.0.  (The
  8088 versions do not share this problem since MS-DOS
  implements the command tail differently.  Also, the
  addresses are different in Z80 version 1.0.)

 Usage: write your .PAS source file the way you normally
  would.  Add the following lines:

   In the 'type' section:
     PatchString = string[127];

   In the 'var' section:
     CmdPtr  : ^PatchString absolute $DB;
     CmdTail : string[127];

   As the very first line of your main program:
     CmdTail := CmdPtr^;

 Assume your program source is FOO.PAS.  Compile your
  program into FOO.COM.  Exit from Turbo and type:
    PATCH FOO

 To use your file, type:  FOO these are the args to foo

 Written by   : Ferd S. Brundick
 Date written : 20 Jan 85
}

type
 PatchString = string[127];

var
 CmdPtr  : ^PatchString absolute $DB;
 CmdTail : string[127];

begin  { program SamplePatch }

{ copy CP/M command tail to a safe location }
 CmdTail := CmdPtr^;

{ display command tail to show that it is intact }
 writeln('Your command tail was:');
 writeln('|', CmdTail, '|')

end.  { program SamplePatch }