File: MEOLD.TK of Disk: Disks/MyPDP/m8-blue-rka1-rkb1
(Source file text)
/MAGTAPE EMULATOR FOR MULTI8 /LAST EDIT 8-JAN-79, ELC /CREATED 5/11/77, ELC *200 "M^100+"E&3777 /NAME IS ME 200 /ONE PAGE SHOULD BE SUFFICIENT 0 ME, JMP MEINIT /INITIALIZE EMULATOR SZL /RELEASE ? JMP MEEXIT /YES, EXIT DCA MEBASE /POINTER TO USER AREA TAD MEBASE TAD (UDTV JMS DEFER /GET FUNCTION WORD AND C3700 /EXTRACT LENGTH BITS SZA CLA /SPECIAL FUNCTION ? JMP NORMAL /NO TAD I X AND C7 /GET SPECIAL FUNCTION SNA /FOR FUNCTIONS 1...4 MAKE JMP NOSWP /THE BACKGROUND INACTIVE BECAUSE TAD (-4 /THEY MAY LAST SOME TIME SMA SZA CLA / JMP NOSWP TAD I MEBASE TAD (INACTIVE-EMULATE DCA I MEBASE JMS MONITOR SIGNAL BSSLOT TAD MEBASE TAD (UDTV DCA X NOSWP, TAD I X /GET FUNCTION WORD AGAIN AND (7707 /ZERO FIELD BITS DCA ZTEM1 TAD I X AND C7 /EXTRACT SPECIAL FUNCTION CODE CLL RTL RAL /SHIFT SPECIAL FUNCTION TO BITS 6-8 TAD ZTEM1 DCA I X /AND STORE IN FUNCTION WORD GO, TAD I X /GET FUNCTION WORD AND C7770 /ZERO UNIT NUMBER FIELD DCA I X TAD MEBASE TAD (UAC DCA MEUAC TAD I MEUAC /GET USERS AC AND C7 /GET UNIT NUMBER FROM USERS AC TAD I X /AND ADD INTO FUNCTION WORD DCA I X TAD X JMS MONITOR /CALL MT CALL "M^100+"T&3777 JMP .-3 /BUSY ? WAIT DCA .+3 JMS MONITOR WAIT 0 CDF 10 CLL RAL / DCA I MEUAC /PASS COMPLETION STATUS TO BACKGROUND TAD I MEBASE SMA /INACTIVE ? JMP MERTRN /NO TAD (-INACTIVE+EMULATE DCA I MEBASE JMS MONITOR SIGNAL BSSLOT MERTRN, CLA CLL / JMS MONITOR RETURN NORMAL, TAD I X /GET FUNCTION WORD AND C70 /EXTRACT VIRTUAL FIELD NUMBER TAD I MEBASE /GENERATE INCORE REQUEST TAD (-EMULATE+INCORE DCA I MEBASE JMS MONITOR SIGNAL BSSLOT TAD MEBASE TAD (USLOT JMS DEFER DCA .+3 JMS MONITOR WAIT 0 MQL /AC IS REAL FIELD NUMBER TAD MEBASE TAD (UDTV JMS DEFER AND (7707 /ZERO FIELD BITS MQA /OR-IN REAL FIELD NUMBER DCA I X JMP GO /PERFORM TRANSFER NOW MEINIT, DCA BASE TAD (ASEMTB-1 DCA AUTO10 TAD I AUTO10 SZA CLA /SEARCH FOR A FREE ENTRY JMP .-2 /IN ASEMTB TAD AUTO10 DCA MENTRY /STORE ADDRESS OF ENTRY CDF 0 // TAD I (CURTSK //GET MY TCBP CDF 10 / DCA I MENTRY /AND PUT IT IN ASEMTB TAD (NOP DCA ME /REMOVE JMP MEINIT TAD BASE /RELOAD AC JMP ME /AND START MEEXIT, CLA DCA I MENTRY /CLEAR ENTRY IN ASEMTB JMS MONITOR EXIT SWPOUT MEBASE, 0 MEUAC, 0 MENTRY, 0