* NEXT.PMA, SEGSRC, KJC, 01/22/79 * Routines for traversing the symbol table * Copyright (c) 1981, Prime Computer, Inc., Natick, MA 01760 * * NEXT,NAMESE - ROUTINES TO GO THROUGH THE SYMBOL TABLE * SEG RLIT * SUBR NEXT,ECB1 SUBR NAMESE,ECB2 * EXT MAP * SYMSIZ EQU 9 NA$LEN EQU 4 NA$OFF EQU 3 * START ARGT JSY NEXT PRTN * NEXT EAXB POINTER,* LDA XB%+2 IMA XB%+1 STA XB% LDA XB%+1 SGT JMP NEXT10 MPY =-SYMSIZ STL XB%+6 ADL MAPDAC STL XB%+4 ADL SYMPTR STL TEMP2 LDA TEMP2,* STA XB%+2 SKP NEXT10 CRA JMP PB%,Y * NAMESE ARGT EAXB NAME,* DFLD XB% DFST NMTEM1 NAME10 JSY NEXT SNZ PRTN EAXB XB%+4,* LDL NMTEM1 CLS XB%+NA$OFF JMP NAME10 SKP JMP NAMOUT LDL NMTEM1+2 CLS XB%+NA$OFF+2 JMP NAME10 SKP NAMOUT CRA PRTN FIN SYMPTR DATA 0 DATA SYMSIZ-1 EJCT LINK NMTEM1 BSZ NA$LEN TEMP2 BSZ 2 MAPDAC IP MAP * DYNM NAME(3),POINTER(3) * ECB1 ECB START,,POINTER,1 ECB2 ECB NAMESE,,NAME,2 * END SEG SUBR SET0,ECB SET0 ARGT EAXB ARRAY,* LDA XB% STA SUMP LDA XB% + 2 STA SUMP+1 CMA A2A ADD XB% + 3 XCA LLL 1 TLFL 1 EAFA 1,SUMP,* CRA ZFIL PRTN EJCT LINK SUMP BSZ 2 DYNM ARRAY(3) ECB ECB SET0,,ARRAY,1 END * ZFILL$ IS THE SAME AS SET0 EXCEPT THAT THE START AND END WORD OFFSETS * ARE PASSED AS ARGUMENTS. * * CALLING SEQUENCE: * * CALL ZFILL$(LOC(BUFFER),START,END) * SEG SUBR ZFILL$,ECB ZFILL$ ARGT EAXB ARRAY,* GET POINTER TO BUFFER START EAFA 1,XB%,* LDA START,* AND STARTING OFFSET TAX SAVE COPY IN X XCA LLS 4 CONVERT TO BIT OFFSET ALFA 1 ADD OFFSET TO BUFFER POINTER TXA GET BACK STARTING OFFSET CMA COMPUTE NUMBER OF WORDS A2A ADD END,* XCA MAKE CHAR COUNT FOR ZFIL LLL 1 TLFL 1 CRA ZFIL PRTN DYNM ARRAY(3),START(3),END(3) ECB ECB ZFILL$,,ARRAY,3 END