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