home *** CD-ROM | disk | FTP | other *** search
- {$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.