DL10 documentation

Phil Budne phil at ultimate.com
Sat Jan 27 23:46:41 CST 2018


FWIW, Found these bits in the TOPS-10 7.04 sources:

http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/anf10/chk11.p11.html

Search for ";DETERMINE THE DL10 BASE ADDRESS"

Which tries setting the following bit pattern:
DL.CNX!DL.CPE!DL.CWC!DL.11C

Those bits and others can be found in:
http://pdp-10.trailing-edge.com/tops10_703_distr_bb-x140b-sb/02/10,7/703anf/s.p11.html


.SBTTL		DL10 HARDWARE BITS
; 
; DL10 - UNIBUS TO DECSYSTEM-10 MEMORY BUS INTERFACE
; 
.IIF NDF DL.VEC,DL.VEC=	170	; VECTOR ADR FOR DL10
DL.LVL=	4			; CHANNEL FIVE

	DL.11I=	B15		; BIT 15 - 11 INT(INTERRUPTS IF 11-INT-ENB SET)
	DL.11C=	B14		; BIT 14 - CLEAR 11 INT
	DL.10I=	B13		; BIT 13 - 10 INT
	DL.10C=	B12		; BIT 12 - CLEAR 10 INT
	DL.NXM=	B11		; BIT 11 - NXM(INTERRUPTS IF ERR ENB SET)
	DL.CNX=	B10		; BIT 10 - CLEAR NXM
	DL.PAR=	B9		; BIT 09 - PAR ERR(INTERRUPTS IF ERR ENB SET)
	DL.CPE=	B8		; BIT 08 - CLEAR PAR ERR
	DL.WCO=	B7		; BIT 07 - WCOV(INTERRUPTS IF ERR ENB SET)
	DL.CWC=	B6		; BIT 06 - CLEAR WCOV
	DL.PEN=	B5		; BIT 05 - PORT ENABLE
	DLPENB=	DL.PEN		; 
	DL.B04=	B4		; BIT 04 - (GUESS !)
	DL.ERE=	B3		; BIT 03 - ERR ENABLE
	DL.INE=	B2		; BIT 02 - 11 INT ENB
	DL.B01=	B1		; BITS 00 & 01 - PIA
	DL.B00=	B0		; 

The (11 side) driver code for the DL10 is in:

http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/anf10/dndl10.p11.html

	.SBTTL	DNDL10 - PDP-10/PDP-11 INTERFACE  21 JUL 82

and defines a memory window (I'm assuming only the "STS" word contains
the above bits, and the rest is shared memory) using a window pointer
determinted by chk11 (see above):

