Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - ipcser.c09
There is 1 other file named ipcser.c09 in the archive. Click here to see a list.
 REP 17/3	;09C1
	SPBMAX==:SPBACT+MAXACS+1 ;TOTAL LENGTH OF SPB
 WIT
	SPBMAX==:SPBACT+MAXACS ;TOTAL LENGTH OF SPB
 INS 48/24	;09C2
	IPCFST:	EXP	ERRUF		;(47) STRUCTURE MOUNT (TO MDA)
 INS 61/24	;09C3
	.IPCST==IPCFST-IPCFTB+1
 INS 38/52	;09C4
	;STRMPA - NOTIFY MDA OF A STRUCTURE MOUNT
	;	F / STR D.B.
	;	RETURN 	CPOPJ	ALWAYS

	STRMPA::PUSHJ	P,SAVE1##	;NEED A PRESERVED AC
		MOVEI	P1,1+1+1	;NEED ONE OVERHEAD WORD + 1 FOR STR NAME + 1 FOR UNIT
		HLRZ	T1,STRUNI##(F)	;PICK UP FIRST UNIT IN STR
	STRMP1:	HLRZ	T1,UNISTR##(T1)	;FIND NEXT UNIT
		SKIPE	T1		;END OF CHAIN?
		AOJA	P1,STRMP1	;NOT YET
		MOVE	T2,P1		;GET NUMBER OF WORDS NEEDED
		PUSHJ	P,GETWDS##	;GET SOME CORE
		  POPJ	P,		;CAN'T
		MOVEI	T3,.IPCST	;FUNCTION CODE
		HRLI	T3,(P1)		;LENGTH
		MOVEM	T3,0(T1)	;STORE IT
		MOVE	T3,STRNAM##(F)	;GET STR NAME
		MOVEM	T3,1(T1)	;STORE IT
		MOVSI	P1,(P1)		;SAVE [LENGTH,,MESSAGE ADDRESS]
		HRR	P1,T1
		HLRZ	T3,STRUNI##(F)	;GET FIRST UDB ADDR
	STRMP2:	MOVE	T2,UNINAM##(T3)	;GET UNIT NAME
		MOVEM	T2,2(T1)	;SAVE
		HLRZ	T3,UNISTR##(T3)	;GET LINK TO NEXT UDB
		SKIPE	T3		;END OF CHAIN?
		AOJA	T1,STRMP2	;NOT YET
		MOVE	T1,P1		;GET MESSAGE ADDRESS BACK
		PJRST	ATTMP1		;SEND IT AND RETURN
 INS 1/61	;09C5

 SUM 200285