home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-02-23 | 36.1 KB | 1,095 lines |
- CVREADME.DOC
- (C) Copyright Microsoft Corporation, 1987, 1988
- Microsoft(R) FORTRAN Optimizing Compiler Version 4.10
-
-
- NOTES ON CODEVIEW AND UTILITIES
-
- The Mouse Driver
-
- If you will be using the Microsoft Mouse with the Microsoft CodeView debugger
- you must have Version 6.0 or later of the Microsoft Mouse. If you do not,
- use the version of the MOUSE.COM driver provided in this package. Copy
- MOUSE.COM to the appropriate mouse directory. When you are ready to use the
- mouse, type
-
- mouse
-
- at the DOS command level. If you want to install the mouse driver automatically
- every time you reboot, insert the "mouse" command in your AUTOEXEC.BAT file.
-
- Note that in earlier releases of Microsoft C, both the MOUSE.SYS and the
- MOUSE.COM driver were provided. If you have been using an earlier version
- of the MOUSE.SYS driver, delete the following line from your CONFIG.SYS file:
-
- device=\<directory>\mouse.sys
-
- where <directory> is the directory where the earlier mouse driver resides.
-
-
- Microsoft CodeView(R) Debugger
-
- New Command-Line Option
- -----------------------
- If you have an IBM Personal System/2, then you can use the /50
- command-line option to start the CodeView debugger in 50-line mode.
- Note that you must be in 25-line mode to effectively use either the
- /43 or /50 command-line option.
-
- CONFIG.SYS Setting for CVP
- --------------------------
- To run the protected-mode CodeView debugger (CVP.EXE), you must have
- the following line in your CONFIG.SYS file:
-
- IOPL=YES
-
- Microsoft CodeView(R) Debugger Demonstration
- --------------------------------------------
- The demonstration runs only under MS-DOS or real-mode OS/2. You must
- compile the program STATS.FOR before you can run the CodeView
- demonstration. Compile the program using the following command and
- place the EXE file in the same directory as the other demonstration
- files:
- FL /AM /FPc /Zi /Od STATS.FOR
-
- IMAG and AIMAG Intrinsic Functions
- ----------------------------------
- The Microsoft CodeView(R) debugger considers the IMAG and AIMAG functions
- to be synonymous (it extracts the imaginary part of the complex
- number).
-
- Using the 7 Command in Protected Mode
- -------------------------------------
- If you are using OS/2 protected mode and have a math coprocessor, then
- you need to use a patch before you can use the CVP 7 command. To apply
- the patch, use the OS2PATCH.EXE and PTRACE87.PAT files that come on the
- same disk that CVP.EXE is on. You also need to locate the PATCH.EXE file
- that comes with OS/2 and make sure that this file is in a directory listed
- in your PATH environment variable. Then follow these steps:
-
- 1) Change the current drive and directory to the root directory of the
- boot disk. (If the boot disk is a floppy, make sure it is inserted
- in the drive you used to boot from.)
-
- 2) Give the following command line at the DOS prompt:
-
- OS2PATCH /A PTRACE87.PAT
-
- Note that you may need to give the complete path names for the
- OS2PATCH.EXE and for the PTRACE87.PAT file. You do not need to give
- a path name for the OS2PATCH.EXE file if you have placed this file
- in a directory listed in your PATH environment variable.
-
- Using the Real-Mode Debugger in the Compatibility Box
- -----------------------------------------------------
- When running the real-mode CodeView debugger in the DOS 3.x
- compatibility box, start the debugger with the /S command-line
- option. Otherwise, the mouse pointer will not appear.
-
- Using the CodeView Debugger with BIND
- -------------------------------------
- The real-mode CodeView debugger cannot debug bound (dual-mode)
- applications. However, the protected-mode CodeView debugger,
- CVP, can debug bound applications.
-
- Compiling BASIC Programs for CodeView Debugger
- ----------------------------------------------
- To compile BASIC programs for use with the CodeView debugger, specify the
- /Zi option rather than the /D option.
-
- Expression Evaluator for BASIC Programs
- ---------------------------------------
- In the BASIC expression evaluator, "+" is not supported for string
- concatenation.
-
- Stack Trace Command
- -------------------
- In order for the Stack Trace command (or the Calls menu) to work
- reliably, you need to execute to at least the beginning of the main
- function or procedure, and the current module should have full CodeView
- information (a module has full CodeView information if compiled or
- assembled with /Zi).
-
- Error Messages
- --------------
- The error message "? cannot display" indicates that the Display
- Expression command (?) has been passed a valid symbol that it
- cannot display. In previous versions of the debugger, structures
- could not be displayed. With current version of the debugger, only
- the enums type cannot be displayed.
-
- The error message "Expression not a memory address" occurs when
- the Tracepoint command is given without a symbol that evaluates to
- a single memory address. For example, the commands "TP?1" and
- "TP?a+b" each produce this error message. The proper way to put a
- tracepoint on the word at address 1 is with the command "TPW 1".
-
- The error message "Function call before 'main'" occurs when you
- attempt to evaluate a program-defined function before you have entered
- the main function. Execute to at least to the beginning of the main
- function before attempting to evaluate program-defined functions.
-
- The error message "Bad emulator info" occurs when CodeView cannot
- read data from the floating-point emulator.
-
- The error message "Floating point not loaded" has a special meaning
- for CVP (in addition to the explanation given in the CodeView and
- Utilities manual). Each thread has its own floating-point emulator.
- This message is issued when the current thread has not initialized
- its own emulator.
-
- Microsoft Pascal Programs
- -------------------------
- In this release, Microsoft Pascal programs cannot be debugged with
- the CodeView debugger.
-
- The Pascal example on pg. 61 of the Microsoft CodeView and Utilities
- manual should read
-
- PAS1 /Zz TEST;
-
- rather than
-
- PAS1 /Zi TEST;
-
- Exit Codes for Utilities
-
- The exit codes for LINK and the utilities in the Microsoft CodeView
- and Utilities manual should appear as follows:
-
- LINK
- ----
- Code Meaning
-
- 0 No error.
-
- 2 Program error--something was wrong with the commands
- or files input to the linker.
-
- 4 System error. The linker
-
- - ran out of space on output files
- - was unable to reopen the temporary file
- - experienced an internal error
- - was interrupted by the user
-
- LIB, EXEPACK, EXEMOD, MAKE, and SETENV
- ---------------------------------------
- Code Meaning
-
- 0 No error.
-
- 2 Program error--something was wrong with the commands
- or files input to the utility.
-
- 4 System error. The utility ran out of memory, was
- interrupted by the user, or experienced an internal
- error.
-
-
- Microsoft Segmented-Executable Linker (LINK)
-
- Overlay Restrictions
- --------------------
- You cannot use long jumps (using the longjmp library function) or indirect
- calls (through a function pointer) to pass control to an overlay. When a
- function is called through a pointer, the called function must be in the same
- overlay or in the root.
-
- Changed LINK Error Messages
- ---------------------------
- The explanation for fatal-error message L1008 is changed as follows:
-
- The /SEGMENTS option specified a limit greater than 3072 on the
- number of segments allowed.
-
- Error message L1009 has been changed to read as follows:
-
- L1009 <number> : CPARMAXALLOC : illegal value
-
- Error message L1053 has been changed to read as follows:
-
- L1053 out of memory for symbol table
-
- The program had more symbolic information (such as public, external,
- segment, group, class, and file names) than the amount that could fit
- in available real memory.
-
- Try freeing memory by linking from the DOS command level instead of
- from a MAKE file or from an editor. Otherwise, combine modules or
- segments and try to eliminate as many public symbols as possible.
-
- Warning message L4050 has been changed as follows:
-
- L4050 too many public symbols for sorting
-
- The linker uses the stack and all available memory in the
- near heap to sort public symbols for the /MAP option. If
- the number of public symbols exceeds the space available
- for them, this warning is issued, and the symbols are not
- sorted in the map file but are listed in arbitrary order.
-
- New LINK Error Messages
- -----------------------
- L1003 /QUICKLIB, /EXEPACK incompatible
-
- You cannot link with both the /QU option and the /E option.
-
- L1006 <option-text>: stack size exceeds 65535 bytes
-
- The value given as a parameter to the /STACKSIZE option exceeds the
- maximum allowed.
-
- L1063 out of memory for CodeView information
-
- The linker was given too many object files with debug information,
- and the linker ran out of space to store it. Reduce the number
- of object files that have debug information.
-
- L1115 /QUICKLIB, overlays incompatible
-
- You specified overlays and used the /QUICKLIB option.
- These cannot be used together.
-
- L2013 LIDATA record too large
-
- An LIDATA record contained more than 512 bytes. This is
- probably a compiler error.
-
- L2024 <name>: special symbol already defined
-
- Your program defined a symbol name that is already used by the linker
- for one of its own low-level symbols. (For example, the linker
- generates special symbols used in overlay support and other operations.)
- Choose another name for the symbol in order to avoid conflict.
-
- L2025 <segmentname>: segment with > 1 class name not allowed with /INC
-
- Your program defined a segment more than once, giving the segment
- different class names. Different class names for the same segment
- are not allowed when you link with the /INCREMENTAL option. Normally,
- this error should never appear unless you are programming with MASM.
- For example, if you give the two MASM statements
-
- _BSS segment 'BSS'
-
- and
-
- _BSS segment 'DATA'
-
- then the statements have the effect of declaring two distinct segments.
- ILINK does not support this situation, so it is disallowed when the
- /INCREMENTAL option is used.
-
-
- L2041 stack plus data exceed 64K
-
- The total of near data and requested stack size exceeds 64K,
- and the program will not run correctly. Reduce the stack size.
- The linker only checks for this condition if /DOSSEG
- is enabled, which is done automatically in the library
- startup module.
-
- L2043 Quick Library support module missing
-
- When creating a Quick library, you did not link with the required
- QUICKLIB.OBJ module.
-
- L2044 <name> : symbol multiply defined, use /NOE
-
- The linker found what it interprets as a public-symbol
- redefinition, probably because you have redefined a symbol that
- is defined in a library. Relink with the /NOEXTDICTIONARY
- (/NOE) option. If error L2025 results for the same symbol, then you
- have a genuine symbol-redefinition error.
-
- L4003 intersegment self-relative fixup at <offset> in segment <name>
- pos: <offset> Record type: 9C target external '<name>'
-
- The linker found an intersegment self-relative fixup. This error
- may be caused by compiling a small-model program with the /NT
- option.
-
- L4034 more than 239 overlay segments; extra put in root
-
- Your program designated more than the limit of 239 segments to
- go in overlays. Starting with the 234th segment, they are assigned to
- the root (that is, the permanently resident portion of the program).
-
-
- Microsoft Library Manager (LIB)
-
- New Option
- ----------
- There is a new option for LIB: /NOIGNORECASE (abbreviated as /N).
- This option tells LIB to not ignore case when comparing symbols.
- names. By default, LIB ignores case. Multiple symbols that are
- the same except for case can be put in the same library. An
- example of this is: "_Open" and "_open". Normally you could not
- add both these symbols to the same library.
-
- Note that if a library is built with /NOI, the library is
- internally "marked" to indicate /NOI. All libraries built
- with earlier versions of LIB are not marked.
-
- If you combine multiple libraries, and any one of them is
- marked /NOI, then /NOI is assumed for the output library.
-
- In addition, LIB also supports the option /IGNORECASE (/I), which
- is completely analogous to /NOIGNORECASE. /I is the default. The only
- reason to use it would be if you have an existing library marked /NOI
- that you wanted to combine with other libraries which were not marked,
- and have the output library be not marked. If you don't use
- /IGNORECASE, the output is marked /NOI (see above).
-
- Changed LIB Error Messages
- --------------------------
- Warning messages U4152, U4155, and U4157-U4159 for LIB are now
- nonfatal error messages U2152, U2155, and U2157-U2159, respectively.
-
- Warning message U4151 has been changed to read as follows:
-
- U4151 '<name>' : symbol defined in module <name>, redefinition ignored
-
- New LIB Error Messages
- ----------------------
- The following new warning messages have been added for LIB:
-
- U4155 <modulename> : module not in library
-
- A module specified to be replaced does not already exist in the
- library. LIB adds the module anyway.
-
- U4157 insufficient memory, extended dictionary not created
- U4158 internal error, extended dictionary not created
-
- For the reason indicated, LIB could not create an extended
- dictionary. The library is still valid, but the linker
- is not able to take advantage of the extended dictionary
- to speed linking.
-
-
- Microsoft Program Maintenance Utility (MAKE)
-
- New Error Message
- -----------------
- U1015: <file> : error redirection failed
-
- This error occurs if the /X option is given and error output cannot
- be redirected to the given file (for example, because the file
- is read-only).
-
- Inference Rules
- ---------------
- You cannot have inference rules in both the TOOLS.INI and the description
- file that use both the same inextension and outextension. For example, you
- cannot place the following inference rule in the TOOLS.INI file:
-
- .c.obj:
- cl /c /Zi /Od $*.c
-
- while also placing the following line in the description file:
-
- .c.obj:
- cl /Ot $*.c
-
- However, you can define the same macro in both the TOOLS.INI and the
- description file. In such cases, the definition in the description file
- takes precedence.
-
- Backslash (\) as Continuation Character
- ---------------------------------------
- Note that MAKE considers a backslash immediately followed by a new-line
- character to be a continuation character. When it finds this combination
- in a description file, MAKE concatenates the line immediately following
- the combination with the line where the combination appears.
-
- If you define a macro that ends in a backslash, make sure that you put a
- space after the terminating backslash. For example, if you want to define
- macros for the path C:\SRC\BIN and C:\SRC\LIB, you must use the format
- illustrated below:
-
- BINPATH=C:\SRC\BIN\<space><newline>
- LIBPATH=C:\SRC\LIB\<space><newline>
-
- To illustrate the problems that can result if you do not put a space before the
- new-line character, assume that the macros above appear as shown below
- instead:
-
- BINPATH=C:\SRC\BIN\<newline>
- LIBPATH=C:\SRC\LIB\<newline>
-
- Because a new-line character appears immediately after the backslash at the end
- of the first macro, MAKE assumes that you are defining the single macro shown
- below:
-
- BINPATH=C:\SRC\BIN\LIBPATH=C:\SRC\LIB\
-
-
-
- Microsoft STDERR Redirection Utility (ERROUT)
-
- The ERROUT utility does not accept batch files. To redirect standard-error
- output from a batch file, you must enter a command of the following form:
-
- ERROUT COMMAND /c <batchcommand>
-
- If no /f option is given, then ERROUT redirects standard-error output to
- the standard-output device.
-
-
- Mixed-Language Programming
-
- C Naming Conventions
- --------------------
- C recognizes the first 31 characters of a symbolic name.
-
- Accessing Parameters on the Stack
- ---------------------------------
- In Section 6.1.5 of the Microsoft Mixed Languages Programming Guide, the
- instruction
-
- mov bx, [bp+6]
-
- loads the argument into the BX register rather than the BP register.
-
- Setting Up Calls to High-Level Languages
- ----------------------------------------
- Section 6.6 of the Microsoft Mixed Languages Programming Guide gives in-
- structions for setting up a call to a high-level language from assembly
- language. Before you execute a call to a BASIC, Pascal, or FORTRAN routine,
- remember to declare an additional parameter if the return value is noninteger.
- This additional parameter must contain the offset address of the return value,
- for which you must allocate room within the stack segment (normally DGROUP,
- the same as the default data segment).
-
- BASIC Return Values
- -------------------
- BASIC functions use the FORTRAN/Pascal conventions, rather than the C
- conventions, for receiving return values.
-
- Passing C Strings to BASIC
- --------------------------
- In Section 8.4.3 of the Microsoft Mixed Languages Programming Guide, in the
- example illustrating how C passes string arguments to BASIC functions, the
- sd_len field should be declared as shown below:
-
- int sd_len
-
- BASIC Array Declarations
- ------------------------
- The sample BASIC array declaration in Table 9.1 of the Microsoft
- Mixed Language Guide should read
-
- DIM x(c-1, r-1)
-
- Linking with MASM Files
- -----------------------
- If you are linking C modules with modules created by the Microsoft Macro
- Assembler, either assemble the MASM modules with the /MX option to
- preserve case sensitivity in these modules; or, use the LINK command
- to link in a separate step, and do NOT specify the /NOI linker
- option.
-
- Linking Mixed-Language Programs
- -------------------------------
- This section explains how to link Microsoft C modules with modules created
- by other Microsoft languages. The discussions assume that you are linking
- with the Microsoft Segmented-Executable Linker, LINK. (This is the version
- of LINK provided with this version of FORTRAN and Version 5.10 of the
- Microsoft C Optimizing Compiler.)
-
- To link object modules created using the Microsoft C Optimizing Compiler,
- Version 5.10, with those created using the Microsoft FORTRAN Optimizing
- Compiler Version 4.00 or 4.01, you must create a special version of each
- of the FORTRAN libraries you intend to use. Create one FORTRAN library
- to correspond to each C library you are using; that is, create a FORTRAN
- library that supports the same memory-model/math-option combination as
- the corresponding C library. Be sure that you choose the "C compatibility"
- option when you build each FORTRAN library.
-
- Next, use the SETUP program provided with Microsoft C, Version 5.10, to
- create all the combined C 5.10 libraries that you will need. SETUP creates
- a subdirectory named \MIXLANG under the C 5.10 base directory.
-
- Place the FORTRAN libraries you have created in this directory. Then make the
- \MIXLANG directory the current directory and run F4COMPAT, which brings the
- FORTRAN libraries up to date and makes them compatible with C 5.10. F4COMPAT
- takes two arguments: one specifying the memory model and one specifying the
- floating-point-math package that the library supports. For example,
-
- F4COMPAT L 7
-
- makes a C 5.10-compatible version of LLIBFOR7.LIB.
-
- Once the libraries are built, use the following LINK command line to
- link the appropriate C library with the FORTRAN library that you
- converted in the previous example:
-
- LINK objs,,,LLIBC7.LIB LLIBFOR7.LIB /NOE;
-
- The LINK command lines for other memory models and floating-point math packages
- are similar. Note that the C library must be given first on the command line.
- Specify the \MIXLANG subdirectory either in the LIB environment variable
- or on the LINK command line so that the linker can find the FORTRAN
- library. Use only large- and medium-model libraries. Huge-model programs
- use large-model libraries.
-
-
- To link other combinations of language libraries, the BASIC libraries
- (either BCOM40 or BRUN40) should be listed first on the LINK command
- line, since the main program must be written in BASIC. Otherwise,
- the C 5.1 library should be listed first. (Or, if you are using C 4.0
- with FORTRAN 4.0 or later, the FORTRAN library should be listed first.)
- For best results, using large-memory-model C is suggested.
-
-
- The BIND Utility
-
- Specifying Libraries
- --------------------
- You need to include DOSCALLS.LIB on the BIND command line. If
- DOSCALLS.LIB is not in the current directory, you must give the
- complete path name to DOSCALLS.LIB.
-
- BIND automatically searches for API.LIB by looking in directories
- listed in the LIB environment variable. However, if API.LIB is
- specified on the command line, then BIND does not check the LIB
- environment variable; instead, you need to give the complete
- path name.
-
- For example, the following command line successfully uses BIND, if
- API.LIB is located in a directory listed in the LIB environment
- variable:
-
- BIND FOO.EXE \LIB\DOSCALLS.LIB
-
- Using BIND with Packed Files
- ----------------------------
- The version of BIND released with this package does not work with
- files that have been linked with the /EXEPACK linker option.
-
- Running Bound Files with DOS 2.1
- --------------------------------
- A dual-mode executable file produced with BIND can be run in both
- DOS 3.x and DOS 2.x environments. However, if you change the name
- of an executable file produced by BIND, then it will not run under
- DOS 2.1.
-
-
- The Microsoft Incremental Linker (ILINK)
-
- ILINK Fatal Error Messages
- --------------------------
-
- .sym seek error
- .sym read error
-
- The .SYM file is corrupted. Do a full link. If the error
- persists, contact Microsoft.
-
- .sym write error
-
- The disk is full or the .SYM file already exists with the
- READONLY attribute.
-
- map for segment <name> exceeds 64K
-
- The symbolic information associated with the given segment
- exceeds 64K bytes, which is more than ILINK can handle.
-
- can't ilink library <name>
-
- You tried to incrementally link an altered library.
- ILINK does not link .LIB files but only .OBJ files.
- Use a full link instead.
-
- .obj close error
-
- The operating system returned an error when ILINK attempted
- to close one of the .OBJ files. Do a full link. If the error
- persists, contact Microsoft.
-
- too many LNAMES in <modname>
-
- An object module has more than 255 LNAME records.
-
- too many SEGDEFs in <modname>
-
- The given object module has more than 100 SEGDEF records.
-
- too many GRPDEFs in <modname>
-
- The given object module has more than 10 GRPDEF records.
-
- symbol <name> multiply defined
-
- The given symbol is defined more than once.
-
- #3
-
- Please report this error to Microsoft.
-
- Out of Memory
-
- ILINK ran out of memory for processing the input. If you
- are running ILINK under MAKE, try running it from the shell.
- Otherwise, do a full link.
-
- could not run exec
-
- ILINK was unable to find the file EXEC.EXE, which should be
- placed somewhere in the search path or in the current
- directory.
-
- .exe file too big, change alignment
-
- The segment sector alignment value in the .EXE file is too
- small to express the size of one of the segments. Do a full
- link and increase the alignment value with the /ALIGNMENT
- option to LINK.
-
- .ilk seek error
-
- The .ILK file is corrupted. Do a full link. If the error
- persists, contact Microsoft.
-
- Too many defined segments
-
- ILINK has a limit of 255 defined segments, which are segments
- defined in an object module as opposed to an executable segment.
- Reduce the number of segments if you want to use ILINK.
-
- too many library files
-
- ILINK has a limit of 32 runtime libraries (.LIB files). Reduce
- the number of libraries.
-
- too many modules
-
- ILINK has a limit of 1204 modules in a program. Reduce the
- number of modules.
-
- .ilk write error
-
- The disk is full, or else ILINK cannot write to the .SYM file
- because a .SYM file currently exists and has the READONLY attribute.
-
- file <name> does not exist
-
- ILINK was unable to open the given file. The file named was
- in the file list in the .ILK file.
-
- seek error on library
-
- A .LIB file was corrupted. Do a full link and check your .LIB
- files.
-
- library close error
-
- The operating system returned an error when ILINK attempted
- to close one of the .LIB files. Do a full link. If the error
- persists, contact Microsoft.
-
- error closing EXE file
-
- The operating system returned an error when ILINK attempted
- to close the .EXE file. Do a full link. If the error
- persists, contact Microsoft.
-
- Invalid module reference <module>
-
- The program makes a dynamic link reference to a dynamic link
- module which is not represented in the .EXE file.
-
- could not update time on <filename>
-
- The operating system returned an error when ILINK attempted
- to update the time on the given file. Possibly the file had
- the READONLY attribute set.
-
- invalid flag <flag>
- only one -e command allowed
-
- The ILINK command syntax is incorrect.
-
- User Abort
-
- The user issued CTRL+C or CTRL+BREAK.
-
- file <name> write protected
-
- The .EXE, .ILK, or .SYM file needed to be updated and has the
- READONLY attribute. Change attribute to READWRITE.
-
- file <name> missing
-
- One of the .OBJ files specified on the command line is missing.
-
- file <name> invalid .OBJ format
- file <name> has invalid <recordtype> record
-
- The given .OBJ file has an invalid format or one that is not
- recognized by ILINK. This may have been caused by a compiler
- or assembler.
-
- file <module> was not full linked
-
- An .OBJ file was specified as input to ILINK, which was not in
- the list of files in the original full link.
-
- LOBYTE seg-relative fixups not supported
-
- This error message should occur only with MASM files. See the
- Microsoft Macro Assembler 5.0 Programmer's Guide. This type of
- object module is not supported by ILINK.
-
- <number> undefined symbols
-
- The given number of symbols were referred to in fixups but
- never publicly defined in the program.
-
- Incremental Violations
- ----------------------
- These errors cause a full link to occur if the -e option is used and -i
- is not used, else they are fatal errors:
-
- symbol <name> deleted
-
- A symbol was deleted from an incrementally-linked module.
-
- <modname> contains new SEGMENT
-
- A segment was added to the program.
-
- <modname> contains changed segment <name>
-
- The segment contribution (code or data which the module
- contributes to a segment) changed for the given module: it
- contributed to a segment it didn't previously contribute to,
- or a contribution was removed.
-
- <modname>'s segment <name> grew too big
-
- The given segment grew beyond the padding for the given module.
-
- <modname> contains new GROUP <name>
-
- A new group was defined, via the GROUP directive in assembly
- language or via the /ND C compiler option.
-
- <modname> redefines group <name> to include <name>
-
- The members of the given group changed.
-
- symbol <name> changed
-
- The given data symbol was moved.
-
- can't add new communal data symbol <name>
-
- A new communal data symbol was added as an uninitialized variable
- in C or with the COMM feature in MASM.
-
- communal variable <name> grew too big
-
- The given communal variable changed size too much.
-
- invalid symbol type for <name>
-
- A symbol which was previously code became data, or vice versa.
-
- too many COMDEFS
- too many EXTDEFS
-
- The limit on the total of COMDEF records (communal data variables)
- and EXTDEF records (external references) is 2000.
-
- invalid CodeView information in .EXE file
-
- The CodeView information found is invalid.
-
- <name> contains new CodeView symbolic info
-
- A module previously compiled without -Zi was compiled with -Zi.
-
- <name> contains new linnum info
-
- A module previously compiled without -Zi or -Zd was compiled
- with -Zi or -Zd.
-
- <name> contains new public CV info
-
- New information on public-symbol addresses was added.
-
- invalid .exe file
-
- The .EXE file is invalid. Make sure you are using an up-to-date
- linker. If the error persists, contact Microsoft.
-
- invalid .ilk file
- .ilk read error
- .ilk seek error
-
- The .ILK file is invalid. Make sure you are using an up-to-date
- linker. If the error persists, contact Microsoft.
-
- .SYM/.ILK mismatch
-
- The .SYM and .ILK files are out of sync. Make sure you are using
- an up-to-date linker. If the error persists, contact Microsoft.
-
- <libname> has changed
-
- The given library has changed.
-
- can't link 64K-length segments
-
- ILINK cannot handle segments greater than 65,535 bytes long.
-
- can't link iterated segments
-
- ILINK cannot handle programs linked with /EXEPACK.
-
- Entry table expansion not implemented
-
- The program call tree changed in such a way that ILINK could
- not handle it.
-
- file <name> does not exist
-
- The .EXE, .SYM, or .ILK files are missing.
-
- <name> has changed
-
- The given library module name has changed.
-
- ILINK Warning messages
- ----------------------
-
- Fixup frame relative to an (as yet) undefined symbol - assuming ok
-
- See documentation for LINK error messages L4001 and L4002,
- in the Microsoft CodeView and Utilities manual.
-
- <name> contains TYPEDEFs - ignored
- <name> contains BLKDEFs - ignored
-
- The .OBJ file contains records no longer supported by Microsoft
- language compilers.
-
- old .EXE free information lost
-
- The free list in the .EXE file has been corrupted. The free
- list keeps track of "holes" of free space in the EXE file. These
- holes are made available when segments are moved to new locations.
-
- file <name> has no useful contribution
-
- The given module makes no contribution to any segment.
-
- Main entry point moved
-
- The program starting address changed. You may want to consider
- doing a full link.
-
-
-
- Microsoft Editor
-
-
- Setting Up the Microsoft Editor
- -------------------------------
- The FORTRAN setup program does not install the Microsoft Editor. To
- install the Microsoft Editor, insert the Microsoft Editor disk and run
- the MSETUP batch file. To use the MSETUP batch file under protected-mode
- OS/2, rename MSETUP.BAT to MSETUP.CMD.
-
- CALLTREE.EXE
- ------------
- The CALLTREE program mentioned on page 112 of the Microsoft Editor
- User's Guide is not included with FORTRAN Version 4.10 because the
- utility can only be used with C and assembly programs.
-
- C Extension Files
- -----------------
- The files mentioned in Section 8, "Programming C Extensions," in the
- Microsoft Editor User's Guide are not included with FORTRAN Version
- 4.1, although this file includes corrections to the manual.
-
- Keystroke Configurations
- ------------------------
- Some of the keystroke configurations listed in Table A.2 of the
- Microsoft Editor User's Guide may need to be changed.
-
- In the Quick/WordStar(R) configuration, the Sinsert function is assigned
- to ALT+INS, not CTRL+INS.
-
- In the BRIEF(R) configuration, the Plines function is assigned to ALT+D,
- and the Refresh function is assigned to CTRL+].
-
- In the EPSILON(TM) configuration, the Ppage function is assigned to PGDN,
- and the Sdelete function is assigned to DEL and CTRL+D.
-
- The Compile Function
- --------------------
- The commands
-
- Arg streamarg Compile
- Arg textarg Compile
-
- each use the command specified by the extmake:text switch. The
- editor does not check the extension of the file name given as an
- argument, but instead uses the "text" extension. The streamarg
- or textarg replaces a %s in the command. These commands are typically
- used to invoke MAKE.
-
- The Setfile Function
- --------------------
- The commands that use Setfile, along with a streamarg or textarg,
- accept a variety of input: either the name of a file, a file name
- with a wild-card character (* or ?), the name of a directory, or the
- name of a disk drive. File names can also include environment variables,
- such as $INIT. If the streamarg or textarg is a directory name, then
- the editor changes the current directory. If the argument is a drive
- name, then the editor changes the current drive. Environment variables
- are translated into directories to be searched for a file. For example,
- the following macro directs the editor to search the $INIT environment
- variable in order to find the tools.ini file:
-
- tools.ini := Arg "$TOOLS:tools.ini" Setfile
-
-
- Entering Strings in Macros
- --------------------------
- When you enter a text argument directly, no characters have special
- meaning (except when the argument is interpreted as a regular
- expression). However, when you enter text as part of a macro, then
- strings inside of quotes are interpreted according to the C string
- format. This format uses a backslash followed by double quotes (\")
- to represent double quotes and it uses two backslashes (\\) to represent
- a single backslash. Therefore, to find the next occurrence of the string
-
- She wrote, "Here is a backslash: \ "
-
- you could use the following macro definition:
-
- findit := Arg "She wrote, \"Here is a backslash: \\ \"" Psearch
-
- Note that to indicate a backslash for a regular expression that is
- also part of a macro definition, you must use four consecutive
- backslashes.
-
-
- Using Text Switches
- -------------------
- The text switches extmake and readonly each take a special
- kind of syntax that allows you to specify drive, file name,
- base name, or file extension. The syntax consists of the
- characters:
-
- %|<letters>F
-
- where <letters> consists of any of the following: "p" for path,
- "d" for drive, "f" for file base name, or "e" for file extension.
- For example, if you are editing the file c:\dir1\sample.c, and you
- make the following switch assignment:
-
- extmake:c cl /Fod:%|pfF %|dfeF
-
- then each time you give the command <Arg><Compile>, the editor
- performs the following system-level command:
-
- cl /Fod:\dir1\sample c:sample.c
-
- The expression "%s" is equivalent to "%|feF" except that the former
- only works once, whereas the latter can appear any number of times
- in the extmake switch assignment. The expression "%|F" is equivalent
- to "%|dpfeF".
-
- The Filetab Switch
- ------------------
- The filetab switch is a numeric switch that determines how the
- editor translates tabs when loading a file into memory. The value
- of the switch gives the number of spaces associated with each tab
- column. For example, the setting "filetab:4" assumes a tab column
- every 4 positions on each line. Every time the editor finds a tab
- character in a file, it loads the buffer with the number of spaces
- necessary to get to the next tab column. Depending on the value of
- the entab switch, the editor also uses the filetab switch to determine
- how to convert spaces into tabs when writing to a file. The default
- value of filetab is 8.
-
- Functions Callable by C Extensions
- ----------------------------------
-
- The following list summarizes functions from the standard compact-
- memory-model library, which should work when called by a C-extension
- module. (The technique of programming C extensions is presented in
- Chapter 8 of the Microsoft Editor User's Guide.) The memory model
- of the extension is assumed to be /Asfu (small code pointers, far
- data pointers, and stack segment unequal to data segment). This list
- uses the function categories from Chapter 4 of the Microsoft C
- Optimizing Compiler Run-Time Library Reference (Version 4.0
- or later.)
-
- Buffer Manipulation: All functions can be called.
-
- Character Classification and Conversion: All functions can be called.
-
- Data Conversion: All functions can be called except for
-
- strtod()
-
- Directory Control: All functions can be called except for
-
- getcwd()
-
- File Handling: All functions can be called.
-
- Low-Level I/O Routines: All functions can be called, but write()
- will not work in binary mode.
-
- Console and Port I/O: All functions can be called except for
-
- cgets()
- cprintf()
- cscanf()
-
- Searching and Sorting: All functions can be called except for
-
- qsort()
-
- String Manipulation: All functions can be called except for
-
- strdup()
-
- BIOS Interface: All functions can be called.
-
- MS-DOS Interface: All functions can be called except for
-
- int86()
- int86x()
-
- Time: All functions can be called except for
-
- ctime()
- gmtime()
- localtime()
- utime()
-
- Miscellaneous: All functions can be called except for
-
- assert()
- getenv()
- perror()
- putenv()
- _searchenv()
-
-
- Linking Extensions in Protected Mode
- --------------------------------------
- To link C extension modules in protected mode, link with the
- object file EXTHDRP.OBJ, instead of the real-mode header
- EXTHDR.OBJ.
-