  PROCEDURE [INLINE] dfp$record_server_translation
    (    server_mainframe_id: pmt$binary_mainframe_id);

    VAR
      mainframe_id_ordinal: 1 .. dfc$max_number_of_mainframes,
      null_mainframe_id: pmt$binary_mainframe_id,
      server_found: boolean;

    dfp$locate_server_translation (server_mainframe_id, mainframe_id_ordinal,
          server_found);
    IF NOT server_found THEN
      { Search for a free slot and initialize it.
      null_mainframe_id.model_number := osc$cyber_180_model_unknown;
      null_mainframe_id.serial_number := 0;
      dfp$locate_server_translation (null_mainframe_id, mainframe_id_ordinal,
            server_found);
      IF server_found THEN
        dfv$defined_server_translation [mainframe_id_ordinal] :=
              server_mainframe_id;
      ELSE {  Too many mainframes
        i#program_error;
      IFEND;
    IFEND;
  PROCEND dfp$record_server_translation;
?? PUSH (LISTEXT := ON) ??
*copyc dfc$esm_allocation_constants
*copyc dfp$locate_server_translation
*copyc dfv$defined_server_translation
*copyc i#program_error
*copyc pmt$binary_mainframe_id
?? POP ??

