1 TITLE DLSINT - INT. SERV. FOR DLS (DATA LINE SCANNER DC10)
\r
2 SUBTTL M.FREDRIKSEN/RCC TS 01 JUN 69 V005
\r
4 ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP
\r
6 ;MODULAR HARDWARE INTERFACE WITH EITHER SCNSER OR TTYSER
\r
10 IFE FTTTYSER,<XP FULTWX,200000>
\r
12 IFN FTTTYSER,<XP FULTWX,4>
\r
14 ;ACCUMULATOR ASSIGNMENTS
\r
16 CHREC=TEM ;AC FOR CHARACTER
\r
17 DDB=DEVDAT ;ADDRESS OF DEVICE DATA BLOCK
\r
18 LINE=TAC1 ;SCANNER LINE NUMBER
\r
19 HPOS=DAT ;HORIZONTAL POSITION OF TTY.(0-71)
\r
29 DLS=240 ;DC10 DEVICE NUMBER
\r
30 ;BITS IN CHREC TO COMMUNCATE WITH DLS
\r
32 USDRLN=100 ;USE DIRECTED LINE NUMBER
\r
33 TDSABL=400 ;TRANSMIT DISABLE
\r
34 RCVBIT=400 ;RECEIVE BIT AFER DATAI DLS,CHREC
\r
36 ;DEVICE DEPENDENT PORTION OF INITIALIZATION CODE
\r
37 ;CALL: MOVEI TAC,CHANNEL NUMER
\r
42 SCNINI: CONO DLS,40 ;INIT DLS COMPLETELY (I/O/RESET)
\r
43 CONO DLS,(TAC) ;ASSIGN PI CHANNEL NUMBER
\r
46 ;SCANNER INTERRUPT SERVICE ROUTINE
\r
51 EXTERNAL SCNSAV,TCONLN,TTYTAB,XMTINT,TYPE,INUS2,RECINT
\r
54 SCNINT: CONSO DLS,30 ;ANY INTERRUPTS ON DLS
\r
57 DATAI DLS,CHREC ;GET CHARACTER & LINE INFO
\r
58 HLRZ LINE,CHREC ;PUT LINE NUMBER IN AC LINE
\r
59 CAIL LINE,TCONLN ;ARE WE ENABLED FOR THIS LINE NUMBER?
\r
60 JRST SCNIN2 ;NO,TURN OFF TRANSMIT(IF ON) AND DISMISS
\r
61 TRNE CHREC,RCVBIT ;WAS IT A RECEIVER INTERRUPT?
\r
62 JRST RECINT ;YES, RECEIVER INT. HANDLER
\r
63 DATAO DLS,[EXP TDSABL] ;CLEAR HARDWARE FLAG
\r
64 JRST XMTINT ;GO PROCESS CHAR IN SCNSRF OR SCNSRH
\r
65 \f;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES.
\r
67 EXTERNAL INJEST,DDBSRC
\r
71 SKIPE DDB,TTYTAB(LINE) ;DATA BLOCK ASSIGNED?
\r
73 PUSHJ PDP,DDBSRC ;SEARCH FOR FREE TTY DEV. DATA BLOCK
\r
74 JRST TYPX ;NONE FOUND, TYPE X
\r
75 MOVEI HPOS,0 ;ASSUME TTY IS AT BEGIN OF FORM
\r
76 CAILE LINE,TCONLN ;PSEUDO CONSOLE?
\r
78 CAIN LINE,TCONLN ;IS IT THE CTY ?
\r
79 JRST INUS2 ;YES, ACCPT CHAR AND PROCESS
\r
80 JRST TYPE ;NO, ECHO CHAR ON FULL DUPLEX
\r
81 ;BEFORE PROCESSING IT
\r
83 ;HERE IF LINE NUMBER TOO BIG
\r
84 SCNIN2: DATAO DLS,[EXP TDSABL] ;SET TRANSMIT DISABLE BIT AND OUTPUT IT
\r
85 ;(JUST INCASE, ELSE IT WILL INTERRUPT IMMEDIATLY AGAIN)
\r
86 POPJ PDP, ;DISMISS INTERRUPT
\r
87 \f;COMMON TO RECEIVE AND TRANSMIT.
\r
89 INUSE: HRRZS DDB ;LINE DISABLED IF RH TTYTAB=-1
\r
92 MOVE IOS,DEVIOS(DDB) ;SETUP IOS
\r
93 CAIL LINE,TCONLN ;CTY OR PTY ?
\r
95 TLNE IOS,FULTWX ;IS THIS SELF ECHOEING FULL DUPLEX?
\r
96 JRST INUS2 ;YES,(USER TYPED CONROL B)
\r
97 HRL CHREC,LINE ;INSERT LINE NUMBER IN DATAO
\r
102 POPJ PDP, ;DISMISS INTERRUPT
\r
104 ;ROUTINE TO OUTPUT A CHARACTER ON A LINE
\r
105 ;CALLED FROM TYP OR TYPL IN SCNSER
\r
110 DLSTYP: HRL CHREC,LINE ;SET UP LINE NUMBER IN CHREC
\r
111 TLO CHREC,USDRLN ;USE THAT AS DIRECTED LINE#
\r
112 TRZ CHREC,TDSABL ;INSURE TRANSMISSION NOT DISABLED
\r
113 DATAO DLS,CHREC ;OUT IT GOES
\r
115 DPB CHREC,PLASTC ;SAVE CHAR FOR FULL DUPLEX
\r