home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / nsrout.exe / RTR.MST < prev    next >
Text File  |  1994-03-18  |  30KB  |  932 lines

  1. '*************************************************************************
  2. '*                    NetSoft NS/Router Setup
  3. '*                   Copyright (c) 1994 NetSoft
  4. '*                        Author: RNDBC
  5. '**************************************************************************
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'MSDETECT.INC'
  9. '---------------------------------------------------------------------------
  10.  
  11. ''Dialog ID's
  12. CONST MAINDIR                   = 800
  13. CONST MAINDIR1                  = 850
  14. CONST INSTALL                   = 1000
  15. CONST COPYPATH                  = 1300
  16. CONST SHAREPATH                 = 1400
  17. CONST EXISTFILES1               = 1600
  18. CONST EXISTFILES2               = 1700
  19. CONST EXITOK0                   = 1800
  20. CONST EXITOK1                   = 1850
  21. CONST EXITOK2                   = 1900
  22. CONST EXITOK3                   = 2000
  23. CONST NOSPACE                   = 2200
  24. ''CONST BADPATH                 = 2300
  25. CONST ASKQUIT                   = 2400
  26. ''CONST EXITFAILURE             = 2500
  27. CONST USERPATH1                 = 2600
  28. CONST READONLY                  = 2800
  29. CONST LINKTYPE                  = 300
  30. CONST DETAIL                    = 200
  31. CONST EHNFILE                   = 400
  32. CONST WINVERS                   = 700
  33. CONST LOADTSR                   = 3000
  34. CONST SYSTEMINI                 = 3100
  35. CONST RESETWIN                  = 3200
  36.  
  37. ''Bitmap ID
  38. CONST RTRBMP = 2
  39.  
  40. GLOBAL WinDir$         ''Windows path
  41. GLOBAL WinSysDir$      ''NWindows system path
  42. GLOBAL hwnd%           ''parent window handle
  43. GLOBAL WINWRITABLE%    ''if windows directory writable
  44. GLOBAL RTRdir1$        ''RTR intall dir
  45. GLOBAL CopyDir1$       ''NS/Router exist flag
  46. GLOBAL SrcDir$         ''Setup source directory
  47. GLOBAL IniEntry386%    '' flag for writing entries in system.ini
  48. GLOBAL ReadOnlyFlag%   '' if windows system directory readonly
  49.  
  50. DECLARE SUB InstallSingle
  51. DECLARE SUB InstallDir
  52. DECLARE SUB InstallShared
  53. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  54. DECLARE FUNCTION Maximize LIB "mscuistf.dll" (Hwnd%) AS INTEGER
  55. DECLARE FUNCTION LoadI18N LIB "mscuistf.dll" () AS INTEGER
  56. DECLARE FUNCTION RestartWin LIB "mscuistf.dll" () AS INTEGER
  57. DECLARE FUNCTION Update386Proc LIB "mscuistf.dll" (IniEntry386% ) AS INTEGER
  58. DECLARE FUNCTION AddRelNote LIB "mscuistf.dll" (CMDLINE$, ICONPATH$) AS INTEGER
  59. DECLARE FUNCTION ExecCfg LIB "mscuistf.dll" (hwnd%) AS INTEGER
  60. ''-------------------------------------------------------------------------
  61.  
  62. INIT:
  63.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  64.     hwnd% = HwndFrame
  65.     i% = Maximize (hwnd%)
  66.     i% = LoadI18N ()
  67.  
  68.     SetBitmap CUIDLL$, RTRBMP
  69.     SetTitle GetSymbolValue("TITLE")
  70.     ''SetAbout GetSymbolValue("TITLE"), GetSymbolValue("NETSOFT")
  71.  
  72.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  73.     IF szInf$ = "" THEN
  74.     szInf$ = GetSymbolValue("STF_CWDDIR") + "setup.INF"
  75.     END IF
  76.     ReadInfFile szInf$
  77.  
  78. ''------ Configurable installation ------
  79.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  80.     tmpfile$ = MakePath(SrcDir$, "setrtr.ini")
  81.     SetSymbolValue "Package", ""        '' init: 
  82.  
  83.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "Async")
  84.     IF tmpsz$ = "1" THEN
  85.     SetSymbolValue "Async", "1"         '' intsall Async
  86.     ELSE
  87.     SetSymbolValue "Async", "0"         '' not install Async
  88.     ENDIF
  89.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "E400LANGW")
  90.     IF tmpsz$ = "1" THEN
  91.     SetSymbolValue "E400LANGW", "1"         '' intsall Elite/400 LAN GW
  92.     ELSE
  93.     SetSymbolValue "E400LANGW", "0"         '' not install Elite/400 LAN GW
  94.     ENDIF
  95.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "NTSNAServer")
  96.     IF tmpsz$ = "1" THEN
  97.     SetSymbolValue "MSSNAServer", "1"         '' intsall MicroSoft SNA Serer
  98.     ELSE
  99.     SetSymbolValue "MSSNAServer", "0"         '' not install MS SNA Serer
  100.     ENDIF
  101.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "NetWareSAA")
  102.     IF tmpsz$ = "1" THEN
  103.     SetSymbolValue "NetWareSAA", "1"         '' intsall NetWare for SAA
  104.     ELSE
  105.     SetSymbolValue "NetWareSAA", "0"         '' not install NetWare for SAA
  106.     ENDIF
  107.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "SDLC")
  108.     IF tmpsz$ = "1" THEN
  109.     SetSymbolValue "SDLC", "1"         '' intsall SDLC
  110.     ELSE
  111.     SetSymbolValue "SDLC", "0"         '' not install SDLC
  112.     ENDIF
  113.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "TokenRing")
  114.     IF tmpsz$ = "1" THEN
  115.     SetSymbolValue "TokenRing", "1"         '' intsall Token Ring
  116.     ELSE
  117.     SetSymbolValue "TokenRing", "0"         '' not install Token Ring
  118.     ENDIF
  119.     tmpsz$ = GetIniKeyString(tmpfile$, "LinkAvail", "Twinax")
  120.     IF tmpsz$ = "1" THEN
  121.     SetSymbolValue "Twinax", "1"         '' intsall Twinax
  122.     ELSE
  123.     SetSymbolValue "Twinax", "0"         '' not install Twinax
  124.     ENDIF
  125.  
  126.  
  127. ''------ Initialization ------
  128.     DEFMAINDIR$ = "C:\NSMIDRNG\ROUTER"         '' default destination directory
  129.  
  130.     SetSymbolValue "CurMainDir", DEFMAINDIR$
  131.     SetSymbolValue "InstallChoice","1"  '' init radio button in INSTALL to 1
  132.     SetSymbolValue "DetailChoice", "1"  '' init radio button in DETAIL to 1
  133.     SetSymbolValue "EhnChoice",    "1"  '' init radio button in EHNFILE to 1
  134.     SetSymbolValue "BackOn",       "1"  '' init Back button in DETAIL to on
  135.  
  136.     ReadOnlyFlag% = 0                   '' init: for Windows System Dir 
  137.     OldVersion% = 0                     '' init: Older version exists?
  138.     IniEntry386% = 0                    '' init: assume no SDLC nor 8022 link
  139.  
  140.     WinDir$ = GetWindowsDir()
  141.     WinSysDir$ = GetWindowsSysDir()
  142.  
  143.     i% = SetSizeCheckMode(scmOff)       '' disable file size checking
  144.  
  145. ''--- Check Windows Version >= 3.1 ---
  146. WINVER0:
  147.     WinMajorVer% = GetWindowsMajorVersion()
  148.     WinMinorVer% = GetWindowsMinorVersion()
  149.     IF WinMajorVer% >= 3 THEN
  150.     IF WinMinorVer% >= 10 THEN
  151.         GOTO INSTALL0
  152.     ENDIF
  153.     ENDIF
  154.     SetSymbolValue "HELPMSG", "1"
  155.     sz$ = UIStartDlg(CUIDLL$, WINVERS, "FInfoDlgProc", 0, "")
  156.     IF sz$ = "REACTIVATE" THEN
  157.     GOTO WINVER0
  158.     ELSE
  159.     UIPop 1
  160.     ENDIF
  161.     GOTO QUIT
  162.  
  163. ''--------- SingleUser, Copy to Network Dir or Share Access -----------
  164. INSTALL0:
  165. ''  sz$ = UIStartDlg(CUIDLL$, INSTALL, "InstallDlgProc", 0, "")
  166. ''  IF sz$ = "CONTINUE" THEN
  167. ''    UIPop 1
  168. ''  ELSEIF sz$ = "REACTIVATE" THEN
  169. ''    GOTO INSTALL0
  170. ''  ELSE
  171. ''    UIPop 1
  172. ''    GOSUB ASKQUIT
  173. ''    GOTO INSTALL0
  174. ''  ENDIF
  175.  
  176. ''  tmpsz$ = GetSymbolValue("InstallChoice")    
  177.     tmpsz$ = "1"   
  178.     IF tmpsz$ = "1" THEN
  179.     GOTO SINGLEUSER
  180.     ELSEIF tmpsz$ = "2" THEN
  181.     GOTO COPYDISK
  182.     ELSE
  183.     GOTO SHAREDACCESS
  184.     ENDIF
  185.  
  186. ''--------- SingleUser -----------
  187. SINGLEUSER:
  188. ''--------- Express or Custom -----------
  189. DETAIL0:
  190. ''  sz$ = UIStartDlg(CUIDLL$, DETAIL, "DetailDlgProc", 0, "")
  191. ''  IF sz$ = "CONTINUE" THEN
  192. ''    UIPop 1
  193. ''  ELSEIF sz$ = "REACTIVATE" THEN
  194. ''    GOTO DETAIL0
  195. ''  ELSEIF sz$ = "BACK" THEN
  196. ''    UIPop 1
  197. ''    GOTO INSTALL0
  198. ''  ELSE
  199. ''    UIPop 1
  200. ''    GOSUB ASKQUIT
  201. ''    GOTO DETAIL0
  202. ''  ENDIF
  203.  
  204. ''--------- Installation Root Directory -----------
  205.     tmpsz$ = GetIniKeyString("WIN.INI", "NetSoft", "NSRTRPath")
  206.     IF LEN(tmpsz$) > 0 THEN
  207.     IF DoesDirExist(tmpsz$) = 1 THEN
  208.         OldVersion% = 1
  209.         SetSymbolValue "CurMainDir", tmpsz$
  210.     ENDIF
  211.     ENDIF
  212.  
  213. MAINDIR0:
  214.     IF OldVersion% = 1 THEN
  215.     SetSymbolValue "OLDVERS", "1"
  216.     sz$ = UIStartDlg(CUIDLL$, MAINDIR1, "MainDirDlgProc", 0, "")
  217.     ELSE
  218.     SetSymbolValue "OLDVERS", "0"
  219.     sz$ = UIStartDlg(CUIDLL$, MAINDIR, "MainDirDlgProc", 0, "")
  220.     ENDIF
  221.     
  222.     IF sz$ = "CONTINUE" THEN
  223.     RTRdir1$ = GetSymbolValue("CurMainDir")
  224.     UIPop 1
  225.     ELSEIF sz$ = "REACTIVATE" THEN
  226.     GOTO MAINDIR0
  227.     ELSEIF sz$ = "BACK" THEN
  228.     UIPop 1
  229.     GOTO DETAIL0
  230.     ELSE
  231.     UIPop 1
  232.     GOSUB ASKQUIT
  233.     GOTO MAINDIR0
  234.     ENDIF
  235.     
  236. ''  tmpsz$ = GetSymbolValue("DetailChoice")    '' from the last dialog
  237.     tmpsz$ = "1"
  238.     IF tmpsz$ = "1" THEN
  239.     GOTO EXPRESS
  240.     ENDIF
  241.  
  242. ''--------- LinkType Selection ----------
  243. LINKTYPE0:
  244.     sz$ = UIStartDlg(CUIDLL$, LINKTYPE, "LinkTypeDlgProc", 0, "")
  245.     
  246.     IF sz$ = "CONTINUE" THEN
  247.     UIPop 1
  248.     ELSEIF sz$ = "REACTIVATE" THEN
  249.     GOTO LINKTYPE0
  250.     ELSEIF sz$ = "BACK" THEN
  251.     UIPop 1
  252.     GOTO MAINDIR0
  253.     ELSE
  254.     UIPop 1
  255.     GOSUB ASKQUIT
  256.     GOTO LINKTYPE0
  257.     ENDIF
  258.  
  259. '' -------- Express Installation continues here --------
  260. EXPRESS:        
  261.  
  262. '' -------- If Windows System Dir is read-only... --------
  263. READONLY0:
  264.     SYSWRITABLE% = IsDirWritable(WinSysDir$)
  265.     IF SYSWRITABLE% = 0 THEN
  266.     sz$ = UIStartDlg(CUIDLL$, READONLY, "ReadOnlyDlgProc", 0, "")
  267.     IF sz$ = "CONTINUE" THEN
  268.         ReadOnlyFlag% = 1
  269.         UIPop 1
  270.     ELSEIF sz$ = "REACTIVATE" THEN
  271.         GOTO READONLY0
  272.     ELSE
  273.         UIPop 1
  274.         GOSUB ASKQUIT
  275.         GOTO READONLY0
  276.     ENDIF
  277.     ENDIF
  278.     
  279.     RTRdrive$ = MID$(GetSymbolValue("CurMainDir"), 1, 1)
  280.     nDrive% = ASC(RTRdrive$) - ASC("A") + 1
  281.     tmpfile$ = MakePath(SrcDir$, "setrtr.ini")
  282.     tmpsz1$ = GetIniKeyString(tmpfile$, "SIZE", "RTRfull")
  283.     size& = VAL(tmpsz1$) * 1000
  284.     FreeSize& = GetFreeSpaceForDrive(RTRdrive$)
  285.     IF size& > FreeSize& THEN
  286.     GOTO NOSPACE0
  287.     ''SetSymbolValue "BADDRIVE", RTRdrive$
  288.     ''i% = DoMsgBox(tmpsz$, "N", MB_OK+MB_TASKMODAL)
  289.     ENDIF
  290.  
  291.     GOTO NOSPACEDONE            '' Skip NOSPACE
  292.  
  293.  
  294. NOSPACE0:
  295.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "NoSpaceDlgProc", 0, "")
  296.     IF sz$ = "REACTIVATE" THEN
  297.     GOTO NOSPACE0
  298.     ELSE
  299.     UIPop 1
  300.     GOTO QUIT
  301.     ENDIF
  302. NOSPACEDONE:
  303.     
  304.     WINWRITABLE% = IsDirWritable(WinDir$)
  305.     IF WINWRITABLE% = 1 THEN
  306.     IF DoesFileExist(WinDir$ + "EHNAPPC.DLL", femExists) THEN
  307.         IF DoesFileExist(WinDir$ + "EHNAPPC.NS0", femExists) THEN
  308.         RemoveFile WinDir$+"EHNAPPC.NS0", cmoForce
  309.         ENDIF
  310.         RenameFile WinDir$+"EHNAPPC.DLL", "EHNAPPC.NS0"
  311.     ENDIF
  312.     IF DoesFileExist(WinDir$ + "EHNRTRW.DLL", femExists) THEN
  313.         IF DoesFileExist(WinDir$ + "EHNRTRW.NS0", femExists) THEN
  314.         RemoveFile WinDir$+"EHNRTRW.NS0", cmoForce
  315.         ENDIF
  316.         RenameFile WinDir$+"EHNRTRW.DLL", "EHNRTRW.NS0"
  317.     ENDIF
  318.      ENDIF
  319.      IF ReadOnlyFlag% = 0 THEN
  320.     IF DoesFileExist(WinSysDir$ + "EHNAPPC.DLL", femExists) THEN
  321.         GOTO EHNFILE0
  322.     ENDIF
  323.     IF DoesFileExist(WinSysDir$ + "EHNRTRW.DLL", femExists) THEN
  324.         GOTO EHNFILE0
  325.     ENDIF
  326.      ENDIF
  327.     GOTO ACTION0
  328.  
  329. EHNFILE0:
  330.     sz$ = UIStartDlg(CUIDLL$, EHNFILE, "EhnFileDlgProc", 0, "")
  331.     
  332.     IF sz$ = "CONTINUE" THEN
  333.     UIPop 1
  334.     ELSEIF sz$ = "REACTIVATE" THEN
  335.     GOTO EHNFILE0
  336.     ELSE
  337.     UIPop 1
  338.     GOSUB ASKQUIT
  339.     GOTO EHNFILE0
  340.     ENDIF
  341.  
  342. ACTION0:
  343.     tmpsz$ = GetSymbolValue("EhnChoice")    
  344.     IF tmpsz$ = "2" THEN                '' Rename EHN files
  345.        IF ReadOnlyFlag% = 0 THEN
  346.         IF DoesFileExist(WinSysDir$ + "EHNAPPC.DLL", femExists) THEN
  347.         IF DoesFileExist(WinSysDir$ + "EHNAPPC.NS0", femExists) THEN
  348.             RemoveFile WinSysDir$+"EHNAPPC.NS0", cmoForce
  349.         ENDIF
  350.         RenameFile WinSysDir$+"EHNAPPC.DLL", "EHNAPPC.NS0"
  351.         ENDIF
  352.         IF DoesFileExist(WinSysDir$ + "EHNRTRW.DLL", femExists) THEN
  353.         IF DoesFileExist(WinSysDir$ + "EHNRTRW.NS0", femExists) THEN
  354.             RemoveFile WinSysDir$+"EHNRTRW.NS0", cmoForce
  355.         ENDIF
  356.         RenameFile WinSysDir$+"EHNRTRW.DLL", "EHNRTRW.NS0"
  357.         ENDIF
  358.        ELSE
  359.         tmpfile$ = MakePath(WinDir$, "WINSYS")
  360.         CreateDir tmpfile$, cmoNone
  361.         IF DoesFileExist(tmpfile$ + "EHNAPPC.DLL", femExists) THEN
  362.         IF DoesFileExist(tmpfile$ + "EHNAPPC.NS0", femExists) THEN
  363.             RemoveFile tmpfile$+"EHNAPPC.NS0", cmoForce
  364.         ENDIF
  365.         RenameFile tmpfile$+"EHNAPPC.DLL", "EHNAPPC.NS0"
  366.         ENDIF
  367.         IF DoesFileExist(tmpfile$ + "EHNRTRW.DLL", femExists) THEN
  368.         IF DoesFileExist(tmpfile$ + "EHNRTRW.NS0", femExists) THEN
  369.             RemoveFile tmpfile$+"EHNRTRW.NS0", cmoForce
  370.         ENDIF
  371.         RenameFile tmpfile$+"EHNRTRW.DLL", "EHNRTRW.NS0"
  372.         ENDIF
  373.     ENDIF
  374.     ENDIF
  375.  
  376.     InstallSingle
  377.  
  378.     tmpsz0$ = GetSymbolValue("SDLC")    
  379.     IF tmpsz0$ = "1" THEN
  380.     IniEntry386% = IniEntry386% + 2
  381.     ENDIF
  382.  
  383.     tmpsz$ = GetSymbolValue("TokenRing")    
  384.     IF tmpsz$ = "1" THEN
  385.     IniEntry386% = IniEntry386% + 1
  386.     tmpnum% = GetWindowsMode()
  387.     IF tmpnum% <> 2 THEN
  388.         GOTO LOADTSR0        
  389.     ENDIF
  390.     ENDIF
  391.     GOTO LOADTSR9
  392.  
  393. LOADTSR0:
  394.     ''i% = DoMsgBox("Setup has detected Windows is not in Enhanced Mode. User has to load 802.2 TSR (NS8022.EXE) at DOS!", "NS/Router Version 4.02 Setup Message", MB_OK+MB_TASKMODAL)
  395.     SetSymbolValue "HELPMSG", "2"
  396.     sz$ = UIStartDlg(CUIDLL$, LOADTSR, "FInfoDlgProc", 0, "")
  397.     IF sz$ = "REACTIVATE" THEN
  398.     GOTO LOADTSR0
  399.     ELSE
  400.     UIPop 1
  401.     ENDIF
  402.     
  403.     SetSymbolValue "OKSTATE", "1"
  404.     GOTO ExitOK1    
  405.  
  406. LOADTSR9:
  407.  
  408.     IF IniEntry386% = 0 THEN
  409.     SetSymbolValue "OKSTATE", "1"
  410.     GOTO ExitOK1        ''no SDLC nor TokenRing->no change in system.ini
  411.     ENDIF
  412.     SrcFile$ = MakePath(WinDir$, "SYSTEM.INI")
  413.     TarFile$ = MakePath(WinDir$, "SYSTEM.NS0")
  414.     CopyFile SrcFile$, TarFile, cmoOverwrite, 0
  415.     tmpnum% = Update386Proc(IniEntry386%)   '' write to SYSTEM.INI
  416.     IF tmpnum% = 0 THEN
  417.     ''i% = DoMsgBox("Cannot update SYSTEM.INI!", "SetUp Error Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  418. SYSTEMINI0:
  419.     SetSymbolValue "HELPMSG", "3"
  420.     sz$ = UIStartDlg(CUIDLL$, SYSTEMINI, "FInfoDlgProc", 0, "")
  421.     IF sz$ = "REACTIVATE" THEN
  422.         GOTO SYSTEMINI0
  423.     ELSE
  424.         UIPop 1
  425.     ENDIF
  426.  
  427.     ELSE
  428.     tmpsz$ = GetSymbolValue("TokenRing")    
  429.     IF tmpsz$ = "1" THEN
  430.         tmpsz$ = GetIniKeyString(SrcFile$, "Vns8022.386", "MaxData")
  431.         IF LEN(tmpsz$) <= 1 THEN
  432.         CreateIniKeyValue SrcFile$,"Vns8022.386","MaxData","1033",cmoOverwrite
  433.         ENDIF
  434.  
  435.         tmpsz$ =GetIniKeyString(SrcFile$,"Vns8022.386","MaxLinkStation")
  436.         IF LEN(tmpsz$) = 0 THEN
  437.         CreateIniKeyValue SrcFile$,"Vns8022.386","MaxLinkStation","1",cmoOverwrite
  438.         ENDIF
  439.     ENDIF
  440.     ENDIF
  441.     SetSymbolValue "OKSTATE", "0"
  442.     GOTO ExitOK0    
  443.  
  444. ExitOK0:
  445.     sz$ = UIStartDlg(CUIDLL$, EXITOK0, "ExitOKDlgProc", 0, "")
  446.     
  447.     IF sz$ = "REACTIVATE" THEN
  448.     GOTO ExitOK0
  449.     ELSEIF sz$ = "EXIT" THEN
  450.     UIPop 1
  451.     ELSEIF sz$ = "EXECCFG" THEN
  452.     UIPop 1
  453.     i% = ExecCfg(hwnd%) 
  454.     GOTO QUIT
  455.     ELSEIF sz$ = "RESTARTWIN" THEN
  456.     UIPop 1
  457.     i% = RestartWin()
  458.     ''i% = DoMsgBox("Please close other applications!", "Restart Windows Error Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  459. RESTARTWIN0:
  460.     SetSymbolValue "HELPMSG", "4"
  461.     sz$ = UIStartDlg(CUIDLL$, RESETWIN, "FInfoDlgProc", 0, "")
  462.     IF sz$ = "REACTIVATE" THEN
  463.         GOTO RESTARTWIN0
  464.     ELSE
  465.         UIPop 1
  466.     ENDIF
  467.     GOTO ExitOK0
  468.     ENDIF
  469.  
  470.     GOTO QUIT
  471.  
  472. ExitOK1:
  473.     sz$ = UIStartDlg(CUIDLL$, EXITOK1, "ExitOKDlgProc", 0, "")
  474.     
  475.     IF sz$ = "REACTIVATE" THEN
  476.     GOTO ExitOK1
  477.     ELSEIF sz$ = "EXIT" THEN
  478.     UIPop 1
  479.     ELSEIF sz$ = "EXECCFG" THEN
  480.     UIPop 1
  481.     i% = ExecCfg(hwnd%) 
  482.     ''GOTO ExitOK1
  483.     ENDIF
  484.  
  485.     GOTO QUIT
  486.  
  487.  
  488. ''*****************************************************************************
  489. COPYDISK:
  490.     sz$ = UIStartDlg(CUIDLL$, COPYPATH, "CopyDirDlgProc", 0, "")
  491.     IF sz$ = "CONTINUE" THEN
  492.     UIPop 1
  493.     ELSEIF sz$ = "REACTIVATE" THEN
  494.     GOTO COPYDISK
  495.     ELSEIF sz$ = "BACK" THEN
  496.     UIPop 1
  497.     GOTO INSTALL0
  498.     ELSE        
  499.     UIPop 1
  500.     GOSUB ASKQUIT
  501.     GOTO COPYDISK
  502.     ENDIF
  503.  
  504.     RTRdrive$ = MID$(GetSymbolValue("CurMainDir"), 1, 1)
  505.     nDrive% = ASC(RTRdrive$) - ASC("A") + 1
  506.     tmpfile$ = MakePath(SrcDir$, "setrtr.ini")
  507.     tmpsz1$ = GetIniKeyString(tmpfile$, "SIZE", "COPYfull")
  508.     size& = VAL(tmpsz1$) * 1000
  509.     FreeSize& = GetFreeSpaceForDrive(RTRdrive$)
  510.     IF size& < FreeSize& THEN
  511.     GOTO ACTION1            '' Skip NOSPACE1
  512.     ENDIF
  513.  
  514.  
  515. NOSPACE1:
  516.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "NoSpaceDlgProc", 0, "")
  517.     IF sz$ = "REACTIVATE" THEN
  518.     GOTO NOSPACE1
  519.     ELSE
  520.     UIPop 1
  521.     GOTO QUIT
  522.     ENDIF
  523.     
  524. ACTION1:
  525.     InstallDir
  526.  
  527. DONE2:
  528.     SetSymbolValue "OKSTATE", "2"
  529.     sz$ = UIStartDlg(CUIDLL$, EXITOK2, "DoneDlgProc", 0, "")
  530.     IF sz$ = "CONTINUE" THEN
  531.     UIPop 1
  532.     ELSE
  533.     GOTO DONE2
  534.     ENDIF
  535.  
  536. GOTO QUIT
  537.  
  538.  
  539. ''*****************************************************************************
  540. SHAREDACCESS:
  541.     sz$ = UIStartDlg(CUIDLL$, SHAREPATH, "ShareDirDlgProc", 0, "")
  542.     IF sz$ = "CONTINUE" THEN
  543.     UIPop 1
  544.     ELSEIF sz$ = "REACTIVATE" THEN
  545.     GOTO SHAREDACCESS
  546.     ELSEIF sz$ = "BACK" THEN
  547.     UIPop 1
  548.     GOTO INSTALL0
  549.     ELSE        
  550.     UIPop 1
  551.     GOSUB ASKQUIT
  552.     GOTO SHAREDACCESS
  553.     ENDIF
  554.  
  555.     NetDrive$ = MID$(GetSymbolValue("ShareDir"), 1, 1)
  556.     tmpsz$ = GetSymbolValue("ShareDir")
  557.     tmpfile$ = MakePath(SrcDir$,"setrtr.ini")
  558.     tmpsz1$ = GetIniKeyString(tmpfile$, "SIZE", "SHAREfull")
  559.     size& = VAL(tmpsz1$) * 1000
  560.     FreeSize& = GetFreeSpaceForDrive(NetDrive$)
  561.     IF size& < FreeSize& THEN
  562.     GOTO ACTION3
  563.     ENDIF
  564.  
  565. NOSPACE3:
  566.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "NoSpaceDlgProc", 0, "")
  567.     IF sz$ = "REACTIVATE" THEN
  568.     GOTO NOSPACE3
  569.     ELSE
  570.     UIPop 1
  571.     GOTO QUIT
  572.     ENDIF
  573.  
  574. ACTION3:
  575.     InstallShared   
  576.  
  577. DONE3:
  578.     SetSymbolValue "OKSTATE", "3"
  579.     sz$ = UIStartDlg(CUIDLL$, EXITOK3, "DoneDlgProc", 0, "")
  580.     IF sz$ = "CONTINUE" THEN
  581.     UIPop 1
  582.     ELSE
  583.     GOTO DONE3
  584.     ENDIF
  585.  
  586.  
  587. GOTO QUIT
  588. ''*****************************************************************************
  589.     i% = DoMsgBox("Setup sources were corrupted, call NetSoft Technical Support!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  590.  
  591.  
  592. QUIT:
  593. END
  594.  
  595. '**-------------------------------------------------------------------------
  596. '**
  597. '** Purpose:
  598. '**     Builds the copy list for single user installation.
  599. '** Arguments:
  600. '**     none.
  601. '** Returns:
  602. '**     none.
  603. '*************************************************************************
  604. SUB InstallSingle STATIC
  605.  
  606.     RTRdir1$ = GetSymbolValue("CurMainDir")
  607.     CreateDir RTRdir1$, cmoNone
  608.  
  609.     tmpfile$ = MakePath(RTRdir1$, "EHNAPPC.DLL")
  610.     EXIST% = DoesFileExist(tmpfile$, femExists)
  611.     IF EXIST% = 1 THEN
  612.         RemoveFile tmpfile$, cmoForce
  613.     ENDIF
  614.     tmpfile$ = MakePath(RTRdir1$, "EHNRTRW.DLL")
  615.     EXIST% = DoesFileExist(tmpfile$, femExists)
  616.     IF EXIST% = 1 THEN
  617.         RemoveFile tmpfile$, cmoForce
  618.     ENDIF
  619.  
  620.     AddSectionFilesToCopyList "RTR", SrcDir$, RTRdir1$
  621.     AddSectionFilesToCopyList "RTRTXT", SrcDir$, RTRdir1$
  622.     AddSectionFilesToCopyList "RTRMAP", SrcDir$, RTRdir1$
  623.     AddSectionFilesToCopyList "RTRLANG", SrcDir$, RTRdir1$
  624.     AddSectionFilesToCopyList "RTRWIN", SrcDir$, WinDir$
  625.     IF ReadOnlyFlag% = 1 THEN
  626.         tmpfile$ = MakePath(WinDir$, "WINSYS")
  627.         CreateDir tmpfile$, cmoNone
  628.         AddSectionFilesToCopyList "RTRWINSYS", SrcDir$, tmpfile$
  629.         tmpsz$ = GetSymbolValue("TokenRing")    
  630.         IF tmpsz$ = "1" THEN
  631.            AddSectionFilesToCopyList "RTRWINSYS1", SrcDir$, tmpfile$
  632.         ENDIF
  633.         tmpsz$ = GetSymbolValue("SDLC")    
  634.         IF tmpsz$ = "1" THEN
  635.            AddSectionFilesToCopyList "RTRWINSYS2", SrcDir$, tmpfile$
  636.         ENDIF
  637.     ELSE
  638.        tmpsz$ = GetSymbolValue("TokenRing")    
  639.        IF tmpsz$ = "1" THEN
  640.           AddSectionFilesToCopyList "RTRWINSYS1", SrcDir$, WinSysDir$
  641.        ENDIF
  642.        tmpsz$ = GetSymbolValue("SDLC")    
  643.        IF tmpsz$ = "1" THEN
  644.           AddSectionFilesToCopyList "RTRWINSYS2", SrcDir$, WinSysDir$
  645.        ENDIF
  646.        AddSectionFilesToCopyList "RTRWINSYS", SrcDir$, WinSysDir$
  647.     ENDIF
  648.  
  649.     tmpsz$ = GetSymbolValue("Async")    
  650.     IF tmpsz$ = "1" THEN
  651.         AddSectionFilesToCopyList "RTRASYNC", SrcDir$, RTRdir1$
  652.     ENDIF
  653.     tmpsz$ = GetSymbolValue("E400LANGW")    
  654.     IF tmpsz$ = "1" THEN
  655.         AddSectionFilesToCopyList "RTRLANGW", SrcDir$, RTRdir1$
  656.     ENDIF
  657.     tmpsz$ = GetSymbolValue("MSSNAServer")    
  658.     IF tmpsz$ = "1" THEN
  659.         AddSectionFilesToCopyList "RTRNTSNA", SrcDir$, RTRdir1$
  660.     ENDIF
  661.     tmpsz$ = GetSymbolValue("NetWareSAA")    
  662.     IF tmpsz$ = "1" THEN
  663.         AddSectionFilesToCopyList "RTRNWSAA", SrcDir$, RTRdir1$
  664.     ENDIF
  665.     tmpsz$ = GetSymbolValue("Twinax")    
  666.     IF tmpsz$ = "1" THEN
  667.         AddSectionFilesToCopyList "RTRTWINAX", SrcDir$, RTRdir1$
  668.     ENDIF
  669.     tmpsz$ = GetSymbolValue("TokenRing")    
  670.     IF tmpsz$ = "1" THEN
  671.         AddSectionFilesToCopyList "RTR8022", SrcDir$, RTRdir1$
  672.     ENDIF
  673.     tmpsz$ = GetSymbolValue("SDLC")    
  674.     IF tmpsz$ = "1" THEN
  675.         AddSectionFilesToCopyList "RTRSDLC", SrcDir$, RTRdir1$
  676.     ENDIF
  677.  
  678.  
  679.     CopyFilesInCopyList
  680.  
  681.     CreateIniKeyValue WinDir$+"E400.INI", "Common", "RouterType", "NS/Router", cmoOverwrite 
  682.  
  683.     tmpfile$ = MakePath(RTRdir1$,"nsrouter ^.rtr")
  684.     CreateIniKeyValue "WIN.INI", "Extensions", "rtr", tmpfile$, cmoOverwrite 
  685.     tmpfile$ = MakePath(RTRdir1$,"NSROUTER.EXE")
  686.     CreateIniKeyValue "WIN.INI", "NetSoft","NSRTRPath",RTRdir1$,cmoOverwrite
  687.     CreateIniKeyValue "WIN.INI", "NetSoft", "NSRouterPath",tmpfile , cmoOverwrite 
  688.     tmpsz$ = GetIniKeyString("WIN.INI", "NetSoft", "NSRouterAutoRTR")
  689.     IF LEN(tmpsz$) <= 1 THEN
  690.         CreateIniKeyValue "WIN.INI", "NetSoft", "NSRouterAutoRTR", "", cmoOverwrite 
  691.     ENDIF
  692.     tmpfile$ = MakePath(RTRdir1$,"E037A437.MAP")
  693.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "WorkStation", "TranslateTable", tmpfile$, cmoOverwrite 
  694.     ''CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "WorkStation", "TranslateTable", RTRdir1$+"\E037A437.MAP", cmoOverwrite 
  695.  
  696.     tmpsz$ = GetSymbolValue("E400LANGW")    
  697.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "E400LANGW", tmpsz$, cmoOverwrite 
  698.     tmpsz$ = GetSymbolValue("MSSNAServer")    
  699.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "NTSNAServer", tmpsz$, cmoOverwrite 
  700.     tmpsz$ = GetSymbolValue("NetWareSAA")    
  701.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "NetWareSAA", tmpsz$, cmoOverwrite 
  702.     tmpsz$ = GetSymbolValue("TokenRing")    
  703.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "Token-Ring", tmpsz$, cmoOverwrite 
  704.     tmpsz$ = GetSymbolValue("Async")    
  705.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "Async", tmpsz$, cmoOverwrite 
  706.     tmpsz$ = GetSymbolValue("SDLC")    
  707.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "SDLC", tmpsz$, cmoOverwrite 
  708.     tmpsz$ = GetSymbolValue("Twinax")    
  709.     CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "LinkAvail", "Twinax", tmpsz$, cmoOverwrite 
  710.  
  711.     tmpsz$ = GetSymbolValue("TokenRing")    
  712.     IF tmpsz$ = "1" THEN
  713.         GOTO GROUPBOX
  714.     ENDIF
  715.     tmpsz$ = GetSymbolValue("Async")    
  716.     IF tmpsz$ = "1" THEN
  717.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "Async", cmoOverwrite 
  718.         GOTO GROUPBOX
  719.     ENDIF
  720.     tmpsz$ = GetSymbolValue("E400LANGW")    
  721.     IF tmpsz$ = "1" THEN
  722.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "Elite/400 LAN Gateway", cmoOverwrite 
  723.         GOTO GROUPBOX
  724.     ENDIF
  725.     tmpsz$ = GetSymbolValue("MSSNAServer")    
  726.     IF tmpsz$ = "1" THEN
  727.         ''CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "Microsoft SNA Server", cmoOverwrite 
  728.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "NT SNA Server", cmoOverwrite     '' hardcode temporary
  729.         GOTO GROUPBOX
  730.     ENDIF
  731.     tmpsz$ = GetSymbolValue("NetWareSAA")    
  732.     IF tmpsz$ = "1" THEN
  733.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "NetWare for SAA", cmoOverwrite 
  734.         GOTO GROUPBOX
  735.     ENDIF
  736.     tmpsz$ = GetSymbolValue("SDLC")    
  737.     IF tmpsz$ = "1" THEN
  738.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "SDLC", cmoOverwrite 
  739.         GOTO GROUPBOX
  740.     ENDIF
  741.     tmpsz$ = GetSymbolValue("Twinax")    
  742.     IF tmpsz$ = "1" THEN
  743.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "PhysicalLink", "SelectedLink", "Twinax", cmoOverwrite 
  744.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "ModeProfile0", "RcvPacingLimit", "1", cmoOverwrite 
  745.         CreateIniKeyValue WinDir$+"NSRTRCFG.DFT", "ModeProfile1", "RcvPacingLimit", "1", cmoOverwrite 
  746.         GOTO GROUPBOX
  747.     ENDIF
  748.  
  749. GROUPBOX:
  750.     '' Create Windows Progman Group
  751.     OLDCUR% = ShowWaitCursor
  752. ''        GrpBox$ = GetSymbolValue("GPBOX")
  753.     GrpBox$ = "NS/Router"
  754.     CreateProgmanGroup GrpBox$, "", cmoNone
  755.     ShowProgmanGroup  GrpBox$, 1, cmoOverwrite
  756.     RestoreCursor OLDCUR%
  757.  
  758.     OLDCUR% = ShowWaitCursor
  759.     tmpfile$ = MakePath(RTRdir1$,"NSROUTER.EXE")
  760.     CreateProgmanItem GrpBox$, GetSymbolValue("ROUTER"), tmpfile$, "", cmoOverwrite
  761.     tmpfile$ = MakePath(RTRdir1$,"NSRTRCFG.EXE")
  762.     CreateProgmanItem GrpBox$, GetSymbolValue("RTRCFG"), tmpfile$, "", cmoOverwrite
  763.  
  764.     SetSymbolValue "CFGEXE", tmpfile$
  765.     RestoreCursor OLDCUR%
  766.     ICONPATH$ = MakePath(RTRdir1$, "NS.ICO")
  767.     SrcFile$ = MakePath(RTRdir1$, "ROUTER.TXT")
  768.     TarFile$ = MakePath(RTRdir1$, "README.TXT")
  769.     CopyFile SrcFile$, TarFile$, cmoOverwrite, 0
  770.     RemoveFile SrcFile$, cmoForce
  771.     tmpfile$ = MakePath(RTRdir1$, "README.TXT")
  772.  
  773.     OLDCUR% = ShowWaitCursor
  774.     i% = AddRelNote(tmpfile$, ICONPATH$)
  775.     RestoreCursor OLDCUR%
  776.  
  777. END SUB
  778.  
  779.  
  780. '**-------------------------------------------------------------------------
  781. '**
  782. '** Purpose:
  783. '**     copy all files from install disks to the specified directory.
  784. '** Arguments:
  785. '**     none.
  786. '** Returns:
  787. '**     none.
  788. '*************************************************************************
  789. SUB InstallDir STATIC
  790.  
  791.     ClearCopyList
  792.     CopyDir1$ = GetSymbolValue("CopyDir")
  793.     CreateDir CopyDir1$, cmoNone
  794.     AddSectionFilesToCopyList "SETUP", SrcDir$, CopyDir1$
  795.     AddSectionFilesToCopyList "SETUPUSR", SrcDir$, CopyDir1$
  796.     AddSectionFilesToCopyList "SETHELP", SrcDir$, CopyDir1$
  797.  
  798.     AddSectionFilesToCopyList "RTR", SrcDir$, CopyDir1$
  799.     AddSectionFilesToCopyList "RTRMAP", SrcDir$, CopyDir1$
  800.     AddSectionFilesToCopyList "RTRLANG", SrcDir$, CopyDir1$
  801.     AddSectionFilesToCopyList "RTRWIN", SrcDir$, CopyDir1$
  802.     AddSectionFilesToCopyList "RTRWINSYS", SrcDir$, CopyDir1$
  803.     AddSectionFilesToCopyList "RTRWINSYS1", SrcDir$, CopyDir1$
  804.     AddSectionFilesToCopyList "RTRWINSYS2", SrcDir$, CopyDir1$
  805.     AddSectionFilesToCopyList "RTRASYNC", SrcDir$, CopyDir1$
  806.     AddSectionFilesToCopyList "RTRTWINAX", SrcDir$, CopyDir1$
  807.     AddSectionFilesToCopyList "RTR8022", SrcDir$, CopyDir1$
  808.     AddSectionFilesToCopyList "RTRSDLC", SrcDir$, CopyDir1$
  809.     AddSectionFilesToCopyList "RTRLANGW", SrcDir$, CopyDir1$
  810.     AddSectionFilesToCopyList "RTRNTSNA", SrcDir$, CopyDir1$
  811.     AddSectionFilesToCopyList "RTRNWSAA", SrcDir$, CopyDir1$
  812.     AddSectionFilesToCopyList "RTRTXT", SrcDir$, CopyDir1$
  813.  
  814.     i% = SetDecompMode(0)    '' Set decompression to be off for CopyDir
  815.     CopyFilesInCopyList
  816.  
  817.     tmpfile$ = MakePath(CopyDir1$, "lansetup.inf")
  818.     EXIST% = DoesFileExist(tmpfile$, femExists)
  819.     IF EXIST% = 1 THEN
  820.     tmpfile2$ = MakePath(CopyDir1$, "setup.inf")
  821.     CopyFile tmpfile$, tmpfile2$, cmoOverwrite, 0
  822.     ENDIF
  823.  
  824. END SUB
  825.  
  826.  
  827. '**-------------------------------------------------------------------------
  828. '**
  829. '** Purpose:
  830. '**     copy all files from install disks to the specified directory.
  831. '** Arguments:
  832. '**     none.
  833. '** Returns:
  834. '**     none.
  835. '*************************************************************************
  836. SUB InstallShared STATIC
  837.  
  838.     ClearCopyList
  839.     CopyDir1$ = GetSymbolValue("ShareDir")
  840.     CreateDir CopyDir1$, cmoNone
  841.     AddSectionFilesToCopyList "SETUP", SrcDir$, CopyDir1$
  842.     AddSectionFilesToCopyList "SETUPUSR", SrcDir$, CopyDir1$
  843.     AddSectionFilesToCopyList "SETHELP", SrcDir$, CopyDir1$
  844.  
  845.     '' Remove all EHN*.DLL
  846.     tmpfile$ = MakePath(CopyDir1$, "EHNAPPC.DLL")
  847.     EXIST% = DoesFileExist(tmpfile$, femExists)
  848.     IF EXIST% = 1 THEN
  849.     RemoveFile tmpfile$, cmoForce
  850.     ENDIF
  851.     tmpfile$ = MakePath(CopyDir1$, "EHNRTRW.DLL")
  852.     EXIST% = DoesFileExist(tmpfile$, femExists)
  853.     IF EXIST% = 1 THEN
  854.     RemoveFile tmpfile$, cmoForce
  855.     ENDIF
  856.  
  857.     AddSectionFilesToCopyList "RTR", SrcDir$, CopyDir1$
  858.     AddSectionFilesToCopyList "RTRTXT", SrcDir$, CopyDir1$
  859.     AddSectionFilesToCopyList "RTRMAP", SrcDir$, CopyDir1$
  860.     AddSectionFilesToCopyList "RTRLANG", SrcDir$, CopyDir1$
  861.     AddSectionFilesToCopyList "RTRASYNC", SrcDir$, CopyDir1$
  862.     AddSectionFilesToCopyList "RTRLANGW", SrcDir$, CopyDir1$
  863.     AddSectionFilesToCopyList "RTRNTSNA", SrcDir$, CopyDir1$
  864.     AddSectionFilesToCopyList "RTRNWSAA", SrcDir$, CopyDir1$
  865.     AddSectionFilesToCopyList "RTRTWINAX", SrcDir$, CopyDir1$
  866.     AddSectionFilesToCopyList "RTR8022", SrcDir$, CopyDir1$
  867.     AddSectionFilesToCopyList "RTRSDLC", SrcDir$, CopyDir1$
  868.     AddSectionFilesToCopyList "RTRWIN", SrcDir$, CopyDir1$
  869.     AddSectionFilesToCopyList "RTRWINSYS", SrcDir$, CopyDir1$
  870.     AddSectionFilesToCopyList "RTRWINSYS1", SrcDir$, CopyDir1$
  871.     AddSectionFilesToCopyList "RTRWINSYS2", SrcDir$, CopyDir1$
  872.  
  873.     CopyFilesInCopyList
  874.     tmpfile$ = MakePath(CopyDir1$, "lansetup.inf")
  875.     EXIST% = DoesFileExist(tmpfile$, femExists)
  876.     IF EXIST% = 1 THEN
  877.     tmpfile2$ = MakePath(CopyDir1$, "setup.inf")
  878.     CopyFile tmpfile$, tmpfile2$, cmoOverwrite, 0
  879.     ENDIF
  880.  
  881.     tmpfile$ = MakePath(CopyDir1$, "setupusr.lst")
  882.     EXIST% = DoesFileExist(tmpfile$, femExists)
  883.     IF EXIST% = 1 THEN
  884.     tmpfile2$ = MakePath(CopyDir1$, "setup.lst")
  885.     CopyFile tmpfile$, tmpfile2$, cmoOverwrite, 0
  886.     ENDIF
  887.  
  888.     tmpfile$ = MakePath(CopyDir1$,"setup.exe")
  889.     EXIST% = DoesFileExist(tmpfile$, femExists) 
  890.     IF EXIST% = 1 THEN
  891.     RemoveFile tmpfile$, cmoForce
  892.     ENDIF
  893. END SUB
  894.  
  895. '**-------------------------------------------------------------------------
  896. '**
  897. '** Purpose:
  898. '**     Appends a file name to the end of a directory path,
  899. '**     inserting a backslash character as needed.
  900. '** Arguments:
  901. '**     szDir$  - full directory path (with optional ending "\")
  902. '**     szFile$ - filename to append to directory
  903. '** Returns:
  904. '**     Resulting fully qualified path name.
  905. '*************************************************************************
  906. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  907.     IF szDir$ = "" THEN
  908.     MakePath = szFile$
  909.     ELSEIF szFile$ = "" THEN
  910.     MakePath = szDir$
  911.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  912.     MakePath = szDir$ + szFile$
  913.     ELSE
  914.     MakePath = szDir$ + "\" + szFile$
  915.     END IF
  916. END FUNCTION
  917. ''-------------------------------------------------------------------------
  918.  
  919. ASKQUIT:
  920.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  921.  
  922.     IF sz$ = "EXIT" THEN
  923.     UIPopAll
  924.     ERROR STFQUIT
  925.     ELSEIF sz$ = "REACTIVATE" THEN
  926.     GOTO ASKQUIT
  927.     ELSE
  928.     UIPop 1
  929.     END IF
  930.     RETURN
  931.  
  932.