4208.CPI and 5202.CPI Have an Incorrect Header

ID Number: Q67588

3.30 3.30a 4.00 4.01

MS-DOS

buglist3.30 buglist4.00 buglist4.01

Summary:

The files 4208.CPI and 5202.CPI both have Code Page Entry Headers

(CPEH) whose length is 26 bytes according the length field of the

structure stored in the binary file. This value is incorrect. The

actual length of the CPEH is 28 bytes (both by definition and in the

.CPI binary file.)

More information:

On page 394 in the "Microsoft MS-DOS Programmer's Reference" version

4.0, the CPEH is documented as being 28 bytes in length. The first

word of the CPEH structure gives the overall length of the header.

This value should always be set to 28.

Because the field length value is fixed at 28, it can be used to

verify correctness of the .CPI file by software that makes use of CPI

files. The PRINTER.SYS device driver and the MODE command in MS-DOS

make use of the data stored in the .CPI file, but do not check the

header length value; they assume that it is 28 bytes.

Microsoft has confirmed this to be a problem with MS-DOS versions

3.30, 4.00 and 4.01. We are researching this problem and will post new

information here as it becomes available.