diff --git a/src/cpfront/posix/generic/System/Mod/Kernel.cp b/src/cpfront/posix/generic/System/Mod/Kernel.cp
index 7c2c0bf26f9052a1bf73235b000c60cb52b07596..87ea635fc7524de0eca557d825ed0fc6dfee3f8c 100644 (file)
FreeMem(modAdr, modSize)
END InvalModMem;
- PROCEDURE TryRead (from, to, c: INTEGER);
- VAR i: INTEGER; x: BYTE;
- BEGIN
- IF from <= to THEN
- FOR i := from TO to DO
- S.GET(i, x)
- END
- ELSE
- FOR i := to TO from BY -1 DO
- S.GET(i, x)
- END
- END;
- END TryRead;
-
- PROCEDURE^ Try* (h: TryHandler; a, b, c: INTEGER);
-
PROCEDURE IsReadable* (from, to: INTEGER): BOOLEAN;
- VAR r: BOOLEAN; res: setjmp.int; i: INTEGER; x: BYTE;
+ VAR r: BOOLEAN; jmp: setjmp.sigjmp_buf; res: setjmp.int; i: INTEGER; x: BYTE;
BEGIN
r := checkReadable;
+ jmp := checkReadableEnv;
checkReadable := TRUE;
res := setjmp.sigsetjmp(checkReadableEnv, 1);
IF res = 0 THEN
END
END
END;
+ checkReadableEnv := jmp;
checkReadable := r;
RETURN res = 0
END IsReadable;
err := 202; (* illigal instruction *)
IF IsReadable(pc, pc + 4) THEN
S.GET(pc, val)
- (* !!! err := halt code *)
END;
ELSE (* unknown *)
END;