Rich wrote:
> ... this is not how the real machine behaved.
I replied that I disagree. I still strongly disagree.
> ... If you look at the schematics of the KA and KI,
I took a look Friday night and couldn't find an important piece of the puzzle. I found it Saturday and can expand on this statement.
> the displays show the AB register and either the MB or MI register.
Oh, you're referring to the PiDP10-10 displays. The simh code uses the MI register as the result of the DATAO PI, instruction. On the real KA-10 the MI register is the lights. The MI register is only latched from AR, the Arithmetic Register. If the MB register is displayed, it will be on one of the CPU bay panels. It does not connect to MI.
I've never seen schematics for anything other than the KA-10, and I see those online at
https://bitsavers.org/pdf/dec/pdp10/KA10/DEC-10-HMBB-D_KA10_Maint_Vol2_Set1_May70.pdf . The following refers to those prints. Also, I see schematics for the Flip Chips at
https://www.computerhistory.org/collections/catalog/102737558/ That's helpful to understand the stupid DEC logic symbols. (I.e. rectangles.)
Caveats:
1) I had trouble reading CMU's KA-10 prints 50 years ago.
2) I had trouble reading WWW's KA-10 prints last night. And today. :-)
3) While I have a BSEE degree, I've never considered myself employable as an EE. However, I have written code that directly twiddles TTL chips and have fixed some KA-10 CPU failures.
4) I refer to prints below with their page number and the Y-X region. E.g 64-C5 refers to the gate that produces AS COND.
A problem with the online prints is that it appears they are scans of paper that were marked up with a highlighter. Several of the highlighted signal names are unreadable but sometimes guessable. If you have clean prints, or can read them better than I can, feel free correct any erroneous statements below.
Some of the interesting pages:
64: Address Switch Comparators. Inputs include AS (Address Switches), and MAI/MA (I assume the physical address)
98: MA Register. Inputs are PC, AR (Arithmetic Register), and AS, et al
99: Memory Address Interface. Output includes MAI bits 19-25, part of address relocation stuff.
100: Memory Bus Data Interface. AR to memory writes.
101: Memory Control. Mostly signals I don't reference below.
102: Memory Control. Mostly signals I don't reference below.
103: Memory Indicator. The MI register and lights. Inputs are AR (not MB!) and sources for the "MI Load" signal.
What triggers loading?
Three gates can trigger MI Load at 103-B2:
1) The examine key at 96-B4 generates Key Mem Ref which generates Key F1 at 96-C4.
2) The DATAO PI, instruction sends a pulse that is normally let through. See MI Prog En at 103-B7 and MI Prog(?) at 103-B6. Several of the relevant signal names are obliterated. Basically, the DATAO sets MI Prog and the Examine key clears it.
3) During normal execution, the Address Switch Comparator generates various signals when AS equals the MA/MAI bits. A test for a FastAC match generates AS=FMA at 64-D1. An 18 bit match generates AS=RLA at 64-D6. The two are combined into AS COND at 64-C5. These are used on page 103 where some signals are nearly illegible, but it looks like AS COND ar 103-A4 generates MIT1 at 103-B3 and that triggers MI Load at 103-B2.
This argues against your statement "the displays show the AB register and either the MB or MI register." The display should display only the MI register, and perhaps that register should be properly maintained by kx10-cpu.c. I've revamped my ka_pipanel.c and kx10_cpu.c changes so that I now track MI. I also changed get_reg/set_reg to include setting MI when appropriate. That was important to see the original TOPS-10 null job (AOJA 0,.) when address switches are all zero.
Where should we go from here? I only changed the KA-classic code, similar changes should be made to the other KAs and the KI, and I guess the KL and KS since they can (kinda, sorta) use the PiDP-10 display.