• Please review our updated Terms and Rules here

PDP 11/45, Part 4

Hi All;

Fritzm, Here is what I found, with a bonus..
CA1 0000 Volts,
CB2 -- 12 Volts,
CU1 + 12 Volts..

I hope this helps..

"" And if so, can you see wire(s) that deliver the voltage there from slot 15? ""

No, I cannot see them, as they are buried and I would have to tear the whole thing apart to do this.. But, It is, if I remember correctly a Large (about 24 ga) solid wire wrap type of wire (blue in color) from the pin on slot 15 to the slots on 26 thru 28..

I cannot tell if it was added later or if it was origional..

My P7 has a yellow wire, not connected to anything, then two red wires, then a purple wire, not connected to anything, and three blue wires..

THANK YOU Marty
 
Last edited:
Yes, interesting -- thanks very much! Would be curious to know if other folks with 11/45s have this wire. My machine does not.
 
Last edited:
Hi All;

Fritzm, I ohmed it out (CU1) and it comes out on P3 on the Gray or White wires..

The order is one purple wire, then a yellow wire, then two red wires, a blue wire, then THE two Gray wires and last one blue wire..

I hope this helps..

"" Would be curious to know of other folks with 11/45s have this wire. My machine does not. ""

You could always add one..

Glad I could Help..

I have done a quick look at the Manual that You recommended for me to take a peek at..
On Monday, I will start going thru the procedures that it suggests in sections 2.5 and following..

THANK YOU Marty
 
Last edited:
Hi All;

Dave, here is the chase program from Fritzm.. Which also seems to fail, I thought this might help you Diagnose it..

Addr/ Data
1000 '013700
1002 '177570
1004 '005300
1006 '001376
1010 '006301
1012 '001002
1014 '012701
1016 '000001
1020 '010137
1022 '177570
1024 '000765

000000 013700 177570 L0: MOV @#177570, R0 ;LOAD COUNT FROM SWITCH REGISTER
000004 005300 L1: DEC R0 ;COUNT DOWN
000006 001376 BNE L1 ;LOOP UNTIL ZERO
000010 006301 ASL R1 ;SHIFT DISPLAY VALUE
000012 001002 BNE L2 ;SKIP AHEAD IF NOT SHIFTED OUT
000014 012701 000001 MOV #1,R1 ;ELSE RELOAD
000020 010137 177570 L2: MOV R1,@#177570 ;STORE TO DISPLAY REGISTER
000024 000765 BR L0 ;REPEAT FROM THE TOP

THANK YOU Marty
 
Last edited:
Hi Marty - and welcome to the thread fritzm. I have been following your blog regarding your 11/45 - so it is great to see you here!

I was out yesterday trying to find some replacement mains cable for my H742s. Unfortunately, I didn't get any. I have, though, found a shop in Birmingham that sells some - but they will not post (I will have to go and pick up) - so that's another trip this coming weekend.

Marty - I suspect your 11/45 is actually executing instructions correctly. The data display for the front panel is sourced from the M8104 card in slot 10 (PDR). Is it possible that the front panel selector switch for the choice of which register to display is a bit dirty and it is not selecting the correct register I wonder?

With the selector switch set to "DISPLAY REGISTER" try and deposit something into 777570 from the front panel - whatever you deposit should appear on the 16 lamps of the data display.

I disassembled the "chase program" myself - and noted that (initially) R1 isn't loaded with a value. So the first few iterations of the loop 'may' display 'rubbish' on the data display until any standing bits have been shifted out whereupon the value will be initialised to 1.

I thought about poking the BEL to something else as well - so good call there. The other option is to just close down PDP11GUI and run TeraTerm of course and get your BELL back...

Question - where can I buy some replica KM11 maintenance boards? I found it in your blog now I have read the later entries...

I need to catch up with all the posting that has been going on whilst I have been asleep... I also had to work a bit yesterday afternoon (modifying 8086 assembler code and building it on a PDP-11 running RSX11M+ would you believe)!

Dave
 
Last edited:
Hi Dave,

