-- File: AltoRamDefs.mesa, Last Edit: HGM June 10, 1979 9:01 PM

-- Copyright Xerox Corporation 1979, 1980

DIRECTORY
Mopcodes: FROM "Mopcodes" USING [zLIW, zJRAM];

AltoRamDefs: DEFINITIONS =
BEGIN

LoadRamAndBoot: PROCEDURE [filename: S
TRING];


-- Interface to Taft’s microcode

-- Beware: these routines assume that the stack does not have anything extra on it when they are called. Also, PupChecksum is interruptable. It assumes that the JRAM is alpha ali
gned which is forced by the preceeding LIW.


ramOffset: CARDINAL = 1400B;

silentBootAddr: CARDINAL = ramO
ffset+0; -- RAM entry point for SilentBoot
SilentBoot: PROCEDURE [bootLocusVector: WORD] =
MACHINE CODE BEGIN
Mopcodes.zLIW, silentBootAddr/256, silentBootAddr MOD 256;
Mopcodes.zJRAM;
END;

enableEiaAddr: CARDINAL = ram
Offset+1; -- RAM entry point for EnableEia
EnableEia: PROCEDURE [p: POINTER] =
MACHINE CODE BEGIN
Mopcodes.zLIW, enableEiaAddr/256, enableEiaAddr MOD 256;
Mopcodes.zJRAM;
END;

setLineTabAddr: CARDINAL = ramO
ffset+1; -- RAM entry point for SetLineTab
SetLineTab: PROCEDURE [p: POINTER] =
MACHINE CODE BEGIN
Mopcodes.zLIW, setLineTabAddr/256, setLineTabAddr MOD 256;
Mopcodes.zJRAM;
END;

pupChecksumAddr: CARDINAL = ramOf
fset+2; -- RAM entry point for PupChecksum
PupChecksum: PROCEDURE [
initial: WORD, where: POINTER, length: CARDINAL]
RETURNS [WORD] =
MACHINE CODE BEGIN
Mopcodes.zLIW, pupChecksumAddr/256, pupChecksumAddr MOD 256;
Mopcodes.zJRAM;
END;

changeControlRegAddr: CARDINAL = ramOffset+
3; -- RAM entry point for ChangeControlReg
ChangeControlReg: PROCEDURE [lineTimes4: CARDINAL, changeMask: WORD] =
MACHINE CODE BEGIN
Mopcodes.zLIW, changeControlRegAddr/256, changeControlRegAddr MOD 256;
Mopcodes.zJRAM;
END;


END. -- AltoRamDefs