Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93i-bb - 7,6/ap020/xdte10.c20
There are 6 other files named xdte10.c20 in the archive. Click here to see a list.
 REP 38/1	;20C1
	                          COPYRIGHT (c) 1982,1981,1980, 1979
	            DIGITAL EQUIPMENT CORPORATION, maynard, mass.
 WIT
	                          COPYRIGHT (c) 1988,1982,1981,1980,1979
	            DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
 REP 1/2	;20C2
	VDTE10=033				;XDTE10 edit number
 WIT
	VDTE10=034				;XDTE10 edit number
 REP 30/2	;20C3
	.ENDR;.REPT 0


 WIT

	5(34)	RCB	30-JAN-88	Update to handle 7.04's desire to autoconfigure
					the DTEs on a -10.  Basically, we allow QP2
					handshaking even if we don't want it.  We just
					tell the -10 it was mistaken, and that we're
					a QP1 DN60S front end.
	.ENDR;.REPT 0
 INS 52/6	;20C4

	;LINE USER TYPES FOR TOPS-10 INITIALIZATION:

	DD.NOB=0	;NOBODY (DEFAULT) -- RSX20F OR UNKNOWN
	DD.ANF=1	;ANF-10 (DN87S)
	DD.DEC=2	;DECNET (MCB)
	DD.PRO=3	;PROGRAM (DIAGNOSTIC OR DTELDR)
	DD.IBM=4	;DN60S
 REP 3/14	;20C5
	.IF NE,FTP5
		.ENABL	LSB
	S.INI0:					;initial protocol start exchange
 WIT
	S.INI0:					;initial protocol start exchange
	.IF EQ,FTFEDV
 REP 10/14	;20C6
		GOBACK
	15$:
	S.IN00:	BIS	#TO.INI,DTSTT		;yes - we are too
 WIT
	.IF EQ,FTP5
		BIS	#I..DBL,INTCND		;Restore our interrupt
		NXTINT	#S.IDLE			;To simulate old code
	.ENDC	;.IF EQ,FTP5
		GOBACK				;Re-dispatch or ignore
	15$:
	.IF EQ,FTP5
		MOV	DTENM(R3),R2		;Our owned region address
		EXAM	R2,DTXTM3,5$		;Read it from the ten
	;	BIC	#PB.VER,DTXTM3		;Clear comm. version
		CLR	DTXTM3			;Clear comm. version (bug in DTESER?)
		MOVB	#DD.IBM,DTXTM2+1	;Tell the ten we're a DN60S
		CLR	R2			;This is our deposit window's base
		DEPO	R2,DTXTM3,5$,20$	;Update this for the ten to see
	22$=20$-2				;Where the BCS 5$ lives
		MOV	DTEMYN(R3),R2		;My to-10 section base
		EXAM	R2,DTXTM3,22$		;Read it from the ten
		BIC	#TO.PRO,DTXTM2		;We want to use old protocol
		MOV	DTDMYN(R3),R2		;Get deposit address for this word
		DEPO	R2,DTXTM3,22$		;Update it for the ten
	.ENDC	;.IF EQ,FTP5
	S.IN00:
	15$:	BIS	#TO.INI,DTSTT		;yes - we are too
 REP 18/14	;20C7
		NXTINT				;now he must agree that we agree
		.DSABL	LSB

 WIT
	.IF EQ,FTP5
		GOBACK				;Start over (or go to S.IDLE)
	.ENDC

	.IF NE,FTP5
		NXTINT				;now he must agree that we agree
 INS 35/14	;20C8
	.ENDC	;.IF EQ,FTFEDV
 REP 45/14	;20C9
		.ENABL	LSB
	TGHSTD:	CALL	TGHWAI	
	99$:	GOBACK
 WIT
	TGHSTD:	CALL	TGHWAI	
	TGHSTX:	GOBACK
 REP 54/14	;20C10

	S.IDL1:	CMPB	DT10QC,TCSTFX+4		;compare our queue count with -10's
		BEQ	99$			;if same, ignore
 WIT
	.IF	EQ,FTFEDV
		BIT	#TO.INI,TCSTFX		;Doorbell to initialize?
		BEQ	S.IDL1			;No, skip this
		BIS	#I..DBL,INTCND		;Yes, restore our interrupt
		NXTINT	#S.INI0			;Set its proper handler
		BR	TGHSTX			;and dismiss
	.ENDC	;.IF EQ,FTFEDV

	S.IDL1:	CMPB	DT10QC,TCSTFX+4		;compare our queue count with -10's
		BEQ	TGHSTX			;if same, ignore
 DEL 62/14	;20C11
		.DSABL	LSB
 REP 112/14	;20C12
		BIS	I..DBL,INTCND		;dummy up interrupt condition
 WIT
		BIS	#I..DBL,INTCND		;dummy up interrupt condition
 REP 238/14	;20C13
		BIS	I..DBL,INTCND		;dummy up interrupt condition
 WIT
		BIS	#I..DBL,INTCND		;dummy up interrupt condition
 REP 61/15	;20C14
	.IF EQ,FTP5
		SAVE	#S.IDLE			;start idling
	.IFF
		SAVE	#S.INI0			;startup exchange required
	.ENDC	;.IF EQ,FTP5
		SAVE	<#0,#0,#0,DTEPCA,#0,DTEBAD>;initialize state regs and return
		MOV	SP,STATSP		;save state machine stack pointer
		MOV	#S.IDLE,NXTPC		;save current (and next) state
 WIT
		SAVE	<#S.INI0,#0,#0,#0,DTEPCA,#0,DTEBAD>;initialize state machine
		MOV	SP,STATSP		;save state machine stack pointer
		MOV	#S.INI0,NXTPC		;save current (and next) state
 REP 48/18	;20C15
	.IIF	NE,FTP5,INC R5		;faker
 WIT
	.IIF	EQ,FTFEDV,INC R5	;faker
 INS 97/18	;20C16
		MOV	DLDPOF,DTENM(R5) ;STORE ADDRESS OF OUR OWNED AREA
 SUM 206376