! File: FINLST.BLI ! ! 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. MODULE FINLST(TIMER=EXTERNAL(SIX12))= BEGIN SWITCHES NOLIST; REQUIRE COMMON.BEG; REQUIRE JBEG.BEG; SWITCHES LIST; ! LIST PROCESSING ROUTINES FOR USE BY FINAL AND CODE. GLOBAL ROUTINE GETCELL(TYPE,SIZE) = BEGIN REGISTER CELL; CELL _ GETSPACE(ST,.SIZE+MINCELLSIZE) + MINCELLSIZE; CELL[NEXTF] _ CELL[PREVF] _ CELL[BOTF] _ CELL[TOPF] _ .CELL; CELL[CELLSIZEF] _ .SIZE; CELL[CELLTYPEF] _ .TYPE; RETURN .CELL END; GLOBAL ROUTINE NEWCODECELL = GETCELL(CODECELLT,CODECELLSIZE); GLOBAL ROUTINE NEWLABCELL(LNAME)= BEGIN REGISTER LAB; LAB_GETCELL(LABCELLT,LABCELLSIZE); LAB[LABNAMF]_.LNAME; .LAB END; GLOBAL ROUTINE PUSHBOT(HD,IND) = BEGIN REGISTER PREVBOT; PREVBOT _ .HD[BOTF]; TOPELSENEXT(.PREVBOT EQL .HD,.PREVBOT) _ HD[BOTF] _ .IND; IND[PREVF] _ .PREVBOT; IND[NEXTF] _ .HD; RETURN .IND END; GLOBAL ROUTINE PUSHTOP(HD,IND) = BEGIN REGISTER PREVTOP; PREVTOP _ .HD[TOPF]; BOTELSEPREV(.PREVTOP EQL .HD,.PREVTOP) _ HD[TOPF] _ .IND; IND[PREVF] _ .HD; IND[NEXTF] _ .PREVTOP; RETURN .IND END; END END ELUDOM