home *** CD-ROM | disk | FTP | other *** search
/ Computer Tool Software / soft.iso / mpeg1 / MP011RMT / MPEG.MST < prev    next >
Encoding:
Text File  |  1996-08-08  |  10.5 KB  |  404 lines

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