-- 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: STRING]; -- 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 aligned which is forced by the preceeding LIW. ramOffset: CARDINAL = 1400B; silentBootAddr: CARDINAL = ramOffset+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 = ramOffset+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 = ramOffset+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 = ramOffset+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(2048)\244i224I107b10B219b9B208b10B212b11B283b16B