1 /********************************************************************
2 /********************************************************************
3 / ASYNCHRONOUS DISPLAY OUTPUT SUPPORT
5 / THE DISPLAY OPERATES IN AN INTERRUPT DRIVEN MANNER IN ITS OWN
6 / THREAD. IF THERE IS NO DISPLAY OPERATION PENDING, IT FALLS
9 DINIT, 0 / CALLED BY MAIN THREAD
10 TCF / CLEAR TELEPRINTER FLAG
11 DCA DTMP / SAVE AC FOR A LITTLE MOMENT
12 TAD PDPROC / GET POINTER TO DISPLAY PROCESS ENTRY
13 DCA TTOUT / GENERATE RETURN ADDRESS
16 DCA DFLAGS / CLEAR DISPLAY COMMAND FLAGS
17 TAD DTMP / RESTORE CALLER'S AC
18 JMP I DINIT / RETURN TO CALLING THREAD
20 DSUB, 0 / SUBMIT A FLAG TO SET
22 DCA TMP / SAVE INVERSE OF FLAG
26 CML / LINK INDICATES RESTART NOW
30 DCA DFLAGS / NEW DFLAGS HAVE BEEN INSTALLED.
32 SPF / SET TTO FLAG -> DISPLAY RESUME
36 /*************************************************
37 DPROC, / ENTRY POINT TO THE DISPLAY PROCESS.
40 / TEST, SLEEP, RESTART
44 JMP DPROC / WORK TO DO
45 TFC / CLEAR FLAG, NO WORK TO DO.
46 JMS TTOUT / DUMMY TYPING WITHOUT TLS
47 JMP DPROC / AND JUMP BACK TO START OF THREAD
52 PDPROC, DPROC / POINTER TO DISPLAY PROCESS
57 /********************************************************************
58 / TELETYPE OUTPUT HANDLER AND MANAGEMENT
61 TTOUT, 0 / SEND CHARACTER - CALLED FROM DISPLAY THREAD!
62 TSF / IF NO FLAG - GO SLEEPING ONLY
65 DCA TTAC / SAVE AC, JUST POLITE
67 DCA TTL / SAVE LINK, STILL POLITE
68 JMP IEND / END OF INTERRUPT HANDLING
72 JMP I TTOUT / RESUME DISPLAY THREAD