File: CD.TK of Disk: Disks/MyPDP/m8-blue-rka1-rkb1
(Source file text)
/CD.TK 12-MAY-80 /NAME: CD /LENGTH:1 PAGE /FUNCTION:THIS TASK ENABLES THE OPERATOR TO PUT EACH / OTHER TASK TO ACTION FROM THE KEYBOARD. /CONCEPT:AS THE FOREGROUND MONITOR FUNCTIONS ARE ALL PRO- / GRAMMABLE, AND NO SUCH THING AS A KEYBOARD MONITOR / HAS BEEN IMPLEMENTED, THIS TASK ACTS AS A SORT / OF KEYBOARD MONITOR IN ORDER TO HAVE SOME GRIP / ON ALL THE TASKS FROM THE KEYBOARD. / THIS TASK NORMALLY RESIDES ON / THE DISK AND SWAPS INTO CORE ONLY WHEN NECESSARY. / A SPECIAL BREAK-CHARACTER (CONTROL/F) / ACTIVATES THIS TASK. / GENERAL FORMAT: <FIELD1><SPACE><FIELD2> / AS FOR EXAMPLE:>R LOAD / FIELD1= RUN, CONTINUE, BREAK OR STOP. / FIELD2= THE NAME OF THE TASK; EXCESSIVE CHARACTERS / ARE ALLOWED. / 377(RUB):DELETES THE WHOLE COMMAND / LOWER CASE IS ACCEPTED / ^Q AND ^S ARE ECHOED BUT IGNORED / ERRORS FROM THE CALLED TASKS CAUSE TYPE-OUT OF "?". / STOP THIS TASK BY TYPING A CARRIAGE RETURN /BASIC COMMAND DECODER FOR FOREGROUND /PROCESSES STRINGS LIKE 'R NAME'; 'C NAME'; CD4096, "C^100+"D&3777 200+100 /ONE PAGE; NO CONNECTS; AUTO-START CDAC, 0 / CD, JMS MONITOR /WAIT FOR BREAK-CHARACTER WAIT SWPOUT 0 /BREAK IS ALWAYS SLOT #0 DCA CDAC /NAME OF KB-TASK TO PASS TO TASKS TAD CDAC DCA CDI TAD CDI TAD ("T-"K^100 DCA CDO CD1, DCA CD4096 DCA CDMU /CLEAR MICROCODE JMS CDTYPE /TYPE ^F WHEN CALLED "^ "F 215 212 "F "> /CD IDENTIFIES WITH ">" 4000 CD2, JMS CDREAD /READ ONE CHAR JMS CDCHK -"B JMP CDBRK -"R JMP CDRUN -"C JMP CDRESTRT -"S JMP CDSTOP 0 CDERR, JMS CDTYPE "?+4000 4000 JMP CD CDSTOP, TAD (STOP-RESTRT CDREST, TAD (RESTRT-RUN /SET UP MICROCODE CDRUN, TAD (RUN-BREAK CDBRK, TAD (BREAK DCA CDMU CDWAIT, JMS CDREAD /IGNORE THE REST UNTIL SPACE JMP CDWAIT /ENTER HERE AFTER SPACE CD4, JMS CDREAD /READ CHAR TAD CDTMP AND C77 BSW DCA CDMU+1 /PACK IN 'NA' JMS CDREAD TAD CDTMP TAD CDMU+1 DCA CDMU+1 JMP CDWAIT /WAIT FOR CR /ENTER HERE AFTER CR, DETECTED BY CDREAD CD5, JMS CDTYPE 212+4000 /TYPE A LF FOR CLARITY, RELEASE TTY 4000 TAD CDMU /GET FUNCTION SZA CLA /MUST BE SET TAD CDMU+1 /GET NAME SNA SPA CLA /MUST BE REASONABLE JMP CDERR /NO NAME GIVEN TAD CDAC CLL /RUN WITH LINK=0 JMS MONITOR CDMU, 0 /FUNCTION 0 /'NAME' JMP CDERR /ERROR RET JMP CD /CDREAD READS A CHAR FROM TTY:,ECHOES IT /AND TESTS WHETHER IT IS A CR. IF CR THEN JUMPS TO CD5. CDREAD, 0 CDIGN, TAD (-5^DGNTICK /TIMEOUT TO FREE CD JMS MONITOR CALL CDI, 0 /GETS NAME OF KEYBOARD TASK JMP .-3 SPA JMP CDERR /TIMEOUT ERROR DCA CDTMP JMS CDTYPE /ECHO CDTMP, 0 4000 JMS CDCHK -221 JMP CDIGN /^Q -223 JMP CDIGN /^S -377 JMP CD1 /RUB -215 JMP CD5 /CR -240 JMP CD4 /SPACE 0 TAD CDTMP AND (337 DCA CDTMP JMP I CDREAD CDCHK, 0 TAD I CDCHK ISZ CDCHK SZA TAD CDTMP SNA CLA JMP I CDCHK ISZ CDCHK JMP CDCHK+1 /CDTYPE TYPES A CHARACTER STRING CDTYPE, 0 CDMOR, CDTOIF AC4000 TAD I CDTYPE ISZ CDTYPE SNA JMP I CDTYPE CDTRY, ISZ CD4096 SKP /DON'T HANG TOO LONG JMP CD /IGNORE THIS REQUEST JMS MONITOR CALL CDO, 0 JMP CDTRY JMP CDMOR PAGE $$$