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