; FILE ’ Tricondriver.mu ’
; Predefinitions for Trident disk controller microcode.

; Last modified August 18, 1981 2:11 PM by GWilliams
; Added LOC1 to the Predefs for use by MesaSlotMc.mu. The earlier predef locked out
; the LOC1 predef in MesaSlotMc.

; Last modified June 3, 1981 6:02 PM by GWilliams


#AltoConsts23.mu;
Get from [Maxc1]<ALTOSOURCE>AltoConsts23.mu


;
**PREDEFINITIONS FOR THE FIRST 40 INSTRUCTIONS**

%17,1777,0,EXITRAM, LOC1,,LOC3,,,,,,,,,,,LOC16,LOC17;
;%17,1777,0,EXITRAM,,,LOC3,,,,,,,,,,,LOC16,LOC17;
;%17,1777,0,EXITRAM,L1,L2,LOC3,L4,L5,L6,L7,L10,L11,L12,L13,L14,L15,LOC16,LOC17
%0,1777,1400,SilentBoot;

;XMesaRam.mu had to be changed by me to avoid its generating a message claiming
;it had allocated loc21 when in fact it hadn’t.

%0,1777,21,LOC21;
ModShift subroutine for ECC correction
;%0,1777,22,LOC22;
SetBLV subroutine

; There is a hack in the read microcode that causes the reset location
; for task 16 to be used. This means that it is not possible to run
; task 16 (= Diablo disk word task) in the Ram.

; Lock out the Ram Utility Area

%7, 1777, 774, RU774, RU775, RU776, RU777, RU1000, RU1001, RU1002, RU1003;


;***THIS CODE IS CAREFULL PLACED IN THE RAM
;***FOR AN EMULATOR "NO-OP BOOT".
;***THE LSB OF THE BOOT-LOCUS-VECTOR MUST BE 0 FOR THIS TO WORK
;

#XMesaRam.mu;
Xmesa microcode

;the following predef must appear after the XMesaRam.mu call

;#MesaBLTLreal.mu;
Block transfer implementation

EXITRAM: SWMODE;

START:
:romnextA;RETURN TO Mesa Emulator

SilentBoot: RMR←stk0; set Boot Locus Vector
L←stkp-1,TASK;
stkp←L;
SINK←100000,STARTF,:EXITRAM; Boot...

;-----------------------------------------------------------------
; MISC - Miscellaneous instructions specified by alpha
;
alpha=11 => RCLK has been handled by ROM
;
T contains alpha on arrival at MISC in RAM
;-----------------------------------------------------------------

; Precisely one of the following lines must be commented out.

MISC:
L←0, SWMODE, :Setstkp;dummy MISC implementation

;#Float.mu;
REAL implementation

;Now for the meat--
#TriConBody.Mu;
The body of the Trident controller microcode