.SBTTL DL10 WINDOW

	BLOCK	DL		;THIS IS THE DL-10 WINDOW

	X	STS		;DL10 STATUS REGISTER
	X	,2		;UNUSED
	X	NAM		;PROGRAM NAME BYTE POINTER (SIXBIT)
	X	,1		;NOT USED
	X	11A		;PDP-11 ALIVE INDICATOR. INCREMENTED BY
				;  BY THE TEN ONCE/SECOND, SET TO 0 BY
				;  THE 11.  IF <2 THEN 11 IS ALIVE.
	X	STP		;STOP CODE (FOR WHEN -11 DIES)
	X	DWN		;3 STATE SWITCH
				;  1 => UP AND RUNNING
				;  0 => DOWN, COMPLAIN TO THE OPERATOR
				; -1 => DOWN BUT DON'T COMPLAIN
	X	UPT		;NOT USED?
	X	STA		;GLOBAL STATE WORD
	    DLS.DP=1			;DEPOSIT 11 CORE
	    DLS.EX=2			;EXAMIN 11 CORE
	    GBADDR=4			; DL.ADR IS BAD
	    GHOLD=10			; HOLD EVERYTHING

	X	ADR		;ADDRESS FOR EXAMINE/DEPOSITE IN 11 MEMORY
	X	DAT		;CONTENTS OF THE EXAMINE/DEPOSITE
	X	RLN		;MAXIMUM MESSAGE LENGTH 11 WILL ACCEPT
	X	MOD		;DL-10 MODIFICATION NUMBER
	    WINVER=1		;WINDOW VERSION NUMVER
	X	10A		;PDP-10 ALIVE INDICATOR.  INCREMEMTED BY
				;  THE 11 ONCE/SECOND, SET -1 BY THE 10.
				;  IF <= 1, THE 10 IS ALIVE
	X	10S		;STATUS OF THE 10
				;  0 => INITIAL VALUE.  NOTHING GOING ON
				;  1 => STARTED INITIALIZATION
				; -1 => UP AND RUNNING
	X	11S		;STATUS OF THE 11.
				;  0 => INITIAL VALUE.  NOTHING GOING ON
				;  1 => STARTED INITIALIZATION
				; -1 => UP AND RUNNING
	X	IST		;INPUT STATUS FLABS
				;  B1 = FIRST PART
				;  B2 = SECOND PART
	X	ICT		;INPUT COUNT (10'S POINT OF VIEW)
	X	IDT		;INPUT DATA APPEARS HERE
	X	,1		;SECOND INPUT POINTER'S COUNT
	X	,1		;SECOND INPUT POINTER'S DATA


	X	OST		;OUTPUT FLAGS
				;  B0 SAYS OUTPUT READY TO TO
				;  B1-B4 SPECIFY THE CONVERSION
				;      1 => LPT COMPRESSION
				;      2 => BINARY (12 BIT) CONVERSION
	X	OCT		;FIRST OUTPUT BUFFER'S LENGTH
	X	ODT		;FIRST OUTPUT BUFFER'S DATA
	X	,1		;SECOND BUFFERS COUNT
	X	,1		;SECOND BUFFERS DATA
	X	,1		;THIRD BUFFERS LENGTH
	X	,1		;THIRD BUFFERS DATA

;END OF DL-10 WINDOW

A fun bit is:
;NOW TELL THE -10 THAT WE'RE UP TOO!

     ADD  #DL.NAM-DL.DAT,R2 ;RELOCATE R2 TO POINT TO THE NAME WORD
     MOVB #'D-40,(R2)	    ;SEND OUR NAME TO THE -10
     MOVB #'C-40,(R2)
     MOVB #'7-40,(R2)
     MOVB #'5-40,(R2)

In http://www.ultimate.com/phil/pdp10/10periphs I have:
DC75: sync (PDP-11/15 & DS11's via DL10) DN8x code base! (cf DAS85?)
	so perhaps the front end that was progenitor of the ANF10 code?

In the above "DL10 WINDOW" definition, NAM is declared "PROGRAM NAME
BYTE POINTER (SIXBIT)", and as in SIXBIT, the values are ASCII - 40
(octal) but stored in to 8 bit locations in the '11, which suggests
that the entire "window" maps the low order six bits of PDP-11
locations in to 6 bits in a PDP-10 word!

Definitions for the '10 side are created with the MAP76 macro in
http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/mon/s.mac.html

The following follow the DLMAP macro (which expands the MAP76 macro):

;LINE PARAMETER CONTROL MESSAGES FOR THE DC76
XP    LPCSPD,2	;SET LINE SPEED (RECEIVE*10+TRANSMIT)
XP    LPCABR,4	;ENABLE AUTO BAUD RATE DETECT
XP    LPCELE,6	;SET TYPE ELEMENT
XP    LPCAPL,10	;SET/CLEAR APL MODE
XP    LPCRVB,12	;SET/CLEAR REVERSE BREAK
XP    LPCUKB,14	;UNLOCK KEYBOARD
XP    LPCTDY,16	;SET/CLEAR TIDY BIT

;TYPES OF DL-10 FRONT ENDS
XP     TP.D76,1	;FRONT END IS A DC76
XP     TP.D44,2	;FRONT END IS A DC44
XP     TP.D47,3	;FRONT END COMBINES DC44 AND DC76
XP     TP.D75,4	;OLD DECSYNC PROTOCOL
XP     TP.D60,5	;DN60 FRONT END
XP     TP.D85,6	;NEW DDCMP FRONT END
XP     TP.D78,7	;FRONT END IS A DAS78

;TYPES OF DTE-20 FRONT ENDS
XP     DT.RSX,1	 ;RSX20F
XP     DT.ANF,2	 ;ANF10
XP     DT.IBM,3	 ;IBM (DN60)
XP     DT.DNT,4	 ;DECNET

The '11 side DTE driver is:
http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/anf10/dndte.p11.html

	.SBTTL	DNDTE - KL10/PDP-11 INTERFACE  11 FEB 88

and for completeness, the '10 side driver for the DTE:
http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/mon/dteser.mac.html

DTE definitions:
http://pdp-10.trailing-edge.com/tops10_704_monitoranf_bb-x140c-sb/01/10,7/mon/dteprm.mac.html


More information about the cctech mailing list