TTDRV.MAC;40/AU/-BF=TTDRV.MAC;37 \ -2,2 .IDENT /18.14/ -5,5 ; COPYRIGHT (C) 1973, 1974, 1975, 1976, 1977 -24,24 ; VERSION 18.14 -35 ; ; EB011 -- CLEAR I/O RUNDOWN IN PROGRESS ; EB012 -- MAKE MODEM TIMEOUT ROUTINES CHECK FOR OFFLINE UNITS ; ; EB013 -- CHECK I/O QUEUE AFTER UNSOLICITED CHAR AST ; ; EB014 -- CORRECT LABEL FOR LA30P CODE ; ; EB016 -- READ CORRECT NUMBER OF CHARACTERS FOR IO.RPR ; WHERE PROMPT IS LONGER THAT READ ; ; EB018 -- DON'T LET IO.WTB'S ECHO MATERIAL READ IN ; NO ECHO MODE ; ; EB019 -- CLOSE IO.WBT WINDOWS ; ; EB024 -- ALLOW ECHOING TO BREAKTHROUGH CONTROL/S ; ; EB030 -- CLEAR I.PRM+16 IF WE WRITE INTO IT. $FINBF MUST ; CLEAR IT FOR CHECKPOINTING DURING TERMINAL INPUT. ; ; EBO36 -- CHECK CARRIAGE CONTROL IF NDF T$$TRW AND DF T$$RPR ; ; EB037 -- DO NOT FALL INTO PARTIAL CONTROL/R CODE IF NDF T$$CTR ; AND DF T$$BTW ; ; EB041 -- 1) MODIFY I.PRM CORRECTLY IF VSECTS ; 2) DO NOT LOOP IF BUFFER NOT MAPPED BY A WINDOW ; 3) CORRECT CODE FOR DF T$$BTW AND NDF T$$RPR ; ; EB054 -- MAKE BREAKTHROUGH WRITES ECHO PROPERLY IF DF T$$UTB ; ; EB057 -- 1) CLEAR UCB STATUS ON HANGUP ; 2) PREVENT TTCHK FROM SETTING UCB BITS FOR DISABLED ; LINES ; 3) CORRECT CONDITIONAL CODE IN TTHUP TO ALLOW HANGUP ; IN SYSTEM WITH DM11-BB'S AND REMOTE DZ LINES ; ; EB055 -- 1) DO PROPER CONDITIONAL ASSEMBLY FOR IO.RPR AND ; MAINTAIN PROPER STACK LEVEL ; 2) DZ11 SHOULD NOT CLEAR S.CTM ON OUTPUT INTERRUPT ; NOT EXPECTED ; 3) GENERAL TIGHTENING OF CONDITIONAL CODE ; 4) HAVE DM11-BB CHECK FOR PRESENCE OF CORRESPONDING ; DH11 UCB ; ; EB061 -- 1) DO NOT CLEAR XOFF BITS FOR A CANCEL ; 2) DO NOT ECHO CR AND ESC THAT TERMINATE IO.RNE % -531,531,/; EB041/ .IF DF T$$RPR!T$$BTW TTCHK: MOV R1,R3 ;SAVE START OF PACKET FOR $IOFIN .IF NDF T$$RPR BR 30$ ;SKIP AROUND CODE .ENDC .ENDC ; DF T$$RPR!T$$BTW -558,558,/; EB041/ -618,,/;EB057/ .IF DF D$$M11&D$$H11!D$$ZMD MOV #IE.DNR&377,R0 ;ASSUME WRITING TO DISABLED LINE BITB #US.DSB,U.STS(R5) ;IS LINE DISABLED? BNE 9$ ;IF NE YES -- REJECT PACKET .ENDC -626,626,/; EB019/ .ENDC -627,,/;EB019/ MTPS S.PRI(R4) ;DISALLOW INTERRUPTS BISB #US.ECH,U.STS(R5);;; DISALLOW INPUT (BUSYING OF UNIT) -631,648,/; EB019/ -653,,/; EB019/ MTPS #0 ;;;REDUCE PRIORITY -670,683,/; EB019/ BIT #RPRM!BTWP,U.CNT+2+ATERS(R5) ;;;BREAKING THROUGH OR ;;; PROMPTING BEQ 43$ ;;;IF EQ NO MOV #IE.RSU&377,R0 ;;;UNSHARABLE RESOURCE IN USE (CANNOT -685,692,/; EB019/ CALL INPT0 ;;;CLEAR US.ECH MTPS #0 ;;;REDUCE PRIORITY .IF DF A$$CHK!M$$MGE&T$$RPR BR 9$ .IFF 9$: CLR R1 ;WANT IOSB+2 TO BE ZERO -697,702,/; EB019/ 43$: CMPB #IO.RLB/400,I.FCN+1(R0) ;;;DOING A READ? BEQ 46$ ;;;IF EQ YES --BREAKTHROUGH .IIF NE UPND-200, .ERROR UPND TSTB U.CNT+2+ATERS(R5) ;;; HAVE A HELD UP CHARACTER? BPL 32$ ;;;IF PL NO BIC #UPND,U.CNT+2+ATERS(R5) ;;;CLEAR PENDING FLAG MOV #45$,-(SP) ;;;WANT TO RETURN TO 45$ MOVB U.CNT+2+DHBUF(R5),-(SP) ;;;RETRIEVE HELD UP CHARACTER CALLR FCHAR ;;;FORCE IT OUT 45$: MOV U.SCB(R5),R4 ;;;RESTORE THE MESSED UP REGISTER BR 32$ ;;;DO THIS IO.WBT AS NEXT FUNCTION -705,708,/; EB019/ BIT #EOLS,(R3) ;;;HAS READ "FINISHED"? BNE 32$ ;;;IF NE YES -- JUST QUEUE BREAKTHROUGH -711,,/; EB019/ BIC #LFCT!CRTY!CRJT!CTLO!FLCT,(R0) ;;;MAKE SAVED STATUS ;;;SHOW INACTIVE ON OUTPUT -718,,/; EB019/ BIC #LFCT!CRTY!CRJT!CTLO!FLCT,(R0) ;;;MAKE SAVED STATUS ;;;SHOW INACTIVE ON OUTPUT -729,730,/; EB019/ BIC #CTLO!LFCT!CRTY!EOLS!RUBP!SOLI,(R3) ;;;RESET BIS #MODE!FLBT,(R3) ;;;STATUS WORD FOR IO.WBT MOV #CTRLU-1,MEBUF(R3) ;;;JUST IN CASE, KILL MULTIECHO ;;;CANNOT AVOID KILLING "MCR>") -982,,/; EB011/ ; I$$RAR = REMOVE AFTER RUNNING (GOES WITH I$$RDN AND M$$MGE) ; I$$RDN = I/O RUNDOWN (GOES WITH I$$RAR AND M$$MGE) -991,,/; EB041/ ; P$$LAS = MEMORY MANAGEMENT DIRECTIVES -,,/; EB030/ ; R$$LKL = RMS-11 LOCKING -1304,,/; EB041/ .IF DF D$$YNM&M$$MGE .IFF -1308,1308,/; EB041/ .IFT -1314,1316,/; EB041/ MOV (R1)+,R2 ;GET COUNT OF WINDOWS 23$: DEC R2 ;ANY MORE WINDOWS TO EXAMINE? BLT 900$ ;IF LT NO -- DO NOT CHECKPOINT MOV (R1)+,R4 ;GET ADDRESS OF DESCRIPTOR PCB MOV (R1)+,-(SP) ;GET LOW VIRTUAL ADDRESS -1318,1318,/; EB041/ SUB (SP),R3 ;CALCULATE NUMBER OF BYTES MINUS 1 -1325,1327,/; EB041/ MOV P.REL(R4),(SP) ;GET RELOCATION BIAS OF PCB .IF DF P$$LAS ADD W.BOFF-W.BATT(R1),(SP) ;ADD IN OFFSET IN PARTITION .ENDC ADD (SP),R3 ;CALCULATE HIGHEST 32W BLOCK -1329,1329,/; EB041/ CMP (R5),(SP)+ ;TRANSFER IN THIS PARTITION? -1333,1334,/; EB041/ BIS #T2.TIO,T.ST2(R0) ;SHOW DOING TERMINAL I/O DECB T.IOC(R0) ;ADJUST OUTSTANDING I/O REQUEST COUNT SUB P.REL(R4),(R5) ;CONVERT TO RELATIVE RELOCATION BIAS MOV R4,I.PRM+16-I.PRM(R5) ;SAVE ADDRESS OF DESCRIPTOR PCB -1407,,/; EB036/ .IFF BR 36$ ;PROCESS CARRIAGE CONTROL -1463,1464,/; EB016/ BHIS 72$ ;IS HIS UCB PROPERLYSETUP FOR READ MOV (R1),U.CNT(R5) ;RESRORE COUNT OF CHARS TO BE READ MOVB (R1),RMBYT(R3) ;CORRECT COUNT OF BYTES LEFT -1469,1480,/; EB055/ MOV I.PRM+16-I.PRM-10(R1),-(SP) ;SAVE PROMPT VCF .IFF MOV I.PRM+16-I.PRM-10(R1),R0 ;PUT PROMPT WHERE IT'S EXPECTED .IFTF -,,/; EB030/ .IF DF R$$LKL -,,/; EB055/ CLR I.PRM+16-I.PRM-10(R1) ;MAKE LOCKING WORD ZERO AGAIN -,,/; EB030/ .ENDC -,,/; EB055/ .IFT MOV I.TCB-I.PRM-10(R1),R2 ;GET TCB ADDRESS -1483,,/;EB055/ .IF DF M$$MGE MOV (R1)+,@#KISAR6 ;MAP TO PROMPT (WRITE) BUFFER .IFF TST (R1)+ ;POINT AT PROMPT BUFFER ADDRESS .ENDC -1496,,/; EB055/ 78$: MOV (SP)+,R0 ;RETREIVE PROMPT VFC -1500,1500,/; EB055/ -1602,1602,/; EB054/ MOV U.CNT+2+CURBF(R5),(R3)+ ;RESTORE U.BUF+2 -1714,1714,/; EB054/ .IF DF T$$BTW!T$$CTR -1788,1788,/; EB054/ .IF DF T$$BTW!T$$CTR&T$$UTB&M$$MGE -1794,1794,/; EB054/ ; DOING CONTROL R FOR A TASK THAT HAS THE INPUT STRING IN ITS -1822,1822,/; EB054/ .IF DF T$$BTW!T$$CTR -1875,,/; EB030/ .IF DF R$$LKL CLR I.PRM+16(R2) ;MAKE LOCKING WORK ZERO AGAIN .ENDC -2055,,/; EB030/ .IF NDF T$$MIN INPT22: BR INPT2 ;;; INPT11: BR INPT1 ;;; .ENDC -2083,2089,/; EB030/ -2216,,/; EB013/ .ENABLE LSB -2238,2238,/; EB013/ JTTINI: JMP TTINI ;GO AGAIN -2281,2281,/; EB013/ BR JTTINI ;ANYTHING ELSE TO DO? -2342,2342,/; EB013/ BR JTTINI -2352,,/; EB011/ .IF DF I$$RAR!I$$RDN!M$$MGE BIC #TS.RDN,T.STAT(R2) ;CLEAR I/O RUNDOWN IN PROGRESS .ENDC -2372,,/;EB013/ .DSABL LSB -2397,2398,/; EB013/ CALL $QASTT ;INSERT AST BLOCK IN AST QUEUE BR JTTINI ;AND CALL $SETCR -2439,2439,/; EB014/ BITB #US.ECH,U.STS(R5) ;;INPUT CHARACTERS LOCKED -2441,,/;EB014/ RESUME: ;;;REF LABEL -2632,,/; EB037/ .IFF .IF DF T$$BTW BR 352$ ;;;DO NOT TREAT CHAR AS CONTROL/R .ENDC -2636,,/;EB018/ .IFTF .IF DF T$$BTW CTRLR: ;REF LABEL .ENDC .IFT -2649,2649,/; EB018/ BIC #RUBP,(R3) ;;;NEW LINE = NEW RUBOUT SEQ -2911,2911,/; EB061/ MOVB (SP),FNBYT(R3) ;;;SET FINAL BYTE -2912,,/; EB061/ .IF DF T$$RNE BITB #SS.RNE,S.STS(R4) ;;;SHOULD ECHO CR OR ESC? BNE 48$ ;;;IF NE NO .ENDC -2984,,/; EB024/ .IF DF T$$SYN BIC #UOFF!UPND,ATERS(R3) ;;;IGNORE PREVIOUS CTRL/S .ENDC -3178,3178,/; EB061/ .IF DF T$$BTW!T$$ESC!T$$RPR -3180,3180,/; EB061/ BIC #ESCS!RPRM!XOFF!UPND!BTWQ,U.CNT+2+ATERS(R5) ;;; -3195,,/; EB057/ MOV #CTRLU-1,U.CNT+2+MEBUF(R5) ;;;SUPPRESS MULTIECHO -3197,3197,/; EB057/ .IF DF T$$ACR!T$$BTW!T$$CCA!T$$ESC!T$$HLD!T$$SYN!T$$18S!T$$30P -3199,3199,/; EB057/ -,,/; EB061/ T3=CCPN!BAKS!FKCR!ECHO!UPND!CHAR!WESC!CCON!MCTR!UOFF BIC #T3,U.CNT+2+ATERS(R5) ;CLEAR ADDITIONAL TERMINAL STATUS -3226,3231,/; EB057/ -3237,,/; EB057/ .IF DF D$$M11 BR 60$ ; .ENDC -3613,3613,/; EB055/ -4007,,/; EB055/ .IF DF D$$M11&D$$H11!D$$ZMD -4009,,/; EB055/ .ENDC -4296,,/; EB055/ .IF DF D$$J11!D$$Z11!D$$L11 -4297,,/; EB055/ .ENDC -4385,4385,/; EB055/ .IF DF D$L11 -4543,4543,/; EB055/ BNE 4$ ;;;IF NE CORRESPONDING DH11 UCB EXISTS TST (SP)+ ;;;REMOVE INTERRUPT STATUS FROM STACK BR 50$ ;;;IGNORE INTERRUPT 4$: BIS #7,(R4) ;;;SET REQUEST SEND+DATA ENABLE+ ;;; RING ENABLE -4583,,/; EB055/ ; ; INPUTS: ; ; R1=CSR ADDR OF DM11-BB ; R5=UCB ADDR ; ; OUTPUTS: ; ; NO REGISTERS ARE DESTROYED ; UCB AND DM11-BB STATUSES ARE MODIFIED -4615,4615,/; EB055/ ; NONE -4628,,/; EB012/ BITB #US.OFL,U.ST2(R5) ;IS THE LINE OFFLINE? BNE 30$ -4692,4692,/; EB012/ -4696,,/; EB012/ BITB #US.OFL,U.ST2(R5) ;IS THE LINE OFFLINE? BNE 30$ ;IF NE YES - OTHER UNITS ARE ALSO -4699,4699,/; EB012/ MOV $BTMSK(R4),R4 ;IN R4, ASSERT BIT N FOR UNIT N BISB R4,5(R1) ;ENABLE DTR FOR THIS LINE BITB R4,7(R1) ;CARRIER ASSERTED? -4713,4713,/; EB012/ BICB R4,5(R1) ;LOWERDTR TO HANG UP /