home *** CD-ROM | disk | FTP | other *** search
/ Exploring Civilizations / Exploring-Civilizations-Romtech.7z / Exploring-Civilizations-Romtech.iso / romt.mst < prev    next >
Text File  |  1996-05-22  |  22KB  |  601 lines

  1. '****************************************************************************
  2. '**                  ROMT Install Script - Doc Apps                        **
  3. '****************************************************************************
  4. DIM Arg$(4)                  '' Set maximum command line arguments to 4
  5. GOSUB CmdLine                '' MUST be done BEFORE including 'setupapi.inc'
  6. IF Arg$(3) = "NOAUDIO" THEN  '' Check user argument 1
  7.   NOAUDIO% = 1
  8.   GOTO INCs
  9. END IF
  10. IF Arg$(4) = "NOAUDIO" THEN  '' Check user argument 2
  11.   NOAUDIO% = 1
  12.   GOTO INCs
  13. END IF
  14. '$DEFINE AUDIO_ENABLED       '' User hasn't turned audio off, so play it
  15. INCs:
  16. '$INCLUDE 'setupapi.inc'
  17. '$INCLUDE 'msdetect.inc'
  18. '$INCLUDE 'romt.inc'
  19. '$IFDEF AUDIO_ENABLED        '' User has turned audio off, so don't load func
  20.   DECLARE FUNCTION sndPlaySound LIB "MMSYSTEM.DLL" (AudFilename$, Flags%) AS INTEGER
  21. '$ENDIF ''AUDIO_ENABLED
  22.  
  23. '****************************************************************************
  24. Group$              = "Rom Tech Software"           '' Group name for Shell
  25. AppTitle$           = "Exploring Civilizations" '' Application Title for Shell
  26. AppExeName$         = "\CV.EXE"          '' Application Executable Name for Shell
  27. AppDir$             = "\CVEXE"            '' Application directory on CD-ROM
  28. ProgRoot$           = "\CV"               '' Application default directory on HD
  29. RT$                 = "\RUNTIME\"          '' Directory on CD-ROM where VfW Runtime resides
  30. MSOBitmap$          = "CV.BMP"            '' MS Office bitmap file for AppTitle$
  31. Win3xInfoEXE$       = "WRITE.EXE"          '' Windows 3.x Application to handle InfoFile$
  32. Win95InfoEXE$       = "WORDPAD.EXE"        '' Windows 95 Application to handle InfoFile$
  33. InfoFile$           = "\README.WRI"        '' Information filename - must be compatible with InfoExe$
  34. OtherAppsTitle$     = "Other RomTech Applications"  '' Title for Other Apps Help File
  35. OtherAppsFile$      = "\Others.hlp"         '' Other Apps Help Filename
  36. WantedDiskSize&     = 2048000              '' Disk space needed for minimum installation
  37. FullWantedDiskSize& = 40960000             '' Disk space needed for full installation
  38. '****************************************************************************
  39.  
  40.  
  41. '****************************************************************************
  42. '**                          Beginning of script                           **
  43. '****************************************************************************
  44. INIT:
  45.  
  46.     WIN32ENABLED% = 0
  47.     VfWFailed% = 0
  48.  
  49.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  50.     SrcDrive$ = MID$(SrcDir$,1,1) + ":"
  51.     WinDir$ = GetWindowsDir()
  52.     WinSysDir$ = GetWindowsSysDir()
  53.     WinSys32Dir$ = WinDir$ + "system32"
  54.  
  55.     OpenLogFile WinDir$ + "ROMT.LOG", 0
  56.     WriteToLogFile ""
  57.     WriteToLogFile "                          ROMT Install LOG file"
  58.     WriteToLogFile ""
  59.     WriteToLogFile "Windows directory is " + WinDir$
  60.     WriteToLogFile ""
  61.     WriteToLogFile "Group      = " + Group$
  62.     WriteToLogFile "AppTitle   = " + AppTitle$
  63.     WriteToLogFile "AppDir     = " + AppDir$
  64.     WriteToLogFile "AppExeName = " + AppExeName$
  65.     WriteToLogFile "SrcDrive   = " + SrcDrive$
  66.     WriteToLogFile ""
  67.     IF NOAUDIO% = 0 THEN
  68.         WriteToLogFile "Audio Enabled."
  69.      ELSE
  70.         WriteToLogFile "Audio Disabled by user."
  71.     END IF
  72.     WriteToLogFile ""
  73.  
  74.     CUIDLL$    = "mscuistf.dll"          ''RomTech user interface dll
  75.     HELPPROC$  = "FHelpDlgProc"          ''Help dialog procedure
  76.  
  77.     MajorVer% = GetWindowsMajorVersion()
  78.     MinorVer% = GetWindowsMinorVersion()
  79.  
  80.       WriteToLogFile "WindowsMajorVersion   = " + STR$(MajorVer%)
  81.       WriteToLogFile "WindowsMinorVersion   = " + STR$(MinorVer%)
  82.  
  83.      IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  84.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  85.         WriteToLogFile "ERROR: Microsoft Windows version was " + str$(MajorVer%) + "." + str$(MinorVer%)
  86.         CloseLogFile
  87.       END
  88.     END IF
  89.  
  90.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  91.     IF OnWindowsNT() THEN
  92.       OnNT$ = "TRUE"
  93.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  94.       IF WowVersion$ = "" THEN
  95.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  96.          WriteToLogFile "ERROR: Microsoft Windows NT running."
  97.          CloseLogFile
  98.          END
  99.       END IF
  100.     END IF
  101.  
  102.     SetBitmap CUIDLL$, LOGO
  103.     SetTitle AppTitle$ + " - Installation Program"
  104.  
  105.      szInf$ = GetSymbolValue("STF_SRCINFPATH")
  106.      IF szInf$ = "" THEN
  107.             szInf$ = GetSymbolValue("STF_CWDDIR") + "ROMT.INF"
  108.      END IF
  109.      ReadInfFile szInf$
  110.  
  111.      WinDrive$ = MID$(WinDir$, 1, 1)
  112.      DEST$ = WinDrive$ + ":" + ProgRoot$
  113.  
  114. '**
  115. '** Purpose:
  116. '**     Show and process WELCOME dialog
  117. '****************************************************************************
  118. WELCOME:
  119.     IF NOAUDIO% = 0 THEN
  120.         r% = PlayWAV(SrcDrive$ + "\welcome.wav")
  121.     END IF
  122.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  123.     IF sz$ = "CONTINUE" THEN
  124.         UIPop 1
  125.      ELSE
  126.         UIPopAll
  127.         r% = PlayWAV("")
  128.         GOSUB ASKQUIT
  129.         GOTO WELCOME
  130.     END IF
  131.     r% = PlayWAV("")
  132.  
  133. OpProc% = 1
  134.  
  135. Install
  136.  
  137. GOTO VfW
  138.  
  139. '**
  140. '** Purpose:
  141. '**     Check for and optionally install MS Video for Windows 1.1
  142. '****************************************************************************
  143. VfW:
  144.     ' If running Windows95, do not install VFW...
  145.     IF (MajorVer% = 3 AND MinorVer%<=95) THEN
  146.  
  147.         AVI$ = GetIniKeyString$("WIN.INI", "mci extensions", "avi")
  148.         IF AVI$ = "AVIVideo" THEN
  149.             sz$ = UIStartDlg(CUIDLL$, DO_AVI_YN, "FQuitDlgProc", 0, "")
  150.             IF sz$ = "CONTINUE" THEN
  151.                 VfW_ANSWER$ = "Yes"
  152.                 WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  153.                 GOSUB InstallVfW
  154.                    UIPopAll
  155.              ELSEIF sz$ = "REACTIVATE" THEN
  156.                 GOTO VfW
  157.              ELSEIF sz$ = "EXIT" THEN
  158.                 VfW_ANSWER$ = "No"
  159.                 WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  160.                 UIPopAll
  161.             END IF
  162.          ELSE
  163.             VfW_ANSWER$ = "Yes"
  164.             WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  165.             GOSUB InstallVfW
  166.         END IF
  167.  
  168.     END IF
  169.  
  170. '**
  171. '** Purpose:
  172. '**     Ask if user wishes to view OTHERS.HLP
  173. '****************************************************************************
  174. OTHERS:
  175.     IF NOAUDIO% = 0 THEN
  176.         r% = PlayWAV(SrcDrive$ + "\other.wav")
  177.     END IF
  178.     sz$ = UIStartDlg(CUIDLL$, DO_OTHERS_YN, "FQuitDlgProc", 0, "")
  179.     IF sz$ = "CONTINUE" THEN
  180.         r% = PlayWAV("")
  181.         ChDrive(SrcDrive$)
  182.         ChDir(AppDir$)
  183.         Run (WinDir$ + "winhelp " + SrcDrive$ + AppDir$ + "\others.hlp")
  184.         OTHERS_ANSWER$ = "Yes"
  185.         UIPopAll
  186.      ELSEIF sz$ = "REACTIVATE" THEN
  187.         r% = PlayWAV("")
  188.         GOTO OTHERS
  189.      ELSEIF sz$ = "EXIT" THEN
  190.         r% = PlayWAV("")
  191.         OTHERS_ANSWER$ = "No"
  192.         UIPopAll
  193.     END IF
  194.     WriteToLogFile "Answer to OTHERS question = " + OTHERS_ANSWER$
  195.     WriteToLogFile ""
  196.  
  197. '**
  198. '** Purpose:
  199. '**     Handle quit messages from SUBs, et al
  200. '****************************************************************************
  201. QUIT:
  202.     ON ERROR GOTO ERRQUIT
  203.  
  204.     IF ERR = 0 THEN
  205.         IF NOAUDIO% = 0 THEN
  206.             r% = PlayWAV(SrcDrive$ + "\success.wav")
  207.         END IF
  208.         dlg% = EXITSUCCESS
  209.         dialog$ = "EXITSUCCESS"
  210.      ELSEIF ERR = STFQUIT THEN
  211.         IF NOAUDIO% = 0 THEN
  212.             r% = PlayWAV(SrcDrive$ + "\ninstall.wav")
  213.         END IF
  214.         dlg% = EXITQUIT
  215.         dialog$ = "EXITQUIT"
  216. '       VfWFailed% = 1
  217.      ELSEIF ERR = STFPROBLEM THEN
  218.         IF NOAUDIO% = 0 THEN
  219.             r% = PlayWAV(SrcDrive$ + "\problem.wav")
  220.         END IF
  221.         dlg% = EXITQUIT
  222.         dialog$ = "EXITQUIT"
  223.         VfWFailed% = 1
  224.      ELSE
  225.         IF NOAUDIO% = 0 THEN
  226.             r% = PlayWAV(SrcDrive$ + "\fatal.wav")
  227.         END IF
  228.         dlg% = EXITFAILURE
  229.         dialog$ = "EXITFAILURE"
  230.         VfWFailed% = 1
  231.     END IF
  232.     WriteToLogFile ""
  233.     WriteToLogFile "ExitDialog = " + dialog$
  234.     WriteToLogFile ""
  235.  
  236. QUITL1:
  237.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  238.     r% = PlayWAV("")
  239.     IF sz$ = "REACTIVATE" THEN
  240.         GOTO QUITL1
  241.     END IF
  242.     UIPopAll
  243.     IF VfW_ANSWER$ = "Yes" THEN
  244.         IF VfWFailed% = 0 THEN
  245.             GOTO RESTART
  246.         END IF
  247.         CloseLogFile
  248.         END
  249.      ELSE
  250.         CloseLogFile
  251.         END
  252.     END IF
  253.  
  254. ERRQUIT:
  255.     IF NOAUDIO% = 0 THEN
  256.         r% = PlayWAV(SrcDrive$ + "\fatal.wav")
  257.     END IF
  258.     i% = DoMsgBox("Install sources were corrupted, call AOMC Tech Support!", "Install Fatal Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  259.     WriteToLogFile "FATAL ERROR: Install sources were corrupted."
  260.     CloseLogFile
  261.   END
  262.  
  263.  
  264. '****************************************************************************
  265. '**                          SUBs and FUNCTIONS                            **
  266. '****************************************************************************
  267.  
  268. '**
  269. '** Purpose:
  270. '**     Show and process ASKQUIT2 dialog
  271. '****************************************************************************
  272. ASKQUIT:
  273.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT2, "FQuitDlgProc", 0, "")
  274.     IF sz$ = "EXIT" THEN
  275.         UIPopAll
  276.         ERROR STFQUIT
  277.     ELSEIF sz$ = "REACTIVATE" THEN
  278.         GOTO ASKQUIT
  279.     ELSE
  280.         UIPop 1
  281.     END IF
  282.   RETURN
  283.  
  284. '**
  285. '** Purpose:
  286. '**     Show BADPATH dialog
  287. '****************************************************************************
  288. BADPATH:
  289.     sz$ = UIStartDlg(CUIDLL$, BADPATH2, "FInfo0DlgProc", 0, "")
  290.     IF sz$ = "REACTIVATE" THEN
  291.         GOTO BADPATH
  292.     END IF
  293.     UIPop 1
  294.   RETURN
  295.  
  296. '**
  297. '** Purpose:
  298. '**     Install VfW 1.1 stuff
  299. '****************************************************************************
  300. InstallVfW:
  301.  
  302. ''Prepare Copy list and check size
  303.  
  304.     ClearCopyList
  305.  
  306. '' Remove DCISVGA file
  307.     AddSectionFilesToCopyList "remove", SrcDrive$ + RT$, WinSysDir$
  308.  
  309. ''  Runtime files (on Windows disk)
  310. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  311.  
  312.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  313.     AddSectionFilesToCopyList "MPlayer", SrcDrive$ + RT$, WinDir$
  314.     AddSectionFilesToCopyList "OLE2", SrcDrive$ + RT$, WinSysDir$
  315.     END IF
  316.     AddSectionFilesToCopyList "VfW Runtime", SrcDrive$ + RT$, WinSysDir$
  317.     AddSectionFilesToCopyList "ACM Drivers", SrcDrive$ + RT$, WinSysDir$
  318.     AddSectionFilesToCopyList "AVICodecs", SrcDrive$ + RT$, WinSysDir$
  319.     IF OnNT$ = "TRUE" THEN
  320.     AddSectionFilesToCopyList "NT MSVideo", SrcDrive$ + RT$, WinSys32Dir$
  321.     ENDIF
  322.  
  323.     'Check windrive diskspace
  324.  
  325.     UIPopAll
  326.     sz$ = UIStartDlg(CUIDLL$, VFWINFO, "FModelessDlgProc", 0, "")
  327.     c% = ShowWaitCursor()
  328.     VfWSizeReq& = GetCopyListCost ("","", "")
  329. '   VfWSizeReq& = VfWSizeReq& + 1
  330. '   i% = DoMsgBox(STR$(VfWSizeReq&), "VfW CopyListCost", MB_OK+MB_TASKMODAL)
  331.     WriteToLogFile "VfW CopyListCost was " + STR$(VfWSizeReq&)
  332.     RestoreCursor c%
  333.        UIPopAll
  334.     IF VfWSizeReq& <> 0 THEN
  335.         GOSUB VfWTooBig
  336. '        ERROR STRQUIT
  337.     END IF
  338.  
  339.     SetRestartDir WinDir$
  340.     CopyFilesInCopyList
  341.     WriteToLogFile "Copied Files in CopyList."
  342.  
  343. ''Updating WIN.INI and SYSTEM.INI
  344. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  345.  
  346. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  347.     IF VflatdPresent() = 0 THEN
  348.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  349.     END IF
  350. END IF
  351.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  352.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  353.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  354.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  355.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  356.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  357.     IF I% = 0  THEN
  358.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  359.     END IF
  360.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  361.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  362.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  363.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  364.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  365.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  366.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  367.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  368.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  369.     WriteToLogFile "Updated INI files."
  370.  
  371. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  372. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  373.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  374.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  375.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  376.     WriteToLogFile "Reg Database updated."
  377.  
  378. '' Mplayer
  379.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  380.     ShowProgmanGroup  Group$, 1, cmoNone
  381. END IF
  382.  
  383.     Run ("profdisp.exe")
  384.     WriteToLogFile "Profile Display has been run."
  385.     WriteToLogFile ""
  386.  
  387.   RETURN
  388.  
  389.  
  390. '**
  391. '** Purpose:
  392. '**     Builds the copy list and performs all installation operations.
  393. '****************************************************************************
  394. SUB Install STATIC
  395.  
  396.     CWDDir$ = GetSymbolValue("STF_CWDDDIR")
  397.  
  398.     CreateProgmanGroup Group$, "", cmoVital
  399.     ShowProgmanGroup  Group$, 1, cmoNone
  400.     IF OpProc% = 1 THEN
  401. '       i% = DoMsgBox(Group$+", "+AppTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Icon Working Directory - CD", MB_OK+MB_TASKMODAL)
  402.         CreateProgmanItem Group$, AppTitle$, SrcDrive$ + AppDir$ + AppExeName$, "", cmoOverwrite
  403. '       i% = DoMsgBox(Group$+", "+AppTitle$+" ReadMe"+", "+SrcDrive$ + AppDir$ + InfoFile$, "ReadMe...", MB_OK+MB_TASKMODAL)
  404.         CreateProgmanItem Group$, AppTitle$+" ReadMe", SrcDrive$ + AppDir$ + InfoFile$, "", cmoOverwrite
  405. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  406.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  407.      ELSEIF OpProc% = 2 THEN
  408. '       i% = DoMsgBox(Group$+", "+AppTitle$+", "+DEST$ + AppDir$ + AppExeName$, "Icon Working Directory - HD", MB_OK+MB_TASKMODAL)
  409.         CreateProgmanItem Group$, AppTitle$, DEST$ + AppDir$ + AppExeName$, "", cmoOverwrite
  410. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  411.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  412. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  413.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  414.     END IF
  415.  
  416. END SUB
  417.  
  418. '**
  419. '** Purpose:
  420. '**     Displays TOOBIG dialog. (VfW)
  421. '****************************************************************************
  422. VfWTooBig:
  423.     VfWFailed% = 1
  424.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FQuitDlgProc", 0, "")
  425.     IF sz$ = "EXIT" THEN
  426.         UIPopAll
  427.      ELSEIF sz$ = "REACTIVATE" THEN
  428.         GOTO VfWTooBig
  429.      ELSE
  430.         UIPopAll
  431.     END IF
  432.     i% = DoMsgBox(STR$(VfWSizeReq&) + " bytes more space is required on your Windows drive.", "Needed Windows drive space", MB_OK+MB_TASKMODAL)
  433.     WriteToLogFile "Free space on Windows drive was insufficient."
  434.     WriteToLogFile ""
  435.     ERROR STFPROBLEM
  436.   RETURN
  437.  
  438. '**
  439. '** Purpose:
  440. '**     Displays TOOBIG2 dialog. (Full install of program)
  441. '****************************************************************************
  442. FullTooBig:
  443.     sz$ = UIStartDlg(CUIDLL$, TOOBIG2, "FQuitDlgProc", 0, "")
  444.     IF sz$ = "EXIT" THEN
  445.         UIPopAll
  446.         ERROR STFPROBLEM
  447.      ELSEIF sz$ = "REACTIVATE" THEN
  448.         GOTO FullTooBig
  449.     END IF
  450.     UIPopAll
  451.     WriteToLogFile "Free space on " + CheckedDrive$ + " drive was insufficient."
  452.     WriteToLogFile ""
  453.   RETURN
  454.  
  455. '**
  456. '** Purpose:
  457. '**     Determine if Install has to update through DOS.
  458. '**      Restart Windows: if it has to update ACM from DOS, it restarts Windows automatically
  459. '**      else, it gives the user the choice
  460. '****************************************************************************
  461. RESTART:
  462.     RESTRT% = RestartListEmpty ()
  463.     Exe$ = DEST$ + "\_msrstrt.exe"
  464.     Batch$ = DEST$ + "\_mssetup.bat"
  465.     empty$ = ""
  466. RESTARTL1:
  467.     IF RESTRT% = 0 THEN
  468.         sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  469.         IF sz$ = "REACTIVATE" THEN
  470.             GOTO RESTARTL1
  471.         END IF
  472.         I% = ExitExecRestart ()
  473.         RemoveFile Exe$, cmoForce
  474.         RemoveFile Batch$, cmoForce
  475.         WriteToLogFile ""
  476.         WriteToLogFile "Restart for DOS finish."
  477.         WriteToLogFile ""
  478.         CloseLogFile
  479.        END
  480.      ELSE
  481.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  482.         IF sz$ = "CONTINUE" THEN
  483.             I% = ExitWindowsExec (Exe$, empty$)
  484.             IF I% = 0 THEN
  485.                 GOTO RESTARTL1
  486.              ELSE
  487.                 WriteToLogFile ""
  488.                 WriteToLogFile "Restart accepted."
  489.                 WriteToLogFile ""
  490.                 CloseLogFile
  491.                END
  492.             END IF
  493.          ELSEIF sz$ = "EXIT" THEN
  494.             UIPopAll
  495.             WriteToLogFile ""
  496.             WriteToLogFile "Restart declined."
  497.             WriteToLogFile ""
  498.             CloseLogFile
  499.            END
  500.          ELSEIF sz$ = "REACTIVATE" THEN
  501.             GOTO RESTARTL1
  502.          ELSE
  503.             UIPop 1
  504.         END IF
  505.     END IF
  506.   RETURN
  507.  
  508. '**
  509. '** Purpose:
  510. '**     Appends a file name to the end of a directory path,
  511. '**     inserting a backslash character as needed.
  512. '** Arguments:
  513. '**     szDir$  - full directory path (with optional ending "\")
  514. '**     szFile$ - filename to append to directory
  515. '** Returns:
  516. '**     Resulting fully qualified path name.
  517. '****************************************************************************
  518. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  519.     IF szDir$ = "" THEN
  520.         MakePath = szFile$
  521.      ELSEIF szFile$ = "" THEN
  522.         MakePath = szDir$
  523.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  524.         MakePath = szDir$ + szFile$
  525.      ELSE
  526.         MakePath = szDir$ + "\" + szFile$
  527.     END IF
  528.  
  529. END FUNCTION
  530.  
  531. '**
  532. '** Purpose:
  533. '**     Determine space available and compare it to space needed.
  534. '** Arguments:
  535. '**     szDir$  - full directory path (with optional ending "\")
  536. '**     szFile$ - filename to append to directory
  537. '** Returns:
  538. '**     Resulting fully qualified path name.
  539. '****************************************************************************
  540. FUNCTION PlayWAV(AudFile$) STATIC AS INTEGER
  541.  
  542.     IF AudFile$ = "" THEN
  543.         aret% = sndPlaySound(NULL, 0)
  544.      ELSE
  545.         aret% = sndPlaySound(AudFile$, SND_ASYNC+SND_NODEFAULT)
  546.     ENDIF
  547.  
  548. '   i% = DoMsgBox(STR$(aret%), "WaveAudio return", MB_OK+MB_TASKMODAL)
  549.  
  550.     IF aret% <> 0 THEN
  551.         PlayWAV = 1
  552.      ELSE
  553.         PlayWAV = 0
  554.     END IF
  555.  
  556. END FUNCTION
  557.  
  558.  
  559. '**
  560. '** Purpose:
  561. '**     Subroutine to get command line and split into arguments.
  562. '**      NumArgs : Number of args found.
  563. '**      Args$() : Array in which to return arguments.
  564. '**      MaxArgs : Maximum number of arguments.
  565. '****************************************************************************
  566. CmdLine:
  567.  
  568.   MaxArgs% = 4
  569.   NOAUDIO% = 0
  570.   NumArgs% = 0
  571.   InIt% = 0
  572.   Cl$ = COMMAND$
  573.   L% = LEN(Cl$)
  574.  
  575.     FOR I% = 1 TO L%     '' Go through the command line a character at a time
  576.         C1$ = MID$(Cl$, I%, 1)
  577.         IF C1$ <> " " THEN     ''Test for a blank
  578.             '' Not a blank
  579.             IF InIt% = 0 THEN     '' Test already inside an argument
  580.                 '' start of a new argument
  581.                 IF NumArgs% = MaxArgs% THEN     '' Test for too many arguments
  582.                     EXIT FOR
  583.                 END IF
  584.                 NumArgs% = NumArgs% + 1
  585.                 InIt% = 1
  586.             END IF
  587.             '' Add character to current argument
  588.             Arg$(NumArgs%) = Arg$(NumArgs%) + UCASE$(C1$)
  589.          ELSE
  590.             '' Found a blank
  591.             InIt% = 0     '' Set 'Not in an argument' flag to 0
  592.         END IF
  593.     NEXT I
  594.     '' Reset COMMAND$ without extra arguments
  595.     COMMAND$ = Arg$(1) + " " + Arg$(2)
  596.  
  597. '    FOR Z% = 1 TO NumArgs%
  598. '       i% = DoMsgBox(COMMAND$ + ", " + Arg$(3), "COMMAND$", MB_OK+MB_TASKMODAL)
  599. '    NEXT
  600.  
  601.   RETURN