Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-04 - 43,50325/cswo.rtn
There are no other files named cswo.rtn in the archive.
! File:   CSWO.RTN
!
!    This work was supported by the Advanced Research
!    Projects Agency of the Office of the Secretary of
!    Defense (F44620-73-C-0074) and is monitored by the
!    Air Force Office of Scientific Research.

    ROUTINE CREATESWO(SYMBOL,OFF)=
	BEGIN
	LOCAL STVEC X;
	REGISTER STVEC T;
	BIND STVEC OP1=SYMBOL;
	BIND LEXEME O2=OFF;

	IF LITVALUE(.O2) EQL 0 THEN RETURN .OP1;
	X_BASESYM(.OP1);
	T_.X[NXTHREAD];
	WHILE .T NEQ 0
	    DO IF .T[NAMEXPTR] EQL .X
		THEN IF LITVALUE(.T[OFFSETF]) EQL
			LITVALUE(.OP1[OFFSETF]+.O2[ADDRF])
			THEN EXITLOOP
			ELSE T_.T[NXTHREAD]
		ELSE T_.T[NXTHREAD];
	IF .T EQL 0
	    THEN BEGIN
		T_GETSPACE(ST,.STSZ[.OP1[TYPEF]]);
		MOVECORE(.OP1,.T,.STSZ[.OP1[TYPEF]]);
		IF NOT .T[NAMEXP] THEN
		  (T[NAMEXP]_1; T[NAMEXPTR]_.OP1);
		T[OFFSETF]_(.T[OFFSETF]+LITVALUE(.O2)) AND #177777;
		T[NXTHREAD]_.X[NXTHREAD];
		X[NXTHREAD]_.T;
		END;
	LEXOUT(BNDVAR,.T)
	END;