• Please review our updated Terms and Rules here

PDP 11/45, Part 5

Marty,

Yes - regular DEPOSIT and EXAMINE from the front panel is all you need.

I am just trying to reduce the MMU problem to the 'smallest' unit where we can see some degree of not operating correctly and to proceed from there.

With the M8116 IN; your PDP-11/45 should quite happily run test programs etc.

With the MMU cards in place of the M8116 - does this combination still work correctly with programs that do NOT 'play' with the MMU hardware? On a reset (M8108 pins 1 and 13 of IC E58 going LOW) the outputs from E58 (pins 5 and 9) should both go low and stay low). E58 controls the maintenance bit (08) and the relocation enable bit (00) of Status Register 0. You should also be able to read this register at any time by EXAMINING SR0 at 777572. Bits 00 and 08 should always be a '0'.

With the MMU disabled (bit 00 of SR0 = '0') the 74157 MUX's of M8107 E23, E24, E32 and E33 should be selecting the 'non-MMU address lines' and forwarding them to UNIBUS-A via the M8107 on drawing (SAPN).

I suppose that's one more question for me to ask you - are you using memory on UNIBUS-A or FASTBUS? The UNIBUS drivers are on sheet SAPN whilst the FASTBUS outputs are directly taken from the multiplexer on drawing SAPJ.

If the 'non-MMU enabled' stuff works fine - we can work on the 'MMU enabled' stiff later.

Incidentally, just setting the registers to '0' only tests for one failure mode. I use the following:

Stuck '1'.
Stuck '0'.
Shorted to adjacent.

As my 'code words' for determining faults. So, to take a simple register, setting a 16-bit register to 177777 should check for a bit being stuck at '0'. You would set the register to 000000 to check for a stuck '1'. But you would have to use a 'pattern' of bits to check for an 'adjacent short' such as 000000, 000001, 000003, 000007, etc.

You would do this for a single register at first (to check the bus buffers out) then you would need to do this for multiple registers to check for stuck '0', '1' and adjacent shorts on the address bus (i.e. can I correctly address the correct thing).

The above probably sounds like a bit of 'Double Dutch' due to my explanation...

Dave
 
That assumes that we are checking for shorts between D0 and D1 or between D1 and D2 etc. This is sometimes not the case (hence the reason I use the left-shift '1' into 000000 or left-shift '0' into 177777 trick). We could (for example) surmise a short between D0 and D2 - which will pass the alternate '1' and '0' test but fail the bit-shift test. However, it is a very good starting point if you are trying to cut down on test vector cases.

You get a high percentage of coverage from testing 000000, 177777, 125252 and 052525 - but not 100%. Whether you think it is worth the extra time for more coverage of course is down to how confident you are with the hardware. if you are not confident, I would go for the higher coverage.

Dave
 
Hi All;

Thank You Dave and Commadorejohn for You pertinent Information..

I have been gone all Day, as Our Church Celebrated it's 50th Anniversary..

Dave, I will try to answer some of Your Questions now and tomorrow I will run some Tests and report Back to You..

"" I am just trying to reduce the MMU problem to the 'smallest' unit where we can see some degree of not operating correctly and to proceed from there. ""
Yes, I knew this from Our Previously done work on the PDP 8i.. You find things that I have NO way of seeing.. Like I said before You get to the Meat of things..


"" With the M8116 IN; your PDP-11/45 should quite happily run test programs etc. ""
At Present No, not completely..
For some Reason it seems to run other things like The Chase program, but I am not absolutely sure of this..
But, It will Not Bring up the ODT prompt, I am at present not sure why it will not Run..
Last time I ran things, I had what I thought was a GRA Board Temperature problem, but it would Run the ODT.. But, not now..

"" With the MMU cards in place of the M8116 - does this combination still work correctly with programs that do NOT 'play' with the MMU hardware? ""
It will let them be Deposited, and Examined, But as near as I can Tell it will NOT Run them..

