Get_Profile_Fixed_Point

include vmm.inc

mov eax, Default ; default value

mov ecx, Places ; number of digits after decimal point

mov esi, OFFSET32 Profile ; points to section name

mov edi, OFFSET32 Keyname ; points to entry name

VMMcall Get_Profile_Fixed_Point

jc not_found ; carry flag set if entry not found

jz no_value ; zero flag set if entry has no value

mov [Value], eax ; entry value


The Get_Profile_Fixed_Point service returns the value of a fixed-point-number entry in the SYSTEM.INI file. The Profile and Keyname parameters specify the section and entry to search for.

This service is only available during initialization.

Parameters

Default

Specifies the default value to return if the entry is not found or has no current value.

Places

Specifies the number of digits after the decimal point to convert. If fixed-point number has extra digits, the service ignores them.

Profile

Specifies a null-terminated string identifying the section in the SYSTEM.INI file to search. If Profile is zero, the service searches the [386Enh] section.

Keyname

Points to a null-terminated string identifying the name of the entry to search for.

Return Value

If the carry and zero flags are clear, the specified entry is found, and is a valid fixed-point number. In this case, the EAX register is set to the normalized value of the number; the actual value is computed as:

EAX * 10 ** (-Places)

If the carry flag is clear and the zero flag is set, the specified entry exists, but has no corresponding value. If the carry flag is set, the entry cannot be found or the entry does not represent a valid fixed-point number. In these cases, the EAX register is set to the Default value.

Comments

A valid fixed-point number is a decimal number that consists of an integer, a fraction, or a combination of integer and fraction. The integer can be any combination of decimal digits, and may be preceded by a plus sign (+) or a minus sign (-) to indicate a positive or negative fixed-point value. The fraction can be any combination of decimal digits, but must be preceded with a decimal point (.).

Uses

Flags

See Also

Get_Profile_Boolean, Get_Profile_Decimal_Int, Get_Profile_Hex_Int