Guy's kits look really very nice. I see you found the link, but for others: the one I built is based off an ExpressPCB layout by Tom Uban, linked off his page at http://www.ubanproductions.com/museum.html.

One nice thing about Tom's design is that is a single long board, so it doesn't require extra extenders if you don't have them around. But ExpressPCB doesn't do the nice gold contacts that Guy has got on his, you don't get solder mask, Guy's nice divider and labels, etc.

A couple notes from my build if others decide to try Tom's layout:

  • I couldn't find a similar DPDT momentary to the one Tom used in his layout, but did find a suitable SPDT. That means my step switch is slightly off-center; if such things bother you you may want to source a switch first and adjust the pads in the layout before ordering.
  • ExpressPCB didn't route out the notches by the fingers, so I had to do this myself with some tin snips and a flat file. ExpressPCB is supposed to route, so you might want to double check the outline in the layout before ordering?
  • The micro-break feature doesn't seem to work exactly right on my 11/45 (I have to hold down CONT on the front panel and engage S2 to hold the machine in T2 on the desired micro-instruction, instead of it just stopping at T2 on its own). I haven't yet investigated whether this is a problem with my KM11 build, my CPU, or Tom's layout.

Being able to step microcode to debug the CPU is really awesome!
 
Hi Marty,

A good easy test for the switch register and display multiplexor on the 11/45 that you might want to try to check Dave's theory is to halt the machine and set data display to BUS REGISTER. Then the data display should match exactly the toggles as you flip them up and down. This is because the microcode console idle loop continuously updates the bus address register from the switches.

And as Dave mentions, also try depositing various values to 777570 -- those values should show up when data display is set to DISPLAY REGISTER.
 
Last edited:
Hi All;

Fritzm, Thank You for the information..

But, a Question --

"" And as Dave mentions, also try depositing various values to 777570 -- those values should show up when data display is set to DISPLAY REGISTER. ""

If I copied Your program correctly and it has '177570 and above You have '777570,

Which is it OR can either be used ??

I will try these Suggestions Tomorrow when I fire up the 11/45..

Also, I will fire up my KM11 equivalent and see if it works..

"" Being able to step microcode to debug the CPU is really awesome! ""

You will have to explain more to me, about that..

I would like to Understand about the CPU, like You have been forced to do, fixing Your machine to working Order..

I also would like to know about using Your Logic Analyzer to help find and fix it's problems, and possibly working thru the Manual that You linked to in section 2.5.. working my way thru that as well..

Dave, "" I also had to work a bit yesterday afternoon (modifying 8086 assembler code and building it on a PDP-11 running RSX11M+ would you believe)! ""

I would be Interested in more information on How You did this ??

"" I thought about poking the BEL to something else as well - so good call there. The other option is to just close down PDP11GUI and run TeraTerm of course and get your BELL back... ""

The Main Reason I switched from TeraTerm to PDPGUI was I didn't have to Switch from 8 bits after I loaded in a program to 7 bits for Display of the Characters..
With PDPGUI I don't have to switch bit settings to Display text..

THANK YOU Marty
 
Last edited:
Hi Marty,

On the 11/45, addresses stored in programs can be at most 16 bits, so 000000-177777. The Unibus on the machine, though, can handle addresses up to 18 bits, 000000-777777, and on the Unibus, I/O devices and machine registers are addressed in the top 4KW, 760000-777777. In order to make those addresses still available to programs, without memory management hardware or when it is disabled, these top 4KW of the 18-bit Unibus space are mapped down onto the top 4KW or program address space, at 160000-177777. This job done on your system by that SJB board that you built.

So, the machine display register is actually at Unibus address 777570. But when you access that from within a program, you write 177570 and the machine maps that up to 777570 on the Unibus for you. When you use the front panel in CONS PHYS mode and toggle in addresses with LOAD ADDR, though, or are typing at the boot ROM monitor, you specify 777570.

Hope that makes some sense! The situation can get a lot more complicated if the memory management hardware is installed and enabled; then an operating system can map 16 bit addresses in chunks all around the 18 bit address space in a very flexible fashion, can use different mappings for instruction and data accesses, can use different mappings for kernel vs. user code, etc. It can get hard to keep track of. That's what all those other address modes on the front panel are for.
 
