• Please review our updated Terms and Rules here

PDP 11/45, Part 2

Hi All;
RSX11M; Thanks for the Suggestions.. There are alot of things to check.. I can Scope the power supply, and see how much it Varies or if it does.. And is with in Specs..
And Yes the DL11's, as well as the M9312, since I have two of them..
And the Memory boards, I can exchange one at a time.. Thereby I can eliminate, things one Board at a time Till I get to the processor boards.. Those on some I have only one Board, and others I have only One working board..
But, things can be eliminated one step at a time.. And as You have Told me don't change more than one thing at a time..
THANK YOU Marty
 
Hi All;
I May have found "a" problem.. One of the G114 Boards, I have replaced it and So far the System has Run, 1000 Octal Passes..
I will now switch the Boards back and see how many passes it makes before failing again.. It Failed at 372 Octal Passes..
Next I will switch it back to the Replacement Board, and Re-Run it some more..
The Replacement Board has run over 1000 Octal Passes, and still running..
The Replacement Board has run over 1500 Octal Passes, and still running..
NOPE, 2151 Passes, then it Stopped..
Once, it hopefully makes 3000 Octal passes, I will try the TU58em..
THANK YOU Marty
 
Last edited:
Hi All;
THANK YOU Don, they don't always stop at the same place, even though Address '000002 comes up often..
And at present the Address Error Led is coming on again.. So, I am letting it sit for a Bit..
And even though I have mostly worked in the Core memory section, It still might very well be in the processor side.. The only Board that I did and can replace at present is the GRA Board, I do have two working Boards.. All the other boards that are not GRA, that I have, have something else wrong with them so they will not even run at all.. Which at present is why I am consecrating on the Core Memory Boards..
THANK YOU Marty
 
Hi All;
Don, I tried it and here is where it Stopped, it didn't even make it thru one pass..
Also, Don, THANK YOU for that Listing, I did not know where that listing was kept for the tests..

On the Leds Address '765774, Data '100072..

R0 = '100072
R1 = '000000
R2 = '165650
R3 = '100072
R4 = '020000
R5 = '157776
R6 = '000000
R7 = '165774

I take it that this means that IT failed Test 6 !!! Not test 7 Right, but the Test before the last shown address..
THANK YOU Marty
 
Last edited:
Hi All;
Don, I tried it and here is where it Stopped, it didn't even make it thru one pass..
Also, Don, THANK YOU for that Listing, I did not know where that listing was kept for the tests..

On the Leds Address '765774, Data '100072..

R0 = '100072
R1 = '000000
R2 = '165650
R3 = '100072
R4 = '020000
R5 = '157776
R6 = '000000
R7 = '165774

I take it that this means that IT failed Test 6 !!! Not test 7 Right, but the Test before the last shown address..
THANK YOU Marty

With PC (R7) of '165774 it would have failed T8. Here is the last part of the code executed:

Code:
     342 165704 012705  160000          T8:	mov	#160000,r5		; 28KW memory boundary
     343 165710 005037  000006          	clr	@#6			; zap trap priority level
     344 165714 012737  165722  000004  	mov	#T8A,@#4		; point trap handler at next instr
     345 165722 012706  000502          T8A:	mov	#memloc+2,sp		; reset the stack pointer
     346 165726 005745                  	tst	-(r5)			; set R5 as last memory address
     347                                					; will continue to trap thru 4 until OK
     348                                					; this effectively sizes memory in R5
     349                                
     350 165730 005003                  	clr	r3			; init memory addr at zero
     351 165732 010313                  T8B:	mov	r3,(r3)			; ADDR -> (ADDR)
     352 165734 005723                  	tst	(r3)+			; reread and bump pointer
     353 165736 020305                  	cmp	r3,r5			; hit memsize limit?
     354 165740 101774                  	blos	T8B			; loop until done
     355                                
     356 165742 005003                  	clr	r3			; init memory addr at zero
     357 165744 005413                  T8C:	neg	(r3)			; negate current data to -ADDR
     358 165746 060313                  	add	r3,(r3)			; add ADDR + (-ADDR) to get ZERO
     359 165750 005723                  	tst	(r3)+			; reread, test for zero, bump pointer
     360 165752 001004                  	bne	T8D			; br if FAIL
     361 165754 020305                  	cmp	r3,r5			; hit memsize limit?
     362 165756 101772                  	blos	T8C			; loop until done
     363                                
     364 165760 000164  000002          	jmp	2(r4)			; PASS - return to CALLER at offset+2
     365                                
 [B]    366 165764 014304                  T8D:	mov	-(r3),r4		; memory FAIL, put bad data to R4
     367 165766 010300                  	mov	r3,r0			; put bad addr to R0
     368 165770 005006                  	clr	sp			; zap SP
     369 165772 000000                  	halt				; and DIE[/B]

