• Please review our updated Terms and Rules here

PDP 11/45, Part 2

Hi All;
Thank You Don, What am I missing ?? As that is exactly what I have, So, from what I gather, it keeps going Round Robin since there is nothing at those locations, and till there is something there, it just halts.. This is What I have been Fighting since I started this thing.. I have the TU58 BootLoader in Memory and I have checked it contents for accuracy against what You Posted in post #95..
Because If I start at location (Address) '000000 is just stops, Halts and as you said
""" If it is 'trapping to 000010' then that means the 11/45 detected an illegal opcode (usually the case) and then read the contents of location 000010 and used that as the location to start executing at. It also requires that the SP (R6) be set to something sane because a trap-to-000010 will push data on the stack.""""
Should I set R6 to a Value, before trying to re-Starting it ??? Even, though it would seem that it is not Trapping, but halting because of the '000000's at location '000006..
Address '000004 has '000006 and
Address '000006 has '000000.. As per Your listing and that IS what is in the 11/45..

In the Dis-assembly of this TU58 Bootloader, it does make the SP = '060000,
And at Address '000132 it has '013746, which I have MOV @#'000004, -(SP)
and at Address '000134 it is the '000004..
Is this where the Data is put into location '000004.. I have not gotten this far down to see if that is actually happening, in my debugging..

So once I load in the Loader for xxdp.. Which is in Memory, Do I need to Re-Start at some other Location, to make the program "RUN" and Load in the Rest of what would be on/in the TU58 ???
THANK YOU Marty
 
Last edited:
Hi All;
Thank You Don, What am I missing ?? As that is exactly what I have, So, from what I gather, it keeps going Round Robin since there is nothing at those locations, and till there is something there, it just halts.. This is What I have been Fighting since I started this thing.. I have the TU58 BootLoader in Memory and I have checked it contents for accuracy against what You Posted in post #95..
Because If I start at location (Address) '000000 is just stops, Halts and as you said
""" If it is 'trapping to 000010' then that means the 11/45 detected an illegal opcode (usually the case) and then read the contents of location 000010 and used that as the location to start executing at. It also requires that the SP (R6) be set to something sane because a trap-to-000010 will push data on the stack.""""
Should I set R6 to a Value, before trying to re-Starting it ??? Even, though it would seem that it is not Trapping, but halting because of the '000000's at location '000006..
Address '000004 has '000006 and
Address '000006 has '000000.. As per Your listing and that IS what is in the 11/45..

In the Dis-assembly of this TU58 Bootloader, it does make the SP = '060000,
And at Address '000132 it has '013746, which I have MOV @#'000004, -(SP)
and at Address '000134 it is the '000004..
Is this where the Data is put into location '000004.. I have not gotten this far down to see if that is actually happening, in my debugging..

So once I load in the Loader for xxdp.. Which is in Memory, Do I need to Re-Start at some other Location, to make the program "RUN" and Load in the Rest of what would be on/in the TU58 ???
THANK YOU Marty

First, you need to replace the '005007' (CLR PC) instruction in your TU-58 bootloader with a '000000' (HALT). That way when the bootloader thinks it has gotten all the boot code downloaded, it will stop instead of jumping to zero and executing.

Now execute the bootloader again and try to boot from TU58em. You should see TU58em receive a boot command, it will send 512 bytes (1000 octal) and then your CPU should halt.

Then we can look at locations 0 thru 776 in your memory and see if the downloaded boot block is correct. It should match what I posted in the previous thread, and should be 240 in 0, 440 in 2, etc. If this downloaded code matches the boot block exactly, then your serial interface is ok, the file you are feeding to TU58em is ok, and TU58em is running ok. As well as your CPU has basic functionality working.

Until we can verify that the contents of the boot block downloaded to locations 0...776 is correct there is no point in allowing it to execute.

Don
 
Hi All;
THANK YOU, DON, that is exactly What I needed and wanted to know..
I will do exactly that..
Don, After successfully Booting..
I have checked the 11/45 and ALL Memory Locations are Exactly as per Your Listing..
Here are the Registers, Just after the DownLoad, and it Halted..
R0 = '000000
R1 = '176500
R2 = '176504
R3 = '001000
R4 = '177777
R5 = '000004
R6 = '057774
R7 = '001124

THANK YOU Marty
 
Last edited:
If memory 0...776 matches the listing, and the GPR are as you show (which are all reasonable values) then that is very good.

Now you should just be able to LOAD ADDRESS 0 and then press START to execute the bootblock as loaded into memory.

