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
26 DLS=240 ;DC10 DEVICE NUMBER
\r
27 ;BITS IN CHREC TO COMMUNCATE WITH DLS
\r
29 USDRLN=100 ;USE DIRECTED LINE NUMBER
\r
30 TDSABL=400 ;TRANSMIT DISABLE
\r
31 RCVBIT=400 ;RECEIVE BIT AFER DATAI DLS,CHREC
\r
33 ;DEVICE DEPENDENT PORTION OF INITIALIZATION CODE
\r
34 ;CALL: MOVEI TAC,CHANNEL NUMER
\r
39 SCNINI: CONO DLS,40 ;INIT DLS COMPLETELY (I/O/RESET)
\r
40 CONO DLS,(TAC) ;ASSIGN PI CHANNEL NUMBER
\r
43 ;SCANNER INTERRUPT SERVICE ROUTINE
\r
48 EXTERNAL SCNSAV,TCONLN,TTYTAB,XMTINT,TYPE,INUS2,RECINT
\r
51 SCNINT: CONSO DLS,30 ;ANY INTERRUPTS ON DLS
\r
54 DATAI DLS,CHREC ;GET CHARACTER & LINE INFO
\r
55 HLRZ LINE,CHREC ;PUT LINE NUMBER IN AC LINE
\r
56 CAIL LINE,TCONLN ;ARE WE ENABLED FOR THIS LINE NUMBER?
\r
57 JRST SCNIN2 ;NO,TURN OFF TRANSMIT(IF ON) AND DISMISS
\r
58 TRNE CHREC,RCVBIT ;WAS IT A RECEIVER INTERRUPT?
\r
59 JRST RECINT ;YES, RECEIVER INT. HANDLER
\r
60 DATAO DLS,[EXP TDSABL] ;CLEAR HARDWARE FLAG
\r
61 JRST XMTINT ;GO PROCESS CHAR IN SCNSRF OR SCNSRH
\r
63 ;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES.
\r
65 EXTERNAL INJEST,DDBSRC
\r
69 SKIPE DDB,TTYTAB(LINE) ;DATA BLOCK ASSIGNED?
\r
71 PUSHJ PDP,DDBSRC ;SEARCH FOR FREE TTY DEV. DATA BLOCK
\r
72 JRST TYPX ;NONE FOUND, TYPE X
\r
73 MOVEI HPOS,0 ;ASSUME TTY IS AT BEGIN OF FORM
\r
74 CAILE LINE,TCONLN ;PSEUDO CONSOLE?
\r
76 CAIN LINE,TCONLN ;IS IT THE CTY ?
\r
77 JRST INUS2 ;YES, ACCPT CHAR AND PROCESS
\r
78 JRST TYPE ;NO, ECHO CHAR ON FULL DUPLEX
\r
79 ;BEFORE PROCESSING IT
\r
81 ;HERE IF LINE NUMBER TOO BIG
\r
82 SCNIN2: DATAO DLS,[EXP TDSABL] ;SET TRANSMIT DISABLE BIT AND OUTPUT IT
\r
83 ;(JUST INCASE, ELSE IT WILL INTERRUPT IMMEDIATLY AGAIN)
\r
84 POPJ PDP, ;DISMISS INTERRUPT
\r
87 ;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