home *** CD-ROM | disk | FTP | other *** search
/ swCHIP 1991 January / swCHIP_95-1.bin / chip / truespac / disk1 / setup.mst < prev    next >
Text File  |  1995-12-11  |  6KB  |  253 lines

  1. '*                       trueSpace 1.0 Setup
  2.  
  3. '***'$DEFINE DEBUG  ''Define for script development/debugging
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST APPHELP       = 900
  16. CONST BADPATH       = 6400
  17. CONST SMALLWIN      = 2200
  18. CONST RESTART       = 2600
  19. CONST RESTARTII     = 2700
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL SizeReq&  '' Total Disk Size required for installation
  25.  
  26. ''File Types
  27. GLOBAL WinDir$
  28. GLOBAL WinSysDir$
  29. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  30. GLOBAL DEST$        ''Default destination directory.
  31. GLOBAL HasMath%     ''has math coprocessor
  32. GLOBAL HasEMU%      ''math emulator already installed    
  33.  
  34. DECLARE SUB Install
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36. DECLARE SUB Reboot LIB "iniupd.dll"
  37. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  38.  
  39.  
  40. INIT:
  41.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  42.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  43.  
  44.     SetBitmap CUIDLL$, LOGO
  45.     SetTitle "Caligari trueSpace 1.0 DEMO  (popis v souboru CTI_MNE.WRI na disket∞)"
  46.  
  47.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  48.     IF szInf$ = "" THEN
  49.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  50.     END IF
  51.     ReadInfFile szInf$
  52.  
  53.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  54.     DEST$ = WINDRIVE$ + ":\truedemo"
  55.  
  56. WELCOME:
  57.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  58.     IF sz$ = "CONTINUE" THEN
  59.         UIPop 1
  60.     ELSE
  61.         GOSUB ASKQUIT
  62.         GOTO WELCOME
  63.     END IF
  64.  
  65.  
  66. GETPATH:
  67.     SetSymbolValue "EditTextIn", DEST$
  68.     SetSymbolValue "EditFocus", "END"
  69. GETPATHL1:
  70.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  71.     DEST$ = GetSymbolValue("EditTextOut")
  72.  
  73.     IF sz$ = "CONTINUE" THEN
  74.         IF IsDirWritable(DEST$) = 0 THEN
  75.             GOSUB BADPATH
  76.             GOTO GETPATHL1
  77.         END IF
  78.         UIPop 1
  79.     ELSEIF sz$ = "REACTIVATE" THEN
  80.         GOTO GETPATHL1
  81.     ELSEIF sz$ = "BACK" THEN
  82.         UIPop 1
  83.         GOTO WELCOME
  84.     ELSE
  85.         GOSUB ASKQUIT
  86.         GOTO GETPATH
  87.     END IF
  88.  
  89.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  90.     WinDir$ = GetWindowsDir()
  91.     WinSysDir$ = GetWindowsSysDir()
  92.     HasMath% = Has87MathChip()
  93.  
  94.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  95.     IF HasMath% < 1 THEN
  96.         GOTO NOMATHQUIT
  97.     END IF
  98.  
  99. ''  Check windrive diskspace
  100.     SizeReq& = GetCopyListCost ("","", "")
  101.     IF SizeReq& <> 0 THEN
  102.     GOSUB SMALLWIN
  103.     END
  104.     END IF
  105.  
  106.  
  107.     Install
  108.  
  109. '' If no emulator installed then no need to restart windows
  110.    IF HasMath%  > 0 THEN
  111.         GOTO QUIT
  112.    ENDIF
  113. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  114. '' else, it gives the user the choice
  115.     RESTRT% = RestartListEmpty ()
  116.     Exe$ = DEST$ + "\_msrstrt.exe"
  117.     Batch$ = DEST$ + "\_mssetup.bat"
  118.     empty$ = ""
  119. RESTART:
  120.     IF RESTRT% = 0 THEN
  121.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  122.        IF sz$ = "REACTIVATE" THEN
  123.       GOTO RESTART
  124.        ENDIF
  125.        I% = ExitExecRestart ()
  126.        RemoveFile Exe$, cmoForce
  127.        RemoveFile Batch$, cmoForce 
  128.        END
  129.     ELSE
  130.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  131.        IF sz$ = "CONTINUE" THEN
  132.       I% = ExitWindowsExec (Exe$, empty$)
  133.       IF I% = 0 THEN
  134.          GOTO RESTART
  135.       ELSE
  136.          END
  137.      ENDIF
  138.        ELSEIF sz$ = "EXIT" THEN
  139.       UIPopAll
  140.       END
  141.        ELSEIF sz$ = "REACTIVATE" THEN
  142.       GOTO RESTART
  143.        ELSE
  144.       UIPop 1
  145.        END IF
  146.     END IF
  147.  
  148.  
  149. QUIT:
  150.     ON ERROR GOTO ERRQUIT
  151.  
  152.     IF ERR = 0 THEN
  153.     dlg% = EXITSUCCESS
  154.     ELSEIF ERR = STFQUIT THEN
  155.     dlg% = EXITQUIT
  156.     ELSE
  157.     dlg% = EXITFAILURE
  158.     END IF
  159. QUITL1:
  160.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  161.     IF sz$ = "REACTIVATE" THEN
  162.     GOTO QUITL1
  163.     END IF
  164.     UIPop 1
  165.     END
  166.  
  167. ERRQUIT:
  168.     i% = DoMsgBox("P°i instalaci vznikl problem.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  169.     END
  170.  
  171. NOMATHQUIT:
  172.     i% = DoMsgBox("Tato demo verze vy₧aduje matematick² koprocesor.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  173.     END
  174.  
  175. ASKQUIT:
  176.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  177.  
  178.     IF sz$ = "EXIT" THEN
  179.     UIPopAll
  180. ''        ERROR STFQUIT
  181.     END
  182.     ELSEIF sz$ = "REACTIVATE" THEN
  183.     GOTO ASKQUIT
  184.     ELSE
  185.     UIPop 1
  186.     END IF
  187.     RETURN
  188.  
  189. SMALLWIN:
  190.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  191.     IF sz$ = "REACTIVATE" THEN
  192.     GOTO SMALLWIN
  193.     END IF
  194.     UIPop 1
  195.     RETURN
  196.  
  197.  
  198. BADPATH:
  199.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  200.     IF sz$ = "REACTIVATE" THEN
  201.         GOTO BADPATH
  202.     END IF
  203.     UIPop 1
  204.     RETURN
  205.  
  206.  
  207. '**
  208. '** Purpose:
  209. '**     performs all installation operations.
  210. '** Arguments:
  211. '**     none.
  212. '** Returns:
  213. '**     none.
  214. '****************
  215. SUB Install STATIC
  216.  
  217.     CreateDir DEST$, cmoNone
  218.  
  219.     CopyFilesInCopyList
  220.  
  221.     CreateIniKeyValue "WIN.INI", "Extensions", "tsd", DEST$ + "\TRUESPAC.EXE ^.tsd", cmoOverwrite
  222.     CreateProgmanGroup "trueSpace", "", cmoNone
  223.     ShowProgmanGroup  "trueSpace", 1, cmoNone
  224.     CreateProgmanItem "trueSpace", "trueSpace DEMO", MakePath(DEST$,"truespac.exe"), "", cmoOverwrite
  225.     CreateProgmanItem "trueSpace", "P°edvßd∞nφ  pro displej 1024x768", MakePath(DEST$,"dems1024.tsd"), "", cmoOverwrite
  226.     CreateProgmanItem "trueSpace", "P°edvßd∞nφ  pro displej  800x600", MakePath(DEST$,"dems800.tsd"), "", cmoOverwrite
  227.  
  228. END SUB
  229.  
  230.  
  231. '**
  232. '** Purpose:
  233. '**     Appends a file name to the end of a directory path,
  234. '**     inserting a backslash character as needed.
  235. '** Arguments:
  236. '**     szDir$  - full directory path (with optional ending "\")
  237. '**     szFile$ - filename to append to directory
  238. '** Returns:
  239. '**     Resulting fully qualified path name.
  240. '*****************
  241. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  242.     IF szDir$ = "" THEN
  243.         MakePath = szFile$
  244.     ELSEIF szFile$ = "" THEN
  245.         MakePath = szDir$
  246.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  247.         MakePath = szDir$ + szFile$
  248.     ELSE
  249.         MakePath = szDir$ + "\" + szFile$
  250.     END IF
  251. END FUNCTION
  252.  
  253.