'**************************************************************************
'*************************  Setup Detect API's  ***************************
'**************************************************************************

''detect

'DECLARE FUNCTION CbFindFileInTree LIB "msdetstf.dll" (szFile$, szDir$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION CbGetVersionOfFile LIB "msdetstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION LGetVersionNthField LIB "msdetstf.dll" (szVersion$, nField%) AS LONG
'DECLARE FUNCTION FGetValidDrivesList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
'DECLARE FUNCTION FGetLocalHardDrivesList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
DECLARE FUNCTION LcbTotalDrive LIB "msdetstf.dll" (nDrive%) AS LONG
DECLARE FUNCTION LcbFreeDrive LIB "msdetstf.dll" (nDrive%) AS LONG
DECLARE FUNCTION FIsValidDrive LIB "msdetstf.dll" (nDrive%) AS INTEGER
DECLARE FUNCTION FIsLocalHardDrive LIB "msdetstf.dll" (nDrive%) AS INTEGER
DECLARE FUNCTION FDirExists LIB "msdetstf.dll" (szDir$) AS INTEGER
DECLARE FUNCTION FDoesFileExist LIB "msdetstf.dll" (szFileName$, mode%) AS INTEGER
DECLARE FUNCTION CbGetDateOfFile LIB "msdetstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION CbGetIniKeyString LIB "msdetstf.dll" (szFile$, szSect$, szKey$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION LcbGetSizeOfFile LIB "msdetstf.dll" (szFile$) AS LONG
'DECLARE FUNCTION FGetRemovableDrivesList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
'DECLARE FUNCTION FGetNetworkDrivesList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
'DECLARE FUNCTION FIsRemoveDrive LIB "msdetstf.dll" (nDrive%) AS INTEGER
'DECLARE FUNCTION FIsRemoteDrive LIB "msdetstf.dll" (nDrive%) AS INTEGER
'DECLARE FUNCTION FDoesIniSectionExist LIB "msdetstf.dll" (szFile$, szSect$) AS INTEGER
'DECLARE FUNCTION FDoesIniKeyExist LIB "msdetstf.dll" (szFile$, szSect$, szKey$) AS INTEGER
'DECLARE FUNCTION WGetDOSMajorVersion LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetDOSMinorVersion LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION CbGetEnvVariableValue LIB "msdetstf.dll" (szEnvVar$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION WGetNumWinApps LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION FGetParallelPortsList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
'DECLARE FUNCTION FGetSerialPortsList LIB "msdetstf.dll" (szSymbol$) AS INTEGER
'DECLARE FUNCTION FHas87MathChip LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION FHasMonochromeDisplay LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION FHasMouseInstalled LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetConfigSmartdrvSize LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetConfigRamdriveSize LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetConfigNumBuffers LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetConfigNumFiles LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION WGetConfigLastDrive LIB "msdetstf.dll" AS INTEGER
'DECLARE FUNCTION FIsDriverInConfig LIB "msdetstf.dll" (szDrv$) AS INTEGER
'DECLARE FUNCTION CbFindTargetOnEnvVar LIB "msdetstf.dll" (szFile$, szEnvVar$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION GetTypeFaceNameFromTTF LIB "msdetstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
'DECLARE FUNCTION GetExistingFOTFileForTTF LIB "msdetstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER



'*************************************************************************
'****************  Detect Basic Wrapper Declarations  ********************
'*************************************************************************


'' detect

DECLARE FUNCTION IsDriveValid (szDrive$) AS INTEGER
DECLARE FUNCTION IsDriveLocalHard (szDrive$) AS INTEGER
DECLARE FUNCTION IsDriveRemovable (szDrive$) AS INTEGER
'DECLARE FUNCTION IsDriveNetwork (szDrive$) AS INTEGER
'DECLARE SUB GetValidDrivesList (szSymbol$)
'DECLARE SUB GetLocalHardDrivesList (szSymbol$)
DECLARE SUB GetRemovableDrivesList (szSymbol$)
'DECLARE SUB GetNetworkDrivesList (szSymbol$)
DECLARE FUNCTION GetTotalSpaceForDrive (szDrive$) AS LONG
DECLARE FUNCTION GetFreeSpaceForDrive (szDrive$) AS LONG

