DragonFP.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Last edited by Curry, February 4, 1985 11:02:24 pm PST
DIRECTORY
BitOps, Dragon, IO;
DragonFP: CEDAR DEFINITIONS =
BEGIN
HexDblWord: TYPE = RECORD [h,l:Dragon.HexWord, single: BOOL];
CSLoad:  TYPE = {load, dont};
CSUnload: TYPE = {unload, dont};
Function: TYPE = CARDINAL[0..256);
FPRndMode: TYPE = MACHINE DEPENDENT{rn, rz, rp, rm};
requiredMode: CARDINAL = 0; -- IEEE, no pipelining, other modes not implemented
Mode:   TYPE = MACHINE DEPENDENT RECORD [
required (0: 0..11): [0..4096)  ← requiredMode,
rnd  (0:12..13): FPRndMode ← rn,
fixRZ  (0:14..14): BOOL   ← FALSE,
fast  (0:15..15): BOOL   ← FALSE ];
SetMode: PROC[mode: Mode, function: Function] RETURNS[Mode];
ALU: PROC [aHDW, bHDW: HexDblWord, func: Function, mode: Mode]
RETURNS [cHDW: HexDblWord, status: Dragon.PBusFaults];
MUL: PROC [aHDW,bHDW: HexDblWord, function: Function, mode: Mode]
RETURNS [cHDW: HexDblWord, status: Dragon.PBusFaults];
PutHexFP: PUBLIC PROC[st:IO.STREAM, hdw: HexDblWord];
END.