CPREGx = 0 MIRx = CPREGx+1 IMOUTx = MIRx+1 Qx = IMOUTx+1 CNTx = Qx+1 SHCx = CNTx+1 MEMBXx = SHCx+1 STKPx = MEMBXx+1 TASKx = STKPx+1 PROCSRNx = TASKx+1 MCRx = PROCSRNx+1 CONFIGx = MCRx+1 PCXx = CONFIGx+1 INSSETx = PCXx+1 TESTSYNx = INSSETx+1 STROBEx = TESTSYNx+1 D1OUTx = STROBEx+1 UPTIMEx = D1OUTx+1 TGLITCHx = UPTIMEx+1 EVCNTAx = TGLITCHx+1 EVCNTBx = EVCNTAx+1 AATOVAx = EVCNTBx+1 ESTATx = AATOVAx+1 ABSOLx = 0 TPCx = ABSOLx+1 TLINKx = TPCx+1 OLINKx = TLINKx+1 IMBDx = OLINKx+1 IMx = IMBDx+1 IMXx = IMx+1 ALUFMx = IMXx+1 Tx = ALUFMx+1 RBASEx = Tx+1 TIOAx = RBASEx+1 MEMBASEx = TIOAx+1 RMx = MEMBASEx+1 STKx = RMx+1 PIPEx = STKx+1 BRx = PIPEx+1 CACHEAx = BRx+1 CACHEDx = CACHEAx+1 MAPx = CACHEDx+1 VMx = MAPx+1 IFUMx = VMx+1 LDRx = IFUMx+1 MDATAx = LDRx+1 MADDRx = MDATAx+1 DMUXx = MADDRx+1 DHISTx = DMUXx+1 VHx = DHISTx+1 MDx = VHx+1 TASKNx = MDx+1 DEVICEx = TASKNx+1 STKXx = DEVICEx+1 MSTATx = STKXx+1 ABSx = MSTATx+1 ROWx = ABSx+1 BRXx = ROWx+1 ;//Stuff in CFlags←A Cdirty = #200 Cvacant = #100 Cwp = #40 Cbeingloaded = #20 ;//Microinstructions in special microcode GtFrame = #61400 ;//Replaces GetFrame subr pointed to by 370 InitMC = #63000 ;//Sets up some stuff needed by new instructions DStrobe = #63400 ;//Does three-step strobing sequence on AC0 RDMux = #64000 ;//Reads DMux into the table pointed to by AC3 ;//Accepting Clock+ShiftDMux+X in AC0, and 0 in AC1 MIRLoad = #65400 ;//ac0←control word with Strobe=0 ;//ac1←pointer to 4-word block of data for MIR0-3 ;//Does DoStrobe(ac0); DoStrobe(ac0+ClrStop+ClrMIR) ;//DoStrobe(ac0); then loads MIR DMUXlen = #200 ;//Length of DMUX and DCHK mems--agree with D1DLANG MDATAlen = #10 MDATAwid = #44 MADDRlen = #15 IMlen = #10000 RMlen = #400 BRlen = #40 DEVICElen = #400 DHISTlen = #40 LDRlen = #140 NTasks = #20 ;// Stuff for D1Out Control = #0 ClrStop = #40000 StopAtt1 = #20000 Jam = #10000 Freeze = #4000 ClrMIR = #2000 ClrCT = #1000 SetRun = #400 SetSS = #200 Clock = #10 DAddrBit = #100000 ShiftDMux = #40000 GetTLINK = #10000 UseCPReg = #4000 UseDMD = #2000 BaseBAtten = #1000 ClrReady = #400 CPReg0 = #20 CPReg1 = #30 Mir0 = #40 Mir1 = #50 Mir2 = #60 Mir3 = #70 Strobe = #100 ;//Stuff for D1In addresses loaded into top 5 bits of D1Out data field InB03 = #0 InB47 = #20000 InB811 = #40000 InB1215 = #60000 InErr0 = #100000 InErr1 = #120000 InErr2 = #140000 InErr3 = #160000 InSync = #4000 MAReg03 = #10000 MAReg47 = #14000 ;//Baseboard hardware commands in CPReg[1:3] BNoop = #0 BSelD = #10000 BInt = #20000 BAltoControl = #30000 BHoldInt = #4000 ;//Microcomputer commands in CPReg[5:7] BCNoop = #0 BCLdHi = #400 BCLdLo = #1000 BCLdLoFetch = #1400 BCFetchInc = #2000 BCStoreInc = #2400 ;//Do subr indicated by CPReg[8:15]. ;//8:15 eq 1 means execute subr pointed to by PTR, where ;//addr[8:15] are in PTR, addr[0:7] in PTR+1. ;//BCsubr[1] does it. BCSubr = #3000 ;//LoadDMD functions PEHaltEnable = #0 IMrhPEen = #40 IMlhPEen = #20 IOPEen = #10 RAMPEen = #4 MemPEen = #2 MdPEen = #1 ;//IM manifold operations (use low six bits as arguments) IMControl = #100 ResetCBMIR = #40 IMWriteen = #10 IMAddressen = #4 R0Block = #2 ;//= RSTK.2 of IMX write IMlh = #1 ;//= RSTK.3 IMDataA = #200 ;//= BMux[0:5] IMDataB = #300 ;//= BMux[6:11] IMDataC = #400 ;//= BMux[12:15], Parity bit, -- IMAddr0 = #500 ;//= BNPC[4:9] IMAddr1 = #600 ;//= BNPC[10:15] IMAddr2 = #700 MIRdebug = #40 ;//low bits = BNPC[2:3], relevant on 16K microstore ClkRate0 = #2200 ClkRate1 = #2220 RunEnable = #2240 ECLup = #10 EnRefreshPeriodx = #4 IOResetx = #2 RunRefresh = #1 MicroCom = #2260 PowerOn = #2300 Minus5and12 = #10 ;//Stuff in MCR dVAfVic = #100000 FDMiss = #40000 UseMcrV = #20000 DisBR = #400 DisCF = #200 DisHold = #100 NoRef = #40 WMiss = #4 ReportSEx = #2 NoWake = #1