Google
 

Trailing-Edge - PDP-10 Archives - red405a2 - uetp/lib/on0.mac
There is 1 other file named on0.mac in the archive. Click here to see a list.
TITLE LOOP 2020 LOOPBACK PORT CONTROL

	SEARCH MONSYM,MACSYM
	.REQUIRE SYS:MACREL
	T1=1
	T2=2
	T3=3
	T4=4

LOOP:	RESET
	MOVE 17,[IOWD PDLSIZ,PDL] ;SET UP THE STACK
	CALL SET		;
	MOVEI T1,^D5000		;WAIT FOR NODE INIT TO HAPPEN
	DISMS
	CALL SHOW		;DISPLAY STATE OF LOOPBACK
	HALTF
;
; HERE TO DISPLAY STATE OF LOOPBACK
;
SHOW:	MOVEI T1,.NDFLP		;FIND LOOPBACK PORT
	MOVEI T2,ARG		;ARG BLOCK ADDRESS
	NODE			;FIND THE PORT
	 ERJMP JSHLT0		;FAILURE
	SKIPN ARG		;ANY LOOPBACK PORT?
	JRST [TMSG <NO LOOPBACK PORT ENABLED
>
		RET]
	HRROI T1,STRING		;CHARACTER STRING
	MOVEM T1,ARG+.BTLID	;SAVE POINTER
	MOVEI T1,.BTCPN		;CONVERT TO STRING
	MOVEI T2,ARG		;ARG BLOCK
	BOOT			;CONVERT IT
	 ERJMP JSHLT0		;ERROR?
	HRROI T1,STRING		;POINT TO THE STRING
	PSOUT			;TYPE IT
	TMSG < IS ENABLED FOR LOOPBACK
>
	MOVE T1,ARG		;NSP PORT NUMBER
	TXNE T1,ND%LPR		;LOOPBACK RUNNING?
	JRST [TMSG <	AND A SUCCESSFUL NODE INITIALIZATION HAS OCCURED
>
		RET]
	RET
;
; HERE TO TURN OFF ANY LOOPBACK LINES
;
OFF:	MOVEI T1,.NDFLP		;FIND LOOPBACK PORT
	MOVEI T2,ARG		;ARG BLOCK
	NODE			;FIND THE LOOPBACK PORT
	 ERJMP JSHLT0		;ERROR?
	SKIPN ARG		;WAS ONE ENABLED?
	RET
	SETZ T1,		;A ZERO
	HRLM T1,ARG		;CLEAR THE STATUS BITS
	MOVEI T1,.NDCLP		;CLEAR LOOPBACK PORT
	MOVEI T2,ARG		;ARG BLOCK
	NODE			;CLEAR IT
	 ERJMP JSHLT0		;ERROR?
	MOVEI T1,.BTTPR		;TURN THE PORT OFF
	MOVEI T2,ARG		;ARG BLOCK ADDRESS
	BOOT			;TURN THE LINE OFF
	 ERJMP JSHLT0		;ERROR?
	RET
;
; HERE TO USE A LINE FOR LOOPBACK
;
SET:	CALL OFF		;TURN OFF CURRENT LOOPBACK
	HRROI T1,[ASCIZ/KDP_0_0/] ;LINE ID
	MOVEM T1,ARG+.BTLID	;SAVE IN ARG BLOCK
	MOVEI T1,.BTCLI		;CONVERT TO NSP PORT NUMBER
	MOVEI T2,ARG		;ARG BLOCK
	BOOT			;
	 ERJMP JSHLT0		;ERROR?
	MOVEI T1,.BTTPR		;TURN LINE OFF FIRST
	MOVEI T2,ARG		;ARG BLOCK ADDRESS
	BOOT			;
	 ERJMP JSHLT0		;ERROR?
	MOVEI T1,.NDSLP		;SET NSP LOOPBACK PORT
	MOVEI T2,ARG		;ARG BLOCK
	NODE			;
	 ERJMP JSHLT0		;ERROR?
	MOVEI T1,.VNCBL		;CABLE LOOPBACK
	MOVEM T1,ARG+1		;SAVE IN ARG BLOCK
	MOVEI T1,.BTIPR		;SET LINE IN CABLE LOOPBACK
	BOOT			;
	 ERJMP JSHLT0		;ERROR?
	RET


PDLSIZ==20
PDL:	BLOCK PDLSIZ
ARG:	BLOCK	20
STRING:	BLOCK	100

	END LOOP