; FILE ' TriconMC.mu ' ; Predefinitions for Trident disk controller microcode. ; Copyright Xerox Corporation 1979, 1984 ; Last modified September 18, 1984 11:58 AM by Fiala ; Last modified November 10, 1979 10:14 AM by Taft? #AltoConsts23.mu; Get from [Indigo]<ALTOSOURCE>AltoConsts23.mu ; Predefinitions for task starting locations and emulator-level ; subroutine entry points. %0, 1777, 0, EXITRAM; Emulator task start %0, 1777, 3, LOC3; Write task start %0, 1777, 16, LOC16; (See below) %0, 1777, 17, LOC17; Read task start %0, 1777, 20, START; (See below) %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; RU774: NOP; RU775: NOP; RU776: NOP; RU777: NOP; RU1000: NOP; RU1001: NOP; RU1002: NOP; RU1003: NOP; ;***THIS INSTRUCTION WILL CAUSE THE BOOT-LOCUS-VECTOR TO BE ;*** SET TO THE VALUE IN AC0 AT THE NEXT BOOT $AC0 $R3; LOC22: RMR←AC0,:EXITRAM; ;***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 ; EXITRAM: SWMODE; GO TO LOCATION 20 IN THE RAM, AND THEN START: :START; RETURN TO LOCATION 20 IN THE ROM #TriConBody.Mu; The body of the Trident controller microcode