DCL Syntax Highlighter for GeSHi

I wrote DCL (DCL - Digital Command Language - shell for OpenVMS) highlighter for GeSHi. You can download it here: dcl.php.txt. To install it, find your GeSHi installation directory and copy the file into /geshi subdirectory where all the other languages are stored. Of course, rename it to dcl.php (strip the .txt extension).

A few examples:

$! This is an example of a DCL script
$!
$ on warning then gosub ERROR_HANDLER
$!
$ say :== write sys$output
$!
$ msg   = P1
$ count = P2
$!
$ loop_begin:
$   say "''count': This script says: ''msg'"
$   count = count - 1
$   if count .ge. 0 then goto loop_begin
$!
$ define/user/group LOGICAL "Some Value"
$!
$ say f$trnlnm(sys$login)
$!
$ sql
    UPDATE emploees
    SET salary = salary * 1,1
    WHERE age > 110;
 
  quit
$!
$ open/read/error=INPUT_FILE_ERROR dbd_movedb_input 'input_file'
$!
 

$!  © Copyright 1976, 2007 Hewlett-Packard Development Company, L.P.
$set = "set"
$set symbol /scope=(nolocal,noglobal)
$on control_y then continue
$on warning then continue
$goto after_logical_doc
$DECK
$!  ------------------------------------------------------------------
$!
$!  The following logical names are used to control this procedure.
$!
$!  LOGICAL NAME                VALUE           EFFECT
$!  --------------------------  ------------    ---------------------------
$!  I64VMS$PCSI_INSTALL_VERIFY  "NO" or blank   SET NOVERIFY in general
$!                                "YES" or other  SET VERIFY in general
$!
$!      The "install_verify" logical allows verify to be turned on for
$!      everything other than message initialization and display.
$!
$!  I64VMS$PCSI_MESSAGE_VERIFY  "NO" or blank   SET NOVERIFY for message
$!                                              initialization and display
$!                              "INIT"          SET VERIFY for message
$!                                              initialization and NOVERIFY
$!                                              for message display
$!                              "DISPLAY"       SET NOVERIFY for message
$!                                              initialization and VERIFY
$!                                              for message display
$!                              "BOTH" or other SET VERIFY for message
$!                                              initialization and display
$!
$!      The "message_verify" logical allows verify to be turned
$!      on "in general" by the "install_verify" logical, but to be turned
$!      off for message initialization and/or message display.
$!
$!      Message initialization will output several thousand lines if
$!      verify is on, so verify probably shouldn't be turned on unless
$!      necessary to debug message initialization.
$!
$!      Each message display (see symbol  "saylong") will display an extra
$!      100 lines or so in addition to the actual message, if verify is on,
$!      so verify probably shouldn't be turned on unless necessary to debug
$!      message display.
$!
$!
$!  I64VMS$PCSI_LOG_TRACE       "NO" or blank   install w/ /NOLOG
$!                              "LOG"           install w/ /LOG
$!                              "TRACE"         install w/ /NOLOG/TRACE
$!                              "BOTH" or other install w/ /LOG/TRACE
$!
$!      /LOG causes PCSI to output a message for each file operation it
$!          performs.
$!      /TRACE causes PCSI to output the text of each DCL command it sends
$!          to a subprocess for execution.  /TRACE is useful for displaying
$!          commands from non-interactive EXECUTE statements (and well as
$!          commands used to define logical names for the subprocess), but
$!          it provides no tracing output for the execution of interactive
$!          EXECUTE statements.
$!
$!  I64VMS$PCSI_EXECUTE_VERIFY  "NO" or blank   SET NOVERIFY for EXECUTE procs
$!                              "YES or other   SET VERIFY for EXECUTE procs
$!
$!      The "execute_verify" logical allows verify to be turned on or off
$!      for procedures executed by Product Definition Language "EXECUTE"
$!      statements in the OpenVMS Product Definition File.
$!
$!      NOTE: I64VMS$PCSI_EXECUTE_VERIFY is implemented in the
$!      SYS$UPDATE:I64VMS$PCSI_EX_*_*.COM procedures which are invoked by
$!      EXECUTE statements in the OpenVMS Product Definition File.
$!
$!
$!  PCSI$OTHER_PRODUCTS         Dev and Dir for kits for "other products"
$!
$!      This is used to locate the "other products" that are available for
$!      installation, including those (MOTIF,DECnet-Plus,DECnet Phase IV,UCX)
$!      which can be installed as part of the OpenVMS Platform installation.
$!
$!          If PCSI$OTHER_PRODUCTS is defined, we use it
$!          otherwise we use SYS$SYSDEVICE:[KITS.*]
$!
$!  ------------------------------------------------------------------
$EOD
$after_logical_doc:
$sav_ver = f$environment("VERIFY_PROCEDURE")
$vermode = f$edit(f$trnlnm("I64VMS$PCSI_INSTALL_VERIFY"),"UPCASE")
$if vermode .eqs. "" .or. vermode .eqs. "NO"
$then
$install_verify = "set noverify"
$else
$install_verify = "set verify"
$endif
$install_verify
$scratch_defined = 0
$saved_privs = f$getjpi("","procpriv")
$say = "write sys$output"
$sayblank = "write sys$output ""''blankline'"""
$saylong = "@SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM"
$sa_message = f$environment("MESSAGE")
$set message /facility /identification /severity /text
$target_modified = 0
$init_preserve = ""
$on control_y then goto y_exit
$on warning then goto err_exit
$set control = (T,Y)
$logmode = f$edit(f$trnlnm("I64VMS$PCSI_LOG_TRACE"),"UPCASE")
$if logmode .eqs. "" .or. logmode .eqs. "NO"
$then
$logmode = "NOLOG"
$else
$if logmode .eqs. "LOG"
$then
$logmode = "LOG"
$else
$if logmode .eqs. "TRACE"
$then
$logmode = "NOLOG/TRACE"
$else
$logmode = "LOG/TRACE"
$endif
$endif
$endif
$msgvermode = f$edit(f$trnlnm("I64VMS$PCSI_MESSAGE_VERIFY"),"UPCASE")
$if msgvermode .eqs. "" .or. msgvermode .eqs. "NO"
$then
$msginit_verify = "set noverify"
$msgdisp_verify = "set noverify"
$else
$if msgvermode .eqs. "INIT"
$then
$msginit_verify = "set verify"
$msgdisp_verify = "set noverify"
$else
$if msgvermode .eqs. "DISPLAY"
$then
$msginit_verify = "set noverify"
$msgdisp_verify = "set verify"
$else
$msginit_verify = "set verify"
$msgdisp_verify = "set verify"
$endif
$endif
$endif
$default_target_label = "I64SYS"
$temp_help = "SYS$SCRATCH:I64VMS$PCSI_TEMP_HELP.TEMP"
$pid = f$getjpi("","PID")
$pcf_option = ""
$msginit_verify
$if f$search("SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM") .eqs. ""
$then
$type sys$input
$DECK
 
          ************************************************************
          *                                                          *
          *  SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM not found   *
          *                                                          *
          *  This disk or CDrom is bad.                              *
          *  Please use another disk or CDrom to Install or to       *
          *  Upgrade OpenVMS AXP.                                    *
          *                                                          *
          ************************************************************
 
