TITLE TTYSCH --- PROGRAM TO RESET TTY STATUS SUBTTL BILL VOLKMAN 27-SEP-77 SUBTTL DEFINITIONS T1==1 T2==2 T3==3 P==17 PDLSIZ=10 SUBTTL MAIN SECTION START: JFCL ;IN CASE OF CCL RESET ;THE WORLD MOVE P,[IOWD PDLSIZ,PDL];SET UP THE PDL AGAIN: PUSHJ P,INTTY ;GET A TTY OPEN 1,DEVBLK ;INIT IT TO OUR JOB JRST NOTTY ;NO, MUST ASSUME LOGGED IN MOVEI T2,2004 ;GET OUR ACTION(SLAVE BIT) MOVEM T2,ADRBLK ;PUT IT IN THE BLOCK SETZM ADRBLK+2 ;CLEAR THE THIRD WORD MOVE T2,PBLK ;GET THE POINTER TO THE BLOCK CALLI T2,116 ;DO A TRMOP JRST FAIL ;NO WEIRD ERROR OUTSTR [ASCIZ/ ENABLE AUTO BAUD DETECT ? /];SEE IF WE WANT TO SKIP INCHRW T1 ;FOLLOWING CODE ? OUTSTR [ASCIZ/ /] CAIE T1,"Y" ;YES THEN SKIP JRST NOAUTO ;NO JUMP AROUND MOVEI T2,17 ;ENABLE THE MODEM FOR AUTO MOVEM T2,ADRBLK ;BAUD DETECT MOVE T2,PBLK HRLI T2,2 CALLI T2,116 JFCL ;AGAIN WE DON'T CARE NOAUTO: PUSHJ P,GETSPD ;GO GET THE SPEED HE WANTS JRST NOCHG ;SKIP THIS IF NO SPEED CHANGE MOVEI T2,2030 ;FIRST TAKE CARE OF RECEIVE SPEED MOVEM T2,ADRBLK ;PUT IT IN THE BLOCK MOVE T2,PBLK ;GET THE POINTER CALLI T2,116 ;DO IT JRST FAILS ;HMMM, SEEMS WE CAN'T DO THAT MOVEI T2,2031 ;TAKE CARE OF TRANSMIT SPEED MOVEM T2,ADRBLK ;PUT IT IN THE BLOCK MOVE T2,PBLK ;GET THE POINTER CALLI T2,116 ;DO IT JRST FAILS ;CUT THE GARBAGE NOCHG: SETZM ADRBLK+2 ;ZERO PART OF BLOCK MOVEI T2,2013 ;GET THE "GAG" ARGUMENT MOVEM T2,ADRBLK ;PUT IT AT THE TOP MOVEI T2,1 ;WE WANT TO SHUT OFF GAG MOVEM T2,ADRBLK+2 ;NOT SET IT MOVE T2,PBLK ;GET THE POINTER AGAIN CALLI T2,116 ;CLEAR GAG JFCL ;NO, WE DON'T CARE MOVEI T2,7 ;GET READY TO TRANSFER A MESSAGE MOVEM T2,ADRBLK ;PUT IT IN THE BLOCK MOVEI T2,MESBLK ;GET OUR MESSAGE ADDRESS MOVEM T2,ADRBLK+2 ;PUT IT AT THE BOTTEM MOVE T2,PBLK ;GET THE POINTER CALLI T2,116 ;DO OUR THING JFCL ;WELL YOU CAN'T WIN ALL THE TIME RELEASE 1, ;GET RID OF THE SILLY THING OUTSTR DONE ;TELL WHO STARTED US JRST AGAIN ;AND START FROM THE TOP INTTY: OUTSTR PTTY MOVE T1,[SIXBIT/TTY /] MOVEM T1,DEVBLK+1 MOVEI T2,0 MOVE T3,[SIXBIT/000000/] LOOP: INCHWL T1 CAIG T1,"9" CAIGE T1,"0" JRST PUNT SUBI T1,40 LSH T3,6 ADD T3,T1 SUBI T1,20 LSH T2,3 ADD T2,T1 JRST LOOP PUNT: CAIN T1,12 JRST INDONE INCHWL T1 JRST PUNT INDONE: CAIG T2,777 CAIG T2,0 EXIT HRRM T3,DEVBLK+1 ADDI T2,200000 MOVEM T2,ADRBLK+1 POPJ P, GETSPD: OUTSTR PSPEED MOVEI T2,0 INCHWL T1 CAIG T1,"9" CAIGE T1,"0" JRST PUNT1 SUBI T1,60 IMULI T2,^D10 ADD T2,T1 JRST GETSPD+2 PUNT1: CAIN T1,12 JRST SPDONE INCHWL T1 JRST PUNT1 SPDONE: CAIG T2,0 POPJ P, MOVEI T1,17 CAMN T2,TABLE(T1) JRST SPPUT SOJG T1,.-2 OUTSTR [ASCIZ/? ILLEGAL SPEED -- TRY AGAIN /] JRST GETSPD SPPUT: MOVEM T1,ADRBLK+2 POP P,T3 JRST 1(T3) NOTTY: OUTSTR [ASCIZ\ ? TTY LOGGED IN/STILL SLAVED -- CALL COMPUTER SERVICES ? \] EXIT FAIL: OUTSTR [ASCIZ/%FAILURE -- CALL DOWN TOWN /] EXIT FAILS: OUTSTR [ASCIZ/%UNABLE TO SET SPEED -- CONTINUING /] JRST NOCHG TABLE: 0 ^D50 ^D75 ^D110 ^D134 ^D150 ^D200 ^D300 ^D600 ^D1200 ^D1800 ^D2400 ^D4800 ^D9600 0 0 DONE: ASCIZ/ *DONE* / PTTY: ASCIZ/ TTY NUMBER: / PSPEED: ASCIZ/ TTY SPEED: / MESBLK: ASCIZ/ THE TTY SHOULD WORK NOW -- IF IT DOESN'T TYPE CHARACTERS TYPE CNTRL-C (^C) THEN TYPE "TT ECHO". / PBLK: XWD 3,ADRBLK ADRBLK: BLOCK 3 DEVBLK: BLOCK 3 PDL: BLOCK 10 END START