A large commit.
[pdp8.git] / sw / src / life / type.pa
diff --git a/sw/src/life/type.pa b/sw/src/life/type.pa
new file mode 100644 (file)
index 0000000..93ab58d
--- /dev/null
@@ -0,0 +1,72 @@
+/********************************************************************
+/********************************************************************
+/ 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