home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / p / potland / Sources / src / mod / Throwback < prev   
Encoding:
Text File  |  1995-05-08  |  1.5 KB  |  59 lines

  1. MODULE Throwback; (* SvdW, 8 May 1995 *)
  2.  
  3. (* Throw errors to an error-catching editor *)
  4.  
  5.   IMPORT SYSTEM, CLib, DDEUtils;
  6.  
  7.   CONST
  8.     Warning* = 0;
  9.     Error*   = 1;
  10.     SeriousError* = 2;
  11.  
  12.   VAR
  13.     noerrors: BOOLEAN;
  14.     started : BOOLEAN;
  15.  
  16.   PROCEDURE Start*();
  17.     VAR regs: CLib.SwiRegs;
  18.   BEGIN
  19.     noerrors := TRUE;
  20.     started  := FALSE;
  21.   END Start;
  22.  
  23.   PROCEDURE SendError*(FName: ARRAY OF CHAR;lineno, severety: LONGINT; Desc: ARRAY OF CHAR);
  24.     VAR i: LONGINT; regs: CLib.SwiRegs;
  25.   BEGIN
  26.  
  27.     IF noerrors THEN
  28.       noerrors := FALSE;
  29.       started  := CLib.KernelSwi(DDEUtils.ThrowbackStart, SYSTEM.ADR(regs), SYSTEM.ADR(regs)) = 0;
  30.       IF started THEN
  31.         regs.r[0] := DDEUtils.ThrowbackReasonProcessing;
  32.         regs.r[2] := SYSTEM.ADR(FName[0]);
  33.         i := CLib.KernelSwi(DDEUtils.ThrowbackSend, SYSTEM.ADR(regs.r[0]), SYSTEM.ADR(regs.r[0]));
  34.       END;
  35.     END;
  36.  
  37.     IF started THEN
  38.       regs.r[0] := DDEUtils.ThrowbackReasonErrorDetails;
  39.       regs.r[2] := SYSTEM.ADR(FName[0]);
  40.       regs.r[3] := lineno;
  41.       regs.r[4] := severety;
  42.       regs.r[5] := SYSTEM.ADR(Desc[0]);
  43.       i := CLib.KernelSwi(DDEUtils.ThrowbackSend, SYSTEM.ADR(regs.r[0]), SYSTEM.ADR(regs.r[0]));
  44.     END;
  45.   END SendError;
  46.  
  47.   PROCEDURE End*();
  48.     VAR i: LONGINT; regs: CLib.SwiRegs;
  49.   BEGIN
  50.       noerrors := TRUE;
  51.       started  := FALSE;
  52.       i := CLib.KernelSwi(DDEUtils.ThrowbackEnd, SYSTEM.ADR(regs.r[0]), SYSTEM.ADR(regs.r[0]));      
  53.   END End;
  54.  
  55. BEGIN (* Throwback *)
  56.   noerrors := TRUE;
  57.   started := FALSE;
  58. END Throwback.
  59.