Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | /PRINTER & PLOTTER HANDLER ADCOM X80SP\r |
2 | / PLOTTER HANDLER CONVERTS [ INTO DC3 AND ] INTO DC1\r | |
3 | / X80SP HANDLES HT,VT,CR,LF,FF\r | |
4 | / HANDLER SUPPORTS DC3 (XOFF) - DC1 (XON) COMMANDS FROM X80SP.\r | |
5 | / SYSTEM TTY INPUT ETX (^C) CAUSES RETURN FROM THE HANDLER.\r | |
6 | / ALL CONTROL CHARACTERS SEND TO THE HANDLER ARE DIRECTED TO THE X80SP.\r | |
7 | / JOHANN J. ANDRES UNIVERSITY GOETTINGEN\r | |
8 | /\r | |
9 | / H.A. 10.DEC.1981 REV 0.0\r | |
10 | / H.A. 4. APR.1982 REV 1.0 INSERTS [ --> DC3 AND ] --> DC1\r | |
11 | / H.A. 5. OCT.1982 REV 1.1 LITTLE CHANGES SAVE 2 WORDS OF MEMORY\r | |
12 | / H.A. 10.OCT.82 REV 1.2 REMOVES POSSIBLE LISF/LIRB TIMING PROBLEMS \r | |
13 | / H.A. 26.OCT.82 REV 1.3 REMOVES FRTS PROBLEM: SOME CHARS WERE LOST\r | |
14 | /\r | |
15 | TTYDVC=03 / TTY\r | |
16 | INDVC=31 / LPT RS-232C INTERFACE\r | |
17 | OUTDVC=32 / LPT\r | |
18 | /\r | |
19 | LSF=10^OUTDVC+6001 / SKIP ON LPT FLAG\r | |
20 | LLS=10^OUTDVC+6006 / CLEAR FLAG & PRINT CHARACTER\r | |
21 | LISF=10^INDVC+6001 / SKIP ON LPT FLAG\r | |
22 | LIRB=10^INDVC+6006 / CLEAR FLAG & READ STATUS \r | |
23 | KSF=10^TTYDVC+6001 / SKIP ON TTY FLAG\r | |
24 | KRS=10^TTYDVC+6004 / OR TTY KBD CHARACTER INTO AC\r | |
25 | / ACL=7701 / PAL8 DOESN'T KNOW HIS COMPUTER!\r | |
26 | / MQL=7421\r | |
27 | /\r | |
28 | /\r | |
29 | *0 / 8 WORD HANDLER BLOCK\r | |
30 | -2 / TWO UNITS\r | |
31 | DEVICE X80M\r | |
32 | DEVICE LPM\r | |
33 | 1040\r | |
34 | LPT&177 / STARTING ADR.\r | |
35 | 0;0\r | |
36 | DEVICE X80M\r | |
37 | DEVICE PLM\r | |
38 | 1040 / WRITE ONLY LINE PRINTER\r | |
39 | PLT&177 / STARTING ADR.\r | |
40 | 0;0 / 2 WORDS MUST BE ZERO\r | |
41 | /\r | |
42 | /\r | |
43 | *200 / START OF HANDLER\r | |
44 | PLT, 0 / ENTRY FOR PLOTTER HANDLER\r | |
45 | DCA SAC\r | |
46 | TAD PLT / HERE WE SAVE THE RETURN ADR.\r | |
47 | DCA LPT / INTO THE LPT RETURN POINT\r | |
48 | TAD TPLT / INSERT PLOTTER CALL CMD\r | |
49 | DCA TYPE\r | |
50 | JMP START\r | |
51 | LPT, 0\r | |
52 | DCA SAC / SAVE AC\r | |
53 | TAD TLPT / INSERT LPT CALL CMD\r | |
54 | DCA TYPE\r | |
55 | TAD LP23 / SWITCH OFF THE \r | |
56 | JMS LPTPCH / PLOTTER MODE\r | |
57 | START,/\r | |
58 | TAD SAC / RESTORE AC\r | |
59 | CLL CML CLA RAR\r | |
60 | TAD I LPT /LINK GOES ON HERE. IF NOT READ WAS REQUESTED\r | |
61 | AND LP7700\r | |
62 | CMA\r | |
63 | DCA LPTWC\r | |
64 | LPT214, RDF / FF CONSTANT\r | |
65 | TAD LPTCIF\r | |
66 | DCA LPTXIT /SAVE CALLING FIELD IN RETURN SEQUENCE\r | |
67 | TAD I LPT\r | |
68 | AND LPT70\r | |
69 | TAD LPCDF0\r | |
70 | DCA LPTCDF /GET BUFFER FIELD\r | |
71 | ISZ LPT\r | |
72 | TAD I LPT\r | |
73 | DCA LPTCA /LPTCA GETS BUFFER ADDRESS\r | |
74 | ISZ LPT\r | |
75 | TAD I LPT\r | |
76 | LPTCDF, HLT\r | |
77 | ISZ LPT\r | |
78 | SNL /IF LINK NOT SET,GIVE ERROR\r | |
79 | JMP LPTERR\r | |
80 | SZA CLA / INSERT FF IN FRONT OF THE FIRST DATA BLOCK TO PRINT\r | |
81 | JMP LPT177\r | |
82 | TAD LPT214 / FF --> AC\r | |
83 | JMP LPTKLG\r | |
84 | \r | |
85 | \f/NOW PICK UP THE CHARACTERS, UNPACK THEM AND PRINT.\r | |
86 | /\r | |
87 | / LOOP TO PICK UP THE CHARACTERS\r | |
88 | /\r | |
89 | LPTLP, CLA\r | |
90 | TAD I LPTCA\r | |
91 | JMS LPTPCH\r | |
92 | TAD I LPTCA\r | |
93 | AND LP7400\r | |
94 | DCA LPTCDF\r | |
95 | ISZ LPTCA\r | |
96 | LP7400, 7400\r | |
97 | TAD I LPTCA\r | |
98 | JMS LPTPCH\r | |
99 | TAD I LPTCA\r | |
100 | AND LP7400\r | |
101 | CLL RTR\r | |
102 | LPTLF, RTR\r | |
103 | TAD LPTCDF\r | |
104 | RTR\r | |
105 | RTR\r | |
106 | ISZ LPTCA\r | |
107 | NOP / BUFFER MAY BE AT FIELD BOUNDARY\r | |
108 | LPTKLG, JMS LPTPCH\r | |
109 | LPT177, 177\r | |
110 | ISZ LPTWC\r | |
111 | JMP LPTLP\r | |
112 | LPRTRN, ISZ LPT\r | |
113 | LPTXIT, HLT\r | |
114 | JMP I LPT\r | |
115 | LPTWC, 0\r | |
116 | LPTCA, 0\r | |
117 | /\r | |
118 | LPTERR, CLA CLL CML RAR / FATAL ERROR RETURN\r | |
119 | JMP LPTXIT / HOME TO MAM\r | |
120 | /\r | |
121 | /\r | |
122 | / HERE WE PRINT THE CHARACTERS\r | |
123 | /\r | |
124 | LPTPCH, 0\r | |
125 | /\r | |
126 | AND LPT177 / WE TRUNCATE TO SEVEN BITS CHARACTER\r | |
127 | TYPE, 0 / CHANGED AT EXECUTION TIME SEE TPLT & TLPT\r | |
128 | TAD SAC / RELOAD CHARACTER TO PRINT\r | |
129 | TAD LPM135 / TEST FOR ]\r | |
130 | SZA\r | |
131 | JMP L2 / IF ] THEN\r | |
132 | TAD LP23 / WE PRINT A DC1\r | |
133 | JMP L4 / CONVERSION ] INTO DC3 DONE\r | |
134 | L2, TAD LPT02\r | |
135 | SZA CLA\r | |
136 | JMP L3 / TEST [\r | |
137 | TAD LP21\r | |
138 | JMP L4\r | |
139 | L3, TAD SAC / RESTORE AC\r | |
140 | L4,/\r | |
141 | LLS / CLEAR FLAG LOAD CHARACTER & PRINT\r | |
142 | LSF / IF PRINTER DONE FLAG SET, THEN WE CONTINUE\r | |
143 | JMP .-1 / ELSE WE WAIT FOR DONE FLAG\r | |
144 | LP7600, 7600 / CLA\r | |
145 | TAD LP7600 / THIS IS TO GET A NEGATIVE NUMBER\r | |
146 | \r | |
147 | KRS / OR TTY KBD INTO AC\r | |
148 | TAD LPT175 / TEST FOR ETX (^C)\r | |
149 | SNA CLA / IF NO ETX THEN GO AND WAIT FOR LP FLAG\r | |
150 | KSF / ETX ENTERED, TTY KBD ACTIVE THEN JMP INTO MONITOR\r | |
151 | JMP LPISF / TEST INPUT FROM PRINTER\r | |
152 | LPTCIF, CDF CIF 0\r | |
153 | JMP I LP7600\r | |
154 | LPISF,\r | |
155 | TAD LPOLD / LOAD THE LAST STATUS WORD\r | |
156 | LISF / IS THERE ANY NEW STATUS?\r | |
157 | SKP\r | |
158 | LIRB / IF THERE IS A NEW STATUS THEN WE READ ELSE WE TAKE THE OLD ONE\r | |
159 | DCA LPOLD / SAVE THE ACTUAL STATUS WORD\r | |
160 | TAD LPOLD / RESTORE STATUS --> AC\r | |
161 | AND LPT177 / MASK OUT 7 BITS\r | |
162 | TAD LPM23 / TEST DC3 (^S)\r | |
163 | SNA CLA\r | |
164 | JMP LP7600 / DC3 ENTERED WAIT FOR DC1\r | |
165 | JMP I LPTPCH / DC1 OR MEANINGLESS INPUT, SO WE CONTINUE PRINTING\r | |
166 | /\r | |
167 | /\r | |
168 | TLPT, JMP L4 / LINE PRINTER HANDLER\r | |
169 | TPLT, DCA SAC / SAVE AC\r | |
170 | /\r | |
171 | SAC, 0 / ON ENTRY WE SAVE THE AC\r | |
172 | /\r | |
173 | LP7700, 7700\r | |
174 | LPM06, -06\r | |
175 | LP21, 21\r | |
176 | LP23, 23\r | |
177 | LPOLD, 1\r | |
178 | LPM23, -23\r | |
179 | LPT02, 02\r | |
180 | LPWISZ, ISZ LPLPTR\r | |
181 | JMP I LPTPCH\r | |
182 | LPFLSH,\r | |
183 | LPT70, 70\r | |
184 | LPM135, -135\r | |
185 | LPT175, 175\r | |
186 | LPCDF0, CDF 0\r | |
187 | LPLPTR, 0\r | |
188 | /\r | |
189 | $$\r | |
190 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |