// D0.d -- Definitions for D0-dependent parts of Midas // Last edited: 20 October 1981 structure HWStatus: [ HaltConditions word ConnectedMachine word ] //Layout of DVx structure srbus: [ aluresult bit 4 blank bit 4 saluf byte sstkp byte stkp byte memsyndrome word cyclecontrol byte pcxreg bit 4 pcfreg bit 4 blank bit 4 dbreg bit 6 sbreg bit 6 mnbr word apctask bit 4 apc bit 12 ctask bit 4 ncia bit 12 page bit 4 parity bit 4 bootreason byte ] structure replmi: [ w0 word w1 word w2 word [ blank bit 2 Added bit 1 InUse bit 1 Addr bit 12 //m-i addr ] = [ w3 word ] ] structure BP↑0,37 : @replmi //Layout of AAtab and VAtab entries structure IMV: [ Brkp bit 2 blank bit Undef bit //This location not defined in VM Addr bit 12 //Absolute address ] manifest [ //bits and addresses for the tester strobe= #100000 nmems = 2 isend = #100000 iack = #40000 bootbit = #20000 stopbit = #10000 usend = #4000 uack = #2000 ] manifest [ //d0 registers known to Midas RXALU = #376 //These are the volatile registers saved by the kernel on a fault. RXAPC = #375 RXCTASK= #374 RXPPB = #373 RXSTK = #372 stack0 = #360 //These are used by the microcode overlays. stack1 = #361 stack2 = #362 stack3 = #363 stack4 = #364 stack5 = #365 ] manifest [ BpI0 = #147 //first word of breakpoint m-i BpI1 = #17000 //second word of breakpoint m-i //manifest of MIDAS to D0 communication codes EXOVLcode = 0b WRTMIcode = 2b READRcode = 4b WRITRcode = 6b READMsubcode = 4b WRITEMsubcode = 5b XMAPsubcode = 6b // Run and Step codes GoStep = 1 //for step GoRunbp = 2 //for run from bp GoRun = 3 //for run from non-bp // Kernel Stop codes BPstop = 100 //for normal bp stop FAULTstop = 101 //for fault stop ] //MidasSwat calls have args 2000 up for machine-dependent code //Strings are in Midas.Errors manifest [ BadLoadRam = 2000 BadConstants = 2001 MIMovf = 2002 UndGRegX = 2003 UndPRegX = 2004 KernelBP = 2005 KernelOvf = 2006 KernelRM = 2007 GoVecErr = 2008 PrCCVMemXErr = 2009 PrCCVAAErr = 2010 CantUndoBP = 2011 CantGetBPInst = 2012 CantSetBP = 2013 BadPrintIMMemX = 2014 OVecBug = 2015 NonXVABlock = 2016 NonXAABlock = 2017 BPTableOvf = 2018 BadEngNum = 2019 ]