'DECLARE FUNCTION GetDOSMajorVersion AS INTEGER
'DECLARE FUNCTION GetDOSMinorVersion AS INTEGER
'DECLARE FUNCTION GetEnvVariableValue (szEnvVar$) AS STRING
'DECLARE FUNCTION GetNumWinApps AS INTEGER

DECLARE FUNCTION DoesFileExist (szFile$, mode%) AS INTEGER
DECLARE FUNCTION GetDateOfFile (szFile$) AS STRING
DECLARE FUNCTION GetYearFromDate (szDate$) AS INTEGER
DECLARE FUNCTION GetMonthFromDate (szDate$) AS INTEGER
DECLARE FUNCTION GetDayFromDate (szDate$) AS INTEGER
DECLARE FUNCTION GetHourFromDate (szDate$) AS INTEGER
DECLARE FUNCTION GetMinuteFromDate (szDate$) AS INTEGER
DECLARE FUNCTION GetSecondFromDate (szDate$) AS INTEGER
'DECLARE FUNCTION GetVersionOfFile (szFile$) AS STRING
'DECLARE FUNCTION GetVersionNthField (szVersion$, nField%) AS LONG
'DECLARE FUNCTION GetSizeOfFile (szFile$) AS LONG
'DECLARE FUNCTION FindTargetOnEnvVar (szFile$, szEnvVar$) AS STRING
'DECLARE FUNCTION FindFileInTree (szFile$, szDir$) AS STRING
DECLARE FUNCTION DoesDirExist (szDir$) AS INTEGER

'DECLARE FUNCTION DoesIniSectionExist (szFile$, szSect$) AS INTEGER
'DECLARE FUNCTION DoesIniKeyExist (szFile$, szSect$, szKey$) AS INTEGER
'DECLARE FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) AS STRING

'DECLARE FUNCTION GetConfigSmartdrvSize AS INTEGER
'DECLARE FUNCTION GetConfigRamdriveSize AS INTEGER
'DECLARE FUNCTION GetConfigNumBuffers AS INTEGER
'DECLARE FUNCTION GetConfigNumFiles AS INTEGER
'DECLARE FUNCTION GetConfigLastDrive AS STRING
'DECLARE FUNCTION IsDriverInConfig (szDrv$) AS INTEGER

'DECLARE FUNCTION GetProcessorType AS INTEGER
'DECLARE SUB GetParallelPortsList (szSymbol$)
'DECLARE SUB GetSerialPortsList (szSymbol$)
'DECLARE FUNCTION Has87MathChip AS INTEGER
'DECLARE FUNCTION HasMonochromeDisplay AS INTEGER
'DECLARE FUNCTION HasMouseInstalled AS INTEGER


'*************************************************************************
FUNCTION IsDriveValid (szDrive$) STATIC  AS INTEGER
'$ifdef DEBUG
    if FValidDrive(szDrive$) = 0 then
        BadArgErr 1, "IsDriveValid", szDrive$
    end if
'$endif ''DEBUG
    IsDriveValid = FIsValidDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
END FUNCTION


'*************************************************************************
FUNCTION IsDriveLocalHard (szDrive$) STATIC  AS INTEGER
'$ifdef DEBUG
    if FValidDrive(szDrive$) = 0 then
        BadArgErr 1, "IsDriveLocalHard", szDrive$
    end if
'$endif ''DEBUG
    IsDriveLocalHard = FIsLocalHardDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
END FUNCTION


'*************************************************************************
'FUNCTION IsDriveRemovable (szDrive$) STATIC  AS INTEGER
''$ifdef DEBUG
'    if FValidDrive(szDrive$) = 0 then
'        BadArgErr 1, "IsDriveRemovable", szDrive$
'    end if
''$endif ''DEBUG
'    IsDriveRemovable = FIsRemoveDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
'END FUNCTION


