DEC MINC-11 at System Source

This page is about the MINC-11 in the System Source collection in Hunt Valley, Maryland.

Current Status

I visited System Soure in June 2022 and spent some time working on this MINC-11, attempting to get it running.

It comes up with a PDP-11/03 ODT prompt, if the Normal/Halt switch on the BDV-11 is toggled from Normal-to-Halt and then back to the Normal position. It can also successfully download (but not run) a TU58 emulator bootstrap from PDP11GUI over the Console cable.

However, it is currently unable to:

  • Download an RX02 image to an 8″ drive attached to the DQ419 using PDP11GUI; or
  • Run the TU58 bootstrap once it has been downloaded

When the TU58 bootstrap is run, the SLU Channel 0 TXD line gets held permanently in the SPACE (+VOLTAGE) condition (ie RS232 Break signal) because the bootstrap progams halts early in its execution. It halts as soon as the instruction “call xmtcmh8” is executed (it halts at 002142, which is unrelated to the address space used by the bootstrap program).

This problem is suspected to be caused by a fault on the 11/03 processor board (M7270), althrough it could possibly be caused by an unserviced Trap condition triggered by some other event. Note we did temporarily install the W3 link on the M7270 board to prevent LTC interrupts. This however did not fix the problem, and the W3 link was eventually removed again.

Console and TU58 emulator cables (both DB9F-to-DB9F), to connect to a PC via USB-to-RS232 dongles, have been fabriacted and are working fine. They have been left inside the MINC. The back panel has 4 x DB9M plugs on it. The top position (marked Console) is for the console. The next position down (marked “SLU2″) is temporarily being used for SLU0 (the TU58 Emulator) as the wiring to the other 2 DB9Ms is faulty.

The serial ports on the MINC are configured as follows:

CH0: 38400, N, 8, 1 [TU58 emulator]
CH1: 300, N, 8, 2
CH2: 9600, N, 8, 2
CH3: 9600, N, 8, 1 [Console]

The BDV11 is most likely currently configured to boot the MINC software off an RX02-format 8” diskette via the DQ419 controller.

Next Steps

Next steps to get this machines running are as follows:

  • Obtain a known good M7270 and install it in the MINC
  • Hookup a PC running both PDP11GUI (to download a TU58 emulator bootstrap to the MINC, and to provide a Console terminal) and TU58EM (hosting a bootable RT11 TU58 image) to the MINC
  • Download the TU58 bootstrap to the MINC using PDP11GUI
  • Execute the TU58 bootstrap on the MINC (using the ODT command “10000G”) and check that RT11 loads on the MINC
  • Hookup 1 or 2 standard (not DEC RX01 or DEC RX02) drives to the DQ419 controller
  • Check out the DQ419 subsystem (ensure RX02 disks can be written and read under RT11)
  • Use PDP11GUI to write the Bitsavers MINC 11/03 disk images to the drive connected to the DQ419
  • Boot the MINC from the floppy drive and checkout the MINC I/O boards using the MINC software
  • Repair the SLU0 and SLU1 connector wiring on the back panel, and arrange the 4 x 10-pin connectors on the DLV11-J appropriately

The 2 serial cables that go between the MINC and the PC are DB9F at both ends. But the ends are NOT interchangeable. The MINC and PC ends are labelled respectively in black ink.

Board List

The MINC-11 has the following boards installed:

Board Description
M7270 PDP-11/03 CPU
M8044 32KW RAM (28KW useable)
Dilog DQ419 RX02 workalike board for “normal” 8″ floppy drives
M7954 IEEE-4888 GPIB Interface
M8659 Grant Continuity Card
M8659 Grant Continuity Card
M8043 DLV11-J SLU Interface

Then in the instrumentation section:

Board Description
MNCKW Clock Module
MNCDO Digital Out Module
MNCAD A/D Module

Then the terminator:

Board Description
M8012 BDV11 Terminator and Boot Module

Console Cable

A small module hanging off the back of the MINC-11 back panel houses the 4 x DB9M connectors from the SLU.

The top connector is for the Console. It connects to Port 3 (left-hand position) on the M8044 (DLV11-J).

The wiring on the DB9M connectors is non-standard (TXD and RXD are NOT on pins 2 and 3).

Looking into the DB9M from the mating side with 5 pins on the top row, and 4 pins on the bottom row):

  • Pin 1 is at the left end of the row of 5 pins
  • Pin 5 is at the right end of the row of 5 pins
  • Pin 6 is at the left end of the row of 4 pins
  • Pin 9 is at the right end of the row of 4 pins

The cable details to connect the MINC to a USB-to-RS232 dongle are as follows:

MINC End
DB9F
Signal PC End
DB9F
3 Ground 5
4 MINC-11 TX Data 2
7 MINC-11 RX Data 3
8,6 Loop these pins N/C

The TU58 Emulator uses the same cable as the Console. It connects via the MINC back panel to the DLV11-J’s right-hand connector (SLU Channel 0).

TU58 Bootstrap

This is the bootstrap I’ve been using for the MINC-11:

