Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: Need help with 11/23 system

  1. #11

    Default

    The BDV11 terminators is soldered into place while the backplane one are in sockets. You probably need to remove the backplane to get the terminating resistors out of their sockets. I had to do exactly this a year ago when building a PDP-11 from an old ex uVAXII BA23 chassi.

    While checking the BDV11 you could also check if the 22 bit ECO has been applied. There should be connection between BC1 .. BF1 and the E1 terminating resistor pins 12..15. Probably not a show stopper, though.

    BTW. Today I fiddled with a BDV11. It turned out that the toggle switches on the BDV11 didn't made contact very well which made the system remain in HALT very often, even though the switch was in the right position. The switch is going to a pair of inverters forming a SR flip flop and sometimes they were stuck in HALT enable...

  2. #12

    Default

    Looked at what was involved in getting to the terminating resistors from the backplane. Wow, that is a hassle!! I did get PDP11gui running and even with other boards in place it continued to run when I was examining I/O which takes a long time to run. So still don't know what is the culprit for the sporadic behavior during normal startup. I do want to run a TU58 emulation so I have to get another cable for the DLV11J so that will be several days. The BDV11 does not have the 22 bit ECO applied.


    -Al

  3. #13

    Default

    Not much luck on the sporadic behavior. Decided to go ahead and run an RT11 emulation using TU58EM. Code entered as shown in code listing when gave the 1000G the computer went into run mode. However nothing happened after that on the terminal screen. I have posted a shot of the terminal screen. I also posted shots of the emulation screen. On the first attempt I got a line that read info: boot unit=0 . Does that mean that the boot was successful? When I tried again as shown at the bottom of the screen I did not get that message (I did restart the boot loader). I hope I have missed something simple and obvious to you Senior Members!!


    Thank you very much!


    -Al
    Attached Images Attached Images

  4. #14

    Default

    At what instruction does the machine halt when you press halt switch? It can give a clue what is going on.

    Never tried tu58em on Windows. Also different serial USB dongle are not equally good. There are FTDI chip and prolific chip.

    Will Kranz has a set of nice pages on PDP-11 debugging. http://www.willsworks.net/pdp-11/pdptrbsh

    Is your hardware handling BREAK correctly? The TU58 protocol relies on break to work. It should be possible to test break sending on the DLV11J by setting certain bit in the registers.

    Another thought was that it should be possible to enable the trace bit in the CPU and then single step through code. The trace bit causes an interrupt after each instruction so the trace vector has to be setup as well as the stack pointer. But the interrupt handler would probably be a single halt followed by a RTI instruction so that you could just press P to resume.
    Last edited by MattisLind; June 27th, 2018 at 01:44 PM. Reason: Wrong spelling of Will's name.

  5. #15
    Join Date
    Aug 2010
    Location
    Silicon Valley USA
    Posts
    707
    Blog Entries
    4

    Default

    Quote Originally Posted by lsi11al View Post
    Not much luck on the sporadic behavior. Decided to go ahead and run an RT11 emulation using TU58EM. Code entered as shown in code listing when gave the 1000G the computer went into run mode. However nothing happened after that on the terminal screen. I have posted a shot of the terminal screen. I also posted shots of the emulation screen. On the first attempt I got a line that read info: boot unit=0 …. Does that mean that the boot was successful? When I tried again as shown at the bottom of the screen I did not get that message (I did restart the boot loader). I hope I have missed something simple and obvious to you Senior Members

    Thank you very much!

    -Al
    Typically the first thing I do before trying to bring up TU58EM on a new piece of hardware is to validate that the TU58 serial port is 100% functional.

    First, write a simple loop that writes bytes in a count pattern 0..255 out to the serial port, and observe the data on an external terminal program. Validate data is a counting pattern at the correct baud rate.

    Second, put a loopback connector on the TU58 serial port (ie, wrap TX back to RX). Update the above program to transmit a byte, then receive a byte, and check for a match. Run it in a loop of 0..255 data to validate all 8b patterns.

    If the above two tests can pass, it will be a very high probability that you can get TU58EM to run at this point. If they don't pass, then you need to debug the serial port card before launching TU58EM, as you will just make yourself frustrated otherwise.

    The above tests can be done in a couple of dozen instructions each, so can easily be download via ODT at the main console port, just like entering the bootstrap.

    Don

    Here is a listing of a simple little test I use that uses 'diagnostic loopback mode' of the serial port (available in DL11-W cards, not sure about DLV11J cards). Or use a loopback cable.
    Download locations 2006..2136, start at 2010. It copies bytes from the console RX port to the TU58 TX port, loops back to TU58 RX port, then copies bytes to the console TX port.
    So what your type (or send) on the console port should wrap around thru the TU58 port TX/RX, and then appear back on the console terminal.
    Typically I use TeraTerm to send a known ASCII data file and validate the receive is as I expect it to be.

    Code:
           1                                .title	DL11 Tester - programmed I/O
           2                                
           3                                .sbttl	DL11 definitions
           4                                
           5        177560                  ttbase	=177560
           6        176500                  dlbase	=176500
           7                                
           8        000000                  rcsr	=0
           9        000002                  rbuf	=2
          10        000004                  tcsr	=4
          11        000006                  tbuf	=6
          12                                
          13                                .sbttl	low memory
          14                                
          15                                	.enabl	ama			; change all mode 67 references to 37
          16 000000                         	.asect				; absolute load image
          17                                
          18        000200                  	.=200
          19 000200 000137  002010          	jmp	@#start			; standard diagnostic entry
          20                                
          21                                .sbttl	global variables
          22                                
          23        002000                  	.=2000
          24        002000                  stack:	.blkw	3			; top of stack plus some space
          25 002006 000000                  option:	.word	000000			; 0=straight thru, 4=loopback in TU58 interface
          26                                
          27                                .sbttl	program start
          28                                
          29 002010 012706  002000          start:	mov	#stack,sp		; setup a stack
          30 002014 000005                  	reset				; reset the world
          31                                
          32 002016 005000                  	clr	r0			; clear TTY flag and char
          33 002020 005001                  	clr	r1			; clear TU58 flag and char
          34 002022 012702  100000          	mov	#100000,r2		; bit15 flag set plus zeroes
          35 002026 012704  177560          	mov	#ttbase,r4		; console DL11 base
          36 002032 012705  176500          	mov	#dlbase,r5		; TU58 DL11 base
          37                                
          38 002036 053765  002006  000004  	bis	option,tcsr(r5)		; TU58 interface option(s) [MAINT mode]
          39                                
          40 002044 105764  000000          loop:	tstb	rcsr(r4)		; check TTY rcv char done
          41 002050 100003                  	bpl	10$			; br if none
          42 002052 010200                  	mov	r2,r0			; set rcv flag <15>
          43 002054 156400  000002          	bisb	rbuf(r4),r0		; yes, get the char, clr rcv char done
          44                                
          45 002060 105765  000000          10$:	tstb	rcsr(r5)		; check TU58 rcv char done
          46 002064 100003                  	bpl	20$			; br if none
          47 002066 010201                  	mov	r2,r1			; set rcv flag <15>
          48 002070 156501  000002          	bisb	rbuf(r5),r1		; yes, get the char, clr rcv char done
          49                                
          50 002074 105764  000004          20$:	tstb	tcsr(r4)		; check TTY xmt char ready
          51 002100 100005                  	bpl	30$			; br if not ready
          52 002102 005701                  	tst	r1			; check char avail to xmt
          53 002104 100003                  	bpl	30$			; br if not
          54 002106 110164  000006          	movb	r1,tbuf(r4)		; yes, send TU58 char to TTY
          55 002112 005001                  	clr	r1			; clear flag and char
          56                                
          57 002114 105765  000004          30$:	tstb	tcsr(r5)		; check TU58 xmt char ready
          58 002120 100005                  	bpl	40$			; br if not ready
          59 002122 005700                  	tst	r0			; check char avail to xmt
          60 002124 100003                  	bpl	40$			; br if not
          61 002126 110065  000006          	movb	r0,tbuf(r5)		; yes, sent TTY char to TU58
          62 002132 005000                  	clr	r0			; clear flag and char
          63                                
          64 002134 000137  002044          40$:	jmp	loop			; back to top	
          65                                
          66                                .end
    Last edited by AK6DN; June 27th, 2018 at 02:42 PM.

  6. #16

    Default

    MattisLind and AK6DN thank you for your comments. I will look them over and will no doubt have further questions as I am a newbie with this sort of thing.

    Thank you!!

    -Al

  7. #17

    Default

    Don has a really god point. Check the DLV11J serial port first.

    You can in fact just jumper a few pins directly in the connector on the board. A quick check with the nice pages by Will Kranz give that on the DLV11J you should jumper together 9-7 and 8-3. http://www.willsworks.net/pdp-11/pdpcards#DLV11J

    Then you could just use micro ODT to exercise the port. Send some data by depositing to the XBUF and check that the read status in RCSR is updated and that the data is received in the RBUF.

    Here is the manual for DLV11J. http://www.bitsavers.org/pdf/dec/qbu...uide_Oct78.pdf
    Last edited by MattisLind; June 27th, 2018 at 01:44 PM.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •