Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/105933

From BetaArchive Wiki

Article ID: 105933

Article Last Modified on 10/2/2003



APPLIES TO

  • Microsoft FORTRAN PowerStation 1.0 Standard Edition
  • Microsoft Fortran PowerStation 1.0a for MS-DOS



This article was previously published under Q105933

SUMMARY

The corrections to the manuals shipped with Microsoft FORTRAN PowerStation for MS-DOS are described below. This is an extract of the ADDENDA.TXT file located in the \F32\README directory.

MORE INFORMATION

Part 1: Corrections to Getting Started

There are no corrections to Getting Started.

Part 2: Corrections to Language Guide

Page 52
Add the following note to the second bullet describing an iolist: "If I/O is to or from a formatted device, an iolist may not contain structure variables, but it may contain structure elements. If I/O is to a binary or unformatted device, it can contain either a structure element or a structure variable."

Page 85
Add the following comment to the discussion of backslash editing: "The dollar sign ($) can be used as an alias for the backslash edit descriptor."

Page 129, 131
Delete the table entries for GETCONFIGQQ.

Page 199
Input to intrinsic function ABS can also be any real or integer type.

Page 203
The purpose of intrinsic function AMAX0 should read: "Returns the maximum of a list of integer values."

Page 203
The purpose of intrinsic function AMAX1 should read: "Returns the maximum of a list of integer values and performs type conversion."

Page 204
The purpose of intrinsic function AMIN1 should read: "Returns the minimum of a list of integer values and performs type conversion."

Page 214
The order of the parameters for BEEPQQ is reversed; frequency is the first parameter. The frequency parameter in should be Hz, not KHz. The duration should be in milliseconds.

Page 256
One of the examples for the DINT intrinsic function is documented incorrectly. The examples show:

   DINT(2.6D0)       2.0000 ....
   DINT(2.6D0)      -2.0000 ....
                

The second line should read: (note the minus sign in the argument)

   DINT(-2.6D0)     -2.0000 ....
                

Page 314
Change error parameters ENOENT and EINVAL to ERR$NOENT and ERR$INVAL.

Page 319
The first five fontinfo structure variables in graphic function GETFONTINFO (type, ascent, pixwidth, pixheight and avgwidth) are shown as Integer*2; they should be Integer*4.

Pages 322-323
The naming convention for run-time error parameters was documented incorrectly. The following table shows the actual names of these parameters in the FLIB.FD include file:

   Change        to
   ========      =========
   E2BIG         ERR$2BIG
   EACCES        ERR$ACCES
   EBADF         ERR$BADF
   EINVAL        ERR$INVAL
   EIVAL         ERR$IVAL
   EMFILE        ERR$MFILE
   ENOENT        ERR$NOENT
   ENOEXEC       ERR$NOEXEC
   ENOMEM        ERR$NOMEM
   ERANGE        ERR$RANGE
                

Page 338
The Remarks section states that error constants are in FGRAPH.FI. Actually they are in FGRAPH.FD.

Several error constants were omitted from the table:

   $GRTEXTNOTSUPPORTED     (  4)
                

The VESA TSR or BIOS sets a flag that may indicate that text output is not supported. (Note: this flag is used inconsistently by different hardware vendors and may not be significant.)


   $GRNOBITMAPFILE         (-10)
   $GRFILEREADERROR        (-11)
   $GRIMPROPERBITMAPFORMAT (-12)
   $GRBITMAPTOOLARGE       (-13)
   $GRBITMAPDISPLAYERROR   (-14)
   $GRIMAGEREADERROR       (-15)
   $GRFILEOPENERROR        (-16)
   $GRFILEWRITEERROR       (-17)
                

The declaration of $GRTEXTNOTSUPPORTED has been omitted from FGRAPH.FD, therefore, you will get the following error when you use this constant and compile with /4Yd:

warning F4313: $GRTEXTNOTSUPPORTED: not previously declared

To work around this problem, open FGRAPH.FD, go to line 54, and add:

   + $GRTEXTNOTSUPPORTED
                

Page 376-377
Run-time subroutines SCWRQQ and SSWRQQ were incorrectly used as functions in the sample program TCOPO.FOR.

Page 381-382
Graphic Functions LOADIMAGE and LOADIMAGE_W are INTEGER*2 functions. The coordinate parameters wxcoord and wycoord are DOUBLE PRECISION, not REAL*4.

