SUBROUTINE USEMEM (ADDR, NBYTES) INTEGER ADDR, NBYTES INTEGER BITS (16) INTEGER BIT00,BIT01,BIT02,BIT03,BIT04,BIT05,BIT06,BIT07 INTEGER BIT08,BIT09,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15 INTEGER BIT, BITNO COMMON /BITDFN/ BITS COMMON /BITDFN/ BIT, BITNO EQUIVALENCE (BITS(1),BIT00),(BITS(2),BIT01),(BITS(3),BIT02) EQUIVALENCE (BITS(4),BIT03),(BITS(5),BIT04),(BITS(6),BIT05) EQUIVALENCE (BITS(7),BIT06),(BITS(8),BIT07),(BITS(9),BIT08) EQUIVALENCE (BITS(10),BIT09),(BITS(11),BIT10) EQUIVALENCE (BITS(12),BIT11),(BITS(13),BIT12) EQUIVALENCE (BITS(14),BIT13),(BITS(15),BIT14) EQUIVALENCE (BITS(16),BIT15) INTEGER DICT (400) INTEGER ID, CID, DTSTRT, DTSTOP COMMON /DARRAY/ DICT COMMON /DARRAY/ ID, CID, DTSTRT, DTSTOP INTEGER NSIZE, NAME(16), NTITLE INTEGER NFLAGS (512) INTEGER NADDRS (512) INTEGER NPOSIT (512) INTEGER NDATA (512) INTEGER NTEXTX (512) INTEGER NTEXT (1000) INTEGER NLX, NLSTRT, NLSTOP INTEGER TXSTRT, TXSTOP INTEGER NTXBTS INTEGER USEBIT, COMBIT, OVLBIT, EPTBIT INTEGER LDMBIT, MODBIT, MLTBIT, RLSBIT INTEGER GDFBIT, TYPBTS INTEGER ATYPE INTEGER ICLP07 LOGICAL OLDNAM COMMON /NTABLE/ NSIZE, NAME, NTITLE COMMON /NTABLE/ NFLAGS, NADDRS, NPOSIT, NDATA, NTEXTX COMMON /NTABLE/ NTEXT COMMON /NTABLE/ NLX, NLSTRT, NLSTOP COMMON /NTABLE/ TXSTRT, TXSTOP COMMON /NTABLE/ NTXBTS COMMON /NTABLE/ USEBIT, COMBIT, OVLBIT, EPTBIT COMMON /NTABLE/ LDMBIT, MODBIT, MLTBIT, RLSBIT COMMON /NTABLE/ GDFBIT, TYPBTS COMMON /NTABLE/ ATYPE COMMON /NTABLE/ ICLP07 COMMON /NTABLE/ OLDNAM INTEGER MEMORY (4096) INTEGER MEMX INTEGER MEMLOC INTEGER ROM (64) INTEGER ONEK, ENDK COMMON /MEMORY/ MEMORY COMMON /MEMORY/ MEMX COMMON /MEMORY/ MEMLOC COMMON /MEMORY/ ROM COMMON /MEMORY/ ONEK, ENDK INTEGER ECODE INTEGER CMCHAN INTEGER RBCHAN INTEGER OBCHAN INTEGER MPCHAN INTEGER DBCHAN INTEGER TTYIN INTEGER TTYOUT COMMON /IODEFN/ ECODE COMMON /IODEFN/ CMCHAN COMMON /IODEFN/ RBCHAN COMMON /IODEFN/ OBCHAN COMMON /IODEFN/ MPCHAN COMMON /IODEFN/ DBCHAN COMMON /IODEFN/ TTYIN COMMON /IODEFN/ TTYOUT INTEGER I LOGICAL OWRITE C WRITE (DBCHAN, 1) ADDR, NBYTES C 1FORMAT (' ENTER USEMEM WITH', 2I5) OWRITE = .FALSE. MEMLOC = ADDR DO 13098 I = 1, NBYTES MEMX = ISHFT (MEMLOC,-4) + 1 BITNO = IAND (MEMLOC, 15) + 1 BIT = BITS (BITNO) IF (.NOT. (IAND(MEMORY(MEMX),BIT).NE.0))GO TO 13100 IF (.NOT. (.NOT.OWRITE))GO TO 13102 OWRITE = .TRUE. NLX = DICT (CID) IF (IAND(NFLAGS(NLX),TYPBTS+COMBIT).NE.0) CALL ERROR(11) 13102 CONTINUE GO TO 13101 13100 CONTINUE OWRITE = .FALSE. MEMORY(MEMX) = MEMORY(MEMX) + BIT 13101 CONTINUE ONEK = ISHFT (MEMLOC,-10) + 1 IF (.NOT. (ROM(ONEK).EQ.1))GO TO 13104 CALL ERROR (17) 13104 CONTINUE MEMLOC = MEMLOC + 1 13098 CONTINUE C WRITE (DBCHAN, 2) C 2FORMAT (' EXIT USEMEM') RETURN END