?? NEWTITLE := '~~~~~   common deck DSI$DEFINE_HARDWARE_CONFIG', EJECT ??
{***************************************************************

{  Preset configuration record definitions, deck DSI$DEFINE_HARDWARE_CONFIG.

{  System hardware configuration record.

*copyc dst$cc_cti_hardware_block

{  Define hardware configuration based on CEVAL interface.

  VAR
    console: dst$cc_display_console_info,
    configuration_record: ARRAY [1 .. 10] OF dst$cc_cti_hardware_block;

  PROCEDURE set_configuration;

    VAR
      i: integer,
      cr: ^dst$cc_cti_hardware_block,
      mab: ARRAY [1 .. 100] OF dst$cc_generic_element,
      entry: 1 .. 100;

    pp_table.size := #SIZE (mab);
    pp_table.data_buffer := ^mab;
    callsda (fetch_hdt, pp_table);

    entry := 1;
    i := 1;

    WHILE mab [entry].size > 0 DO
      cr := #LOC (mab [entry]);
      CASE cr^.iou.id OF
      = $INTEGER (dsc$id_processor_info) =
        configuration_record [i].processor := cr^.processor;

      = $INTEGER (dsc$id_iou_info) =
        configuration_record [i].iou := cr^.iou;

      = $INTEGER (dsc$id_central_memory_info) =
        configuration_record [i].memory := cr^.memory;

      = $INTEGER (dsc$id_display_console_info) =
        configuration_record [i].console := cr^.console;
        console := cr^.console;

      = $INTEGER (dsc$id_mainframe_info) =
        configuration_record [i].mainframe := cr^.mainframe;

      ELSE

       { Unrecognized mab type, decrement configuration_record index so
       { that there are no holes in this array.  All of the entries that
       { deadstart cares about are contiguous.

        i := i - 1;
      CASEND;
      entry := entry + mab [entry].size;
      i := i + 1;
    WHILEND;

  PROCEND set_configuration;
?? OLDTITLE ??