So R4 is the bad data, R0 is the failed address. R5 is the highest existing memory address that was detected to respond.
 
Hi All;
THANK YOU, DON, The last awhile ago trade out I did was High Core itself.. I will Trade it back out..
THANK YOU Don, again.. It may take awhile for me to get this all straightened out in my head, not to say anything about in the Computer..
THANK YOU Marty
 
Hi All;
I took out the Last 16K of Core, as that was giving me Fits.. I can deal with the remaining set(s) of core boards, after I get other thing going well..
It is Back to Passing the ZZ Tests, Now to wait and see How Long these last.. Its just starting so it will be awhile, If it keeps on running..
The System has made it to the 3000 Octal point and still counting..
The System has made it to the 5000 Octal point and still counting..
Next is the TU58em..
THANK YOU Marty
 
Last edited:
Hi All;
No good !!!!
Here is a snapshot of the screen, Same as before..

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Marty>cd \tu58em

C:\tu58em>dir
Volume in drive C has no label.
Volume Serial Number is E025-F88A

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,917,944,320 bytes free

C:\tu58em>tu58em -d -v -p 1 -s 4800 -r 11xxdp.dsk
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 4800 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=0x00 last=0xFF
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
info: flag=0x04 last=0x00
info: <INIT> seen
info: flag=0x08 last=0x04
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 here is the Terminal shot --

000000 173600 165212 000502
@DD0
 
Are you really running your serial link at 4800b? Just asking, it is not a common rate to use. It should work just fine, though.

If the ZZ prom is able to run the M9312 diagnostics for 5000+ passes that is a pretty good sign. The diagnostics are not super thorough, but they do provide a pretty basic sanity check that the CPU is more or less alive, and that memory can accurately remember.

However, I am still troubled by the number of NULL characters you seem to be getting on your serial TU58EM connection. I have not seen that before. This part looks correct:

Code:
info: flag=0x04 last=0x00
info: <INIT> seen
info: flag=0x08 last=0x04
info: <BOOT> seen
info: boot unit=0 blk=0x0000 cnt=0x0200

but all the messages about NULL (zero) characters is a concern. You should not be seeing them. It is almost like your DL11 is transmitting continually a string of NULL characters, only interrupted by real transmitted characters when the boot PROM sends them.

It would be very interesting to swap out this DL11 for another, or put a scope and/or logic analyzer on your serial link lines.

Don
 
Hi All;
Don, I have many of the same concerns that You do..

"" However, I am still troubled by the number of NULL characters you seem to be getting on your serial TU58EM connection. I have not seen that before. ""
Don, after the Bootloader is Loaded, what is supposed to happen next ?? (After the PDP starts to execute the Bootloader it has just put into memory) ??
IS there a Vector or an interrupt to signal either end that tells the PDP that something is coming down the pike from the TU58, or that the PDP sends to the TU58 saying, I'm ready for more DATA, or something of the sort..