M9312 'DD' BOOT code for TU58 D	MACRO V05.05  Thursday 15-Apr-99 12:00  Page 1

      1
      2						.title	M9312 'DD' BOOT code for TU58 DECtapeII serial tape controller
      3
      4						; This source code is taken from M9312 boot PROM for the TU58 version 23-765B9.
      5						;
      6						; This boot PROM is for the TU58 DECtapeII serial tape controller.
      7						;
      8						; Multiple units and/or CSR addresses are supported via different entry points.
      9						;
     10						; Revision history:
     11						; March 2017: Joerg Hoppe
     12						;	 Made relocatable, adaption for tu58fs.
     13						;
     14						; 2009?:   Don North / AK6DN ?
     15						;      The original code in 23-765A9 is REALLY BROKEN when it comes to
     16						;      supporting a non-std CSR other than 776500 in R1 on entry
     17						;      All the hard references to:  ddrbuf, ddxcsr, ddxbuf
     18						;      have been changed to:	2(R1),	4(R1),	6(R1)
     19						;      The one reference where 'ddrcsr' might have been used is '(R1)' instead
     20						;      which is actually correct (but totally inconsistent with other usage).
     21						;
     22						; 1978?:  DEC
     23						;      Original ROM 23-765B9 for M9312.
     24						;
     25
     26		176500 			ddcsr	=176500 			; std TU58 csrbase
     27
     28		000000 			ddrcsr	=+0				; receive control
     29		000002 			ddrbuf	=+2				; receive data
     30		000004 			ddxcsr	=+4				; transmit control
     31		000006 			ddxbuf	=+6				; transmit data
     32
     33	000000					.asect
     34		010000 				.=10000 			; arbitrary position
     35
     36						; --------------------------------------------------
     37
     38	010000				start:
     39
     40	010000	000261 			dd0n:	sec				; boot std csr, unit zero, no diags
     41	010002	012700 	000000 		dd0d:	mov	#0,r0			; boot std csr, unit zero, with diags
     42	010006	012701 	176500 		ddNr:	mov	#ddcsr,r1		; boot std csr, unit 
     43
     44	010012	012706 	002000 		go:	mov	#2000,sp		; setup a stack
     45	010016	005004 				clr	r4			; zap old return address
     46	010020	005261 	000004 			inc	ddxcsr(r1)		; set break bit
     47	010024	005003 				clr	r3			; data 000,000
     48	010026	004767 	000050 			call	xmtch8			; transmit 8 zero chars
     49	010032	005061 	000004 			clr	ddxcsr(r1)		; clear break bit
     50	010036	005761 	000002 			tst	ddrbuf(r1)		; read/flush any stale rx char
     51	010042	012703 	004004 			mov	#<010*400>+004,r3	; data 010,004
     52	010046	004767 	000034 			call	xmtch2			; transmit 004 (init) and 010 (boot)
     53	010052	010003 				mov	r0,r3			; get unit number
     54	010054	004767 	000030 			call	xmtch			; transmit unit number
     55
     56	010060	005003 				clr	r3			; clear rx buffer ptr
     57	010062	105711 			2$:	tstb	(r1)			; wait for rcv'd char available
     58	010064	100376 				bpl	2$			; br if not yet
     59	010066	116123 	000002 			movb	ddrbuf(r1),(r3)+	; store the char in buffer, bump ptr
     60	010072	022703 	001000 			cmp	#1000,r3		; hit end of buffer (512. bytes)?
     61	010076	101371 				bhi	2$			; br if not yet
     62	010100	005007 				clr	pc			; jump to bootstrap at zero
     63
     64	010102				xmtch8: ; transmit 4x the two chars in r3
     65	010102	004717 				jsr	pc,(pc) 		; recursive call for char replication
     66	010104				xmtch4:
     67	010104	004717 				jsr	pc,(pc) 		; recursive call for char replication
     68	010106				xmtch2: ; transmit 2 chars in lower r3, upper r3
     69	010106	004717 				jsr	pc,(pc) 		; recursive call for char replication
     70	010110				xmtch:	; xmt char in lower r3, then swap r3
     71	010110	105761 	000004 			tstb	ddxcsr(r1)		; wait for xmit buffer available
     72	010114	100375 				bpl	xmtch			; br if not yet
     73	010116	110361 	000006 			movb	r3,ddxbuf(r1)		; send the char
     74	010122	000303 				swab	r3			; swap to other char
     75	010124	000207 				return ; rts	pc			; now recurse or return
     76
     77		000001 				.end

Symbol table

DDCSR = 176500   	DDRCSR= 000000   	DD0D    010002   	START   010000   	XMTCH4  010104
DDNR    010006   	DDXBUF= 000006   	DD0N    010000   	XMTCH   010110   	XMTCH8  010102
DDRBUF= 000002   	DDXCSR= 000004   	GO      010012   	XMTCH2  010106

Pictures

Resources

F.J. Kraan’s MINC-11 page
MINC-11 Documentation on Bitsavers
F.J. Kraan’s MINC-11 Documentation
MINC-11 RX02 disk images on Bitsavers
PDP11GUI
AK6DN’s TU58 Emulator (You will also need to find and install “cygwin1.dll” in the same directory)
MNC11 Field Maintenance Print Set, DEC Order No. MP00652 (for PDP-11/03 MINC)
MDL23 Field Maintenance Print Set, DEC Order No. MP01074 (for PDP-11/23 MINC)

TU58EM Start Command

tu58em -p 7 -s 38400 -S 1 -r rt53sml-copy.t58 -w junk.t58 -T