TITLE DCSINT - INT. SERV. FOR DATA COMMUNICATION SYSTEM 630 - V402 SUBTTL M. FREDRIKSEN/TH/CHW TS 7 MAY 69 XP VDCSIT,402 ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP ;MODULAR HARDWARE INTERFACE WITH EITHER SCNSER OR TTYSER EXTERNAL SCNON,SCNOFF,TYPX IFE FTTTYSER, IFN FTTTYSER, ;ACCUMULATOR ASSIGNMENTS CHREC=TEM ;AC FOR CHARACTER DDB=DEVDAT ;ADDRESS OF DEVICE DATA BLOCK LINE=TAC1 ;SCANNER LINE NUMBER HPOS=DAT ;HORIZONTAL POSITION OF TTY.(0-71) ;BYTE POINTERS EXTERNAL PLASTC ;DEVICE DEPENDENT PORTION OF INITIALIZATION CODE ;CALL: MOVEI TAC,CHANNEL NUMBER ; PUSHJ PDP,SCNINI INTERNAL SCNINI DCSINI: SCNINI: MOVEI TAC,100000 CONO DCSA,4010 ;RELEASE XMITTER, RECEIVER CONSZ DCSA, 1000 CONO DCSA, 4000 CONSZ DCSA, 10 DATAI DCSB, TAC1 SOJG TAC,.-4 CONO DCSA,FSNCHN ;ASSIGN INTERRUPT CHANNELS POPJ PDP, ;SCANNER INTERRUPT SERVICE ROUTINE. ENTRY DCSINT INTERNAL SCNINT EXTERNAL SCNSAV,TCONLN,TTYTAB,XMTINT,TYPE,INUS2,RECINT,FSNCHN DCSINT: SCNINT: CONSO DCSA,1010 JRST SCNINT JSR SCNSAV CONSO DCSA,10 ;RECEIVER FLAG? JRST SCNIN1 ;NO,XMITTER FLAG CONI DCSB,LINE ;SCANNER INPUT. DATAI DCSB, CHREC CAIL LINE,TCONLN ;ARE WE ENABLED FOR THIS LINE NUMBER? POPJ PDP, ;NO, DISMISS INTERRUPT JRST RECINT ;RECEIVER INT. HANDLER ;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES. EXTERNAL INJEST,DDBSRC INTERNAL TCOMM TCOMM: SKIPE DDB,TTYTAB(LINE) ;DATA BLOCK ASSIGNED? JRST INUSE ;YES PUSHJ PDP,DDBSRC ;SEARCH FOR FREE TTY DEV. DATA BLOCK JRST TYPX ;NONE FOUND, TYPE X MOVEI HPOS,0 ;ASSUME TTY IS AT BEGIN OF FORM CAILE LINE,TCONLN ;PSEUDO CONSOLE? JRST INJEST ;YES CAIE LINE,TCONLN ;IS IT CTY? CONSO DCSA,700 ;NO, IS IT HALF DUPLEX? JRST INUS2 ;YES, ACCEPT CHAR AND PROCESS JRST TYPE ;NO, ECHO CHAR ON FULL DUPLEX ;BEFORE PROCESSING IT SCNIN1: DATAI DCSA,LINE ;GET LINE NO. FROM FULL DUPLEX. MOVEI TAC,FSNCHN CONO DCSA,4000(TAC) ;RELEASE XMITTER SCANNER JRST XMTINT ;IN SCNSER OR TTYSER ;COMMON TO RECEIVE AND TRANSMIT. INUSE: HRRZS DDB ;LINE DISABLED IF RH TTYTAB=-1 CAIN DDB,-1 POPJ PDP, MOVE IOS,DEVIOS(DDB) ;SETUP IOS CAIGE LINE,TCONLN ;CTY OR PTY? CONSO DCSA,700 ;NO, HALF DUPLEX? JRST INUS2 ;YES TLNE IOS,FULTWX ;IS THIS SELF ECHOEING FULL DUPLEX? JRST INUS2 ;YES,(USER TYPED CONROL B) CONO DCSB,(LINE) ;FULL DUPLEX SCANNER. ECHO CHAR. DATAO DCSA,CHREC DPB CHREC,PLASTC POPJ PDP, ;DISMISS INTERRUPT ;ROUTINE TO OUTPUT A CHARACTER ON A LINE ;CALLED FROM TYP OR TYPL IN SCNSER INTERNAL SCNTYP SCNTYP: DCSTYP: CONO PI,SCNOFF ;TURN SCANNER PI OFF IN CASE AT USER LEVEL ;SO NO INTERRUPTS BETWEEN CONO, AND DATAO CONO DCSB,(LINE) ;NO DATAO DCSA,CHREC CONO PI,SCNON ;TURN SCANNER PI BACK ON SKIPE DDB DPB CHREC,PLASTC ;SAVE CHAR FOR FULL DUPLEX POPJ PDP, END