X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/bb920f47d2b4fd2ac0c46c72df890dfe6931e943..HEAD:/src/scnsrf.mac diff --git a/src/scnsrf.mac b/src/scnsrf.mac index 56a0e9e..fc3ef80 100644 --- a/src/scnsrf.mac +++ b/src/scnsrf.mac @@ -86,7 +86,6 @@ IFNDEF FTHDPX, ;NON-ZERO TO INCLUDE HALF-DUPLEX CODE IFNDEF FTDDTM, ;NON-ZERO TO IUNCLUDE CALLI DDTIN,OUT FTTTYSER=-1 ;DEFINE THIS SYSTEM TO HAVE SCNSRF - INTERN FTTTYSER ;ASSURE MULT DEF GLOBALS IF WRONG APSER ; RIGHT HALF BITS (USER MODE0 FCS=100 ;FULL CHARACTER SET. PASS @@ -138,7 +137,6 @@ TTYRMT=4000 ;REMOTE TTY LINE TLKRNG=1 ;THIS LINE CURRENTLY IN A TALK RING XON=2 ;^Q TYPED, PAPER TAPE INPUT - FULTWX=4 ;SELF ECHOING FULL DUPLEX T35=10 ;MODEL 35 T37=20 ;MODEL 37 @@ -216,6 +214,7 @@ TOIP=400000 ;SIGN OF TTYPTR(DDB) - TYPE-OUT IN PROGRESS ; DATA BLOCKS. ; 4)SETS TTYUSE#1 IN ALL TTY DDBS IN THE TRANSLATOR TABLE. + EXTERNAL SCNCHN,MLTTYL,MTTYLN,TTYTAB,SCNINI TTYINI: MOVEI TAC,SCNCHN @@ -224,7 +223,6 @@ TTYINI: MOVEI TAC,SCNCHN MOVSI TAC1,MLTTYL ;NO. OF TTY DEV. DATA BLOCKS. NOT LINES MOVSI IOS,TPMON+IOFST ;VIRGIN STATUS MOVEI DDB,TTYLST ;FIRST TTY DDB ADDRESS - SCN1: MOVSI DAT,TTYUSE ;TTY DDB IN USE BIT TDNN DAT,DEVMOD(DDB) ;IS THIS TTY DDB IN USE? SETZM DEVNAM(DDB) ;NO, SET PHYSICAL NAME TO 0. @@ -360,6 +358,7 @@ PUTCHO: SOSGE TOFCTR(DDB) ;RETURN IMMEDIATELY IF NO ROOM PUTCO1: IDPB CHREC,TOPUTR(DDB) ;PUT CHARACTER INTO BUFFER CONO PI,PION ;GET PI BACK ON POPJ PDP, + ;ROUTINE TO CHECK IF A CHARACTER IS SPECIAL(ASCII 0-37, 175-177) ;CALL MOVE CHREC,CHAR. TO BE CHECKED ; PUSHJ PDP,SPCHEK @@ -381,7 +380,7 @@ SPCHK1: MOVE TAC,SPCTAB(CHREC) ;FORMAT XWD BITS+CHAR,ADRESS OF ROUTINE ;HIGH ORDER BITS IN LH: -SPACTN=40000 ;SPECIAL ACTION TO BE TAKEN +SPACTN=400000 ;SPECIAL ACTION TO BE TAKEN SPOUT=100000 ;SPECIAL HANDLING ON UUO OUTPUT BREAKB=20000 ;BREAK CHARACTER SPHPOS=10000 ;CHARACTER AFFECTS HORIZONTAL POSITION @@ -436,6 +435,7 @@ INTERNAL DDTIN EXTERNAL WSYNC,IADRCK,ADRERR EXTERNAL PTYOW + DDTIN: PUSHJ PDP,TTYFNU ;SET UP DEVDAT,LINE MOVE IOS,[XWD TTYIOW+DDTM,IOACT] IORB IOS,DEVIOS(DDB) ;PUT INTO I/O WAIT @@ -444,7 +444,6 @@ DDTIN: PUSHJ PDP,TTYFNU ;SET UP DEVDAT,LINE PUSHJ PDP,TWSYNC ;NO, WAIT FOR SOME DDTIW: MOVE IOS,[XWD TTYIOW,IOACT] ANDCAB IOS,DEVIOS(DDB) - MOVSI TAC,IOFST+DDTM IORM TAC,DEVIOS(DEVDAT) ;STOP ALL IO HRRZ TAC,@UUO ;CONTENTS OF USER (DDT) AC @@ -737,7 +736,6 @@ SCNDDB: SIXBIT /TTY0/ ;DEVNAME XP TOBF,.-ZZ REPEAT STTYBF,<0> ;NO. OF CHAR. IN MON. BUF. - XP TTYCHR,<*5> XP SCNDDS,.-ZZ ;SIZE OF SCN DDB @@ -791,7 +789,6 @@ MONUS1: PUSHJ PDP,GETCHR ;GET A CHAR, FROM IT IDPB CHREC,AC1 ;PLACE CHAR. IN USER BUFFER PUSHJ PDP,SPCHEK ;SPECIAL CHARACTER? JRST MONUS2 ;NO - TLNE TAC,FCSBRK+BREAKB ;A BREAK CHARACTER? SOSA TISYNC(DDB) ;SOME BREAK, COUNT IT DOWN MONUS2: SOJG AC2,MONUS1 ;NO, USER BUFFER FULL? @@ -845,13 +842,13 @@ TTYOUT: MOVSI IOS,IOBEG MOVSI IOS,IO+IOFST IORB IOS,DEVIOS(DDB) + PUSHJ PDP,STLNAC ;GET LINE CHARACTERISTICS PUSH PDP,LINE ;SAVE INFO PUSHJ PDP,USRMON ;MOVE USER'S BUFFER TO TTO BUFFER PUSHJ PDP,ADVBFE ;ADVANCE USER'S HEADERS SKIPA JRST .+3 ;MOVE BUFFERS AVAILABLE - MOVEI IOS,IOACT ;NO MORE BUFFERS ANDCAB IOS,DEVIOS(DDB) ;CLEAR ACTIVE IN IOS POP PDP,LINE ;RESTORE LINE INFO @@ -915,10 +912,10 @@ TTYUUO: PUSHJ PDP,TTYFNU PUSHJ PDP,UADCK1 JRST @TTUUOT(UCHN) ;DISPATCH TO UUO ROUTINES + TTUUOT: EXP INCHRW ;(0)INPUT CHAR. WAIT TILL TYPED EXP ONEOUT ;(1)OUTPUT A CHARACTER EXP INCHRS ;(2)INPUT A CHAR. & SKIP - EXP OUTSTR ;(3)OUTPUT A STRING EXP INCHWL ;(4)INPUT CHAR, WAIT.LINE MODE EXP INCHSL ;(5)INPUT CHAR, SKIP. LINE MODE @@ -991,7 +988,6 @@ INCHRW: PUSHJ PDP,INCHRS ;GET ACHAR IF ONE IS THERE ONEOUT: PUSHJ PDP,GETWDU ;PICK UP CHAR FROM USER MOVE CHREC,TAC ;PUT IT IN PROPER AC ANDI CHREC,177 ;MASK ANY JUNK - JUMPE CHREC,CPOPJ ;DONT STORE NULLS PUSHJ PDP,OUTCHR ;PLACE IT IN TTO BUFFER JUMPN CHREC,DDTUTT ;IF IT STORED, RETURN @@ -1012,7 +1008,7 @@ GETLIN: SKIPGE TAC,@UUO ;DOES USER WANT ONE LINE CHAR. WD.? JUMPE TAC,GETLN1 ;IF NONE, NO LINES. SKIPLE TISYNC(DEVDAT) ;ANY TYPE-IN? TLO LINE,LINRDY ;YES. FLAG. -GETLN1: MOVE LINE,@UUO ;GIVE IT TO USER +GETLN1: MOVEM LINE,@UUO ;GIVE IT TO USER POPJ PDP, ;ROUTINE TO SET LINE CHARACTERISTICS THAT ARE SETABLE @@ -1022,6 +1018,7 @@ SETLIN: MOVSI TAC,LGLSET ;MAKE MASK OF ALL OF THEM AND TAC,@UUO ;SET ONLY THOSE BITS USER WANTS SET IORM TAC,LINTAB(LINE) ;SET RESULTANT POPJ PDP, + ;ROUTINE TO ATTACH TTY TO A JOB ;CALL: MOVE DEVDAT,ADDRESS OF TTY DEVICE DATA BLOCK ; MOVE ITEM,JOB NUMBER @@ -1037,6 +1034,7 @@ SETLIN: MOVSI TAC,LGLSET ;MAKE MASK OF ALL OF THEM ; OR SIXBIT /CTY/, ; 5)SETS DEVOPR IF IT IS NON-ZERO. + INTERNAL TTYATT,TTYATI EXTERNAL PUNIT,PJOBN,TTYTAB @@ -1200,6 +1198,7 @@ TBYTEP: PUSH PDP,TAC1 ;SAVE LINE HLL TAC,TLHBYT(TAC1) POP PDP,TAC1 ;RESTORE LINE POPJ PDP,0 + ;ROUTINE TO FIND TTY FOR A JOB ;CALL: MOVE ITEM,JOB NUMBER ; PUSHJ PDP, TTYFND @@ -1284,7 +1283,7 @@ TTYKIL: MOVSI IOS,TTYIOW+IOW+TTYDTC+SYNC+DDTM+USRB TLZ LINE,LGLSET ;INITIALIZE OTHER MODES HLLM LINE,LINTAB(LINE) SETZB TAC,DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME - MOVE TAC,[XWD TTYUSR+TTYATC,ASSCON+ASSPRG] + MOVE TAC,[XWD TTYUSE+TTYATC,ASSCON+ASSPRG] ANDCAM TAC,DEVMOD(DEVDAT) ;CLEAR ATTACH,USE, AND ASSIGN BITS TTYKL1: LDB LINE,PUNIT ;LINE NO. SETZM TTYTAB(LINE) ;CLEAR TRANSLATOR TABLE @@ -1321,7 +1320,6 @@ TTYSRA: HRRZ DEVDAT,TTYTAB(LINE) JRST TTYF9 ;FOUND TTYF0: AOBJN LINE,TTYSRA TTYF1: MOVSI TAC,576062 ;LOOK FOR DEVICE "OPR" - PUSHJ PDP,DEVPHY ;SEARCH PHYSICAL DEVICE NAMES FOR OPR SKIPA TAC,DEVOPR ;NOT FOUND. JRST TTYF9 @@ -1444,6 +1442,7 @@ TTYUSR: MOVSI IOS,USRB ;SET BIT TO SWITCH TTY TO USER MODE INTERNAL CTYINT EXTERNAL SCNSAV,SCNCHN,TCONLN + CTYINT: CONSO TTY,50 ;TTI OR TTO FLAG? JRST CTYINT ;NO JSR SCNSAV ;YES, SAVE AC'S @@ -1823,7 +1822,6 @@ CNTLEC: HRRI TAC,100(CHREC) ;SAVE UN-CNTL CHARACTER CRLF: MOVEI HPOS,0 ;HERE ON INPUT OF A CARRIAGE RETURN TLNE LINE,XON ;IF PAPER TAPE, NO FREE LF - JRST TTIPUT ;JUST STORE THE CR PUSHJ PDP,TTIPUT ;ORDINARILY, STORE AND GO ON HERE MOVEI CHREC,12 ;BY ADDING A LF @@ -1879,7 +1877,6 @@ DCPUTR: LDB TAC,PLSTLC ;CHECK FOR NONE TO DELETE ADD TAC,PUTR(DAT) ;* TLNE TAC,400000 ADD TAC,[XWD 347777,-1] - MOVEM TAC,PUTR(DAT) AOS FCTR(DAT) AOS TAC,PCTR(DAT) @@ -1960,7 +1957,7 @@ TYP: TYPL: TLNE LINE,PTYLIN POPJ PDP, ;YES PUSHJ PDP,PEVEN8 ;GENERATE CORRECT PARITY - TLNE LINE,CTYLIN ;NO,CONSOLE TTY? + TLNN LINE,CTYLIN ;NO,CONSOLE TTY? JRST SCNTYP ;TYPE CHAR. CTYP: DATAO TTY,CHREC DPB CHREC,PLASTC @@ -2017,7 +2014,7 @@ DDBSRC: HRRZ TAC,LINE ;NUMBER OF LINE ONLY POPJ PDP, ;YES. MOVSI IOS,MLTTYL ;NO. OF TTY DDBS MOVEI DEVDAT,TTYLST ;ADDRESS OF FIRST TTY DDB - SKIPA TAC,[XWD TTYUSE+TTYATC,ASSPRG+ASSCON] + SKIPA TAC,[XWD TTYUSE+TTYATC,ASSCON+ASSPRG] HLRZ DEVDAT,DEVSER(DEVDAT) ;CHAIN THRU DDBS TDNE TAC,DEVMOD(DEVDAT) ;USE,ATTACH OR ASSIGN BITS ON? AOBJN IOS,.-2 ;YES. DONE?