mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 08:54:17 +00:00
Upload
Digital Research
This commit is contained in:
79
CONTRIBUTIONS/z80em86/support/fixturbo.pas
Normal file
79
CONTRIBUTIONS/z80em86/support/fixturbo.pas
Normal file
@@ -0,0 +1,79 @@
|
||||
(*************************************************************************)
|
||||
(* *)
|
||||
(* FIXTURBO v1.00 (c) Copyright S.J.Kay 25th April 1995 *)
|
||||
(* *)
|
||||
(* Allows TURBO v2.00a compiled programs to fully access *)
|
||||
(* command line parameters *)
|
||||
(* *)
|
||||
(*************************************************************************)
|
||||
|
||||
{$C-} { turn off ^C and ^S checking }
|
||||
|
||||
const
|
||||
FixDta : array [0..24] of byte =
|
||||
(
|
||||
$C3,$05,$01, { start: jp patch ;skip data }
|
||||
$CD, { db 0cdh ; ? }
|
||||
$AB, { db 0abh ; ? }
|
||||
$21,$80,$00, { patch: ld hl,0080h ;command line }
|
||||
$11,$E7,$1F, { ld de,1fe7h ;string const }
|
||||
$01,$80,$00, { ld bc,0080h ;amount to move }
|
||||
$ED,$B0, { ldir ;move to const }
|
||||
$21,$C9,$1F, { ld hl,1fc9h ;original jump }
|
||||
$22,$01,$01, { ld (start+1),hl ;replace jump }
|
||||
$C3,$00,$01 { jp start ;original jump }
|
||||
);
|
||||
|
||||
var
|
||||
F : file;
|
||||
FleNme : string[10];
|
||||
TstStr : string[10];
|
||||
ComLne : string[127] absolute $0080;
|
||||
ComPrm : string[127];
|
||||
Buffer : array [0..127] of byte;
|
||||
|
||||
|
||||
procedure ShowUsage;
|
||||
begin
|
||||
writeln('FIXTURBO v1.00 (c) Copyright S.J.Kay 25th April 1995');
|
||||
writeln;
|
||||
writeln('Allows TURBO v2.00a compiled programs to fully access');
|
||||
writeln('command line parameters');
|
||||
writeln;
|
||||
writeln('Use:- FIXTURBO FILENAME.COM')
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
writeln;
|
||||
ComPrm := ComLne;
|
||||
while pos(' ', ComPrm) = 1 do
|
||||
delete(ComPrm, 1, 1);
|
||||
if ComPrm <> '' then
|
||||
begin
|
||||
assign(F, ComPrm);
|
||||
reset(F);
|
||||
seek(F, ($1FE7 - $100) div 128);
|
||||
blockread(F, Buffer, 1);
|
||||
move(Buffer[($1FE7 - $100) mod 128], TstStr, sizeof(TstStr));
|
||||
if TstStr = 'PARAMETERS' then
|
||||
begin
|
||||
seek(F, 0);
|
||||
blockread(F, Buffer, 1);
|
||||
if (Buffer[1] = $C9) and (Buffer[2] = $1F) then
|
||||
begin
|
||||
move(FixDta, Buffer, sizeof(FixDta));
|
||||
seek(F, 0);
|
||||
blockwrite(F, Buffer, 1);
|
||||
close(F);
|
||||
writeln(ComPrm, ' program now modified')
|
||||
end
|
||||
else
|
||||
writeln(ComPrm, ' program allready modified')
|
||||
end
|
||||
else
|
||||
writeln(ComPrm, ' program did not contain string ID')
|
||||
end
|
||||
else
|
||||
ShowUsage
|
||||
end.
|
||||
Reference in New Issue
Block a user