-- Bcpl-RealDefs.mesa
-- Copywrite Xerox Corporation 1980
-- Version of RealDefs for those not using floating point microcode
-- Last Modified by L. Stewart, May 23, 1980 12:58 PM
-- DIRECTORY
-- Mopcodes: FROM "Mopcodes" USING [zJRAM, zLIW];
RealDefs: DEFINITIONS =
BEGIN
FloatingError: TYPE = {noError,FixRangeOverflow,ExponentOverflow,DivideBy0};
FloatingPointError: SIGNAL[f: FloatingError];
InitFloat: PROCEDURE;
WriteFloat: PROCEDURE [REAL];
WFWriteFloat: PROCEDURE [rp: UNSPECIFIED, f: STRING, p: PROCEDURE [CHARACTER]];
WFWriteEFloat: PROCEDURE [rp: UNSPECIFIED, f: STRING, p: PROCEDURE [CHARACTER]];
AppendFloat: PROCEDURE [STRING, REAL];
ReadFloat: PROCEDURE RETURNS [REAL];
StringToFloat: PROCEDURE [STRING] RETURNS [REAL];
-- uLocFix: CARDINAL = 541B;
-- uLocFixI: CARDINAL = 547B;
-- uLocFixC: CARDINAL = 546B;
Fix: PROCEDURE [a: REAL] RETURNS [LONG INTEGER];
-- Fix: PROCEDURE [a: REAL] RETURNS [LONG INTEGER] =
-- MACHINE CODE BEGIN
-- Mopcodes.zLIW, uLocFix/256, uLocFix MOD 256;
-- Mopcodes.zJRAM;
-- END;
FixC: PROCEDURE[REAL] RETURNS [CARDINAL];
-- FixC: PROCEDURE[REAL] RETURNS [CARDINAL] =
-- MACHINE CODE BEGIN
-- Mopcodes.zLIW, uLocFixC/256, uLocFixC MOD 256;
-- Mopcodes.zJRAM;
-- END;
FixI: PROCEDURE[REAL] RETURNS [INTEGER];
-- FixI: PROCEDURE[REAL] RETURNS [INTEGER] =
-- MACHINE CODE BEGIN
-- Mopcodes.zLIW, uLocFixI/256, uLocFixI MOD 256;
-- Mopcodes.zJRAM;
-- END;
END.