| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- IMPLEMENTATION MODULE InitCompilerMods;
- (*
- * REPERTOIRE
- * Release 1.6
- * By Charles Bradford and Cole Brecheen
- * (c) Copyright 1985-1990 PMI
- * Portland, Oregon
- * All rights reserved
- * (503) 236-1788
- *
- * $Header: D:/logfiles/masters/initcomp.jpv 1.1 03 Dec 1990 22:49:22 coleb $
- *
- *)
- IMPORT ErrorManager;
- IMPORT LowLevel;
- IMPORT Lib;
- IMPORT Storage;
- IMPORT SYSTEM;
- IMPORT VStorage;
- (*
- IMPORT StrEdit;
- IMPORT KbdInput;
- IMPORT IO;
- IMPORT ProcTrace;
- IMPORT SmartScreen;
- IMPORT M2Strings;
- *)
- VAR
- FormerTermProc: PROC;
- PROCEDURE NewTermProc;
- BEGIN
- ErrorManager.DoTermProcs();
- FormerTermProc();
- END NewTermProc;
- PROCEDURE DiagAvail( TheSize: CARDINAL ): BOOLEAN;
- BEGIN
- RETURN (Storage.Available(TheSize));
- END DiagAvail;
- PROCEDURE DiagAlloc( VAR ThePtr: SYSTEM.ADDRESS; TheSize: CARDINAL );
- BEGIN
- Storage.ALLOCATE( ThePtr, TheSize );
- LowLevel.Fill( ThePtr, TheSize, 377C );
- END DiagAlloc;
- PROCEDURE DiagDealloc( VAR ThePtr: SYSTEM.ADDRESS; TheSize: CARDINAL );
- BEGIN
- LowLevel.Fill( ThePtr, TheSize, 377C );
- Storage.DEALLOCATE( ThePtr, TheSize );
- END DiagDealloc;
- PROCEDURE AssignProcs();
- BEGIN
- (* VStorage.DosAvail := DiagAvail;
- VStorage.DosAlloc := DiagAlloc;
- VStorage.DosDealloc := DiagDealloc; *)
- Lib.Terminate( NewTermProc, FormerTermProc );
- IF NewTermProc = FormerTermProc THEN
- ErrorManager.WARN(
- "InitJPI.AssignProcs executed twice; will cause inf loop on exit.");
- END;
- END AssignProcs;
- (*
- PROCEDURE AddToCallChain();
- BEGIN
- INC( CallRow );
- SmartScreen.WriteAt( 1, CallRow, ProcTrace.Get_Name() );
- END AddToCallChain;
- PROCEDURE RemoveFromCallChain();
- VAR
- TmpStr: ARRAY [0..31] OF CHAR;
- BEGIN
- StrEdit.AssignStr( ProcTrace.Get_Name(), TmpStr );
- SmartScreen.ClearPart( 1, CallRow, M2Strings.Length(TmpStr), CallRow );
- DEC( CallRow );
- END RemoveFromCallChain;
- PROCEDURE ErrorBox( TheMessage: ARRAY OF CHAR ): BOOLEAN;
- VAR
- dumkey: CARDINAL;
- dummy: ARRAY [0..255] OF CHAR;
- BEGIN
- StrEdit.AssignStr( TheMessage, dummy );
- StrEdit.Append( dummy, '. Press C to continue, anything else to abort.' );
- IO.WrStr( dummy );
- dumkey := KbdInput.KeyHit( KbdInput.AnyKeyNum );
- RETURN KbdInput.CAPkey( dumkey ) # ORD('C');
- END ErrorBox;
- *)
- BEGIN
- AssignProcs();
- (*
- ErrorManager.AbortConfirmed := ErrorBox;
- CallRow := 0;
- ProcTrace.Install;
- ProcTrace.Entry := AddToCallChain;
- ProcTrace.Exit := RemoveFromCallChain;
- *)
- END InitCompilerMods.
|