""" This part looks correct:

Code:
info: flag=0x04 last=0x00
info: <INIT> seen
info: flag=0x08 last=0x04
info: <BOOT> seen
info: boot unit=0 blk=0x0000 cnt=0x0200
but all the messages about NULL (zero) characters is a concern. You should not be seeing them. """

""" It is almost like your DL11 is transmitting continually a string of NULL characters, only interrupted by real transmitted characters when the boot PROM sends them. """ But, Wouldn't that show up when I am downloading the BootLoader ??
I am going to put into Memory the Echo program from DEC that is in the M7800 manual, it checks alot of the things, that a minimal Echo program would not check.. Maybe that can give us a clue as to what is happening or not happening.. Like in Vectors or Interrupts, anyway I hope so..

"" It would be very interesting to swap out this DL11 for another, or put a scope and/or logic analyzer on your serial link lines. ""
I have two working units or at least that I know of they are working, One an M7800 and the other an M7856..
The M7800 is the Terminal Console and the M7856 for the TU58EM serial connection..


THANK YOU Marty
 
Hi All;

"" It would be very interesting to swap out this DL11 for another, or put a scope and/or logic analyzer on your serial link lines. ""
I have two working units or at least that I know of they are working, One an M7800 and the other an M7856..
The M7800 is the Terminal Console and the M7856 for the TU58EM serial connection..
I wish you lived closer I'd loan you my DL11 that I used when I had an 11/34 and used TU58EM to
load RT11 to an RL02 disk. I live in Maryland.

