/******************************************************************** /******************************************************************** / ASYNCHRONOUS DISPLAY OUTPUT SUPPORT / THE DISPLAY OPERATES IN AN INTERRUPT DRIVEN MANNER IN ITS OWN / THREAD. IF THERE IS NO DISPLAY OPERATION PENDING, IT FALLS / ASLEEP. DINIT, 0 / CALLED BY MAIN THREAD TCF / CLEAR TELEPRINTER FLAG DCA DTMP / SAVE AC FOR A LITTLE MOMENT TAD PDPROC / GET POINTER TO DISPLAY PROCESS ENTRY DCA TTOUT / GENERATE RETURN ADDRESS DCA TTAC DCA TTL DCA DFLAGS / CLEAR DISPLAY COMMAND FLAGS TAD DTMP / RESTORE CALLER'S AC JMP I DINIT / RETURN TO CALLING THREAD DSUB, 0 / SUBMIT A FLAG TO SET CMA DCA TMP / SAVE INVERSE OF FLAG CLL / CLEAR LINK TAD DFLAGS SNA CML / LINK INDICATES RESTART NOW CMA AND TMP CMA DCA DFLAGS / NEW DFLAGS HAVE BEEN INSTALLED. SZL / SKIP IF NO LINK SPF / SET TTO FLAG -> DISPLAY RESUME ION JMP I DSUB /************************************************* DPROC, / ENTRY POINT TO THE DISPLAY PROCESS. /.... / TEST, SLEEP, RESTART CLA CLL TAD DFLAGS SZA JMP DPROC / WORK TO DO TFC / CLEAR FLAG, NO WORK TO DO. JMS TTOUT / DUMMY TYPING WITHOUT TLS JMP DPROC / AND JUMP BACK TO START OF THREAD PDPROC, DPROC / POINTER TO DISPLAY PROCESS TTAC, 0 TTL, 0 DTMP, 0 /******************************************************************** / TELETYPE OUTPUT HANDLER AND MANAGEMENT TTOUT, 0 / SEND CHARACTER - CALLED FROM DISPLAY THREAD! TSF / IF NO FLAG - GO SLEEPING ONLY SKP TLS / GET IT OUT! DCA TTAC / SAVE AC, JUST POLITE RAR DCA TTL / SAVE LINK, STILL POLITE JMP IEND / END OF INTERRUPT HANDLING TTOHAN, TAD TTL RAL TAD TTAC JMP I TTOUT / RESUME DISPLAY THREAD