README.DOC File
Release Notes for the
Microsoft(R) QuickC(R) Compiler, Version 2.50
(C) Copyright Microsoft Corporation, 1988-1990
This document contains release notes for Version 2.50 of the Microsoft(R)
QuickC(R) Compiler. The information in this document is more current than
the information in the manuals. Where this file conflicts with printed
documentation, you should assume that this file is correct.
Microsoft revises its documentation at the time of reprinting; the manuals
may already include some of this information.
Note: If you're reading this from within online help, but would prefer to
print it out by loading README.DOC into a word processor, you can find the
file in the executable files directory (the default is \QC2\BIN). If
you're using a word processor to read this, you already know where it is.
The only other documentation file in QuickC is \SAMPLES\SAMPLES.DOC, which
explains the example programs in the SAMPLES directory.
(COMPAQ is a registered trademark of Compaq Computer Corporation.)
(Novell is a registered trademark of Novell, Inc.)
(Intel is a registered trademark of Intel Corporation.)
===============================< Contents >================================
This file has three parts:
Part Notes
---- --------------------------------------
1 Notes on "Up and Running"
2 Notes on "C for Yourself"
3 Notes on "QuickC Tool Kit"
4 Notes on "QuickC Update"
===================< Part 1: Notes on "Up and Running" >===================
QuickC version 2.5 is incompatible with QuickAssembler version
2.01.
Page Note
---- ----
Inside Front Cover
Brief Guide to Keystrokes
--- -------------------------
The chart on the inside front cover says the ESC key "stops the
compiler and linker from continuing." ESC stops the compiler but NOT
the linker. Press CTRL+BREAK to stop both the compiler and linker.
If you are using the debugger and running a program that expects
keyboard input, pressing either CTRL+C or CTRL+BREAK and then ENTER
will allow you to exit.
6 Running SETUP
--- -------------
If you already have QuickC installed, SETUP will overwrite the
existing QC.INI file that contains the current compiler options,
etc. set in the environment. If you wish to save those settings,
rename this file before running SETUP.
19 Using QuickC
--- ------------
If you own a COMPAQ(R) SLT/286, and the LCD display goes
blank when exiting from QuickC back to DOS, you should
run the program DAC_ON.COM before loading QuickC. To obtain a
copy of DAC_ON.COM contact your authorized COMPAQ Computer
Dealer.
42 The Debugger
--- ------------
You may see the message "currently running program terminated"
while debugging.
This may happen if your program is linked with a user-created
library module that contains debugging information, and for
which the source files are present. In such a case, single-
stepping into a function contained in the library will cause
the debugger to terminate the current program, and attempt to
compile the source files for the library module into an
executable program.
You can avoid this problem by setting your program list to
contain only the name of the source file of your program.
(miscellaneous)
accessing memory at 0xffff
--------------------------
Due to a problem with the Intel(R) processor, any attempt to
access a word value at memory location 0xFFFF may cause the
system to hang. The most likely way for this to happen is from
within the QuickC debugger, if you use the WO (display word) or
DW (display double word) operators to examine a register
containing 0xFFFF. Any C or assembly language program that tries
to access that location may also cause the system to hang.
Incompatibility with Novell Netware
-----------------------------------
If you have a peripheral (such as a mouse) that uses IRQ 3, and
your system is part of a network using Novell(R) Netware version
2.15 or lower, your system may hang when you load the QuickC
environment. As a temporary solution, reset your peripheral to
use another interrupt. For more information, contact your Novell
Netware dealer.
===================< Part 2: Notes on "C for Yourself" >===================
Page Note
---- ----
53 Type Qualifiers
--- ---------------
The fourth paragraph in this section is incorrect. A long double
value is the same size as a double. It contains 8 bytes, not 10. It
expresses a floating-point number with at least 15 digits of
precision, not 19. Table 4.1 on page 49 should also be corrected.
164 Declaring a Pointer with the Wrong Type
--- ---------------------------------------
In the first program listing on the page, the line
ptr = val; /* Error! */
should read
ptr = &val; /* Error! */
215 Table 11.4 Standard vs. Low-Level
--- -----------------------------------
The headings across the top of the table should read
Function Parameters Returns Error Condition
298 Vector-Mapped Fonts
--- -------------------
Add this note to the description of vector mapping:
If a vector-mapped font is selected in graphics mode, any
function affecting the _moveto or _lineto functions (such as the
_setlinestyle function) will also affect the font when
"_outgtext" is called.
304 Example Program Using Fonts
--- ---------------------------
The line reading
if( !_setfont( list ) )
should read
if( _setfont( list ) >= 0 )
309 Limits on _asm Identifiers
--- --------------------------
Never use reserved assembly words as labels, variable names, or other
identifiers within an _asm block. This includes words in the
following categories:
- ASM Opcodes such as CMP or MOV
- Opcodes new to the 80186, 80286, and 80386 such as ARPLS or CLTS
- Reserved operand words such as WORD or PARA
- C library functions such as "exit" or "time".
For example, the following code is not permitted:
main()
{
int word;
_asm { mov WORD PTR [word],ax }
}
The variable 'word' can be used in the C part of the program, but not
within the assembly block.
366 Font Display Routines
--- ---------------------
The return values for the _registerfonts and _setfont functions
should be
_registerfont
Returns: the number of fonts registered, or a negative value if
failure
_setfont
Returns: a negative value if failure, zero or positive if
successful
==================< Part 3: Notes on "QuickC Tool Kit" >===================
Page Note
---- ----
94 /Gw, GW (Generate Code for Windows Function Calls)
--- --------------------------------------------------
QuickC 2.5 supports development of programs for the next release
of Windows. If you wish to develop programs for Windows 2.03, you
must explicitly link your program with C51STUBS.LIB.
130 /INC (Prepare for ILINK)
--- ------------------------
By default, ILINK will call LINK if the incremental link fails.
To make ILINK call QLINK instead, use the /E option and an
argument. For example:
ILINK /E "QLINK @RESPONSE" PROGRAM.EXE
259 Warning Message C4018
--- ---------------------
The warning message below is new and should be added to page 259:
C4018 'operator': signed/unsigned mismatch
An expression involving the specified operator had inconsistent
integer types. The two integer expressions used in the comparison
operation are not of the same signed or unsigned type.
(miscellaneous)
makefile compatibility with QuickC 2.0
--------------------------------------
The name of the linker supplied with QuickC has been changed
from LINK to QLINK. Any makefiles used with QuickC 2.0 that
specify the LINK command should be changed accordingly.
makefile compatibility with the Programmer's WorkBench
------------------------------------------------------
The makefiles generated by QuickC are not fully readable by the
Programmer's WorkBench (PWB) included with Microsoft's
professional development systems. PWB is unable to read the
linker options specified in QuickC makefiles, so you will have to
respecify those options using PWB's menus. QuickC cannot read
makefiles generated by PWB.
Assembler error message
-----------------------
If you are using QCL to invoke MASM for .ASM files, you may see
the following error message when assembling very large files.
A1009 unable to open input file
This message may appear when MASM is out of memory. Try dividing
your source file into smaller files.
==================< Part 4: Notes on "QuickC Update" >===================
The "QuickC Update" book is included only if you are updating
from Quick 2.0 to 2.5.
Page Note
---- ----
26 Compiler Options
--- ----------------
If you have the Microsoft C Optimizing Compiler version 5.1 or
earlier, and you wish to use the CodeView debugger, do not use
the /Gi option (for incremental compilation), or the related
/Li linker option (for incremental linking). You can use the
QuickC integrated debugger, or the CodeView debugger included
with the Microsoft C Professional Development System version 6.0,
on programs compiled with /Gi or /Li.