File MACLOD.MA (MACREL macro assembler source file)

Directory of image this file is from
This file as a plain text file

/4	MACREL OVERLAY LOADER

/	.INCLUDE MGLOB

	.RSECT MACLOD
	FIELD 2

	.EXTERNAL OVRBLK
	.GLOBAL LOADY

	NUMRES=6	/NUMBER OF RESIDENT OVERLAY AREAS

/IF THE OVERLAY IS IN PLACE, WE BUMP ITS CORE ACCESS COUNT

/IF NOT, WE SEARCH RESLOC FOR IT (AT THE SAME TIME
/FINDING THE MINIMUM ACCESS COUNT)

/IF FOUND, WE SWAP CORE WITH THE RESIDENT OVERLAY

/IF NOT FOUND, WE SWAP CORE WITH THE MINIMUM GUY,
/DECREMENT ALL ACCESS COUNTS BY COUNT NOW IN CORE,
/AND BUMP THE CORE ACCESS COUNT (*** NOT QUITE IMPLEMENTED THIS WAY)


	SWYTO9=6	/***

ONE,	40		/ONE ACCESS INCREMENT

LOADY, 0 DCA LOCO /SAVE OVERLAY AREA (BITS 0-6) AND OVERLAY NUMBER (BITS 7-11) TAD LOCO AND (7740 DCA OVRLOC /GET OVERLAY LOCATION TAD I OVRLOC /WHAT OVERLAY IS THERE? CIA TAD LOCO AND (37 SNA CLA JMP THERE /IT'S ALREADY THERE .IF NE NUMRES < TAD I (SWYTO9 SPA CLA JMP SWAP /NO RESIDENT OVERLAYS ON /Y CLA IAC DCA MIN /NOT THERE DCA RESN DCA RESLOW DCA RESPTR TAD (-NUMRES DCA RESCNT L$: CDF 30 TAD I RESPTR DCA RESACC /GET OVERLAY AND ACCESS COUNT TAD RESACC CIA TAD LOCO AND (37 SNA CLA /IS THIS IT? JMP WASRES /YES TAD RESACC /NO AND (7740 /COMPARE ITS ACCESS COUNT STL CIA /AGAINST ALL-TIME LOW TAD MIN SZL SNA CLA JMP 1$ /HIGHER TAD RESACC /LOWER OR EQUAL AND (7740 DCA MIN /NEW MIN TAD RESN DCA RESLOW /NEW LOW 1$: TAD RESPTR TAD (400 DCA RESPTR /BUMP TO NEXT OVERLAY RESIDENCE ISZ RESN ISZ RESCNT JMP L$ /SHOULD DECREMENT ALL ACCESS COUNTS NOW BY MIN TAD RESLOW DCA RESN CDF 0 TAD I OVRLOC SZA CLA /NO NEED TO SWAP IF MEM=0 JMS SWAPY > SWAP, TAD LOCO AND (37 CDF 0 TAD I (OVRBLK DCA OBLK /GET BLOCK ON SYS DEVICE TO READ IN CDF 20 CIF 0 JMS I (7607 200 /READ 2 PAGES OVRLOC, 2000 TEMPO, OBLK, 0 HLT /ER51 .IF EQ 0 < CDF 0 TAD I OVRLOC CIA TAD LOCO AND (37 SZA CLA HLT /GOT WRONG ONE > THERE, CDF 0 TAD I OVRLOC /BUMP ITS ACCESS COUNT TAD ONE DCA I OVRLOC LODONE, CIF CDF 0 JMP I LOADY
RESPTR, 0 RESCNT, 0 LOCO, 0 RESACC, 0 RESN, 0 RESLOW, 0 MIN, 0 .IF NE NUMRES < WASRES, JMS SWAPY JMP THERE SWAPY, 0 TAD OVRLOC DCA P1$ TAD RESN CLL RTR RTR RAR /*** ASSUMES START AT 0 DCA P2$ TAD (-400 DCA KNT$ L$: CDF 0 TAD I P1$ DCA TEMPO CDF 30 TAD I P2$ CDF 0 DCA I P1$ TAD TEMPO CDF 30 DCA I P2$ ISZ P1$ ISZ P2$ ISZ KNT$ JMP L$ JMP I SWAPY P1$: 0 P2$: 0 KNT$: 0 > PAGE



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search