DragonFP.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Last edited by Curry, February 4, 1985 11:02:24 pm PST
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.