*1400 / /NON-RESIDENT TELETYPE HANDLER MODULE. HANDLES TTY /INPUT AND OUTPUT, CONVERSION OF ASCII TO LINC CODE ON INPUT /IF DESIRED, AND LINE PRINTER OUTPUT. / -TIOM /INDICATOR THAT THIS IS TTY MOD TAD LINS /LOAD OPERATE INSTR AND (17) /CLEAR ALL BUT LAST 4 BITS TAD (-14) /SUBTRACT 14 SNA CLA /IS RESULT 0? JMP TYP /YES - THIS IS TYPE / /A KBD OPERATE WAS GIVEN / KBD, TAD FFIM /BIT 7 SET IF KST AND C20 SZA CLA /SKIP IF NOT KST JMP KBD1 /MUST HAVE BEEN TAD LINS /GET BACK INSTRUCTIONS AND C20 /CLEAR ALL BUT I BIT SNA CLA /WAS IT SET JMP DOGOA /YES JMS IOWAIT /WAIT FOR KBD TO BE STRUCK KW KBD1, TAD IMOD SZA CLA JMP KBD2 JMS ECHO /NOP TO FLUSH ECHO TAD ICHR JMP KBD4 KBD2, TAD CASE SZA JMP KBD4 TAD ICHR JMS KTRNS JMS ECHO /NOP TO FLUSH ECHO TAD CASE SZA CLA JMP KBR2 JMP KBR1 KBD4, DCA LNCODE DCA CASE JMP KBR1 / /A TYPE OPERATE WAS GIVEN / TYP, TAD LNCA JMS TYPE JMP DOGO / /LINE PRINTER SUBROUTINE / LTYPE, AND (377 TAD (-215 SNA JMP DOGO ISZ LFLG JMP LT3 TAD (3 SNA JMP LT1 IAC SNA CLA JMP LT2 ISZ LCNT JMP .+5 SM1 TAD LNCP DCA LNCP JMP LT1 TAD TEMP LLB LSD JMP .-1 LCF CLC DCA LFLG TYPEX, CLA JMP I TYPE / /HANDLE SPACING ON LINE PRINTER / LT2, TAD C7 /FORM FEED LT1, TAD C10 /SINGLE SPACE LPR TAD (-204 DCA LCNT JMP TYPEX LT3, JMS IOWAIT LW / /GENERAL TYPE DISPATCHER / TYPE, 0 DCA TEMP TAD ODEV TAD (JMP I TYPJ+3 TYPJ, DCA .+2 TAD TEMP 0 TYPEX TYPE1 TYPE2 TYPEX TYPEX TYPEX LTYPE TYPEX / /ECHO INPUT CHAR ON INPUT DEVICE, NOT OUTPUT DEVICE / ECHO, 0 TAD ICHR DCA TEMP TAD ECHO DCA TYPE TAD IDEV JMP TYPJ-1 / /WAIT FOR AN I-O COMPLETION OF THE TYPE SPECIFIED. /ACCOMPLISHED BY BACKING UP THE LINC P, AND /REEXECUTING THE INSTRUCTION UPON OCCURANCE OF /THE I-O EVENT. / IOWAIT, 0 CLA TAD I .-2 DCA JOBS SM1 TAD LNCP DCA LNCP TAD (GO JMP WAITL / /END OF PAGE SIX OF NON-RESIDENT TTY MODULE / *1600 / /TYPE THE CHARACTER IN THE AC / TYPE1, ISZ TFLG JMP TYP1W TLS JMP TYPEX TYP1W, JMS IOWAIT TW TYPE2, ISZ T2FLG JMP TYP2W T2LS JMP TYPEX TYP2W, JMS IOWAIT T2W KTRNS, 0 DCA KCHR DCA CASE TAD KCHR TAD (-333 SMA JMP KBDC TAD (333-301 SMA JMP KBDD /LETTER ADD 24. / /SPECIALS TEST / KBDC, CLA TAD (KTBL-1 DCA 10 TAD (-7 DCA TEMP TAD KCHR TAD I 10 SNA JMP KBDA ISZ TEMP JMP .-4 TAD (377-272 SMA JMP KBRET TAD (272-243 SPA JMP KBRET KBDA1, CLL RAR /SHIFT 1 RT & CLEAR LINK TAD (TTAB /ADD START ADDR OF TABLE DCA TEMP /PUT IN TEMP TAD I TEMP /GET CONT OF ADDR OF TBL SZL /RT OR LEFT HALF NEEDED? JMP .+4 /RIGHT HALF RTR /GET RTR / LEFT RTR / HALF AND (77 /CLEAR OTHER HALF SNA /ANYTHING THERE? JMP KBRET /NO!!! TAD (-12-24 /A HELL OF A WAY TO SUBTRACT 36!! KBDD, TAD (24 /NOW ADD BACK 24 SMA /IS AC NEG? JMP KBDL /NOPE TAD (23 DCA CASE TAD (23 KBDL, DCA LNCODE /SAVE LINC CODE CHARACTER TAD (-215 /WAS IT RETURN? TAD KCHR SZA CLA JMP I KTRNS /NOPE TAD (212 /PUT 212 IN LF DCA LF JMP I KTRNS /EXIT KBDA, TAD 10 TAD (-KTBL+27 JMP KBDA1 KBRET, SM1 TAD LNCP /BACK UP THE LINC P REG. DCA LNCP KBR1, TAD FFIM /CLEAR KST AND (7757 IACF DCA FFIM KBR2, TAD LNCODE JMP DOGOA / /TRANSLATION TABLE. HOLDS CHARACTERS FOR ASCII CODES /243-271 PLUS CHARACTERS FROM SPECIALS TABLE. THE LATTER /ARE CODED BY ADDING 27 TO POSITION OF SPECIAL IN KTBL. FOR /NORMALS, POSITION IS TTAB + (C-243)/2. / TTAB, 3410 0527 3000 0 3206 3107 3312 1314 1516 1720 2122 2301 2426 0411 3525 KTBL, -212 /LINE FEED 212-215 /RETURN 215-240 /SPACE 240-275 /= 275-333 /[ 333-376 /ALTMODE 376-377 /RUBOUT KCHR, 0 / /END OF NON-RESIDENT TTY HANDLER MODULE. /