File CD.TK

Directory of image this file is from
This file as a plain text file

/******* MULTI8 COMMAND DECODER *******

/NAME:	CD
/LENGTH:1 PAGE
/FUNCTION:THIS MODULE ENABLES THE OPERATOR TO PUT EACH
/	OTHER MODULE 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 MODULE ACTS AS A SORT
/	OF KEYBOARD MONITOR IN ORDER TO HAVE SOME GRIP
/	ON ALL THE MODULES FROM THE KEYBOARD. THIS ALSO HAS
/	THE ADVANTAGE THAT THIS MODULE NORMALLY RESIDES ON
/	THE DISK AND SWAPS INTO CORE ONLY WHEN NECESSARY.
/	 A SPECIAL BREAK-CHARACTER(201 CTRL/A)
/	 ACTIVATES THIS MODULE.
/	GENERAL FORMAT: <FIELD1><SPACE><FIELD2>
/	AS FOR EXAMPLE:>R LOAD
/	FIELD1:RUN OR CONTINUE,KILL,STOP.
/	FIELD2:THE NAME OF THE MODULE;EXCESSIVE CHARACTERS
/	       ARE ALLOWED.
/	377(RUB):DELETES THE WHOLE COMMAND
/ERRORS:THIS MODULE HAS NO ERROR RETURN.
/	ERRORS FROM THE CALLED MODULES CAUSE TYPE-OUT OF "?".
/TASK CIRCULATION: WHEN WAITING FOR KB1 OR TTY1 INTERRUPT.
/MODULES USED:ANY MODULE CAN BE CALLED,RUNNED ETC.
/SUBROUTINES USED:CDTOIF
/USE:	TYPE THE CTRL/A CHARACTER AND THE ">" APPEARS.
/	STOP THIS MODULE BY TYPING A CARRIAGE RETURN

/BASIC COMMAND DECODER FOR FOREGROUND /PROCESSES STRINGS LIKE 'R NAME'; 'C NAME'; CDTMP, "C^100+"D&3777 CDAC, 200 /ONE PAGE; NO CONNECTS CDTMP2, 0 / CD, CLA CLL JMS MONITOR /WAIT FOR BREAK-CHARACTER WAIT SWPOUT 0 /BREAK IS ALWAYS SLOT #0 DCA CDAC /NAME OF KB-MODULE TAD CDAC DCA CDI TAD CDI TAD ("T-"K^100 DCA CDO CD1, DCA CDMU /CLEAR MICROCODE TAD C215 JMS CDTYPE TAD C212 JMS CDTYPE TAD ("> /CD IDENTIFIES WITH ">" JMS CDTYPE CD2, JMS CDREAD /READ ONE CHAR TAD (-"K SNA JMP CDKILL TAD M7 /(-"R+"K SNA JMP CDRUN TAD C17 /(-"C+"R SNA JMP CDRESTRT TAD (-"S+"C SZA CLA JMP CDERR /ILLEGAL COMMAND CDSTOP, TAD (STOP-RESTRT CDREST, TAD (RESTRT-RUN /SET UP MICROCODE CDRUN, TAD (RUN-KILL CDKILL, TAD (KILL DCA CDMU CDWAIT, JMS CDREAD /IGNORE THE REST UNTIL SPACE JMP .-1 /IGNORE THE REST UNTIL SPACE /ENTRY HERE AFTER SPACE CD4, JMS CDREAD /READ CHAR CLL RTL RTL CLL RAL CLL RAL DCA CDMU+1 /PACK IN 'NA'
JMS CDREAD TAD CDMU+1 DCA CDMU+1 JMP CDWAIT /WAIT FOR CR OR "= /ENTRY HERE AFTER CR,DETECTED BY CDREAD CD5, TAD (4212 /TYPE A LF FOR CLARITY, RELEASE TTY JMS CDTYPE 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 JMS MONITOR CDMU, 0 /FUNCTION 0 /'NAME' JMP CDERR /ERROR RET JMP CD CDERR, AC4000 TAD ("? JMS CDTYPE JMP CD /CDREAD READS A CHAR FROM TTY:,ECHOES IT /AND TESTS WHETHER IT IS A CR. IF CR THEN JUMPS TO CD5. CDCHAR, CDREAD, 0 TAD (-40^DGNTICK /TIMEOUT TO FREE CD JMS MONITOR CALL CDI, "K^100+"0&3777 JMP .-3 SPA JMP CDERR /TIMEOUT ERROR DCA CDTMP TAD CDTMP JMS CDTYPE /ECHO TAD CDTMP TAD (-377 SNA JMP CD1 /RUB TAD (-215+377 SNA JMP CD5 /CR TAD (-240+215 SNA JMP CD4 /SPACE TAD (-"=+240 SNA CLA JMP CD6 /= TAD CDTMP /NOT IN LIST JMP I CDREAD
/CDTYPE ONLY TYPES A CHARACTER CDTYPE, 0 TAD (4000 /SET TELETYPE-HOLD BIT JMS MONITOR CALL CDO, "T^100+"0&3777 JMP .-3 JMP I CDTYPE CD6, DCA CDAC /CLEAR OCTAL # JMS CDREAD /READ CHAR AND C7 /MASK OCTAL VALUE DCA CDTMP2 /SAVE TEMP. TAD CDAC /GET PREVIOUS VALUE CLL RAL CLL RAL CLL RAL /MPY BY 10 TAD CDTMP2 /+3 NEW BITS JMP CD6 /CONTINUE TILL (CR) $$$



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search