Fixed some typos and added COPY and DTBOOT.
[retro-software/dec/tops10/v4.5.git] / src / dcsint.mac
1 \fTITLE  DCSINT - INT. SERV. FOR DATA COMMUNICATION SYSTEM 630 - V402\r
2 SUBTTL  M. FREDRIKSEN/TH/CHW  TS  7 MAY 69\r
3 XP      VDCSIT,402\r
4                 ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP\r
5 \r
6 ;MODULAR HARDWARE INTERFACE WITH EITHER SCNSER OR TTYSER\r
7 \r
8 EXTERNAL SCNON,SCNOFF,TYPX\r
9 \r
10 IFE FTTTYSER,<XP FULTWX,200000>\r
11 \r
12 IFN FTTTYSER,<XP FULTWX,4>\r
13 \f;ACCUMULATOR ASSIGNMENTS\r
14 \r
15         CHREC=TEM       ;AC FOR CHARACTER\r
16         DDB=DEVDAT      ;ADDRESS OF DEVICE DATA BLOCK\r
17         LINE=TAC1       ;SCANNER LINE NUMBER\r
18         HPOS=DAT        ;HORIZONTAL POSITION OF TTY.(0-71)\r
19 \r
20 ;BYTE POINTERS\r
21 \r
22 \r
23 EXTERNAL PLASTC\r
24 \r
25 \f;DEVICE DEPENDENT PORTION OF INITIALIZATION CODE\r
26 ;CALL:  MOVEI   TAC,CHANNEL NUMBER\r
27 ;       PUSHJ   PDP,SCNINI\r
28 \r
29 INTERNAL SCNINI\r
30 \r
31 DCSINI:\r
32 SCNINI: MOVEI   TAC,100000\r
33         CONO DCSA,4010          ;RELEASE XMITTER, RECEIVER\r
34         CONSZ DCSA, 1000\r
35         CONO DCSA, 4000\r
36         CONSZ DCSA, 10\r
37         DATAI DCSB, TAC1\r
38         SOJG TAC,.-4\r
39         CONO    DCSA,FSNCHN     ;ASSIGN INTERRUPT CHANNELS\r
40         POPJ    PDP,\r
41 \r
42 ;SCANNER INTERRUPT SERVICE ROUTINE.\r
43 \r
44 ENTRY DCSINT\r
45 \r
46 INTERNAL SCNINT\r
47 EXTERNAL SCNSAV,TCONLN,TTYTAB,XMTINT,TYPE,INUS2,RECINT,FSNCHN\r
48 \r
49 DCSINT:\r
50 SCNINT: CONSO DCSA,1010\r
51         JRST SCNINT\r
52         JSR SCNSAV\r
53         CONSO DCSA,10           ;RECEIVER FLAG?\r
54         JRST SCNIN1             ;NO,XMITTER FLAG\r
55         CONI DCSB,LINE          ;SCANNER INPUT.\r
56         DATAI DCSB, CHREC\r
57         CAIL    LINE,TCONLN     ;ARE WE ENABLED FOR THIS LINE NUMBER?\r
58         POPJ    PDP,            ;NO, DISMISS INTERRUPT\r
59         JRST    RECINT          ;RECEIVER INT. HANDLER\r
60 \f;COMMON PARTS OF CTY AND SCANNER INTERRUPT SERVICE ROUTINES.\r
61 \r
62 EXTERNAL INJEST,DDBSRC\r
63 INTERNAL TCOMM\r
64 \r
65 TCOMM:\r
66         SKIPE DDB,TTYTAB(LINE)  ;DATA BLOCK ASSIGNED?\r
67         JRST INUSE              ;YES\r
68         PUSHJ PDP,DDBSRC        ;SEARCH FOR FREE TTY DEV. DATA BLOCK\r
69         JRST TYPX               ;NONE FOUND, TYPE X\r
70         MOVEI HPOS,0            ;ASSUME TTY IS AT BEGIN OF FORM\r
71         CAILE LINE,TCONLN       ;PSEUDO CONSOLE?\r
72         JRST INJEST             ;YES\r
73         CAIE LINE,TCONLN        ;IS IT CTY?\r
74         CONSO DCSA,700          ;NO, IS IT HALF DUPLEX?\r
75         JRST INUS2              ;YES, ACCEPT CHAR AND PROCESS\r
76         JRST TYPE               ;NO, ECHO CHAR ON FULL DUPLEX\r
77                                 ;BEFORE PROCESSING IT\r
78 \r
79 SCNIN1:\r
80         DATAI DCSA,LINE         ;GET LINE NO. FROM FULL DUPLEX.\r
81         MOVEI TAC,FSNCHN\r
82         CONO DCSA,4000(TAC)     ;RELEASE XMITTER SCANNER\r
83         JRST    XMTINT          ;IN SCNSER OR TTYSER\r
84 \f;COMMON TO RECEIVE AND TRANSMIT.\r
85 \r
86 INUSE: HRRZS  DDB       ;LINE DISABLED IF RH TTYTAB=-1\r
87         CAIN DDB,-1\r
88         POPJ PDP,\r
89         MOVE IOS,DEVIOS(DDB)    ;SETUP IOS\r
90         CAIGE   LINE,TCONLN     ;CTY OR PTY?\r
91         CONSO DCSA,700          ;NO, HALF DUPLEX?\r
92         JRST INUS2              ;YES\r
93         TLNE IOS,FULTWX         ;IS THIS SELF ECHOEING FULL DUPLEX?\r
94         JRST INUS2              ;YES,(USER TYPED CONROL B)\r
95         CONO DCSB,(LINE)        ;FULL DUPLEX SCANNER. ECHO CHAR.\r
96         DATAO DCSA,CHREC\r
97         DPB CHREC,PLASTC\r
98         POPJ PDP,               ;DISMISS INTERRUPT\r
99 \f;ROUTINE TO OUTPUT A CHARACTER ON A LINE\r
100 ;CALLED FROM TYP OR TYPL IN SCNSER\r
101 \r
102 INTERNAL SCNTYP\r
103 \r
104 SCNTYP:\r
105 DCSTYP: CONO PI,SCNOFF          ;TURN SCANNER PI OFF IN CASE AT USER LEVEL\r
106                                 ;SO NO INTERRUPTS BETWEEN CONO, AND DATAO\r
107         CONO DCSB,(LINE)        ;NO\r
108         DATAO DCSA,CHREC\r
109         CONO PI,SCNON           ;TURN SCANNER PI BACK ON\r
110         SKIPE   DDB\r
111         DPB CHREC,PLASTC        ;SAVE CHAR FOR FULL DUPLEX\r
112         POPJ PDP,\r
113 \r
114 \r
115 \f       END\r