home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* MERKER.PAS *)
- (* TSR-Routine, die es ermöglicht, im Turbo Pascal-Edi- *)
- (* tor Sprungmarken für die Quellcode-Bearbeitung zu *)
- (* setzen. *)
- (* <c> 1988 by Johannes Kiefer & PASCAL International *)
-
- PROGRAM merker;
-
- {$C- }
- {$I REGS8088.INC }
- {$I SCAN.INC}
-
- CONST
- TSR_Int = $60;
- Regs : Regs8088_ = (Ax:0;Bx:0;Cx:0;Dx:0;Bp:0;Si:0;Di:0;
- Ds:0;Es:0;Flags:0);
- TSRDseg : INTEGER = 0;
- TSRSseg : INTEGER = 0;
- DosSeg : INTEGER = 0;
- TSR_InUse : BOOLEAN = FALSE;
- TSR_IntIP : INTEGER = 0;
- TSR_IntCs : INTEGER = 0;
- StackSize : INTEGER = 0;
-
- VAR
- TSR_Char : INTEGER; (* Änderung !! auch in *)
- (* INTERRPT.INC *)
- SaveRegs : Regs8088_; (* aus Ah AX machen *)
- HalfRegs : Regs8088_ ABSOLUTE Regs;
- TSR_Terminate: BOOLEAN;
- Segm,Offs : INTEGER;
-
- {$I MAKEINT.INC }
- {$I REINSTAL.INC }
- {$I MERKER.INC }
- {$I INTERRPT.INC }
-
- BEGIN
- TSR_InUse := FALSE; TSR_Terminate := FALSE;
- TSR_Char := ALT_M; (* Tastenkombination Alt+M *)
- TSRDseg := Dseg; (* die Routine *)
- TSRSseg := Sseg;
- Segm := 0;
- IntGet(TSR_Int,Segm,Offs);
- IF Segm <> 0
- THEN BEGIN
- WriteLn ('MERKER ist deaktiviert');
- Schreibe(TSR_Char);
- Schreibe(0);
- END
- ELSE BEGIN
- IntGet (IntKeyBoard,Segm,Offs);
- IntSet (TSR_Int,Segm,Offs);
- IntSet (IntKeyBoard,Cseg,OFS(Interrpt));
- TSR_IntIP := MemW[0:TSR_Int*4];
- TSR_IntCs := MemW[0:TSR_Int*4+2];
- WriteLn ('MERKER <c> 1988 by Johannes Kiefer ',
- '& PASCAL INT.');
- WriteLn;
- WriteLn ('MERKER installiert! Aktivieren mit',
- ' Alt-M... ');
- WriteLn (' zum deaktivieren nochmals',
- ' aufrufen.');
- MakeResident;
- END;
- END.
-