/****** MULTI8 PTR EMULATOR ******** /LAST EDIT: 29-AUG-75, ELC /CREATED: 20-DECEMBER-74, ELC /SINGLE PAGE PAPERTAPE READER EMULATOR /THIS TASK EXPECTS THE FOLLOWING THREE IOT'S FROM THE BACKGROUND: / /6011 SKIP-ON-READER-FLAG. THIS IOT IS INITIALY PACHED WITH / A SKIP. THIS MODULE WILL TAKE CARE OF ALL SYNCRONISATION / THUS THE 6011 IS PURE OVERHEAD THAT CAN BETER BE AVOIDED. / WE DO REMEMBER HOWEVER WHERE THE 6011 WAS IN THE USERS / PROGRAM. IF WE TIMEOUT THE TAPEREADER AT THE END / WE CHANGE THE SKP IN A NOP. NORMALY BG-PROGRAMS COUNT THE / NUMBER OF 6011 THAT ARE NECESARRY TO GET THE NEXT / CHAR FROM THE / TAPE AND IF IT LASTS TOO LONG THEY DECIDE IT TO BE THE END / OF THE TAPE. SUCH A TIMEOUT LOOP WOULD TAKE QUITE SOME / TIME IF EVERY 6011 HAS TO BE EMULLATED. THUS BY PATCHING / IT WITH A NOP WE CAN LET IT GO AS SMOOTH AS NORMALLY. / NOTE THAT THE SAME READER ROUTINE IN THE BACKGROUND CAN'T / BE REUSED UNLESS THE NOP IS R /6012 AND 6016 THIS ISTION. THUS / WE KICK THY) AND WAIT FOR THE / RE CHARACTER IS ORRED IN / THE USERS ACUUMULATOR AND WE RETURN. WHEN THE WAIT / EXITS WITH A TIMEOUT ERROR, WE GIVE A CONTROL-Z IN THE / USERS ACCUMULATOR, PATCH THE SKP TO A NOP AND MAKE / A FINAL EXIT+SWPOUT /IS CONSIDDERRED SUPERFLO NOP. "R^100+"E&3777OUT CONNECTED INT'S 0RE THE INTERRESTING THINGS SNA JMP RECLR /AC=0: RELEASE THIS DEVICE TAD C3 /AC IS POINTER TO BG-AREA DCA REUPC TAD REUPC IAC JMS DEFER AND C70 /GET CURRENT INSTRUCTION FIELD TAD C6201 DCA RECDF /SETUP FOR PATCHES STA TAD I REUPC DCA REPNT /POINTER TO CURRENT INSTRUCTION TAD REUPC TAD C2 DCA REUAC TAD REUAC IAC JMS DEFER /GET THE TRAPPED INSTRUCTION RTR SPA CLA JMP RESKP /IOP1: SKIP SNL JMP RENOP /NOT IOP2 RERFC, RFC /IOP2: READ DCA .-1 /RFC ONE TIME ONLY TO START TAPE TAD (-DGNTICK%5!7700 /.2 SECONDS TIMEOUT JMS MONITOR WAIT PTR SZA CLA JMP REEND /TIMED OUT TAD I REUAC RRB RFC /OR-IN NEW CHAR, KICK READER DCA I REUAC /GIVE BACK TO USER RERET, JMS MONITOR RETURN RESKP, ISZ I REUPC /SKIP FIRST TIME TOO TAD REPNT DCA RESAVE /REMEMBER WHERE RSF WAS TAD (SKP-NOP RENOP, TAD (NOP RECDF, CDF /CDF TO USERS INSTRUCTION FIELD DCA I REPNT CDF MONFLD JMP RERET REEND, TAD RDF TO USERS RSF-FIELD FOR A SMOOT TIMEOUT LOOONFLD TAD I REUAC ANCA I REUAC /OR-IN A ^Z RECLR, TAD (RFC DCA RERFC /REINITIALISE READER ROUTINE JMS MONITOR EXIT SWPOUT /THIS IS THE END REUPC, 0 REUAC, 0 REPNT, 0 RESAVE, 0 $