packages feed

language-Modula2-0.1: examples/Modula-2_Libraries/PMOS/sources/tests/flttest.mod

MODULE FltTest;
    (* The sole purpose of this module is to let me check what the	*)
    (* TopSpeed floating point library is doing to corrupt the stack	*)
    (* segment.								*)
    (* Conclusion so far: locations ss:[0001] to ss:[0004] inclusive	*)
    (* are being used by Exp and Sqrt; so we're forced to make sure	*)
    (* that those locations are actually within the task stack space.	*)

FROM SYSTEM IMPORT NEWPROCESS, TRANSFER;
FROM MATHLIB IMPORT Log, Tan, Sqrt, Exp;

VAR x, y: LONGREAL;
    P0, P1: ADDRESS;
    WkSpace: ARRAY [0..2047] OF CHAR;

PROCEDURE proc1;
    VAR x, y: LONGREAL;
    BEGIN
	y := 1.0;
	x := Log(y);
	x := Tan(y);
	x := Sqrt(y);
	TRANSFER (P1,P0);
    END proc1;

BEGIN
    NEWPROCESS (proc1, ADR(WkSpace), SIZE(WkSpace), P1);
    y := 1.0;
    x := Exp (y);
    x := Log(-5.0);
    x := Tan(y);
    x := Sqrt(y);
    TRANSFER (P0,P1);
END FltTest.