home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Jason Aller Floppy Collection
/
315.img
/
RS2.ZIP
/
SEN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-10-01
|
3KB
|
126 lines
{$M $1000,0,0 } { 2K stack, no heap }
USES Crt, Dos;
CONST
KEY1 = 87 ; { F11 }
VAR
KbdIntVec : PROCEDURE ;
TIMEINTVEC : PROCEDURE ;
REG : REGISTERS;
PSP : WORD ABSOLUTE $0:$EF*4;
INT_TABLE : ARRAY[1..1024] OF BYTE ABSOLUTE $0:$0;
INT_SAVE : ARRAY[1..1024] OF BYTE ;
INT_SAVE1 : ARRAY[1..1024] OF BYTE ;
INV : WORD ;
TCW : FILE ;
MODE : BYTE ;
PAGE : BYTE ;
NO : BYTE ;
SEGS : WORD ;
OFFS : WORD ;
BUSY : BOOLEAN ;
SAFE : ^BYTE ;
WORK : BOOLEAN ;
SCREEN : ^BYTE ;
I : INTEGER ;
TEMP : BYTE ;
SIZE : WORD ;
{$F+}
PROCEDURE GetGraph ; INTERRUPT ;
VAR
INT_SAVE2 : ARRAY[1..1024] OF BYTE ;
BEGIN
INLINE ( $9C ) ;
KBDINTVEC ;
MOVE(INT_SAVE,INT_TABLE,1024);
WORK := FALSE ;
SEGS:=$1200; OFFS:=$0;
REPEAT
INC(OFFS);
IF MEM[SEGS:OFFS ] = $83 THEN
IF MEM[SEGS:OFFS+1] = $3E THEN
IF MEM[SEGS:OFFS+2] = $F0 THEN
IF MEM[SEGS:OFFS+3] = $07 THEN
IF MEM[SEGS:OFFS+4] = $00 THEN
IF MEM[SEGS:OFFS+5] = $75 THEN
IF MEM[SEGS:OFFS+6] = $0B THEN
WORK:=TRUE;
UNTIL (WORK) OR (OFFS=$FFFA);
IF WORK THEN
BEGIN
WRITE(^G^G^G);
MEM[SEGS:OFFS ] := $C7 ;
MEM[SEGS:OFFS+1] := $06 ;
MEM[SEGS:OFFS+2] := $F0 ;
MEM[SEGS:OFFS+3] := $07 ;
MEM[SEGS:OFFS+4] := $00 ;
MEM[SEGS:OFFS+5] := $00 ;
MEM[SEGS:OFFS+6] := $90 ;
END
ELSE
WRITE(^G);
MOVE(INT_SAVE1,INT_TABLE,1024);
END ;
PROCEDURE NEWINT8 ; INTERRUPT ;
BEGIN
IF PORT[$60] = KEY1 THEN
BEGIN
MOVE(INT_TABLE,INT_SAVE1,1024);
BUSY := TRUE ;
SEGS := MEMW[ $0:9*4+2 ] ;
OFFS := MEMW[ $0:9*4 ] ;
@KBDINTVEC := PTR ( SEGS,OFFS ) ;
MEMW[ $0:9*4+2 ] := SEG ( GETGRAPH ) ;
MEMW[ $0:9*4 ] := OFS ( GETGRAPH ) ;
write(^g);
END ;
INLINE ($9C);
TIMEINTVEC ;
END ;
{$F-}
{======================== M A I N *** P R O G R A M =====================}
BEGIN
IF MEMW[$0:254 SHL 2] <> $1234 THEN
BEGIN
REG.AH := $34 ;
MSDOS ( REG ) ;
SAFE := PTR ( REG.ES,REG.BX ) ;
BUSY := FALSE ;
WORK := FALSE ;
NO := 0 ;
PSP := PREFIXSEG ;
MEMW[$0:254 SHL 2] := $1234 ;
GetIntVec($9,@KbdIntVec );
GetIntVec($8,@TIMEINTVEC);
MEMW[$0:252 SHL 2] := MEMW[$0:$8 SHL 2] ;
MEMW[$0:252 SHL 2+2] := MEMW[$0:$8 SHL 2+2] ;
MOVE(INT_TABLE,INT_SAVE,1024);
SetIntVec($8,Addr(NEWINT8));
WRITELN (#7,'Cracker of RS2 Installed !!') ;
WRITELN ('Press F11 to crack RS2 (at password screen) .....');
WRITELN ('**** Program design by Leu S.S. ****');
delay(4000);
KEEP ( DosExitCode ) ;
END
ELSE
BEGIN
MEMW[$0:$8 SHL 2]:= MEMW[$0:252 SHL 2] ;
MEMW[$0:$8 SHL 2+2]:= MEMW[$0:252 SHL 2+2] ;
MEMW[$0:254 SHL 2] := $FFFF ;
INV := MEMW [PSP:$2C];
REG.ES := INV ;
REG.AH := $49 ;
MSDOS ( REG ) ;
REG.ES := psp ;
REG.AH := $49 ;
MSDOS ( REG ) ;
WRITELN ( #7,'Cracker of RS2 Removed !!') ;
END ;
END .