1 " ***********************************************************
  2 " *                                                         *
  3 " * Copyright, (C) BULL HN Information Systems Inc., 1989   *
  4 " *                                                         *
  5 " * Copyright, (C) Honeywell Bull Inc., 1988                *
  6 " *                                                         *
  7 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *
  8 " *                                                         *
  9 " * Copyright (c) 1972 by Massachusetts Institute of        *
 10 " * Technology and Honeywell Information Systems, Inc.      *
 11 " *                                                         *
 12 " ***********************************************************
 13 
 14 " HISTORY COMMENTS:
 15 "  1) change(88-06-15,Berno), approve(88-07-13,MCR7928),
 16 "     audit(88-07-05,Parisek), install(88-07-19,MR12.2-1061):
 17 "     Add transfers to the uncp multiplexer interface for the DSA gateway.
 18 "  2) change(88-07-07,Beattie), approve(88-06-27,MCR7926),
 19 "     audit(88-08-03,Brunelle), install(88-08-08,MR12.2-1082):
 20 "     Add transfers for X.25 lap multiplexer.
 21 "  3) change(89-03-20,Parisek), approve(89-06-01,MCR8110),
 22 "     audit(89-10-09,Farley), install(89-10-25,MR12.3-1100):
 23 "     Add transfers to protocol_mpx entries.
 24 "                                                      END HISTORY COMMENTS
 25 
 26 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 27 "
 28 "         cmtv --- channel manager transfer vector
 29 "
 30 "         This source segment defines a data base containing a transfer
 31 "         vector used by the channel_manager and priv_channel_manager
 32 "         procedures.  It has the following structure:
 33 "
 34 "
 35 "         dcl 1 cmtv aligned based (addr (cmtv$)),
 36 "               2 no_channel_types fixed bin,
 37 "               2 pad fixed bin,
 38 "               2 chan_type_index (0:16) fixed bin,
 39 "               2 entries (no_entry_types, 0 refer (cmtv.no_channel_types)) bit (72);
 40 "
 41 "
 42 "         Created 9/21/78 by J. Stern
 43 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 44 
 45 
 46           macro     prologue
 47 
 48           name      cmtv
 49           set       .cur_index,0
 50           set       .tty_index,0
 51           set       .fnp_index,0
 52           set       .user1_index,0
 53           set       .user2_index,0
 54           set       .user3_index,0
 55           set       .user4_index,0
 56           set       .user5_index,0
 57           set       .ibm3270_index,0
 58           set       .vip7760_index,0
 59           set       .sty_index,0
 60           set       .lap_index,0
 61           set       .x25_index,0
 62           set       .hasp_index,0
 63           set       .uncp_index,0
 64           set       .cxi_index,0
 65           set       .system1_index,0
 66           set       .protocol_index,0
 67 
 68           &end
 69 
 70 
 71           macro     epilogue
 72 
 73           use       .text.
 74           segdef    cmtv
 75 cmtv:     null
 76           zero      0,.cur_index
 77           dec       0
 78           zero      0,.tty_index
 79           zero      0,.fnp_index
 80           zero      0,.user1_index
 81           zero      0,.user2_index
 82           zero      0,.user3_index
 83           zero      0,.user4_index
 84           zero      0,.user5_index
 85           zero      0,.ibm3270_index
 86           zero      0,.vip7760_index
 87           zero      0,.sty_index
 88           zero      0,.lap_index
 89           zero      0,.x25_index
 90           zero      0,.hasp_index
 91           zero      0,.uncp_index
 92           zero      0,.cxi_index
 93           zero      0,.system1_index
 94           zero      0,.protocol_index
 95 
 96 
 97           join      /text/.init_channel.
 98           join      /text/.terminate_channel.
 99           join      /text/.init_multiplexer.