Just a note though I bought a Raspberry Pi and have been playing with it and my Logic Analyzer. I have
coded up a bit counter in C and just got the LA to trigger properly (with Lou's help). I am having more
fun than I have had in a long time playing with this stuff.

I wish you the best on solving this Marty.

Tim
 
Hi All;
Tradde, I know that's part of the Problem, I have had with alot of things.. No, one that I know of, in the groups that I am in.. Lives anywhere close to me or me to them..

THANK YOU Marty
 
"" However, I am still troubled by the number of NULL characters you seem to be getting on your serial TU58EM connection. I have not seen that before. ""
Don, after the Bootloader is Loaded, what is supposed to happen next ?? (After the PDP starts to execute the Bootloader it has just put into memory) ??
IS there a Vector or an interrupt to signal either end that tells the PDP that something is coming down the pike from the TU58, or that the PDP sends to the TU58 saying, I'm ready for more DATA, or something of the sort..

TU58EM is the slave in all interactions with the PDP-11. It does not do (send) anything until requested to do so by the PDP-11 (once the inital init sequence is completed).

Once the PDP-11 has started running the bootblock code (which it requested be sent down as a 512 byte chunk), the PDP-11 will start making requests for particular blocks by sending 14 byte command packets to TU58EM. TU58EM will respond by sending down chunks of data 128 bytes at a time. There will be four 128 byte data chunks sent for each 512 byte block requested by the PDP-11. At the end of the read transaction, the PDP-11 will send a 14 byte end packet to TU58EM indicating all was received OK (or not).

The 14 byte command and 128 byte data packets (132 bytes total with header/trailer) are sent with no internal handshaking, so the PDP-11 side has to be written to receive up to this amount of bytes as fast as they can be sent. All the TU58 drivers know this and are written to be compliant (like XXDP DD.SYS for example).

Later on DEC added what is called MRSP (modified radial serial protocol) mode to the TU-58 protocol, but it is not really documented anywhere that I can find (not officially anyway, some folks have tried to reverse engineer it). Does not really matter here as PDP-11s in the context we are talking about (XXDP) don't use MRSP.

If you want to see the details of how the PDP-11 interacts with the TU58 see Appendix A of this document (bitsaver's of course): http://www.bitsavers.org/pdf/dec/terminal/vt103/EK-VT103-UG-001_VT103_User_Guide_Sep79.pdf Not the most obvious place to look, you have to know that the VT-103 was an 'intelligent terminal' that used TU-58 drives for local storage.

Don
 
Last edited:
Hi All;
DON, Thank You for that detailed explanation. I am going to look at the Document that you referenced..
I suspect that -- There is something in
"" the PDP-11 will start making requests for particular blocks by sending 14 byte command packets to TU58EM. "" This section of my PDP that is NOT Correct..

"" Once the PDP-11 has started running the bootblock code (which it requested be sent down as a 512 byte chunk), the PDP-11 will start making requests for particular blocks by sending 14 byte command packets to TU58EM. TU58EM will respond by sending down chunks of data 128 bytes at a time. There will be four 128 byte data chunks sent for each 512 byte block requested by the PDP-11. At the end of the read transaction, the PDP-11 will send a 14 byte end packet to TU58EM indicating all was received OK (or not).

The 14 byte command and 128 byte data packets (132 bytes total with header/trailer) are sent with no internal handshaking, so the PDP-11 side has to be written to receive up to this amount of bytes as fast as they can be sent. All the TU58 drivers know this and are written to be compliant (like XXDP DD.SYS for example). """
I need to figure out How the PDP sends these commands, Handshaking of some kind, that is HayWire@#*... Either in the code or in the Hardware..

THANK YOU Marty
 
Hi All;
Can AnyOne Read the code better than I can or the copy that I got from BitSavers..
"" I am going to put into Memory the Echo program from DEC that is in the M7800 manual "" I am having trouble Reading the code, I can't tell in alot of places whether it is a "0" or a "7" as in the Dec prints the Ink and the type of typeset they used makes the two look alike..
Also, I looked at the Document that Don referenced, and I am wondering.. Do I need HandShaking wired in for the TU58 ??
I have just pins 2 and 3 and 7 for ground.. RX and TX..
Does either pins 4 or 20 need to be connected ??
THANK YOU Marty
 
Last edited:
Do I need HandShaking wired in for the TU58 ??
I have just pins 2 and 3 and 7 for ground.. RX and TX..

Hi Marty,

I cannot help with reading the prints you are talking about...

But you are over-thinking all of this. Look at what Don wrote before:

...the PDP-11 side has to be written to receive up to this amount of bytes as fast as they can be sent. All the TU58 drivers know this and are written to be compliant...

All you need for this is a three wire connection. That's what I have, working perfectly at 9600 bps.

I've been following you and your "blogs" from the beginning. I'm pulling for you. But many times when you are working on a problem, you suddenly break off on a tangent. My advice is to concentrate on what Don is saying and asking about. Don't confuse yourself by trying to think about everything all at the same time.

smp
 
Hi Marty,

All you need for this is a three wire connection. That's what I have, working perfectly at 9600 bps.

My advice is to concentrate on what Don is saying and asking about. Don't confuse yourself by trying to think about everything all at the same time.
I have deciced to send my DL-11 to Marty. This worked fine when I last used it so hope it still works. He needs it and I don't.
What the best way to pack a board like to to prevent damage. I have no anti-static bags. I don't want to have static destroy any components.
Tim
 
Hi All;
SMP, Thanks for Your reply.. I thought that only three wires was needed, but in the Document that Don referenced it talked about using an XOFF signal, so the controller knows that the transmission is OK.. And I didn't know if this was a wire (pin) on the connector or an ASCII code it is looking for..
Don has mentioned numerous times about my Unit Sending "NULLS" and no one knows where they are coming from, (not that I expect anyone to know) or why or how they got created.. So, I thought and having starting to read the Protocol, that I may have missed something.. Or something in my Hardware is screwing up.. Once I find where the NULLS are coming from, them I can find out how to get rid of them.. And, Hopefully that will eliminate most of the problem.. But If either my Interrupts or Vectors are not working correctly or only some of the time, then the request for the data might be ignored, and / or it just sends the NULLS because something is in Never, Never Land..

THANK YOU Marty
 
Back
Top