$EOD
$goto 0_exit
$else
$close /error=020_message_open I64VMS$messages
$020_message_open:
$open /read I64VMS$messages -
SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM
$020_message_read:
$read /error=err_exit /end=020_message_end I64VMS$messages inpt
$inpt = f$edit(inpt,"TRIM,COLLAPSE,UPCASE")
$if f$extract(0,9,inpt) .nes. "$!MESSAGE" then goto 020_message_read
$inpt = inpt - "$!MESSAGE"
$'inpt'
$goto 020_message_read
$020_message_end:
$close I64VMS$messages
$endif
$install_verify
$if f$getsyi("arch_name") .nes. "IA64"
$then
$msgdisp_verify
$saylong "notvmsaxp"
$install_verify
$goto 0_exit
$endif
$if f$getsyi("STARTUP_P1") .nes. "INST"
$then
$msgdisp_verify
$saylong "notdistcd"
$install_verify
$goto 0_exit
$endif
$req_privs = "CMKRNL,SYSPRV,VOLPRO,BYPASS,LOG_IO,OPER"
$saved_privs = f$setprv(req_privs)
$if .not. f$privilege(req_privs)
$then
$msgdisp_verify
$saylong "insfprivs"
$install_verify
$say "      ''req_privs'"
$sayblank
$goto 0_exit
$endif
$directory /size /output=nl: SYS$SYSDEVICE:[VMS$COMMON...]
$prod_ver_file = f$search -
("SYS$SYSDEVICE:[VMS$COMMON]HP-I64VMS-VMS-*-2.PCSI$DESCRIPTION")
$if f$locate("V0105",prod_ver_file) .lt. f$length(prod_ver_file) then -
prod_ver_file = f$search -
("SYS$SYSDEVICE:[VMS$COMMON]HP-I64VMS-VMS-*-2.PCSI$DESCRIPTION")
$if prod_ver_file .eqs. ""
$then
$if f$search -
("SYS$SYSDEVICE:[SYS0]HP-I64VMS-VMS-*-2.PCSI$DESCRIPTION") .gts. ""
$then
$msgdisp_verify
$saylong "prodinsys0"
$install_verify
$else
$msgdisp_verify
$saylong "prodnotfound"
$install_verify
$endif
$goto 0_exit
$endif
$prod_ver_name = -
prod_ver_file - "SYS$SYSDEVICE:[VMS$COMMON]HP-I64VMS-VMS-" -
- "-2.PCSI$DESCRIPTION"
$prod_ver_name = f$element(0,";",prod_ver_name)
$prod_ver_work = f$element(3,"-",prod_ver_file)
$prod_ver_vis = f$extract(0,1,prod_ver_work)
$if f$extract(1,1,prod_ver_work) .nes. "0" then -
prod_ver_vis = prod_ver_vis + f$extract(1,1,prod_ver_work)
$prod_ver_vis = prod_ver_vis + f$extract(2,1,prod_ver_work)
$prod_ver_vis = prod_ver_vis + "."
$if f$extract(3,1,prod_ver_work) .nes. "0" then -
prod_ver_vis = prod_ver_vis + f$extract(3,1,prod_ver_work)
$prod_ver_vis = prod_ver_vis + f$extract(4,1,prod_ver_work)
$prod_ver_work = f$element(4,"-",prod_ver_file)
$if prod_ver_work .nes. "" then -
prod_ver_vis = prod_ver_vis + "-" + prod_ver_work
$part_ver_vis = prod_ver_vis
$prod_plat_file = f$element("0","-",prod_ver_file) + "-" + -
f$element("1","-",prod_ver_file) + "-" + -
"OPEN" + f$element("2","-",prod_ver_file) + "-" + -
f$element("3","-",prod_ver_file) + "-" + -
f$element("4","-",prod_ver_file) + "-5"
$prod_plat_help = prod_plat_file + ".PCSI$TLB"
$prod_plat_help = f$search(prod_plat_help)
$prod_plat_file = prod_plat_file + ".PCSI$DESCRIPTION"
$prod_plat_file = f$search(prod_plat_file)
$if f$trnlnm("PCSI$OTHER_PRODUCTS") .eqs. ""
$then
$other_prods = "SYS$SYSDEVICE:[KITS.*]"
$else
$other_prods = -
"SYS$SYSDEVICE:[KITS.*]," + f$trnlnm("PCSI$OTHER_PRODUCTS")
$endif
$030_check_mem:
$if f$search("SYS$UPDATE:I64VMS$PCSI_CHECK_MEM.COM") .eqs. "" -
then goto 040_start
$msgdisp_verify
$on warning then continue
$@SYS$UPDATE:I64VMS$PCSI_CHECK_MEM.COM "''prod_ver_vis'"
$mem$chk = $severity
$on warning then goto err_exit
$install_verify
$if mem$chk .eq. 1 then goto 040_start
$if mem$chk .eq. 0
$then
$030_below_min:
$read /error=030_below_min sys$output in$ -
/prompt = "''wanttocont'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto y_exit
$if ans .eq. helpansw then goto 030_check_mem
$if ans .eq. noansw then goto terminate_exit
$if ans .ne. yesansw
$then
$say "''yesorno'"
$goto 030_below_min
$endif
$endif
$if mem$chk .eq. 2
$then
$030_below_rec:
$read /error=030_below_rec sys$output in$ -
/prompt = "''wanttocontno'"
$if in$ .eqs. "" then in$ = novalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto y_exit
$if ans .eq. helpansw then goto 030_check_mem
$if ans .eq. noansw then goto terminate_exit
$if ans .ne. yesansw
$then
$say "''yesorno'"
$goto 030_below_rec
$endif
$endif
$040_start:
$set noon
$define/nolog/user pcsi$source 'other_prods'
$define/user sys$output nl:
$define/user sys$error nl:
$product find * /kit=type=patch
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "patchpresent"
$install_verify
$define/nolog/user pcsi$source 'other_prods'
$product find * /kit=type=patch
$msgdisp_verify
$saylong "patchconsult"
$install_verify
$read sys$output /error=040_return inpt /prompt = "''returncont'"
$040_return:
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT FIND" "040_START" -
"''f$string(sav_status)'"
$set noon
$set verify
$define/nolog/user pcsi$source 'other_prods'
$product find * /kit=type=patch
$sho sym $status
$install_verify
$set on
$040_ask:
$sayblank
$read /error=040_ask sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto y_exit
$if ans .eq. helpansw then goto 040_start
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 040_ask
$endif
$endif
$endif
$msgdisp_verify
$saylong "introdefaults"
$install_verify
$045_start:
$msgdisp_verify
$saylong "initpreserv"
$install_verify
$050_gettype:
$sayblank
$read /error=050_gettype /end=err_exit sys$output in$ -
/prompt = "''initpreserv'"
$if in$ .eqs. "" then in$ = presvalue
$msgdisp_verify
$saylong "Checkinitpreserv" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto y_exit
$if ans .eq. helpansw then goto 045_start
$if ans .eq. yesansw
$then
$init_preserve = "I"
$else
$if ans .eq. noansw
$then
$init_preserve = "P"
$else
$say "''invresponse'"
$goto 050_gettype
$endif
$endif
$060_target:
$close /error= 060_other_open I64VMS$plattmp
$060_other_open:
$close /error=060_pcf_open I64VMS$pcfout
$060_pcf_open:
$if scratch_defined
$then
$on control_y then continue
$deassign/job sys$scratch
$scratch_defined = 0
$on control_y then goto y_exit
$endif
$if f$trnlnm("PCSI$MAIN","LNM$JOB") .gts. "" then deassign/job PCSI$MAIN
$if f$trnlnm("PCSI$SHR","LNM$JOB")  .gts. "" then deassign/job PCSI$SHR
$set command SYS$UPDATE:PCSI.CLD
$tar$pcsi_cld := SYS$UPDATE:PCSI.CLD
$pcsi$usenew = 0
$pcsi$keepnew = 0
$msgdisp_verify
$saylong "targetdisk"
$install_verify
$060_target_b:
$If f$type(target_disk) .nes. "" .and. target_modified .gt. 0
$then
$msgdisp_verify
$saylong "mayneedtorestoreprior" "''target_disk'"
$install_verify
$if target_modified .eq. 1
$then
$msgdisp_verify
$saylong "shouldbeable" "''install_upgrade'"
$install_verify
$else
$msgdisp_verify
$saylong "recommendrestore" "''install_upgrade'"
$install_verify
$endif
$endif
$If f$type(target_disk) .nes. "" then delete/symbol target_disk
$target_modifed = 0
$if f$trnlnm("I64VMS$pcsi_target_default") .eqs. ""
$then
$target_default = ""
$else
$target_default = "[''f$trnlnm("I64VMS$pcsi_target_default")'] "
$endif
$sayblank
$read /error=060_target_b sys$output inpt -
/prompt = "''targetdisk'"
$if inpt .eqs. "" then -
inpt = f$trnlnm("I64VMS$pcsi_target_default")
$target_disk = f$edit(inpt,"TRIM,UPCASE")
$if target_disk .eqs. backvalue then goto 050_gettype
$if target_disk .eqs. helpvalue
$then
$sho device d
$sayblank
$goto 060_target_b
$endif
$if target_disk .eqs. ""
$then
$say "''tarisblank'"
$goto 060_target_b
$endif
$If f$length(target_disk) .gt. 128
$then
$msgdisp_verify
$saylong "tarnotval"
$install_verify
$goto 060_target_b
$endif
$if ( (f$locate("!",target_disk) .lt. f$length(target_disk) ) -
.or. (f$locate("/",target_disk) .lt. f$length(target_disk) ) )
$then
$msgdisp_verify
$saylong "tarnotval"
$install_verify
$goto 060_target_b
$endif
$if f$locate(" ",target_disk) .lt. f$length(target_disk)
$then
$msgdisp_verify
$saylong "tarnotval"
$install_verify
$goto 060_target_b
$endif
$if f$trnlnm("''target_disk'") .gts. ""
$then
$show log 'target_disk'
$target_disk = f$trnlnm("''target_disk'")
$endif
$if target_disk .eqs. target_disk - ":" then -
target_disk := 'target_disk':
$if f$locate(":",target_disk) .lt. f$length(target_disk)-1
$then
$msgdisp_verify
$saylong "tarnotval"
$install_verify
$goto 060_target_b
$endif
$if .not. f$getdvi(target_disk,"exists")
$then
$target_no_colon = target_disk - ":"
$mcr sysman io autoconfigure /select=('target_no_colon')
$if .not. f$getdvi(target_disk,"exists")
$then
$msgdisp_verify
$saylong "tarnotexist"
$install_verify
$goto 060_target_b
$endif
$endif
$if f$getdvi(target_disk,"devclass") .ne. 1
$then
$msgdisp_verify
$saylong "tarnotdisk"
$install_verify
$goto 060_target_b
$endif
$if f$getdvi(target_disk,"devnam") .eqs. f$getdvi("SYS$SYSDEVICE","devnam")
$then
$msgdisp_verify
$saylong "tarissys"
$install_verify
$goto 060_target_b
$endif
$if f$getdvi(target_disk,"MNT") then dismount/nounload 'target_disk'
$if f$getdvi(target_disk,"swl")
$then
$msgdisp_verify
$saylong "tarwrtlck"
$install_verify
$goto 060_target_b
$endif
$define/job/nolog I64VMS$pcsi_target_default "''target_disk'"
$if inpt .eqs. ""
$then
$if f$trnlnm("I64VMS$pcsi_target_default") .nes. "" -
then deassign/job I64VMS$pcsi_target_default
$else
$define/job/nolog I64VMS$pcsi_target_default "''inpt'"
$endif
$define /nolog pcsi$sysdevice 'target_disk'
$define /nolog pcsi$destination 'target_disk'[VMS$COMMON]
$on control_y then continue
$define /nolog /job sys$scratch 'target_disk'[000000]
$scratch_defined = 1
$on control_y then goto y_exit
$070_mount:
$close /error=070_m_1 I64VMS$plattmp
$delete SYS$SCRATCH:I64VMS$PLAT.TMP;*
$070_m_1:
$close /error=070_m_2 I64VMS$pcfout
$delete SYS$SCRATCH:VMS$DEF'pid'.PCF;*
$070_m_2:
$if init_preserve .eqs. "I"
$then
$root_name = "SYS0"
$define/nolog pcsi$specific 'target_disk'[SYS0.]
$if .not. f$getdvi(target_disk,"MNT")
$then
$set noon
$define /nolog /user sys$output nl:
$define /nolog /user sys$error nl:
$mount /noassist /over=id 'target_disk'
$sav_status = $status
$set on
$if .not. sav_status
$then
$set noon
$define /nolog /user sys$output nl:
$define /nolog /user sys$error nl:
$mount /noassist /foreign 'target_disk'
$sav_status = $status
$set on
$if .not. sav_status
$then
$say f$message(sav_status)
$goto 060_target_b
$else
$target_label = ""
$goto 070_mount_c
$endif
$endif
$endif
$target_label = f$getdvi(target_disk,"VOLNAM")
$if target_label .gts. " "
$then
$if f$search("DISK$''target_label':[000000]000000.DIR") .eqs. ""
$then
$msgdisp_verify
$saylong "tardisklab"
$saylong "tarlabbad"
$install_verify
$goto 070_mount_c
$else
$msgdisp_verify
$saylong "tardisklab"
$install_verify
$endif
$else
$msgdisp_verify
$saylong "tarnolab"
$install_verify
$goto 070_mount_c
$endif
$070_mount_a:
$sayblank
$read /error=070_mount_a sys$output in$ -
/prompt = "''keepthislab'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw then goto 070_mount
$if ans .eq. yesansw then goto 070_mount_c2
$if ans .eq. noansw then goto 070_mount_c
$say "''yesorno'"
$goto 070_mount_a
$070_mount_c:
$sayblank
$read /error=070_mount_c sys$output inpt -
/prompt = "''entervollab'"
$inpt = f$edit(inpt,"TRIM,UPCASE")
$if inpt .eqs. backvalue then goto 070_mount_a
$if inpt .eqs. helpvalue then goto 070_mount
$if inpt .eqs. "" then inpt = default_target_label
$if inpt .eqs. target_label
$then
$say "''samelabel'"
$goto 070_mount_a
$endif
$vol_ln = f$length(inpt)
$if vol_ln .gt. 12
$then
$say "''namexc12'"
$goto 070_mount_c
$endif
$val_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_-"
$num_chars = f$length(val_chars)
$chr_no = 0
$070_mount_c1:
$if f$locate(f$extract(chr_no,1,inpt),val_chars) .ge. num_chars
$then
$say "''labelinvchr'"
$goto 070_mount_c
$endif
$chr_no = chr_no + 1
$if chr_no .lt. vol_ln then goto 070_mount_c1
$if f$trnlnm("DISK$''inpt'") .nes. ""
$then
$msgdisp_verify
$saylong "otherdisklab"
$install_verify
$show log DISK$'inpt'
$goto 070_mount_c
$endif
$target_label = inpt
$070_mount_c2:
$msgdisp_verify
$if "I64" .eqs. "I64"
$then
$saylong "odsinitw"
$else
$saylong "odsinit"
$endif
$install_verify
$070_mount_c3:
$sayblank
$read /error=070_mount_c3 sys$output in$ -
/prompt = "''ods2or5'"
$ods_level = f$edit(in$,"TRIM,UPCASE") - "ODS" - "-"
$if ods_level .eqs. helpvalue
$then
$msgdisp_verify
$saylong "odsinfo"
$if "I64" .eqs. "I64"
$then
$saylong "odsinfow"
$endif
$install_verify
$goto 070_mount_c3
$endif
$if ods_level .eqs. backvalue then goto 070_mount
$if ( (ods_level .nes. "2") .and. (ods_level .nes. "5") )
$then
$msgdisp_verify
$say "''invresponse'"
$install_verify
$goto 070_mount_c2
$endif
$if ods_level .eqs. "5"
$then
$msgdisp_verify
$if "I64" .eqs. "I64"
$then
$saylong "hardlinksiw"
$else
$saylong "hardlinksi"
$endif
$install_verify
$070_mount_c4:
$read /error=070_mount_c4 sys$output in$ -
/prompt = "''enabhard'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount_c3
$if ans .eq. helpansw
$then
$saylong "hardlinksinfo"
$goto 070_mount_c4
$endif
$if ans .eq. yesansw
$then
$ods_vol = "/VOLUME=HARDLINKS"
$goto 070_mount_c5
$endif
$if ans .eq. noansw
$then
$ods_vol = ""
$goto 070_mount_c5
$endif
$say "''yesorno'"
$goto 070_mount_c4
$else
$ods_vol = ""
$endif
$070_mount_c5:
$msgdisp_verify
$saylong "choosetoinstal" "''ods_level'"
$install_verify
$070_mount_e:
$sayblank
$read /error=070_mount_e sys$output in$ -
/prompt = "''isthisok'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount_c2
$if ans .eq. helpansw then goto 070_mount
$if ans .eq. noansw then goto 070_mount
$if ans .ne. yesansw
$then
$say "''yesorno'"
$goto 070_mount_e
$endif
$say "''initandmnt'"
$if f$getdvi(target_disk,"MNT") then dismount/nounload 'target_disk'
$target_modified = 2
$define /nolog /user sys$output nl:
$define /nolog /user sys$error nl:
$set noon
$initialize /system /limit /headers=150000 /structure='ods_level' -
'ods_vol' 'target_disk' 'target_label'
$if .not. $status
$then
$msgdisp_verify
$saylong "proderror" "INITIALIZE /SYSTEM" "070_MOUNT_E" -
"''sav_status'"
$set noon
$set verify
$initialize /system /limit /headers=150000 /structure='ods_level' -
'ods_vol' 'target_disk' 'target_label'
$install_verify
$msgdisp_verify
$sayblank
$read /error=070_filesinspec_c sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount_c2
$if ans .eq. helpansw then goto 070_mount_e
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 070_mount_e
$endif
$endif
$set noon
$define /nolog /user sys$output nl:
$define /nolog /user sys$error nl:
$mount /noassist 'target_disk' 'target_label'
$sav_status = $status
$set on
$if .not. sav_status
$then
$say f$message(sav_status)
$goto 060_target_b
$endif
$if ( "I64" .nes. "I64" ) then goto after_diag_partn
$If f$trnlnm("AXPVMS$PCSI_SKIP_DIAG_PARTN") then goto after_diag_partn
$if f$search("''target_disk'[VMS$COMMON]SYSMAINT.DIR") .eqs. "" -
then create /dir 'target_disk'[VMS$COMMON.SYSMAINT]
$if f$search("''target_disk'[VMS$COMMON.SYSMAINT]SYS$DIAGNOSTICS.SYS") -
.nes. "" then goto after_diag_partn
$define /nolog /user DIAG$FILE -
"''target_disk'[VMS$COMMON.SYSMAINT]SYS$DIAGNOSTICS.SYS"
$define /nolog /user SYS$OUTPUT nl:
$run SYS$SYSTEM:EFI$CP
$DECK
init /create /size=600000 /contiguous /device_alias=xyz: DIAG$FILE DIAGNOSTICS
$EOD
$set file/nomove -
'target_disk'[VMS$COMMON.SYSMAINT]SYS$DIAGNOSTICS.SYS
$AFTER_DIAG_PARTN:
$install_upgrade = "I"
$same_version = 0
$update_npag_bap_max_pa = 0
$else
$if f$getdvi(target_disk,"MNT") then dismount 'target_disk'
$set noon
$define /nolog /user sys$output nl:
$define /nolog /user sys$error nl:
$mount /noassist /over=id 'target_disk'
$sav_status = $status
$set on
$if .not. sav_status
$then
$say f$message(sav_status)
$goto 060_target
$endif
$target_label = f$getdvi(target_disk,"VOLNAM")
$if f$getdvi(target_disk,"swl")
$then
$dismount 'target_disk'
$define sys$output nl:
$define sys$error nl:
$pipe mount /noassist /over=id 'target_disk' <PIPE> -
search sys$input "%MOUNT-W-VOLSHDWMEM" /out=nl:
$sav_status = $status
$deassign sys$output
$deassign sys$error
$if sav_status .eqs. "%X10000001"
$then
$msgdisp_verify
$saylong "tarshadow"
$install_verify
$goto 060_target
$endif
$msgdisp_verify
$saylong "tarwrtlck"
$install_verify
$goto 060_target
$endif
$if f$search("''target_disk'[SYSE.SYSEXE]STANDALON.EXE") .eqs. "" -
then goto 070_filesinspec_0
$set file /prot=s:rwed 'target_disk'[SYSE]*.DIR;*
$set file /remove 'target_disk'[SYSE]SYSCOMMON.DIR;*
$if f$search("''target_disk'[SYSE.SYSEXE]*.*") .nes. "" then -
delete 'target_disk'[SYSE.SYSEXE]*.*;*
$if f$search("''target_disk'[SYSE.SYS$LDR]*.*") .nes. "" then -
delete 'target_disk'[SYSE.SYS$LDR]*.*;*
$if f$search("''target_disk'[SYSE.SYSLIB]*.*") .nes. "" then -
delete 'target_disk'[SYSE.SYSLIB]*.*;*
$if f$search("''target_disk'[SYSE]SYSEXE.DIR") .nes. "" then -
delete 'target_disk'[SYSE]SYSEXE.DIR;*
$if f$search("''target_disk'[SYSE]SYS$LDR.DIR") .nes. "" then -
delete 'target_disk'[SYSE]SYS$LDR.DIR;*
$If F$search("''Target_disk'[SYSE]SYSLIB.DIR") .nes. "" then -
delete 'target_disk'[SYSE]SYSLIB.DIR;*
$if f$search("''target_disk'[000000]SYSE.DIR") .nes. ""
$then
$set file /prot=s:rwed 'target_disk'[000000]SYSE.DIR;*
$delete 'target_disk'[000000]SYSE.DIR;*
$endif
$070_filesinspec_0:
$spec_found = 0
$spec_count = 25
$070_filesinspec_a:
$spec_file = f$search("''target_disk'[SYS*.SYS*]*.EXE;*",1)
$if spec_file .eqs. "" then goto 070_filesinspec_b
$v1 = f$locate(".",spec_file) + 1
$v2 = f$locate(";",spec_file) - v1
$xfile = "SYS$SYSDEVICE:[VMS$COMMON." + f$extract(v1,v2,spec_file)
$kit_file = f$search("''xfile'",2)
$if ( (f$locate("_MON.EXE",spec_file) .lt. f$length(spec_file) ) -
.and. ( kit_file .eqs. "" ) )
$then
$xfile = xfile - "_MON"
$kit_file = f$search("''xfile'",2)
$endif
$if kit_file .nes. ""
$then
$if spec_found .eq. 0
$then
$msgdisp_verify
$saylong "filesinspec"
$install_verify
$spec_found = 1
$endif
$if spec_count .gt. 19
$then
$sayblank
$read sys$output /error=070_returna inpt -
/prompt = "''returnfile'"
$070_returna:
$say "''sysinspec'"
$spec_count = 0
$endif
$spec_count = spec_count + 1
$say "        ''spec_file'"
$endif
$goto 070_filesinspec_a
$070_filesinspec_b:
$spec_file = f$search("''target_disk'[SYS*.SYS*]*.COM",1)
$if spec_file .eqs. "" then goto 070_filesinspec_c
$if f$locate("I64VMS$PCSI_EX_REM_PROCESSOR.COM",spec_file) -
.lt. f$length(spec_file) then goto 070_filesinspec_b
$v1 = f$locate(".",spec_file) + 1
$v2 = f$locate(";",spec_file) - v1
$xfile = "SYS$SYSDEVICE:[VMS$COMMON." + f$extract(v1,v2,spec_file)
$kit_file = f$search("''xfile'",2)
$if kit_file .nes. ""
$then
$xfile = "[" + xfile - "SYS$SYSDEVICE:[VMS$COMMON."
$define/user sys$output nl:
$define/user sys$error nl:
$search 'prod_ver_file' "''xfile'"," write " /match=and
$if $status .ne. 1
$then
$if spec_found .eq. 0
$then
$msgdisp_verify
$saylong "filesinspec"
$install_verify
$spec_found = 1
$endif
$if spec_count .gt. 20
$then
$sayblank
$read sys$output /error=070_returnb inpt -
/prompt = "''returnfile'"
$070_returnb:
$say "''sysinspec'"
$spec_count = 0
$endif
$spec_count = spec_count + 1
$say "        ''spec_file'"
$endif
$endif
$goto 070_filesinspec_b
$070_filesinspec_c:
$if spec_found .ne. 0
$then
$sayblank
$read /error=070_filesinspec_c sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw then goto 070_filesinspec_0
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 070_filesinspec_c
$endif
$endif
$070_monexefiles_0:
$monexe_found = 0
$MONEXE_count = 25
$070_monexefiles_a:
$monexe_file = f$search("''target_disk'[VMS$COMMON.SYS*]*_MON.EXE;*",1)
$if monexe_file .eqs. "" then goto 070_monexefiles_b
$v1 = f$locate(".",monexe_file) + 1
$v2 = f$locate(";",monexe_file) - v1
$xfile = "SYS$SYSDEVICE:[VMS$COMMON." + f$extract(v1,v2,monexe_file)
$kit_file = f$search("''xfile'",2)
$if kit_file .nes. "" then goto 070_monexefiles_a
$xfile = xfile - "_MON"
$kit_file = f$search("''xfile'",2)
$if kit_file .eqs. "" then  goto 070_monexefiles_a
$if monexe_found .eq. 0
$then
$msgdisp_verify
$saylong "monexefiles"
$install_verify
$monexe_found = 1
$endif
$if monexe_count .gt. 19
$then
$sayblank
$read sys$output /error=070_returnm inpt -
/prompt = "''returnfile'"
$070_returnm:
$say "''monexefound'"
$monexe_count = 0
$endif
$monexe_count = monexe_count + 1
$say "        ''monexe_file'"
$goto 070_monexefiles_a
$070_monexefiles_b:
$if monexe_found .ne. 0
$then
$sayblank
$read /error=070_monexefiles_b sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 070_monexefiles_0
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 070_monexefiles_b
$endif
$endif
$if f$parse("''target_disk'[VMS$COMMON]") .eqs. ""
$then
$install_upgrade = "I"
$define/nolog pcsi$specific 'target_disk'[SYS0.]
$else
$if f$search("''target_disk'[VMS$COMMON.SYSEXE]VMB.EXE") .gts. ""
$then
$msgdisp_verify
$saylong "vaxvmsfound"
$install_verify
$goto 050_gettype
$endif
$070_noapb_a:
$if ( "I64" .eqs. "ALPHA" ) .and. -
( f$search("''target_disk'[VMS$COMMON.SYSEXE]APB.EXE") ) -
.nes. "" then goto 070_after_apb
$if ( "I64" .eqs. "I64" ) .and. -
( f$search("''target_disk'[VMS$COMMON.SYS$LDR]SYS$EFI.SYS") ) -
.nes. "" then goto 070_after_apb
$msgdisp_verify
$saylong "apbnotfound"
$install_verify
$070_noapb_b:
$sayblank
$read /error=070_noapb_b sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 050_gettype
$if ans .eq. helpansw then goto 070_noapb_a
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 070_noapb_b
$endif
$070_after_apb:
$install_upgrade = "U"
$top_exe = f$search("''target_disk'[SYSEXE]SYSBOOT.EXE")
$if top_exe .eqs. "" then goto 070_aftertop
$real_exe = f$search("''target_disk'[VMS$COMMON.SYSEXE]SYSBOOT.EXE")
$top_fid = "TOP_FID"
$real_fid = "REAL_FID"
$define/nolog sys$output nl:
$define/nolog sys$error nl:
$set noon
$top_fid = f$file_attributes(top_exe,"fid")
$real_fid = f$file_attributes(real_exe,"fid")
$set on
$deassign sys$output
$deassign sys$error
$if top_fid .eqs. real_fid
$then
$set file/remove 'top_exe'
$else
$define/nolog sys$output nl:
$define/nolog sys$error nl:
$set noon
$delete/nolog 'top_exe'
$if .not. $status then set file/remove 'top_exe'
$set on
$deassign sys$output
$deassign sys$error
$endif
$070_aftertop:
$if f$search("''target_disk'[000000]SYSEXE.DIR") .nes. "" -
.and. f$search("''target_disk'[SYSEXE]*.*") .eqs. "" then -
delete/nolog 'target_disk'[000000]SYSEXE.DIR;
$root_dir = f$search("",1)
$070_root_loop:
$root_dir = f$search("''target_disk'[000000]SYS*.DIR",1)
$if root_dir .eqs. "" then goto 070_root_error
$root_name = f$parse("''root_dir'",,,"NAME","SYNTAX_ONLY")
$if f$parse("''target_disk'[''root_name'.SYSCOMMON]") .gts. "" -
.and. f$search("''target_disk'[''root_name'.SYSEXE]STANDALON.EXE") -
.eqs. ""
$then
$define/nolog pcsi$specific 'target_disk'['root_name'.]
$goto 070_undo_check
$else
$goto 070_root_loop
$endif
$070_root_error:
$msgdisp_verify
$saylong "nosysroots"
$install_verify
$goto 050_gettype
$endif
$070_undo_check:
$undo$file = f$search("''target_disk'[PCSI$UNDO_*]x.x",3)
$undo$file = -
f$search("''target_disk'[PCSI$UNDO_*]PCSI$UNDO_OBJECT_DATA.DAT",3)
$if undo$file .eqs. "" then goto 070_undo_exit
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$set noon
$pipe product show recovery_data /remote <PIPE> -
search sys$input "VMS" <PIPE> -
search sys$input "AXPVMS VMS ","I64VMS VMS " /match=nor
$sav_status = $status .and. %X0FFFFFFF
$set on
$deassign sys$error
$deassign sys$output
$if sav_status .eqs. %X08D78053
$then
$define /user /nolog sys$error nl:
$define /user /nolog sys$output nl:
$product delete recovery_data /remote /options=noconfirm
$goto 070_undo_exit
$endif
$if sav_status .eqs. %X00000001
$then
$msgdisp_verify
$saylong "recovery_data"
$install_verify
$product delete recovery_data /remote
$goto 070_undo_exit
$endif
$msgdisp_verify
$saylong "proderror" "PIPE PRODUCT SHOW RECOVERY" "070_UNDO_CHECK" -
"''sav_status'"
$set noon
$set verify
$pipe product show recovery_data /remote <PIPE> -
search sys$input "VMS" <PIPE> -
search sys$input "AXPVMS VMS ","I64VMS VMS " /match=nor
$install_verify
$set on
$read /error=070_undo_check sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 050_gettype
$if ans .eq. helpansw then goto 070_undo_check
$if ans .eq. yesansw then goto terminate_exit
$if ans .eq. noansw then goto 070_mount_g
$say "''yesorno'"
$goto 070_undo_check
$070_undo_exit:
$undo$file = f$search("''target_disk'[PCSI$UNDO_*]x.x",3)
$undo$file = -
f$search("''target_disk'[PCSI$UNDO_*]PCSI$UNDO_OBJECT_DATA.DAT",3)
$if undo$file .eqs. "" then goto 070_mount_g
$msgdisp_verify
$saylong "recovery_abort"
$install_verify
$goto 0_exit
$070_mount_g:
$if target_label .gts. " "
$then
$msgdisp_verify
$saylong "tardisklab"
$install_verify
$if f$search("disk$''target_label':[000000]000000.DIR") .eqs. ""
$then
$msgdisp_verify
$saylong "tarlabbad"
$install_verify
$goto 070_mount_j
$endif
$else
$msgdisp_verify
$saylong "tarnolab"
$install_verify
$goto 070_mount_j
$endif
$070_mount_h:
$sayblank
$read /error=070_mount_h sys$output in$ -
/prompt = "''keepthislab'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw then goto 070_mount
$if ans .eq. yesansw then goto 070_structure
$if ans .eq. noansw then goto 070_mount_j
$say "''yesorno'"
$goto 070_mount_h
$070_mount_j:
$sayblank
$read /error=070_mount_j sys$output inpt -
/prompt = "''entervollab'"
$inpt = f$edit(inpt,"TRIM,UPCASE")
$if inpt .eqs. backvalue then goto 070_mount_g
$if inpt .eqs. helpvalue then goto 070_mount
$if inpt .eqs. "" then inpt = default_target_label
$if inpt .eqs. target_label
$then
$say "''samelabel'"
$goto 070_mount_h
$endif
$vol_ln = f$length(inpt)
$if vol_ln .gt. 12
$then
$say "''namexc12'"
$goto 070_mount_j
$endif
$val_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_-"
$num_chars = f$length(val_chars)
$chr_no = 0
$070_mount_j1:
$if f$locate(f$extract(chr_no,1,inpt),val_chars) .ge. num_chars
$then
$say "''labelinvchr'"
$goto 070_mount_j
$endif
$chr_no = chr_no + 1
$if chr_no .lt. vol_ln then goto 070_mount_j1
$if f$trnlnm("DISK$''inpt'") .nes. ""
$then
$msgdisp_verify
$saylong "otherdisklab"
$install_verify
$show log DISK$'inpt'
$goto 070_mount_j
$endif
$target_label = inpt
$target_modified = 1
$set volume 'target_disk' /label='target_label'/nolog
$dismount/nounload 'target_disk'
$mount_count = 0
$070_mount_remount:
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$mount/noassist 'target_disk' 'target_label'
$sav_status = $status
$if .not. sav_status
$then
$if mount_count .gt. 99
$then
$mount/noassist 'target_disk' 'target_label'
$goto err_exit
$endif
$mount_count = mount_count + 1
$goto 070_mount_remount
$endif
$set on
$070_structure:
$if f$getdvi(target_disk,"acptype") .nes. "F11V2" -
then goto 070_mount_l
$msgdisp_verify
$if "I64" .eqs. "I64"
$then
$saylong "odsupgw"
$else
$saylong "odsupg"
$endif
$install_verify
$070_structure2:
$sayblank
$read /error=070_structure2 sys$output in$ -
/prompt = "''odscvt'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw
$then
$msgdisp_verify
$saylong "odsinfo"
$if "I64" .eqs. "I64"
$then
$saylong "odsinfow"
$endif
$install_verify
$goto 070_structure2
$endif
$if ans .eq. yesansw
$then
$set volume 'target_disk' /structure_level=5 /nolog
$msgdisp_verify
$saylong "ods5to2"
$install_verify
$goto 070_structure3
$endif
$if ans .eq. noansw
$then
$goto 070_mount_l
$endif
$say "''yesorno'"
$goto 070_structure2
$070_structure3:
$msgdisp_verify
$if "I64" .eqs. "I64"
$then
$saylong "hardlinksuw"
$else
$saylong "hardlinksu"
$endif
$saylong "hardlinksu"
$install_verify
$070_structure4:
$read /error=070_structure4 sys$output in$ -
/prompt = "''enabhard'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw
$then
$msgdisp_verify
$saylong "hardlinksinfo"
$install_verify
$goto 070_structure4
$endif
$if ans .eq. yesansw
$then
$set volume 'target_disk' /volume=hardlinks /nolog
$msgdisp_verify
$saylong "Hardenab"
$install_verify
$dismount/nounload 'target_disk'
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$mount/noassist 'target_disk' 'target_label'
$analyze/disk_structure/repair/nooutput/progress=1000 'target_disk'
$goto 070_mount_l
$endif
$if ans .eq. noansw
$then
$goto 070_mount_l
$endif
$say "''yesorno'"
$goto 070_structure2
$endif
$070_mount_l:
$if init_preserve .eqs. "P"
$then
$if install_upgrade .eqs. "I"
$then
$msgdisp_verify
$saylong "preserveinst"
$install_verify
$same_version = 0
$update_npag_bap_max_pa = 0
$else
$msgdisp_verify
$saylong "preserveupgd"
$install_verify
$tar_pcsi_ver = ""
$if f$trnlnm("pcsi$ver","LNM$JOB") .gts. "" then -
deassign/job pcsi$ver
$if f$search("''target_disk'[VMS$COMMON.SYSEXE]PCSI$MAIN.EXE") -
.eqs. ""
$then
$goto 070_no_tar_pcsi
$endif
$if f$search("''target_disk'[VMS$COMMON.SYSLIB]PCSI$SHR.EXE") -
.eqs. ""
$then
$goto 070_no_tar_pcsi
$endif
$if f$search("''target_disk'[VMS$COMMON.SYSUPD]PCSI.CLD") -
.eqs. ""
$then
$goto 070_no_tar_pcsi
$endif
$define/job pcsi$main 'target_disk'[VMS$COMMON.SYSEXE]PCSI$MAIN.EXE
$define/job pcsi$shr 'target_disk'[VMS$COMMON.SYSLIB]PCSI$SHR.EXE
$set command 'target_disk'[VMS$COMMON.SYSUPD]PCSI.CLD
$if f$trnlnm("pcsi$ver","LNM$JOB") .gts. "" then -
deassign/job pcsi$ver
$define sys$error nl:
$define sys$output nl:
$set noon
$pipe ( set command 'target_disk'[VMS$COMMON.SYSUPD]PCSI.CLD ; -
prod show utility ) <PIPE> -
search sys$input -
"version:" <PIPE> -
( read sys$input str ; -
ver = f$extract(f$locate("version:",str)+9,f$length(str),str) ; -
define /job pcsi$ver &ver )
$set on
$deassign sys$error
$deassign sys$output
$tar_pcsi_ver = f$trnlnm("pcsi$ver","LNM$JOB")
$if f$trnlnm("pcsi$ver","LNM$JOB") .gts. "" then -
deassign/job pcsi$ver
$deasign/job pcsi$main
$deasign/job pcsi$shr
$set command SYS$UPDATE:PCSI.CLD
$cd_pcsi_ver = ""
$if f$trnlnm("pcsi$ver","LNM$JOB") .gts. "" then deassign/job pcsi$ver
$define sys$error nl:
$define sys$output nl:
$set noon
$pipe prod show utility <PIPE> -
search sys$input -
"version:" <PIPE> -
( read sys$input str ; -
ver = f$extract(f$locate("version:",str)+9,f$length(str),str) ; -
define /job pcsi$ver &ver )
$set on
$deassign sys$error
$deassign sys$output
$cd_pcsi_ver = f$trnlnm("pcsi$ver","LNM$JOB")
$if f$trnlnm("pcsi$ver","LNM$JOB") .gts. "" then deassign/job pcsi$ver
$pcsi$in = tar_pcsi_ver
$gosub 070_pcsi_parse
$tar_pcsi_verx = pcsi$out
$pcsi$in = cd_pcsi_ver
$gosub 070_pcsi_parse
$cd_pcsi_verx = pcsi$out
$if tar_pcsi_verx .gts. cd_pcsi_verx
$then
$070_newerpcsi:
$msgdisp_verify
$saylong "newerpcsi" "''tar_pcsi_ver'" "''cd_pcsi_ver'"
$install_verify
$070_usenewpcsi:
$sayblank
$read /error=070_usenewpcsi sys$output in$ -
/prompt = "''usenewpcsi'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 070_newerpcsi
$if ans .eq. yesansw then pcsi$usenew = 1
$if ans .eq. noansw then pcsi$usenew = 0
$if ans .eq. invalidansw
$then
$say "yesorno"
$goto 070_usenewpcsi
$endif
$070_keepnewpcsi:
$sayblank
$read /error=070_keepnewpcsi sys$output in$ -
/prompt = "''keepnewpcsi'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_usenewpcsi
$if ans .eq. helpansw then goto 070_newerpcsi
$if ans .eq. yesansw then pcsi$keepnew = 1
$if ans .eq. noansw then pcsi$keepnew = 0
$if ans .eq. invalidansw
$then
$say "yesorno"
$goto 070_keepnewpcsi
$endif
$sayblank
$if pcsi$usenew .or. pcsi$keepnew
$then
$if f$search("''target_disk'[000000]PCSI$NEWER.DIR") -
.eqs. ""
$then
$create/dir 'target_disk'[PCSI$NEWER]
$endif
$if f$search("''target_disk'[PCSI$NEWER]") .nes. ""
$then
$delete 'target_disk':[PCSI$NEWER]*.*;*
$endif
$copy 'target_disk'[vms$common.sysexe]pcsi$main.exe -
'target_disk'[PCSI$NEWER]
$copy 'target_disk'[vms$common.syslib]pcsi$shr.exe -
'target_disk'[PCSI$NEWER]
$copy 'target_disk'[vms$common.sysupd]pcsi.cld -
'target_disk'[PCSI$NEWER]
$endif
$if pcsi$usenew
$then
$define/job pcsi$main -
'target_disk'[PCSI$NEWER]pcsi$main.exe
$define/job pcsi$shr -
'target_disk'[PCSI$NEWER]pcsi$shr.exe
$set command 'target_disk'[PCSI$NEWER]PCSI.CLD
$tar$pcsi_cld := 'target_disk'[PCSI$NEWER]PCSI.CLD
$else
$tar$pcsi_cld := SYS$UPDATE:PCSI.CLD
$endif
$endif
$goto 070_no_tar_pcsi
$070_pcsi_parse:
$pcsi$v = ""
$pcsi$m = ""
$pcsi$n = ""
$pcsi$u = ""
$pcsi$e = ""
$pcsi$v = f$extract(0,1,pcsi$in)
$pcsi$in = pcsi$in - pcsi$v
$pcsi$v = f$edit(pcsi$v,"UPCASE")
$pcsi$m = f$element(0,".",pcsi$in)
$pcsi$in = pcsi$in - pcsi$m - "."
$if f$length(pcsi$m) .lt. 2 then pcsi$m = "0" + pcsi$m
$if f$length(pcsi$m) .lt. 2 then pcsi$m = "0" + pcsi$m
$if f$length(pcsi$m) .ne. 2 then say "ERROR: PCSI$M length"
$pcsi$n = f$element(0,"-",pcsi$in)
$pcsi$in = pcsi$in - pcsi$n - "-"
$if f$length(pcsi$n) .lt. 2 then pcsi$n = "0" + pcsi$n
$if f$length(pcsi$n) .lt. 2 then pcsi$n = "0" + pcsi$n
$if f$length(pcsi$n) .ne. 2 then say "ERROR: PCSI$N length"
$d1 = 0
$070_u_loop:
$dc = f$extract(d1,1,pcsi$in)
$if dc .eqs. "" then goto no_dash
$if f$locate(dc,"0123456789") .lt. 10
$then
$pcsi$u = pcsi$u + dc
$d1 = d1 + 1
$goto 070_u_loop
$endif
$070_e_loop:
$if dc .gts. ""
$then
$pcsi$e = pcsi$e + dc
$d1 = d1 + 1
$dc = f$extract(d1,1,pcsi$in)
$goto 070_e_loop
$endif
$NO_DASH:
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .lt. 9 then pcsi$u = "0" + pcsi$u
$if f$length(pcsi$u) .ne. 9 then say "ERROR: PCSI$U length"
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .lt. 16 then pcsi$e = pcsi$e + " "
$if f$length(pcsi$e) .ne. 16 then say "ERROR: PCSI$E length"
$pcsi$out = pcsi$m + pcsi$n + pcsi$u + pcsi$e + pcsi$v
$return
$070_no_tar_pcsi:
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote /version='prod_ver_vis'
$sav_status = $status
$set on
$if sav_status .eq. %X0652A043
$then
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote /version='part_ver_vis'
$sav_status = $status
$set on
$endif
$if sav_status .eq. 1
$then
$same_version = 1
$else
$if sav_status .eq. %X0652A043 -
.or. F$SEARCH("SYS$SYSTEM:*.PCSI$DATABASE") .eqs. ""
$then
$same_version = 0
$else
$same_version = 0
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "070_MOUNT_L" -
"''sav_status'"
$set noon
$set verify
$product show product VMS /remote /version='prod_ver_vis'
$product show product VMS /remote /version='part_ver_vis'
$install_verify
$set on
$070_mount_m:
$sayblank
$read /error=070_mount_m sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw then goto 070_mount_l
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw then goto 070_mount_m
$endif
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote /span_versions=below=I7.2
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$update_npag_bap_max_pa = 1
$else
$if sav_status .eq. %X0652A043
$then
$update_npag_bap_max_pa = 0
$else
$update_npag_bap_max_pa = 0
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "070_MOUNT_M" -
"''sav_status'"
$set noon
$set verify
$product show product VMS /remote /span_versions=below=I7.2
$set on
$install_verify
$070_mount_n:
$sayblank
$read /error=070_mount_n sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target_b
$if ans .eq. helpansw then goto 070_mount_l
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw then goto 070_mount_n
$endif
$endif
$endif
$endif
$if install_upgrade .eqs. "I"
$then
$say "''crepagswp'"
$create/dir/protection=(S:RWE,O:RWE,G:RE,W:RE) PCSI$SPECIFIC:[SYSEXE]
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$mcr sysgen create PCSI$SPECIFIC:[SYSEXE]PAGEFILE.SYS -
/size=4604 /nocontig
$set on
$if f$search("PCSI$SPECIFIC:[SYSEXE]PAGEFILE.SYS") .eqs. ""
$then
$say "''cantcrepag'"
$goto 0_exit
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$mcr sysgen create PCSI$SPECIFIC:[SYSEXE]SWAPFILE.SYS -
/size=1000 /nocontig
$set on
$if f$search("PCSI$SPECIFIC:[SYSEXE]SWAPFILE.SYS") .eqs. ""
$then
$say "''cantcreswp'"
$goto 0_exit
$endif
$endif
$if f$search("''target_disk'[000000]VMS$COMMON.DIR") .eqs. "" -
then goto 070_targetdirorg_z
$if f$search("''target_disk'[''root_name']SYSCOMMON.DIR") .eqs. "" -
then goto 070_targetdirorg_z
$if f$file_attributes("''target_disk'[000000]VMS$COMMON.DIR","FID") -
.nes. f$file_attributes("''target_disk'[''root_name']SYSCOMMON.DIR","FID")
$then
$070_targetdirorg_a:
$msgdisp_verify
$saylong "targetdirorg"
$install_verify
$070_targetdirorg_b:
$sayblank
$read /error=070_targetdirorg_b sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. helpansw then goto 070_targetdirorg_a
$if ans .eq. yesansw then goto terminate_exit
$if ans .eq. noansw then goto 070_targetdirorg_z
$say "''yesorno'"
$goto 070_targetdirorg_b
$endif
$070_targetdirorg_z:
$if "I64" .eqs. "I64"
$then
$bcfg_flags = ""
$msgdisp_verify
$saylong "bcfg_bootopt"
$install_verify
$read /error=070_targetdirorg_Z sys$output in$ -
/prompt = "''bcfg_wantopt'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 070_targetdirorg_z
$if ans .eq. yesansw then bcfg$choice = 1
$if ans .eq. noansw then bcfg$choice = 0
$if (ans .ne. yesansw) .and. (ans .ne. noansw) then -
goto 070_targetdirorg_z
$if .not. bcfg$choice then goto 070_targetdirorg_zz
$070_targetdirorg_z1:
$bcfg = "$SYS$SYSTEM:EFI$BCFG.EXE"
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> search/noout sys$input "0 entries found."
$sav_status = $status .and. %X0FFFFFFF
$deassign sys$error
$deassign sys$output
$if sav_status .ne. 1 then goto 070_targetdirorg_zz
$msgdisp_verify
$saylong "bcfg_setflags"
$install_verify
$read /error=070_targetdirorg_Z1 sys$output ans -
/prompt = "''bcfg_entflags'"
$if ans .eq. backansw then goto 070_targetdirorg_z
$if ans .eq. helpansw then goto 070_targetdirorg_z
$bcfg_flags = f$edit(ans,"TRIM")
$if f$edit(f$extract(0,3,bcfg_flags),"UPCASE") .eqs. "-FL" -
then bcfg_flags = f$extract(4,8,bcfg_flags)
$if bcfg_flags .gts. "" then bcfg_flags = "-fl " + bcfg_flags
$070_targetdirorg_zz:
$endif
$if f$trnlnm("I64VMS$PCSI_V820","LNM$JOB") .gts. "" -
then deassign/job I64VMS$PCSI_V820
$if "I64" .eqs. "I64"
$then
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote /version=V8.2
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$define/job/nolog I64VMS$PCSI_V820 "YES"
$endif
$endif
$if install_upgrade .nes. "I" then goto 095_ask_clu
$080_set_pass:
$msgdisp_verify
$saylong "entersyspass"
$install_verify
$sayblank
$080_read_pass:
$sayblank
$set term sys$output /noecho
$read /error=080_read_pass sys$output pwd -
/prompt = "''passforsys'"
$set term sys$output /echo
$sayblank
$pwd = f$edit(pwd,"COLLAPSE,UPCASE")
$if pwd .eqs. helpvalue then goto 080_set_pass
$if pwd .eqs. backvalue then goto 060_target
$pwd_ln = f$length(pwd)
$if pwd_ln .lt. 8
$then
$say "''passless8'"
$goto 080_read_pass
$endif
$if pwd_ln .gt. 31
$then
$say "''passmore31'"
$goto 080_read_pass
$endif
$val_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_"
$num_chars = f$length(val_chars)
$chr_no = 0
$080_chk_chr:
$if f$locate(f$extract(chr_no,1,pwd),val_chars) .ge. num_chars
$then
$say "''passinvchr'"
$goto 080_read_pass
$endif
$chr_no = chr_no + 1
$if chr_no .lt. pwd_ln then goto 080_chk_chr
$080_ver_pass:
$sayblank
$set term sys$output /noecho
$read /error=080_ver_pass sys$output ver -
/prompt = "''versyspass'"
$set term sys$output /echo
$sayblank
$ver = f$edit(ver,"COLLAPSE,UPCASE")
$if ver .eqs. helpvalue then goto 080_set_pass
$if ver .eqs. backvalue then goto 080_read_pass
$if pwd .nes. ver
$then
$say "''passvererr'"
$goto 080_read_pass
$endif
$vms$chkpwd := "$SYS$SYSDEVICE:[VMS$COMMON.SYSUPD]VMS$CHKPWD.EXE"
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$vms$chkpwd 'pwd'
$if $status .eq. %xe7a
$then
$msgdisp_verify
$saylong "passezguess"
$install_verify
$080_pwd_re:
$sayblank
$read /error=080_pwd_re sys$output in$ -
/prompt = "''otherpass'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 080_read_pass
$if ans .eq. helpansw then goto 080_set_pass
$if ans .eq. noansw then goto 080_read_pass
$if ans .eq. yesansw then goto 080_pwd_ok
$say "''yesorno'"
$goto 080_read_pass
$endif
$080_pwd_ok:
$if f$parse("''target_disk'[VMS$COMMON.SYSEXE]") .eqs. "" -
then create/dir/protection=(S:RWE,O:RWE,G:RE,W:RE) -
'target_disk'[VMS$COMMON.SYSEXE]
$if f$search("''target_disk'[VMS$COMMON.SYSEXE]SYSUAF.DAT") .nes. "" -
then delete/nolog 'target_disk'[VMS$COMMON.SYSEXE]SYSUAF.DAT;
$define/nolog/exec sysuaf 'target_disk'[VMS$COMMON.SYSEXE]SYSUAF
$define/nolog/exec rightslist 'target_disk'[VMS$COMMON.SYSEXE]RIGHTSLIST
$define/nolog/exec netproxy 'target_disk'[VMS$COMMON.SYSEXE]NETPROXY
$uaf = "$SYS$SYSTEM:AUTHORIZE"
$set noon
$define/nolog/user sys$command sys$input
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf
$DECK
yes
$EOD
$sav_status = $status
$set on
$if .not. sav_status then -
say "''cantcreuaf'"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf modify SYSTEM /flags=(nodisuser)/password='pwd'/nopwdexpired
$sav_status = $status
$set on
$delete/symbol pwd
$delete/symbol ver
$if .not. sav_status then -
say "''cantsetpass'"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf create /rights
$sav_status = $status
$set on
$if .not. sav_status then -
say "''cantcreright'"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf add/id/user=*
$sav_status = $status
$set on
$if .not. sav_status then -
say "''cantcreright'"
$deassign/exec sysuaf
$deassign/exec rightslist
$deassign/exec netproxy
$if f$parse("''target_disk'[VMS$COMMON.SYSEXE]") .eqs. "" -
then create/dir/protection=(S:RWE,O:RWE,G:RE,W:RE) -
'target_disk'[VMS$COMMON.SYSEXE]
$if f$search("''target_disk'[VMS$COMMON.SYSEXE]LMF$LICENSE.LDB") -
.eqs. "" then license create -
/database = 'target_disk'[VMS$COMMON.SYSEXE]LMF$LICENSE.LDB
$095_ask_clu:
$sayblank
$read /error=095_ask_clu sys$output in$ -
/prompt = "''vmsclumem'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw
$then
$if install_upgrade .eqs. "I"
$then goto 080_set_pass
$else goto 070_mount
$endif
$endif
$if ans .eq. helpansw then goto 095_ask_clu
$if ans .eq. yesansw
$then
$clu_mem = "Y"       ! don't use YESVALUE -- STARTUP_INS.COM requires "Y"
$if install_upgrade .eqs. "I"
$then
$msgdisp_verify
$saylong "isvmsclumem"
$install_verify
$endif
$else
$if ans .eq. noansw
$then
$clu_mem = "N"   ! don't use NOVALUE -- STARTUP_INS.COM requires "N"
$else
$say "''yesorno'"
$goto 095_ask_clu
$endif
$endif
$095_ask_galaxy:
$if "I64" .eqs. "I64"
$then
$galaxy_mem = "N" ! don't use NOVALUE -- STARTUP_INS.COM requires "N"
$goto 095_after_galaxy
$endif
$sayblank
$read /error=095_ask_galaxy sys$output in$ -
/prompt = "''galaxyinst'"
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw then goto 095_ask_galaxy
$if ans .eq. yesansw
$then
$galaxy_mem = "Y"    ! don't use YESVALUE -- STARTUP_INS.COM requires "Y"
$else
$if ans .eq. noansw
$then
$galaxy_mem = "N" ! don't use NOVALUE -- STARTUP_INS.COM requires "N"
$else
$say "''yesorno'"
$goto 095_ask_galaxy
$endif
$endif
$095_after_galaxy:
$if install_upgrade .nes. "U" then goto 095_after_lp_checks
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$set noon
$prod sho prod /producer=DEC DECRAM /remote
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "remove_decram"
$install_verify
$goto terminate_exit
$endif
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$set noon
$prod sho prod vms /remote /span_versions=below=V8.3
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "remove_decramverb"
$install_verify
$endif
$095_check_kerberos:
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$set noon
$product show product VMS /remote /version=V7.3-1
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$set noon
$product show product KERBEROS /remote
$sav_status = $status
$set on
$if sav_status .ne. 1
$then
$define/nolog/user pcsi$source 'other_prods'
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$set noon
$product register product KERBEROS /version=V1.0 -
/KIT_ATTRIBUTES=TYPE=TRANSITION -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
/DESTINATION='target_disk'[VMS$COMMON] -
/REMOTE -
/'logmode'
$sav_status = $status
$set on
$if sav_status .ne. 1
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT REGISTER" "095_CHECK_KERBEROS" -
"''f$string(sav_status)'"
$set noon
$set verify
$define/nolog/user pcsi$source 'other_prods'
$product register product KERBEROS /version=V1.0 -
/KIT_ATTRIBUTES=TYPE=TRANSITION -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
/DESTINATION='target_disk'[VMS$COMMON] -
/REMOTE -
/'logmode'
$install_verify
$set on
$095_kerberos_term:
$sayblank
$read sys$output /error=095_kerberos_term in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. helpansw then goto 095_check_kerberos
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 095_kerberos_term
$endif
$endif
$endif
$endif
$095_check_posix:
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product POSIX /remote
$sav_status = $status
$set on
$if -
( (f$search("''target_disk'[VMS$COMMON.SYS$LDR]POSIX$*.EXE") .gts. "") -
.or. -
(f$search("''target_disk'[SYS*.SYS$LDR]POSIX$*.EXE") .gts. "") -
.or. -
(sav_status .eq. 1) )
$then
$msgdisp_verify
$saylong "oldposixfound"
$install_verify
$sayblank
$read /error=095_check_posix sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 095_check_posix
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 095_check_posix
$endif
$endif
$095_after_lp_checks:
$decnet_selected = 0
$decnet_iv_selected = 0
$decnet_osi_selected = 0
$tcpip_selected = 0
$tcpip_ucx_selected = 0
$tcpip_tcpip_selected = 0
$dwmotif_selected = 0
$decnet_iv_installed = 0
$decnet_osi_installed = 0
$tcpip_ucx_installed = 0
$tcpip_tcpip_installed = 0
$decnet_iv_present = 0
$decnet_osi_present = 0
$tcpip_ucx_present = 0
$tcpip_tcpip_present = 0
$dwmotif_present= 0
$decnet_iv_referenced = 0
$decnet_osi_referenced = 0
$tcpip_ucx_referenced = 0
$tcpip_tcpip_referenced = 0
$sw$prod = "decnet"
$sw$impl = "iv"
$sw$name = "DECNET_PHASE_IV"
$sw$file = "[VMS$COMMON.SYSMGR]NETCONFIG.COM"
$gosub 095_check_present
$sw$prod = "decnet"
$sw$impl = "osi"
$sw$name = "DECNET_PLUS"
$sw$file = "[VMS$COMMON.SYSMGR]NET$CONFIGURE.COM"
$gosub 095_check_present
$sw$prod = "tcpip"
$sw$impl = "ucx"
$sw$name = "UCX"
$sw$file = "[VMS$COMMON.SYSEXE]UCX$UCP.EXE"
$gosub 095_check_present
$sw$prod = "tcpip"
$sw$impl = "tcpip"
$sw$name = "TCPIP"
$sw$file = "[VMS$COMMON.SYSEXE]TCPIP$UCP.EXE"
$gosub 095_check_present
$if (tcpip_tcpip_installed .eq. 0) .and. (tcpip_tcpip_present .eq. 1)
$then
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product /remote TCPIPJA
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$tcpip_tcpip_present = 1
$define sys$error nl:
$define sys$output nl:
$set noon
$pipe ( set command 'tar$pcsi_cld' ; -
product show product TCPIPJA /remote ) <PIPE> -
sear sys$input TCPIPJA <PIPE> -
( read sys$input str ; -
ver = f$element(3," ",str) ; -
define /job sft$inst_ver &ver )
$sft_inst = f$trnlnm("sft$inst_ver","LNM$JOB")
$set on
$deassign sys$output
$deassign sys$error
$msgdisp_verify
$saylong "sftother" "''sft_inst'" "Japanese TCP/IP"
$install_verify
$tcpip_tcpip_present = 0
$endif
$endif
$sw$prod = "dwmotif"
$sw$impl = "dwmotif"
$sw$name = "DWMOTIF"
$sw$file = "[VMS$COMMON.SYSLIB]DECW$XLIBSHR.EXE"
$gosub 095_check_present
$goto 095_after_check_present
$095_check_present:
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product /remote 'sw$name'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$'sw$prod'_'sw$impl'_installed = 1
$'sw$prod'_'sw$impl'_present = 1
$define sys$output nl:
$define sys$error nl:
$set noon
$pipe -
product show product /full /remote 'sw$name' <PIPE> -
search sys$input " OPENVMS "
$sav_status = $status
$set on
$deassign sys$output
$deassign sys$error
$if sav_status .eq. %X10000001
$then
$'sw$prod'_'sw$impl'_referenced = 1
$else
$'sw$prod'_'sw$impl'_referenced = 0
$endif
$else
$'sw$prod'_'sw$impl'_installed = 0
$'sw$prod'_'sw$impl'_referenced = 0
$if f$search("''target_disk'''sw$file'") .gts. ""
$then
$if f$file_attributes("''target_disk'''sw$file'","EOF") .gt. 0
$then
$'sw$prod'_'sw$impl'_present = 1
$else
$'sw$prod'_'sw$impl'_present = 0
$endif
$else
$'sw$prod'_'sw$impl'_present = 0
$endif
$endif
$return
$095_after_check_present:
$095_bothdecnets:
$if decnet_osi_installed .and. decnet_iv_installed
$then
$msgdisp_verify
$saylong "bothdecnets"
$install_verify
$sayblank
$read /error=095_bothdecnets sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 095_bothdecnets
$endif
$endif
$095_bothtcpips:
$if tcpip_tcpip_installed .and. tcpip_ucx_installed
$then
$msgdisp_verify
$saylong "bothtcpips"
$install_verify
$sayblank
$read /error=095_bothtcpips sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 095_bothtcpips
$endif
$endif
$110_scsnode_info:
$if install_upgrade .nes. "I" then goto 110_time_zone
$msgdisp_verify
$saylong "scsnodeinfo"
$install_verify
$110_enter_scsnode:
$sayblank
$read /error=110_enter_scsnode sys$output inpt -
/prompt = "''entscsnode'"
$scsnode = f$edit(inpt,"TRIM,UPCASE")
$if scsnode .eqs. helpvalue then goto 110_scsnode_info
$if scsnode .eqs. backvalue then goto 095_ask_clu
$ln_scsnode = f$length(scsnode)
$if ln_scsnode .lt. 1 .or. ln_scsnode .gt. 6
$then
$say "''invalscsnode'"
$goto 110_enter_scsnode
$endif
$val_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
$num_chars = f$length(val_chars)
$char_no = 0
$110_validate_scsnode1:
$if f$locate(f$extract(char_no,1,scsnode),val_chars) .ge. num_chars
$then
$say "''invalscsnode'"
$goto 110_enter_scsnode
$endif
$char_no = char_no + 1
$if char_no .lt. ln_scsnode then goto 110_validate_scsnode1
$val_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$num_chars = f$length(val_chars)
$char_no = 0
$110_validate_scsnode2:
$if f$locate(f$extract(char_no,1,scsnode),val_chars) .ge. num_chars
$then
$char_no = char_no + 1
$if char_no .lt. ln_scsnode then goto 110_validate_scsnode2
$say "''invalscsnode'"
$goto 110_enter_scsnode
$endif
$110_scsdecnet_info:
$msgdisp_verify
$saylong "scsidinfo"
$install_verify
$110_ask_usedecnet:
$if decnet_selected then goto 110_scsnet_info
$sayblank
$read /error=110_ask_usedecnet sys$output in$ -
/prompt = "''usedecnet'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 110_enter_scsnode
$if ans .eq. helpansw then goto 110_scsdecnet_info
$if ans .eq. yesansw then goto 110_scsnet_info
$if ans .eq. noansw then goto 110_scsnonet_info
$say "''yesorno'"
$goto 110_ask_usedecnet
$110_scsnet_info:
$msgdisp_verify
$saylong "scsnetinfo"
$install_verify
$110_enter_netadr:
$sayblank
$read /error=110_enter_netadr sys$output inpt -
/prompt = "''entnetadr'"
$inpt = f$edit(inpt,"TRIM,UPCASE")
$if inpt .eqs. backvalue
$then
$if decnet_selected
$then
$goto 110_enter_scsnode
$else
$goto 110_ask_usedecnet
$endif
$endif
$if inpt .eqs. helpvalue then goto 110_scsnet_info
$if inpt .eqs. "" then inpt = "1.1"
$if f$locate(".",inpt) .gt. f$length(inpt)
$then
$say "''invalnetadr'"
$goto 110_enter_netadr
$endif
$net_area = f$element(0,".",inpt)
$ln_net_area = f$length(net_area)
$net_node = f$element(1,".",inpt)
$ln_net_node = f$length(net_node)
$val_chars = "0123456789"
$num_chars = f$length(val_chars)
$char_no = 0
$110_validate_netadr2:
$if f$locate(f$extract(char_no,1,net_area),val_chars) .ge. num_chars
$then
$say "''invalnetadr'"
$goto 110_enter_netadr
$endif
$char_no = char_no + 1
$if char_no .lt. ln_net_area then goto 110_validate_netadr2
$char_no = 0
$110_validate_netadr3:
$if f$locate(f$extract(char_no,1,net_node),val_chars) .ge. num_chars
$then
$say "''invalnetadr'"
$goto 110_enter_netadr
$endif
$char_no = char_no + 1
$if char_no .lt. ln_net_node then goto 110_validate_netadr3
$net_area_int = 'net_area'
$net_node_int = 'net_node'
$if (net_area_int .lt. 0) -
.or. (net_area_int .gt. 63) -
.or. (net_node_int .lt. 0) -
.or. (net_node_int .gt. 1023) -
.or. (net_area_int .eq. 0 .and. net_node_int .ne. 0) -
.or. (net_area_int .ne. 0 .and. net_node_int .eq. 0)
$then
$say "''invalnetadr'"
$goto 110_enter_netadr
$endif
$if net_area_int .eq. 0 .and. net_node_int .eq. 0
$then
$goto 110_enter_scsidnotpiv
$else
$goto 110_enter_scsidpiv
$endif
$110_enter_scsidpiv:
$scsid_int = ((net_area_int * 1024) + net_node_int)
$scsid = f$string(scsid_int)
$msgdisp_verify
$saylong "scsidset"
$install_verify
$goto 110_end_scs
$110_enter_scsidnotpiv:
$msgdisp_verify
$saylong "scsidnotpiv"
$saylong "choosescsid"
$install_verify
$nonet = 0
$goto 110_enter_scsid
$110_scsnonet_info:
$msgdisp_verify
$saylong "choosescsid"
$install_verify
$nonet = 1
$goto 110_enter_scsid
$110_enter_scsid:
$sayblank
$read /error=110_enter_scsid sys$output inpt -
/prompt = "''entscsid'"
$scsid = f$edit(inpt,"TRIM,UPCASE")
$if scsid .eqs. helpvalue .and. nonet then goto 110_scsnonet_info
$if scsid .eqs. helpvalue then goto 110_enter_scsidnotpiv
$if scsid .eqs. backvalue then goto 110_ask_usedecnet
$if scsid .eqs. "" then scsid = "65534"
$val_chars = "0123456789"
$num_chars = f$length(val_chars)
$char_no = 0
$ln_net_scsid = f$length(scsid)
$110_validate_scsid1:
$if f$locate(f$extract(char_no,1,scsid),val_chars) .ge. num_chars
$then
$say "''invalscsid'"
$goto 110_enter_scsid
$endif
$char_no = char_no + 1
$if char_no .lt. ln_net_scsid then goto 110_validate_scsid1
$scsid_int = 'scsid'
$if scsid_int .lt. 1 .or. scsid_int .gt. 65535
$then
$say "''invalscsid'"
$goto 110_enter_scsid
$endif
$110_end_scs:
$110_time_zone:
$if install_upgrade .eqs. "I" then goto 110_time_zone_all
$define vms$pcsi_install_proc "TRUE"
$set symbol /scope=(nolocal,global)
$@SYS$MANAGER:UTC$TIME_SETUP.COM -
"''target_disk'[VMS$COMMON.]" -
CHECK
$set symbol /scope=(nolocal,noglobal)
$deassign vms$pcsi_install_proc
$if ( ( install_upgrade .eqs. "U" ) -
.and. ( f$search("''target_disk'[VMS$COMMON.SYSEXE]SYS$TIMEZONE.DAT") -
.gts. "" ) -
.and. ( f$search("''target_disk'[VMS$COMMON.SYSEXE]SYS$TIMEZONE_SRC.DAT") -
.gts. "" ) -
.and. -
( f$search("''target_disk'[VMS$COMMON.SYS$STARTUP]TDF$UTC_STARTUP.COM") -
.gts. "" ) ) -
then goto 130_decnet_osi
$if ( ( f$search("''target_disk'[VMS$COMMON.SYSEXE]SYS$TIMEZONE.DAT") -
.gts. "" ) -
.and. ( f$search("''target_disk'[VMS$COMMON.SYSEXE]SYS$TIMEZONE_SRC.DAT") -
.gts. "" ) )
$then
$time_function = "RULE"
$open/read/error=110_no_zone_src vms$timezone_src -
'target_disk'[VMS$COMMON.SYSEXE]SYS$TIMEZONE_SRC.DAT
$read/error=110_no_zone_src vms$timezone_src tzfilespec
$close vms$timezone_src
$if f$element (0,"M",tzfilespec) .nes. "SYS$SYSROOT:[SYS$ZONEINFO.SYSTE"
$then
$goto 110_no_zone_src
$endif
$define/system/exec/nolog SYS$LOCALTIME 'tzfilespec'
$else
$time_function = "BOTH"
$endif
$goto 110_time_zone_all
$110_no_zone_src:
$close vms$timezone_src
$time_function = "BOTH"
$110_time_zone_all:
$if f$parse("''target_disk'[VMS$COMMON.SYS$STARTUP]") .eqs. "" -
then create/dir/protection=(S:RWE,O:RWE,G:RE,W:RE) -
'target_disk'[VMS$COMMON.SYS$STARTUP]
$define vms$pcsi_install_proc "TRUE"
$set symbol /scope=(nolocal,global)
$@SYS$MANAGER:UTC$TIME_SETUP.COM -
"''target_disk'[VMS$COMMON.]" -
"''time_function'"
$set symbol /scope=(nolocal,noglobal)
$deassign vms$pcsi_install_proc
$if install_upgrade .eqs. "U" then goto 130_decnet_osi
$120_get_paks:
$msgdisp_verify
$saylong "pakkeys"
$install_verify
$120_retry_paks:
$sayblank
$read /error=120_retry_paks sys$output in$ -
/prompt = "''regpakkeys'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 110_ask_usedecnet
$if ans .eq. helpansw then goto 120_get_paks
$if ans .eq. yesansw
$then
$define lmf$_bypass_load_prompt "YES"
$set symbol /scope=(nolocal,global)
$@SYS$SYSDEVICE:[VMS$COMMON.SYSUPD]VMSLICENSE -
"" "" "''target_disk'[VMS$COMMON.SYSEXE]LMF$LICENSE.LDB"
$set symbol /scope=(nolocal,noglobal)
$deasign lmf$_bypass_load_prompt
$else
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 120_get_paks
$endif
$endif
$130_decnet_osi:
$if install_upgrade .eqs. "I" then goto 130_decnet_osi_z
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product decnet_osi /remote /version=t2.1-ft3
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$130_decnet_osi_a:
$msgdisp_verify
$saylong "decnetosift3"
$install_verify
$130_decnet_osi_b:
$sayblank
$read /error=130_decnet_osi_b sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. helpansw then goto 130_decnet_osi_a
$if ans .eq. yesansw then goto terminate_exit
$if ans .eq. noansw then goto 130_decnet_osi_z
$say "''yesorno'"
$goto 130_decnet_osi_b
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "130_DECNET_OSI" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product decnet_osi /remote /version=t2.1-ft3
$install_verify
$set on
$130_decnet_osi_term:
$sayblank
$read /error=130_decnet_osi_term sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. helpansw then goto 130_decnet_osi
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 130_decnet_osi_term
$endif
$endif
$endif
$130_decnet_osi_z:
$if f$search("''target_disk'[VMS$COMMON.SYSLIB]EDTSHR.EXE") .eqs. ""
$then
$if f$search("''target_disk'[VMS$COMMON.SYS$LDR]NET$MESSAGE.EXE") -
.nes. "" then delete 'target_disk'[VMS$COMMON.SYS$LDR]NET$MESSAGE.EXE;*
$if f$search("''target_disk'[VMS$COMMON.SYS$LDR]LES$LES_V30.EXE") -
.nes. "" then delete 'target_disk'[VMS$COMMON.SYS$LDR]LES$LES_V30.EXE;*
$endif
$140_checkpdb:
$if install_upgrade .eqs. "I" then goto 150_doinstall
$if f$search("''target_disk'[VMS$COMMON.SYSEXE]*.PCSI$DATABASE") .gts. ""
$then
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote /producer=HP /base_system=I64VMS
$sav_status = $status
$set on
$if sav_status .eq. 1 then goto 150_doinstall
$if sav_status .eq. %X0652A043
$then
$msgdisp_verify
$saylong "vmsnotinpdb"
$install_verify
$else
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "140_CHECKPDB" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product VMS /remote /producer=HP -
/base_system=I64VMS
$install_verify
$set on
$endif
$140_checkpdb_term:
$sayblank
$read /error=140_checkpdb_term sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw then goto 140_checkpdb
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 140_checkpdb_term
$endif
$else
$msgdisp_verify
$saylong "noproddatabase"
$install_verify
$140_checkpdb_b:
$sayblank
$read /error=140_checkpdb_b sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw then goto 140_checkpdb
$if ans .eq. yesansw then goto terminate_exit
$if ans .eq. noansw then goto 150_doinstall
$say "''yesorno'"
$goto 140_checkpdb_b
$endif
$150_doinstall:
$partial_kit = 0
$partial_range = 0
$partial_upgrade = 0
$inst_kit_type = "F"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product find VMS /producer=HP /base=I64VMS -
/source = SYS$SYSDEVICE:[UPD$COMMON] -
/version = 'part_ver_vis' -
/kit=type=partial
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$partial_kit = 1
$partial_upgrade = 0
$part_ver_file = f$search -
("SYS$SYSDEVICE:[UPD$COMMON]HP-I64VMS-VMS-*-3.PCSI$DESCRIPTION")
$close /error=150_pdf_open I64VMS$part_pdf
$150_pdf_open:
$open /read I64VMS$part_pdf 'part_ver_file'
$upgrade_found = 0
$span_vers = ""
$req_ver = ""
$150_pdf_read:
$read /end=150_pdf_end I64VMS$part_pdf part_rec
$part_rec = f$edit(part_rec,"TRIM,COMPRESS,UPCASE")
$i1 = 0
$if f$element(I1," ",part_rec) .eqs. "UPGRADE"
$then
$upgrade_found = 0
$150_ver_loop:
$i1 = i1 + 2
$work_comp = f$element(I1," ",part_rec)
$if work_comp .eqs. " " then goto 150_pdf_end
$i1 = i1 + 1
$work_ver = f$element(I1," ",part_rec)
$if work_comp .eqs. "REQUIRED"
$then
$req_ver = work_ver
$else
$span_vers = span_vers + "," + work_comp + "=" + work_ver
$endif
$goto 150_ver_loop
$endif
$goto 150_pdf_read
$150_pdf_end:
$close I64VMS$part_pdf
$if req_ver .gts. " " then req_ver = "/VERSION=" + req_ver
$if span_vers .gts. " " then req_ver = -
req_ver + "/SPAN_VERSIONS=(" + SPAN_VERS - "," + ")"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product VMS /remote 'req_ver'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$partial_range = 1
$else
$partial_range = 0
$endif
$else
$partial_kit = 0
$partial_upgrade = 0
$partial_range = 0
$endif
$if install_upgrade .eqs. "I"
$then
$inst_kit_type = "F"
$goto 150_after_partop
$endif
$define sys$output nl:
$define sys$error nl:
$set noon
$pipe -
product show product /full /remote VMS <PIPE> -
search sys$input "Oper System","Transition"
$sav_status = $status
$set on
$deassign sys$output
$deassign sys$error
$if sav_status .eq. %X10000001
$then
$inst_kit_type = "F"
$else
$define sys$output nl:
$define sys$error nl:
$set noon
$pipe -
product show product /full /remote VMS <PIPE> -
search sys$input "Partial"
$sav_status = $status
$set on
$deassign sys$output
$deassign sys$error
$if sav_status .eq. %X10000001
$then
$inst_kit_type = "P"
$else
$inst_kit_type = "F"
$150_partopererr:
$msgdisp_verify
$saylong "proderror" "PIPEd PRODUCT SHOW" "150_PDF_END" -
"<unknown>"
$set noon
$set verify
$product show product /full /remote VMS
$install_verify
$set on
$150_partopererr_q:
$sayblank
$read /error=150_partopererr sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw then goto 150_partopererr
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw then goto 150_partopererr_q
$endif
$endif
$150_after_partop:
$goto 150_after_partial_info
$150_partial_info:
$i1 = 1
$150_partial_info_loop:
$msgdisp_verify
$saylong "partialinfo''i1'"
$install_verify
$read sys$output /error=150_partial_info inpt /prompt = "''returncont'"
$if inpt .eqs. backvalue then return
$i1 = i1 + 1
$if i1 .gt. 5 then return
$goto 150_partial_info_loop
$150_after_partial_info:
$if .not. partial_kit then goto 150_after_partial_messages
$if partial_range
$then
$if same_version
$then
$if inst_kit_type .eqs. "F"
$then
$150_partial_same:
$msgdisp_verify
$saylong "partialsame" "''prod_ver_vis'" "''target_disk'"
$install_verify
$read sys$output /error=150_partial_same inpt -
/prompt = "''returnques'"
$if inpt .eqs. backvalue then goto 095_ask_clu
$if inpt .eqs. helpvalue
$then
$gosub 150_partial_info
$if inpt .eqs. backvalue then goto 150_partial_same
$endif
$else
$150_partial_chose1:
$msgdisp_verify
$saylong "partialchose" "''prod_ver_vis'" "''target_disk'"
$install_verify
$read sys$output /error=150_partial_chose1 inpt -
/prompt = "''partorfull'"
$msgdisp_verify
$saylong "checkpartfull" "''inpt'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw
$then
$gosub 150_partial_info
$goto 150_partial_chose1
$endif
$if ( (ans .ne. yesansw) .and. (ans .ne. noansw) )
$then
$say "''invresponse'"
$goto 150_partial_chose1
$endif
$if ans .eq. yesansw then partial_upgrade = 1
$if ans .eq. noansw then partial_upgrade = 0
$endif
$else
$150_partial_chose2:
$msgdisp_verify
$saylong "partialchose" "''prod_ver_vis'" "''target_disk'"
$install_verify
$read sys$output /error=150_partial_chose2 inpt -
/prompt = "''partorfull'"
$msgdisp_verify
$saylong "checkpartfull" "''inpt'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw
$then
$gosub 150_partial_info
$goto 150_partial_chose2
$endif
$if ( (ans .ne. yesansw) .and. (ans .ne. noansw) )
$then
$say "''invresponse'"
$goto 150_partial_chose2
$endif
$if ans .eq. yesansw then partial_upgrade = 1
$if ans .eq. noansw then partial_upgrade = 0
$endif
$else
$150_partial_range:
$if install_upgrade .eqs. "I"
$then
$msgdisp_verify
$saylong "partialinst" "''prod_ver_vis'" "''target_disk'"
$install_verify
$else
$msgdisp_verify
$saylong "partialrange" "''prod_ver_vis'" "''target_disk'"
$install_verify
$endif
$read sys$output /error=150_partial_range inpt -
/prompt = "''returnques'"
$if inpt .eqs. backvalue then goto 095_ask_clu
$if inpt .eqs. helpvalue
$then
$gosub 150_partial_info
$if inpt .eqs. backvalue then goto 150_partial_range
$endif
$endif
$150_after_partial_messages:
$goto 150_after_samever_info
$150_samever_info:
$i1 = 1
$150_samever_info_loop:
$msgdisp_verify
$saylong "samevmsverinfo''i1'"
$install_verify
$read sys$output /error=150_samever_info inpt /prompt = "''returncont'"
$if inpt .eqs. backvalue then return
$i1 = i1 + 1
$if i1 .gt. 2 then return
$goto 150_samever_info_loop
$150_after_samever_info:
$if .not. same_version
$then
$prod_oper = "INSTALL"
$inst_prod = "OPENVMS"
$goto 150_after_same_ver_messages
$endif
$If .not. (partial_kit .and. partial_range .and. (inst_kit_type .eqs. "F") )
$then
$msgdisp_verify
$saylong "samevmsver" "''prod_ver_vis'" "''target_disk'"
$install_verify
$endif
$150_check_reinstall:
$msgdisp_verify
$saylong "samevmsvermenu"
$install_verify
$sayblank
$msgdisp_verify
$read /error=150_check_reinstall sys$output in$ -
/prompt = "''enterchoice'"
$install_verify
$if in$ .eqs. backvalue then goto 095_ask_clu
$if in$ .eqs. helpvalue
$then
$gosub 150_samever_info
$goto 150_check_reinstall
$endif
$if in$ .eqs. "1"
$then
$prod_oper = "RECONFIGURE"
$inst_prod = "OPENVMS"
$goto 150_after_same_ver_messages
$endif
$if in$ .eqs. "2"
$then
$if ( (inst_kit_type .eqs. "P") -
.or. (partial_upgrade .eq. 1) )
$then
$saylong "cannotreconfigure" "''inst_kit_type'" "''partial_upgrade'"
$goto 150_check_reinstall
$endif
$prod_oper = "RECONFIGURE"
$inst_prod = "VMS"
$goto 157_askhelp
$endif
$if in$ .eqs. "3"
$then
$prod_oper = "INSTALL"
$inst_prod = "VMS"
$goto 157_askhelp
$endif
$if in$ .eqs. "4"
$then
$goto 0_exit
$endif
$say "''invresponse'"
$goto 150_check_reinstall
$150_after_same_ver_messages:
$first_req_displayed = 0
$first_opt_displayed = 0
$close /error=155_pdf_open1 I64VMS$plat_pdf
$155_pdf_open1:
$open /read I64VMS$plat_pdf 'prod_plat_file'
$close /error= 155_other_open1 I64VMS$plattmp
$155_other_open1:
$open /write I64VMS$plattmp SYS$SCRATCH:I64VMS$PLAT.TMP
$close /error=155_pcf_open I64VMS$pcfout
$155_pcf_open:
$open /write I64VMS$pcfout SYS$SCRATCH:VMS$DEF'pid'.PCF
$write I64VMS$pcfout "HP I64VMS OPENVMS"
$write I64VMS$pcfout "HP I64VMS VMS"
$write I64VMS$pcfout "HP I64VMS DWMOTIF_SUPPORT"
$in_option = 0
$155_pdf_read1:
$read /error=err_exit /end=155_pdf_end1 I64VMS$plat_pdf plat_rec
$plat_rec = f$edit(plat_rec,"COMPRESS,TRIM,UPCASE")
$if plat_rec .eqs. "" .or. f$extract(0,2,plat_rec) .eqs. "--" -
then goto 155_pdf_read1
$if ( ( f$extract(0,7,plat_rec) .eqs. "OPTION " ) -
.or. ( f$extract(0,5,plat_rec) .eqs. "PART " ) )
$then
$sft_opt_req = f$extract(0,1,plat_rec)
$sft_opt = f$element(1," ",plat_rec)
$in_option = 1
$goto 155_pdf_read1
$endif
$if ( (f$extract(0,11,plat_rec) .eqs. "END OPTION ") -
.or. (f$extract(0,9,plat_rec) .eqs. "END PART ") )
$then
$in_option = 0
$goto 155_pdf_read1
$endif
$if .not. in_option then goto 155_pdf_read1
$soft_state_funct = ""
$if f$extract(0,9,plat_rec) .eqs. "SOFTWARE " then -
goto 155_soft_statement
$if f$extract(0,13,plat_rec) .eqs. "IF (<SOFTWARE" then -
goto 155_soft_function
$goto 155_pdf_read1
$155_soft_statement:
$sft_producer = f$element(1," ",plat_rec)
$sft_prod = f$element(3," ",plat_rec)
$if sft_prod .eqs. "UCX" then sft_prod = "TCPIP"
$sft_pref = f$element(6," ",plat_rec)
$sft_supp = sft_pref
$goto 155_soft_common
$155_soft_function:
$sft_producer = f$element(2," ",plat_rec)
$sft_prod = f$element(4," ",plat_rec)
$if sft_prod .eqs. "UCX" then sft_prod = "TCPIP"
$sft_pref = f$element(9," ",plat_rec)
$sft_supp = f$element(12," ",plat_rec) - ">" - ")"
$goto 155_soft_common
$155_soft_common:
$if prod_plat_help .nes. ""
$then
$librarian /text /extract="''sft_opt''1" -
/out='temp_help' 'prod_plat_help'
$close/error=155_open_temp I64VMS$pcsi_temp_help
$155_open_temp:
$open I64VMS$pcsi_temp_help 'temp_help'
$read I64VMS$pcsi_temp_help sft_prompt
$close I64VMS$pcsi_temp_help
$delete/nolog 'temp_help';*
$else
$sft_prompt = sft_opt
$endif
$if (sft_opt_req .eqs. "P") .and. (.not. first_req_displayed )
$then
$sayblank
$msgdisp_verify
$if install_upgrade .eqs. "I" then saylong "sftwillbeinst1"
$if install_upgrade .eqs. "U" then saylong "sftwillbeupgd1"
$install_verify
$first_req_displayed = 1
$endif
$if (sft_opt_req .eqs. "O") .and. (.not. first_opt_displayed )
$then
$msgdisp_verify
$if install_upgrade .eqs. "I" then saylong "sftwillbeinst2"
$if install_upgrade .eqs. "U" then saylong "sftwillbeupgd2"
$install_verify
$first_opt_displayed = 1
$endif
$say "        o ''sft_prompt'"
$write I64VMS$plattmp "''sft_opt' " -
+ "''sft_producer' " -
+ "''sft_prod' " -
+ "''sft_pref' " -
+ "''sft_supp' " -
+ "''sft_opt_req' " -
+ "''sft_prompt'"
$if sft_prod .eqs. "TCPIP " then -
write I64VMS$plattmp "''sft_opt' " -
+ "DEC" -
+ "UCX " -
+ "''sft_supp' " -
+ "''sft_supp' " -
+ "''sft_opt_req' " -
+ "''sft_prompt'"
$write I64VMS$pcfout "''sft_producer' I64VMS ''sft_opt'" -"_KIT"
$in_option = 0
$goto 155_pdf_read1
$155_pdf_end1:
$close I64VMS$plattmp
$close I64VMS$plat_pdf
$msgdisp_verify
$if install_upgrade .eqs. "I"
$then
$saylong "sftlaterinst"
$else
$saylong "sftlaterupgd"
$endif
$install_verify
$close /error= 155_other_open2 I64VMS$plattmp
$155_other_open2:
$open I64VMS$plattmp SYS$SCRATCH:I64VMS$PLAT.TMP
$155_tmp_read:
$read /error=err_exit /end=155_tmp_end I64VMS$plattmp inpt
$sft_opt = f$element(0," ",inpt)
$sft_producer= f$element(1," ",inpt)
$sft_prod = f$element(2," ",inpt)
$sft_pref = f$element(3," ",inpt)
$sft_supp = f$element(4," ",inpt)
$sft_opt_req = f$element(5," ",inpt)
$sft_prompt = -
inpt - sft_opt - sft_producer - sft_prod - sft_pref - sft_supp -
- sft_opt_req - "      "
$set noon
$define/nolog/user pcsi$source 'other_prods'
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product find 'sft_prod' -
/producer='sft_producer' -
/base_system=I64VMS -
/version='sft_pref'
$sav_status = $status
$set on
$if sav_status .ne. 1
$then
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT FIND" "155_TMP_READ" -
"''f$string(sav_status)'"
$set noon
$set verify
$product find 'sft_prod' -
/producer='sft_producer' -
/base_system=I64VMS -
/version='sft_pref'
$install_verify
$set on
$else
$msgdisp_verify
$saylong "sftnokit" "''sft_prompt' ''sft_prod' ''sft_pref'" -
"''other_prods'"
$install_verify
$endif
$155_nokitterm:
$sayblank
$read /error=155_nokitterm sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_nokitterm
$endif
$endif
$if sft_prod .eqs. "UCX" then goto 155_tmp_read
$if install_upgrade .eqs. "I"
$then
$goto 155_sft_inst
$else
$goto 155_sft_upg
$endif
$155_set_selected:
$if sft_opt .eqs. "DECNET_PLUS_KIT"
$then
$decnet_selected = 1
$decnet_osi_selected = 1
$decnet_iv_selected = 0
$endif
$if sft_opt .eqs. "DECNET_PHASE_IV_KIT"
$then
$decnet_selected = 1
$decnet_osi_selected = 0
$decnet_iv_selected = 1
$endif
$if sft_opt .eqs. "TCPIP_KIT"
$then
$if sft_prod .eqs. "TCPIP"
$then
$tcpip_selected = 1
$tcpip_tcpip_selected = 1
$tcpip_ucx_selected = 0
$else
$tcpip_selected = 1
$tcpip_tcpip_selected = 0
$tcpip_ucx_selected = 1
$endif
$endif
$if sft_opt .eqs. "DWMOTIF_KIT" then dwmotif_selected = 1
$return
$155_sft_inst:
$if sft_opt_req .eqs. "P" then goto 155_tmp_read
$if sft_opt .eqs. "DECNET_PHASE_IV_KIT" -
.and. decnet_osi_selected
$then
$write I64VMS$pcfout "''sft_producer' I64VMS OPENVMS ''sft_opt' 1 0"
$goto 155_tmp_read
$endif
$if sft_opt .eqs. "DECNET_PLUS_KIT"
$then
$sayblank
$msgdisp_verify
$saylong "sftdecnetosikit"
$install_verify
$endif
$msgdisp_verify
$saylong "sftcanins" "''sft_prompt' ''sft_pref'"
$install_verify
$read /error=155_sft_inst sys$output in$ -
/prompt= "''yesnoyes'"
$sayblank
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 095_ask_clu
$if ans .eq. helpansw then goto 155_sft_inst
$if ans .eq. yesansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$gosub 155_set_selected
$goto 155_tmp_read
$endif
$if ans .eq. noansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 0"
$goto 155_tmp_read
$endif
$msgdisp_verify
$say "''yesorno'"
$install_verify
$goto 155_sft_inst
$155_sft_upg:
$if sft_opt .eqs. "DECNET_PLUS_KIT" -
.and. decnet_iv_present -
.and. .not. decnet_osi_present
$then
$sayblank
$msgdisp_verify
$saylong "sftdecnetosikit"
$install_verify
$sayblank
$msgdisp_verify
$saylong "sftcanins" "''sft_prompt' ''sft_pref'"
$install_verify
$read /error=155_sft_upg sys$output in$ -
/prompt= "''yesnoyes'"
$sayblank
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$decnet_selected = 1
$decnet_osi_selected = 1
$decnet_iv_selected = 0
$goto 155_tmp_read
$endif
$if ans .eq. noansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 0"
$goto 155_tmp_read
$endif
$msgdisp_verify
$say "''yesorno'"
$install_verify
$goto 155_sft_upg
$endif
$if sft_opt .eqs. "TCPIP_KIT" -
.and. tcpip_ucx_present -
.and. .not. tcpip_tcpip_present
$then
$sayblank
$msgdisp_verify
$saylong "sfttcpipkit"
$install_verify
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product UCX /remote /span_versions=minimum='sft_supp'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$sayblank
$msgdisp_verify
$saylong "sftcanins" "''sft_prompt' ''sft_pref'"
$install_verify
$read /error=155_sft_upg sys$output in$ -
/prompt= "''yesnoyes'"
$sayblank
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$write I64VMS$pcfout "HP I64VMS OPENVMS TCPIP_UPGRADE 1 1"
$tcpip_selected = 1
$tcpip_tcpip_selected = 1
$tcpip_ucx_selected = 0
$goto 155_tmp_read
$endif
$if ans .eq. noansw
$then
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$write I64VMS$pcfout "HP I64VMS OPENVMS TCPIP_UPGRADE 1 0"
$tcpip_selected = 1
$tcpip_tcpip_selected = 0
$tcpip_ucx_selected = 1
$goto 155_tmp_read
$endif
$msgdisp_verify
$say "''yesorno'"
$install_verify
$goto 155_sft_upg
$else
$if sav_status .eq. %X0652A043
$then
$msgdisp_verify
$saylong "sftisins" "''sft_prompt'"
$install_verify
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$write I64VMS$pcfout "HP I64VMS OPENVMS TCPIP_UPGRADE 1 1"
$tcpip_selected = 1
$tcpip_tcpip_selected = 1
$tcpip_ucx_selected = 0
$goto 155_tmp_read
$else
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "155_SFT_UPG" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product UCX /remote -
/span_versions=minimum='sft_supp'
$install_verify
$set on
$155_sft_upg_term:
$sayblank
$read /error=155_sft_upg_term sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upg_term
$endif
$endif
$endif
$endif
$if sft_opt .eqs. "DECNET_PHASE_IV_KIT" -
.and. decnet_osi_selected -
.and. decnet_iv_present
$then
$msgdisp_verify
$saylong "sftwillberemoved" "''sft_prompt'"
$install_verify
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 0"
$goto 155_tmp_read
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product 'sft_prod' /remote /span_versions=above='sft_pref'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "sftalreadyins" "''sft_prompt'"
$install_verify
$gosub 155_set_selected
$if sft_opt_req .eqs. "O" then -
write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$goto 155_tmp_read
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "155_SFT_UPG_TERM" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product 'sft_prod' /remote -
/span_versions=above='sft_pref'
$install_verify
$set on
$155_sft_upg_term2:
$sayblank
$read /error=155_sft_upg_term2 sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upg_term2
$endif
$endif
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product 'sft_prod' /remote /version='sft_pref'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "sftalreadyins" "''sft_prompt' ''sft_pref'"
$install_verify
$gosub 155_set_selected
$if sft_opt_req .eqs. "O" then -
write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$goto 155_tmp_read
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "155_SFT_UPG_TERM2" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product 'sft_prod' /remote /version='sft_pref'
$install_verify
$set on
$155_sft_upg_term3:
$sayblank
$read /error=155_sft_upg_term3 sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upg_term3
$endif
$endif
$endif
$155_sft_upg_ask:
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product 'sft_prod' /remote /span_versions=minimum='sft_supp'
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$define sys$error nl:
$define sys$output nl:
$set noon
$pipe ( set command 'tar$pcsi_cld' ; -
product show product 'sft_prod' /remote ) <PIPE> -
sear sys$input "''sft_prod'" <PIPE> -
( read sys$input str ; -
ver = f$element(3," ",str) ; -
define /job sft$inst_ver &ver )
$sft_inst = f$trnlnm("sft$inst_ver","LNM$JOB")
$set on
$deassign sys$output
$deassign sys$error
$msgdisp_verify
$saylong "sftalreadysup" "''sft_inst'" "''sft_prompt'" "''sft_pref'"
$install_verify
$gosub 155_set_selected
$sup_prod_ver = "''sft_prompt'" + " " + "''sft_pref'"
$sayblank
$read sys$output /error=155_sft_upg_ask in$ -
/prompt = "''wanttoupg'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw
$then
$if sft_opt_req .eqs. "O" then write I64VMS$pcfout -
"HP I64VMS OPENVMS ''sft_opt' 1 1"
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_prod'_UPGRADE 1 1"
$goto 155_tmp_read
$endif
$if ans .eq. noansw
$then
$if sft_opt_req .eqs. "O" then write I64VMS$pcfout -
"HP I64VMS OPENVMS ''sft_opt' 1 1"
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_prod'_UPGRADE 1 0"
$goto 155_tmp_read
$endif
$say "''yesorno'"
$goto 155_sft_upg_ask
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "155_SFT_UPG_ASK" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product 'sft_prod' /remote -
/span_versions=minimum='sft_supp'
$install_verify
$set on
$155_sft_upg_term4:
$sayblank
$read /error=155_sft_upg_term4 sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upg_term4
$endif
$endif
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product 'sft_prod' /remote
$sav_status = $status
$set on
$if sav_status .eq. 1
$then
$msgdisp_verify
$saylong "sftisins" "''sft_prompt'"
$install_verify
$gosub 155_set_selected
$if sft_opt_req .eqs. "O" then write I64VMS$pcfout -
"HP I64VMS OPENVMS ''sft_opt' 1 1"
$goto 155_tmp_read
$else
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "155_SFT_UPG_TERM4" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product 'sft_prod' /remote
$install_verify
$set on
$155_sft_upg_term5:
$sayblank
$read /error=155_sft_upg_term5 sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 155_sft_upg
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upg_term5
$endif
$endif
$endif
$if sft_prod .eqs. "DECNET_PLUS" .and. decnet_osi_present -
then goto 155_sft_upgx
$if sft_prod .eqs. "DECNET_PHASE_IV" .and. decnet_iv_present -
then goto 155_sft_upgx
$if sft_prod .eqs. "DWMOTIF" .and. dwmotif_dwmotif_present -
then goto 155_sft_upgx
$if ( (sft_prod .eqs. "TCPIP" .and. tcpip_tcpip_present) -
.or. (sft_prod .eqs. "TCPIP" .and. tcpip_ucx_present) ) -
then goto 155_sft_upgx
$goto 155_sft_upgz
$155_sft_upgx:
$msgdisp_verify
$saylong "sftnotpcsi" "''sft_prompt'"
$install_verify
$gosub 155_set_selected
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 1"
$goto 155_tmp_read
$155_sft_upgz:
$if sft_opt_req .eqs. "O"
$then
$msgdisp_verify
$saylong "sftisnot" "''sft_prompt'"
$install_verify
$write I64VMS$pcfout "HP I64VMS OPENVMS ''sft_opt' 1 0"
$goto 155_tmp_read
$endif
$if sft_opt_req .eqs. "P"
$then
$msgdisp_verify
$saylong "sftisreq" "''sft_prompt'"
$install_verify
$goto 155_tmp_read
$endif
$saylong "proderror" "INVALID SFT_OPT_REQ" "155_SFT_UPZ" -
" SFT_OPT_REQ = ""''sft_opt_req'"""
$sayblank
$read /error=155_sft_upgz sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. helpansw then goto 155_sft_upgz
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 155_sft_upgz
$endif
$goto 155_tmp_read
$155_tmp_end:
$sayblank
$if decnet_selected
$then
$write I64VMS$pcfout "HP I64VMS VMS DECNET 1 1"
$write I64VMS$pcfout "HP I64VMS VMS DECNET_REMOTE_FILE 1 1"
$write I64VMS$pcfout "HP I64VMS VMS DECNET_REMOTE_TERMINAL 1 1"
$write I64VMS$pcfout "HP I64VMS VMS DECNET_NETWORK_TEST 1 1"
$write I64VMS$pcfout "HP I64VMS VMS DECNET_REMOTE_TASK 1 1"
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product DWMOTIF_SUPPORT /remote
$sav_status = $status
$set on
$if ( (sav_status .eq. 1) -
.or. (dwmotif_selected) )
$then
$write I64VMS$pcfout "HP I64VMS VMS DECWINDOWS_SUPPORT 1 1"
$write I64VMS$pcfout "HP I64VMS DWMOTIF_SUPPORT WORKSTATION 1 1"
$write I64VMS$pcfout "HP I64VMS DWMOTIF_SUPPORT DECWINDOWS_FONTS 1 1"
$write I64VMS$pcfout "HP I64VMS DWMOTIF_SUPPORT DECWINDOWS_100DPI 1 1"
$endif
$pcf_option = "/CONFIGURATION=(INPUT=SYS$SCRATCH:VMS$DEF''pid'.PCF)"
$close I64VMS$plattmp
$delete SYS$SCRATCH:I64VMS$PLAT.TMP;*
$close I64VMS$pcfout
$157_askhelp:
$msgdisp_verify
$saylong "helpinfo" "installation"
$install_verify
$157_askhelp_a:
$sayblank
$read sys$output /error=157_askhelp_a in$ -
/prompt = "''askhlpmode'"
$if in$ .eqs. "" then in$ = novalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 157_askhelp
$if ans .eq. yesansw
$then
$helpmode = "HELP"
$else
$if ans .eq. noansw
$then
$helpmode = "NOHELP"
$else
$say "''yesorno'"
$goto 157_askhelp_a
$endif
$endif
$if decnet_osi_selected -
.and. decnet_iv_installed -
.and. .not. decnet_iv_referenced
$then
$target_modified = 1
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$PRODUCT REMOVE DECNET_PHASE_IV -
/VERSION=* -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
/REMOTE -
/NODEBUG -
/'logmode'
$sav_status = $status
$set on
$endif
$if decnet_iv_selected -
.and. decnet_osi_installed -
.and. .not. decnet_osi_referenced
$then
$target_modified = 1
$msgdisp_verify
$saylong "sftremovebecause" "DECnet-Plus" "DECnet Phase IV has been selected."
$install_verify
$set noon
$PRODUCT REMOVE DECNET_PLUS -
/VERSION=* -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
/REMOTE -
/NODEBUG -
/'logmode'
$set on
$endif
$if tcpip_tcpip_selected -
.and. tcpip_ucx_installed
$then
$target_modified = 1
$msgdisp_verify
$saylong "sftremovebecause" -
"TCP/IP (UCX)" "the new (TCPIP) implementation has been selected."
$install_verify
$define/nolog/job pcsi$source -
SYS$SYSDEVICE:,SYS$SYSDEVICE:[VMS$COMMON],'other_prods'
$set noon
$PRODUCT REMOVE UCX -
/VERSION=* -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
/REMOTE -
/DEBUG=DISABLE4 -
/'logmode'
$set on
$if f$trnlnm("pcsi$source","LNM$JOB") .nes. "" then -
deassign /job pcsi$source
$endif
$160_remove_ssl:
$if install_upgrade .eqs. "I" then goto 160_after_ask
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product SSL /remote /base=AXPVMS /producer=CPQ
$sav_status = $status
$set on
$if sav_status .eq. %X00000001
$then
$msgdisp_verify
$saylong "sftremovebecause" -
"CPQ AXPVMS SSL" "The new, HP version of SSL has been selected."
$install_verify
$ssl_prod = "CPQ"
$goto 160_do_remove
$endif
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "160_prod_install" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product SSL /remote /base=AXPVMS /producer=CPQ
$sho sym $status
$install_verify
$set on
$goto 160_ask
$endif
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$product show product SSL /remote /base=AXPVMS /producer=DEC
$sav_status = $status
$set on
$if sav_status .eq. %X00000001
$then
$msgdisp_verify
$saylong "sftremovebecause" -
"DEC AXPVMS SSL" "the new, HP version of SSL has been selected."
$install_verify
$ssl_prod = "DEC"
$goto 160_do_remove
$endif
$if sav_status .ne. %X0652A043
$then
$msgdisp_verify
$saylong "proderror" "PRODUCT SHOW" "160_prod_install" -
"''f$string(sav_status)'"
$set noon
$set verify
$product show product SSL /remote /base=AXPVMS /producer=DEC
$sho sym $status
$install_verify
$set on
$goto 160_ask
$endif
$goto 160_after_ask
$160_do_remove:
$set noon
$PRODUCT REMOVE SSL -
/VERSION=* -
/PRODUCER='ssl_prod' -
/BASE_SYSTEM=AXPVMS -
/REMOTE -
/DEBUG=DISABLE4 -
/'logmode'
$set on
$sayblank
$sayblank
$goto 160_remove_ssl
$160_ask:
$sayblank
$read /error=160_ask sys$output in$ -
/prompt = "''wanttoterm'"
$if in$ .eqs. "" then in$ = yesvalue
$msgdisp_verify
$saylong "checkyesorno" "''in$'"
$ans = $status
$install_verify
$if ans .eq. backansw then goto 060_target
$if ans .eq. helpansw then goto 160_remove_ssl
$if ans .eq. yesansw then goto terminate_exit
$if ans .ne. noansw
$then
$say "''yesorno'"
$goto 160_ask
$endif
$160_after_ask:
$if install_upgrade .eqs. "I" then goto 161_after_ask
$if f$trnlnm("pcsi$prod","LNM$JOB") .gts. "" then -
deasign /job pcsi$prod
$set noon
$pipe ( set command 'tar$pcsi_cld' ; -
prod show prod /remote ENCRYPT ) <PIPE> -
search sys$input "ENCRYPT" <PIPE> -
( read sys$input str ; -
define /job pcsi$prod &str )
$set on
$pcsi_prod = f$trnlnm("pcsi$prod","LNM$JOB")
$if f$trnlnm("pcsi$prod","LNM$JOB") .gts. "" then -
deasign /job pcsi$prod
$if pcsi_prod .eqs. "No strings matched" then goto 161_after_ask
$prodcr = f$element(0," ",pcsi_prod)
$bas_sys = f$element(1," ",pcsi_prod)
$prod$ = f$element(2," ",pcsi_prod)
$if prod$ .nes. "ENCRYPT" then goto 161_after_ask
$msgdisp_verify
$saylong "sftremovebecause" -
"''prodcr' ''bas_sys' ''prod$'" "OpenVMS now includes ENCRYPT."
$install_verify
$set noon
$product remove /remote /prod='prodcr' /base='bas_sys' ENCRYPT /version=*
$set on
$161_after_ask:
$target_modified = 2
$if update_npag_bap_max_pa then define/nolog/job pcsi$npag_bap_max_pa 1
$if prod_oper .eqs. "INSTALL"
$then
$prod_dest = "/DESTINATION=''target_disk'[VMS$COMMON]"
$else
$prod_dest = ""
$endif
$define/job/nolog I64VMS$pcsi_prod_ver_vis "''prod_ver_vis'"
$if partial_kit .and. partial_upgrade
$then
$common_dir = "UPD$COMMON"
$inst_ver_vis = part_ver_vis
$else
$common_dir = "VMS$COMMON"
$inst_ver_vis = prod_ver_vis
$endif
$if inst_prod .eqs. "OPENVMS"
$then
$define/nolog/job pcsi$source -
SYS$SYSDEVICE:,SYS$SYSDEVICE:['common_dir'],'other_prods'
$else
$define/nolog/job pcsi$source SYS$SYSDEVICE:['common_dir'],'other_prods'
$endif
$if inst_prod .eqs. "OPENVMS"
$then
$debug_opt = "/DEBUG=DISABLE3"
$else
$debug_opt = ""
$endif
$if install_upgrade .eqs. "U"
$then
$define/job/nolog I64VMS$PCSI_PRESERVE_SIGNATURE "TRUE"
$else
$define/job/nolog I64VMS$PCSI_PRESERVE_SIGNATURE "FALSE"
$endif
$if (prod_oper .eqs. "INSTALL") .and. (inst_prod .eqs. "VMS")
$then
$msgdisp_verify
$saylong "notreinstdwsup"
$install_verify
$160_ask_cont:
$read sys$output /error=160_ask_cont inpt /prompt = "''returncont'"
$endif
$if prod_oper .eqs. "INSTALL" then -
prod_oper = prod_oper + " /NORECOVERY"
$define/nolog/user sys$login 'f$trnlnm("sys$scratch")'
$define/nolog/user sys$command sys$output
$set noon
$PRODUCT 'prod_oper' /version='inst_ver_vis' 'inst_prod' -
/PRODUCER=HP -
/BASE_SYSTEM=I64VMS -
'prod_dest' -
/WORK='target_disk'[000000] -
'pcf_option' -
/'helpmode' -
/REMOTE -
'debug_opt' -
/NOTEST -
/'logmode'
$sav_status = $status .and. %XEFFFFFFF
$set on
$if f$trnlnm("I64VMS$PCSI_PRESERVE_SIGNATURE","LNM$JOB") .nes. "" then -
deassign/JOB I64VMS$PCSI_PRESERVE_SIGNATURE
$if f$trnlnm("pcsi$source","LNM$JOB") .nes. "" then -
deassign/JOB pcsi$source
$deassign /job I64VMS$pcsi_prod_ver_vis
$if update_npag_bap_max_pa then deassign/job pcsi$npag_bap_max_pa
$if f$search("SYS$SCRATCH:VMS$DEF''pid'.PCF") .nes. "" then -
delete SYS$SCRATCH:VMS$DEF'pid'.PCF;*
$if ( (sav_status .eq. %X053D8522) -
.or. (sav_status .eq. %X0652800A) -
.or. (sav_status .eq. %X0652A213) ) -
then goto terminate_exit
$if sav_status .eq. %X0652A243
$then
$msgdisp_verify
$saylong "userconterr"
$install_verify
$sayblank
$endif
$if .not. sav_status
$then
$say f$message(sav_status)
$goto 0_exit
$endif
$if f$search("''target_disk'[000000]alpha_tools.dir") .eqs. ""
$then if f$search("''target_disk'[vms$common]alpha_tools.dir") .nes. ""
$then set file 'target_disk'[vms$common]alpha_tools.dir -
/enter='target_disk'[000000]alpha_tools.dir
$endif
$endif
$if install_upgrade .nes. "U" then goto 160_set_clumem
$define/nolog/exec sysuaf 'target_disk'[VMS$COMMON.SYSEXE]SYSUAF
$define/nolog/exec rightslist 'target_disk'[VMS$COMMON.SYSEXE]RIGHTSLIST
$define/nolog/exec netproxy 'target_disk'[VMS$COMMON.SYSEXE]NETPROXY
$uaf = "$''target_disk'[VMS$COMMON.SYSEXE]AUTHORIZE"
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf add/identifier vms$buffer_object_user/value:identifier:8
$set noon
$define/nolog/user sys$output nl:
$define/nolog/user sys$error nl:
$uaf add/identifier vms$mem_resident_user/value:identifier:9
$set on
$deassign/exec sysuaf
$deassign/exec rightslist
$deassign/exec netproxy
$goto 170_skip_install
$160_set_clumem:
$close/error=160_open_answer I64VMS$pcsi_answer
$160_open_answer:
$open/write I64VMS$pcsi_answer 'target_disk'[VMS$COMMON.SYSEXE]INS_ANSWER.COM
$write I64VMS$pcsi_answer "$   clu_mem = ""''clu_mem'"""
$write I64VMS$pcsi_answer "$   galaxy_mem = ""''galaxy_mem'"""
$write I64VMS$pcsi_answer "$   install_upgrade = ""''install_upgrade'"""
$write I64VMS$pcsi_answer "$   target_scsnode= ""''scsnode'"""
$write I64VMS$pcsi_answer "$   target_scssystemid= ''scsid'"
$close I64VMS$pcsi_answer
$close/error=160_open_modparams I64VMS$pcsi_modparams
$160_open_modparams:
$if f$search("''target_disk'[SYS0.SYSEXE]MODPARAMS.DAT") .nes. ""
$then
$open /append I64VMS$pcsi_modparams -
'target_disk'[SYS0.SYSEXE]MODPARAMS.DAT
$else
$create 'target_disk'[SYS0.SYSEXE]MODPARAMS.DAT
$open /append I64VMS$pcsi_modparams -
'target_disk'[SYS0.SYSEXE]MODPARAMS.DAT
$endif
$write I64VMS$pcsi_modparams "! SYS$SYSDEVICE:[SYS0.SYSEXE]MODPARAMS.DAT"
$mod_cre = -
F$FAO("!! Created during installation of OpenVMS AXP ''prod_ver_vis' !%D",0)
$write I64VMS$pcsi_modparams mod_cre
$write I64VMS$pcsi_modparams "!"
$if .not. clu_mem
$then
$write I64VMS$pcsi_modparams "VAXCLUSTER=0"
$endif
$if galaxy_mem
$then
$write I64VMS$pcsi_modparams "GALAXY=1"
$endif
$write I64VMS$pcsi_modparams "SCSNODE=""''scsnode'"""
$write I64VMS$pcsi_modparams "SCSSYSTEMID=''scsid'"
$if f$search("''target_disk'[VMS$COMMON.SYSLIB]DECW$TRANSPORT_COMMON.EXE") -
.eqs. ""
$then
$write I64VMS$pcsi_modparams "WINDOW_SYSTEM=1"
$endif
$write I64VMS$pcsi_modparams "!"
$write I64VMS$pcsi_modparams -
"! End of SYS$SYSDEVICE:[SYS0.SYSEXE]MODPARAMS.DAT"
$write I64VMS$pcsi_modparams mod_cre
$close I64VMS$pcsi_modparams
$close/error=160_open_temp_sysgen I64VMS$pcsi_temp_sysgen
$160_open_temp_sysgen:
$open /write I64VMS$pcsi_temp_sysgen -
'target_disk'[SYS0.SYSEXE]TEMP_SYSGEN.COM
$write I64VMS$pcsi_temp_sysgen "$ mcr sysgen"
$write I64VMS$pcsi_temp_sysgen "$deck"
$write I64VMS$pcsi_temp_sysgen -
"use ''target_disk'[SYS0.SYSEXE]IA64VMSSYS.PAR"
$write I64VMS$pcsi_temp_sysgen "set scsnode ""''scsnode'"""
$write I64VMS$pcsi_temp_sysgen "set scssystemid ''scsid'"
$write I64VMS$pcsi_temp_sysgen -
"write ''target_disk'[SYS0.SYSEXE]IA64VMSSYS.PAR"
$write I64VMS$pcsi_temp_sysgen "exit"
$write I64VMS$pcsi_temp_sysgen "$eod"
$close I64VMS$pcsi_temp_sysgen
$@'target_disk'[SYS0.SYSEXE]TEMP_SYSGEN.COM
$delete/nolog 'target_disk'[SYS0.SYSEXE]TEMP_SYSGEN.COM;
$170_skip_install:
$if f$search("''target_disk'[VMS$COMMON.SYSHLP]HELPLIB.HLB") .gts. "" then -
purge 'target_disk'[VMS$COMMON.SYSHLP]HELPLIB.HLB
$if f$search("''target_disk'[VMS$COMMON.SYSLIB]STARLET.OLB") .gts. "" then -
purge 'target_disk'[VMS$COMMON.SYSLIB]STARLET.OLB
$pcsi_file = "HP-I64VMS-OPENVMS-*-5.PCSI$DESCRIPTION"
$gosub 170_purge_pcsi
$pcsi_file = "HP-I64VMS-OPENVMS-*-5.PCSI$TLB"
$gosub 170_purge_pcsi
$pcsi_file = "HP-I64VMS-VMS-*-2.PCSI$DESCRIPTION"
$gosub 170_purge_pcsi
$pcsi_file = "HP-I64VMS-VMS-*-2.PCSI$TLB"
$gosub 170_purge_pcsi
$goto 170_after_purge_pcsi
$170_purge_pcsi:
$purge 'target_disk'[VMS$COMMON]'pcsi_file'
$170_purge_loop:
$test_file = f$search("''target_disk'[VMS$COMMON]''pcsi_file'")
$if test_file .eqs. "" then return
$if f$locate(prod_ver_name,test_file) .eq. f$length(test_file) then -
delete 'test_file'
$goto 170_purge_loop
$170_after_purge_pcsi:
$if pcsi$usenew
$then
$deassign/job pcsi$main
$deassign/job pcsi$shr
$set command SYS$UPDATE:PCSI.CLD
$tar$pcsi_cld := SYS$UPDATE:PCSI.CLD
$endif
$if pcsi$keepnew
$then
$copy 'target_disk'[PCSI$NEWER]pcsi$main.exe -
'target_disk'[vms$common.sysexe]
$purge 'target_disk'[vms$common.sysexe]pcsi$main.exe
$copy 'target_disk'[PCSI$NEWER]pcsi$shr.exe -
'target_disk'[vms$common.syslib]
$purge 'target_disk'[vms$common.syslib]pcsi$shr.exe
$copy 'target_disk'[PCSI$NEWER]pcsi.cld -
'target_disk'[vms$common.sysupd]
$purge 'target_disk'[vms$common.sysupd]pcsi.cld
$endif
$if f$search("''target_disk'[PCSI$NEWER]*.*") .nes. ""
$then
$delete 'target_disk'[PCSI$NEWER]*.*;*
$endif
$if f$search("''target_disk'[000000]PCSI$NEWER.DIR") .nes. ""
$then
$delete 'target_disk'[000000]PCSI$NEWER.DIR;
$endif
$if f$getsyi("arch_name") .eqs. "Alpha"
$then
$booted_osflags = f$getenv("BOOTED_OSFLAGS")
$flags = f$element(1,",",booted_osflags)
$flags_int = f$integer("%x''flags'")
$foreign_install = 0
$if flags_int/%x80000/2*2 .ne. flags_int/%x80000 then foreign_install=1
$if foreign_install
$then
$msgdisp_verify
$saylong "foreigntarg"
$install_verify
$read sys$output /error=170_return inpt /prompt = "''returncont'"
$170_return:
$endif
$endif
$if ( "I64" .nes. "I64" ) then goto 170_bootoption_070
$bcfg = "$SYS$SYSTEM:EFI$BCFG.EXE"
$if .not. bcfg$choice then goto 170_bootoption_050
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> search/noout sys$input "0 entries found."
$sav_status = $status .and. %X0FFFFFFF
$deassign sys$error
$deassign sys$output
$if sav_status .eq. 1
$then
$goto 170_bootoption_020
$endif
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> search/noout sys$input "1 entries found."
$sav_status = $status .and. %X0FFFFFFF
$deassign sys$error
$deassign sys$output
$if sav_status .eq. 1
$then
$goto 170_bootoption_030
$endif
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> search/noout sys$input " entries found."
$sav_status = $status .and. %X0FFFFFFF
$deassign sys$error
$deassign sys$output
$if sav_status .eq. 1
$then
$goto 170_bootoption_040
$endif
$msgdisp_verify
$saylong "proderror" "bcfg BOOT SHOW" "170_bootoption_010" -
"''f$string(sav_status)'"
$set noon
$set verify
$bcfg BOOT SHOW 'target_disk'
$sho sym $status
$install_verify
$goto 170_bootoption_050
$170_bootoption_020:
$sayblank
$sayblank
$bcfg BOOT ADD 1 'target_disk' 'bcfg_flags' "OpenVMS on ''target_disk'"
$msgdisp_verify
$saylong "bcfg_optcalled"
$if bcfg_flags .nes. "" then say "    VMS_FLAGS are set to ''bcfg_flags'"
$install_verify
$goto 170_bootoption_070
$170_bootoption_030:
$sayblank
$sayblank
$bcfg BOOT VALIDATE 'target_disk'
$goto 170_bootoption_070
$170_bootoption_040:
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> -
sear sys$input " entries found" <PIPE> -
( read sys$input xx ; -
define/job num$dev &xx )
$deassign sys$error
$deassign sys$output
$num$dev = f$element(0," ",f$trnlnm("num$dev","LNM$JOB"))
$if f$trnlnm("num$dev","LNM$JOB") .gts. "" then -
deassign/job num$dev
$define /nolog sys$error nl:
$define /nolog sys$output nl:
$pipe bcfg BOOT SHOW 'target_disk' <PIPE> -
sear sys$input /stat " Fibre(" <PIPE> -
sear sys$input "Records matched:" <PIPE> -
( read sys$input xx ; -
defi/job num$fibre &xx )
$deassign sys$error
$deassign sys$output
$num$fibre = -
f$element(2," ",f$edit(f$trnlnm("num$fibre","LNM$JOB"),"TRIM,COMPRESS") )
$if f$trnlnm("num$fibre","LNM$JOB") .gts. "" then -
deassign/job num$fibre
$if num$fibre .eq. num$dev then goto 170_bootoption_030
$sayblank
$msgdisp_verify
$saylong "bcfg_multopt"
$install_verify
$goto 170_bootoption_050
$170_bootoption_050:
$sayblank
$msgdisp_verify
$saylong "bcfg_runmgr"
$install_verify
$goto 170_bootoption_070
$170_bootoption_070:
$if install_upgrade .eqs. "I"
$then
$msgdisp_verify
$saylong "installfin"
$install_verify
$else
$msgdisp_verify
$saylong "upgradefin"
$install_verify
$endif
$if ans .eq. backansw then goto 070_mount
$if ans .eq. helpansw then goto 070_targetdirorg_z
$if ans .eq. yesansw then bcfg$choice = 1
$if ans .eq. noansw then bcfg$choice = 0
$if (ans .ne. yesansw) .and. (ans .ne. noansw) then -
goto 070_targetdirorg_z
$goto common_exit
$y_exit:
$msgdisp_verify
$saylong "yexit" "''install_upgrade'"
$install_verify
$if target_modified .gt. 0 .and. init_preserve .eqs. "P"
$then
$msgdisp_verify
$saylong "mayneedtorestore"
$install_verify
$if target_modified .eq. 1
$then
$msgdisp_verify
$saylong "shouldbeable" "''install_upgrade'"
$install_verify
$else
$msgdisp_verify
$saylong "recommendrestore" "''install_upgrade'"
$install_verify
$endif
$endif
$goto 0_exit
$err_exit:
$sav_status = $status
$say f$message(sav_status)
$msgdisp_verify
$saylong "unexpecterr" "''install_upgrade'"
$install_verify
$if target_modified .gt. 0 .and. init_preserve .eqs. "P"
$then
$msgdisp_verify
$saylong "mayneedtorestore"
$install_verify
$if target_modified .eq. 1
$then
$msgdisp_verify
$saylong "shouldbeable" "''install_upgrade'"
$install_verify
$else
$msgdisp_verify
$saylong "recommendrestore" "''install_upgrade'"
$install_verify
$endif
$endif
$if sav_status .lt. %x10000000 then sav_status = sav_status + %x10000000
$goto common_exit
$terminate_exit:
$msgdisp_verify
$saylong "userterminated" "''install_upgrade'"
$install_verify
$if target_modified .gt. 0 .and. init_preserve .eqs. "P"
$then
$msgdisp_verify
$saylong "mayneedtorestore"
$install_verify
$if target_modified .eq. 1
$then
$msgdisp_verify
$saylong "shouldbeable" "''install_upgrade'"
$install_verify
$else
$msgdisp_verify
$saylong "recommendrestore" "''install_upgrade'"
$install_verify
$endif
$endif
$goto 0_exit
$0_exit:
$sav_status = %x10000000
$goto common_exit
$common_exit:
$set nocontrol = Y
$on control_y then continue
$on warning then continue
$close/error=y_1 I64VMS$messages
$y_1:
$close/error=y_2 I64VMS$pcsi_modparams
$y_2:
$close/error=y_3 I64VMS$pcsi_answer
$y_3:
$close/error=y_4 I64VMS$pcfout
$y_4:
$if f$search("SYS$SCRATCH:VMS$DEF''pid'.PCF") .nes. "" then -
delete SYS$SCRATCH:VMS$DEF'pid'.PCF;*
$close/error=y_6 I64VMS$plat_pdf
$y_6:
$close/error=y_7 I64VMS$plattmp
$y_7:
$if f$search("SYS$SCRATCH:I64VMS$PLAT.TMP") .nes. "" then -
delete SYS$SCRATCH:I64VMS$PLAT.TMP;*
$close/error=y_8 I64VMS$pcsi_temp_help
$y_8:
$if f$search(temp_help) .nes. "" then -
delete 'temp_help';*
$if f$trnlnm("I64VMS$pcsi_prod_ver_vis") .gts. ""
$then
$deassign /job I64VMS$pcsi_prod_ver_vis
$endif
$if f$trnlnm("pcsi$sysdevice") .gts. ""
$then
$deassign pcsi$sysdevice
$endif
$if f$trnlnm("pcsi$specific") .gts. ""
$then
$deassign pcsi$specific
$endif
$if f$trnlnm("pcsi$destination") .gts. ""
$then
$deassign pcsi$destination
$endif
$if f$trnlnm("sysuaf",,,"EXECUTIVE") .gts. ""
$then
$deassign sysuaf
$endif
$if f$trnlnm("rightslist",,,"EXECUTIVE") .gts. ""
$then
$deassign rightslist
$endif
$if f$trnlnm("netproxy",,,"EXECUTIVE") .gts. ""
$then
$deassign netproxy
$endif
$if scratch_defined
$then
$deassign/job sys$scratch
$endif
$if f$search("SYS$SCRATCH:VMS$DEF''pid'.PCF") .nes. "" then -
delete SYS$SCRATCH:VMS$DEF'pid'.PCF;*
$set message 'sa_message'
$set term sys$output /echo
$sav_ver = f$verify(sav_ver)
$saved_privs = f$setprv(saved_privs)
$set control=(Y,T)
$logout
 