'*************************************************************************
'FUNCTION IsDriveNetwork (szDrive$) STATIC  AS INTEGER
''$ifdef DEBUG
'    if FValidDrive(szDrive$) = 0 then
'        BadArgErr 1, "IsDriveNetwork", szDrive$
'    end if
''$endif ''DEBUG
'    IsDriveNetwork = FIsRemoteDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
'END FUNCTION


'*************************************************************************
FUNCTION GetTotalSpaceForDrive (szDrive$) STATIC  AS LONG
'$ifdef DEBUG
    if FValidDrive(szDrive$) = 0 then
        BadArgErr 1, "GetTotalSpaceForDrive", szDrive$
    end if
'$endif ''DEBUG
    GetTotalSpaceForDrive = LcbTotalDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
END FUNCTION


'*************************************************************************
FUNCTION GetFreeSpaceForDrive (szDrive$) STATIC  AS LONG
'$ifdef DEBUG
    if FValidDrive(szDrive$) = 0 then
        BadArgErr 1, "GetFreeSpaceForDrive", szDrive$
    end if
'$endif ''DEBUG
    GetFreeSpaceForDrive = LcbFreeDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
END FUNCTION


'*************************************************************************
'SUB GetValidDrivesList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetValidDrivesList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetValidDrivesList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetValidDrivesList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'SUB GetLocalHardDrivesList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetLocalHardDrivesList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetLocalHardDrivesList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetLocalHardDrivesList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'SUB GetRemovableDrivesList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetRemovableDrivesList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetRemovableDrivesList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetRemovableDrivesList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'SUB GetNetworkDrivesList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetNetworkDrivesList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetNetworkDrivesList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetNetworkDrivesList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'FUNCTION GetDOSMajorVersion STATIC  AS INTEGER
'    GetDOSMajorVersion = WGetDOSMajorVersion
'END FUNCTION


'*************************************************************************
'FUNCTION GetDOSMinorVersion STATIC  AS INTEGER
'    GetDOSMinorVersion = WGetDOSMinorVersion
'END FUNCTION


'*************************************************************************
'FUNCTION GetEnvVariableValue (szEnvVar$) STATIC  AS STRING
''$ifdef DEBUG
'    if szEnvVar$ = "" then
'        BadArgErr 1, "GetEnvVariableValue", szEnvVar$
'    end if
''$endif ''DEBUG
'    cb% = 1024
'    szBuf$ = STRING$(cb%, 32)
'    cbRet% = CbGetEnvVariableValue(szEnvVar$, szBuf$, cb%)
'    GetEnvVariableValue = szBuf$
''$ifdef DEBUG
'    IF cbRet% >= cb% THEN
'        StfApiErr saeOvfl, "GetEnvVariableValue", szEnvVar$
'        ERROR STFERR
'    END IF
''$endif ''DEBUG
'    szBuf$ = ""
'END FUNCTION


'*************************************************************************
'FUNCTION GetNumWinApps STATIC  AS INTEGER
'    GetNumWinApps = WGetNumWinApps
'END FUNCTION


'*************************************************************************
FUNCTION DoesFileExist (szFileName$, mode%) STATIC  AS INTEGER
'$ifdef DEBUG
    if FValidFATPath(szFileName$) = 0 then
        BadArgErr 1, "DoesFileExist", szFileName$+", "+STR$(mode%)
'	 StfApiErr 1+saeArg,"DoesFileExist",  szFileName$+", "+STR$(mode%)
    end if
'$endif ''DEBUG
    DoesFileExist = FDoesFileExist(szFileName$, mode%)
END FUNCTION


'*************************************************************************
FUNCTION GetDateOfFile (szFile$) STATIC  AS STRING
'$ifdef DEBUG
    if FValidFATPath(szFile$) = 0 then
        BadArgErr 1, "GetDateOfFile", szFile$
    end if