"" On a reset (M8108 pins 1 and 13 of IC E58 going LOW) the outputs from E58 (pins 5 and 9) should both go low and stay low). E58 controls the maintenance bit (08) and the relocation enable bit (00) of Status Register 0. You should also be able to read this register at any time by EXAMINING SR0 at 777572. Bits 00 and 08 should always be a '0'. ""
I will TRY this First thing in the Morning, and Let You know of the Result..
I don't have a 'Reset' , there is a Reset Instruction and I an toggling the AC Low and DC Low, Is that close enough ??

"" With the MMU disabled (bit 00 of SR0 = '0') the 74157 MUX's of M8107 E23, E24, E32 and E33 should be selecting the 'non-MMU address lines' and forwarding them to UNIBUS-A via the M8107 on drawing (SAPN). ""
I will Check this out as well !!

"" I suppose that's one more question for me to ask you - are you using memory on UNIBUS-A or FASTBUS? The UNIBUS drivers are on sheet SAPN whilst the FASTBUS outputs are directly taken from the multiplexer on drawing SAPJ. ""
I didn't know this, But I am using UniBus.. I would like to know which Pins are for FastBus for later Reference, though, but I don't need it right now.. As far as I know I don't have anything attached to the FASTBUS..

"" If the 'non-MMU enabled' stuff works fine - we can work on the 'MMU enabled' stiff later. "" I will have to get back with You on this Tomorrow..

"" Incidentally, just setting the registers to '0' only tests for one failure mode. I use the following:

Stuck '1'.
Stuck '0'.
Shorted to adjacent.

As my 'code words' for determining faults. So, to take a simple register, setting a 16-bit register to 177777 should check for a bit being stuck at '0'. You would set the register to 000000 to check for a stuck '1'. But you would have to use a 'pattern' of bits to check for an 'adjacent short' such as 000000, 000001, 000003, 000007, etc.

You would do this for a single register at first (to check the bus buffers out) then you would need to do this for multiple registers to check for stuck '0', '1' and adjacent shorts on the address bus (i.e. can I correctly address the correct thing). ""
Yes, I knew this, and I knew I would need more Tests, The Test I did was to show whether I could Write to them and change their Contents, not an exhaustive type of test..

THANK YOU Marty
 
Last edited:
Hi All;

Dave, Here is a first Report..
After powering up the 11/45, I checked both pins 1 and 13 they were both High.. As were pins 5 and 9..
Pressing the AC and DC Low, pins 1 and 13 went Low when the switch was Pressed.. Which is OK
After Pressing Ac and DC Low pins 5 and 9 go Low, which is OK..

When the M8107 is on the Extender, bit 6 of the Address lines is Always Displays High.. So I need to take it off of the Extender and see if it Displays the same thing..
Also Examining '777572 shows ALL Ones '777777..
So, I will need to take the Board off of the Extender and see what it shows on this as well..

Second Report, taking the Board off of the Extender, corrected both problems, Bit 6 is Not Displayed and Examining '777572 show '000200 Octal..
Which means that bit '0 and bit '8 are both '0..

Third Report, Yes, it is set for virtual Address, and Not Relocated Address, on the 74157's..

THANK YOU Marty
 
Last edited:
Hi All;

I think I have found a way to determine what Pins are --5 and +20 volts for my core Board..
And while I await a Response from Dave, I can work on this aspect of my machine..
I have taken out the Backplane from my partial 11/04 chassis.. It has UniBus and the wires are still Color Coded, So I can attach my Tester and use a meter to Ohm from the appropriate color wire and find what Pins I am looking for, for the voltages that I need to attach the power supply to the correct places..

I found the appropriate places, for --5 it shows BV2 and for +20 it shows AV2 and Possibly AV1 and AV2 this is Only for MUD slots !! BEWARE !!
And I have copied this information in my NoteBook..

THANK YOU Marty
 
Last edited:
Sorry Marty - somewhat busy (again) at work...

"I have been gone all Day, as Our Church Celebrated it's 50th Anniversary.."

DER: No problem - you are entitled to enjoy yourself after a hard time wrestling with your 11/45!

"After powering up the 11/45, I checked both pins 1 and 13 they were both High.. As were pins 5 and 9..
Pressing the AC and DC Low, pins 1 and 13 went Low when the switch was Pressed.. Which is OK
After Pressing Ac and DC Low pins 5 and 9 go Low, which is OK.."