$!  © Copyright 1976, 2009 Hewlett-Packard Development Company, L.P.
$type sys$input
 
             hp OpenVMS Industry Standard 64
 
    Instant Capacity on Demand (iCAP) configuration utility
 
 
    **************** W A R N I N G ****************
 
    This procedure stops and restarts the CIMSERVER
    process. ALL WBEM provider modules will be
    unavailable for a short period of time during the
    configuration.
 
    **************** W A R N I N G ****************
 
$GOTO ICAP_CONFIG_MAIN
$ready_question:
$read /prompt="Are you ready to start the configuration process? (Y/N): " -
sys$command action
$action = f$edit(action,"COMPRESS,UPCASE")
$IF ((action .eqs. "N") .or. (action .eqs. "NO")) then goto exit
$IF ((action .eqs. "Y") .or. (action .eqs. "YES")) then goto start_config
$goto ready_question
$start_config:
$write sys$output " "
$gosub check_privs
$deassign/nolog/job wbem
$pipe prod show product wbemcim <PIPE> sear sys$pipe wbemcim <PIPE> -
(read sys$pipe wbem ; def/job wbem &wbem)
$if f$locate("Installed",f$trnlnm("wbem")) .eq. f$length(f$trnlnm("wbem"))
$then
$write sys$output "%ICAP-F-NOWBEM, WBEMCIM is not installed on this system"
$goto missing_exit
$endif
$pipe show system/proc=cimserver <PIPE> search sys$pipe cimserver <PIPE> -
(read sys$pipe cimserver ; def/job cimserver &cimserver)
$if f$locate("CIMSERVER",f$trnlnm("cimserver")) .eq. f$length(f$trnlnm("cimserver"))
$then
$write sys$output "%ICAP-F-WBEMNOTSTARTED, WBEMCIM has not been started on this system. Please start WBEMCIM and try again"
$goto missing_exit
$endif
$IF F$SEARCH("SYS$LIBRARY:LIBHPNPARPROVIDER.EXE")     .eqs. "" THEN GOTO missing_npar
$IF F$SEARCH("SYS$LIBRARY:LIBICODPROVIDERMODULE.EXE") .eqs. "" THEN GOTO missing_icap
$IF F$SEARCH("WBEM_OPT:[WBEM.BIN]CIMPROVIDER.EXE")    .eqs. "" THEN GOTO missing_cp
$IF F$SEARCH("WBEM_OPT:[WBEM.BIN]CIMMOF.EXE")         .eqs. "" THEN GOTO missing_cm
$cimmof:==$WBEM_OPT:[WBEM.BIN]CIMMOF.EXE
$gosub register_npar_mofs
$gosub register_icap_mofs
$gosub verify_providers
$gosub register_cld
$gosub icap_config_questions
$gosub start_icap_server
$exit:
$exit
$missing_npar:
$write sys$output ("%ICAP-F-NONPAR, the nPartition WBEM provider was not found")
$goto missing_exit
$missing_icap:
$write sys$output ("%ICAP-F-NOICAP, the iCAP WBEM provider was not found")
$goto missing_exit
$missing_cp:
$write sys$output ("%ICAP-F-NOCP, cimprovider.exe was not found")
$goto missing_exit
$missing_cm:
$write sys$output ("%ICAP-F-NOCM, cimmof.exe was not found")
$goto missing_exit
$missing_exit:
$write sys$output ("%ICAP-F-ABORT, aborting configuration....")
$exit
$register_npar_mofs:
$write sys$output "Starting configuration of the nPar provider:"
$goto done_npar_mofs
$write sys$output "	Creating the nPar namespace"
$cimmof -w -n root/cimv2/npar sys$update:CIM_Qualifiers25.mof
$write sys$output "	Registering Managed Object Format (MOF) files"
$dcl$ctrlt="Registering MOF files, please be patient..."
$cimmof -w -n root/cimv2/npar sys$update:NPar.mof
$write sys$output "	Registering the nPartition provider with the CIMSERVER"
$cimmof -w -n root/PG_InterOp sys$update:NParReg.mof
$delete/symbol dcl$ctrlt
$done_npar_mofs:
$return
$register_icap_mofs:
$write sys$output "Starting configuration of the iCAP provider:"
$goto done_icap_mofs
$write sys$output "Creating the iCAP namespace"
$cimmof -w -n root/cimv2/npar sys$update:CIM_X25.MOF
$write sys$output "	Registering Managed Object Format (MOF) files"
$dcl$ctrlt="Registering MOF files, please be patient..."
$cimmof -w -n root/cimv2/npar sys$update:ICAP.MOF
$write sys$output "	Registering the iCAP provider with the CIMSERVER"
$cimmof -w -n root/PG_InterOp sys$update:HP_iCODProviderReg.mof
$delete/symbol dcl$ctrlt
$done_icap_mofs:
$return
$verify_providers:
$write sys$output ("Verifying providers status...")
$@sys$manager:icap$cli_utils.com PROVIDERS_STATUS
$if f$trnlnm("icap$providers_status") .eqs. ""
$THEN
$write sys$output ("providers OK!...")
$ELSE
$write sys$output ("configuration and registration of the WBEM providers failed...aborting configuration")
$exit
$ENDIF
$return
$register_cld:
$write sys$output "Registering iCAP Command Language Definition file..."
$@sys$update:icap_cld.com
$instal repla sys$library:dcltables
$write sys$output "Command Language Definition file successfully registered"
$return
$icap_config_questions:
$ready_question:
$read /prompt="Would you like to set the System-Contact's E-mail Address? (Y/N): " -
sys$command action
$action = f$edit(action,"COMPRESS,UPCASE")
$IF ((action .eqs. "N") .or. (action .eqs. "NO")) then goto config1
$IF ((action .eqs. "Y") .or. (action .eqs. "YES")) then goto start_email
$goto ready_question
$start_email:
$read/prompt="Enter the System-Contact's E-mail Address: " sys$command email
$icap set email/contact="''email'"
$write sys$output " "
$config1:
$read/prompt="Would you like to turn configuration change notification on? (Y/N): " sys$command action
$action = f$edit(action,"COMPRESS,UPCASE")
$IF ((action .eqs. "N") .or. (action .eqs. "NO")) then goto config_return
$IF ((action .eqs. "Y") .or. (action .eqs. "YES")) then goto start_notif
$goto config1
$start_notif:
$icap set notification/state=on
$config_return:
$return
$start_icap_server:
$server_question:
$read/prompt="Would you like to start the iCAP software now? (Y/N): " sys$command action
$action = f$edit(action,"COMPRESS,UPCASE")
$IF ((action .eqs. "N") .or. (action .eqs. "NO")) then goto server_exit
$IF ((action .eqs. "Y") .or. (action .eqs. "YES")) then goto server_start
$goto server_question
$server_start:
$run/deta sys$system:loginout/input=sys$manager:icap$cli_utils.com/output=sys$manager:icap$$init.log
$server_exit:
$return
$check_privs:
$if f$priv("cmkrnl") .eqs. "FALSE" then goto no_privs
$if f$priv("sysprv") .eqs. "FALSE" then goto no_privs
$goto exit_privs
$no_privs:
$write sys$output ("%ICAP-F-NOPRIV, SYSPRV and CMKRNL privileges are required to execute this procedure")
$goto missing_exit
$exit_privs:
$return
$Confirm_Config:
$Get_Answer:
$answer = "NO"
$write sys$output ""
$INQUIRE answer "Are you satisfied with the backup of your WBEMCIM repository (Yes/No)?"
$answer=F$extract(0,1,f$edit(answer,"UPCASE,COLLAPSE"))
$if answer .eqs. "Y" then  GOTO RET_Confirm_Config
$if answer .nes. "N" then goto Get_Answer
$icap_msg = "iCAP configuration terminated by user."
$exitvalue = 1
$GOTO ICAP_print_message_and_exit
$RET_Confirm_Config:
$RETURN
$Create_namespace:
$success = "0000001"
$ns_create_failed = "0038024"
$attempts = 0
$write sys$output "%iCAP-I-CRENAM, Creating ''namespace' namespace"
$CN_cimmof:
$define/user sys$error icap_cns.tmp
$cimmof -w -n "''namespace'" src_mof$:CIM_Qualifiers25.mof
$if f$extract(3,7,$status) .eqs. success then GOTO RET_Create_namespace
$if f$extract(3,7,$status) .eqs. ns_create_failed
$then
$wait 00:00:02
$attempts = attempts + 1
$if attempts .lt. 30 then GOTO CN_cimmof
$icap_msg = "Failed to set DefaultNamespacePath ''namespace'"
$else
$if f$search("icap_cns.tmp") .nes. ""
$then
$type icap_cns.tmp;
$delete/nolog icap_cns.tmp;*
$endif
$icap_msg = "Failed to create Namespace ''namespace'"
$endif
$exitvalue = %x2c
$GOTO icap_print_message_and_exit
$RET_Create_namespace:
$if f$search("icap_cns.tmp") .nes. "" then delete/nolog icap_cns.tmp;*
$RETURN
$Update_Repository:
$say "%ICAP-I-BEGUPDREP, Begin updating WBEMCIM repository at ''f$time()'"
$GOSUB NPAR_Update_Repository
$GOSUB ICAP_Update_Repository
$RET_Update_Repository:
$say "%ICAP-I-ENDUPDREP,   End updating WBEMCIM repository at ''f$time()'"
$RETURN
$NPAR_Update_Repository:
$vsay "%ICAP-I-BEGUPDNPA, Begin update Npar Mof files at ''f$time()'"
$childless_class_names = -
"HP_NParDynamicProfile\" + -
"HP_NParCellInSlot\" + -
"HP_NParIOChassisInSlot\" + -
"HP_NParCellSlotInCabinet\" + -
"HP_NParIOChassisSlotInCabinet\" + -
"HP_NParCellConnectedToIOChassis\" + -
"HP_NParCellSlotInPartition\" + -
"HP_NParDomainInCabinet\" + -
"HP_NParCabinet\" + -
"HP_NParLocalPartition\" + -
"HP_NParPartition\" + -
"HP_NParComplex\" + -
"HP_NParCellSlot\" + -
"HP_NParCell\" + -
"HP_NParPowerCoolingDomain\" + -
"HP_NParRemoteComplex\" + -
"HP_NParIOChassisSlot\" + -
"HP_NParIOChassis"
$index = 0
$NPAR_Delete_Class_loop:
$classname = F$edit(F$element(index,"\",childless_class_names),"TRIM")
$if classname .eqs. "\" then GOTO npar_mof_compile
$vsay "%ICAP-I-DELNPAR, Deleting NPAR class ''classname'"
$deleteclass "''namespace'" "''classname'"
$index = index + 1
$goto NPAR_Delete_Class_loop
$npar_mof_compile:
$vsay "%ICAP-I-MOFNPAR, cimmof NPAR.MOF at ''f$time()'"
$cimmof -w -n "''namespace'" src_mof$:NPAR.MOF
$exitval = $STATUS
$if .not. exitval
$then
$icap_msg = "cimmof src_mof$:NPAR.MOF failed, exiting..."
$GOTO ICAP_print_message_and_exit
$endif
$RET_NPAR_Update_Repository:
$vsay "%ICAP-I-ENDUPDNPA, End update Npar Mof done at ''f$time()'"
$RETURN
$ICAP_Update_Repository:
$vsay "%ICAP-I-BEGUPDICA, Begin update iCAP Mof done at ''f$time()'"
$class_names = "HP_iCODComplex\"   +	-
"HP_iCAPPartition\" +	-
"HP_iCAPComplex\"   +   -
"HP_GiCAPManager\"  +   -
"HP_GiCAPGroup\"    +   -
"HP_GiCAPMember"
$index = 0
$ICAP_Delete_Class_loop:
$classname = F$edit(F$element(index,"\",class_names),"TRIM")
$if classname .eqs. "\" then GOTO icap_mof_compile
$vsay "%ICAP-I-DELICAP, Deleting ICAP class ''classname'"
$deleteclass "''namespace'" "''classname'"
$index = index + 1
$goto ICAP_Delete_Class_loop
$icap_mof_compile:
$index = 0
$i_mofs = "CIM_X25,ICAP"
$icap_get_mof:
$mofname = f$element(index,",",i_mofs)
$if mofname .EQS. "," then GOTO icap_mof_done
$vsay "%ICAP-I-MOFICAP, cimmof ''mofname'.MOF at ''f$time()'"
$cimmof -w -n "''namespace'" src_mof$:'mofname'.MOF
$exitval = $STATUS
$if .not. exitval
$then
$icap_msg = "cimmof src_mof$:''mofname'.MOF failed, exiting..."
$GOTO ICAP_print_message_and_exit
$endif
$index = index + 1
$GOTO icap_get_mof
$icap_mof_done:
$RET_ICAP_Update_Repository:
$vsay "%ICAP-I-ENDUPDICA,   End update iCAP Mof done at ''f$time()'"
$RETURN
$Is_Cimserver_Running:
$pipe show system/proc=CIMSERVER <PIPE> search/noout/nowarnings sys$pipe cimserver 2> NL:
$if f$extract(3,7,$status) .eqs. search_nomatches
$then
$return 3
$else
$return 1
$endif
$Start_cimserver:
$attempts = 0
$start_cim:
$@sys$startup:WBEM_Services$Startup.COM
$attempts = attempts + 1
$cim_started:
$wait 00:00:03
$GOSUB Is_Cimserver_Running
$if $status .eq. 1 then GOTO RET_start_cimserver
$if attempts .lt. 20 then GOTO cim_started
$ICAP_msg = "Failed to start cimserver. Check CIMServer_Startup.log in PEGASUS_HOME."
$exitval = %X100008E8
$GOTO ICAP_print_message_and_exit
$RET_start_cimserver:
$RETURN
$Stop_cimserver:
$attempts = 0
$stop_cim:
$@sys$startup:wbem_services$shutdown.com
$attempts = attempts + 1
$cim_stopped:
$wait 00:00:03
$GOSUB Is_Cimserver_Running
$if $status .NE. 1 then GOTO RET_Stop_cimserver
$if attempts .lt. 21 then GOTO cim_stopped
$ICAP_msg = "Failed to stop cimserver."
$exitval = 0
$GOTO ICAP_print_message_and_exit
$RET_Stop_cimserver:
$RETURN
$Register_Modules:
$say "%ICAP-I-REGNPAR, Registering iCAP Mofs at  ''f$time()'"
$index = -1
$REG_MODULE:
$index = index + 1
$mod_name = f$element(index,",",reg_mods)
$if mod_name .eqs. "," then GOTO RET_Register_Module
$mof_name = f$element(index,",",reg_mofs)
$vsay "%ICAP-I-REGMOD, Register module ''mod_name' at  ''f$time()'"
$cimmof -w -n "root/PG_InterOp" src_mof$:'mof_name'.MOF
$exitval = $STATUS
$pipe cimprovider -l -s <PIPE> search/nowarn/noout/match=AND sys$pipe "''mod_name'","OK"
$if f$extract(3,7,$status) .eqs. search_success then GOTO REG_MODULE
$icap_msg = "Failed to register module ''mod_name' from ''mof_name'.MOF"
$GOTO ICAP_print_message_and_exit
$RET_Register_Module:
$say "%ICAP-I-REGDone, Registering iCAP Mofs Done at ''f$time()'"
$RETURN
$Unregister_Modules:
$say "%ICAP-I-UNREGNPAR, Unregistering  at ''f$time()'"
$index = -1
$UNREG_MODULE:
$index = index + 1
$mod_name = f$element(index,",",reg_mods)
$if mod_name .eqs. "," then GOTO RET_Unregister_Module
$vsay "%ICAP-I-DELREM, delete and remove module ''mod_name' at ''f$time()'"
$pipe cimprovider -l <PIPE> search/nowarn/noout sys$pipe "''mod_name'"
$if f$extract(3,7,$status) .eqs. search_nomatches then GOTO UNREG_MODULE
$cimprovider -d -m "''mod_name'"
$cimprovider -r -m "''mod_name'"
$GOTO UNREG_MODULE
$icap_msg = "Failed to Unregister ''mod_name'"
$exitvalue = %x2c
$GOTO ICAP_print_message_and_exit
$RET_Unregister_Module:
$say "%ICAP-I-UNREGDON, Unregistering iCAP/nPAR modules done at ''f$time()'"
$RETURN
$Check_Prerequisites:
$say "%ICAP-I-CHECK, Checking for iCAP configuration requirements"
$vsay "%ICAP-I-PRIV, Checking for cmkrnl and sysprv"
$if f$priv("cmkrnl") .eqs. "FALSE" then goto CP_no_privs
$if f$priv("sysprv") .eqs. "FALSE" then goto CP_no_privs
$GOTO Got_privs
$CP_no_privs:
$icap_msg = "SYSPRV and CMKRNL privileges are required to execute this procedure"
$exitval = %X00000024
$GOTO ICAP_print_message_and_exit
$Got_privs:
$vsay "%ICAP-I-SYMS, Checking for WBEMCIM command symbols"
$if f$type(cimmof) .eqs. "" .OR. -
f$type(cimprovider) .eqs. "" .OR. -
f$type(cimserver) .eqs. ""
$then
$if f$search("SYS$SYSROOT:[WBEM_Services]WBEM_Services$Define_Commands.com") .nes. ""
$then
$@SYS$SYSROOT:[WBEM_Services]WBEM_Services$Define_Commands.com
$else
$icap_msg = "SYS$SYSROOT:[WBEM_Services]WBEM_Services$Define_Commands.com not found."
$exitval = %X10018292
$GOTO ICAP_print_message_and_exit
$endif
$endif
$vsay "%ICAP-I-IMAGE, Checking for npardeleteclass.exe "
$if f$search("sys$system:npardeleteclass.exe") .EQS. ""
$then
$icap_msg = "File npardeleteclass.exe not found"
$exitval = %X10018292
$GOTO ICAP_print_message_and_exit
$endif
$deleteclass :== $npardeleteclass.exe
$GOSUB Is_Cimserver_Running
$if $status .eq. 1 then GOTO RET_Check_Prerequisites
$icap_msg = "The CIMSERVER process is not running.  Please start WBEMCIM services."
$exitval = %X100008E8
$GOTO ICAP_print_message_and_exit
$RET_Check_Prerequisites:
$say "%ICAP-I-CHEDONE, Check Done requirements OK"
$RETURN
$Config_GiCAP:
$read /end_of_file=RET_Config_GiCAP -
/prompt="Enter (Y)es to configure this system with GiCAP support (N): "  -
sys$command action
$action = f$extract(0,1,f$edit(action,"COMPRESS,UPCASE"))
$if action .NES. "Y" then GOTO RET_Config_GiCAP
$if f$search("SYS$MANAGER:GICAP$CONFIG.COM") .EQS. ""
$then
$icap_msg = "SYS$MANAGER:GICAP$CONFIG.COM file not found."
$exitval = %X10018292
$GOTO ICAP_print_message_and_exit
$endif
$@SYS$MANAGER:GICAP$CONFIG
$RET_Config_GiCAP:
$RETURN
$ICAP_CONFIG_MAIN:
$sav_verify = 'f$verify(0)
$sav_case = f$getjpi("","CASE_LOOKUP_PERM")
$sav_parse = f$getjpi("","PARSE_STYLE_PERM")
$save_ctrly = f$environment("ON_CONTROL_Y")
$start_time = F$time()
$if f$trnlnm("ICAP$VERIFY_CONFIGURE") then set verify
$SET PROCESS /CASE_LOOKUP=BLIND /PARSE_STYLE=TRADITIONAL
$say := write sys$output
$verbose = 0
$verbose = f$trnlnm(" ICAP$VERBOSE")
$vsay = "if f$trnlnm(""ICAP$VERBOSE"") then write sys$output "
$exitval = 1
$icap_msg = ""
$namespace = "root/cimv2/npar"
$define SRC_MOF$ SYS$UPDATE
$search_success = "0000001"
$search_nomatches = "8D78053"
$ON CONTROL_Y THEN GOTO CONTROL_Y_HANDLER
$reg_mods = "HP_NParProviderModule," +  -
"HP_iCODProviderModule," +  -
"HP_iCAPProviderModule," +  -
"HP_GiCAPProviderModule"
$reg_mofs = "NPARREG," +  -
"HP_iCODProviderReg," +  -
"HP_iCAPProviderReg," +  -
"HP_GiCAPProviderReg"
$Gosub Check_Prerequisites
$GOSUB Confirm_Config
$SET NOON
$Gosub Unregister_modules
$say "%ICAP-I-STOPCIM, Stopping the cimserver process."
$GOSUB Stop_cimserver
$vsay "%ICAP-I-REMCACH, Removing NPar disk cache..."
$npar_cache = "WBEM_OPT:[wbem.HP.nparprovider.cache...]*.*"
$define/user sys$error NL:
$define/user sys$output NL:
$delete/exclude=(*.dir)/nolog 'npar_cache';*
$delete/symbol/local npar_cache
$write sys$output "%ICAP-I-RESCIM, Restarting the cimserver process."
$GOSUB Start_cimserver
$wait 00:00:10
$GOSUB Create_namespace
$GOSUB Update_Repository
$GOSUB Register_modules
$gosub register_cld
$GOSUB Config_GiCAP
$gosub icap_config_questions
$gosub start_icap_server
$GOTO Main_exit
$CONTROL_Y_HANDLER:
$icap_msg = "Configuration terminated by Control-Y."
$exitval = 1
$ICAP_print_message_and_exit:
$say "%ICAP-E-CONFABOR, Configuration Aborted"
$say "-ICAP-E-MESSAGE, ''icap_msg'"
$Main_exit:
$SET PROCESS /CASE_LOOKUP='sav_case'
$SET PROCESS /PARSE_STYLE='sav_parse'
$if save_ctrly then SET CONTROL=Y
$end_time = F$time()
$elapsed_time = f$extract(6,10,f$delta_time(start_time,end_time))
$say ""
$say "%ICAP-I-EXIT, Exiting ICAP configuration elapsed time ''elapsed_time'"
$exit exitval + 0*f$verify('sav_verify')
 

$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! P1	root of the directory tree
$!
$	DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
$	ON ERROR THEN GOTO TIDY
$	ON CONTROL_C THEN GOTO TIDY
$
$	IF P1 .EQS. ""
$	THEN
$	    WRITE SYS$OUTPUT "First argument missing."
$	    WRITE SYS$OUTPUT -
		  "It Should be the directory where you want things installed."
$	    EXIT
$	ENDIF
$
$	IF (F$GETSYI("CPU").LT.128)
$	THEN
$	    ARCH := VAX
$	ELSE
$	    ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
$	    IF (ARCH .EQS. "") THEN ARCH = "UNK"
$	ENDIF
$
$	ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
$	ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
$	ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
		   - ".][000000" - "[000000." - "][" - "[" - "]"
$	ROOT = ROOT_DEV + "[" + ROOT_DIR
$
$	DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
$	DEFINE/NOLOG WRK_SSLXLIB WRK_SSLROOT:['ARCH'_LIB]
$	DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:[LIB]
$	DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
$	DEFINE/NOLOG WRK_SSLXEXE WRK_SSLROOT:['ARCH'_EXE]
$	DEFINE/NOLOG WRK_SSLCERTS WRK_SSLROOT:[CERTS]
$	DEFINE/NOLOG WRK_SSLPRIVATE WRK_SSLROOT:[PRIVATE]
$
$!
$! Exhibit the destination directory.
$!
$	WRITE SYS$OUTPUT "   Installing to (WRK_SSLROOT) ="
$	WRITE SYS$OUTPUT "    ''f$trnlnm( "WRK_SSLROOT")'"
$	WRITE SYS$OUTPUT ""
$
$	IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLROOT:[000000]
$	IF F$PARSE("WRK_SSLXEXE:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLXEXE:
$	IF F$PARSE("WRK_SSLXLIB:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLXLIB:
$	IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLLIB:
$	IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLINCLUDE:
$	IF F$PARSE("WRK_SSLCERTS:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLCERTS:
$	IF F$PARSE("WRK_SSLPRIVATE:") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLPRIVATE:
$	IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN -
	   CREATE/DIR/LOG WRK_SSLROOT:[VMS]
$
$	SDIRS := CRYPTO,SSL,APPS,VMS!,RSAREF,TEST,TOOLS
$	EXHEADER := e_os2.h
$
$	COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG
$	SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER'
$
$	I = 0
$ LOOP_SDIRS: 
$	D = F$ELEMENT(I, ",", SDIRS)
$	I = I + 1
$	IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
$	WRITE SYS$OUTPUT "Installing ",D," files."
$	SET DEFAULT [.'D']
$	@INSTALL 'ROOT']
$	SET DEFAULT [-]
$	GOTO LOOP_SDIRS
$ LOOP_SDIRS_END:
$
$	WRITE SYS$OUTPUT ""
$	WRITE SYS$OUTPUT "	Installation done!"
$	WRITE SYS$OUTPUT ""
$	WRITE SYS$OUTPUT "	You might want to purge ",ROOT,"...]"
$	WRITE SYS$OUTPUT ""
$
$ TIDY:
$	SET DEFAULT 'DEF_ORIG'
$
$	DEASSIGN WRK_SSLROOT
$	DEASSIGN WRK_SSLXLIB
$	DEASSIGN WRK_SSLLIB
$	DEASSIGN WRK_SSLINCLUDE
$	DEASSIGN WRK_SSLXEXE
$	DEASSIGN WRK_SSLCERTS
$	DEASSIGN WRK_SSLPRIVATE
$
$	EXIT
 

$ SAVE_VER = F$VERIFY (0)
$
$!      login procedure for remote DSRI access
$!
$! Login command procedure for RDB$REMOTEnn account ensures that the network
$! process will access the RDBSERVER object (35) only.  All other facility
$! command files will be executed only if this fundamental check succeeds.
$! For more information on parsing of the NCB (Network Control Block),
$! please reference "Guide to Networking on VAX/VMS" Page 8-37.
$!
$!
$ S1 = F$TRNLNM("SYS$NET")                  !Translate the SYS$NET logical 
$
$ IF S1 .EQS. "" THEN LOGOUT/BRIEF	    !If the translation fails then this
$                                           !must not be a network job + LOGOUT
$
$ D1 = F$EXTRACT(0,1,S1)			! Look at first char.
$ IF D1 .EQS. "_" THEN GOTO OK		! Underscore means TCP/IP
$
$ S1 = F$EXTRACT(F$LOCATE("/",S1)+20,19,S1) !Skip local link id, connect-data
$                                           !of the NCB and get destination
$                                           !descriptor field.
$
$ IF S1 .EQS. "" THEN LOGOUT/BRIEF          !If NCB contains no destination
$                                           !descriptor field then LOGOUT
$
$ T1 = F$CVUI(0,8,S1)                       !Extract the destination descriptor 
$                                           !type
$
$ IF (T1 .NE. 0) THEN LOGOUT/BRIEF          !The DD type must be 0 which 
$                                           !indicates the next byte is
$                                           !the binary value of the object #
$
$ T2 = F$CVUI(8,8,S1)                       !Extract connection object number 
$
$ IF (T2 .NE. 35) THEN LOGOUT/BRIEF         !If not object 35, which is 
$                                           !currently RDBSERVER, then LOGOUT
$OK:
$ SAVE_VER = F$VERIFY (SAVE_VER)
$
$ ALL_DONE:
$    DEFINE/NOLOG RDMS$VERSION_VARIANT 72
$    DEFINE/NOLOG RDBSERVER SYS$COMMON:<SYSEXE>RDBSERVER72.EXE
$ EXIT
 

$ ! Copyright © Oracle Corporation 1995.  All Rights Reserved.
$ GOTO START
$ !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$ !
$ !			      RDBSERVER.COM
$ !
$ !		       RDBSERVER command procedure
$ !
 
$ !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$ !
$ !	This procedure will run RDBSERVER according to the following steps
$ !
$ !	    1. If RDB$ENABLE_HIGHEST_VERSION is defined, run the
$ !	       SYS$COMMON:<SYSEXE>RDBSERVER from the extension of the file
$ !	       RDB$RUN_REMOTE.<latest rdbserver>.
$ !	    2. If 1 is not satisfied,
$ !	       Run RDBSERVER from the logical RDBSERVER
$ !	    3. If 1 and 2 are not satisfied,
$ !	       Run SYS$COMMON:<SYSEXE>RDBSERVER.EXE
$ !
$ !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
$ START:
$
$   ! Initialize
$   say = "write sys$output"
$   rdbserver_image = ""
$
$   ! Case 1
$   ! Check if the logical RDB$ENABLE_HIGHEST_VERSION exist
$   if f$trnlnm ("RDB$ENABLE_HIGHEST_VERSION") .nes. ""
$   then
$	GOSUB RDBSERVER_EXIST
$	GOTO RUN_RDBSERVER
$   endif
$
$   ! Case 2
$   ! Check if the logical RDBSERVER exists
$   ! If yes, check for correct image name and location
$   ! If no, activate RDBSERVER.EXE in SYS$COMMON:<SYSEXE>.
$   rdbserver_image = f$trnlnm ("RDBSERVER")
$   if "''rdbserver_image'" .nes. ""
$   then
$	GOSUB VALIDATE_RDBSERVER
$	GOTO RUN_RDBSERVER
$   endif
$
$   ! Case 3
$   rdbserver_image = "SYS$COMMON:<SYSEXE>RDBSERVER.EXE"
$
$ RUN_RDBSERVER:
$   say "Running ''rdbserver_image'..."
$   RUN 'rdbserver_image'
$ exit
 
$ ! Subroutine VALIDATE_RDBSERVER
$ ! This subroutine checks for:
$ ! 1. the location SYS$COMMON:<SYSEXE> in the logical
$ ! 2. the image name RDBSERVER.EXE or RDBSERVERnn.EXE where n is a digit
$ !	between 0 and 9
$ VALIDATE_RDBSERVER:
$   log_len = f$length (rdbserver_image)
$   if .not. -
       ((f$locate ("SYS$COMMON:<SYSEXE>",rdbserver_image) .ne. log_len) .or. -
        (f$locate ("SYS$COMMON:[SYSEXE]",rdbserver_image) .ne. log_len))
$   then
$	say "''rdbserver_image' is not found in SYS$COMMON:<SYSEXE>"
$	say "RDBSERVER logical is ''rdbserver_image'"
$	exit
$   endif
$
$   if (f$locate ("RDBSERVER",rdbserver_image) .eq. log_len)
$   then
$	say "RDBSERVER logical is not pointing to the RDBSERVER image"
$	say "RDBSERVER logical is ''rdbserver_image'"
$	exit
$   endif
$
$   if .not. ((log_len .eq. 28) .or. -
	      (log_len .eq. 32) .or. -
	      (log_len .eq. 30) .or. -
	      (log_len .eq. 34))
$   then
$	say "RDBSERVER logical does not have the following formats:"
$	say "    SYS$COMMON:<SYSEXE>RDBSERVER"
$	say "    SYS$COMMON:<SYSEXE>RDBSERVER.EXE"
$	say "    SYS$COMMON:<SYSEXE>RDBSERVERnn"
$	say "    SYS$COMMON:<SYSEXE>RDBSERVERnn.EXE"
$	say "RDBSERVER logical is ''rdbserver_image'"
$	exit
$   endif
$
$   if ((log_len .eq. 30) .or. -
	(log_len .eq. 34))
$   then
$	digit_1 = f$extract (28,1,rdbserver_image)
$	digit_2 = f$extract (29,1,rdbserver_image)
$	if .not. ( ((digit_1 .ges. 0) .and. (digit_1 .les. 9)) .and. -
		   ((digit_2 .ges. 0) .and. (digit_2 .les. 9)) )
$	then
$	    say "RDBSERVERnn : nn must be two digits"
$	    say "Extract nn is ''digit_1'''digit_2'"
$	    say "RDBSERVER logical is ''rdbserver_image'"
$	    exit
$	endif
$   endif
$
$ RETURN
 
$ ! Subroutine RDBSERVER_EXIST
$ ! This subroutine:
$ !	1. Extracts the RDBSERVER extension from
$ !	   RDB$RUN_REMOTE.<latest rdbserver>
$ !	2. Validates the RDBSERVER extension
$ RDBSERVER_EXIST:
$
$   ! Search for RDB$RUN_REMOTE.<latest rdbserver>
$   latest_rdbserver = f$search ("SYS$COMMON:<SYSLIB>RDB$RUN_REMOTE.*")
$   if "''latest_rdbserver'" .eqs. ""
$   then
$	say "RDB$RUN_REMOTE.<latest rdbserver> not found"
$	say "Unable to run RDBSERVER"
$	say "You should run SYS$COMMON:<SYSMGR>RDB$SHARE_HIGHEST_VERSION.COM"
$	say "    to reconfigure"
$	exit
$   endif
$
$   ! Get the extension of RDBSERVER
$   latest_rdbserver = f$element (1, ".", latest_rdbserver) - "."
$   latest_rdbserver = f$extract (0, f$locate (";", latest_rdbserver), latest_rdbserver)
$   latest_rdbserver = "SYS$COMMON:<SYSEXE>''latest_rdbserver'.EXE"
$   if f$search ("''latest_rdbserver'") .eqs. ""
$   then
$	say "''latest_rdbserver' does not exist"
$	say "You should run SYS$COMMON:<SYSMGR>RDB$SHARE_HIGHEST_VERSION.COM"
$	say "    to reconfigure"
$	exit
$   endif
$
$   rdbserver_image = latest_rdbserver
$
$ RETURN
 

$x = 'f$verify(0)'
$!  © Copyright 1976, 2007 Hewlett-Packard Development Company, L.P.
$x = 'f$verify(0)'
$p2 = f$edit(f$getsyi("STARTUP_P2"),"TRIM,UPCASE")
$if p2 .eqs. "" then goto start
$if p2 .eqs. "1" -
.or. f$locate(p2,"TRUE") .eq. 0 -
.or. f$locate(p2,"YES") .eq. 0 -
.or. f$locate("V",p2) .nes. f$length(p2) -
.or. p2 .eqs. "SA"
$then
$set verify
$endif
$goto start
$DECK
$! SYS$SYSTEM:SA_STARTUP.COM
$!
$!  This prodecure is used as the STARTUP file (replacing
$!  SYS$SYSTEM:STARTUP.COM) in the following situations:
$!
$!      o Booting an OpenVMS Distribution Compact Disk (or a disk copy of it)
$!        to install or upgrade OpenVMS, or to perform standalone operations.)
$!
$!      o Booting a Minimum OpenVMS system created by
$!        SYS$SYSTEM:AXPVMS$PCSI_INSTALL_MIN.COM for standalone operations.
$!
$!  In either case it creates a minimum OpenVMS environment.
$!
$!  ********************************************************************
$!  *                                                                  *
$!  *   USE OF THIS PROCEDURE FOR ANY OTHER PURPOSE IS NOT SUPPORTED   *
$!  *                                                                  *
$!  ********************************************************************
$!
$EOD
$start:
$if f$search("SYS$SYSTEM:ESS$ISL_VMSCLIENT.EXE") .eqs. "" then $ goto NORSM
$if f$search("SYS$SYSTEM:ESS$ISL_STARTUP.COM")   .eqs. "" then $ goto NORSM
$STS$M_INHIB_MSG = %x10000000
$RSM$$_FLAGSET = STS$M_INHIB_MSG + 1
$RSM$$_FLAGCLR = STS$M_INHIB_MSG + 0
$run SYS$SYSTEM:ESS$ISL_VMSCLIENT.EXE
$if $STATUS .eq. RSM$$_FLAGSET
$then
$@SYS$SYSTEM:ESS$ISL_STARTUP.COM
$endif
$NORSM:
$set term sys$output /width=80 /wrap
$set message /facility /identification /severity /text
$if f$search("SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM") .eqs. ""
$then
$type sys$input
$DECK
 
              ************************************************************
              *                                                          *
              *  SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM not found   *
              *                                                          *
              *  This disk or CDrom is bad.                              *
              *  Please use another disk or CD-ROM.                      *
              *                                                          *
              ************************************************************
 
$EOD
$stop "''f$process()'"
$exit
$else
$if f$trnlnm("messages:") .gts. "" then close messages:
$open/read messages: SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM
$message_read:
$read/end=message_end messages: inpt
$inpt = f$edit(inpt,"TRIM,COLLAPSE,UPCASE")
$if f$extract(0,9,inpt) .nes. "$!MESSAGE" then goto message_read
$inpt = inpt - "$!MESSAGE"
$'inpt'
$goto message_read
$message_end:
$close messages:
$endif
$@SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM "welcome"
$020_ckuser:
$if f$edit(f$getjpi(0,"USERNAME"),"TRIM,UPCASE") .eqs. "SYSTEM" then -
goto 020_ckuser_z
$@SYS$SYSTEM:I64VMS$PCSI_INSTALL_MESSAGES.COM "notsysacct"
$020_ckuser_a:
$write sys$output "''blankline'"
$read/error=020_ckuser sys$output inpt /prompt="''wanttoabort'"
$inpt = f$extract(0,1,f$edit(inpt,"TRIM,UPCASE"))
$if ( ( inpt .eqs. "?" ) .or. ( inpt .eqs. "^" ) ) then goto 020_ckuser
$if ( ( inpt .nes. "Y" ) .and. ( inpt .nes. "N" ) )
$then
$write sys$output "''yesorno'"
$goto 020_ckuser_a
$endif
$if inpt .eqs. "N"
$then
$write sys$output "''contnotsys'"
$goto 020_ckuser_z
$endif
$if inpt .eqs. "Y"
$then
$write sys$output "''exitrequest'"
$stop "''f$process()'"
$exit
$endif
$goto 020_ckuser_a
$020_ckuser_z:
$write sys$output "''instalknown'"
$install add /open /shared /protect /header /nopurge SYS$SHARE:DISMNTSHR
$install add /open /shared /protect /header SYS$SHARE:MOUNTSHR
$install add /open /shared /protect /header SYS$SHARE:SECURESHRP
$install add /open /shared /header SYS$SHARE:SECURESHR
$install add /open /shared /protect /header SYS$SHARE:INIT$SHR
$install add /open /shared /protect /header SYS$SHARE:MMESHR
$install add /open /shared /header SYS$SYSTEM:CDU
$install add /open /shared /header SYS$SYSTEM:PCSI$MAIN
$install add /open /shared /header SYS$SHARE:DCLTABLES
$install add /open /shared /header SYS$SHARE:LBRSHR
$install add /open /shared /header SYS$SHARE:LIBRTL
$install add /open /shared /header SYS$SHARE:PCSI$SHR
$if f$search("SYS$SHARE:CDSA$VALIDATE_LIBSHR.EXE") .nes. ""
$then
$install add /open /shared /header SYS$SHARE:LIBOTS.EXE
$install add /open /shared /header SYS$SHARE:DECC$SHR.EXE
$install add /open /shared /header SYS$SHARE:DPML$SHR.EXE
$install add /open /shared /header SYS$SHARE:CMA$TIS_SHR.EXE
$install add /open /shared /header SYS$SHARE:CMA$RTL.EXE
$install add /open /shared /header SYS$SHARE:PTHREAD$RTL.EXE
$install add /open /shared /header SYS$SHARE:CMA$OPEN_RTL.EXE
$install add /open /shared /header SYS$SHARE:CMA$LIB_SHR.EXE
$install add /open /shared /header SYS$SHARE:CMA$OPEN_LIB_SHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$MDS300_SHR.EXE
$install add /open /shared /header SYS$SHARE:CXXL$LANGRTL.EXE
$install add /open /shared /header SYS$SHARE:CDSA$INCSSM300_SHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$EAYCSP300_SHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$IN509CL300_SHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$VALIDATE_EMM_SHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$VALIDATE_LIBSHR.EXE
$install add /open /shared /header SYS$SHARE:CDSA$VALIDATE_SHR.EXE
$endif
$root = f$getdvi("SYS$SYSDEVICE","fulldevnam") - "_"
$if f$trnlnm("SYS$TOPSYS","LNM$SYSTEM") .nes. "" then -
root = root + "[" + f$trnlnm("SYS$TOPSYS","LNM$SYSTEM") + ".]"
$define/system/exec/nolog/translation=(terminal,concealed) sys$specific 'root'
$no_common_root = f$search("SYS$SPECIFIC:[000000]SYSCOMMON.DIR") .eqs. ""
$if no_common_root then -
define/system/exec/nolog/translation=(terminal,concealed) sys$sysroot 'root'
$if no_common_root then -
define/system/exec/nolog/translation=(terminal,concealed) sys$common 'root'
$define/system/exec/nolog sys$sysdisk sys$sysroot:
$define/system/exec/nolog sys$errorlog sys$sysroot:[syserr]
$define/system/exec/nolog sys$examples sys$sysroot:[syshlp.examples]
$define/system/exec/nolog sys$help sys$sysroot:[syshlp]
$define/system/exec/nolog sys$instruction sys$sysroot:[syscbi]
$define/system/exec/nolog sys$library sys$sysroot:[syslib]
$define/system/exec/nolog sys$maintenance sys$sysroot:[sysmaint]
$define/system/exec/nolog sys$manager sys$sysroot:[sysmgr]
$define/system/exec/nolog sys$update sys$sysroot:[sysupd]
$define/system/exec/nolog sys$test sys$sysroot:[systest]
$define/system/exec/nolog sys$etc sys$sysroot:[syshlp.unsupported]
$define/system/exec/nolog IA64$library sys$sysroot:[syslib]
$define/system/exec/nolog IA64$loadable_images sys$sysroot:[sys$ldr]
$define/system/exec/nolog sda$read_dir sys$sysroot:[sys$ldr],sys$sysroot:[syslib],-
sys$sysroot:[sysexe]
$define/table=lnm$system_directory/super lnm$dcl_logical lnm$file_dev
$define/system/exec/nolog agen$images sys$manager:vms$images_master.dat
$define/system/exec/nolog/trans=conc cdsa_sysdir sys$sysdevice:[vms$common.cdsa.]
$if .not. f$getsyi("CLUSTER_MEMBER") then run sys$system:cwloginit.exe
$usb_sys_disk = f$getdvi("DNA0","exists")
$if (f$getsyi("ARCH_NAME") .eqs. "IA64"  .and. -
f$getsyi("GRAPHICS_CONSOLE") .eq. 1) -
.or. (usb_sys_disk .and. f$getsyi("ARCH_NAME") .eqs. "IA64")
$then
$mcr SYSMAN io auto /select=(oh*,eh*)
$@SYS$COMMON:[SYSMGR]USB$STARTUP.COM
$endif
$if usb_sys_disk
$then
$wait 0::10
$UCM
$DECK
reset/unconfigured
exit
$EOD
$endif
$If .not. f$getsyi("NOAUTOCONFIG")
$then
$write sys$output "''configdev'"
$mcr sysman
$DECK
            io connect fta0/noadapter/driver=sys$ftdriver
            io connect mpa0/noadapter/driver=sys$pipedriver
            io autoconfigure
            exit
$EOD
$endif
$@sys$system:startup configure
$wait 00:00:15
$if f$search("sys$startup:ldr$wrapup.exe") .nes. "" then -
run sys$startup:ldr$wrapup.exe
$set default sys$system
$run sys$system:smgmaptrm
$define sys$error nl:
$define sys$output nl:
$@sys$startup:ess$startup disk tape
$deassign sys$error
$deassign sys$output
$define/system/exec/nolog sys$sylogin sys$system:sa1_startup.com
$term = f$trnlnm("SYS$OUTPUT")
$define/user sys$output nl:
$define/user sys$error nl:
$run/noauth/detach/input='term'/output='term'/process_name=sa_startup -
/file_limit=128/io_buffered=500/io_direct=4096/ast_limit=4096 -
/buffer_limit=65536/working_set=10000/maximum_working_set=24000 -
/page_file=1000000 sys$system:loginout
$sa1_status = $status
$if .not. sa1_status
$then
$write sys$output "***** ERROR RUNNING SA1_STARTUP !!!"
$sho symbol SA1_status
$endif
$stop "''f$process()'"
$exit