mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
158 lines
3.4 KiB
Plaintext
158 lines
3.4 KiB
Plaintext
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
|