Page 386
The error parameters for MAKEDIRQQ were documented incorrectly.

   Change      to
   ------      ---------
   EACCES      ERR$ACCES
   ENOENT      ERR$NOENT
                

Page 439
The error parameters for RENAMEFILEQQ were documented incorrectly.

   Change      to
   ------      ---------
   EACCES      ERR$ACCES
   ENOENT      ERR$NOENT
   EXDEV       ERR$XDEV
                

Page 444-445
The coordinate parameters (ulwxcoord, ulwycoord, lrwxcoord and lrwycoord) are Double Precision, not Real*4.

Page 457-458
Run-time subroutines GETCONTROLFPQQ and GETSTATUSFPQQ were incorrectly used as functions in the sample program TCOP.FOR. The source for TCOP.FOR in the samples directory and in Help is correct.

Page 462
The error parameters for SETFILETIMEQQ were documented incorrectly.

   Change      to
   ------      ---------
   EACCESS     ERR$ACCES
   EINVAL      ERR$INVAL
   EMFILE      ERR$MFILE
   ENOENT      ERR$NOENT
                

Page 478
The remarks for Graphics subroutine SETTEXTWINDOW should read:

"Use SETTEXTWINDOW to specify a window in row and column coordinates where text output written to the screen using the OUTTEXT() subroutine is displayed. (You must set up the location with SETTEXTPOSITION.) The arguments (r1, c1) specify the upper-left corner of the text window, and the arguments (r2, c2) specify the lower-right corner of the text window.

Text is output from the top of the text window down. When the text window is full, successive lines overwrite the last line."

Page 496
The duration parameter of run-time subroutine SLEEPQQ should be in milliseconds, not microseconds.

Page 507
The error parameters for SYSTEMQQ were documented incorrectly.

   Change      to
   ------      ---------
   E2BIG       ERR$2BIG
   ENOINT      ERR$NOINT
   ENOEXEC     ERR$NOEXEC
   ENOMEM      ERR$NOMEM
                

Page 522
Appendix A erroneously states that the following VAX extensions are supported by FORTRAN PowerStation:

  • Inline variable length formatting (e.g.: FORMAT('I'), where var = 5)
  • Call intrinsics (%val, %descr, %ref, %loc)

Part 3: Corrections to User's Guide

Page 15, 22
You can also use CTRL+K to find matching braces.

Pages 67-68
The Create Assembly Listing checkbox is documented incorrectly. The compiler option associated with this option is /FAs, not /Fl. This option produces an assembly listing with code bytes, not an assembly listing with source.

Page 109
Add the following to the discussion of syntax coloring. "FORTRAN Visual Workbench displays metacommands in the same color as comments if syntax coloring is activated."

Pages 144-145
A new set of options has been added for producing assembly listings. The syntax is /FA[sc]. Use /FAs to add FORTRAN source lines to the assembly listing, and /FAc to add code bytes to the assembly listing. /FAsc will produce an assembly listing with both FORTRAN source lines and code bytes.

Page 170
Add this to the end of Section 11.2.3 Using Command Files:

The following example demonstrates the use of command files (also known as response files) to provide input to LINK32. Example:

LINK32 -LIB @MYRESP.RSP


A typical response file might contain:

-OUT:MYLIB.LIB
OBJECT1.OBJ
OBJECT2.OBJ
(and so forth)


Page 258
Page 294
Page 297
The default floating-point exception behavior is slightly different from that described in the text. By default, run-time errors occur for the INVALID, ZERODIVIDE, and OVERFLOW exceptions. By default, run-time errors occur for the math exceptions except for when you use the compiler option /Ox. See the README.TXT file for a summary of the complete floating-point exception behavior and details on how to customize that behavior to be strictly the IEEE behavior as described in the text.

Page 284
Replace the text:

"Some older 80386 systems have 287 coprocessors instead of 387s; the 287 math coprocessor does not perform floating-point operations on these systems."

with the text:

"Some older 80386 systems have 287 coprocessors instead of 387s; some floating-point operations will not work correctly in these cases. To fix this, you must force use of the floating-point emulator by setting the TNT environment variable as follows. At the MS-DOS (or Windows MS-DOS session) command line, enter "SET TNT=-FPEM" before running your compiled program. To cancel the forced emulation you can enter "SET TNT=-NOFPEM"."


Additional query words: 1.00 1.00a

Keywords: KB105933