home *** CD-ROM | disk | FTP | other *** search
/ Computer Installation Guide - Dragon Clan Series / CD1.iso / MPEG / 34FS / WIN / MPEG.MST < prev    next >
Encoding:
Text File  |  1995-04-01  |  9.7 KB  |  375 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 VGAOPTIONS    = 1110       '' Give the VGA informatiion
  21. CONST INSTOPTIONS   = 1500       '' Install or Configue selection dialog
  22. CONST APPHELP       = 900        '' Help dialog box
  23. CONST BADPATH       = 6400       '' Bad destination directory dialog box
  24. '' Dialog bitmap icon ID
  25. CONST LOGO = 1
  26.  
  27. ''Global variable declaration
  28. GLOBAL DEST$         '' Default destination directory
  29. GLOBAL BASEIO$       '' I/O address
  30. GLOBAL INTR$         '' Interrupt
  31. GLOBAL DMA$          '' DMA channel
  32. GLOBAL ISINTERLACED$ '' VGA is interlaced or not
  33. GLOBAL SELECTINSTALL$    '' Update configuration or full installation
  34. GLOBAL IOINDEX$
  35. GLOBAL INTINDEX$
  36. GLOBAL DMAINDEX$
  37. GLOBAL INTERLACE$  '' 1 - non interlace, 2 - interlace
  38. GLOBAL RSTART%
  39.  
  40. DECLARE SUB Install
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42. DECLARE SUB AdjustVxdInIni LIB "mscuistf.dll"
  43. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  44.  
  45. INIT:
  46.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  47.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  48.     RSTART% = 0
  49.  
  50.     SetBitmap CUIDLL$, LOGO
  51.     SetTitle "CinaAction 34FS Installation"
  52.  
  53. ''
  54.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  55.     IF szInf$ = "" THEN
  56.     szInf$ = GetSymbolValue("STF_CWDDIR") + "MPEG.INF"
  57.     END IF
  58.     ReadInfFile szInf$
  59.  
  60.     BASEIO$ = "0x280"
  61.     INTR$   =  "7"
  62.     DMA$    =  "6"
  63.     DEST$  =   "C:\CinAct"
  64.     SELECTINSTALL$ = "TRUE"
  65.  
  66. WELCOME:
  67.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  68.     IF sz$ = "CONTINUE" THEN
  69.         UIPop 1
  70.     ELSE
  71.         GOSUB ASKQUIT
  72.         GOTO WELCOME
  73.     END IF
  74.  
  75. ' Get install choice
  76. INOPTION:
  77.    SetSymbolValue "INSTALL","FALSE"
  78.    ini$ = MakePath(GetWindowsDir(),"MPEG-I.INI")
  79.  
  80.    IF DoesFileExist(ini$,femExists) THEN
  81.       sz$ = UIStartDlg(CUIDLL$, INSTOPTIONS, "FUpdateDlgProc", APPHELP, HELPPROC$)
  82.       SELECTINSTALL$ = GetSymbolValue("INSTALL")
  83.  
  84.       IF sz$ = "CONTINUE" THEN
  85.               UIPop(1)
  86.       ELSEIF sz$ = "REACTIVATE" THEN
  87.               GOTO INOPTION
  88.       ELSEIF sz$ = "CONFIG" THEN
  89.               UIPop 1
  90.               GOTO IOOPTION
  91.       ELSE
  92.            GOSUB ASKQUIT
  93.            GOTO INOPTION
  94.       END IF
  95.    END IF
  96.  
  97. ' Get the installation destination path
  98. GETPATH:
  99.     SetSymbolValue "EditTextIn", DEST$
  100.     SetSymbolValue "EditFocus", "END"
  101. GETPATHL1:
  102.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  103.     DEST$ = GetSymbolValue("EditTextOut")
  104.  
  105.     IF sz$ = "CONTINUE" THEN
  106.         IF IsDirWritable(DEST$) = 0 THEN
  107.             GOSUB BADPATH
  108.             GOTO GETPATHL1
  109.         END IF
  110.         UIPop 1
  111.     ELSEIF sz$ = "REACTIVATE" THEN
  112.         GOTO GETPATHL1
  113.     ELSEIF sz$ = "BACK" THEN
  114.         UIPop 1
  115.         GOTO INOPTION
  116.     ELSE
  117.         GOSUB ASKQUIT
  118.         GOTO GETPATH
  119.     END IF
  120.  
  121. ' Get IO Port choice
  122. IOOPTION:
  123.     IOINDEX$ = "1"
  124. IOOPTL1:
  125.     SetSymbolValue "RadioDefault", IOINDEX$
  126.     sz$ = UIStartDlg(CUIDLL$, IOOPTIONS, "FIODlgProc", APPHELP, HELPPROC$)
  127.     BASEIO$ = GetSymbolValue("IOPort")
  128.     IOINDEX$ = GetSymbolValue("ButtonChecked")
  129.  
  130.     IF sz$ = "CONTINUE" THEN
  131.         UIPop(1)
  132.     ELSEIF sz$ = "REACTIVATE" THEN
  133.         GOTO IOOPTL1
  134.  
  135.     ELSEIF sz$ = "BACK" THEN
  136.         UIPop 1
  137.         GOTO GETPATH
  138.     ELSE
  139.         GOSUB ASKQUIT
  140.         GOTO IOOPTION
  141.     END IF
  142.  
  143. ' Get Interrupt choice
  144. INTOPTION:
  145.     INTINDEX$ = "3"
  146. INTOPTL1:
  147.     SetSymbolValue "RadioDefault", INTINDEX$
  148.     sz$ = UIStartDlg(CUIDLL$, INTOPTIONS, "FIntDlgProc", APPHELP, HELPPROC$)
  149.     INTR$ = GetSymbolValue("Interrupt")
  150.     INTINDEX$ = GetSymbolValue("ButtonChecked")
  151.  
  152.     IF sz$ = "CONTINUE" THEN
  153.         UIPop(1)
  154.     ELSEIF sz$ = "REACTIVATE" THEN
  155.         GOTO INTOPTL1
  156.     ELSEIF sz$ = "BACK" THEN
  157.         UIPop 1
  158.         GOTO IOOPTL1
  159.     ELSE
  160.         GOSUB ASKQUIT
  161.         GOTO INTOPTION
  162.     END IF
  163.  
  164. ' Get DMA choice
  165. DMAOPTION:
  166.     DMAINDEX$ = "2"
  167. DMAOPTL1:
  168.     SetSymbolValue "RadioDefault", DMAINDEX$
  169.     sz$ = UIStartDlg(CUIDLL$, DMAOPTIONS, "FDMADlgProc", APPHELP, HELPPROC$)
  170.     DMA$ = GetSymbolValue("DMAChannel")
  171.     DMAINDEX$ = GetSymbolValue("ButtonChecked")
  172.  
  173.     IF sz$ = "CONTINUE" THEN
  174.         UIPop(1)
  175.     ELSEIF sz$ = "REACTIVATE" THEN
  176.         GOTO DMAOPTL1
  177.     ELSEIF sz$ = "BACK" THEN
  178.         UIPop 1
  179.         GOTO INTOPTL1
  180.     ELSE
  181.         GOSUB ASKQUIT
  182.         GOTO DMAOPTION
  183.     END IF
  184.  
  185. ' Get VGA information about interlace.
  186. 'VGAOPTION:
  187. '    INTERLACE$ = "1"
  188. 'VGAOPTL1:
  189. '    SetSymbolValue "RadioDefault", INTERLACE$
  190. '    sz$ = UIStartDlg(CUIDLL$, VGAOPTIONS, "FVGADlgProc", APPHELP, HELPPROC$)
  191. '
  192. '    ISINTERLACED$ = GetSymbolValue("IsInterlaced")
  193. '    INTERLACE$ = GetSymbolValue("ButtonChecked")
  194. '
  195. '    IF sz$ = "CONTINUE" THEN
  196. '        UIPop(1)
  197. '    ELSEIF sz$ = "REACTIVATE" THEN
  198. '        GOTO VGAOPTL1
  199. '    ELSEIF sz$ = "BACK" THEN
  200. '        UIPop 1
  201. '        GOTO DMAOPTL1
  202. '    ELSE
  203. '        GOSUB ASKQUIT
  204. '        GOTO VGAOPTION
  205. '    END IF
  206.  
  207.    Install
  208.  
  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 files
  296.     AddSectionFilesToCopyList "mpegdll", SrcDir$, GetWindowsSysDir()
  297.  
  298.     CopyFilesInCopyList
  299.  
  300.  
  301. IF (SrcDir$ <> DEST$) AND (SrcDir$ <> DEST$+"\") THEN
  302.  
  303.     CreateDir DEST$, cmoNone
  304.  
  305. ' Copy files
  306.     AddSectionFilesToCopyList "mpegfiles", SrcDir$, DEST$
  307.  
  308.     CopyFilesInCopyList
  309. END IF
  310.  
  311. END IF
  312.  
  313. ' Create the MPEG-I.INI file
  314.     ini$ = MakePath(GetWindowsDir(),"MPEG-I.INI")
  315.  
  316. ' create section
  317.     section$ = "System"
  318.  
  319. ' Add the symbols to the MPEG-I.INI file
  320.     CreateIniKeyValue ini$, section$, "BoardAddress", BASEIO$ , cmoOverwrite
  321.  
  322.     section$ = "Video"
  323.     CreateIniKeyValue ini$, section$, "IrqNumber", INTR$ , cmoOverwrite
  324.     CreateIniKeyValue ini$, section$, "DmaChannel", DMA$, cmoOverwrite
  325.  
  326.    ini$ = MakePath(GetWindowsDir(),"SYSTEM.INI")
  327.  
  328. IF SELECTINSTALL$ = "TRUE" THEN
  329.    CreateSysIniKeyValue ini$, "386Enh", "DEVICE",MakePath(DEST$,"VFIC001D.386"), cmoOverwrie
  330.    CreateIniKeyValue ini$, "mci", "MpegVideo",MakePath(DEST$,"MCIMPEG.DRV"), cmoOverwrite
  331.    CreateIniKeyValue ini$, "mci", "VideoCDI",MakePath(DEST$,"MCICDI.DRV"), cmoOverwrite
  332.    CreateIniKeyValue ini$, "386Enh", "VFICDMAC","2", cmoOverwrite
  333.    CreateIniKeyValue ini$, "386Enh", "VFICV86C","8", cmoOverwrite
  334.    group$ = "CinaAction 34FS"
  335.    CreateProgmanGroup group$, "", cmoNone
  336.    ShowProgmanGroup  group$, 1, cmoNone
  337.    CreateProgmanItem group$, "CinaAction 34FS", MakePath(DEST$,"mpfuscrn.exe"),"", cmoOverwrite
  338.    CreateProgmanItem group$, "CinaAction 34FS Setup", MakePath(DEST$,"setup.exe"),"",cmoOverwrite
  339.    AdjustVxdInIni
  340. END IF
  341.  
  342.    ini$ = MakePath(GetWindowsDir(),"WIN.INI")
  343.  
  344. IF SELECTINSTALL$ = "TRUE" THEN
  345.    CreateIniKeyValue ini$, "mci extensions", "mpg", "MpegVideo", cmoOverwrite
  346.    CreateIniKeyValue ini$, "mci extensions", "dat", "VideoCDI,MpegVideo", cmoOverwrite
  347. END IF
  348.  
  349. END SUB
  350.  
  351.  
  352.  
  353. '**
  354. '** Purpose:
  355. '**     Appends a file name to the end of a directory path,
  356. '**     inserting a backslash character as needed.
  357. '** Arguments:
  358. '**     szDir$  - full directory path (with optional ending "\")
  359. '**     szFile$ - filename to append to directory
  360. '** Returns:
  361. '**     Resulting fully qualified path name.
  362. '*************************************************************************
  363. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  364.     IF szDir$ = "" THEN
  365.         MakePath = szFile$
  366.     ELSEIF szFile$ = "" THEN
  367.         MakePath = szDir$
  368.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  369.         MakePath = szDir$ + szFile$
  370.     ELSE
  371.         MakePath = szDir$ + "\" + szFile$
  372.     END IF
  373. END FUNCTION
  374.  
  375.