100           join      /text/.terminate_multiplexer.
101           join      /text/.start.
102           join      /text/.stop.
103           join      /text/.shutdown.
104           join      /text/.priv_control.
105           join      /text/.hpriv_control.
106           join      /text/.read.
107           join      /text/.write.
108           join      /text/.control.
109           join      /text/.set_modes.
110           join      /text/.check_modes.
111           join      /text/.get_modes.
112           join      /text/.interrupt.
113 
114           maclist   on
115           end
116 
117           &end
118 ^L
119 " The following macros define valid entry type names:
120 
121           macro     init_channel
122           &end
123           macro     terminate_channel
124           &end
125           macro     init_multiplexer
126           &end
127           macro     terminate_multiplexer
128           &end
129           macro     start
130           &end
131           macro     stop
132           &end
133           macro     shutdown
134           &end
135           macro     priv_control
136           &end
137           macro     hpriv_control
138           &end
139           macro     read
140           &end
141           macro     write
142           &end
143           macro     control
144           &end
145           macro     set_modes
146           &end
147           macro     check_modes
148           &end
149           macro     get_modes
150           &end
151           macro     interrupt
152           &end
153 
154 
155 " The following macros define valid channel type names:
156 
157           macro     tty
158           &end
159           macro     fnp
160           &end
161           macro     user1
162           &end
163           macro     user2
164           &end
165           macro     user3
166           &end
167           macro     user4
168           &end
169           macro     user5
170           &end
171           macro     ibm3270
172           &end
173           macro     vip7760
174           &end
175           macro     sty
176           &end
177           macro     lap
178           &end
179           macro     x25
180           &end
181           macro     hasp
182           &end
183           macro     uncp
184           &end
185           macro     cxi
186           &end
187           macro     system1
188           &end
189           macro     protocol
190           &end
191 ^L
192           macro     add_entry
193 
194           &1
195           use       .&1.
196           getlp
197           tra       &2$&1
198           set       .&1_incr,0
199 
200           &end
201 
202 
203           macro     type
204 
205           &1
206           set       .cur_index,.cur_index+1
207           set       .&1_index,.cur_index
208 
209           set       .init_channel_incr,2
210           set       .terminate_channel_incr,2
211           set       .init_multiplexer_incr,2
212           set       .terminate_multiplexer_incr,2
213           set       .start_incr,2
214           set       .stop_incr,2
215           set       .shutdown_incr,2
216           set       .priv_control_incr,2
217           set       .hpriv_control_incr,2
218           set       .read_incr,2
219           set       .write_incr,2
220           set       .control_incr,2
221           set       .set_modes_incr,2
222           set       .check_modes_incr,2
223           set       .get_modes_incr,2
224           set       .interrupt_incr,2
225 
226 &R3&(     add_entry &i,&2
227 &)
228 
229           use       .init_channel.
230           bss       ,.init_channel_incr
231           use       .terminate_channel.
232           bss       ,.terminate_channel_incr
233           use       .init_multiplexer.
234           bss       ,.init_multiplexer_incr
235           use       .terminate_multiplexer.
236           bss       ,.terminate_multiplexer_incr
237           use       .start.
238           bss       ,.start_incr
239           use       .stop.
240           bss       ,.stop_incr
241           use       .shutdown.
242           bss       ,.shutdown_incr
243           use       .priv_control.
244           bss       ,.priv_control_incr
245           use       .hpriv_control.
246           bss       ,.hpriv_control_incr
247           use       .read.
248           bss       ,.read_incr
249           use       .write.
250           bss       ,.write_incr
251           use       .control.
252           bss       ,.control_incr
253           use       .set_modes.
254           bss       ,.set_modes_incr
255           use       .check_modes.
256           bss       ,.check_modes_incr
257           use       .get_modes.
258           bss       ,.get_modes_incr
259           use       .interrupt.
260           bss       ,.interrupt_incr
261 
262           &end
263 
264           maclist   off
265 ^L
266 " The transfer vector definition has the following syntax:
267 "
268 "
269 " <transfer_vector> := prologue <type_list> epilogue
270 " <type_list> := <type_stmt> | <type_stmt> <type_list>
271 " <type_stmt> := type <channel_type> , <global_seg_name> , <entry_list>
272 " <entry_list> := <entry> | <entry> , <entry_list>
273 " <entry> := <entry_type> | ( <entry_type> , <local_seg_name> )
274 " <channel_type> := tty | fnp | user1 | user2 | user3 | user4 | user5 | ibm3270
275 "                   | vip7760 | sty | lap | x25 | hasp | uncp | cxi | system1
276 "                   | protocol
277 " <entry_type> := init_channel | terminate_channel | init_multiplexer | terminate_multiplexer |
278                     start | stop | shutdown | priv_control | hpriv_control | read | write |
279                     control | set_modes | check_modes | get_modes | interrupt
280 " <global_seg_name> := {the name of a procedure segment}
281 " <local_seg_name> := {the name of a procedure segment}
282 "
283 "
284 " Each "type" statement defines a channel type.
285 " It specifies the valid entry types for the channel type.
286 " It specifies the transfer vector target for each valid entry type.
287 " The transfer vector target for an entry type is an entrypoint
288 " in a procedure segment.
289 " The name of the entrypoint is always the name of the entry type.
290 " The segment name may optionally be specified by a local segment name.
291 " If no local segment name is given, then the global segment name is used.
292 
293 
294 
295           prologue
296 
297           type      tty,tty_index,
298                     init_channel,
299                     terminate_channel,
300                     (interrupt,tty_interrupt)
301 
302           type      fnp,fnp_multiplexer,
303                     init_multiplexer,
304                     terminate_multiplexer,
305                     start,
306                     stop,
307                     shutdown,
308                     priv_control,
309                     hpriv_control,
310                     read,
311                     write,
312                     control,
313                     set_modes,
314                     check_modes,
315                     get_modes
316 
317           type      vip7760,polled_vip_mpx,
318                     (init_multiplexer,priv_polled_vip_mpx),
319                     (terminate_multiplexer,priv_polled_vip_mpx),
320                     (start,priv_polled_vip_mpx),
321                     (stop,priv_polled_vip_mpx),
322                     (shutdown,priv_polled_vip_mpx),
323                     (hpriv_control,priv_polled_vip_mpx),
324                     (priv_control,priv_polled_vip_mpx),
325                     read,
326                     write,
327                     check_modes,
328                     set_modes,
329                     get_modes,
330                     control,
331                     interrupt
332 
333           type      ibm3270,ibm3270_mpx,
334                     (init_multiplexer,priv_ibm3270_mpx),
335                     (terminate_multiplexer,priv_ibm3270_mpx),
336                     (start,priv_ibm3270_mpx),
337                     (stop,priv_ibm3270_mpx),
338                     (shutdown,priv_ibm3270_mpx),
339                     (priv_control,priv_ibm3270_mpx),
340                     (hpriv_control,priv_ibm3270_mpx),
341                     control,
342                     read,
343                     check_modes,
344                     set_modes,
345                     get_modes,
346                     write,
347                     interrupt
348 
349           type      lap,lap_simplex,
350                     init_multiplexer,terminate_multiplexer,
351                     start,stop,shutdown,
352                     hpriv_control,priv_control,control,
353                     check_modes,set_modes,get_modes,
354                     write,
355                     interrupt
356 
357           type      x25,x25_mpx,
358                     (init_multiplexer,priv_x25_mpx),
359                     (terminate_multiplexer,priv_x25_mpx),
360                     (start,priv_x25_mpx),
361                     (stop,priv_x25_mpx),
362                     (shutdown,priv_x25_mpx),
363                     (hpriv_control,priv_x25_mpx),
364                     (priv_control,priv_x25_mpx),
365                     control,
366                     check_modes,set_modes,get_modes,
367                     write,
368                     interrupt
369 
370           type      sty,sty_mpx,
371                     init_multiplexer,terminate_multiplexer,
372                     start,stop,shutdown,
373                     read,write,control,
374                     get_modes,set_modes,check_modes
375 
376           type      hasp,hasp_mpx,
377                     (init_multiplexer,priv_hasp_mpx),
378                     (terminate_multiplexer,priv_hasp_mpx),
379                     (start,priv_hasp_mpx),
380                     (stop,priv_hasp_mpx),
381                     (shutdown,priv_hasp_mpx),
382                     (priv_control,priv_hasp_mpx),
383                     (hpriv_control,priv_hasp_mpx),
384                     read,write,interrupt,control,
385                     check_modes,set_modes,get_modes
386 
387           type      uncp,uncp_multiplexer,
388                     init_multiplexer,
389                     terminate_multiplexer,
390                     start,
391                     stop,
392                     shutdown,
393                     priv_control,
394                     hpriv_control,
395                     read,
396                     write,
397                     control,
398                     set_modes,
399                     check_modes,
400                     get_modes
401 
402           type      protocol,protocol_mpx,
403                     init_multiplexer,
404                     terminate_multiplexer,
405                     start,
406                     stop,
407                     shutdown,
408                     priv_control,
409                     hpriv_control,
410                     interrupt
411           epilogue