home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
caddy.zip
/
CADDY.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1988-03-08
|
4KB
|
132 lines
{$M 17000,0,0}
program caddy;
uses Crt, Dos;
const
F1: boolean = false;
F1KEY = $3B;
var
ScreenBuf: array[1..16384] of byte;
OldInt9: pointer;
Signature: pointer;
Option: string;
procedure GolfHelpProc(flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:word);
Interrupt;
var
counter: word;
MemPtr: integer;
ch: char;
begin
INLINE(
$9C/ {PUSHF}
$E4/$60/ {IN AL,$60 ; read keyboard port}
$3C/<F1KEY/ {COM AL,<F1KEY}
$74/$04/ {JZ Delete_Pressed}
$EB/$06/ {CONTINUE IF NOT}
(* Set F1 to true if F1 key pressed *)
{Delete_Pressed}
$C6/$06/>F1/$01); {SET F1 TO TRUE}
if F1 then
begin
MemPtr:= $0000;
for counter := 1 to 16384 do
begin
ScreenBuf[counter] := Mem[$B800:MemPtr];
MemPtr := MemPtr + 1;
end {for};
GotoXY(5,1);
write('Online Caddy by Michael Taylor ');
GotoXY(5,2);
write(' ');
GotoXY(5,3);
write(' Full Short Dotted ');
GotoXY(5,4);
write(' ');
GotoXY(5,5);
write('Driver 265 250 141 ');
GotoXY(5,6);
write('3 Wood 242 232 129 ');
GotoXY(5,7);
write('4 Wood 231 216 116 ');
GotoXY(5,8);
write('2 Iron 221 207 115 ');
GotoXY(5,9);
write('3 Iron 204 190 108 ');
GotoXY(5,10);
write('4 Iron 198 187 97 ');
GotoXY(5,11);
write('5 Iron 185 170 93 ');
GotoXY(5,12);
write('6 Iron 175 159 87 ');
GotoXY(5,13);
write('7 Iron 165 150 75 ');
GotoXY(5,14);
write('8 Iron 147 136 65 ');
GotoXY(5,15);
write('9 Iron 136 122 57 ');
GotoXY(5,16);
write('P Wedge 120 113 52 ');
GotoXY(5,17);
write(' ');
GotoXY(5,18);
Delay(8000);
MemPtr := $0000;
for counter := 1 to 16384 do
begin
Mem[$B800: MemPtr] := ScreenBuf[counter];
MemPtr := MemPtr + 1;
end {for};
end {if};
Inline(
$9D/ {POPF ;Restore the Flags}
$A1/>OldInt9+2/ {MOV AX,[>OldInt9+2] ; Old vector set to AX}
$8B/$1E/>OldInt9/ {MOV BX,[>OldInt9] ; Old vector ofset to BX}
$87/$5E/$0E/ {XCHG BX,[BP+$0E] ;Swap ofs w/ ret address}
$87/$46/$10/ {XCHG AX,[BP+$10] ;Swap seg w/ ret address}
$89/$EC/ {MOV SP,BP ; Undo procedure's entry code}
$5D/ {POP BP}
$07/ {POP ES}
$1F/ {POP DS}
$5F/ {POP DI}
$5E/ {POP SI}
$5A/ {POP DX}
$59/ {POP CX}
$CB); {RETF ; Jump to Old Vector}
end {procedure};
Begin
GetIntVec(67, Signature);
if Signature = pointer($ffffffff) then
begin
writeln('Caddy is already installed.');
Halt;
end;
DirectVideo := false;
Option := ParamStr(1);
{$V+}
if (Option = 'off') then
{$V-}
begin
SetIntVec(9, OldInt9);
end
else
begin
GetIntVec(9, OldInt9);
SetIntVec(9, @GolfHelpProc);
Signature := pointer($ffffffff);
SetIntVec(67, Signature);
writeln('Online Caddie');
writeln(' ver 1.1 ');
writeln(' by ');
writeln('Michael Taylor');
writeln(' ');
writeln('When running Mean-18, press F1 to activate Caddie');
Keep(0);
end;
End.