Hi Marty - hope you are feeling a bit better today.
After having a look back at your post #65 where you describe your interesting (and repeatable) phenomenon with the LOAD ADDRESS and EXAMINE console commands I have a proposal of where to look first.
The LOAD ADDRESS microcode stores the 'address' you want to look at in the SR register (which also appears on the BR bus for display on the address LED's on the console).
The FIRST time you press examine - the microcode at EXM.10 (microcode word 070) should be executed. The address (stored in SR) should still be presented on the ADDRESS lamps and the data itself (at the specified address) should be stored in register DR (and displayed on the console data lamps via a parallel route via register BR). If this works (and in your example you said it did as 5000 was displayed) then let us assume that everything is OK here for now.
The NEXT time you press examine - the microcode that gets executed is EXM.00 (at microcode word 071). Question - does this word get executed? To find out the answer to this question you will have to seriously slow down the CPU clock - or use your maintenance card to single step (or even single cycle) the microcode. Set the front panel switch to display the microcode address. The microcode addresses should go something like 170, 167, 170, 167, <PRESS EXAMINE>, 071, 070, 153, 134, 230, 170, 167, 170, 167... If the microcode at word 071 was executed - this is good news. If not we need to look further as to why. FYI microcode word 071 increments the address stored in the SR register. If data is getting mixed up with the address this microcode word is a possibility for error.
Looking at word 071 in detail it appears to select the SR register as the 'A' input to the ALU (AMX=2); select the SR register to be displayed on the console address lamps (BAX=2); set the shifter for NO SHIFT (SHF=2); Select a constant of +2 to be fed to the BMUX (KMX=1); select the ALU to perform the operation A PLUS B (ALU=3) load the result from the ALU (sent via the shifter and the SRMUX) into the SR (SRK=1). The 'B' input to the ALU is set to select KOMX (BMX=0 as default), and SRMX is set to select the output from the shifter as input to the SR register (SRX=0 as default).
As you say that the address changes to 5000 and never increments - but the first EXAMINE seemed to work right - what I am assuming is that either microcode word 071 is not being executed, or it is but it is going wrong.
What I can't seem to see at the moment is how the last data value of 5000 (which should be stored in BR & DR is transferred to SR without having +2 added to it by invoking a single fault (the most likely scenario). AMX could erroneously have a value of 0 instead of 2 (selecting DR instead of SR) - but +2 should be added to the data value of 5000 and stored in the address register in this case (which is not happening).
Having just looked at the block diagram I wonder if DR is being selected by the BAX signal instead of SR to be sent to the console address lamps (and used as a virtual address)? BAX would then have to have the value 0 (to select DR) as opposed to 2 (to select SR). I would also have to invoke the fault that the transfer of SR to BA in microcode words 170 and 167 (CON.00 and CON.01) is also going wrong - but that is the same fault I am proposing anyhow. That fits the bill - one fault accounting for the problem. I wonder if I can simplify the above brain dump into a simple series of manual operations or where to look?
Possibly just looking at the MUX selector signals for the the MUX supplying the virtual address on drawings DAPS, C, D) after the address has 'flipped' to 5000? The SR input to the MUX should have the correct address and the DR input to the MUX should have the data. If this MUX is letting through the DR (data) to the address lines by mistake...
But I am going to have to leave that as an exercise for you tonight whilst I get some sleep
. Fritzm - what do you think?
Dave