home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / etc / dcu.d / menus / boards / boards~
Text File  |  1998-08-19  |  15KB  |  712 lines

  1. #ident    "@(#)dcu:menus/boards    1.1.5.1"
  2.  
  3. . ${DCUSCRIPTS}/dculib.sh
  4.  
  5.  
  6. function boardselect
  7. {
  8. # boardselect()
  9. # Called when the Choices key is selected for the Configure field
  10. # on the Hardware Device Configuration screen.
  11. # Calling/Exit State: 0.
  12.  
  13. [ "$DCUDEBUG" -gt 3 ] && {
  14. print -u2 "$0 called"
  15. set -x
  16. }
  17.  
  18. integer chse=BOARDFLD[$BDLINE]
  19. integer name=BOARDFLD[$BDLINE]+1
  20. integer irq=BOARDFLD[$BDLINE]+2
  21. integer portstart=BOARDFLD[$BDLINE]+3
  22. integer portend=BOARDFLD[$BDLINE]+4
  23. integer addrstart=BOARDFLD[$BDLINE]+5
  24. integer addrend=BOARDFLD[$BDLINE]+6
  25. integer dma=BOARDFLD[$BDLINE]+7
  26. integer bd=LINETOBD[$BDLINE]
  27.  
  28. if [ "${BDTYPE[$bd]}" = $none ]
  29. then
  30.     return 0
  31. fi
  32.  
  33. CHOOSE_TITLE="$CHOICES"
  34. CHOOSE_FOOTER="$DCU_CHOOSE_FOOTER"
  35. choose -e -exit boarddelete "${BDCNFG[$bd]}" $BDCNFGCHOICES
  36. }
  37.  
  38. function boarddelete
  39. {
  40. # boarddelete()
  41. # Choices exit callback for the Configure field Choices key
  42. # on the Hardware Device Configuration screen.
  43. # It updates the field and corresponding "grayness" of the other fields
  44. # on that line.
  45. # Calling/Exit State: void.
  46.  
  47. [ "$DCUDEBUG" -gt 3 ] && {
  48. print -u2 "$0 called"
  49. set -x
  50. }
  51.  
  52.     integer x
  53.     integer chse=BOARDFLD[$BDLINE] 
  54.     integer name=BOARDFLD[$BDLINE]+1
  55.     integer irq=BOARDFLD[$BDLINE]+2
  56.     integer portstart=BOARDFLD[$BDLINE]+3 
  57.     integer portend=BOARDFLD[$BDLINE]+4
  58.     integer addrstart=BOARDFLD[$BDLINE]+5
  59.     integer addrend=BOARDFLD[$BDLINE]+6
  60.     integer dma=BOARDFLD[$BDLINE]+7
  61.     integer bd=LINETOBD[$BDLINE]
  62.  
  63.     if [ "$CHOICE" = "$Y" ]
  64.     then
  65.         x=0
  66.     else
  67.         x=1
  68.     fi
  69.     fld_change $BDFID $chse $CHOICE
  70.     if [ "${BDTYPE[bd]}" = $prompt ]
  71.     then
  72.         fld_gray $BDFID $irq $x
  73.         fld_gray $BDFID $portstart $x
  74.         fld_gray $BDFID $portend $x
  75.         fld_gray $BDFID $addrstart $x
  76.         fld_gray $BDFID $addrend $x
  77.         fld_gray $BDFID $dma $x
  78.     fi
  79.     return 0
  80. }
  81.  
  82. function boardsdone
  83. {
  84. # boardsdone()
  85. # Form exit callback when the Hardware Device Configuration screen is exited
  86. # via F10=Return.
  87. # Calling/Exit State: 0 for success and 1 for failure.
  88.  
  89. [ "$DCUDEBUG" -gt 3 ] && {
  90. print -u2 "$0 called"
  91. set -x
  92. }
  93.  
  94. # May remove if winxksh behaviour changed to detect the failure
  95.     if [ -n "$IRQCHKD" ] \
  96.     || [ -n "$IOSCHKD" ] \
  97.     || [ -n "$IOECHKD" ] \
  98.     || [ -n "$MEMSCHKD" ] \
  99.     || [ -n "$MEMECHKD" ] \
  100.     || [ -n "$DMACHKD" ]
  101.     then
  102.         return 1
  103.     fi
  104.     dcumain
  105.     return 0
  106. }
  107.  
  108. function boards
  109. {
  110. # boards(bd_array_index)
  111. # Called to display the Hardware Device Configuration screen when it
  112. # is selected from the main menu.
  113. # Calling/Exit State: void.
  114.  
  115. [ "$DCUDEBUG" -gt 2 ] && {
  116. print -u2 "$0 called"
  117. set -x
  118. }
  119.  
  120.  
  121. typeset title="$BDSUMMARY"
  122. BDDISPLINES=19
  123.  
  124. place_window  $HdcWaitCols $HdcWaitLines
  125. wprintf $CURWIN "$HdcWait"
  126. HDCFID=$CURWIN
  127. msgnoerr
  128. footer "$DCUGENERIC_WAIT_FOOTER"
  129.  
  130. if [ -z "$BDFID" ]
  131. then
  132.     integer i=$1 line=1 
  133.     open_form -exit boardsdone
  134.     let BDFID=$FID
  135.     setup_table -page -rows $BDDISPLINES-$FOOTER_HEIGHT -cols 8 -titles BD_TITLE -widths BD_WIDTH -offset 0 
  136.     while :
  137.     do
  138.         case "${BDTYPE[i]}"
  139.         in
  140.         $none)
  141.             break
  142.             ;;
  143.         $unused)
  144.             let i+=1
  145.             continue
  146.             ;;
  147.         esac
  148.     
  149.         let BOARDFLD[line]=FIELDCNT
  150.         let LINETOBD[line]=$i
  151.     
  152.         case "${BDTYPE[i]}" in
  153.         $noprompt)
  154.             eval typeset -L${BD_WIDTH[3]} irq="${BDIRQ[i]}"
  155.             eval typeset -L${BD_WIDTH[4]} ports="${BDPORTSTART[i]}"
  156.             eval typeset -L${BD_WIDTH[5]} porte="${BDPORTEND[i]}"
  157.             eval typeset -L${BD_WIDTH[6]} addrs="${BDADDRSTART[i]}"
  158.             eval typeset -L${BD_WIDTH[7]} addre="${BDADDREND[i]}"
  159.             next_field -entry "footer \"$BDSFOOTER2\"; BDLINE=$line" -exit "boardset $i" -choice "boardselect"  -help 'helpwin dcu.brdsum' "BDCNFG[i]"
  160.             next_field -entry "msgnoerr;BDLINE=$line" -exit "check_name $i" -choice "choose_name $i" -help 'helpwin dcu.brdsum' "BDNAME[i]"
  161.             next_field_prompt "$irq"
  162.             next_field_prompt "$ports"
  163.             next_field_prompt "$porte"
  164.             if [ "${BDADDRSTART[i]}" = $unused ]
  165.             then
  166.                 next_field_prompt ""
  167.                 next_field_prompt ""
  168.             else
  169.                 next_field_prompt "$addrs"
  170.                 next_field_prompt "$addre"
  171.             fi
  172.             if [ "${BDDMA[i]}" = $unused ]
  173.             then
  174.                 next_field_prompt ""
  175.             else
  176.                 next_field_prompt "${BDDMA[i]}"
  177.             fi
  178.             ;;
  179.         *)
  180.             next_field -entry "footer \"$BDSFOOTER2\"; BDLINE=$line" -exit "boardset $i" -choice "boardselect"  -help 'helpwin dcu.brdsum' "BDCNFG[i]"
  181.             next_field -entry "msgnoerr;BDLINE=$line" -exit "check_name $i" -choice "choose_name $i" -help 'helpwin dcu.brdsum' "BDNAME[i]"
  182.             next_field -entry "msgnoerr;BDLINE=$line" -exit "check_irq $i" -choice "choose_irq $i" -help 'helpwin dcu.brdsum' "BDIRQ[i]"
  183.             next_field -entry "msgnoerr;BDLINE=$line" -exit "check_ports $i" -choice "choose_ports $i" -help 'helpwin dcu.brdsum' "BDPORTSTART[i]"
  184.             next_field -entry "msgnoerr;BDLINE=$line" -exit "check_porte $i" -choice "choose_porte $i" -help 'helpwin dcu.brdsum' "BDPORTEND[i]"
  185.             if [ "${BDADDRSTART[i]}" = $unused ]
  186.             then
  187.                 next_field_prompt ""
  188.                 next_field_prompt ""
  189.             else
  190.                 next_field -entry "msgnoerr;BDLINE=$line" -exit "check_addrs $i" -choice "choose_addrs $i" -help 'helpwin dcu.brdsum' "BDADDRSTART[i]"
  191.                 next_field -entry "msgnoerr;BDLINE=$line" -exit "check_addre $i" -choice "choose_addre $i" -help 'helpwin dcu.brdsum' "BDADDREND[i]"
  192.             fi
  193.             if [ "${BDDMA[i]}" = $unused ]
  194.             then
  195.                 next_field_prompt ""
  196.             else
  197.                 next_field -entry "msgnoerr;BDLINE=$line" -exit "check_dma $i" -choice "choose_dma $i" -help 'helpwin dcu.brdsum' "BDDMA[i]"
  198.             fi
  199.             ;;
  200.         esac
  201.         let line+=1
  202.         next_row
  203.         let i+=1
  204.     done
  205.     let BDTABLE_WIDTH=TABLE_WIDTH
  206. fi
  207. place_window -above 0 -left 0 $DCU_MAX_WIDTH $DCU_MAX_HEIGHT-$FOOTER_HEIGHT -fg $COMBO2_FG -bg $COMBO2_BG -title "$title" -current 'msgnoerr $BDSFOOTER; footer "$BDSFOOTER2"'
  208. typeset wid=$CURWIN
  209. set_hotkey 4 verifyhdw 
  210. set_hotkey 6 boardxpnd 
  211. set_hotkey 7 advanced_screen
  212. BOARDXPND="$BDSFOOTER2"
  213. wclose $HDCFID
  214. run_form $BDFID
  215. }
  216.  
  217. # The functions below this point in the file are for the advanced options
  218. # screen.  They probably should be put in a separate file.
  219.  
  220. function advanced_screen
  221. {
  222. # advanced_screen()
  223. # Called when the F7=Adv key is selected from the Hardware Device Configuratio
  224. # screen to enter the Advanced Parameter Selection screen.
  225. # Calling/Exit State: void.
  226.  
  227. [ "$DCUDEBUG" -gt 3 ] && {
  228. print -u2 "$0 called"
  229. set -x
  230. }
  231. integer bd=LINETOBD[BDLINE]
  232. typeset scntitle="$ADVCONFIG"
  233. typeset ADVFID
  234.  
  235. open_form -exit "advdone"
  236. ADVFID=$FID
  237.  
  238.  
  239. place_window 78 20 -fg $COMBO2_FG -bg $COMBO2_BG -title "$scntitle" -current 'msgnoerr; footer "$ADVFOOTER"'
  240. typeset wid=$CURWIN
  241. #set_hotkey 5 adv_save
  242. advbd=$bd # export board for adv_save
  243.  
  244. getspecial
  245. getbsp
  246.  
  247. run_form $ADVFID
  248. }
  249.  
  250. function lookupoldval
  251. {
  252. # lookupoldval(bd_array_index, custom_num)
  253. # Called to get the old or existing values of Board Specific parameters.
  254. # Calling/Exit State: void.
  255.  
  256. [ "$DCUDEBUG" -gt 3 ] && {
  257. print -u2 "$0 called"
  258. set -x
  259. }
  260. typeset bd=$1
  261. typeset cn=$2
  262. typeset desc
  263.  
  264. integer j
  265. # First, see if we have a new value from this DCU seesion
  266. if [ -n "${BDBSPPARAMS[bd]}" -a -n "${BDBSPVALS[bd]}" ]
  267. then
  268.     set ${BDBSPVALS[bd]}
  269.     for i in ${BDBSPPARAMS[bd]}
  270.     do
  271.         if [ "${bspname[cn]}" = "$i" ]
  272.         then
  273.             bspxlatfromval $cn $1
  274.             bspvalue[cn]=$desc
  275.             return
  276.         fi
  277.         if (( $#>1 ))
  278.         then
  279.             shift
  280.         else
  281.             break
  282.         fi
  283.     done
  284. fi
  285. # Next, look it up in the rm database
  286. call RMbegin_trans "${BDKEY[bd]}" 100
  287. j=RMgetvals "${BDKEY[bd]}" "${bspname[cn]}",s 0
  288. call RMend_trans "${BDKEY[bd]}" 
  289. if (( j  ))
  290. then
  291.     bspxlatfromval $cn "${RMOUTVALS[1]}"
  292.     bspvalue[cn]=$desc
  293. fi
  294. }
  295.  
  296.  
  297. # These functions set up the "special" part of the advanced options form.
  298. # By special, we mean BINDCPU, IPL, and ITYPE.
  299.  
  300. function x_check_cpu
  301. {
  302. # x_check_cpu()
  303. # Field exit callback when the BindCPU field
  304. # within the Advanced Parameters screen is exited.
  305. # Calling/Exit State: 0 for success and 1 for failure.
  306.  
  307.     typeset t ret
  308.  
  309.     t=${BDCPU[$1]}
  310.     BDCPU[$1]=$advbindcpu
  311.     check_cpu $1
  312.     ret=$?
  313.     BDCPU[$1]=$t
  314.     return $ret
  315. }
  316.  
  317. function x_check_unit
  318. {
  319. # x_check_unit()
  320. # Field exit callback when the UNIT field
  321. # within the Advanced Parameters screen is exited.
  322. # Calling/Exit State: 0 for success and 1 for failure.
  323.  
  324.     typeset t ret
  325.  
  326.     t=${BDUNIT[$1]}
  327.     BDUNIT[$1]=$advunit
  328.     check_unit $1
  329.     ret=$?
  330.     BDUNIT[$1]=$t
  331.     return $ret
  332. }
  333.  
  334. function x_check_ipl
  335. {
  336. # x_check_ipl()
  337. # Field exit callback when the IPL field
  338. # within the Advanced Parameters screen is exited.
  339. # Calling/Exit State: 0 for success and 1 for failure.
  340.  
  341.     typeset t ret
  342.  
  343.     t=${BDIPL[$1]}
  344.     BDIPL[$1]=$advipl
  345.     check_ipl $1
  346.     ret=$?
  347.     BDIPL[$1]=$t
  348.     return $ret
  349. }
  350.  
  351. function x_check_itype
  352. {
  353. # x_check_itype()
  354. # Field exit callback when the ITYPE field
  355. # within the Advanced Parameters screen is exited.
  356. # Calling/Exit State: 0 for success and 1 for failure.
  357.  
  358.     typeset t ret
  359.  
  360.     t=${BDITYPE[$1]}
  361.     BDITYPE[$1]=$advitype
  362.     check_itype $1
  363.     ret=$?
  364.     BDITYPE[$1]=$t
  365.     return $ret
  366. }
  367.  
  368. function getspecial
  369. {
  370. # getspecial()
  371. # This function sets up the BindCPU, IPL and ITYPE Parameters part of the
  372. # advanced options form.
  373. # Calling/Exit State: void.
  374.  
  375. [ "$DCUDEBUG" -gt 3 ] && {
  376. print -u2 "$0 called"
  377. set -x
  378. }
  379.  
  380. typeset gray=
  381.  
  382. #if [ "${BDTYPE[bd]}" = "$noprompt" ]
  383. #then
  384. #    gray="-gray -ibg ${CYAN} -ifg ${BLACK}"
  385. #fi
  386.  
  387. xxbdmodname="${BDNAME[bd]}"
  388. add_field xxbdmodname -ix 30 -ilen 20 -gray -ibg ${CYAN} -ifg ${BLACK} \
  389.     -pbg ${CYAN} -pfg ${BLACK} \
  390.     -p "$boardname" 
  391. advbindcpu="${BDCPU[bd]}"
  392. add_field advbindcpu -ix 30 -ilen 2 $gray \
  393.     -pbg ${CYAN} -pfg ${BLACK} \
  394.     -help "helpwin dcu.bsp" \
  395.     -choice "choose_cpu $bd" -p "$boardcpu" \
  396.     -entry "msgnoerr" \
  397.     -exit "x_check_cpu $bd" 
  398. advunit="${BDUNIT[bd]}"
  399. add_field advunit -ix 30 -ilen 11 $gray \
  400.     -pbg ${CYAN} -pfg ${BLACK} \
  401.     -help "helpwin dcu.bsp" \
  402.     -choice "choose_unit $bd" -p "$boardunit" \
  403.     -entry "msgnoerr" \
  404.     -exit "x_check_unit $bd" 
  405. advipl="${BDIPL[bd]}"
  406. add_field advipl -ix 30 -ilen 1 $gray \
  407.     -pbg ${CYAN} -pfg ${BLACK} \
  408.     -help "helpwin dcu.bsp" \
  409.     -choice "choose_ipl $bd" -p "$boardipl" \
  410.     -entry "msgnoerr" \
  411.     -exit "x_check_ipl $bd" 
  412. advitype="${BDITYPE[bd]}"
  413. add_field advitype -ix 30 -ilen 1 $gray \
  414.     -pbg ${CYAN} -pfg ${BLACK} \
  415.     -help "helpwin dcu.bsp" \
  416.     -choice "choose_itype $bd" -p "$boarditype" \
  417.     -entry "msgnoerr" \
  418.     -exit "x_check_itype $bd" 
  419. }
  420.  
  421. function getbsp
  422. {
  423. # getbsp()
  424. # This function sets up the Boards Specific Parameters part of the
  425. # advanced options form.
  426. # It does so by "dotting in" the appropriate bcfg.d file.
  427. # 1. look in /etc/inst/locale/$LOCALE/stuff_from_drvmap.d
  428. # 2. look in /etc/ist/locale/C/stuff_from_drvmap.d
  429. # 3. look in /etc/conf/bcfg.d
  430. # Calling/Exit State: void.
  431.  
  432. [ "$DCUDEBUG" -gt 3 ] && {
  433. print -u2 "$0 called"
  434. set -x
  435. }
  436. integer drv
  437. typeset bsphelpfile
  438. # Parameter Name
  439. set -A bspname
  440. # Parameter Value
  441. set -A bspvalue
  442. # Parameter choices list
  443. set -A bspcl
  444. # Parameter choices Descriptors
  445. set -A bspcd
  446. # Parameter descriptor
  447. set -A bspd
  448. # Paramerter help file
  449. set -A bsphf
  450. # paramter choices title
  451. set -A bspct
  452.  
  453. unset CUSTOM_NUM
  454. set -A CUSTOM
  455. if [ "${BDID[$bd]}" = "$dash" ]
  456. then
  457.     lookupisa $bd
  458.     drv=$?
  459. else
  460.     lookupdrv $bd
  461.     drv=$?
  462. fi
  463. if (( drv ))
  464. then
  465.     if [ -n "${DRVBCFGFILE[drv]}" ]
  466.     then
  467.         if [ -r "${ROOT}/etc/inst/locale/$LOCALE/${DRVBCFGFILE[drv]}" ]
  468.         then
  469.             bcfgfile="${ROOT}/etc/inst/locale/$LOCALE/${DRVBCFGFILE[drv]}"
  470.         else
  471.             if [ "$LOCALE" != "C" ] && \
  472.                 [ -r "${ROOT}/etc/inst/locale/C/${DRVBCFGFILE[drv]}" ]
  473.             then
  474.                 bcfgfile="${ROOT}/etc/inst/locale/C/${DRVBCFGFILE[drv]}"
  475.             else
  476.                 y="${DRVBCFGFILE[drv]##*/}" # basename
  477.                 if [ -r "${ROOT}/etc/conf/bcfg.d/$y/$y.bcfg" ]
  478.                 then
  479.                     bcfgfile="${ROOT}/etc/conf/bcfg.d/$y/$y.bcfg"
  480.                 else
  481.                     return
  482.                 fi
  483.             fi
  484.         fi
  485.  
  486.         . "$bcfgfile"
  487.         [ "$CUSTOM_NUM" -lt 1 ] && return
  488.     else
  489.         return
  490.     fi
  491. else
  492.     return
  493. fi
  494.  
  495. let LASTPY+=2
  496. let LASTIY+=2
  497. wgotoxy $CURWIN 0 $LASTPY
  498. wprintf $CURWIN "$BSPLNMSG"
  499.  
  500.  
  501. cnt=1
  502. while [ "$cnt" -le "$CUSTOM_NUM" ]
  503. do
  504.     [ -z "${CUSTOM[$cnt]}" ] && continue
  505. OIFS=$IFS
  506. IFS='
  507. '
  508.     set ${CUSTOM[$cnt]}
  509.     bspname[$cnt]=$1
  510.     bspcl[$cnt]=$2
  511.     bspcd[$cnt]=$3
  512.     bspd[$cnt]=$4
  513.     eval bsphf[$cnt]=$5
  514.     bspct[$cnt]=$6
  515. IFS=${OIFS}
  516.     let cnt+=1
  517. done
  518.  
  519. tmp=1
  520. while [ "$tmp" -le "$CUSTOM_NUM" ]
  521. do
  522.     if [ -n "${bsphf[tmp]}" -a -r "${bsphf[tmp]}" ]
  523.     then
  524.         bsphelpfile="${bsphf[tmp]}"
  525.     else
  526.         bsphelpfile="${bsphf[tmp]##*/}" # basename
  527.         if [ -n "$LANGDEP_SCRIPTS/help/$bsphelpfile.hcf" -a \
  528.              -r "$LANGDEP_SCRIPTS/help/$bsphelpfile.hcf" ]
  529.         then
  530.             :
  531.         else
  532.             bsphelpfile="dcu.bsp"
  533.         fi
  534.     fi
  535.     lookupoldval $bd $tmp
  536.     add_field bspvalue[$tmp] -ix 30 -ilen 15 \
  537.         -pbg ${CYAN} -pfg ${BLACK} \
  538.         -help "helpwin $bsphelpfile" \
  539.         -choice "do_bspchoice $tmp" -p "${bspd[$tmp]}" \
  540.         -entry "msgnoerr"
  541.     let tmp+=1
  542. done
  543.  
  544. }
  545.  
  546. function advdone
  547. {
  548. # advdone()
  549. # Form exit callback when the Advanced Parameter Selection screen is exited
  550. # via F10=Return.
  551. # Calling/Exit State: 0.
  552.  
  553. [ "$DCUDEBUG" -gt 3 ] && {
  554. print -u2 "$0 called"
  555. set -x
  556. }
  557. adv_save
  558. return 0
  559. }
  560.  
  561. function do_bspchoice
  562. {
  563. # do_bspchoice(custom_num)
  564. # Called when the Board Specific Parameter Choice key is invoked
  565. # to supply the customized parameter choices.
  566. # Calling/Exit State: void.
  567.  
  568. [ "$DCUDEBUG" -gt 3 ] && {
  569. print -u2 "$0 called"
  570. set -x
  571. }
  572. CHOOSE_TITLE="${bspct[$1]}"
  573. CHOOSE_FOOTER="$DCU_CHOOSE_FOOTER"
  574. choose -f "" ${bspcd[$1]}
  575. }
  576.  
  577. function bspxlattoval
  578. {
  579. # bspxlattoval(custom_param_num, bspvalue[custom_param_num])
  580. # Called when the Advanced Parameter Selection screen is being exited
  581. # to translate and save the bspvalues.
  582. # Calling/Exit State: void.
  583.  
  584. [ "$DCUDEBUG" -gt 3 ] && {
  585. print -u2 "$0 called"
  586. set -x
  587. }
  588. typeset num=$1
  589. typeset cd=$2
  590. typeset cdn=0
  591. typeset cl
  592. set -A cl ${bspcl[num]}
  593.  
  594. val=$cd
  595. for i in ${bspcd[num]}
  596. do
  597.     if [ "$i" = "$cd" ]
  598.     then
  599.         val=${cl[cdn]}
  600.         if [ "$val" = '""' ]
  601.         then
  602.             val="-"
  603.         fi
  604.         break
  605.     fi
  606.     let cdn+=1
  607. done
  608. }
  609.  
  610. function bspxlatfromval
  611. {
  612. # bspxlatfromval(custom_param_num, val_list)
  613. # Called when Board Specific Parameters are detected in during
  614. # the display of the Advanced Parameter Selection screen.
  615. # Calling/Exit State: void.
  616.  
  617. [ "$DCUDEBUG" -gt 3 ] && {
  618. print -u2 "$0 called"
  619. set -x
  620. }
  621. typeset num=$1
  622. typeset cl=$2
  623. typeset cvn=0
  624. typeset cd 
  625. set -A cd ${bspcd[num]}
  626.  
  627. desc=$cl
  628. for i in ${bspcl[num]}
  629. do
  630.     if [ "$i" = "$cl" -o $i = '""' -a "$cl" = "-" ]
  631.     then
  632.         desc=${cd[cvn]}
  633.         break
  634.     fi
  635.     let cvn+=1
  636. done
  637. }
  638.  
  639. function adv_save
  640. {
  641. # adv_save()
  642. # Called when the Advanced Parameter Selection screen is exited.
  643. # Calling/Exit State: void.
  644.  
  645. [ "$DCUDEBUG" -gt 3 ] && {
  646. print -u2 "$0 called"
  647. set -x
  648. }
  649. typeset params=""
  650. typeset vals=""
  651. typeset val
  652.  
  653. if [ -z "$advbd" ]
  654. then
  655.     return
  656. fi
  657.  
  658. footer "$ADVSAVED"
  659.  
  660. if [ "${BDCPU[advbd]}" != "$advbindcpu" -o \
  661.      "${BDUNIT[advbd]}" != "$advunit" -o \
  662.      "${BDIPL[advbd]}" != "$advipl" -o \
  663.     "${BDITYPE[advbd]}" != "$advitype" ]
  664. then
  665.     BDCPU[advbd]="$advbindcpu"
  666.     BDUNIT[advbd]="$advunit"
  667.     BDIPL[advbd]="$advipl"
  668.     BDITYPE[advbd]="$advitype"
  669.     integer x=${BDCHGS[advbd]}
  670.     let x\|=$BSP_CHG
  671.     BDCHGS[advbd]=$x
  672. fi
  673.  
  674. num=1
  675. while [ $num -le "$CUSTOM_NUM" ]
  676. do
  677.     bspxlattoval $num "${bspvalue[num]}"
  678.     if [ -n "${bspname[num]}" -a -n "$val" ]
  679.     then
  680.         if [ -n "$params" ]
  681.         then
  682.             params="$params "
  683.             vals="$vals "
  684.         fi
  685.         params="${params}${bspname[num]}"
  686.         vals="${vals}${val}"
  687.     fi        
  688.     let num+=1
  689. done
  690. BDBSPPARAMS[advbd]=$params
  691. BDBSPVALS[advbd]=$vals
  692. BDHASBSP[advbd]=1
  693. #call sleep 2
  694. footer "$ADVFOOTER"
  695. }
  696.  
  697.  
  698. function verifyhdw
  699. {
  700. # verifyhdw()
  701. # Called when the F4=Verify hotkey is selected from the Hardware Device
  702. # Configuration screen to verify the entry for the corresponding line.
  703. # Calling/Exit State: void.
  704.  
  705. [ "$DCUDEBUG" -gt 3 ] && {
  706. print -u2 "$0 called"
  707. set -x
  708. }
  709.  
  710.     verifyconf $BDFID ${LINETOBD[$BDLINE]}
  711. }
  712.