Copyright (C) 1994, Digital Equipment Corp.
UNSAFE MODULE RTMapOp;
IMPORT Word;
PROCEDURE GetInt (VAR pc: ADDRESS; size: [1..8]): INTEGER =
VAR
p : BP := pc;
n : INTEGER := p^;
s : CARDINAL := size-1;
k : CARDINAL := 8;
BEGIN
INC (p, ADRSIZE (Byte));
WHILE (s > 0) DO
n := Word.Or (n, Word.LeftShift (p^, k));
INC (p, ADRSIZE (Byte));
INC (k, 8);
DEC (s);
END;
pc := p;
RETURN n;
END GetInt;
PROCEDURE Push (VAR stack: Stack; a: ADDRESS; b: INTEGER) =
BEGIN
WITH z = stack.data [stack.top] DO z.pc := a; z.count := b; END;
INC (stack.top);
END Push;
BEGIN
END RTMapOp.