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

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