home *** CD-ROM | disk | FTP | other *** search
- # include <dos.h>
- # include <mem.h>
- # include <process.h>
- # include <conio.h>
-
- static void interrupt (*old_vec_10) (void);
-
- static char enable_st = 1;
-
- extern unsigned _heaplen = 512;
- extern unsigned _stklen = 1024;
-
- static void interrupt vec_10 (void)
- {
- unsigned PSP;
-
- char huge *p;
-
- static char mask [] = { 0xff, 0x0e, 0xc6, 0x1e };
-
- static char mask_st [] = { 0x74, 0x2c, 0x6a, 0x00 };
-
- enable ();
-
- _AH = 0x62; geninterrupt (0x21);
-
- PSP = _BX;
-
- for (p = MK_FP (PSP,0x100);
- p < (char huge *)MK_FP (*(unsigned far *)MK_FP (0,0x413) * 0x40,0); p++)
- if (*p == mask [0])
- {
- char huge *p1 = p + 1;
-
- register unsigned i = 1;
-
- while (i < sizeof (mask) && *p1++ == mask [i++]) ;
-
- if (i == sizeof (mask))
- {
- *p++ = 0x90; *p++ = 0x90; *p++ = 0x90; *p++ = 0x90;
-
- break;
- }
- }
-
- if (enable_st)
- for (p = MK_FP (PSP,0x100);
- p < (char huge *)MK_FP (*(unsigned far *)MK_FP (0,0x413) * 0x40,0); p++)
- if (*p == mask_st [0])
- {
- char huge *p1 = p + 1;
-
- register unsigned i = 1;
-
- while (i < sizeof (mask_st) && *p1++ == mask_st [i++]) ;
-
- if (i == sizeof (mask_st))
- {
- *p = 0xeb;
-
- break;
- }
- }
-
- setvect (0x10,old_vec_10);
-
- *(unsigned far *)MK_FP (_SS,_BP + 18) -= 2;
- }
-
- void main (int ac, char **av)
- {
- if (ac == 2 && (av [1][0] == '-' || av [1][0] == '/') &&
- (av [1][1] == 'g' || av [1][1] == 'G'))
- enable_st = 0;
-
- cputs ("\r\nBeer Trainer (C) 1994 Dangerous Software\r\n\n");
-
- if (enable_st) cputs ("(to disable God Mode run TRAIN -G)\r\n\n");
-
- sleep (3);
-
- cputs ("Have a nice beer!\r\n\n");
-
- sleep (3);
-
- old_vec_10 = getvect (0x10);
-
- setvect (0x10,vec_10);
-
- spawnl (P_WAIT,"beer.exe","beer.exe",NULL);
-
- setvect (0x10,old_vec_10);
- }
-