If it works and starts loading the XXDP monitor great. If it HALTs somewhere then there is something still not quite right with your CPU I expect.

Don
 
Hi All;
Don, Is there a way to restart the Tu58em, with out doing a complete Re-Load ?? Of Course I can reload, But, If I can start the TU58em with out having to Re-Load it would be sometimes alot easier..
Also, Thanks for all of Your Help..
THANK YOU Marty
 
Hi All;
Don, it stopped or trapped at '000014..
I tried to get it going, But only after starting above '000136 did it keep on going, So it 'Ran' Something, but it did not access the TU58 any more.. And it also has the Adrs Err led on..

Here is a screen shot --

Directory of C:\tu58em

02/20/2014 10:14 PM <DIR> .
02/20/2014 10:14 PM <DIR> ..
02/13/2014 10:51 AM 262,144 11xxdp.dsk
02/13/2014 10:55 AM 262,144 11XX_1.dsk
02/13/2014 10:58 AM 262,144 11XX_9.dsk
02/13/2014 11:59 AM 2,272 common.h
02/13/2014 11:59 AM 3,113,243 cygwin1.dll
02/13/2014 11:59 AM 7,956 file.c
02/13/2014 11:59 AM 7,692 main.c
02/13/2014 11:59 AM 973 Makefile
02/13/2014 11:59 AM 14,057 serial.c
02/13/2014 11:59 AM 3,880 tu58.h
02/13/2014 11:59 AM 21,140 tu58drive.c
02/13/2014 11:59 AM 85,427 tu58em.exe
02/13/2014 11:59 AM 91,595 tu58ew.exe
13 File(s) 4,134,667 bytes
2 Dir(s) 20,839,813,120 bytes free

C:\tu58em>tu58em -d -v -p 1 -s 9600 -r 11xxdp.dsk -T
info: unit 0 r file '11xxdp.dsk'
info: tu58 tape emulator v1.4i
info: (C) 2005-2013 Don North <ak6dn@mindspring.com>, (C) 1984 Dan Ts'o <Rockefe
ller University>
info: serial port 1 at 9600 baud
info: TU58 emulation start
info: R restart, S toggle send init, V toggle verbose, D toggle debug, Q quit
info: emulator started
.........................info: flag=0x04 last=0xFF
info: <INIT> seen
info: flag=0x04 last=0x04
info: <INIT> seen
info: <INIT><INIT> seen, sending <CONT>
info: flag=0x08 last=0xFF
info: <BOOT> seen
info: boot unit=0 blk=0x0000 cnt=0x0200
info: flag=0x00 last=0x08
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen

And the Registers are as follows --
R0 = '000000
R1 = '176526
R2 = '000003
R3 = '000062
R4 = '001000
R5 = '000020
R6 = '000000
R7 = '176524
THANK YOU Marty
 
Last edited:
Hi All;
I was in the middle of a posting to You all..
When there was a Flash, and Everything went Out..
SomeThing on the Power Supply for the Core Shorted, Don't know if it was a wire or dust..
I have to pull All of the Core Boards and see IF the Power Supply is Toast or not.. And then the PDP 11/45 itself.. Though it should be OK Since it was on a different Power Supply..
THANK YOU Marty
 
HiAll;
The PDP 11/45 is fine.. I had everything going again.. and Something flashed again.. Taking the Breaker out again.. I Looks like I will need to find another Core Power Supply.. I can't take the chance of it taking something else out with it.. At this point I am Not sure what is causing the Flash, its not the wire..
THANK YOU Marty
 
Hi All;
Looking at what I have in Old Power Supplies.. None of the others have the Amperage that I need..
My Only choice at this time is to try and See If I can find out what is Wrong with this unit..
I can do much more cleaning of it, and checking all of the Diodes and Transistors in the area, and see if something shows up..
THANK YOU Marty
 
Hi All;
While I am writing this I have the Core Power Supply plugged in and on, with the Core attached, I cleaned up a number of Areas, with Qtip and 99% Alcohol.. The PDP it Not turned on, nor is it plugged into the Core Memory Backplane Via a UniBus Cable..
So far Everything seems to be better..
Maybe We can get back to things involving the TU58em Emulator..
It is back up, and seems to be working like before.. When this first happened I thought for sure I was going to have another PDP 11/40 type of situation..
THANK YOU Marty
 
