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 }