-- FILE: <JPROG>PrivateRamDefs.mesa Last Edited by Mitchell, September 9, 1977 12:22 PM
PrivateRamDefs: DEFINITIONS =
BEGIN -- module body
Version: CARDINAL = 0;
-- C O M P I L E - T I M E C O N S T A N T S A N D T Y P E S
BootLocusVector: TYPE = RECORD[CARDINAL];
PackedMuFile: TYPE = MACHINE DEPENDENT RECORD
[
brJunk: ARRAY [0..21B) OF UNSPECIFIED,-- header stuff in .br file prepared by Packmu.Run
blv: BootLocusVector,-- put there by Packmu.Run
constVector: ARRAY [1..maxConstAddr] OF CARDINAL,-- const 0 is always zero
ramVector: ARRAY [0..maxRamAddr] OF MicroCode
];
MicroAddress: TYPE = [0..7777B];
-- Bus Source (bs) field values when not used as part of a Const address
ReadR: CARDINAL = 0;
RGets: CARDINAL = 1;
MinusOne: CARDINAL = 2;
ReadS: CARDINAL = 3;-- RAM related
SGets: CARDINAL = 4;-- RAM related
ReadMD: CARDINAL = 5;
ReadMouse: CARDINAL = 6;
ReadDisplacement: CARDINAL = 7;
MicroCode: TYPE = MACHINE DEPENDENT RECORD -- for RAM-related tasks
[ -- the best definition of these fields is in Alto manual, pp. 5-7, p. 53
r: [0..37B],-- R register select
aluF: {Bus, T, BusOrT, BusAndT, BusXorT, BusPlus1, BusMinus1, BusPlusT, BusMinusT, BusMinusTMinus1, BusPlusTPlus1, BusPlusSkip, BusDotT, BusAndNotT, undefAlu1, undefAlu2},
bs: [0..7B],-- a bus source constant or low 3 bits of const address
f1: {SwMode, WrtRam, RdRam, RmrGets, taskSpec4, taskSpec5, taskSpec6, taskSpec7, Noop, MarGets, Task, Block, Llsh1, Lrsh1, Llcy8, ReadConst},
f2: {taskSpec0, taskSpec1, taskSpec2, taskSpec3, taskSpec4, taskSpec5, taskSpec6, taskSpec7, Noop, BusEq0, ShLt0, ShEq0, Bus, AluCy, MdGets, ReadConst},
loadT: {no, yes},
loadLM: {yes, no},-- inverted bit
next: [0..1777B]-- next MicroInstruction Address
];
EmSTART: CARDINAL = 20B;-- microaddress of Alto emulator main loop
maxConstAddr: MicroAddress = 377B;
maxRamAddr: MicroAddress = 1777B;
RamImage: TYPE = DESCRIPTOR FOR ARRAY OF MicroCode;
ConstantImage: TYPE = DESCRIPTOR FOR ARRAY [1..maxConstAddr] OF CARDINAL;
END. --PrivateRamDefs
Edit Log
Remark: Sturgis: 5-Jun-79 18:23:51: any comments earlier than October 1, 1978 placed in the Juniper History Log.