
{ These three constants identify a deadstart device.
{ These are identified in the "CTI Interface Specification"
{ ARH2948 in the deadstart sector format.

    CONST
      dsc$special_cti_constant_1 = 500(8),
      dsc$special_cti_constant_2 = 16(8),
      dsc$special_cti_ipl_constant = 112014(8);

    TYPE
      dst$ds_address_a = packed record
        cylinder: 0 .. 0fff(16),
        track: 0 .. 0fff(16),
        sector: 0 .. 0fff(16),
      recend,

      dst$ds_address_b = packed record
        cylinder: 0 .. 0fff(16),
        track: 0 .. 3f(16),
        sector: 0 .. 3f(16),
      recend,

      dst$ds_path = packed record
        pad: 0 .. 3f(16),
        channel: 0 .. 3f(16),
        equipment: 0 .. 3f(16),
        unit: 0 .. 3f(16),
      recend,

{  The added word comments can not be taken literally after word 56.
{  Notice word 56 is only 48 bits long instead of 60 bits long.  This
{  is because the first 12 bits included in word 57 are really the last
{  12 bits of word 56.  This continues for the rest of the record.

      dst$deadstart_sector = packed record
        {Word 0
        v1: 0 .. 0fff(16),
        v2: 0 .. 0fff(16),
        v3: 0 .. 0fffffffff(16),
        {Word 1
        v4: 0 .. 3ffff(16),
        v5: 0 .. 3ffffffffff(16),
        {Words 2 thru 55
        v6: packed array [1 .. 54 * 15] of 0 .. 0f(16),
        {Word 56
        reserved_ctia: packed array [1 .. 7] of 0 .. 0f(16),
        reserved_ctib: packed array [1 .. 3] of boolean,
        valid_ds_error_log: boolean,
        reserved_for_ctic: packed array [1 .. 4] of 0 .. 0f(16),
        {Word 57
        cti_address: dst$ds_address_a,
        cda_address: dst$ds_address_b,
        {Word 58
        msb_address: dst$ds_address_a,
        msb_path: dst$ds_path,
        {Word 59
        msl: 0 .. 0fff(16),
        reserved_cmse: 0 .. 0ffffffffffff(16),
        {Word 60
        hvs_address: dst$ds_address_a,
        hvs_path: dst$ds_path,
        {Word 61
        reserved_hvsa: packed array [1 .. 10] of 0 .. 0f(16),
        reserved_hvsb: packed array [1 .. 5] of 0 .. 0f(16),
        {Word 62
        os_address: dst$ds_address_a,
        os_path: dst$ds_path,
        {Word 63
        reserved_osa: packed array [1 .. 10] of 0 .. 0f(16),
        reserved_osb: packed array [1 .. 5] of 0 .. 0f(16),
        {the leftover 12 bits
        unused: 0 .. 0fff(16),
      recend;