Last edited:
Hi All;
Things are Back up and back to 'normal'..
I was in the middle of doing what I am doing now when I had the power failure and So, I lost my 'screen shot'.
I had decided to try one of Don's other programs.. And they Do react a little different.. I can hit start a few times and they Take off and "Run" but the Address Error Led is on, along with the Run Led, the Pause Led, Master Led and the Kernel led..
When trying 11xx_1.dsk the Register values are --
R0 = '005002
R1 = '176500
R2 = '176504
R3 = '001000
R4 = '001000
R5 = '000004
R6 = '177774
R7 = '003001

When I tried 11xx_9.dsk, I got --
R0 = '000001
R1 = '176500
R2 = '176504
R3 = '001000
R4 = '177777
R5 = '000004
R6 = '177774
R7 = '003001

And Nothing comes on the Console Screen..
THANK YOU Marty
 
Code:
C:\tu58em>tu58em -d -v -p 1 -s 9600 -r 11xxdp.dsk -T
info: unit 0 r file '11xxdp.dsk'
info: tu58 tape emulator v1.4i
info: (C) 2005-2013 Don North <ak6dn@mindspring.com>, (C) 1984 Dan Ts'o <Rockefe
ller University>
info: serial port 1 at 9600 baud
info: TU58 emulation start
info: R restart, S toggle send init, V toggle verbose, D toggle debug, Q quit
info: emulator started
.........................info: flag=0x04 last=0xFF
info: <INIT> seen
info: flag=0x04 last=0x04
info: <INIT> seen
info: <INIT><INIT> seen, sending <CONT>
info: flag=0x08 last=0xFF
info: <BOOT> seen
info: boot unit=0 blk=0x0000 cnt=0x0200

Everything looks exactly as expected above. Once the XXDP bootblock starts executing, however, things seem to go south:

Code:
info: flag=0x00 last=0x08
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen

The above (which repeats for a while) is not normal and indicates something went wrong.

From the point of view of booting, every one of the TU58 images 11XX_1.dsk, 1134_1.dsk, 11xxdp.dsk, etc are identical. The only difference is in the data files in the image, and we never get there. What this means to me is that you have some flaky hardware behavior, your CPU is behaving slightly differently each time you try the boot process. It could be a flaky logic board, a flaky mechanical connection, flaky core memory, a power integrity issue, or something else.

Unfortunately this is the most difficult type of problem to diagnose and repair. Hard stuck at faults are easy in comparison.

Don

Also, by the way, you do not need to use the '-T' switch when running TU58EM. That was really intended to be used to make TU58EM behave more slowly (like a real device, it adds lots of timing delays) so that TU58EM would pass the DEC TU58 diagnostic programs. They expect the TU58 to operate within certain timing windows, and the zero seek delay of TU58EM caused diagnostic test issues.
 
Last edited:
Hi All;
Don, Thank You for Your input..

""Also, by the way, you do not need to use the '-T' switch when running TU58EM. That was really intended to be used to make TU58EM behave more slowly (like a real device, it adds lots of timing delays) so that TU58EM would pass the DEC TU58 diagnostic programs. They expect the TU58 to operate within certain timing windows, and the zero seek delay of TU58EM caused diagnostic test issues.""

Most of the Time I don't use the -T switch, but, I have a few times lately to see if it would help, giving the 11/45 more time to compute.. It didn't make any difference..

"" From the point of view of booting, every one of the TU58 images 11XX_1.dsk, 1134_1.dsk, 11xxdp.dsk, etc are identical. The only difference is in the data files in the image, and we never get there. What this means to me is that you have some flaky hardware behavior, your CPU is behaving slightly differently each time you try the boot process. ""

""It could be a flaky logic board, a flaky mechanical connection, flaky core memory, a power integrity issue, or something else.""
You just might have Hit on something "Flaky Mechanical Connection..""
I am sure that is a big part of it, Do You have any Recomendations for Cleaning the DEC backPlane Contacts.. I had been told that the DEC blocks Don't come apart..

"" info: flag=0x00 last=0x08
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
info: flag=0x00 last=0x00
info: <NULL> seen
If it helps, It always has had this for Every time I have tried to boot, that part has not changed..
Part of the always changing part is the processor is running and when I stop it, it stops at different points in the code..

Unfortunately this is the hardest most difficult problem to diagnose and repair. Hard stuck at faults are easy in comparison. ""
That is what I am finding..

THANK YOU Marty
 