'$endif ''DEBUG
    cb% = 20
    szBuf$ = STRING$(cb%, 32)
    cbRet% = CbGetDateOfFile(szFile$, szBuf$, cb%)
    GetDateOfFile = szBuf$
'$ifdef DEBUG
    IF cbRet% >= cb% THEN
        StfApiErr saeOvfl, "GetDateOfFile", szFile$
        ERROR STFERR
    END IF
'$endif ''DEBUG
    szBuf$ = ""
END FUNCTION


'*************************************************************************
FUNCTION GetYearFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetYearFromDate", szDate$
    end if
'$endif ''DEBUG
    GetYearFromDate = VAL(MID$(szDate$, 1, 4))
END FUNCTION


'*************************************************************************
FUNCTION GetMonthFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetMonthFromDate", szDate$
    end if
'$endif ''DEBUG
    GetMonthFromDate = VAL(MID$(szDate$, 6, 2))
END FUNCTION


'*************************************************************************
FUNCTION GetDayFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetDayFromDate", szDate$
    end if
'$endif ''DEBUG
    GetDayFromDate = VAL(MID$(szDate$, 9, 2))
END FUNCTION


'*************************************************************************
FUNCTION GetHourFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetHourFromDate", szDate$
    end if
'$endif ''DEBUG
    GetHourFromDate = VAL(MID$(szDate$, 12, 2))
END FUNCTION


'*************************************************************************
FUNCTION GetMinuteFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetMinuteFromDate", szDate$
    end if
'$endif ''DEBUG
    GetMinuteFromDate = VAL(MID$(szDate$, 15, 2))
END FUNCTION


'*************************************************************************
FUNCTION GetSecondFromDate (szDate$) STATIC  AS INTEGER
'$ifdef DEBUG
    if szDate = "" then
        BadArgErr 1, "GetSecondFromDate", szDate$
    end if
'$endif ''DEBUG
    GetSecondFromDate = VAL(MID$(szDate$, 18, 2))
END FUNCTION


'*************************************************************************
'FUNCTION GetVersionOfFile (szFile$) STATIC  AS STRING
''$ifdef DEBUG
'    if FValidFATPath(szFile$) = 0 then
'        BadArgErr 1, "GetVersionOfFile", szFile$
'    end if
''$endif ''DEBUG
'    cb% = 30
'    szBuf$ = STRING$(cb%, 32)
'    cbRet% = CbGetVersionOfFile(szFile$, szBuf$, cb%)
'    GetVersionOfFile = szBuf$
''$ifdef DEBUG
'    IF cbRet% >= cb% THEN
'        StfApiErr saeOvfl, "GetVersionOfFile", szFile$
'        ERROR STFERR
'    END IF
''$endif ''DEBUG
'    szBuf$ = ""
'END FUNCTION


'*************************************************************************
'FUNCTION GetVersionNthField (szVersion$, nField%) STATIC  AS LONG
''$ifdef DEBUG
'    if (nField% < 1) OR (nField% > 4) then
'        BadArgErr 2, "GetVersionNthField", szVersion$+", "+STR$(nField%)
'    end if
''$endif ''DEBUG
'    GetVersionNthField = LGetVersionNthField(szVersion$, nField%)
'END FUNCTION


'*************************************************************************
'FUNCTION GetSizeOfFile (szFile$) STATIC  AS LONG
''$ifdef DEBUG
'    if FValidFATPath(szFile$) = 0 then
'        BadArgErr 1, "GetSizeOfFile", szFile$
'    end if
''$endif ''DEBUG
'    GetSizeOfFile = LcbGetSizeOfFile(szFile$)
'END FUNCTION