Last edited:
Slight correction: the M9301/M9312 boot ROM monitor is actually running PDP-11 code, so I/O addresses would be 16b values of 160000 thru 177777. The console switch register will be at 177570 (a 16b address that is mapped to the 18b address 777570 by the CPU hardware).

The boot ROM runs with memory management off, so it can only access the low 28KW of memory and the 4KW I/O page via the 'L' load address command and associated 'E' and 'D' commands.

Thru the front panel switches you have access to the full 18b UNIBUS address space, so you can access 124KW of memory at 000000-757777 and the 4KW I/O page at 760000-777777.
 
Ah, yes -- thanks for the correction AK6DN. :thumbsup:

777570 from the front panel, 177570 from a program or the boot ROM 'L' command.
 
Hi All;

Happy 4th for those here in America..

"" A good easy test for the switch register and display multiplexor on the 11/45 that you might want to try to check Dave's theory is to halt the machine and set data display to BUS REGISTER. Then the data display should match exactly the toggles as you flip them up and down. This is because the microcode console idle loop continuously updates the bus address register from the switches. ""

No, such luck, I put the Register Display switch in BUS REGISTER and it shows No lights on, Halt switch is Halted.. I have tried flipping any / all of the switches and NO corresponding Led comes on..

"" With the selector switch set to "DISPLAY REGISTER" try and deposit something into 777570 from the front panel - whatever you deposit should appear on the 16 lamps of the data display. ""

No, when I did a Load Address to '777570 and did a deposit of '1 in DATA PATHS mode and then switched over to DISPLAY REGISTER, with DISPLAY REGISTER it shows '177570 and not '000001..
But, with my confusion earlier, when I Addressed '777570 and Deposited '177570 when in DATA PATHS mode, I thought it was working because in DISPLAY REGISTER mode it showed '177570.. Which seemed right, but it was not right.. I have corrected what I first posted..

I am going to spray Deoxit on Both Switches and see if that Helps..

THANK YOU Marty
 
Last edited:
I forgot it was Independence Day for you guys. Have a happy one.

To expand:

Set the front panel selector switch to "DISPLAY REGISTER".

HALT the machine (if it is not already halted).

REPEAT:

Set the switches up for 777570.

Hit "LOAD ADRS".

Set the switches up for 123456 (or any other random 16-bit number).

Hit "DEPOSIT".

Do the data lamps light up with 123456 (or whatever random 16-bit number you chose)?

Repeat the above process ( from REPEAT: ) with different switch values to make sure all the bits of the DISPLAY REGISTER are working as expected. Don't forget to reload the same address (777570) every time - as the PDP increments the address every time a DEPOSIT is done.

If this simple test doesn't work - we probably need to investigate the data path to the console lamps and/or your wire-wrapped card.

Dave
 
Hi All;

Thank You, Dave, I am just Curious, What is Taught there in England in Schools about Our 4th of July and Independence from England.. I know what we are Taught, but, what Are You Guys taught in School ??

First, the Switch Register has to be (for my machine) in DATAPATHS mode to do anything, including a Deposit..
When in DISPLAY REGISTER it shows '177570 right off the Bat..
Also, I notice, and If I remember Correctly it isn't Correct, but, the mADRS FFP/CPU is showing '177570 as well..

So I put the switch in DATA PATHS mode (HALT is down), No lights on.. Put '177570 into the Switches Press Load Address, Address shows '177570..
I put 123456 into the Switches and Press Deposit and I have 12345 the six doesn't show up as that is in bits 16 and 17 which is beyond the word length..
So in DATA PATHS mode I have '777570 in the Address and '12345 in the Data lights..
Switching Register switch to BUS REGISTER shows '777570 on the Address lights and '12345 on the Data lights..
On FFP/CPU mode it shows '777570 on the Address lights and '177570 on the Data lights, and is the same for DISPLAY REGISTER mode..
Not Good, but, at least it is a clue to what is wrong..
I didn't put in the opposite in the Data, (54321) as at this point it would be pointless..
And I did spray the Switches, and clean them..