Hi All;
I have gotten what I need to see IF it will help me find what is Wrong or acting up on the 11/45..
I have it so I can Load the Exact same file on E11 and not have it automatically load.. But, single Step and show the Registers..
I have had E11 for awhile, but I didn't know how to make it do what I need it to do..
THANK YOU to RSX11M, for showing me How..
So, in the morning I can Load the program on the 11/45 and on E11 and do a step by step comparison..
And copy it Down onto Paper..
It will take me longer to 'show' the Registers on the real 11/45 than on the E11..
I have already done it some tonight, just for Practice, That "how" I know that It can be done..
I have already noticed that after Loading of the program that the unused registers on the E11 are set to '000000..
And on my real 11/45 they are set to '1777777.. But, I can correct that, and did so tonight..
THANK YOU Marty
 
Hi All;
I have run the E11 Emulator and I got it to a certain point.. and stopped there, it seemed to be in an endless loop.. I later need to go past that point and compare the two..
But, so Far the 11/45, I have gone way past were I had the E11.. And I am writing it down on Paper, and so far all looks good..
Right now the 11/45 is in a loop, I don't know if it is an endless loop or not..
But it is executing the code correctly, so far..
THANK YOU Marty
 
Hi All;
I have I think found the problem, and I have left a PM for Don, who knows more About the PC side of what is happening, than I ever will..
Don, stated in an earlier posing, that after the Booting it is not supposed to have the NULLS that it does, so at either this point or at a later point in the Code where I see it definitely upchuck.. Maybe and I emphasis the Maybe, that there is not enough time between when the PDP 11/45 starts its execution of the code that it just downloaded and the time that the PC starts to send the next block of code..
IF this is the case, I can do a couple of things to make it a little better..
I can Interleave the two Memory Core Boards and make it a little faster..
I have changed it to interleaving.. OR
I can try and see if it will use and or run with PDP 11/04/34 UniBus Ram Memory Boards.. Or
Slow the Time between when It Receives commands and sends the next from the PC to the 11/45..
Is it that the PDP 11/04/34 Run code faster than the 11/45, not that I have seen in the comparison charts in the book "Dec Computer Engineering" By Mr. Bell .. Of Course they use Bipolar Ram instead of core for their comparison..
THANK YOU Marty
 
Last edited:
Hi All;
I have I think found the problem, and I have left a PM for Don, who knows more About the PC side of what is happening, than I ever will..
Don, stated in an earlier posing, that after the Booting it is not supposed to have the NULLS that it does, so at either this point or at a later point in the Code where I see it definitely upchuck.. Maybe and I emphasis the Maybe, that there is not enough time between when the PDP 11/45 starts its execution of the code that it just downloaded and the time that the PC starts to send the next block of code..
IF this is the case, I can do a couple of things to make it a little better..
I can Interleave the two Memory Core Boards and make it a little faster..
I have changed it to interleaving.. OR
I can try and see if it will use and or run with PDP 11/04/34 UniBus Ram Memory Boards.. Or
Slow the Time between when It Receives commands and sends the next from the PC to the 11/45..
Is it that the PDP 11/04/34 Run code faster than the 11/45, not that I have seen in the comparison charts in the book "Dec Engineering" By Mr. Bell
THANK YOU Marty

PDP-11 CPU performance is not likely the issue. I have no problem running TU58EM thru a DL11-W at 19.2Kb (hacked, maximum is normally 9.6Kb) on my 11/34. My 11/44 interfaces to TU58EM at 38.4Kb no problem. I am running TU58EM on an old Dell Latitude 800 P3 Win2K laptop (mostly) or sometimes a P4 3.6G desktop.

My suspicion is that your setup is just not reliable enough in some form (logic, or power, or mechanical) and that will have to be debugged, probably by either small toggle in diagnostics, or loading standard DEC diagnostics thru the console port binary absolute loader, and running them for reasonable time periods (many minutes) to prove functionality and stability.

Don
 
Hi All;
I Now can say its intermittent, or at least that may be Part of the problem...
I Got a Set of Proms From DON, THANK YOU DON..
And I have been Running His ZZ Prom, which goes thru all of the Tests in the M9312 Prom, which include CPU tests and Memory Tests..
So, I have Run the prom three Times and it has Stopped at three different Times..
Once it ran 60 passes and then Stopped..
Next, it ran 155 passes and then stopped..
And lastly it ran 71 passes and then stopped..
So, something is intermittent in the system..

THANK YOU Marty
 
Hi All;
IT may be Heat related, it won't Run ZZ at all, and gives me an ADDress ERRor Led on..
I will need to try some different things to see If its Memory Related or Processor Related..

THANK YOU Marty
 
Could be power supply too. I was also thinking you should recheck your DL11's. Every time you've unseated one - things change drastically.
 
Back
Top