/* Begin include file ..... ibm3270_attach_data.incl.pl1 */ /* Attach data block for the ibm3270_ I/O module */ /* Written October 1977 by Larry Johnson */ dcl adp ptr; dcl 1 ad aligned based (adp), 2 work_areap ptr, /* Pointer to work area containing this structure */ 2 device char (6), /* Name of channel attached */ 2 tty_index fixed bin, /* Ring0 name for channel */ 2 attach_description char (256) var, 2 open_description char (24) var, 2 wait_list aligned, 3 nchan fixed bin, /* Number of channels to block on */ 3 user_channel fixed bin (71), /* The channel */ 2 attach_channel fixed bin (71), /* For talking to ansering service */ 2 io_channel fixed bin (71), /* Channel used by ring 0 */ 2 timer_channel fixed bin (71), /* Channel for error recovery timer */ 2 controller fixed bin, /* Address of controller, usually 0 */ 2 open_in_progress bit (1), /* Indicates we are blockig during open */ 2 close_in_progress bit (1), /* In process of closing switch, be careful of wakeups */ 2 open_wakeup_occured bit (1), /* Got answering service wakeup at open */ 2 open_event_message fixed bin (71), /* Temp copy of open event message */ 2 ascii bit (1), /* Set if running in ascii mode */ 2 async bit (1), /* Indicates the I/O module must not block ever */ 2 eot char (1), /* Some char codes */ 2 stx char (1), 2 etx char (1), 2 etb char (1), 2 soh char (1), 2 esc char (1), 2 sf char (1), /* Start field */ 2 sba char (1), /* Set buffer address */ 2 ic char (1), /* Insert cursor */ 2 pt char (1), /* Program tab */ 2 ra char (1), /* Repeat to address */ 2 eua char (1), /* Erase unprotected to address */ 2 bit6_char (0:63) char (1) unal, /* Maps 6 bit codes into ebcdic characters */ 2 first_read_infop ptr, /* First input block */ 2 last_read_infop ptr, /* Last input block */ 2 header_data, /* Header is build here */ 3 header_buf_ptr ptr, /* Addr of start of header */ 3 header_buf_len fixed bin, /* Lemgth of header buffer */ 3 header_len fixed bin, /* Length of data */ 2 text_data, /* Text is built here */ 3 text_buf_ptr ptr, /* Addr of start of text */ 3 text_buf_len fixed bin, /* Length of text_buffer */ 3 text_len fixed bin, /* Length of real data */ 2 input_buf_ptr ptr, /* Address of input buffer */ 2 input_buf_len fixed bin, /* Its length */ 2 unscanned_data_ptr ptr, /* Addr of next char in inpput buffer to scan */ 2 unscanned_data_len fixed bin, /* Number of chars remaining */ 2 input_state fixed bin, /* Current state of text scan */ 2 output_buf_ptr ptr, /* Buffer for building output messages */ 2 output_buf_len fixed bin, /* Its length */ 2 polling_in_progress bit (1), /* Set during polling operation */ 2 device_responded bit (1), /* Set if polling resulted in real data coming back */ 2 general_poll bit (1), /* User is doing general_poll */ 2 first_poll_reqp ptr, /* Pointer to first queued poll request */ 2 last_poll_reqp ptr, /* Pointer to last polled request */ 2 wakeup_needed bit (1), /* Set if caller needes wakeup when data available */ 2 last_device_polled fixed bin, /* Last poll address sent to fnp */ 2 last_device_selected fixed bin, /* Last select address sent to fnp */ 2 cur_out_reqp ptr, /* Current output request */ 2 output_in_progress bit (1), /* Set while doing output */ 2 per_dev (0:31), /* Data on output to each device */ 3 first_out_reqp ptr, /* Addr of first request in its queue */ 3 last_out_reqp ptr, /* Addr of last request in its queue */ 3 pend_time fixed bin (71), /* Time at which output should be retryed */ 2 min_dev fixed bin, /* Index of lowest device which currently has output pended */ 2 max_dev fixed bin, /* Index of highest device */ 2 pend_interval fixed bin (71), /* Time interval for retrying otput */ 2 retry_limit fixed bin, /* Times to retry output to non-ready devices */ 2 input_line_status fixed bin, /* Input error code */ 2 output_line_status fixed bin, /* Output error code */ 2 processid bit (36); dcl work_area area based (ad.work_areap); dcl header_buf char (ad.header_buf_len) based (ad.header_buf_ptr); /* Header built here */ dcl header_data char (ad.header_len) based (ad.header_buf_ptr); dcl text_buf char (ad.text_buf_len) based (ad.text_buf_ptr); /* Text built here */ dcl text_data char (ad.text_len) based (ad.text_buf_ptr); dcl input_buf char (ad.input_buf_len) based (ad.input_buf_ptr); /* Raw data read here */ dcl unscanned_data char (ad.unscanned_data_len) based (ad.unscanned_data_ptr); /* Unprocessed part of input_buf */ dcl output_buf char (ad.output_buf_len) based (ad.output_buf_ptr); /* The following array maps any 6-bit code into the ebcdic character needed to transmit it */ /* The first 32 elements are used for device addresses (poll and select) and controller address (poll only) */ /* The second 32 elements are used for controller addresses (select only) */ /* A more useable character form of this array is kept in ad.bit6_char */ dcl address_mapping (0:63) bit (8) unal int static options (constant) init ( "40"b4, "c1"b4, "c2"b4, "c3"b4, "c4"b4, "c5"b4, "c6"b4, "c7"b4, "c8"b4, "c9"b4, "4a"b4, "4b"b4, "4c"b4, "4d"b4, "4e"b4, "4f"b4, "50"b4, "d1"b4, "d2"b4, "d3"b4, "d4"b4, "d5"b4, "d6"b4, "d7"b4, "d8"b4, "d9"b4, "5a"b4, "5b"b4, "5c"b4, "5d"b4, "5e"b4, "5f"b4, "60"b4, "61"b4, "e2"b4, "e3"b4, "e4"b4, "e5"b4, "e6"b4, "e7"b4, "e8"b4, "e9"b4, "6a"b4, "6b"b4, "6c"b4, "6d"b4, "6e"b4, "6f"b4, "f0"b4, "f1"b4, "f2"b4, "f3"b4, "f4"b4, "f5"b4, "f6"b4, "f7"b4, "f8"b4, "f9"b4, "7a"b4, "7b"b4, "7c"b4, "7d"b4, "7e"b4, "7f"b4); /* End include file ..... ibm3270_attach_data.incl.pl1 */ */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */