
  { Type definitions for NOS/VE communications with SCD.

  CONST
    dpc$cdc_721 = 1,
    dpc$c170_controlware_required = 1,
    dpc$mdd_initiated_by_cti = 0,
    dpc$mdd_initiated_by_c170 = 1,
    dpc$mdd_initiated_by_nosve = 2,
    dpc$sci_table_interlock_bit = 19;

  { Define the SCD console parameter block.  The structure of this table is defined in the
  { "SCD/Display-Console Interface Specification" (ARH5783).

  TYPE
    dpt$console_parameter_block = PACKED RECORD
      reserved: 0 .. 0ffff(16),
      scd_definition_changed: boolean,
      mdd_definition_changed: boolean,
      block_length_changed: boolean,
      interlocked: boolean,
      reserved2: 0 .. 3,
      sci_pp_number: 0 .. 77(8),
      block_length: 0 .. 15,
      scd_console: dpt$console_definition,
      mdd_console: dpt$mdd_console_definition,
      primary_ve_interface: dpt$ve_interface,
      secondary_ve_interface: dpt$ve_interface,
    RECEND;

  TYPE
    dpt$console_definition = PACKED RECORD
      reserved: 0 .. 3,
      console_bell: boolean,
      port_assigned: boolean,
      console_active: boolean,
      nos_ve_active: boolean,
      nos_active: boolean,
      terminal_type: 0 .. 7,
      controlware_code: 0 .. 7,
      reserved2: boolean,
      port_number: 0 .. 3, { 1X(2) = output to both ports, input from X
    RECEND;

  TYPE
    dpt$mdd_console_definition = PACKED RECORD
      reserved: 0 .. 7,
      port_assigned: boolean,
      console_active: boolean,
      initiator: 0 .. 3, { CTI = 0, C170 = 1, NOS/VE = 2
      reserved2: boolean,
      port_number: 0 .. 3, { 1X(2) = output to both ports, input from X
      nos_output_channel_to_scd: 0 .. 77(8),
    RECEND;

  TYPE
    dpt$ve_interface = PACKED RECORD
      unused: 0 .. 0ffffff(16),
      interrupt_selector: 0 .. 0ff(16),
      ve_parameter_block: 0 .. 0ffffffff(16),
    RECEND;
