{ DAH controls modifications to this deck

  CONST

{ Memory link pre-defined application names

    iic$passon_application_name = 9190053(16), { 'IFPAS'/152633427(10) }
    iic$exec_application_name = 9185605(16), { 'IFEXE'/152589829(10) }
    iic$user_application_prefix = 1, { Prefix for User Tasks }

{ Memory link arbitrary information (passon to 180 applications)
{ Note:
{  For output data messages, the value of the arbitrary info parameter
{  should be iic$output_data_message + connection_number

    iic$input_supervisory_message = 1,
    iic$input_data_message = 2,
    iic$output_supervisory_message = 3,
    iic$output_data_message = 10,

{ Application block type

    iic$null_block = 0,
    iic$continued_block = 1,
    iic$last_block = 2,
    iic$supervisory_block = 3,
    iic$begin_absentee = 10,
    iic$dont_signal = 1024,
{ Application connection number

    iic$min_connection_number = 1,
    iic$max_connection_number = 0fff(16),
    iic$supervisory_connection_num = 0,

{ Application block number

    iic$min_block_number = 1,
    iic$max_block_number = 3ffff(16),

{ Application character type

    iic$60_bit_characters = 1,
    iic$8_bit_characters = 2,
    iic$8_of_12_bit_characters = 3,
    iic$display_code_characters = 4,

{ Text length in a block

    iic$min_text_length = 0,
    iic$max_text_length = 0fff(16),

{ Supervisory message primary function codes

    iic$pfc_connect = 63(16),
    iic$pfc_control = 0c1(16),
    iic$pfc_data_control = 0c2(16),
    iic$pfc_error = 84(16),
    iic$pfc_flow_control = 83(16),
    iic$pfc_interrupt = 80(16),
    iic$pfc_list = 0c0(16),
    iic$pfc_message = 0e0(16),
    iic$pfc_shutdown = 42(16),
    iic$pfc_term_char = 64(16),
    iic$pfc_break_indication = 0ca(16),
    iic$pfc_resume_output = 0cb(16),
    iic$pfc_180_interactive = 0f0(16),

{ Supervisory message secondary function codes

    iic$sfc_break = 0,
    iic$sfc_reset_connection = 1,
    iic$sfc_acknowlege = 2,
    iic$sfc_negative_acknowlege = 3,
    iic$sfc_inactive = 4,
    iic$sfc_output_stopped = 5,
    iic$sfc_start_output = 6,
    iic$sfc_initialized = 7,
    iic$sfc_off = 0,
    iic$sfc_on = 1,
    iic$sfc_switch_lists = 2,
    iic$sfc_half_duplex = 4,
    iic$sfc_change_character_type = 0,
    iic$sfc_term_char_changed = 0,
    iic$sfc_logical = 1,
    iic$sfc_shutdown = 6,
    iic$sfc_request = 0,
    iic$sfc_appl_connection_request = 2,
    iic$sfc_connection_broken = 5,
    iic$sfc_end = 6,
    iic$sfc_redefine = 4,
    iic$sfc_start_input = 5,
    iic$sfc_stop_input = 6,
    iic$sfc_input_stopped = 7,
    iic$sfc_cdcnet_define_term_char = 2,
    iic$sfc_define_term_char = 8,
    iic$sfc_cdcnet_request_term_chr = 0b(16),
    iic$sfc_request_term_char = 9,
    iic$sfc_term_char_definitions = 10,
    iic$sfc_cdcnet_term_char_define = 0c(16),
    iic$sfc_cdcnet_unsolct_term_chr = 0d(16),
    iic$sfc_local_operator = 7,
    iic$sfc_hold = 0,
    iic$sfc_hold_acknowlege = 1,
    iic$sfc_unhold = 2,
    iic$sfc_change_job_monitor = 3,
    iic$sfc_job_monitor_changed = 4,
    iic$sfc_read_request = 5,
    iic$sfc_start_interactive = 6,
    iic$sfc_stop_interactive = 7,
    iic$sfc_read_rejected = 8,
    iic$sfc_absentee_begun = 9,
    iic$sfc_terminate = 10,
    iic$sfc_response = 1,
    iic$sfc_user = 0,
    iic$sfc_mark = 0,

{ Error and response codes in supervisory messages

    iic$request = 00(2),
    iic$normal = 01(2),
    iic$abnormal = 10(2),

{ Supervisory message types: primary function, error/response, secondary

{ CON / CB / R }
    iic$sm_connection_broken = iic$pfc_connect * 100(16) + iic$request * 40(16)
      + iic$sfc_connection_broken,
{ CON / END / N }
    iic$sm_connection_ended = iic$pfc_connect * 100(16) + iic$normal * 40(16) +
      iic$sfc_end,
{ CON / END / R }
    iic$sm_end_connection = iic$pfc_connect * 100(16) + iic$request * 40(16) +
      iic$sfc_end,
{ CON / REQ / A }
    iic$sm_connection_rejected = iic$pfc_connect * 100(16) + iic$abnormal *
      40(16) + iic$sfc_request,
{ CON / REQ / N }
    iic$sm_connection_accepted = iic$pfc_connect * 100(16) + iic$normal *
      40(16) + iic$sfc_request,
{ CON / REQ / R }
    iic$sm_connection_request = iic$pfc_connect * 100(16) + iic$request *
      40(16) + iic$sfc_request,
{ CTRL / DEF / R }
    iic$sm_redefine_term_char = iic$pfc_control * 100(16) + iic$request *
      40(16) + iic$sfc_redefine,
{ CTRL / START / R }
    iic$sm_start_input = iic$pfc_control * 100(16) + iic$request * 40(16) +
      iic$sfc_start_input,
{ CTRL / STOP / R }
    iic$sm_stop_input = iic$pfc_control * 100(16) + iic$request * 40(16) +
      iic$sfc_stop_input,
{ CTRL / STPD / R }
    iic$sm_input_stopped = iic$pfc_control * 100(16) + iic$request * 40(16) +
      iic$sfc_input_stopped,
{ CTRL / CTD / R }
    iic$sm_cdcnet_define_term_char = iic$pfc_control * 100(16) + iic$request * 40(16)
      + iic$sfc_cdcnet_define_term_char,
{ CTRL / CTD / A }
    iic$sm_cdcnet_define_term_chr_a = iic$pfc_control * 100(16) + iic$abnormal * 40(16)
      + iic$sfc_cdcnet_define_term_char,
{ CTRL / CTD / N }
    iic$sm_cdcnet_define_term_chr_n = iic$pfc_control * 100(16) + iic$normal * 40(16)
      + iic$sfc_cdcnet_define_term_char,
{ CTRL / CHAR / R }
    iic$sm_define_term_char = iic$pfc_control * 100(16) + iic$request * 40(16)
      + iic$sfc_define_term_char,
{ CTRL / CHAR / A }
    iic$sm_define_term_char_a = iic$pfc_control * 100(16) + iic$abnormal *
      40(16) + iic$sfc_define_term_char,
{ CTRL / CHAR / N }
    iic$sm_define_term_char_n = iic$pfc_control * 100(16) + iic$normal * 40(16)
      + iic$sfc_define_term_char,
{ CTRL / RTC / R }
    iic$sm_request_term_char = iic$pfc_control * 100(16) + iic$request * 40(16)
      + iic$sfc_request_term_char,
{ CTRL / RCC / R }
    iic$sm_cdcnet_request_term_char = iic$pfc_control * 100(16) + iic$request * 40(16)
      + iic$sfc_cdcnet_request_term_chr,
{ CTRL / RTC / A }
    iic$sm_request_term_char_a = iic$pfc_control * 100(16) + iic$abnormal *
      40(16) + iic$sfc_request_term_char,
{ CTRL / RCC / A }
    iic$sm_cdcnet_request_trm_chr_a = iic$pfc_control * 100(16) + iic$abnormal *
      40(16) + iic$sfc_cdcnet_request_term_chr,
{ CTRL / TCD / N }
    iic$sm_term_char_definitions = iic$pfc_control * 100(16) + iic$request *
      40(16) + iic$sfc_term_char_definitions,
{ CTRL / CCD / N }
    iic$sm_cdcnet_term_char_defines = iic$pfc_control * 100(16) + iic$request *
      40(16) + iic$sfc_cdcnet_term_char_define,
{ CTRL / UCD / N }
    iic$sm_cdcnet_unsolct_term_char = iic$pfc_control * 100(16) + iic$request *
      40(16) + iic$sfc_cdcnet_unsolct_term_chr,
{ DC / CICT / R }
    iic$sm_change_character_type = iic$pfc_data_control * 100(16) + iic$request
      * 40(16) + iic$sfc_change_character_type,
{ ERR / LGL / R }
    iic$sm_logical_error = iic$pfc_error * 100(16) + iic$request * 40(16) +
      iic$sfc_logical,
{ FC / ACK / R }
    iic$sm_block_delivered = iic$pfc_flow_control * 100(16) + iic$request *
      40(16) + iic$sfc_acknowlege,
{ FC / BRK / R }
    iic$sm_break = iic$pfc_flow_control * 100(16) + iic$request * 40(16) +
      iic$sfc_break,
{ FC / INACT / R }
    iic$sm_inactive_connection = iic$pfc_flow_control * 100(16) + iic$request *
      40(16) + iic$sfc_inactive,
{ FC / INIT / N }
    iic$sm_connection_initialized = iic$pfc_flow_control * 100(16) + iic$normal
      * 40(16) + iic$sfc_initialized,
{ FC / INIT / R }
    iic$sm_initialized_connection = iic$pfc_flow_control * 100(16) +
      iic$request * 40(16) + iic$sfc_initialized,
{ FC / NAK / R }
    iic$sm_block_not_delivered = iic$pfc_flow_control * 100(16) + iic$request *
      40(16) + iic$sfc_negative_acknowlege,
{ FC / RST / R }
    iic$sm_reset_connection = iic$pfc_flow_control * 100(16) + iic$request *
      40(16) + iic$sfc_reset_connection,
{ FC / STP / R }
    iic$sm_output_stopped = iic$pfc_flow_control * 100(16) + iic$request *
      40(16) + iic$sfc_output_stopped,
{ FC / STRT / R }
    iic$sm_start_output = iic$pfc_flow_control * 100(16) + iic$request * 40(16)
      + iic$sfc_start_output,
{ INTR / RSP / N }
    iic$sm_interrupt_response = iic$pfc_interrupt * 100(16) + iic$request *
      40(16) + iic$sfc_response,
{ INTR / USR / R }
    iic$sm_interrupt_user = iic$pfc_interrupt * 100(16) + iic$request * 40(16)
      + iic$sfc_user,
{ LST / OFF / R }
    iic$sm_list_off = iic$pfc_list * 100(16) + iic$request * 40(16) +
      iic$sfc_off,
{ LST / ON / R }
    iic$sm_list_on = iic$pfc_list * 100(16) + iic$request * 40(16) +
      iic$sfc_on,
{ LST / SWH / R }
    iic$sm_list_switch = iic$pfc_list * 100(16) + iic$request * 40(16) +
      iic$sfc_switch_lists,
{ LST / HDX / R }
    iic$sm_list_half_duplex = iic$pfc_list * 100(16) + iic$request * 40(16) +
      iic$sfc_half_duplex,
{ MSG / LOP / R }
    iic$sm_message_to_operator = iic$pfc_message * 100(16) + iic$request *
      40(16) + iic$sfc_local_operator,
{ SHUT / INSD / R }
    iic$sm_shutdown = iic$pfc_shutdown * 100(16) + iic$request * 40(16) +
      iic$sfc_shutdown,
{ TCH / TCHAR / R }
    iic$sm_term_char_changed = iic$pfc_term_char * 100(16) + iic$request *
      40(16) + iic$sfc_term_char_changed,
{ IFP / HOLD / R }
    iic$sm_hold = iic$pfc_180_interactive * 100(16) + iic$request * 40(16) +
      iic$sfc_hold,
{ IFP / HOLD_ACK / R }
    iic$sm_hold_acknowlege = iic$pfc_180_interactive * 100(16) + iic$request *
      40(16) + iic$sfc_hold_acknowlege,
{ IFP / UNHOLD / R }
    iic$sm_unhold = iic$pfc_180_interactive * 100(16) + iic$request * 40(16) +
      iic$sfc_unhold,
{ IFP / CHANGE_JM / R }
    iic$sm_change_job_monitor = iic$pfc_180_interactive * 100(16) + iic$request
      * 40(16) + iic$sfc_change_job_monitor,
{ IFP / JM_CHANGED / R }
    iic$sm_job_monitor_changed = iic$pfc_180_interactive * 100(16) +
      iic$request * 40(16) + iic$sfc_job_monitor_changed,
{ IFP / READ_REQ / R }
    iic$sm_read_request = iic$pfc_180_interactive * 100(16) + iic$request *
      40(16) + iic$sfc_read_request,
{ IFP / TERMINATE / R }
    iic$sm_terminate = iic$pfc_180_interactive * 100(16) + iic$request * 40(16) +
      iic$sfc_terminate,
{ IFP / START_INTERACTIVE / R }
    iic$sm_start_interactive = iic$pfc_180_interactive * 100(16) + iic$request
      * 40(16) + iic$sfc_start_interactive,
{ IFP / INTERACTIVE_STARTED / N }
    iic$sm_interactive_started = iic$pfc_180_interactive * 100(16) + iic$normal
      * 40(16) + iic$sfc_start_interactive,
{ IFP / STOP_INTERACTIVE / R }
    iic$sm_stop_interactive = iic$pfc_180_interactive * 100(16) + iic$request *
      40(16) + iic$sfc_stop_interactive,
{ IFP / READ_REJECTED / A }
    iic$sm_read_rejected = iic$pfc_180_interactive * 100(16) + iic$abnormal *
      40(16) + iic$sfc_read_rejected,
{ IFP / ABSENTEE_BEGUN / N }
    iic$sm_absentee_begun = iic$pfc_180_interactive * 100(16) + iic$normal *
      40(16) + iic$sfc_absentee_begun,
{ BI  / MARK / R }
    iic$sm_break_indication_mark = iic$pfc_break_indication * 100(16) +
      iic$request * 40(16) + iic$sfc_mark,
{ RO  / MARK / R }
    iic$sm_resume_output_mark = iic$pfc_resume_output * 100(16) + iic$request *
      40(16) + iic$sfc_mark,

{ Supervisory message lengths - in words
{ Note that the length does not include the message header word

    iic$l_connection_broken = 1,
    iic$l_connection_ended = 1,
    iic$l_end_connection = 2,
    iic$l_connection_rejected = 1,
    iic$l_connection_accepted = 1,
    iic$l_connection_request = 63,
    iic$l_redefine_term_char = 3,
    iic$l_start_input = 1,
    iic$l_stop_input = 1,
    iic$l_input_stopped = 1,
    iic$l_change_character_type = 1,
    iic$l_logical_error = 3,
    iic$l_block_delivered = 1,
    iic$l_break = 1,
    iic$l_inactive_connection = 1,
    iic$l_interrupt_response = 1,
    iic$l_interrupt_user = 1,
    iic$l_connection_initialized = 1,
    iic$l_initialized_connection = 1,
    iic$l_block_not_delivered = 1,
    iic$l_reset_connection = 1,
    iic$l_output_stopped = 1,
    iic$l_start_output = 1,
    iic$l_list_off = 1,
    iic$l_list_on = 1,
    iic$l_list_switch = 1,
    iic$l_half_duplex = 1,
    iic$l_message_to_operator = 9,
    iic$l_shutdown = 1,
    iic$l_term_char_redefined = 1,
    iic$l_define_term_char = (((2 * iic$max_term_char_pairs) * 2) DIV 15)
      + 2,
    iic$l_request_term_char = (((2 * iic$max_term_char_pairs) * 2) DIV
      15) + 2,
    iic$l_cdcnet_request_term_char = 1,
    iic$l_term_char_definitions = (((2 * iic$max_term_char_pairs) * 2)
      DIV 15) + 2,
    iic$l_define_term_char_a = 1,
    iic$l_define_term_char_n = 1,
    iic$l_request_term_char_a = 1,
    iic$l_hold = 1,
    iic$l_terminate = 1,
    iic$l_hold_acknowlege = 1,
    iic$l_unhold = 1,
    iic$l_change_job_monitor = 2,
    iic$l_job_monitor_changed = 1,
    iic$l_read_request = 1,
    iic$l_start_interactive = 1,
    iic$l_interactive_started = 1,
    iic$l_stop_interactive = 1,
    iic$l_read_rejected = 1,
    iic$l_absentee_begun = 1,
    iic$l_break_indication_mark = 1,
    iic$l_resume_output_mark = 2,

{ Application block limit

    iic$min_block_limit = 1,
    iic$max_block_limit = 7,

{ Terminal device type

    iic$console = 0,
    iic$card_reader = 1,
    iic$line_printer = 2,
    iic$card_punch = 3,
    iic$plotter = 4,

{ Terminal class values

    iic$tty_class = 1,
    iic$c75x_class = 2,
    iic$c721_class = 3,
    iic$i2741_class = 4,
    iic$tty40_class = 5,
    iic$h2000_class = 6,
    iic$x364_class = 7,
    iic$t4010_class = 8,
    iic$hasp_post_print_class = 9,
    iic$c200ut_class = 10,
    iic$c714_30_class = 11,
    iic$c711_class = 12,
    iic$c714_10_or_20_class = 13,
    iic$hasp_pre_print_class = 14,
    iic$c73x_class = 15,
    iic$i2740_class = 16,
    iic$i3780_class = 17,
    iic$i3270_class = 18,

{ Input device values

    iic$keyboard_input = 0,
    iic$block_mode_input = 2,

{ Output device values

    iic$printer_output = 0,
    iic$display_output = 1,

{ Transparent types

    iic$single_message = 0,
    iic$multi_message = 1,

{ End line cursor position values

    iic$elp_none = 0,
    iic$elp_crs = 1,
    iic$elp_lfs = 2,
    iic$elp_crslfs = 3,

{ End partial cursor position values

    iic$epp_none = 0,
    iic$epp_crs = 1,
    iic$epp_lfs = 2,
    iic$epp_crslfs = 3,

{ Parity values

    iic$zero_parity = 0,
    iic$odd_parity = 1,
    iic$even_parity = 2,
    iic$no_parity = 3,
    iic$ignore_parity = 4,

{ Terminal device ordinal

    iic$min_device_ordinal = 0,
    iic$max_device_ordinal = 7,

{ Terminal page dimensions

    iic$min_page_width = 0,
    iic$max_page_width = 255,
    iic$min_page_length = 0,
    iic$max_page_length = 255,

{ Application block size

    iic$min_block_size = 1,
    iic$max_block_size = 2043,
    iic$max_input_block_size = 3275,
    iic$max_block_length_in_words = 410,

{ Application list number

    iic$min_list_number = 0,
    iic$max_list_number = 63,
    iic$normal_input_list_number = 1,
    iic$collector_input_list_number = 2,

{ Special ascii control characters

    iic$ascii_us = CHR (1f(16)),

{ Connection reject reasons

    iic$bad_connection_number = 1,
    iic$unspecified_reject = 2,
    iic$application_is_full = 3,
    iic$invalid_for_application = 4,

{ Application connection reject reasons

    iic$application_not_running_etc = 1,
    iic$shutdown_in_progress = 2,
    iic$too_many_appl_connections = 3,

{ Connection broken reasons

    iic$communications_lost = 1,
    iic$nam_broke_connection = 2,

{ Block-not-delivered reasons

    iic$nam_lost_the_block = 1,

{ Break reasons

    iic$user_break_1 = 1,
    iic$user_break_2 = 2,
    iic$output_device_not_ready = 3,
    iic$bad_data = 4,

{ Stop-output reasons

    iic$terminal_busy = 1,
    iic$terminal_failure = 2,
    iic$console_interrupted_batch = 3,

{ Input-stopped reasons

    iic$stopped_by_application = 0,
    iic$card_reader_not_ready = 1,
    iic$card_slippage = 2,
    iic$end_of_information = 3,
    iic$console_interrupted_reader = 4,

{ Message to local operator

    iic$max_operator_message_chars = 80,
    iic$max_operator_message_words = 8,

{ Logical error reasons

    iic$invalid_character_type = 1,
    iic$invalid_text_length = 2,
    iic$invalid_block_type = 3,
    iic$invalid_connection_number = 4,
    iic$block_limit_exceeded = 5,
    iic$too_many_errors = 6,
    iic$invalid_supervisory = 7,
    iic$fragmented_io_error = 8,

{ Terminal characteristics pairs

    iic$max_term_char_pairs = 37,

{ Terminal characteristics pairs field numbers

    iic$fn_lockout_unsolicited_msgs = 32,
    iic$fn_terminal_class = 34,
    iic$fn_page_width = 35,
    iic$fn_page_length = 36,
    iic$fn_hold_page = 37,
    iic$fn_cancel_line_character = 38,
    iic$fn_backspace_character = 39,
    iic$fn_network_cmd_character = 40,
    iic$fn_pause_break_character = 42,
    iic$fn_term_break_character = 43,
    iic$fn_cr_delay_default = 46,
    iic$fn_lf_delay_default = 47,
    iic$fn_special_editing = 48,
    iic$fn_echoplex = 49,
    iic$fn_parity = 50,
    iic$fn_user_break_1 = 51,
    iic$fn_trans_input_mode = 52,
    iic$fn_input_device = 53,
    iic$fn_output_device = 54,
    iic$fn_full_ascii = 55,
    iic$fn_trans_delim_char_select = 56,
    iic$fn_trans_delim_count_most = 57,
    iic$fn_trans_delim_count_least = 58,
    iic$fn_trans_delim_character = 59,
    iic$fn_trans_delim_timeout = 60,
    iic$fn_end_line_character = 61,
    iic$fn_eol_cursor_positioning = 63,
    iic$fn_end_block_character = 64,
    iic$fn_eob_cursor_positioning = 66,
    iic$fn_input_flow_control = 67,
    iic$fn_output_flow_control = 68,
    iic$fn_trans_mode_delim_char = 69,
    iic$fn_trans_input_type = 70,
    iic$fn_cursor_positioning = 71,
    iic$fn_full_duplex = 87,
    iic$fn_pacer_prompting = 102,
    iic$fn_solicited_mode = 112,
    iic$fn_trans_mode_delim_lock = 146,
    iic$fn_cr_delay_count = 147,
    iic$fn_lf_delay_count = 148,
    iic$fn_trans_interruptable = 149,


{ Terminal characteristic pairs array index keys for connection attributes

    iic$key_user_break_1 = 1,               { attention character action }
    iic$key_full_duplex = 2,                { input output mode--full duplex }
    iic$key_solicited_mode = 3,             { input output mode--solicited/unsolicited }
    iic$key_input_device = 4,               { partial character forwarding }
    iic$key_special_editing = 5,            { store backspace character }
    iic$key_full_ascii = 6,                 { store nuls dels }
    iic$key_trans_input_mode = 7,           { input editing mode }
    iic$key_trans_delim_char_select = 8,    { transparent character mode--on/off }
    iic$key_trans_input_type = 9,           { transparent type--single/multi }
    iic$key_trans_delim_count_most = 10,    { upper byte of transparent count }
    iic$key_trans_delim_count_least = 11,   { lower byte of transparent count }
    iic$key_trans_delim_timeout = 12,       { transparent timeout mode--on/off }
    iic$key_trans_mode_delim_lock = 13,     { transparent timeout mode--"sticky" }
    iic$key_trans_delim_character = 14,     { transparent forwarding character }
    iic$key_trans_mode_delim_char = 15,     { transparent character mode delimiter }

{ Terminal characteristics

    iic$key_terminal_class = 16,
    iic$key_page_width = 17,
    iic$key_page_length = 18,
    iic$key_cancel_line_character = 19,
    iic$key_backspace_character = 20,
    iic$key_cr_delay_count = 21,
    iic$key_lf_delay_count = 22,
    iic$key_echoplex = 23,
    iic$key_hold_page = 24,
    iic$key_parity = 25,
    iic$key_network_cmd_character = 26,
    iic$key_end_partial_character = 27,
    iic$key_end_partial_positioning = 28,
    iic$key_end_line_character = 29,
    iic$key_end_line_positioning = 30,
    iic$key_input_flow_control = 31,
    iic$key_output_flow_control = 32,
    iic$key_lockout_unsolicited_msg = 33,
    iic$key_pacer_prompting = 34,
    iic$key_output_device = 35,
    iic$key_pause_break_character = 36,
    iic$key_term_break_character = 37,

{ Terminal characteristics error reason codes

    iic$term_char_no_error = 0,
    iic$term_char_illegal_value = 1,
    iic$term_char_duplicate_char = 2,
    iic$term_char_invalid_for_tc = 3,
    iic$term_char_illegal_tc_change = 4,
    iic$term_char_illegal_param = 5;

*copyc iic$vt_max_output_mess_length

  TYPE

{ Types used in message block definitions

    iit$170_word = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      left_half: 0 .. 3fffffff(16),
      right_half: 0 .. 3fffffff(16),
    recend,
    iit$address = 0 .. 0fff(16),
    iit$application_block_limit = 0 .. 7,
    iit$application_block_number = 0 .. 3ffff(16),
    iit$application_block_type = 0 .. 3f(16),
    iit$application_character_type = 0 .. 0f(16),
    iit$application_connection_num = 0 .. 0fff(16),
    iit$application_list_number = 0 .. 3f(16),
    iit$appl_connection_rej_reason = 0 .. 0ff(16),
    iit$block_not_delivered_reason = 0 .. 0ff(16),
    iit$block_size = 1 .. 7ff(16),
    iit$break_reason = 0 .. 0ff(16),
    iit$cancel_input = boolean,
    iit$connection_broken_reason = 0 .. 0ff(16),
    iit$connection_reject_reason = 0 .. 0ff(16),
    iit$device_ordinal = 0 .. 0ff(16),
    iit$device_type = 0 .. 7,
    iit$display_code = 0 .. 3f(16),
    iit$downline_data_block =
    ?IF ifv$module_for_c180 = TRUE THEN
      array [1 .. * ] of char,
    ?ELSE
      array [1 .. * ] of iit$170_ascii_word,
    ?IFEND
    iit$error = boolean,
    iit$family_ordinal = 0 .. 3ffff(16),
    iit$field_number = 0 .. 0ff(16),
    iit$field_value = 0 .. 0ff(16),
    iit$half_byte = 0 .. 0f(16),
    iit$hardwired_line = boolean,
    iit$immediate_shutdown = boolean,
    iit$input_block_undeliverable = boolean,
    iit$input_data_block =
    ?IF ifv$module_for_c180 = TRUE THEN
      array [1 .. iic$max_input_block_size] of char,
    ?ELSE
      array [1 .. iic$max_block_length_in_words] of iit$170_ascii_word,
    ?IFEND
    iit$input_stopped_reason = 0 .. 0ff(16),
    iit$logical_error_abh = iit$170_ascii_word,
    iit$logical_error_reason = 0 .. 0ff(16),
    iit$logical_error_word_1 = iit$170_ascii_word,
    iit$login_family_name = packed array [1 .. 7] of iit$display_code,
    iit$login_user_name = packed array [1 .. 7] of iit$display_code,
    iit$nam_application_name = packed array [1 .. 10] of iit$display_code,
    iit$nibble_string = packed array [0 .. 3 * iic$max_block_size + 1000] of
      iit$half_byte,
    iit$cdcnet = boolean,
    iit$new_application_list_number = 0 .. 3f(16),
    iit$no_format_effectors = boolean,
    iit$operator_message_length = 0 .. 0fff(16),
    iit$output_data_block =
    ?IF ifv$module_for_c180 = TRUE THEN
      array [1 .. ((iic$max_block_size * 16 + 20) DIV 10)] of char,
        { 2043 + ((2043 DIV 5) DIV 2) + (2043 DIV 2) + 2   affords enough space for
        { each character, each word's 4-bit memory link zero, and the 4-bit zero of
        { each 8-of-12 character.
    ?ELSE
      array [1 .. iic$max_block_length_in_words] of iit$170_ascii_word,
    ?IFEND
    iit$owning_console_name = packed array [1 .. 7] of iit$display_code,
    iit$page_length = 0 .. 0ff(16),
    iit$page_width = 0 .. 0ff(16),
    iit$parity_error = boolean,
    iit$primary_function_code = 0 .. 3f(16),
    iit$punch_banner_card = boolean,
    iit$redefined_terminal_class = 0 .. 0ff(16),
    iit$response = boolean,
    iit$secondary_function_code = 0 .. 3f(16),
    iit$stop_output_reason = 0 .. 0ff(16),
    iit$supervisory_message_type = 0 .. 0ffff(16),
    iit$term_char_pair = record
      field_number: iit$field_number,
      field_value: iit$field_value,
    recend,
    iit$cdcnet_term_char_pair = record
      application_number: iit$field_number,
      application_value: iit$field_value,
    recend,
    iit$term_char_string = array [1 .. iic$max_term_char_pairs] of
      iit$term_char_pair,
    iit$cdcnet_term_char_string =
      array [1 .. iic$vt_max_output_mess_length] of iit$field_value,
    iit$term_char_values = array [1 .. iic$max_term_char_pairs] of
      iit$field_value,
    iit$terminal_class = 0 .. 1f(16),
    iit$terminal_definition = packed array [1 .. 17] of iit$half_byte,
    iit$terminal_name = packed array [1 .. 7] of iit$display_code,
    iit$text_length = 0 .. 0fff(16),
    iit$transparent_mode = boolean,
    iit$upline_data_block =
    ?IF ifv$module_for_c180 = TRUE THEN
      array [1 .. * ] of char,
    ?ELSE
      array [1 .. * ] of iit$170_ascii_word,
    ?IFEND
    iit$user_index = 0 .. 3ffff(16),
    iit$word_fill = 0 .. 0f(16),
    iit$170_ascii_word = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      left_nibble: packed array [0 .. 7] of iit$half_byte,
      right_nibble: packed array [0 .. 6] of iit$half_byte,
    recend,
    iit$170_display_word = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      left_character: packed array [0 .. 4] of iit$display_code,
      right_character: packed array [0 .. 4] of iit$display_code,
    recend,

{ Application block headers

    iit$input_data_block_header = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      block_type: iit$application_block_type,
      connection_number: iit$application_connection_num,
      block_number: iit$application_block_number,
      character_type: iit$application_character_type,
      undeliverable: iit$input_block_undeliverable,
      zero1: 0 .. 0f(16),
      transparent: iit$transparent_mode,
      cancel: iit$cancel_input,
      parity_error: iit$parity_error,
      text_length: iit$text_length,
    recend,

    iit$output_data_block_header = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      block_type: iit$application_block_type,
      connection_number: iit$application_connection_num,
      block_number: iit$application_block_number,
      character_type: iit$application_character_type,
      zero1: 0 .. 0f(16),
      no_format_effectors: iit$no_format_effectors,
      transparent: iit$transparent_mode,
      suppress_echo: boolean,
      auto_input: boolean,
      text_length: iit$text_length,
    recend,

    iit$input_supervisory_header = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      block_type: iit$application_block_type,
      address: iit$address,
      fill1: 0 .. 3ffff(16),
      character_type: iit$application_character_type,
      undeliverable: iit$input_block_undeliverable,
      fill2: 0 .. 7f(16),
      text_length: iit$text_length,
    recend,

    iit$output_supervisory_header = packed record
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      block_type: iit$application_block_type,
      address: iit$address,
      block_number: iit$application_block_number,
      character_type: iit$application_character_type,
      fill1: 0 .. 0ff(16),
      text_length: iit$text_length,
    recend,

{ Supervisory messages

    iit$connection_request = packed record { CON / REQ / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      block_limit: iit$application_block_limit,
      fill2: 0 .. 0f(16),
      hardwired: iit$hardwired_line,
      device_type: iit$device_type,
      terminal_class: iit$terminal_class,
      device_ordinal: iit$device_ordinal,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad2: iit$word_fill,
      ?IFEND
      terminal_name: iit$terminal_name,
      fill3: 0 .. 3(16),
      page_width: iit$page_width,
      page_length: iit$page_length,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad3: iit$word_fill,
      ?IFEND
      owning_console_name: iit$owning_console_name,
      fill4: 0 .. 3f(16),
      block_size: iit$block_size,
      fill5: 0 .. 1,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad4: iit$word_fill,
      ?IFEND
      fill6: 0 .. 0fff(16),
      fill7: 0 .. 0ffffffffffff(16),
      ?IF ifv$module_for_c180 = TRUE THEN
        pad5: iit$word_fill,
      ?IFEND
      family_name: iit$login_family_name,
      family_ordinal: iit$family_ordinal,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad6: iit$word_fill,
      ?IFEND
      user_name: iit$login_user_name,
      user_index: iit$user_index,
      other_stuff: array [1 .. 57] of iit$170_display_word,
    recend,

    iit$connection_accepted = packed record { CON / REQ / N }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 3fff(16),
      character_type: iit$application_character_type,
      list_number: iit$application_list_number,
    recend,

    iit$connection_rejected = packed record { CON / REQ / A }
      reason: iit$connection_reject_reason,
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffff(16),
    recend,

    iit$initialized_connection = packed record { FC / INIT / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$connection_initialized = packed record { FC / INIT / N }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$connection_broken = packed record { CON / CB / R }
      reason: iit$connection_broken_reason,
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffff(16),
    recend,

    iit$end_connection = packed record { CON / END / R }
      zero1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffff(16),
      zero2: iit$170_display_word,
    recend,

    iit$connection_ended = packed record { CON / END / N }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$appl_connection_request_rej = packed record { CON / ACRQ / A }
      reason: iit$appl_connection_rej_reason,
      fill1: 0 .. 0fffffffff(16),
      ?IF ifv$module_for_c180 = TRUE THEN
        pad2: iit$word_fill,
      ?IFEND
      application_name: iit$nam_application_name,
      fill2: 0 .. 3ffff(16),
    recend,

    iit$inactive_connection = packed record { FC / INACT / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$interrupt_user = packed record { INTR / USR / R }
      alpha: char,
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffff(16),
    recend,

    iit$list_off = packed record { LST / OFF / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$list_on = packed record { LST / ON / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$list_switch = packed record { LST / SWH / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 3ffff(16),
      new_list_number: iit$new_application_list_number,
    recend,

     iit$list_half_duplex = packed record { LST / HDX / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      disable: 0 .. 0ffffff(16),
    recend,

    iit$block_delivered = packed record { FC / ACK / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      block_number: iit$application_block_number,
      fill2: 0 .. 3f(16),
    recend,

    iit$block_not_delivered = packed record { FC / NAK / R }
      reason: iit$block_not_delivered_reason,
      connection_number: iit$application_connection_num,
      block_number: iit$application_block_number,
      fill1: 0 .. 3f(16),
    recend,

    iit$break = packed record { FC / BRK / R }
      reason: iit$break_reason,
      connection_number: iit$application_connection_num,
      block_number: iit$application_block_number,
      fill1: 0 .. 3f(16),
    recend,

    iit$reset_connection = packed record { FC / RST / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$output_stopped = packed record { FC / STP / R }
      reason: iit$stop_output_reason,
      connection_number: iit$application_connection_num,
      last_good_block: iit$application_block_number,
      fill1: 0 .. 3f(16),
    recend,

    iit$start_output = packed record { FC / STRT / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0ffffff(16),
    recend,

    iit$start_input = packed record { CTRL / STRT / R }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$stop_input = packed record { CTRL / STOP / R }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$input_stopped = packed record { CTRL / STPD / R }
      reason: iit$input_stopped_reason,
      fill1: 0 .. 0fffffffff(16),
    recend,

    iit$cdcnet_define_term_char = packed record { CTRL / CTD / R }
      array_of_octets: array [1 .. iic$vt_max_output_mess_length] of iit$term_char_pair,
    recend,

    iit$define_term_char = packed record { CTRL / CHAR / R }
      term_char_string: iit$term_char_string,
    recend,

    iit$define_term_char_n = packed record { CTRL / CHAR / N }
      fill1: 0 .. 0fffffffffff(16)
    recend,

    iit$define_term_char_a = packed record { CTRL / CHAR / A }
      field_number: iit$field_number,
      reason_code: 0 .. 0ff(16),
    recend,

    iit$request_term_char = packed record { CTRL / RTC / R }
      term_char_string: iit$term_char_string,
    recend,

    iit$request_term_char_a = packed record { CTRL / RTC / A }
      field_number: iit$field_number,
      reason_code: 0 .. 0ff(16),
    recend,

    iit$cdcnet_request_term_char_a = packed record { CTRL / RCC / A }
      attribute_number: iit$field_number,
    recend,

    iit$term_char_definitions = packed record { CTRL / TCD / N }
      term_char_string: iit$term_char_string,
    recend,

    iit$cdcnet_term_char_defines = packed record { CTRL / CCD / N }
      array_of_octets: iit$cdcnet_term_char_string,
    recend,

    iit$change_character_type = packed record { DC / CICT / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      fill2: 0 .. 0fff(16),
      character_type: iit$application_character_type,
    recend,

    iit$term_char_redefined = packed record { TCH / TCHAR / R }
      fill1: 0 .. 0ff(16),
      connection_number: iit$application_connection_num,
      terminal_class: iit$terminal_class,
      page_width: iit$page_width,
      page_length: iit$page_length,
    recend,

    iit$redefine_term_char = packed record { CTRL / DEF / R }
      terminal_definition: iit$terminal_definition,
    recend,

    iit$message_to_operator = packed record { MSG / LOP / R }
      fill1: 0 .. 0ff(16),
      number_of_characters: 0 .. 0fff(16),
      fill2: 0 .. 0ffffff(16),
      message: packed array [1 .. iic$max_operator_message_words] of
        iit$170_display_word,
    recend,

    iit$shutdown = packed record { SHUT / INSD / R }
      fill1: 0 .. 7ffffffffff(16),
      immediate: iit$immediate_shutdown,
    recend,

    iit$logical_error = packed record { ERR / LGL / R }
      reason: iit$logical_error_reason,
      fill1: 0 .. 0fffffffff(16),
      bad_header: iit$logical_error_abh,
      first_word_of_block: iit$logical_error_word_1,
    recend,

    iit$hold = packed record { IFP / HOLD / R }
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffffff(16),
    recend,

    iit$hold_acknowlege = packed record { IFP / HOLD_ACK / R }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$unhold = packed record { IFP / UNHOLD / R }
      connection_number: iit$application_connection_num,
      fill1: 0 .. 0ffffffff(16),
    recend,

    iit$change_job_monitor = packed record { IFP / CHANGE_JM / R }
      fill1: 0 .. 0fffffffffff(16),
      new_jm: integer,
    recend,

    iit$job_monitor_changed = packed record { IFP / JM_CHANGED / R }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$read_rejected = packed record { IFP / READ_REJECTED / A }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$absentee_begun = packed record { IFP / ABSENTEE_BEGUN / N }
      fill1: 0 .. 0fffffffffff(16),
    recend,

    iit$read_request = packed record { IFP / READ_REQ / R }
      connection_number: iit$application_connection_num,
      begin_absentee: boolean,
      notify_if_absentee_started: boolean,
      fill1: 0 .. 3fffffff(16),
    recend,

    iit$input_data_message = record
      header: iit$input_data_block_header,
      data: iit$input_data_block,
    recend,

    iit$upline_data_message = record
      header: iit$input_data_block_header,
      data: iit$upline_data_block,
    recend,

    iit$output_data_message = record
      header: iit$output_data_block_header,
      data: iit$output_data_block,
    recend,

    iit$downline_data_message = record
      header: iit$output_data_block_header,
      data: iit$downline_data_block,
    recend,

    iit$general_message = packed array [1 .. iic$max_block_length_in_words + 1]
      of iit$170_word,

    iit$input_supervisory_message = packed record
      header: iit$input_supervisory_header,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      case message_type: iit$supervisory_message_type of
      = iic$sm_connection_broken = { CON / CB / R }
        connection_broken: iit$connection_broken,
      = iic$sm_connection_ended = { CON / END / N }
        connection_ended: iit$connection_ended,
      = iic$sm_connection_request = { CON / REQ / R }
        conreq_fill1: 0 .. 0ff(16),
        conreq_connection_number: iit$application_connection_num,
        conreq_block_limit: iit$application_block_limit,
        conreq_fill2: 0 .. 0f(16),
        conreq_hardwired: iit$hardwired_line,
        conreq_device_type: iit$device_type,
        conreq_terminal_class: iit$terminal_class,
        conreq_device_ordinal: iit$device_ordinal,
        ?IF ifv$module_for_c180 = TRUE THEN
          conreq_pad2: iit$word_fill,
        ?IFEND
        conreq_terminal_name: iit$terminal_name,
        conreq_fill3: 0 .. 3(16),
        conreq_page_width: iit$page_width,
        conreq_page_length: iit$page_length,
        ?IF ifv$module_for_c180 = TRUE THEN
          conreq_pad3: iit$word_fill,
        ?IFEND
        conreq_owning_console_name: iit$owning_console_name,
        conreq_fill4a: 0 .. 1,
        conreq_cdcnet_connection: iit$cdcnet,
        conreq_fill4b: 0 .. 0f(16),
        conreq_block_size: iit$block_size,
        conreq_fill5: 0 .. 1,
        ?IF ifv$module_for_c180 = TRUE THEN
          conreq_pad4: iit$word_fill,
        ?IFEND
        conreq_fill6: 0 .. 0fff(16),
        conreq_fill7: 0 .. 0ffffffffffff(16),
        ?IF ifv$module_for_c180 = TRUE THEN
          conreq_pad5: iit$word_fill,
        ?IFEND
        conreq_family_name: iit$login_family_name,
        conreq_family_ordinal: iit$family_ordinal,
        ?IF ifv$module_for_c180 = TRUE THEN
          conreq_pad6: iit$word_fill,
        ?IFEND
        conreq_user_name: iit$login_user_name,
        conreq_user_index: iit$user_index,
        conreq_other_stuff: array [1 .. 57] of iit$170_display_word,
      = iic$sm_input_stopped = { CTRL / STPD / R }
        input_stopped: iit$input_stopped,
      = iic$sm_term_char_definitions = { CTRL / TCD / N }
        ctrltcd_pad1: 0 .. 0f(16),
        term_char_definitions: iit$term_char_definitions,
      = iic$sm_cdcnet_term_char_defines = { CTRL / CCD / N }
        cdcnet_term_char_defines: iit$cdcnet_term_char_defines,
      = iic$sm_logical_error = { ERR / LGL / R }
        errlgl_reason: iit$logical_error_reason,
        errlgl_fill1: 0 .. 0fffffffff(16),
        errlgl_bad_header: iit$170_ascii_word,
        errlgl_first_word_of_block: iit$logical_error_word_1,
      = iic$sm_block_delivered = { FC / ACK / R }
        block_delivered: iit$block_delivered,
      = iic$sm_break = { FC / BRK / R }
        break: iit$break,
      = iic$sm_reset_connection = { FC / RST / R }
        reset_connection: iit$reset_connection,
      = iic$sm_inactive_connection = { FC / INACT / R }
        inactive_connection: iit$inactive_connection,
      = iic$sm_initialized_connection = { FC / INIT / R }
        initialized_connection: iit$initialized_connection,
      = iic$sm_block_not_delivered = { FC / NAK / R }
        block_not_delivered: iit$block_not_delivered,
      = iic$sm_output_stopped = { FC / STP / R }
        output_stopped: iit$output_stopped,
      = iic$sm_start_output = { FC / STRT / R }
        start_output: iit$start_output,
      = iic$sm_shutdown = { SHUT / INSD / R }
        shutdown: iit$shutdown,
      = iic$sm_term_char_changed = { TCH / TCHAR / R }
        term_char_redefined: iit$term_char_redefined,
      = iic$sm_hold_acknowlege = { IFP / HOLD_ACK / R }
        hold_acknowlege: iit$hold_acknowlege,
      = iic$sm_job_monitor_changed = { IFP / JM_CHANGED / R }
        job_monitor_changed: iit$job_monitor_changed,
      = iic$sm_interactive_started = { IFP / INTERACTIVE_STARTED / N }
        interactive_started: 0 .. 0fffffffffff(16),
      = iic$sm_read_rejected = { IFP / READ_REJECTED / A }
        read_rejected: iit$read_rejected,
      = iic$sm_interrupt_user = { INTR / USR / R }
        interrupt_user: iit$interrupt_user,
      = iic$sm_absentee_begun = { IFP / ABSENTEE_BEGUN / N }
        absentee_begun: iit$absentee_begun,
      = iic$sm_break_indication_mark = { BI / MARK / R }
        bi_mark: 0 .. 0fffffffffff(16),
      = iic$sm_define_term_char_n = { CTRL / CHAR / N }
        dtc_normal: iit$define_term_char_n,
      = iic$sm_define_term_char_a = { CTRL / CHAR / A }
        dtc_abnormal: iit$define_term_char_a,
      = iic$sm_request_term_char_a = { CTRL / RTC / A }
        rtc_abnormal: iit$request_term_char_a,
      = iic$sm_cdcnet_request_trm_chr_a = { CTRL / RCC / A }
        rcc_abnormal: iit$cdcnet_request_term_char_a,
      casend,
    recend,

    iit$output_supervisory_message = packed record
      header: iit$output_supervisory_header,
      ?IF ifv$module_for_c180 = TRUE THEN
        pad1: iit$word_fill,
      ?IFEND
      case message_type: iit$supervisory_message_type of
      = iic$sm_end_connection = { CON / END / R }
        conend_zero1: 0 .. 0ff(16),
        conend_connection_number: iit$application_connection_num,
        conend_fill1: 0 .. 0ffffff(16),
        conend_zero2: iit$170_display_word,
      = iic$sm_connection_rejected = { CON / REQ / A }
        connection_rejected: iit$connection_rejected,
      = iic$sm_connection_accepted = { CON / REQ / N }
        connection_accepted: iit$connection_accepted,
      = iic$sm_redefine_term_char = { CTRL / DEF / R }
        ctrldef_part1: packed array [0 .. 10] of iit$half_byte,
        ctrldef_part2: iit$170_ascii_word,
        ?IF ifv$module_for_c180 = TRUE THEN
          ctrldef_pad1: iit$word_fill,
        ?IFEND
        ctrldef_part3: packed array [0 .. 3] of iit$half_byte,
        ctrldef_pad2: 0 .. 0fffffffffff(16),
      = iic$sm_start_input = { CTRL / START / R }
        start_input: iit$start_input,
      = iic$sm_stop_input = { CTRL / STOP / R }
        stop_input: iit$stop_input,
      = iic$sm_define_term_char = { CTRL / CHAR / R }
        ctrlchar_pad1: 0 .. 0f(16),
        define_term_char: iit$define_term_char,
      = iic$sm_cdcnet_define_term_char = { CTRL / CTD / R }
        cdcnet_define_term_char: iit$cdcnet_define_term_char,
      = iic$sm_request_term_char = { CTRL / RTC / R }
        ctrlrtc_pad1: 0 .. 0f(16),
        request_term_char: iit$request_term_char,
      = iic$sm_cdcnet_request_term_char = { CTRL / RCC / R }
        { No AN's indicates a request for all AV's. },
      = iic$sm_change_character_type = { DC / CICT / R }
        change_character_type: iit$change_character_type,
      = iic$sm_break = { FC / BRK / R }
        break: iit$break,
      = iic$sm_connection_initialized = { FC / INIT / N }
        connection_initialized: iit$connection_initialized,
      = iic$sm_reset_connection = { FC / RST / R }
        reset_connection: iit$reset_connection,
      = iic$sm_list_off = { LST / OFF / R }
        list_off: iit$list_off,
      = iic$sm_list_on = { LST / ON / R }
        list_on: iit$list_on,
      = iic$sm_list_switch = { LST / SWH / R }
        list_switch: iit$list_switch,
      = iic$sm_list_half_duplex = { LST / HDX / R }
        half_duplex: iit$list_half_duplex,
      = iic$sm_message_to_operator = { MSG / LOP / R }
        msglop_fill1: 0 .. 0ff(16),
        msglop_number_of_characters: 0 .. 0fff(16),
        msglop_fill2: 0 .. 0ffffff(16),
        msglop_message: packed array [1 .. iic$max_operator_message_words] of
          iit$170_display_word,
      = iic$sm_hold = { IFP / HOLD / R }
        hold: iit$hold,
      = iic$sm_unhold = { IFP / UNHOLD / R }
        unhold: iit$unhold,
      = iic$sm_read_request = { IFP / READ_REQ / R }
        read_request: iit$read_request,
      = iic$sm_change_job_monitor = { IFP / CHANGE_JM / R }
        changejm_connection_number: iit$application_connection_num,
        changejm_fill1: 0 .. 0ffffffff(16),
        changejm_new_jm: integer,
      = iic$sm_start_interactive = { IFP / START_INTERACTIVE / R }
        start_interactive: 0 .. 0fffffffffff(16),
      = iic$sm_stop_interactive = { IFP / STOP_INTERACTIVE / R }
        stop_interactive: 0 .. 0fffffffffff(16),
      = iic$sm_interrupt_response = { INTR / RSP / N }
        interrupt_response: iit$interrupt_user,
      = iic$sm_resume_output_mark = { RO / MARK / R }
        ro_mark: 0 .. 0ffffffffffff(16),
      = iic$sm_terminate = { IFP / TERMINATE / R }
        terminate: iit$hold,
      casend,
    recend;