DER: I would have thought (expected) powering up the 11/45 to have reset the MMU. If not - I would suspect a fault somewhere. I have traced the MMU initialise signal back to the M8108 (drawing SSRK) pin FV2 where it should be wired to E111 pin 2. When this line goes LOW it should initialise the flip-flops on the card. The inverted version of it goes out on pin FS1 (presumably to the other MMU board?). It looks like "manually forcing" it with AC and DC LOW gives us the desired result - but the power-on condition should have also worked.

All '1's in SR0 is not good (!) so there is something not right with your extender - or the connections between the card/extender/backplane.

A '0' in bit 0 of SR0 is good on power-up - this should be selecting the 'virtual address' as you have already stated.

Following the address bus from the CPU through to FASTBUS and UNIBUS-A is relatively simple if you look at drawing SAPJ for the M8107. Address lines 06 to 17 are sourced from this drawing. I will described address line 06 - the others are the same:-

Address line BAMX06 arrives on pin BT2 and goes to pin 3 of E23 (74LS157 MUX). SEL of the MUX (pin 1) should be '1' (from pin BF2) thus selecting the virtual (rather than relocated) address. The output from the MUX drives a pin I can't quite read. This (I believe) is the FASTBUS address. The signal then goes over to drawing SAPN of the M8107 where it drives a standard DEC8881 buffer to pin BJ1 (UNIBUS-A address line).

Address lines 0 through 5 are routed directly from the pins of the M8107 (AF2 for address line 00) to the corresponding DEC8881 driver.

So (assuming the flip-flop is set for VIRTUAL ADDRESSES) it should be relatively easy to chase the address line inputs from the pins of the M8107 through the MUXs and through the DEC8881 buffers to the UNIBUS-A pins of the M8107.

The only thing to possibly watch is where the ENABLE comes from internally to enable the DEC8881 buffers... Let me chase that down... Easy... pin CL2 of the M8107.

Dave

EDIT: I am being a bit dumb here... You can follow the address input (from CPU) to UNIBUS-A/FASTBUS path via the schematic for the M8116 dummy MMU card. The pin numbers for the M8116 dummy card and the M8107 'real' MMU card should be the same!
 
Last edited:
Hi All;

Dave, Thanks for the Explanations,
"" Sorry Marty - somewhat busy (again) at work... "" No problem, it's when I don't hear from You and Don't know.. Work comes First..

"" It looks like "manually forcing" it with AC and DC LOW gives us the desired result - but the power-on condition should have also worked. ""
Actually, at other Times, I think It might have worked, so, If it becomes a problem, I will chase it down and make sure of what is happening..

"" Following the address bus from the CPU through to FASTBUS and UNIBUS-A is relatively simple if you look at drawing SAPJ for the M8107. Address lines 06 to 17 are sourced from this drawing. I will described address line 06 - the others are the same:-

Address line BAMX06 arrives on pin BT2 and goes to pin 3 of E23 (74LS157 MUX). SEL of the MUX (pin 1) should be '1' (from pin BF2) thus selecting the virtual (rather than relocated) address. The output from the MUX drives a pin I can't quite read. This (I believe) is the FASTBUS address. The signal then goes over to drawing SAPN of the M8107 where it drives a standard DEC8881 buffer to pin BJ1 (UNIBUS-A address line). ""
"" The only thing to possibly watch is where the ENABLE comes from internally to enable the DEC8881 buffers... Let me chase that down... Easy... pin CL2 of the M8107. ""
"" Address lines 0 through 5 are routed directly from the pins of the M8107 (AF2 for address line 00) to the corresponding DEC8881 driver. ""
Actually, copying down the Pin numbers from the SJB Card and You'LL find that they are the same, And the pin numbers are easier to find on the SJB Card, along with the signal name..

"" This (I believe) is the FASTBUS address. ""
I would like to confirm this Later..

THANK YOU Marty
 
We both came to the same conclusion regarding the SJB card at roughly the same time by the look of it!

I am just seeing if I can chase down the FASTBUS documentation for the memory interface now I have thought about it.

Dave
 
Hi All;

Dave, "' We both came to the same conclusion regarding the SJB card at roughly the same time by the look of it! ""
I already knew it, since I had to wire mine up, But, getting a confirmation from You really Helps..

"" I am just seeing if I can chase down the FASTBUS documentation for the memory interface now I have thought about it. ""
I have never seen any, and when You get time, I need You to Look and possibly ohm out some traces that the Documentation either doesn't have or is not readable on the M8110 Card and maybe on the G401, or M8111 card, depending on what You have..
I have (someplace) written down all of the trace signals that I have or can read, and would like to finish completing the WireList/Documentation..

THANK YOU Marty
 
Hi All;

Dave, Thank You for Your Answer..
I will look up the Link in a minute..

"" The memory for my machine seems to have been installed in a 9-slot extension to the 11/45 (of which the physical core store modules themselves are missing). ""
That Most Likely IS UNIBUS, as I have said before.. There are a couple of things to check for sure, once You get that Far along to determine if this is correct or not correct.. I just realized this in the last few days, while making the tester.. There are some not normal positions that have ground on them, along with a +5 volt finger..
And if it is there are both MOS and Core Unibus Boards, hopefully You will have something to fit the Bill..

THANK YOU Marty
 
Hi All;

I have a DataRam 32K Core Board Installed in the 11/45..
At this point I don't know if it is all good or Not.. I am running with the SJB Board at present..
I will try and see if I can run some small programs and see about making or getting the ODT working..
Somewhere (I think) I have a second Board..

I Found out thru a bunch of trial and errors, In other words I am not completely sure of the 'how'..
But, I got ODT to function, It might have been that I had the Serial card in the Wrong slot or the slot that it was in is no longer Working..
I had it in slot 26 and Now it is in slot 27..
And so I am now back to where I was a few weeks ago..
The 11/45 works until something gets too Hot or changes Temperature, Before I thought it was the GRA Board, but I am not so sure of that now..
I can use PDPGUI now again, until that something changes Temperature, but I did now notice that it shows that the "ADR ERROR" Led now comes on.. And that is when I quits working..
So, I would say I have made some progress..

And this is with the Core Board in place.. I might need to up the voltage just a hair to make it pass some of the basic tests, I will work on this tomorrow..

I have ODT working using the M9301 Boot/Terminator Board, and I put the MOS Ram Board back in, so I could try the Memory Management Boards, but, no go.. It Looks like it's almost there, It might be s stuck bit or Like Dave says two or more bits might be shorted together..

THANK YOU Marty
 
Last edited:
Hi All;

I just noticed something, I have know idea if it is pertinent or not..
While in Lower memory, like '000000 and if I press the start Button, the Kernel Led comes on..
And If I set the address to '773000 and press the Continue Button, the Super Led comes on.. With the MMU it states I need to use the Continue Button, instead of the Start Button..
Now this is with Core, 32K and Memory Management Boards, I am going to switch to MOS Memory and try the same thing..
It's the same with MOS Memory..
And also see what it does with the SJB Board as well..
As I thought, when using the SJB Board it's Kernel mode, but with the SJB Card there is NO User or Supervisor Mode..
So, I don't know If I am Barking up the Wrong Tree or Not..

Fritzm, If You are there, what Lights are on when You access the I/O spaces on Your machine with the MMU in place ?? Such as Master, User, Super, Kernel and Data lights.. Also what switches do You press to access the I/O pages, after You first turn on Your Machine ??

THANK YOU Marty
 
Last edited:
Morning Marty.

I wouldn't be too bothered about the USER, KERNEL and SUPERVISOR indicators for now. The indicator that is lit is a function of the operational mode of the CPU and nothing to do (directly) with the MMU. The current mode bits are in the top two bits of the Processor Status Word register (00=kernel, 01=supervisor, 11=user).

Of interest is the "ADR ERROR" indicator.

This is sourced from E38 pin 6 of the M8105 (slot 11) (see schematic "TRAP and MSC CONTROL" sheet TMCC in the upper left-hand corner).

