packages feed

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

MODULE TTransfer;

	(****************************************************************)
	(*								*)
	(*		Test of TopSpeed TRANSFER routine		*)
	(*								*)
	(*  Programmer:		P. Moylan				*)
	(*  Last edited:	7 October 1992				*)
	(*  Status:		Just starting				*)
	(*								*)
	(****************************************************************)

FROM SYSTEM IMPORT
    (* type *)	PROCESS,
    (* proc *)	NEWPROCESS, TRANSFER;

FROM IO IMPORT
    (* proc *)	WrLn, WrStr;

(************************************************************************)
(*			    GLOBAL VARIABLES				*)
(************************************************************************)

VAR Stack2: ARRAY [0..1023] OF SHORTCARD;
    P1, P2: PROCESS;

(************************************************************************)
(*			    SUBSIDIARY TASK				*)
(************************************************************************)

PROCEDURE Task2;

    VAR x: REAL;

    BEGIN
	WrLn;  WrStr ("Now in Task2");
	x := 1.0;
	WrLn;  WrStr ("About to transfer to main task");
	TRANSFER (P2, P1);
    END Task2;

(************************************************************************)
(*			MAIN PROGRAM AND MAIN TASK			*)
(************************************************************************)

VAR y: REAL;

BEGIN
    y := 1.0;
    NEWPROCESS (Task2, FarADR(Stack2), SIZE(Stack2), P2);
    WrLn;  WrStr ("About to transfer to Task2");
    TRANSFER (P1, P2);
    WrLn;  WrStr ("Now back in main task");
END TTransfer.