home *** CD-ROM | disk | FTP | other *** search
/ Software One-Stop 3 / BOOTCDROM.iso / install / 34ff21 / mpeg.mst < prev    next >
Encoding:
Text File  |  1995-04-18  |  9.9 KB  |  387 lines

  1.  
  2.  
  3. '**************************************************************************
  4. '*                       MSSetup
  5. '**************************************************************************
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST IOOPTIONS     = 1200       '' IO base address selection dialog
  20. CONST INTOPTIONS    = 1120       '' Interrupt selection dialog
  21. CONST DMAOPTIONS    = 1100       '' DMA Channel selection dialog
  22. CONST TVSOPTIONS    = 1110       '' Give the VGA informatiion
  23. CONST INSTOPTIONS   = 1500       '' Install or Configue selection dialog
  24. CONST APPHELP       = 900        '' Help dialog box
  25. CONST BADPATH       = 6400       '' Bad destination directory dialog box
  26. '' Dialog bitmap icon ID
  27. CONST LOGO = 1
  28.  
  29. ''Global variable declaration
  30. GLOBAL DEST$         '' Default destination directory
  31. GLOBAL BASEIO$       '' I/O address
  32. GLOBAL INTR$         '' Interrupt
  33. GLOBAL DMA$          '' DMA channel
  34. GLOBAL TVSYSTEM$     '' TV is PAL or not
  35. GLOBAL SELECTINSTALL$    '' Update configuration or full installation
  36. GLOBAL IOINDEX$
  37. GLOBAL INTINDEX$
  38. GLOBAL DMAINDEX$
  39. GLOBAL TVSINDEX$
  40. GLOBAL RSTART%
  41.  
  42. DECLARE SUB Install
  43. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  44. DECLARE SUB AdjustVxdInIni LIB "mscuistf.dll"
  45. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  46.  
  47. INIT:
  48.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  49.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  50.     RSTART% = 0
  51.  
  52.     SetBitmap CUIDLL$, LOGO
  53.     SetTitle "MPEG Software Installation"
  54.  
  55. ''
  56.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  57.     IF szInf$ = "" THEN
  58.     szInf$ = GetSymbolValue("STF_CWDDIR") + "MPEG.INF"
  59.     END IF
  60.     ReadInfFile szInf$
  61.  
  62.     BASEIO$ = "0x280"
  63.     INTR$   =  "7"
  64.     DMA$    =  "6"
  65.     DEST$  =   "C:\MPEG"
  66.     SELECTINSTALL$ = "TRUE"
  67.  
  68. WELCOME:
  69.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  70.     IF sz$ = "CONTINUE" THEN
  71.         UIPop 1
  72.     ELSE
  73.         GOSUB ASKQUIT
  74.         GOTO WELCOME
  75.     END IF
  76.  
  77. ' Get install choice
  78. INOPTION:
  79.    SetSymbolValue "INSTALL","FALSE"
  80.    ini$ = MakePath(GetWindowsDir(),"MPEG-I.INI")
  81.  
  82.    IF DoesFileExist(ini$,femExists) THEN
  83.       sz$ = UIStartDlg(CUIDLL$, INSTOPTIONS, "FUpdateDlgProc", APPHELP, HELPPROC$)
  84.       SELECTINSTALL$ = GetSymbolValue("INSTALL")
  85.  
  86.       IF sz$ = "CONTINUE" THEN
  87.               UIPop(1)
  88.       ELSEIF sz$ = "REACTIVATE" THEN
  89.               GOTO INOPTION
  90.       ELSEIF sz$ = "CONFIG" THEN
  91.               UIPop 1
  92.               GOTO IOOPTION
  93.       ELSE
  94.            GOSUB ASKQUIT
  95.            GOTO INOPTION
  96.       END IF
  97.    END IF
  98.  
  99. ' Get the installation destination path
  100. GETPATH:
  101.     SetSymbolValue "EditTextIn", DEST$
  102.     SetSymbolValue "EditFocus", "END"
  103. GETPATHL1:
  104.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  105.     DEST$ = GetSymbolValue("EditTextOut")
  106.  
  107.     IF sz$ = "CONTINUE" THEN
  108.         IF IsDirWritable(DEST$) = 0 THEN
  109.             GOSUB BADPATH
  110.             GOTO GETPATHL1
  111.         END IF
  112.         UIPop 1
  113.     ELSEIF sz$ = "REACTIVATE" THEN
  114.         GOTO GETPATHL1
  115.     ELSEIF sz$ = "BACK" THEN
  116.         UIPop 1
  117.         GOTO INOPTION
  118.     ELSE
  119.         GOSUB ASKQUIT
  120.         GOTO GETPATH
  121.     END IF
  122.  
  123. ' Get IO Port choice
  124. IOOPTION:
  125.     IOINDEX$ = "1"
  126. IOOPTL1:
  127.     SetSymbolValue "RadioDefault", IOINDEX$
  128.     sz$ = UIStartDlg(CUIDLL$, IOOPTIONS, "FIODlgProc", APPHELP, HELPPROC$)
  129.     BASEIO$ = GetSymbolValue("IOPort")
  130.     IOINDEX$ = GetSymbolValue("ButtonChecked")
  131.  
  132.     IF sz$ = "CONTINUE" THEN
  133.         UIPop(1)
  134.     ELSEIF sz$ = "REACTIVATE" THEN
  135.         GOTO IOOPTL1
  136.  
  137.     ELSEIF sz$ = "BACK" THEN
  138.         UIPop 1
  139.         GOTO GETPATH
  140.     ELSE
  141.         GOSUB ASKQUIT
  142.         GOTO IOOPTION
  143.     END IF
  144.  
  145. ' Get Interrupt choice
  146. INTOPTION:
  147.     INTINDEX$ = "3"
  148. INTOPTL1:
  149.     SetSymbolValue "RadioDefault", INTINDEX$
  150.     sz$ = UIStartDlg(CUIDLL$, INTOPTIONS, "FIntDlgProc", APPHELP, HELPPROC$)
  151.     INTR$ = GetSymbolValue("Interrupt")
  152.     INTINDEX$ = GetSymbolValue("ButtonChecked")
  153.  
  154.     IF sz$ = "CONTINUE" THEN
  155.         UIPop(1)
  156.     ELSEIF sz$ = "REACTIVATE" THEN
  157.         GOTO INTOPTL1
  158.     ELSEIF sz$ = "BACK" THEN
  159.         UIPop 1
  160.         GOTO IOOPTL1
  161.     ELSE
  162.         GOSUB ASKQUIT
  163.         GOTO INTOPTION
  164.     END IF
  165.  
  166. ' Get DMA choice
  167. DMAOPTION:
  168.     DMAINDEX$ = "2"
  169. DMAOPTL1:
  170.     SetSymbolValue "RadioDefault", DMAINDEX$
  171.     sz$ = UIStartDlg(CUIDLL$, DMAOPTIONS, "FDMADlgProc", APPHELP, HELPPROC$)
  172.     DMA$ = GetSymbolValue("DMAChannel")
  173.     DMAINDEX$ = GetSymbolValue("ButtonChecked")
  174.  
  175.     IF sz$ = "CONTINUE" THEN
  176.         UIPop(1)
  177.     ELSEIF sz$ = "REACTIVATE" THEN
  178.         GOTO DMAOPTL1
  179.     ELSEIF sz$ = "BACK" THEN
  180.         UIPop 1
  181.         GOTO INTOPTL1
  182.     ELSE
  183.         GOSUB ASKQUIT
  184.         GOTO DMAOPTION
  185.     END IF
  186.  
  187. ' Get TV SYSTEM information.
  188. TVSOPTION:
  189.     TVSINDEX$ = "1"
  190. TVSOPTL1:
  191.     SetSymbolValue "RadioDefault", TVSINDEX$
  192.     sz$ = UIStartDlg(CUIDLL$, TVSOPTIONS, "FTVSDlgProc", APPHELP, HELPPROC$)
  193.  
  194.     TVSYSTEM$ = GetSymbolValue("TVSystem")
  195.     TVSINDEX$ = GetSymbolValue("ButtonChecked")
  196.  
  197.     IF sz$ = "CONTINUE" THEN
  198.         UIPop(1)
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.         GOTO TVSOPTL1
  201.     ELSEIF sz$ = "BACK" THEN
  202.         UIPop 1
  203.         GOTO DMAOPTL1
  204.     ELSE
  205.         GOSUB ASKQUIT
  206.         GOTO TVSOPTION
  207.     END IF
  208.  
  209.    Install
  210.  
  211. QUIT:
  212.    ON ERROR GOTO ERRQUIT
  213.  
  214.    IF ERR = 0 THEN
  215.            dlg% = EXITSUCCESS
  216.    ELSEIF ERR = STFQUIT THEN
  217.            dlg% = EXITQUIT
  218.    ELSE
  219.            dlg% = EXITFAILURE
  220.    END IF
  221.  
  222.    Exe$ = GetWindowsDir()
  223.    SetRestartDir Exe$
  224.    RESTRT% = RestartListEmpty ()
  225.    Exe$ =  MakePath(GetWindowsDir(),"_msrstrt.exe")
  226.    empty$ = ""
  227.  
  228. QUITL1:
  229.    sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  230.  
  231.    IF   sz$ = "REACTIVATE" THEN
  232.         GOTO QUITL1
  233.  
  234.    ELSEIF sz$ = "CONTINUE" THEN
  235.  
  236.         UIPop 1
  237.         END
  238.    ELSE
  239.         I% = ExitWindowsExec (Exe$, empty$)
  240.         IF I% = 0 THEN
  241.            GOTO QUITL1
  242.         ELSE
  243.            END
  244.  
  245.         ENDIF
  246.  
  247.    END IF
  248.  
  249. ERRQUIT:
  250.     i% = DoMsgBox("Setup were corrupted!", " ", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  251.  
  252.     END
  253.  
  254.  
  255.  
  256. BADPATH:
  257.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  258.     IF sz$ = "REACTIVATE" THEN
  259.         GOTO BADPATH
  260.  
  261.     END IF
  262.     UIPop 1
  263.     RETURN
  264.  
  265.  
  266.  
  267. ASKQUIT:
  268.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  269.  
  270.     IF sz$ = "EXIT" THEN
  271.         UIPopAll
  272.         ERROR STFQUIT
  273.     ELSEIF sz$ = "REACTIVATE" THEN
  274.         GOTO ASKQUIT
  275.     ELSE
  276.         UIPop 1
  277.     END IF
  278.     RETURN
  279.  
  280.  
  281. '**
  282. '** Purpose:
  283. '**     Builds the copy list and performs all installation operations.
  284. '** Arguments:
  285. '**     none.
  286. '** Returns:
  287. '**     none.
  288. '*************************************************************************
  289. SUB Install STATIC
  290.  
  291. IF SELECTINSTALL$ = "TRUE" THEN
  292.  
  293. ' Create the directory
  294.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  295.  
  296. 'Copy PCVIDEO ini files
  297.  
  298. IF  TVSYSTEM$ <> "PAL" THEN
  299.     AddSectionFilesToCopyList "mctini.nts", SrcDir$, GetWindowsDir()
  300. ELSE
  301.     AddSectionFilesToCopyList "mctini.pal", SrcDir$, GetWindowsDir()
  302. END IF
  303.  
  304.     CopyFilesInCopyList
  305.  
  306.  
  307. ' Copy files
  308.     AddSectionFilesToCopyList "mpegdll", SrcDir$, GetWindowsSysDir()
  309.  
  310.     CopyFilesInCopyList
  311.  
  312.  
  313. IF (SrcDir$ <> DEST$) AND (SrcDir$ <> DEST$+"\") THEN
  314.  
  315.     CreateDir DEST$, cmoNone
  316.  
  317. ' Copy files
  318.     AddSectionFilesToCopyList "mpegfiles", SrcDir$, DEST$
  319.  
  320.     CopyFilesInCopyList
  321. END IF
  322.  
  323. END IF
  324.  
  325. ' Create the MPEG-I.INI file
  326.     ini$ = MakePath(GetWindowsDir(),"MPEG-I.INI")
  327.  
  328. ' create section
  329.     section$ = "System"
  330.  
  331. ' Add the symbols to the MPEG-I.INI file
  332.     CreateIniKeyValue ini$, section$, "BoardAddress", BASEIO$ , cmoOverwrite
  333.     CreateIniKeyValue ini$, section$, "TVSystem", TVSYSTEM$ , cmoOverwrite
  334.  
  335.     section$ = "Video"
  336.     CreateIniKeyValue ini$, section$, "IrqNumber", INTR$ , cmoOverwrite
  337.     CreateIniKeyValue ini$, section$, "DmaChannel", DMA$, cmoOverwrite
  338.  
  339.    ini$ = MakePath(GetWindowsDir(),"SYSTEM.INI")
  340.  
  341. IF SELECTINSTALL$ = "TRUE" THEN
  342.    CreateSysIniKeyValue ini$, "386Enh", "DEVICE",MakePath(DEST$,"VFIC001D.386"), cmoOverwrie
  343.    CreateIniKeyValue ini$, "mci", "MpegVideo","MCIMPEG.DRV", cmoOverwrite
  344.    CreateIniKeyValue ini$, "mci", "VideoCDI","MCICDI.DRV", cmoOverwrite
  345.    CreateIniKeyValue ini$, "386Enh", "VFICDMAC","2", cmoOverwrite
  346.    CreateIniKeyValue ini$, "386Enh", "VFICV86C","8", cmoOverwrite
  347.    group$ = "MPEG Software"
  348.    CreateProgmanGroup group$, "", cmoNone
  349.    ShowProgmanGroup  group$, 1, cmoNone
  350.    CreateProgmanItem group$, "MPEG 34FF", MakePath(DEST$,"mpegplay.exe"),"",cmoOverwrite
  351.    CreateProgmanItem group$, "MPEG 34FF Setup", MakePath(DEST$,"setup.exe"),"",cmoOverwrite
  352.    AdjustVxdInIni
  353. END IF
  354.  
  355.    ini$ = MakePath(GetWindowsDir(),"WIN.INI")
  356.  
  357. IF SELECTINSTALL$ = "TRUE" THEN
  358.    CreateIniKeyValue ini$, "mci extensions", "mpg", "MpegVideo", cmoOverwrite
  359.    CreateIniKeyValue ini$, "mci extensions", "dat", "VideoCDI,MpegVideo", cmoOverwrite
  360. END IF
  361.  
  362. END SUB
  363.  
  364.  
  365.  
  366. '**
  367. '** Purpose:
  368. '**     Appends a file name to the end of a directory path,
  369. '**     inserting a backslash character as needed.
  370. '** Arguments:
  371. '**     szDir$  - full directory path (with optional ending "\")
  372. '**     szFile$ - filename to append to directory
  373. '** Returns:
  374. '**     Resulting fully qualified path name.
  375. '*************************************************************************
  376. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  377.     IF szDir$ = "" THEN
  378.         MakePath = szFile$
  379.     ELSEIF szFile$ = "" THEN
  380.         MakePath = szDir$
  381.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  382.         MakePath = szDir$ + szFile$
  383.     ELSE
  384.         MakePath = szDir$ + "\" + szFile$
  385.     END IF
  386. END FUNCTION
  387.