'*************************************************************************
'FUNCTION FindTargetOnEnvVar (szFile$, szEnvVar$) STATIC  AS STRING
''$ifdef DEBUG
'    if CchlValidFATSubPath(szFile$) = 0 then
'        n% = 1
'    elseif szEnvVar$ = "" then
'        n% = 2
'    else
'        n% = 0
'    end if
'    if n% > 0 then
'        BadArgErr n%, "FindTargetOnEnvVar", szFile$+", "+szEnvVar$
'    end if
''$endif ''DEBUG

'    cb% = 512
'    szBuf$ = STRING$(cb%, 32)
'    cbRet% = CbFindTargetOnEnvVar(szFile$, szEnvVar$, szBuf$, cb%)
'    IF cbRet% >= cb% THEN
'$ifdef DEBUG
'        StfApiErr saeOvfl, "FindTargetOnEnvVar", szFile$+", "+szEnvVar$
'$endif ''DEBUG
'        ERROR STFERR
'    END IF
'    szBuf$ = RTRIM$(szBuf$)
'    IF MID$(szBuf$, 1, 1) = "\" THEN
'       szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
'    ELSEIF Len(szBuf$) > 0 AND MID$(szBuf$, 2, 1) <> ":" THEN
'       szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
'    END IF
'    FindTargetOnEnvVar = szBuf$
'    szBuf$ = ""
'END FUNCTION


'*************************************************************************
'FUNCTION FindFileInTree (szFile$, szDir$) STATIC  AS STRING
''$ifdef DEBUG
'    if CchlValidFATSubPath(szFile$) = 0 then
'        n% = 1
'    elseif FValidFATDir(szDir$) = 0 then
'        n% = 2
'    else
'        n% = 0
'    end if
'    if n% > 0 then
'        BadArgErr n%, "FindFileInTree", szFile$+", "+szDir$
'    end if
''$endif ''DEBUG
'
'    cb% = 512
'    szBuf$ = STRING$(cb%, 32)
'    cbRet% = CbFindFileInTree(szFile$, szDir$, szBuf$, cb%)
'    FindFileInTree = szBuf$
''$ifdef DEBUG
'    IF cbRet% >= cb% THEN
'        StfApiErr saeOvfl, "FindFileInTree", szFile$+", "+szDir$
'        ERROR STFERR
'    END IF
''$endif ''DEBUG
'    szBuf$ = ""
'END FUNCTION


'*************************************************************************
'FUNCTION GetConfigSmartdrvSize STATIC  AS INTEGER
'    GetConfigSmartdrvSize = WGetConfigSmartdrvSize
'END FUNCTION


'*************************************************************************
'FUNCTION GetConfigRamdriveSize STATIC  AS INTEGER
'    GetConfigRamdriveSize = WGetConfigRamdriveSize
'END FUNCTION


'*************************************************************************
'FUNCTION GetConfigNumBuffers STATIC  AS INTEGER
'    GetConfigNumBuffers = WGetConfigNumBuffers
'END FUNCTION


'*************************************************************************
'FUNCTION GetConfigNumFiles STATIC  AS INTEGER
'    GetConfigNumFiles = WGetConfigNumFiles
'END FUNCTION


'*************************************************************************
'FUNCTION GetConfigLastDrive STATIC  AS STRING
'    chRet% = WGetConfigLastDrive
'    if chRet% = 0 then
'        GetConfigLastDrive = ""
'    else
'        GetConfigLastDrive = CHR$(chRet%)
'    end if
'END FUNCTION


'*************************************************************************
'FUNCTION IsDriverInConfig (szDrv$) STATIC  AS INTEGER
''$ifdef DEBUG
'    if szDrv$ = "" then
'        BadArgErr 1, "IsDriverInConfig", szDrv$
'    end if
''$endif ''DEBUG
'    IsDriverInConfig = FIsDriverInConfig(szDrv$)
'END FUNCTION


