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