Microsoft KB Archive/35479

International Currency Rule Not Documented Properly ID Number: Q35479

3.30 4.00 MS-DOS docerr

Summary:

In the “Microsoft MS-DOS Programmer’s Reference” for MS-DOS Versions 3.30 and 4.00, in the country-specific structure returned by MS-DOS interrupt 21h, services 38h and 65h, the currency-position byte field is not fully documented. This byte describes the placement of the currency symbol with respect to the currency value. This byte, like other fields in this structure, is country-dependent. This documentation properly describes values 0 through 3, but does not discuss value 4, which is new to MS-DOS Versions 3.30 and later.

More Information:

The following is a corrected currency-symbol table:

Value Description

0 The currency symbol precedes the currency value. There are no spaces between the currency symbol and value.

1 The currency symbol follows the currency value. There are no spaces between the currency symbol and value.

2 The currency symbol precedes the currency value. There is one space between the currency symbol and value.

3 The currency symbol follows the currency value. There is one space between the currency symbol and value.

4 The currency symbol replaces the decimal separator.

Currently, the only country that returns a value of 4 in this structure is Portugal (PO), country code 351.

The Microsoft Press book “The MS-DOS Encyclopedia” contains a similar documentation error. On Page 1288, there is a description of this byte, which, like the one in the “Microsoft MS-DOS Programmer’s Reference,” does not describe the case for 04h. Similarly, in the Microsoft Press book “Advanced MS-DOS Programming,” on Page 333, the case for byte 04h is also not described. The Microsoft Press book “Programmer’s Quick Reference Series: MS-DOS Functions” also contains the same error. This byte is described on Page 50 of this book.