(*
    Title: 	Target Implementation constants
    LastEdit:	"Thu Aug  5 14:46:22 1982"
    Author: 	Mick Jordan
		Cambridge University Computer Laboratory

*)

DEFINITION MODULE MCImpl;
(*
    This module defines variable which control the M-Code output
    for machines or varying wordlengths, addressing formats etc.
*)

EXPORT QUALIFIED 
    BytesperWord, BitNumberFromLeft, BitsperWord, Realsize,
    MaxInt, MinInt, MaxCard, MostSigBit, LeastSigBit,
    SameHostTargetBitNumbering,
    AddressUnitsperWord, ExpStacksize,
    InitialiseTarget;

VAR BytesperWord: CARDINAL; 		(* number of bytes in a WORD *)
VAR AddressUnitsperWord: CARDINAL; 	(* grain of addressability *)
VAR BitsperWord: CARDINAL;
VAR BitNumberFromLeft: BOOLEAN;
VAR SameHostTargetBitNumbering: BOOLEAN;
VAR MinInt: INTEGER;
VAR MaxInt, MaxCard: CARDINAL;
    MostSigBit, LeastSigBit: CARDINAL;
VAR Realsize: CARDINAL;			(* number of WORDs in a REAL *)

VAR ExpStacksize: CARDINAL;		(* size of expression stack *)

PROCEDURE InitialiseTarget(bytesperword, addressunitsperword: CARDINAL;
                           bitnumberfromleft: BOOLEAN; bitsperword,
                           realsize, expstacksize: CARDINAL);
END MCImpl .
