Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93d-bb - 7,6/ap016/algfun.c16
There are 11 other files named algfun.c16 in the archive. Click here to see a list.
 REP 15/62	;C161
		  IF SYM IS IN A NON-ZERO AC	;[352]
	EDT352:			TRNE	SYM,-1	;[352] ANY LOCATION ASSIGNED TO SYM?
				TRNE	SYM,^-17 ;[352] IS IT AN AC?
				 JRST	FALSE	;[352] NO TO EITHER ONE
		  THEN			;[352] YES, CHECK FOR POSSIBLE AC CONFLICT
		    BEGIN		;[352] AND POKE LAC IF NECESSARY.  THEN LET
		      IF; AC CONFLICT	;[352] GLOAD FIGURE OUT WHAT AC TO USE
				PUSH	SP,SYM	;[352] SAVE SYM FOR A MOMENT
				HRLI	SYM,0	;[352] SYM HAS ONLY AC NUMBER NOW
				SUB	SYM,LAC	;[352] SPACE UNTIL AC CONFLICT
				SKIPGE	SYM	;[352] NO CONFLICT IF SYM .GE. LAC
				CAMGE	SYM,[-3];[352] L.R. WANTS 3 AC'S, OTHERS LESS
				 JRST	FALSE	;[352] NO CONFLICT POSSIBLE, OK
		      THEN; LAC := AC(SYM)	;[352] POKE LAC SO GLOAD ALLOCATES OK
				POP	SP,SYM	;[352] RESTORE SYM
				HRRM	SYM,LAC	;[352] AND SET LAC
		      ELSE; RESTORE SYM	;[352]
				POP	SP,SYM	;[352]
		      FI		;[352]
		    ENDD		;[352]
		  FI			;[352]
					MOVE	T,OPMVLP;$
		    GLOAD;
 WIT
		  IF SYM IS IN AN ACC				;[367]
					T.ACC(SYM)		;[367]
		    THEN					;[367]
		      BEGIN ;..DON'T LET LOP CONFLICT WITH SYM	;[367]
			;T2_SYM<AC>				;[367]
			;T3_LAC					;[367]
					F.LOCN(T2,SYM)		;[367]
					MOVE	T3,LAC		;[367]
			IF SYM<AC> GEQ LAC			;[367]
					CAMGE	T2,T3		;[367]
					GOTO 	FALSE		;[367]
			  THEN					;[367]
			    BEGIN ;..CHECK AGAINST WRAPAROUND	;[367]
			      IF LAC LEQ 3 AND SYM<AC> GTR 10	;[367]
					CAIG	T3,3		;[367]
					CAIG	T2,13-3		;[367]
					GOTO	FALSE		;[367]
				THEN ;..MIGHT BE A CONFLICT	;[367]
				  ;LAC_SYM<AC>			;[367]
					MOVEM	T2,LAC		;[367]
			      FI				;[367]
			    ENDD				;[367]
			  ELSE ;..SYM<AC> LSS LAC		;[367]
			    IF LAC-SYM<AC> LEQ 3		;[367]
					SUB	T3,T2		;[367]
					CAILE	T3,3		;[367]
					GOTO	FALSE		;[367]
			      THEN ;..MIGHT BE A CONFLICT	;[367]
				;LAC_SYM<AC>			;[367]
					MOVEM	T2,LAC		;[367]
			    FI					;[367]
			FI					;[367]
		      ENDD					;[367]
		  FI						;[367]
					MOVE	T,OPMVLP;$
		  GLOAD;
 SUM 76577