I switched to my other DATA PATHS Board, and tried to do a Deposit as above, NO Change..

Looking at page 4 of the Console Schematic, is the diagram for the Switches, so I am going to get out my scope and check that those signals are OK, and that what is coming into and going out of E10 (7400) is correct..

E10 is functioning fine, It put's out what is Expected..
Now to look at where is connects to on the PDR card.. E65 (74S04) on the PDR card at first, anyway..

Ohming out E10 pin 3 to E65 pin 3, I get a beep.. Ohming out E10 pin 6 to E65 pin 13, I get nothing, No Beep..
So far it's the Cable, the wire(s) connecting E10 pin 6 to E65 pin 13 is open, from the back of the connector to the back of the connector of the cable,
I suspect, that I should check all of the lines on that cable, there are NO burn or other marks on the cable, I have sprayed the connector itself with Deoxit as well as the pin connections on the Board itself..

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

With a Wire-wrap wire Soldered to a feed thru to E65 pin 13 and attached to E10 pin 6 by an Ic Clip..

IT WORKS !!!!!

I can Deposit to '177570 and it shows up DISPLAY REGISTER and I can Switch to BUS REGISTER and the LED's follow my switch settings..

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Fritzm, Your Chase Program NOW WORKS !!!!

And Dave it looks like Your Program is working also..

This will be OK, Until I have to pull some Boards, and I will forget about the Wire and pull it out !!!!

THANK YOU Marty
 
Last edited:
Hi Marty,

Yes, it sounds like your display mux isn't working. After checking out the panel itself, check the cabling to your PDR, and also E65 on the PDR (sheet PDRF in the 11/45 engineering prints)?

(Ha, I see your edit below and you are ahead of me... :) )
 
Hi All;

Fritzm, Thank You for the confirmation of what I am doing..

Generally, I Edit my Posts adding stuff to it until that post gets too long, then I will start a new one..
So, even if You have looked a one of my previous posts, it is a good Idea, especially when there is work in progress, to see if I have updated it with new news..
So, once I have scoped E65, I will post what I have found on post #256, so that one can follow my progress all at one posting..

THANK YOU Marty
 
+1.

FYI: The BUS REGISTER is located at devices E13, E38 and E63 on sheet 3 of 9 with the LIGHT REGISTER (what I would call the DISPLAY REGISTER) at devices E15, E45 and E57 of the same page.

You can see the clock lines driving pin 9 of these devices.

Note that the outputs from the BUS REGISTER drives the inputs to the LIGHT REGISTER (so if the BUS REGISTER isn't working properly - you can't expect the LIGHT REGISTER to work properly either).

Dave
 
Last edited:
Hi All;

Fritzm, On Your Manual, EK-11045-MM-007, page 510, You state a page 510, Yet on BitSavers when I download it, what I see is about 233 or so pages, No 500 some pages ??

So, where are You getting Your copy with 500 pages ??

Also Thank You for the List of Programs and were the Bell is, I am going to copy that down and Run each of them and compare my Results with Your Results..

Also, You might try and Run the D0xx programs and see if that helps or not as well..

So far programs have passed as listed below --

CKBAB0 Passed with 6 stars, (SXT)
CKBBB0 Passed with 6 Stars, (SOB)
CKBCB0 Passed with 6 Stars, (XOR)
CKBDC0 Passed with 6 Stars, (MARK)
CKBEC0 Passed with 6 Stars, (RTT)
CKBFD0 it looks like it trapped at '1053.. (STACK LIMIT)
CKBGB0 Passed with 6 Stars (SPL)
CKBHB0 If I use my Register Program it Passes with 6 Stars.. (REG)
CKBIB0 Passed with 6 Stars (ASH)
CKBJA0 Passed with 6 Stars (ASHC)
CKBKA0 Passed with 6 Stars (MUL)
CKBLA0 Passed with 6 Stars (DIV)
CKBME0 Passed with 6 Stars (TRAP)
CKBNC0 Passed with 6 Stars (PIRQ)
CKBOA0 Halted at '1530 (STATES)

THANK YOU Marty
 
Last edited:
Back
Top