PROCEDURE establish_deadstart_catalog (
  status)

  VAR
    dsv$estdbs_catalog_specified: (XREF) boolean
    dsv$estdbs_created_catalog: (XREF) string 0 .. $max_name
    dsv$estdbs_existing_catalog: (XREF) file
    dsv$estdbs_ex_vsn: (XREF) string 1 .. 6
    dsv$estdbs_re_vsn: (XREF) string 1 ..6
    dsv$estdbs_tape_type: (XREF) key mt9$1600 mt9$6250 mt18$38000 keyend
    ignore_status: status
    local_status: status
  VAREND

  WHEN any_fault DO
    put_line l=' Establish_disk_based_system failed with:'
    put_line l=$string(osv$status)
    EXIT PROCEDURE WITH osv$status
  WHENEND

  "  If a deadstart catalog parameter was not specified, call create_ve_deadstart_catalog
  "  to create a deadstart catalog from the deadstart tape.

  IF NOT dsv$estdbs_catalog_specified THEN
    IF dsv$estdbs_ex_vsn = 'NULL' THEN
      create_ve_deadstart_catalog dc=$fname('$system.'//dsv$estdbs_created_catalog) rvsn=dsv$estdbs_re_vsn ..
            t=dsv$estdbs_tape_type status=local_status
      IF NOT local_status.normal THEN
        EXIT PROCEDURE WITH local_status
      IFEND
    ELSEIF dsv$estdbs_re_vsn = 'NULL' THEN
      create_ve_deadstart_catalog dc=$fname('$system.'//dsv$estdbs_created_catalog) evsn=dsv$estdbs_ex_vsn ..
            t=dsv$estdbs_tape_type status=local_status
      IF NOT local_status.normal THEN
        EXIT PROCEDURE WITH local_status
      IFEND
    ELSE
      create_ve_deadstart_catalog dc=$fname('$system.'//dsv$estdbs_created_catalog) evsn=dsv$estdbs_ex_vsn ..
            rvsn=dsv$estdbs_re_vsn t=dsv$estdbs_tape_type status=local_status
      IF NOT local_status.normal THEN
        EXIT PROCEDURE WITH local_status
      IFEND
    IFEND
  IFEND

  "  If a deadstart catalog parameter was not specified, then install the newly created deadstart
  "  catalog.  Otherwise, install the catalog specified.

  IF NOT dsv$estdbs_catalog_specified THEN
    install_ds_catalog_to_disk dc=$fname('$system.'//dsv$estdbs_created_catalog) status=local_status
  ELSE
    install_ds_catalog_to_disk dc=dsv$estdbs_existing_catalog status=local_status
  IFEND
  EXIT PROCEDURE WITH local_status
PROCEND establish_deadstart_catalog