'*************************************************************************
'FUNCTION GetProcessorType STATIC  AS INTEGER
'    GetProcessorType = 0
'    longTmp& = GetWinFlags()
'    IF longTmp& AND WF_CPU486 THEN
'        GetProcessorType = 4
'    ELSEIF longTmp& AND WF_CPU386 THEN
'        GetProcessorType = 3
'    ELSEIF longTmp& AND WF_CPU286 THEN
'        GetProcessorType = 2
'    ELSEIF longTmp& AND WF_CPU186 THEN
'        GetProcessorType = 1
'    END IF
'END FUNCTION


'*************************************************************************
'SUB GetParallelPortsList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetParallelPortsList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetParallelPortsList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetParallelPortsList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'SUB GetSerialPortsList (szSymbol$) STATIC
''$ifdef DEBUG
'    if szSymbol$ = "" then
'        BadArgErr 1, "GetSerialPortsList", szSymbol$
'    end if
''$endif ''DEBUG
'    if FGetSerialPortsList(szSymbol$) = 0 then
''$ifdef DEBUG
'        StfApiErr saeFail, "GetSerialPortsList", szSymbol$
''$endif ''DEBUG
'        ERROR STFERR
'    end if
'END SUB


'*************************************************************************
'FUNCTION Has87MathChip STATIC  AS INTEGER
'    Has87MathChip = FHas87MathChip
'END FUNCTION


'*************************************************************************
'FUNCTION HasMonochromeDisplay STATIC  AS INTEGER
'    HasMonochromeDisplay = FHasMonochromeDisplay
'END FUNCTION


'*************************************************************************
'FUNCTION HasMouseInstalled STATIC  AS INTEGER
'    HasMouseInstalled = FHasMouseInstalled
'END FUNCTION


'*************************************************************************
FUNCTION DoesDirExist (szDir$) STATIC  AS INTEGER
'$ifdef DEBUG
    if FValidFATDir(szDir$) = 0 then
        BadArgErr 1, "DoesDirExist", szDir$
    end if
'$endif ''DEBUG
    DoesDirExist = FDirExists(szDir$)
END FUNCTION


'*************************************************************************
'FUNCTION DoesIniSectionExist (szFile$, szSect$) STATIC  AS INTEGER
''$ifdef DEBUG
'    if FValidIniFile(szFile$) = 0 then
'        BadArgErr 1, "DoesIniSectionExist", szFile$+", "+szSect$
'    end if
''$endif ''DEBUG
'    DoesIniSectionExist = FDoesIniSectionExist(szFile$, szSect$)
'END FUNCTION


'*************************************************************************
'FUNCTION DoesIniKeyExist (szFile$, szSect$, szKey$) STATIC  AS INTEGER
''$ifdef DEBUG
'    if FValidIniFile(szFile$) = 0 then
'        n% = 1
'    elseif szKey$ = "" then
'        n% = 3
'    else
'        n% = 0
'    end if
'    if n% > 0 then
'        BadArgErr n%, "DoesIniKeyExist", szFile$+", "+szSect$+", "+szKey$
'    end if
''$endif ''DEBUG
'
'    DoesIniKeyExist = FDoesIniKeyExist(szFile$, szSect$, szKey$)
'END FUNCTION


'*************************************************************************
'FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) STATIC  AS STRING
''$ifdef DEBUG
'    if FValidIniFile(szFile$) = 0 then
'        n% = 1
'    elseif szKey$ = "" then
'        n% = 3
'    else
'        n% = 0
'    end if
'    if n% > 0 then
'        BadArgErr n%, "GetIniKeyString", szFile$+", "+szSect$+", "+szKey$
'    end if
''$endif ''DEBUG

'    cb% = 512
'    szBuf$ = STRING$(cb%, 32)
'    cbRet% = CbGetIniKeyString(szFile$, szSect$, szKey$, szBuf$, cb%)
'    GetIniKeyString = szBuf$
''$ifdef DEBUG
'    IF cbRet% >= cb% THEN
'        StfApiErr saeOvfl, "GetIniKeyString", szFile$+", "+szSect$+", "+szKey$
'        ERROR STFERR
'    END IF
''$endif ''DEBUG
'    szBuf$ = ""
'END FUNCTION



