home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 July / VPR9607B.BIN / driver / hp / win31 / pp101 / disk1 / scanner.ms_ / scanner.ms
Text File  |  1994-10-20  |  34KB  |  1,287 lines

  1. '**************************************************************************
  2. '*                              HP Scanner Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'ds2util.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Constants taken from windows.h (SDK version 3.1)
  12. CONST WS_VISIBLE             = &H10000000
  13. CONST WS_BORDER             = &H00800000
  14. CONST WS_CLIPCHILDREN         = &H02000000
  15. CONST GWL_STYLE             = -16
  16. CONST SW_SHOWMAXIMIZED         = 3
  17.  
  18. ''Dialog ID's
  19. CONST WELCOME                = 100
  20. CONST ASKQUIT                = 200
  21. CONST DESTPATH                = 300
  22. CONST EXITFAILURE            = 400
  23. CONST EXITQUIT                = 600
  24. CONST EXITSUCCESS            = 700
  25. CONST OPTIONS                = 800
  26. CONST APPHELP                = 900
  27. CONST APPHELP1                = 901
  28. CONST APPHELP2                = 902
  29. CONST APPHELP3                = 903
  30. CONST APPHELP4                = 904
  31. CONST APPHELP5                = 905
  32. CONST APPHELP6                = 906
  33. CONST APPHELP7                = 907
  34. CONST OLDDRIVEROPTION        = 1000
  35. CONST MODIFYCONFIG            = 1010
  36. CONST MODIFYSYSTEMINI        = 1020
  37. CONST INSERTREF                = 1050
  38. CONST MODIFYPATH            = 1030
  39. CONST SINGLELIST            = 1900
  40. CONST GROUPLIST                = 2000
  41. CONST CARDOPTIONS            = 2010
  42. CONST CARDNOTE                = 2015
  43. CONST ERRORSPACE            = 2030
  44. CONST EXITSUCCESSASPI        = 2035
  45. CONST IDC_CURSOR1           = 2040
  46. CONST ERRORCARD             = 2050
  47. CONST PRINTERSELECT         = 2060
  48. CONST SCREENCALIBRATION     = 2070
  49. CONST CUSTINST2             = 2080
  50. CONST EXITSUCCESSREBOOT     = 2090
  51. CONST CHECK                    = 2500
  52. CONST CUSTINST                = 6200
  53. CONST BADPATH                = 6400
  54. CONST CDCONFIRMINFO            = 7300
  55.  
  56. CONST ERR_WINDOWSVERSION    = 8000
  57. CONST ERR_WINDOWSMODE        = 8001
  58. CONST STR_OPTIONALSCSICARD    = 8002
  59. CONST STR_DIR                = 8003
  60. CONST STR_PROGMANGROUP        = 8004
  61. CONST STR_SCANNER            = 8005
  62. CONST STR_INTERFACECARD        = 8006
  63. CONST ERR_CORRUPTSOURCES    = 8007
  64. CONST STR_HPPICTUREPLACE    = 8008
  65. CONST STR_HPCOPIER            = 8009
  66. CONST STR_SCSIADDRESS        = 8010
  67. CONST STR_SCANNERTEST        = 8011
  68. CONST STR_READMETXT         = 8012
  69. CONST STR_SJPLUSCARD        = 8013
  70. CONST STR_GROUPSTRING        = 8014
  71. CONST STR_HPSCREENCALIBRATION    = 8015
  72. CONST STR_SETUP                = 8016
  73. CONST STR_TITLE                = 8017
  74. CONST STR_HPINTERFACECARD    = 8018
  75. CONST STR_ABOUT1            = 8019
  76. CONST STR_ABOUT2            = 8020
  77.  
  78. CONST ERR_PORT                = 8000
  79.  
  80. ''Bitmap ID
  81. CONST LOGO = 1
  82.  
  83. GLOBAL ExtraCosts$            ''List of extra costs to add per drive.
  84. GLOBAL CostPerDisk$
  85. GLOBAL DestCost&
  86. GLOBAL WinCost&
  87. GLOBAL DestFree&
  88. GLOBAL WinFree&
  89.  
  90. GLOBAL DriversList$
  91.  
  92. GLOBAL ASPIFound%
  93. GLOBAL CAMFound%
  94.  
  95. GLOBAL WinMajVer%
  96. GLOBAL WinMinVer%
  97. GLOBAL WinMode%
  98.  
  99. GLOBAL WinDir$                    ''Windows directory.
  100. GLOBAL TwainDir$                ''Directory for the Twain DSM.
  101.  
  102. GLOBAL DEST$                    ''Default destination directory.
  103. GLOBAL OptScanner(2) AS STRING    ''Scanner installation option.
  104. GLOBAL ScannerPick$                ''Text for 'ScannerChoice'.
  105. GLOBAL ScannerChoice%            '' 1 for ScanJetII family,
  106.                                  '' 2 for ScanJet Plus,
  107.  
  108. GLOBAL AskModSysIni%
  109. GLOBAL UsingOldDriver%
  110. GLOBAL ConfigFile$
  111.  
  112. GLOBAL OPTSETUP$                ''Setup type option selection.
  113. GLOBAL OPTCard$                    ''Option to use existing card.
  114. GLOBAL OPTCardText(3) AS STRING    ''Text for selected card option.
  115. GLOBAL DEFAULTGROUP$            ''Default group name.
  116. GLOBAL GROUP$                    ''Selected group name.
  117. GLOBAL SystemArchitecture$        ''Detected architecture.
  118. GLOBAL LISTMADE%                ''True if group names list has been
  119.                                 '' made, False otherwise.
  120. GLOBAL DS2Cui$
  121.  
  122. DECLARE SUB Install
  123. DECLARE SUB CalcCopyCost
  124. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132. INIT:
  133.  
  134.     ON ERROR GOTO ErrorHandler
  135.  
  136.     DS2Cui$ = "ds2cui.dll"    ''Custom UI stuff for DS2
  137.  
  138.     About1$ = STRING$(128,32)
  139.     i% = AcquireString(STR_ABOUT1, About1$, 128)
  140.     About2$ = STRING$(128,32)
  141.     i% = AcquireString(STR_ABOUT2, About2$, 128)
  142.     SetAbout About1$, About2$
  143.     
  144. ''    Verify Windows version and mode.
  145. ''    Windows ver. 3.x and Windows NT.
  146.     WinMajVer% = GetWindowsMajorVersion()
  147.     WinMinVer% = GetWindowsMinorVersion()
  148.  
  149. '' Set the costs list values
  150.     CostPerDisk$ = "CostPerDisk"
  151.     ExtraCosts$ = "ExtraCosts"
  152.  
  153. '' set drive c costs  (for config.hp)
  154.     AddListItem ExtraCosts$, "2048"
  155.     AddListItem CostPerDisk$, "0"
  156.  
  157. '' set other drive costs
  158.     FOR i% = 2 TO 26 STEP 1
  159.         AddListItem ExtraCosts$, "0"
  160.         AddListItem CostPerDisk$, "0"
  161.     NEXT i%
  162.  
  163.     Setup$ = STRING$(128,32)
  164.     i% = AcquireString(STR_SETUP, Setup$, 128)
  165.  
  166.     IF (WinMajVer% < 3) OR ((WinMajVer% = 3) AND (WinMinVer% < 1)) THEN
  167.         errStr$ = STRING$(128,32)
  168.         i% = AcquireString(ERR_WINDOWSVERSION, errStr$, 128)
  169.         i% = DoMsgBox(errStr$, Setup$, MB_TASKMODAL+MB_ICONHAND+MB_OK)
  170.         dlg% = EXITFAILURE
  171.         GOTO QUITL1
  172.     END IF
  173.  
  174.  
  175.     WinMode% = GetWindowsMode()
  176.  
  177.     IF WinMode% = 0 THEN
  178.         errStr$ = STRING$(128,32)
  179.         i% = AcquireString(ERR_WINDOWSMODE, errStr$, 128)
  180.         i% = DoMsgBox(errStr$,  Setup$, MB_TASKMODAL+MB_ICONHAND+MB_OK)
  181.         dlg% = EXITFAILURE
  182.         GOTO QUITL1
  183.     END IF
  184.  
  185.  
  186. ''    Display main window frame maximized.
  187.     hWnd% = HwndFrame()
  188.     j% = MoveWindow(hWnd%, 0, 0, GetScreenWidth(), GetScreenHeight(), 0) 
  189.  
  190.  
  191.     AddListItem "SettingsTextIn", DEST$
  192.     AddListItem "SettingsTextIn", GROUP$
  193. ''    AddListItem "SettingsTextIn", OptScanner(0)
  194.     AddListItem "SettingsTextIn", OPTCardText(0)
  195.  
  196.     AddListItem "DiskSpaceData", MID$(DEST$, 1, 2)
  197.     AddListItem "DiskSpaceData", ""
  198.     AddListItem "DiskSpaceData", ""
  199.     AddListItem "DiskSpaceData", MID$(WinDir$, 1, 2)
  200.     AddListItem "DiskSpaceData", ""
  201.     AddListItem "DiskSpaceData", ""
  202.  
  203. ''    Create place holders for setup information that will be displayed
  204. ''    in a "ConfirmInfo" dialog.  One "AddListItem" is needed for each
  205. ''    piece of data that will be displayed.  The NULLs will be replaced
  206. ''    based on information entered by the user.
  207.     AddListItem "ConfirmTextIn", ""
  208.     AddListItem "ConfirmTextIn", ""
  209.     AddListItem "ConfirmTextIn", ""
  210.     AddListItem "ConfirmTextIn", ""
  211.     AddListItem "ConfirmTextIn", ""
  212.     AddListItem "ConfirmTextIn", ""
  213.  
  214.     xxxStr$ = STRING$(128,32)
  215.     i% = AcquireString(STR_HPINTERFACE, xxxStr$, 128)
  216.  
  217.     OptScanner(0) = "ScanJet IIp, IIc, IIcx, 3p "
  218.     OptScanner(1) = "ScanJet Plus "
  219.     ScannerPick$ = OptScanner(0)
  220.     
  221.     SystemArchitecture$ = "ISA"
  222.  
  223.     DriversList$ = "SJDrivers"
  224.     AddListItem DriversList$, "SJDRIVER.SYS"    
  225.     AddListItem DriversList$, "MINI400I.SYS"    
  226.     AddListItem DriversList$, "SJIIX.SYS"    
  227.     AddListItem DriversList$, "SJII.SYS"
  228.     SetSymbolValue "SJIIDriverFound", "0"
  229.     SetSymbolValue "WIN30VxD", "WIN400OI.386"
  230.     SetSymbolValue "WIN31VxD", "WIN400I.386"
  231.     SetSymbolValue "ScannerVxD", "HPSCANR.386"
  232.     
  233.     '' set the default installation (nothing)
  234.     SetSymbolValue "DriverInstalled", "0"
  235.     WinDir$ = GetWindowsDir()
  236.  
  237.     SetSymbolValue "ConfigTemp", "C:\CONFIG.TMP"    
  238.     SetSymbolValue "AutoexecTemp", "C:\AUTOEXEC.TMP"
  239.     SetSymbolValue "SysIniTemp", WinDir$+"SYSTEM.TMP"    
  240.     
  241.     SetSymbolValue "ConfigBackup", "C:\CONFIG.HP"    
  242.     SetSymbolValue "AutoexecBackup", "C:\AUTOEXEC.HP"    
  243.     SetSymbolValue "SysIniBackup", WinDir$+"SYSTEM.HP"    
  244.  
  245.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  246.     HELP1PROC$ = "FHelp1DlgProc"        ''Help dialog procedure
  247.     HELP2PROC$ = "FHelp2DLgProc"        ''Help dialog procedure
  248.     HELP3PROC$ = "FHelp3DLgProc"        ''Help dialog procedure
  249.     HELP4PROC$ = "FHelp4DlgProc"        ''Help dialog procedure
  250.     HELP5PROC$ = "FHelp5DlgProc"        ''Help dialog procedure
  251.     HELP6PROC$ = "FHelp6DlgProc"        ''Help dialog procedure
  252.     HELP7PROC$ = "FHelp7DlgProc"        ''Help dialog procedure
  253.  
  254.  
  255.     SetBitmap DS2Cui$, LOGO
  256.     Title$ = STRING$(128,32)
  257.     i% = AcquireString(STR_TITLE, Title$, 128)
  258.     SetTitle Title$
  259. ''    SetTitle "HP ScanJet Setup"
  260.  
  261.  
  262. ''    Get the directory where the setup files are and read the
  263. ''  .inf file.
  264.  
  265.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  266.  
  267.     IF szInf$ = "" THEN
  268.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SCANNER.INF"
  269.     END IF
  270.  
  271.     ReadInfFile szInf$
  272.  
  273.     groupStr$ = STRING$(256,32)
  274.     i% = AcquireString(STR_GROUPSTRING, groupStr$, 256)
  275.  
  276.     DEFAULTGROUP$ = STRING$(256,32)
  277.     GROUP$ = STRING$(256,32)
  278.     
  279.     DEFAULTGROUP$ = groupStr$
  280.     GROUP$ = DEFAULTGROUP$
  281.  
  282.     LISTMADE% = 0
  283.     OPTSETUP$ = "1"
  284.  
  285.     OPTCard$ = "1"
  286.     SetSymbolValue "OPTCard", OPTCard$
  287.     cardStr$ = STRING$(128,32)
  288.     i% = AcquireString(STR_HPINTERFACECARD, cardStr$, 128)
  289.     OPTCardText(0) = cardStr$
  290.     i% = AcquireString(STR_OPTIONALSCSICARD, cardStr$, 128)
  291.     OPTCardText(1) = cardStr$
  292.     i% = AcquireString(STR_SJPLUSCARD, cardStr$, 128)
  293.     OPTCardText(2) = cardStr$
  294.  
  295.     ASPIFound% = 0
  296.     DEST$ = "C:\SCANJET"
  297.     SetSymbolValue "InstallDir", DEST$
  298.     TwainDir$ = WinDir$ + "TWAIN\"
  299.     SetSymbolValue "TwainDir", TwainDir$
  300.     SetSymbolValue "WinDir", WinDir$
  301.  
  302.     DestCost& = 0
  303.     WinCost& = 0
  304.     DestFree& = 0
  305.     WinFree& = 0
  306.  
  307. ''    Build the (default) copy list and compute the copy cost.
  308.     CalcCopyCost
  309.  
  310. '$IFDEF DEBUG
  311.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  312.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  313.     IF IsDriveValid(WinDrive$) = 0 THEN
  314.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  315.         GOTO QUIT
  316.     END IF
  317. '$ENDIF ''DEBUG
  318.  
  319.  
  320.  
  321.  
  322. WELCOME:
  323.  
  324.     sz$ = UIStartDlg(DS2Cui$, WELCOME, "FInfoDlgProc", APPHELP6, HELP6PROC$)
  325.     
  326.  
  327.     IF sz$ = "CONTINUE" THEN
  328.         UIPop 1
  329.     ELSEIF sz$ = "REACTIVATE" THEN
  330.         GOTO WELCOME
  331.     ELSE
  332.         UIPop 1
  333.         GOSUB ASKQUIT
  334.         GOTO WELCOME
  335.     END IF
  336.  
  337.  
  338.  
  339.  
  340.  
  341. ''    Get information about the system.
  342.     IF IsItEISA = 1 THEN
  343.         SystemArchitecture$ = "EISA"
  344.         SetSymbolValue "SystemArchitecture", "Extended Industry Standard Architecture (EISA)"
  345.     ''    i% = DoMsgBox("SetUp has detected an EISA system.", "SetUp", MB_TASKMODAL+MB_OK)
  346.     ELSEIF IsItMCA = 2 THEN
  347.         SystemArchitecture$ = "MCA"
  348.         SetSymbolValue "SystemArchitecture", "MicroChannel Architecture (MCA)"
  349.     ''    i% = DoMsgBox("SetUp has detected an MCA system.", "SetUp", MB_TASKMODAL+MB_OK)
  350.     ELSE
  351.         SystemArchitecture$ = "ISA"
  352.         SetSymbolValue "SystemArchitecture", "AT Backplane"
  353.     ''    i% = DoMsgBox("SetUp has detected an ISA system.", "SetUp", MB_TASKMODAL+MB_OK)
  354.     END IF
  355.  
  356.  
  357. ''    IF (IsItNT()) THEN
  358. ''i% = DoMsgBox("SetUp has detected an NT system.", "SetUp", MB_TASKMODAL+MB_OK)
  359. ''    ENDIF
  360.  
  361.  
  362.     ASPIFound% = FindASPI
  363.     CAMFound% = FindCAM
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372. '' Select which scanner(s) is/are being installed.
  373. CHOOSESCANNER:
  374.     ScannerPick$ = ""
  375.     ScannerChoice% = 0
  376.  
  377. CHOOSESCANNERL1:
  378. ''x    sz$ = UIStartDlg(DS2Cui$, OPTIONS, "FRadioDlgProc", APPHELP1, HELP1PROC$)
  379. ''x    szChoice$ = GetSymbolValue("ButtonChecked")
  380. ''x
  381. ''x    IF (szChoice$ = "1") THEN
  382.         ScannerChoice% = 1
  383. ''x    ELSE
  384. ''x        ScannerChoice% = 2
  385. ''x    ENDIF
  386.     ScannerPick$ = OptScanner(ScannerChoice% - 1)
  387.  
  388. ''x    IF sz$ = "CONTINUE" THEN
  389. ''x        UIPop(1)
  390. ''x    ELSEIF sz$ = "REACTIVATE" THEN
  391. ''x        GOTO CHOOSESCANNERL1
  392. ''x    ELSEIF sz$ = "BACK" THEN
  393. ''x        UIPop 1
  394. ''x        GOTO GETPATH
  395. ''x    ELSE
  396. ''x         GOSUB ASKQUIT
  397. ''x        GOTO CHOOSESCANNER
  398. ''x    END IF
  399.  
  400.  
  401. ''    Verify that an ASPI manager is in memory.  If one is found then
  402. ''    give user option to use it or not.
  403. ''x    IF (ASPIFound% = 1 OR CAMFound% = 1) THEN
  404. ''x        IF (IsDriverInConfig(GetListItem(DriversList$, 2)) = 1) THEN
  405. ''x            GOTO GETGROUPNAME
  406. ''x        ENDIF
  407. ''x
  408. ''x''        i% = DoMsgBox("SetUp has detected a SCSI manager.", "SetUp", MB_TASKMODAL+MB_OK)
  409. ''x        GOTO CARDOPTION
  410. ''x    ELSE
  411. ''x        GOTO GETGROUPNAME
  412. ''x    ENDIF
  413.  
  414.  
  415. ''    Option to use an existing SCSI card.  Assumes that the
  416. ''    ASPI or CAM manager for the card is already loaded.
  417.  
  418.             
  419.  
  420.  
  421.  
  422.  
  423.  
  424. OPTION:
  425. ''    Simple or Custom Setup options
  426. ''    SetSymbolValue "RadioDefault", OPTSETUP$
  427.     SetSymbolValue "SettingsTextIn", ""
  428.     AddListItem "SettingsTextIn", DEST$
  429.     AddListItem "SettingsTextIn", GROUP$
  430.     AddListItem "SettingsTextIn", OPTCardText(VAL(OPTCard)-1)
  431.  
  432.     SetSymbolValue "DiskSpaceData", ""
  433.     AddListItem "DiskSpaceData", MID$(DEST$, 1, 2)
  434.     AddListItem "DiskSpaceData", ""
  435.     AddListItem "DiskSpaceData", ""
  436.     AddListItem "DiskSpaceData", MID$(WinDir$, 1, 2)
  437.     AddListItem "DiskSpaceData", ""
  438.     AddListItem "DiskSpaceData", ""
  439.  
  440. ''    Build the (default) copy list and compute the copy cost.
  441.     CalcCopyCost
  442. OPTL1:
  443.  
  444.     sz$ = UIStartDlg(DS2Cui$, CUSTINST, "FCustomOptDlgProc", APPHELP2, HELP2PROC$)
  445.  
  446.     OPTSETUP$ = GetSymbolValue("ButtonChecked")
  447.     UIPop(1)    
  448.  
  449.     IF sz$ = "CONTINUE" THEN
  450.         OPTSETUP$ = "1"
  451.     ELSEIF sz$ = "REACTIVATE" THEN
  452.         GOTO OPTL1
  453.     ELSEIF sz$ = "CUSTOM" THEN
  454.         OPTSETUP$ = "2"
  455.     ELSE
  456.         UIPop 1
  457.          GOSUB ASKQUIT
  458.         GOTO OPTION
  459.     END IF
  460.  
  461.  
  462. '' for the quick path, we still need to check disk space
  463.     IF (OPTSETUP$ = "1") THEN
  464.         IF DestFree& < DestCost& THEN
  465.             sz$ = UIStartDlg(DS2Cui$, ERRORSPACE, "FDiskErrorDlgProc", APPHELP1, HELP1PROC$)
  466.              UIPop 2
  467.             GOTO GETPATH
  468.         ELSE
  469.             UIPop 1
  470.         END IF
  471.         GOTO STARTINSTALL
  472.     END IF
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479. GETPATH:
  480.     SetSymbolValue "EditTextIn", DEST$
  481.     SetSymbolValue "EditFocus", "END"
  482. GETPATHL1:
  483.     sz$ = UIStartDlg(DS2Cui$, DESTPATH, "FEditDlgProc", APPHELP3, HELP3PROC$)
  484.  
  485.     DEST$ = LTRIM$( RTRIM$(GetSymbolValue("EditTextOut")))
  486.     IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  487.         DEST$ = MID$( DEST$, 1, LEN(DEST$)-1 )
  488.     END IF
  489.  
  490.     SetSymbolValue "InstallDir", DEST$
  491.  
  492.     IF sz$ = "CONTINUE" THEN
  493.         IF IsDirWritable(DEST$) = 0 THEN
  494.             GOSUB BADPATH
  495.             GOTO GETPATHL1
  496.         END IF
  497.     ELSEIF sz$ = "REACTIVATE" THEN
  498.         GOTO GETPATHL1
  499.     ELSEIF sz$ = "BACK" THEN
  500.         UIPop 1
  501.         GOTO OPTION
  502.     ELSE
  503.         UIPop 1
  504.         GOSUB ASKQUIT
  505.         GOTO GETPATH
  506.     END IF
  507.  
  508.  
  509. ''    Build the (new) copy list and compute the copy cost.
  510.     CalcCopyCost
  511.  
  512.  
  513.  
  514. TESTSPACE:    
  515.     IF (DestFree& < DestCost&) THEN
  516.         sz$ = UIStartDlg(DS2Cui$, ERRORSPACE, "FDiskErrorDlgProc", APPHELP1, HELP1PROC$)
  517.         UIPop 2
  518.         GOTO GETPATH
  519.     ELSEIF sz$ = "REACTIVATE" THEN
  520.         GOTO TESTSPACE
  521.     ELSE
  522.         UIPop 1
  523.     END IF
  524.  
  525.  
  526. ''  if we are on an express setup and did the destination because of disk space prob,
  527. ''  then we need to go do the installation.
  528.     IF OPTSETUP$ = "1" THEN
  529.         GOTO STARTINSTALL
  530.     END IF
  531.  
  532.  
  533.  
  534.  
  535.  
  536. GETGROUPNAME:
  537.     IF LISTMADE% = 0 THEN
  538.         AddListItem "ListGroupsIn", GROUP$
  539.         LISTMADE% = 1
  540.     ENDIF
  541.  
  542.     SetSymbolValue "ListGroupsOut", GROUP$
  543.  
  544.  
  545. GETGROUPNAMEL1:
  546.  
  547.     sz$ = UIStartDlg(DS2Cui$, GROUPLIST, "FGroupsDlgProc", APPHELP4, HELP4PROC$)
  548.  
  549.     GROUP$ = GetSymbolValue("EditGroupOut")
  550. ''i% = DoMsgBox(GROUP$,"Verify Info", MB_TASKMODAL+MB_OK)
  551.  
  552.     IF sz$ = "CONTINUE" THEN
  553.         UIPop 1
  554.     ELSEIF sz$ = "REACTIVATE" THEN
  555.         GOTO GETGROUPNAMEL1
  556.     ELSEIF sz$ = "BACK" THEN
  557.         UIPop 1
  558.         GOTO GETPATH
  559.     ELSE
  560.         UIPop 1
  561.         GOSUB ASKQUIT
  562.         GOTO GETGROUPNAME
  563.     END IF
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570. CARDOPTION:
  571. ''    This option is not available with a ScanJet Plus.
  572. ''x    IF (ScannerChoice% = 2) THEN
  573. ''x        OPTCard$ = "3"
  574. ''x        SetSymbolValue "OPTCard", OPTCard$
  575. ''x        GOTO GETGROUPNAME
  576. ''x    ENDIF
  577.  
  578.     SetSymbolValue "RadioDefault", OPTCard$
  579.  
  580. CARDOPTIONL1:                 
  581.  
  582.     sz$ = UIStartDlg(DS2Cui$, CARDOPTIONS, "FCardOptDlgProc", APPHELP5, HELP5PROC$)
  583.  
  584.     OPTCard$ = GetSymbolValue("ButtonChecked")
  585.  
  586.     SetSymbolValue "OPTCard", OPTCard$
  587.     
  588.     ''set the default symbol value in case the user doesn't allow config.sys to be modified
  589.     IF OPTCard = "1" THEN
  590.         SetSymbolValue "DriverInstalled", "4"
  591.     ELSEIF OPTCard = "2" THEN    
  592.         SetSymbolValue "DriverInstalled", "5"
  593.     END IF
  594.  
  595.  
  596.     IF sz$ = "CONTINUE" THEN
  597.         UIPop(1)
  598.     ELSEIF sz$ = "REACTIVATE" THEN
  599.         GOTO CARDOPTIONL1
  600.     ELSEIF sz$ = "BACK" THEN
  601.         UIPop 1
  602.         GOTO GETGROUPNAME
  603.     ELSE
  604.         UIPop 1
  605.          GOSUB ASKQUIT
  606.         GOTO CARDOPTION
  607.     END IF
  608.  
  609.  
  610.  
  611.  
  612. CONFIRMINFO:
  613.  
  614.     genericStr$ = STRING$(128,32)
  615.     i% = AcquireString(STR_DIR, genericStr$, 128)
  616.     ReplaceListItem "ConfirmTextIn", 1, genericStr$+" : "+DEST$
  617.  
  618.     i% = AcquireString(STR_PROGMANGROUP, genericStr$, 128)
  619.     ReplaceListItem "ConfirmTextIn", 2, genericStr$+" : "+GROUP$
  620.  
  621. ''x    i% = AcquireString(STR_SCANNER, genericStr$, 128)
  622. ''x    ReplaceListItem "ConfirmTextIn", 3, genericStr$+" :   "+ScannerPick$
  623.  
  624.     i% = AcquireString(STR_INTERFACECARD, genericStr$, 128)
  625.     
  626.     IF OPTCard = "1" THEN
  627.         ReplaceListItem "ConfirmTextIn", 3, genericStr$+" :   "+OPTCardText(0)
  628.     ELSEIF OPTCard = "2" THEN    
  629.         ReplaceListItem "ConfirmTextIn", 3, genericStr$+" :   "+OPTCardText(1)
  630.     ELSE
  631.         ReplaceListItem "ConfirmTextIn", 3, genericStr$+" :   "+OPTCardText(0)
  632.     END IF
  633.  
  634.     sz$ = UIStartDlg(DS2Cui$, CDCONFIRMINFO, "FConfirmDlgProc", APPHELP1, HELP1PROC$)
  635.     IF sz$ = "CONTINUE" THEN
  636.         UIPop 1
  637.     ELSEIF sz$ = "REACTIVATE" THEN
  638.         GOTO CONFIRMINFO
  639.     ELSEIF sz$ = "BACK" THEN
  640.         UIPop 1
  641.         GOTO OPTION
  642.     END IF
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649. STARTINSTALL:
  650. ''    Begin installation
  651.     Install
  652.  
  653.  
  654.  
  655.  
  656. PRINTERSELECT:
  657.     SetSymbolValue "SlimINIPath",  MakePath(DEST$, "hppscan.ini") 
  658.     
  659.  
  660. PRINTERSELECTL1:
  661.     sz$ = UIStartDlg(DS2Cui$, PRINTERSELECT, "FPrintersDlgProc", APPHELP4, HELP4PROC$)
  662.  
  663.     IF sz$ = "CONTINUE" THEN
  664.         UIPop 1
  665.     ELSEIF sz$ = "REACTIVATE" THEN
  666.         GOTO PRINTERSELECTL1
  667.     ELSE
  668.         UIPop 1
  669.         GOSUB ASKQUIT
  670.         GOTO PRINTERSELECT
  671.     END IF
  672.  
  673.  
  674.  
  675.  
  676. SCREENCAL:
  677.  
  678. SCREENCAL1:
  679.     sz$ = UIStartDlg(DS2Cui$, SCREENCALIBRATION, "FInfoDlgProc", APPHELP1, HELP1PROC$)
  680.  
  681.     IF sz$ = "CONTINUE" THEN
  682.         UIPop 1
  683.     ELSEIF sz$ = "REACTIVATE" THEN
  684.         GOTO SCREENCAL1
  685.     ELSE
  686.         UIPop 1
  687.         GOSUB ASKQUIT
  688.         GOTO WELCOME
  689.     END IF
  690.  
  691.  
  692. ''  Run the screen calibration program in it's directory
  693.     CurrentDir$ = CURDIR$
  694.     CHDRIVE DEST$
  695.     CHDIR DEST$
  696.     RUN "screen.exe"
  697.     CHDRIVE CurrentDir$
  698.     CHDIR CurrentDir$
  699.     
  700.  
  701.  
  702. QUIT:
  703.     ON ERROR GOTO ERRQUIT
  704.  
  705.     dlg% = 0
  706.     
  707.     IF ERR = 0 THEN
  708.         dlg% = EXITSUCCESS
  709.     ELSEIF ERR = STFQUIT THEN
  710.         dlg% = EXITQUIT
  711.     ELSE
  712.         dlg% = EXITFAILURE
  713.     END IF
  714.  
  715.  
  716.  
  717.  
  718. QUITL1:
  719.     sz$ = UIStartDlg(DS2Cui$, dlg%, "FInfo0DlgProc", 0, "")
  720.  
  721.     IF sz$ = "REACTIVATE" THEN
  722.         GOTO QUITL1
  723.     END IF
  724.     UIPop 1
  725.  
  726.  
  727. ALL_DONE:
  728.  
  729. '' Check to see if README.TXT ever got copied, 
  730. '' if not don't bother trying to show it    
  731.  
  732.     CurrentDir$ = CURDIR$
  733.     d% = DoesDirExist( DEST$ )
  734.     IF d% = 1 THEN
  735.         CHDRIVE DEST$
  736.         CHDIR DEST$
  737.  
  738.         readmeStr$ = STRING$(14,32)
  739.         i% = AcquireString(STR_READMETXT, readmeStr$, 14)
  740.         f% = DoesFileExist( MakePath( DEST$, readmeStr$), femRead )
  741.         
  742.         IF f% = 1 THEN 
  743.             RUN "notepad.exe "+readmeStr$, NOWAIT
  744.         END IF
  745.         
  746.         CHDRIVE CurrentDir$
  747.         CHDIR CurrentDir$
  748.     END IF
  749.     
  750.      END        '' This is an exit point for the script.
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757. ERRORHANDLER:
  758.     IF ERR = STFQUIT THEN 
  759.         GOTO QUIT
  760.     END IF
  761.     
  762. ERRHANDLER1:
  763.     '' See if the user wants to quit (exit)
  764.     sz$ = UIStartDlg(DS2Cui$, ASKQUIT, "FQuitDlgProc", 0, "")
  765.  
  766.     IF sz$ = "EXIT" THEN
  767.         UIPopAll
  768.         dlg% = EXITQUIT
  769.         GOTO QUITL1
  770.     ELSEIF sz$ = "REACTIVATE" THEN
  771.         GOTO ERRHANDLER1
  772.     ELSE
  773.         UIPop 1
  774.     END IF
  775.     
  776.     '' send it back to the next line
  777.     RESUME NEXT
  778.     '' (not an exit point)
  779.  
  780.  
  781.  
  782.  
  783. ERRQUIT:
  784.     errStr$ = STRING$(200,32)
  785.     i% = AcquireString(ERR_CORRUPTSOURCES, errStr$, 200)
  786.     i% = DoMsgBox(errStr$, Setup$, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  787.     END        '' This is an exit point for the script.
  788.  
  789.  
  790.  
  791.  
  792. BADPATH:
  793.     sz$ = UIStartDlg(DS2Cui$, BADPATH, "FInfo0DlgProc", 0, "")
  794.     IF sz$ = "REACTIVATE" THEN
  795.         GOTO BADPATH
  796.     END IF
  797.     UIPop 1
  798.     RETURN
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805. ASKQUIT:
  806.     sz$ = UIStartDlg(DS2Cui$, ASKQUIT, "FQuitDlgProc", 0, "")
  807.  
  808.     IF sz$ = "EXIT" THEN
  809.         UIPopAll
  810.         ERROR STFQUIT
  811.     ELSEIF sz$ = "REACTIVATE" THEN
  812.         GOTO ASKQUIT
  813.     ELSE
  814.         UIPop 1
  815.     END IF
  816.     RETURN
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823. '*************************************************************************
  824. '**
  825. '** Purpose:
  826. '**     Builds the copy list and computes the copy cost.
  827. '** Arguments:
  828. '**     none.
  829. '** Returns:
  830. '**     none.
  831. '*************************************************************************
  832. SUB CalcCopyCost STATIC
  833.  
  834. ''    Start with a clean list.
  835.     ClearCopyList
  836.  
  837.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  838.  
  839. ''    AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  840.     AddSectionFilesToCopyList "HP PicturePlace", SrcDir$, DEST$
  841.     AddSectionFilesToCopyList "Utility Files", SrcDir$, DEST$
  842.     AddSectionFilesToCopyList "Images", SrcDir$, DEST$+"\IMAGES\"
  843.     AddSectionFilesToCopyList "HP Copier", SrcDir$, DEST$
  844.  
  845.  
  846. '' NOTE: we're not worrying about which scanner anymore
  847.     
  848. ''    Select which "config" files need to be copied
  849.     IF SystemArchitecture$ = "EISA" THEN
  850. ''        IF ScannerChoice% = 1 THEN
  851. ''            AddSectionFilesToCopyList "ScanJet II family EISA", SrcDir$, DEST$
  852. ''        ELSEIF ScannerChoice% = 2 THEN
  853. ''            AddSectionFilesToCopyList "ScanJet Plus EISA", SrcDir$, DEST$
  854. ''        ELSE
  855.             AddSectionFilesToCopyList "ScanJet II family EISA", SrcDir$, DEST$
  856.             AddSectionFilesToCopyList "ScanJet Plus EISA", SrcDir$, DEST$
  857. ''        END IF
  858.     ELSEIF SystemArchitecture$ = "MCA" THEN
  859. ''        IF ScannerChoice% = 1 THEN
  860. ''            AddSectionFilesToCopyList "ScanJet II family MCA", SrcDir$, DEST$
  861. ''        ELSEIF ScannerChoice% = 2 THEN
  862. ''            AddSectionFilesToCopyList "ScanJet Plus MCA", SrcDir$, DEST$
  863. ''        ELSE
  864.             AddSectionFilesToCopyList "ScanJet II family MCA", SrcDir$, DEST$
  865.             AddSectionFilesToCopyList "ScanJet Plus MCA", SrcDir$, DEST$
  866. ''        END IF
  867.     END IF
  868.  
  869. ''    choose between 'swtchset.exe' and 'sjswitch.exe'
  870. ''    IF ScannerChoice% = 1 THEN
  871. ''        AddSectionFilesToCopyList "ScanJet II family", SrcDir$, DEST$
  872. ''    ELSEIF ScannerChoice% = 2 THEN
  873. ''        AddSectionFilesToCopyList "ScanJet Plus", SrcDir$, DEST$
  874. ''    ELSE
  875.         AddSectionFilesToCopyList "ScanJet II family", SrcDir$, DEST$
  876.         AddSectionFilesToCopyList "ScanJet Plus", SrcDir$, DEST$
  877. ''    END IF
  878.     
  879.     
  880.     AddSectionFilesToCopyList "ScanJet Plus Drivers", SrcDir$, DEST$
  881.     
  882.     AddSectionFilesToCopyList "Windows", SrcDir$, WinDir$
  883.     AddSectionFilesToCopyList "Windows:System", SrcDir$, WinDir$+"SYSTEM\"
  884.     AddSectionFilesToCopyList "Windows:Twain", SrcDir$, TwainDir$
  885.  
  886.  
  887. ''x Windows 3.0 no longer supported, so this section is now commented out
  888.  
  889. ''x    IF (WinMinVer% = 0) THEN
  890. ''        AddSectionFilesToCopyList "Windows 3.0 Drivers", SrcDir$, DEST$
  891. ''x        IF (NOT DoesFileExist(WinDir$+"SYSTEM\COMMDLG.DLL", femExists)) AND    (NOT DoesFileExist(WinDir$+"COMMDLG.DLL", femExists)) THEN
  892. ''x            AddSectionFilesToCopyList "Windows 3.0 compat", SrcDir$, WinDir$+"SYSTEM\"
  893. ''x        ENDIF
  894. ''x    ELSE
  895.         AddSectionFilesToCopyList "Windows 3.1 Drivers", SrcDir$, DEST$
  896.         AddSectionFilesToCopyList "HP Windows Drivers", SrcDir$, DEST$
  897. ''x    ENDIF
  898.  
  899.     AddSectionFilesToCopyList "DOS Drivers", SrcDir$, DEST$
  900.     AddSectionFilesToCopyList "HP SCSI Driver", SrcDir$, DEST$
  901.  
  902.  
  903.  
  904.  
  905.     CostPerDisk$ = "CostPerDisk"
  906.     StillNeed& = GetCopyListCost(ExtraCosts$, CostPerDisk$,"")
  907.     DestCost& = 0
  908.     WinCost& = 0
  909.     cost& = 0
  910.  
  911.     FOR i% = 1 to 26 STEP 1
  912.         cost& = VAL(GetListItem(CostPerDisk$, i%))
  913. ''k% = DoMsgBox("drive ("+CHR$(i% + ASC("A")-1)+") cost ("+str$(cost&)+").", "Copy Costs", MB_TASKMODAL+MB_OK)
  914.     NEXT i%
  915.  
  916.     DestDrive$ = MID$(DEST$, 1, 1)
  917.     i% = ASC(ucase$(DestDrive$)) - ASC("A") + 1
  918.     DestCost& = VAL(GetListItem(CostPerDisk$, i%))
  919.  
  920.     ReplaceListItem "DiskSpaceData", 1, " " + DestDrive$ + ":"
  921.     ReplaceListItem "DiskSpaceData", 2, STR$(DestCost& / 1024) + " K"
  922.     drive$ = MID$(DEST$, 1, 1)
  923.     DestFree& = GetFreeSpaceForDrive(drive$)
  924.     IF (DestFree& < 0) THEN
  925.         DestFree& = 0
  926.     ENDIF
  927.     ReplaceListItem "DiskSpaceData", 3, STR$(DestFree& / 1024) + " K"
  928.  
  929.     WinDrive$ = MID$(WinDir$, 1, 1)
  930.     ndrive% = ASC(ucase$(WinDrive$)) - ASC("A") + 1
  931.     WinCost& = VAL(GetListItem(CostPerDisk$, ndrive%))
  932. ''i% = DoMsgBox("Windows drive ('"+str$(ndrive%)+"') index in list.", "Copy Costs", MB_TASKMODAL+MB_OK)
  933.     ReplaceListItem "DiskSpaceData", 5, STR$(WinCost& / 1024) + " K"
  934.  
  935.     WinFree& = GetFreeSpaceForDrive(WinDrive$)
  936.     IF (WinFree& < 0) THEN
  937.         WinFree& = 0
  938.     ENDIF
  939.     ReplaceListItem "DiskSpaceData", 6, STR$(WinFree& / 1024) + " K"
  940.  
  941.     CostPerDisk$ = ""
  942.  
  943. END SUB
  944.  
  945.  
  946. '*************************************************************************
  947. '**
  948. '** Purpose:
  949. '**     Performs all installation operations.
  950. '** Arguments:
  951. '**     none.
  952. '** Returns:
  953. '**     none.
  954. '*************************************************************************
  955. SUB Install STATIC
  956.  
  957.     CreateDir DEST$, cmoNone
  958.     CreateDir DEST$+"\IMAGES", cmoNone
  959.  
  960. ''    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  961.  
  962. ''  These next 2 lines for testing only
  963. ''    DumpCopyList MakePath(DEST$, "COPYLIST.TXT" )
  964. ''    i% = SetCopyMode(0)
  965.  
  966.  
  967.     CopyFilesInCopyList
  968.     
  969. ''  Must put back the copy mode for CopyFile to work    
  970. ''    i% = SetCopyMode(1)
  971.  
  972. ''  Get rid of misplaced vbx files that mess up HPCopier and Screen
  973. ''  (Other progrmas, like shareware, often place these in the windows directory)
  974.     IF DoesFileExist( MakePath( WinDir$, "THREED.VBX" ), femExists ) THEN
  975.         RemoveFile MakePath( WinDir$, "THREED.VBX" ), cmoNone
  976.     END IF
  977.     IF DoesFileExist( MakePath( WinDir$, "ANIBUTON.VBX" ), femExists ) THEN
  978.         RemoveFile MakePath( WinDir$, "ANIBUTON.VBX" ), cmoNone
  979.     END IF
  980.     IF DoesFileExist( MakePath( WinDir$, "GAUGE.VBX" ), femExists ) THEN
  981.         RemoveFile MakePath( WinDir$, "GAUGE.VBX" ), cmoNone
  982.     END IF
  983.     IF DoesFileExist( MakePath( WinDir$, "INSTSCRL.VBX" ), femExists ) THEN
  984.         RemoveFile MakePath( WinDir$, "INSTSCRL.VBX" ), cmoNone
  985.     END IF
  986.     
  987. ''i% = DoMsgBox("Create group "+GROUP$, "HP ScanJet II Setup", MB_TASKMODAL++MB_OK)
  988.  
  989.     NameStr$ = STRING$(128,32)
  990.     
  991.     '' THIS IS TO FIX A PROBLEM WITH GROUP NAMES LONGER THAN 24 CHARACTERS
  992.     '' SIDE EFFECT IS THAT THE USER MIGHT NOT SEE WHAT THEY WANTED
  993.     GROUP$ = MID$( GROUP$, 1, 24 )
  994.     
  995.     CreateProgmanGroup GROUP$, "", cmoNone
  996.     ShowProgmanGroup  GROUP$, 1, cmoNone
  997.  
  998.     i% = AcquireString(STR_HPPICTUREPLACE, NameStr$, 128)
  999.     CreateProgManItem GROUP$, NameStr$, MakePath(DEST$, "hppplace.exe"), "", cmoOverwrite
  1000.     i% = AcquireString(STR_HPCOPIER, NameStr$, 128)
  1001.     CreateProgManItem GROUP$, NameStr$, MakePath(DEST$, "hpcopier.exe"), "", cmoOverwrite
  1002.     i% = AcquireString(STR_HPSCREENCALIBRATION, NameStr$, 128)
  1003.     CreateProgManItem GROUP$, NameStr$, MakePath(DEST$, "screen.exe"), "", cmoOverwrite
  1004.     i% = AcquireString(STR_SCSIADDRESS, NameStr$, 128)
  1005.     CreateProgManItem GROUP$, NameStr$, MakePath(DEST$, "scsiaddr.exe"), "", cmoOverwrite
  1006.     i% = AcquireString(STR_SCANNERTEST, NameStr$, 128)
  1007.     CreateProgManItem GROUP$, NameStr$, MakePath(DEST$, "scantest.exe"), "", cmoOverwrite
  1008.     i% = AcquireString(STR_READMETXT, NameStr$, 128)
  1009.     CreateProgManItem GROUP$, NameStr$, "notepad.exe " + MakePath(DEST$, NameStr), "", cmoOverwrite
  1010.  
  1011. ''    CloseLogFile
  1012.  
  1013.  
  1014. '' lets get rid of any old FOLDER.THMs
  1015.     i% = DoesFileExist( MakePath(DEST$, "FOLDER.THM"), remRead )
  1016.     IF i% = 1 THEN
  1017.         RemoveFile MakePath(DEST$, "FOLDER.THM"), cmoFORCE
  1018.     END IF
  1019.     
  1020.     i% = DoesFileExist("C:\FOLDER.THM", remRead)
  1021.     IF i% = 1 THEN
  1022.         RemoveFile "C:\FOLDER.THM", cmoFORCE
  1023.     END IF
  1024.     
  1025.     
  1026.     '' write the HPPS data source ini file    
  1027.     i% = WriteHPPSINI()
  1028.  
  1029.     '' write the HPPPLACE.INI file
  1030.     CreateIniKeyValue WinDir$+"HPPPLACE.INI", "Recent File List", "File1", lcase$(DEST$+"\IMAGES"), cmoAll
  1031.     CreateIniKeyValue WinDir$+"HPPPLACE.INI", "Window Size", "X", "10", cmoAll
  1032.     CreateIniKeyValue WinDir$+"HPPPLACE.INI", "Window Size", "Y", "10", cmoAll
  1033.     CreateIniKeyValue WinDir$+"HPPPLACE.INI", "Window Size", "W", "620", cmoAll
  1034.     CreateIniKeyValue WinDir$+"HPPPLACE.INI", "Window Size", "H", "460", cmoAll
  1035.         
  1036.     '' set the default TWAIN data source to us!
  1037.     CreateIniKeyValue "WIN.INI", "TWAIN", "DEFAULT SOURCE", MakePath(TwainDir$, "HPPS.DS"), cmoAll
  1038.         
  1039.     AskModSysIni% = 0
  1040.     UsingOldDriver% = 0                '' old SCSI Driver
  1041.  
  1042. ''    i% = DoMsgBox(GetSymbolValue("ConfigBackup"), "SCANNER.MST - ConfigBackup", MB_TASKMODAL++MB_OK)
  1043.  
  1044. CONFIG:
  1045.     CopyFile "C:\CONFIG.SYS", GetSymbolValue("ConfigBackup"), cmoOverwrite,0
  1046.     sz$ = UIStartDlg(DS2Cui$, MODIFYCONFIG, "FModifyConfigDlgProc", APPHELP1, HELP1PROC$)
  1047.  
  1048.     IF (sz$ = "CONTINUE") THEN        '' 'Yes' using new driver...
  1049.         UIPop 1
  1050.         CopyFile GetSymbolValue("ConfigTemp"), "C:\CONFIG.SYS", cmoOverwrite,0
  1051.         RemoveFile GetSymbolValue("ConfigTemp"), cmoNone
  1052.     ELSEIF sz$ = "REACTIVATE" THEN
  1053.         GOTO CONFIG
  1054.     ELSE
  1055.         UIPop 1
  1056.     END IF
  1057.  
  1058.  
  1059. ''    Test$ = GetSymbolValue("SJIIDriverFound")
  1060.  
  1061. ''    IF (Test$ = "1") THEN
  1062. ''        sz$ = UIStartDlg(DS2Cui$, OLDDRIVEROPTION, "FYesNoDlgProc", APPHELP1, HELP1PROC$)
  1063. ''        UIPop 1
  1064.  
  1065. ''        IF (sz$ = "CONTINUE") THEN        '' 'Yes' using new driver...
  1066. ''            CopyFile GetSymbolValue("ConfigTemp"), "C:\CONFIG.SYS", cmoOverwrite,0
  1067. ''            RemoveFile GetSymbolValue("ConfigTemp"), cmoNone
  1068. ''            AskModSysIni% = 1
  1069. ''        ELSE                            '' 'No' not using new driver...
  1070. ''            AskModSysIni% = 0
  1071. ''            UsingOldDriver% = 1
  1072. ''        ENDIF
  1073. ''    ELSE
  1074. ''        IF DoesFileExist(GetSymbolValue("ConfigTemp"), femExists) THEN
  1075. ''            AskModSysIni% = 1
  1076. ''            CopyFile GetSymbolValue("ConfigTemp"), "C:\CONFIG.SYS", cmoOverwrite,0
  1077. ''            RemoveFile GetSymbolValue("ConfigTemp"), cmoNone
  1078. ''        ELSE
  1079. ''            i% = IsDriverInConfig(GetListItem(DriversList$,3))
  1080. ''            IF (i%=1) THEN
  1081. ''                AskModSysIni% = 1
  1082. ''            ENDIF
  1083. ''        ENDIF
  1084. ''    ENDIF
  1085.     
  1086.  
  1087.  
  1088. ''This is now commented out because it is no longer needed.
  1089. ''ie> The path is not needed for TWAIN    
  1090. ''    sz$ = UIStartDlg(DS2Cui$, MODIFYPATH, "FYesNoDlgProc", APPHELP1, HELP1PROC$)
  1091. ''    UIPop 1
  1092. ''    IF sz$ = "CONTINUE" THEN
  1093. ''        CopyFile "C:\AUTOEXEC.BAT", GetSymbolValue("AutoexecBackup"), cmoOverwrite,0
  1094. ''        i% = ModifyAutoexec()
  1095. ''        CopyFile GetSymbolValue("AutoexecTemp"), "C:\AUTOEXEC.BAT", cmoOverwrite,0
  1096. ''        RemoveFile GetSymbolValue("AutoexecTemp"), cmoNone
  1097. ''    ENDIF
  1098.  
  1099. SYSINI:
  1100. ''    IF AskModSysIni% = 1 THEN
  1101.         sz$ = UIStartDlg(DS2Cui$, MODIFYSYSTEMINI, "FYesNoDlgProc", APPHELP1, HELP1PROC$)
  1102.         IF sz$ = "CONTINUE" THEN
  1103.             UIPop 1
  1104.             CopyFile WinDir$+"SYSTEM.INI", GetSymbolValue("SysIniBackup"), cmoOverwrite,0
  1105.             i% = ModifySysIni()
  1106.             RemoveFile WinDir$+"SYSTEM.INI", cmoNone
  1107.             RenameFile GetSymbolValue("SysIniTemp"), "SYSTEM.INI"
  1108.         ELSEIF sz$ = "REACTIVATE" THEN
  1109.             GOTO SYSINI
  1110.         ELSE
  1111.             UIPop 1
  1112.         ENDIF
  1113. ''    ENDIF
  1114.  
  1115.  
  1116.  
  1117. ''i% = DoMsgBox("System Architecture ('"+SystemArchitecture$+"')", "Ref Disk", MB_TASKMODAL+MB_OK)
  1118.  
  1119.  
  1120. ''    Configuration file stuff ... do this last because it requires
  1121. ''    removing the installation disk...
  1122. ''    IF (SystemArchitecture$ = "MCA") AND (OPTCard = "1") THEN
  1123. ''        IF (ScannerChoice% = 2) THEN
  1124. ''            ConfigFile$ = "@601f.adf"
  1125. ''        ELSE
  1126. ''            IF (ScannerChoice% = 1 OR ScannerChoice% = 0) THEN
  1127. ''                IF (UsingOldDriver% = 1) THEN
  1128. ''                    ConfigFile$ = "@621f.adf"
  1129. ''                ELSE
  1130. ''                    ConfigFile$ = "@631f.adf"
  1131. ''                ENDIF
  1132. ''            ENDIF
  1133. ''        ENDIF
  1134.  
  1135. ''    ELSEIF (SystemArchitecture$ = "EISA") AND (OPTCard = "1") THEN
  1136. ''        IF (ScannerChoice% = 2) THEN
  1137. ''            ConfigFile$ = "!hwp1461.cfg"
  1138. ''        ELSE
  1139. '' May be adding a new .cfg file for new card
  1140. ''            IF (ScannerChoice% = 1 OR ScannerChoice% = 0) THEN
  1141. ''                IF (AskModSysIni% = 0) THEN
  1142. ''                    ConfigFile$ = "!hwp2002.cfg"
  1143. ''                ELSE
  1144. ''                    ConfigFile$ = "!hwp2080.cfg"
  1145. ''                ENDIF
  1146. ''            ENDIF
  1147. ''        ENDIF
  1148.         
  1149. ''    ELSE    '' System Architecture is "ISA" or only 3rd party SCSI
  1150. ''        GOTO DONE
  1151. ''    ENDIF
  1152.  
  1153. ''i% = DoMsgBox("File ('"+ConfigFile$+"')", "Ref Disk", MB_TASKMODAL+MB_OK)
  1154.  
  1155.  
  1156. '' This section is now based on what is now in the config.sys file, 
  1157. '' not choices made, because some choices are now automatic in order
  1158. '' to fix a bad installation.  (ie. We're not letting the user goof it up)
  1159.  
  1160.     DriverInstalled$ = GetSymbolValue("DriverInstalled")
  1161.  
  1162.     IF DriverInstalled$ = "0" OR DriverInstalled$ = "5" THEN
  1163.         GOTO DONE
  1164.     ENDIF
  1165.         
  1166.     IF (SystemArchitecture$ = "MCA") THEN
  1167.         IF DriverInstalled$ = "1" THEN
  1168.             ConfigFile$ = "@601f.adf"
  1169.         ELSEIF DriverInstalled$ = "2" THEN
  1170.             ConfigFile$ = "@601f.adf"
  1171.         ELSEIF DriverInstalled$ = "3" THEN
  1172.             ConfigFile$ = "@621f.adf"
  1173.         ELSEIF DriverInstalled$ = "4" THEN
  1174.             ConfigFile$ = "@631f.adf"
  1175.         END IF
  1176.     ELSEIF (SystemArchitecture$ = "EISA") THEN
  1177.         IF DriverInstalled$ = "1" THEN
  1178.             ConfigFile$ = "!hwp1461.cfg"
  1179.         ELSEIF DriverInstalled$ = "2" THEN
  1180.             ConfigFile$ = "!hwp1461.cfg"
  1181.         ELSEIF DriverInstalled$ = "3" THEN
  1182.             ConfigFile$ = "!hwp2002.cfg"
  1183.         ELSEIF DriverInstalled$ = "4" THEN
  1184.             ConfigFile$ = "!hwp2080.cfg"
  1185.         END IF
  1186.     ELSE    '' System Architecture is "ISA" or only 3rd party SCSI
  1187.         GOTO DONE
  1188.     ENDIF
  1189.     
  1190.  
  1191.  
  1192. GETREFDISK:
  1193.     SetSymbolValue "EditTextIn", "A:\"
  1194.     SetSymbolValue "EditFocus", "END"
  1195.  
  1196. GETREFDISKL1:
  1197.     sz$ = UIStartDlg(DS2Cui$, INSERTREF, "FRefDiskDlgProc", APPHELP1, HELP1PROC$)
  1198.     refDisk$ = GetSymbolValue("EditTextOut")
  1199.     tStr$ = refDisk$
  1200.     IF (MID$(refDisk$,LEN(refDisk$)) <> "\") THEN
  1201.         refDisk$ = tStr$ + "\"
  1202.     ENDIF
  1203.  
  1204.     IF (sz$ = "CONTINUE") THEN
  1205.         UIPop 1
  1206.  
  1207.         IF (IsDirWritable(refDisk$) = 0) THEN
  1208.             GOSUB BADPATH
  1209.             GOTO GETREFDISKL1
  1210.         ENDIF
  1211.  
  1212. ''        saveCursor% = ShowWaitCursor()
  1213.         CopyFile MakePath(DEST$,ConfigFile$), MakePath( refDisk$,ConfigFile$), cmoNone, 0
  1214. ''        RestoreCursor saveCursor%
  1215.  
  1216.     ELSEIF sz$ = "REACTIVATE" THEN
  1217.         GOTO GETREFDISKL1
  1218.     ELSEIF sz$ = "BACK" THEN
  1219.         UIPop 1
  1220.         GOTO DONE
  1221.     ELSE
  1222.         UIPop 1
  1223.          GOSUB ASKQUIT2
  1224.         GOTO GETREFDISK
  1225.     ENDIF
  1226.  
  1227.  
  1228. GOTO DONE
  1229.  
  1230.  
  1231.  
  1232. BADPATH:
  1233.     sz$ = UIStartDlg(DS2Cui$, BADPATH, "FInfo0DlgProc", 0, "")
  1234.     IF sz$ = "REACTIVATE" THEN
  1235.         GOTO BADPATH
  1236.     END IF
  1237.     UIPop 1
  1238.     RETURN
  1239.  
  1240.  
  1241.  
  1242.  
  1243. ASKQUIT2:
  1244.     sz$ = UIStartDlg(DS2Cui$, ASKQUIT, "FQuitDlgProc", 0, "")
  1245.  
  1246.     IF sz$ = "EXIT" THEN
  1247.         UIPopAll
  1248.         ERROR STFQUIT
  1249.     ELSEIF sz$ = "REACTIVATE" THEN
  1250.         GOTO ASKQUIT2
  1251.     ELSE
  1252.         UIPop 1
  1253.     END IF
  1254.     RETURN
  1255.  
  1256.  
  1257.  
  1258. DONE:
  1259. END SUB
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265. '*************************************************************************
  1266. '**
  1267. '** Purpose:
  1268. '**     Appends a file name to the end of a directory path,
  1269. '**     inserting a backslash character as needed.
  1270. '** Arguments:
  1271. '**     szDir$  - full directory path (with optional ending "\")
  1272. '**     szFile$ - filename to append to directory
  1273. '** Returns:
  1274. '**     Resulting fully qualified path name.
  1275. '*************************************************************************
  1276. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  1277.     IF szDir$ = "" THEN
  1278.         MakePath = szFile$
  1279.     ELSEIF szFile$ = "" THEN
  1280.         MakePath = szDir$
  1281.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  1282.         MakePath = szDir$ + szFile$
  1283.     ELSE
  1284.         MakePath = szDir$ + "\" + szFile$
  1285.     END IF
  1286. END FUNCTION
  1287.