The implication being something like an odd address error, parity error or a timeout error. Whatever caused it - probably resulted in 'garbage' coming back as an instruction for the 11/45 CPU causing the 'program' (e.g. debug monitor or whatever) to go silly. It may also have caused a TRAP - and (if the monitor program hasn't set up a TRAP handler) bye bye time as well.

I am just debating whether a NOP generator is required here? This is something we use quite a lot to fix Commodore PETs (etc.) and is something as simple as 'forcing' the OPCODE for a NOP instruction (000240) onto the data bus so we can see what is going on with the address and control busses. You would remove all the memory and bootstrap cards etc. and run the 11/45 from 'any' address. A NOP instruction should be executed as a result. This is similar to what we first did with the PDP-8 if you remember. Not sure with the 11/45 what we would do when we got to the I/O page though (force a JUMP to 0 perhaps?). Let me think...

Dave
 
Last edited:
Where did you read that you needed to use the CONTinue button instead of the START button with the MMU? I don't think that is the case.

FYI:

The Processor Status Register is on M8104 (slot 10) drawing PDRD. The two bits defining the mode of execution (bits 15 and 14) are located in the upper right-hand corner of the drawing (see E82 pins 8/9 for bit 15 and E69 pins 8/9 for bit 14). These two bits are reset by the signal UBCE STATUS CLEAR L which (in turn) is sourced from M8106 (slot 12) drawing UBCE (from transistor Q1).

Following this signal back a bit leads to UBCF CNSL RESET L. Turning my attention to drawing UBCF (the next drawing) shows that this signal is derived from simultaneously depressing the console START and HALT switches. This I knew already - but it had slipped my mind until now and I have just tracked down the logic that implements it.

Basically, the CPU should start off in KERNEL mode - and this can be manually forced from the console by depressing HALT and START simultaneously. The software can then change the mode as required.

Dave
 
Hi All;

Dave, Thank You for Your input..

"" Of interest is the "ADR ERROR" indicator. ""
I am beginning to think, (I will need to Run the machine for awhile before I am more sure..) But, what is Overheating and causing the Address Error is my M9312 Card.. At present I am using my M9301 Card..

"" Where did you read that you needed to use the CONTinue button instead of the START button with the MMU? I don't think that is the case. ""
'KT11-C Memory Management Unit Maintenance Manual (DEC-11-HKTCA-C-D) Page 2-17
I could be Wrong in my interpretation of what it says..

"" Following this signal back a bit leads to UBCF CNSL RESET L. Turning my attention to drawing UBCF (the next drawing) shows that this signal is derived from simultaneously depressing the console START and HALT switches. This I knew already - but it had slipped my mind until now and I have just tracked down the logic that implements it. ""
I did NOT know this..

What or Where would You suggest I go or do next ?? And with what Boards ??

Another thing that I noticed, now, is that when I run a small program like the Light Chaser program, when I run it with the SJB Board, the light travels across the front of the Data Led's as it is supposed to travel..
But, when I have switched to the MMU Boards, the Data Leds are EXACTLY like what the Address Led's are Displaying and NOT displaying the Data information..
I hope this gives a Clue to what is or is not happening.. The Butler did it..

THANK YOU Marty
 
Last edited:
Yes - the KT11 manual on page 2-17 states that you should use the CONT key (in preference to the START key) if you want to single step your program from where it stopped last time.

In your case (I assume) you want to just RUN the lights chaser program from the program's start address.

In this case you should use the START key - as this sets MMU SR0 to zero - which will disable the MMU unit (which is exactly what you want to do).

If you ran a program to a HALT instruction (using the START key to start the program running in the first place), you would then use the CONT key in conjunction with the SINGLE STEP to single step your program from where it left off without altering the state of the CPU and MMU. This is a specific case. In general (when running diagnostic programs etc.) you should use the START key to start the program rather than the CONT key.

If the program goes berserk (and accidentally switches on the MMU for example) and you use the change R7 (PC) trick and CONT - this will not reset the mess the previous program made and your re-run attempt will fail as well (as the MMU is not now switched off - or the MMU registers contain garbage).

Can you just confirm the settings on the two console rotary switches when you have run the chaser program correctly with your SJB board please. Looking at the block diagram for the CPU in 1145_System_Engineering_Drawings_Jun74.pdf on page 12 of 192 I see the console data lights driven from the 4-way MUX "PDRF". From memory (no pun intended) - the display register is the value stored into the LP register shown on this diagram (drawing PDRB). On this drawing you can see the data lines going to and from the KT11 MMU.

Let's see if we can find out what the Butler did... At least you have two modes of operation (one with MMU in and one with MMU out).

Try the same program (lights chaser) with the SJB and the MMU boards after you have performed console reset (START and HALT keys simultaneously) and using the START switch instead of the CONT switch to run the program in both cases. We need to identify why there is a difference without making too many changes to the rest of the 11/45 (otherwise we will get confused)! The lower rotary switch should be set to "DISPLAY REGISTER" if I remember correctly.

Can you also post an assembly listing of the lights chaser program so I can see exactly what you are running (so we have the same frame of reference).

Dave
 
Last edited:
Hi All;

Dave, I have been hoping that I would hear from You before tonight..

"" Can you also post an assembly listing of the lights chaser program so I can see exactly what you are running (so we have the same frame of reference). ""

Yes,, At Address '001000, the following are entered..
'005000,
'005200,
'006100,
'000005,
'000775..

"" Can you just confirm the settings on the two console rotary switches when you have run the chaser program correctly with your SJB board please. ""
Top Switch equals "CONS PHY"
Lower Switch equals "DATA PATHS" ..

"" Try the same program (lights chaser) with the SJB and the MMU boards after you have performed console reset (START and HALT keys simultaneously) and using the START switch instead of the CONT switch. We need to identify why there is a difference without making too many changes to the rest of the 11/45 (otherwise we will get confused)! ""

I will try this again, Just to confirm what I am going to tell You..
When I run the Chaser program, with the SJB Board, I start it with the "START Switch" and it works fine..
When I try and Run the Chaser Program, with the MMU, if I start it with the "Start Switch" Both Address and Data Leds go Out (off)..
But, If I Start it with the "Cont Switch" then Both the Address and the Data Leds ""Look"" like it is Jumping from the End of the Program to the Beginning of the Program.. Where as Leds Bit 9 and 3 and 2 and 1 are all slightly flickering..

"" Looking at the block diagram for the CPU in 1145_System_Engineering_Drawings_Jun74.pdf on page 12 of 192 I see the console data lights driven from the 4-way mix PDRF. From memory - the display register is the value stored into the LP register shown on this diagram (drawing PDRB). On this drawing you can see the data lines going to and from the KT11 MMU. ""

I need to Look this up and see where the MMU is driving the MMU, so I can see for myself what You are referencing..
I have looked this up on page 12, I am now going to look up the PDR Reference sections in my Schematic and see what signals it shows and try and find these same ones on the MMU..

When I do an Examine or a Deposit, the DATA Lights show Exactly what I have Entered..

"" Yes - the KT11 manual on page 2-17 states that you should use the CONT key (in preference to the START key) if you want to single step your program from where it stopped last time. ""

I read this, but I wasn't sure if it was when starting my programs, and since Usually the Start Button wouldn't really do anything..

"" In your case (I assume) you want to just RUN the lights chaser program from the program's start address. ""

YES ..

In this case you should use the START key - as this sets MMU SR0 to zero - which will disable the MMU unit (which is exactly what you want to do). ""
OK..

THANK YOU Marty
 
Last edited:
Hmmm,

Either that program doesn't make sense or I am tired:

005000 ; CLR R0
005200 ; INC R0
006100 ; ROL R0
000005 ; RESET
000775 ; BR <backwards>

Can you point me to where you got the program from?

It maybe that it is setting R0 to 000001 and then keeps hitting reset and looping round again and again. With the switch set to "DATA PATHS" you are really looking at things that may not stay constant between having the MMU in and having the MMU out. The MMU is an extension to the CPU - not an add-on and the microcode may do something unexpected under the hood.

Let me write you a little test program that works with the "DISPLAY REGISTER" - although it may have to be tomorrow now.

Dave
 
Back
Top