FORTRAN PowerStation 1.0a ANSWERS.TXT

Last reviewed: July 21, 1995
Article ID: Q125873
The information in this article applies to:
  • Microsoft FORTRAN PowerStation for Windows, version 1.0a

SUMMARY

This article answers frequently asked questions. The information is taken from the Microsoft FORTRAN PowerStation 1.0a ANSWERS.TXT.

MORE INFORMATION

Table of Contents by Section and Question Number

General:

  1. Why does PowerStation run in Windows yet build applications for MS-DOS only?

  2. I see various components with NT in their name. Do I need Windows NT to run this product?

  3. Can I distribute programs created with PowerStation royalty free?

  4. How does virtual memory work under FORTRAN PowerStation? Is there any way I can change this functionality?

Programs Won't Run:

  1. Why does a program run on the computer where it was compiled but not on another computer?

  2. Why do I get the message "This program cannot be run in DOS mode?"

  3. Why do I get an "unhandled exception: Page fault" error?

Compile Time Errors:

  1. Why do I get a "CVPACK error" when using /Zi from the command line?

  2. What are LNK errors, and where can I get more information on them?

Run Time Errors:

  1. Why do I get an error when reading near the end of the file?

  2. What are DX errors, and where can I get more information on them?

  3. Why do I get a "General Protection Fault"?

  4. Why sometimes does CTRL+C or CTRL+BREAK not terminate my program?

Using the Visual Workbench:

  1. What do I do about "Internal error. Timed out waiting for WINTEE.EXE"?

  2. Why do I get "Cannot open the browser database file. Share is not

        installed or is not active for this drive." when I use the browser?
    

  3. What can I do to speed up compiles and links?

  4. How do I delete a project, and all its associated files?

  5. In the editor, how can I do column selections or use macros?

  6. Why are INCLUDE/$INCLUDE statements not scanned for dependencies?

  7. Why do some windows not remain when I close and reopen Visual

        Workbench?
    

  8. The debugger is sometimes slow or acts erratic; what can I do to fix

        it?
    

Mixed Language Programming:

  1. How do I mix FORTRAN and Assembly?

  2. How do I mix FORTRAN and C?

Differences from FORTRAN Version 5.1:

  1. Why is a program sometimes faster when compiled with F5.1?

  2. What happened to the /Fs compiler option?

General

 1. Q. The FORTRAN 5.1 development system ran under MS-DOS and built
       applications for MS-DOS and Windows, and DLLs for Windows.  Why
       does FORTRAN PowerStation run in Windows and build applications
       for MS-DOS only?

    A. FORTRAN 5.1 is a 16-bit compiler.  There are inherent capacity
       limitations associated with the 16-bit architecture.  In order
       to allow users to overcome the DOS 640K barrier, we created
       FORTRAN 5.1 which could generate QuickWin applications, essentially
       16-bit applications that use extended memory managed by Microsoft
       Windows.  FORTRAN PowerStation is a 32-bit targeted compiler.
       Since Windows for DOS is a 16-bit operating system, it would
       potentially constrain performance for 32-bit applications.
       32-bit DOS-extended applications, therefore, was the route of
       choice.

       FORTRAN PowerStation is also available for Windows NT.  With this
       product, 32-bit Windows applications and DLLs can be created
       (for use on Windows NT only).

 2. Q. I see various components with NT in their name.
       Do I need Windows NT to run this product?

    A. No. Microsoft also offers FORTRAN PowerStation 32 for Windows NT.
       FORTRAN PowerStation for MS-DOS shares some of the same technology
       as the Windows NT product, with some shared components using NT
       in their names.  This product is targeted at 32-bit MS-DOS;
       Windows NT is not a supported or required element of this
       package.

 3. Q. Can I distribute the DOS extender with executables created
       with FORTRAN PowerStation royalty free?

    A. Yes.  You have the right to distribute the DOS extender files
       DOSXMSF.EXE and DOSXNT.386 with programs that you create with
       FORTRAN PowerStation. There is no royalty required.

       The font files COURB.FON, HELVB.FON and TMSRB.FON are owned by
       BitStream, Inc.  If you want to distribute these files with a
       program, you will need to get permission from BitStream.  The other
       .FON files may be freely distributed (including those in the
       SAMPLES\TECHNOTE\FONTS directory).

 4. Q. How does virtual memory work under FORTRAN PowerStation?
       Is there any way I can change this functionality?

    A. PowerStation virtual memory management is considerably
       different depending on whether you are running your application
       under MS-DOS or under Windows.

       If you run your PowerStation application under MS-DOS, virtual
       memory is managed by the Phar Lap DOS-extender. When your
       application loads into memory, all declared data must load into
       memory. If you don't have sufficient available extended memory,
       the DOS-extender will use virtual memory on the disk where
       DOSXMSF.EXE is located. This process is automatic and requires
       no interaction on the part of the program. If you want to
       relocate the location used for virtual memory, you can set the
       DOSX environment variable with the command:

          SET DOSX=-SWAPDIR X:\MYSWAP

       Note that X: is the drive/partition you want to use and MYSWAP is
       the directory in which you want to place the virtual memory file.
       If you want to turn off use of virtual memory, you can set the
       DOSX environment variable as follows:

          SET DOSX=-NOVM

       If you are running your program in an MS-DOS session under
       Windows, then virtual memory is managed by Windows. You can
       control the size and type of your Windows swap file by starting
       the Control Panel application and selecting the 386 Enhanced
       icon. Please consult your Windows documentation for further
       details.

Programs Won't Run

 5. Q. I compiled and linked my program and it runs fine on the
       machine where FORTRAN PowerStation is installed but when I take
       it to another machine it won't run.  How can I make this
       application run on another machine?

    A. There are two additional files that need to be installed on the
       machine where you are going to run the FORTRAN application:
       DOSXMSF.EXE and DOSXNT.386.  DOSXMSF.EXE is the actual DOS
       extender that allows your 32-bit program to run under MS-DOS.
       DOXSNT.386 is a DPMI device driver that allows your program to
       run as a 32-bit DOS-extended program under Windows.  Both files
       may be freely distributed (royalty free).

       You need to install DOSXMSF.EXE either in the same directory as the
       FORTRAN program or in a directory that is in your DOS PATH
       environment variable.  To install DOSXNT.386, you need the
       following entry in the SYSTEM.INI file under the [386Enh] section:

           device=C:\F32\BIN\dosxnt.386

       (C:\F32 may be different if you installed PowerStation in
        a different directory.)

 6. Q. I am compiling and linking in two separate steps from the
       command-line. When I go to run the executable file I get the
       error:

          This program cannot be run in DOS mode.

       What did I do wrong?

    A. Because PowerStation applications use an MS-DOS-extender, there
       is an additional step required to allow the executable to run
       under MS-DOS. You need to run the BINDMSF.EXE utility on your
       executable to install a small piece of code called a
       "stub-loader." For example, for an executable file
       called MYEXE.EXE, you would use the command line:

          BINDMSF MYEXE.EXE

 7. Q. When I run my program on a machine with a large amount of memory
       I get no error. But when I run it on a machine with less memory
       I get the run-time error:

          DOSXMSF : fatal error DX1020: unhandled exception: Page fault

    A. This is an MS-DOS-extender error that indicates that the program
       attempted to access memory that was not owned or allocated by
       the program. A common cause of this error is an array subscript
       that goes beyond the array's declared range. An attempt to access
       an array beyond the range of the array does not cause the
       DX1020 error to occur immediately. On machines with less
       physical memory (RAM), this error occurs more often because any
       attempt to access virtual memory on the disk will cause an
       initial nonexception page fault; however, if the request for memory
       is invalid, the DX1020 error will occur. Check the code
       carefully to be sure that all array access uses an array index
       within the proper range. Also, use the /4Yb compiler option to
       install additional debug error checking. This option can be set
       in the Visual Workbench by choosing Project from the Options
       menu and then choosing the Compiler button. Then, select the
       category Language Extensions and the Extended Error Handling option.

Compile Time Errors

 8. Q. When I compile with the /Zi option from the command line I get
       the following error:

           Usage: cvpack [-p] [-help] exefile
           LINK32() : warning LNK4527: CVPACK error

    A. Check your path and make sure that F32\BIN is the first directory
       in the path.  If you have other language products in your path
       before F32\BIN, the version of CVPACK.EXE that is used by
       LINK32.EXE may be incorrect.  If you type CVPACK at the DOS
       command line and press ENTER, you should see the following
       message:

         Microsoft (R) Debugging Information Compactor  Version 4.25.00
         Copyright (c) Microsoft Corp 1987-1993. All rights reserved.

       If you see a version number earlier that the one above, you
       need to correct the order of directories in your path so that
       F32\BIN is first.

 9. Q. I get linker errors that start with LNK. Where can I find more
       information about these errors?

    A. The LINK32 errors are available in the ERRORS.HLP Windows Help
       file and in the ERRORS.TXT ASCII text file. Access to
       ERRORS.HLP is available only from Windows. You can access
       this file from the Visual Workbench by selecting the Help menu
       and choosing Search For Help On. Type in "errors" in the Help
       Keyword text field and then choose OK. You can also access the
       file by opening the File Manager and double-clicking the
       ERRORS.HLP file in the \F32\HELP directory.

       The ERRORS.TXT file is in the F32\README directory. It can be
       read or printed from MS-DOS or Windows like any other text
       file.

Run Time Errors

10. Q. I have some FORTRAN code that reads a file that used to work
       with Microsoft FORTRAN version 5.1. The code now receives an
       error when it is almost finished reading the file. What is the
       problem?

    A. Earlier versions of Microsoft FORTRAN had some limited support
       for end-of-file handling using the "CTRL+Z" character. This
       character, which is number 26 in the ASCII table, is placed in
       files by some editors and other file-creation utilities.
       FORTRAN PowerStation no longer treats this character as a
       special character and gives an error message when attempting to
       read it into a variable. Make sure that files being read by
       FORTRAN PowerStation programs do not contain this character,
       which resembles a small right-pointing arrow when displayed by
       editors capable of displaying all characters in a file.

11. Q. I am getting some errors that begin with DX. Where can I get
       more information on these errors?

    A. The DX errors are Phar Lap DOS-extender errors and are
       available in the ERRORS.HLP Windows Help file and in the
       ERRORS.TXT ASCII text file. Access to ERRORS.HLP is available
       only from Windows. You can access this file from the Visual
       Workbench by selecting the Help menu and choosing Search For
       Help On. Type in "errors" in the Help Keyword text field and
       then choose OK. You can also access the file by opening the
       File Manager and double-clicking the ERRORS.HLP file in the
       \F32\HELP directory.

       The ERRORS.TXT file is in the F32\README directory. It can be
       read or printed from MS-DOS or Windows like any other text
       file.

12. Q. Why do I get a "General protection fault?"

    A. General protection faults are typically caused by attempting to
       access memory beyond the scope of your program.  This is typically
       caused by running off the end of an array (accessing element 100 of
       a 10 element array).

       Protection faults can also be caused by problems in the runtime
       library, although this is more rare.  If it appears that a runtime
       intrinsic or routine is causing a protection fault, check the
       arguments to be sure they are valid.  Microsoft currenlty knows
       of one such cause for protection faults: using EOF or BACKSPACE
       on an unopened unit number.  To workaround this problem, be sure
       that all unit numbers passed to EOF or BACKSPACE have been
       previously opened.

13. Q. Why doesn't CTRL+C or CTRL+BREAK terminate my program?

    A. You are probably using GetCharQQ. This intrinsic returns the ASCII
       value 03 when these key combinations are used, instead of
       terminating the program.

Using The Visual Workbench

14. Q. When I attempt to build a project using the PowerStation Visual
       Workbench, I get an error dialog box that says:

         Internal error. Timed out waiting for "C:\F32\BIN\WINTEE.EXE"
         to start.  Please contact Microsoft Product Support Services.

       What can I do to correct this problem?

    A. The problem is probably caused by a Windows configuration
       setting that causes Windows-based applications to get 100
       percent of the computer's processing time whenever a
       Windows-based application is active. This causes MS-DOS-based
       applications to fail to run whenever a Windows-based
       application is running. To correct the problem, from the Main
       program group, start the Control Panel application. Choose the
       "386 Enhanced" icon. Be sure that the Exclusive In Foreground
       check box is not checked. Choose OK and close the Control Panel
       application. The problem should now be corrected.

15. Q. When I try to use the PowerStation Visual Workbench browser I
       get the error:

          Cannot open the browser database file. Share is not installed
          or is not active for this drive.

       How can I avoid this error?

    A. The Visual Workbench browse utility requires that SHARE.EXE, an
       MS-DOS file access arbitration utility, is installed prior to
       starting Windows. The easiest way to do this is put the
       statement "C:\DOS\SHARE" in your AUTOEXEC.BAT file (assuming
       you have installed MS-DOS into C:\DOS). Make sure that you put
       the SHARE command before any line in the AUTOEXEC.BAT that says
       "win" or "dosshell."

16. Q. When I use the PowerStation's Visual Workbench to compile and
       build programs, it takes a very long time to compile and link.
       What can I do to improve this process?

    A. The system requirements state that you must be running MS-DOS
       and that you need 4 megabytes (MB) of available memory, with 6
       MB or more preferred. If you have only 4 MB of physical memory,
       then under Windows you probably have less than 4 MB of physical
       memory available and are intensively using your Windows swap
       file. Make sure that your swap file is as large as it can be
       and that you are using a permanent swap file. You can also
       decrease the amount of memory that SMARTDRV or any other disk
       caching utility is consuming. The most effective solution is to
       add more physical memory to your machine.

17. Q. If I have created a project, how do I delete it and its
       associated files?

    A. If you have created a project named TEST and want to delete it
       and all of its associated files, you need to delete

           TEST.FMK   This is the project makefile.
           TEST.FPW   This is the project status file.
           TEST.WSP   This is the project workspace file.

       The easiest way to maintain projects is to have a single
       project in a directory.  After saving your source code, you can
       delete the entire directory to delete the project.

18. Q. How can I get the editor in the Visual Workbench to do column
       selections or use macros?

    A. These are not currently features that are available in the
       FORTRAN Visual Workbench editor.  If you have a DOS editor that
       has these capabilities, it is often convenient to add the DOS
       editor to the Tools menu in FORTRAN Visual Workbench. You can
       do this by selecting the Options.Tools menu item and clicking
       the Add button.  When you find the DOS editor executable file,
       select it and click OK.  In the resulting dialog box in the
       Arguments text entry line, type

           $file

       and click the OK button.  You will now have an entry under
       your Tools menu that, when selected, will bring up your DOS
       editor with the file that is currently in the active window in
       FORTRAN Visual Workbench.  You can then edit your file, and
       when you exit from the DOS editor you will return to FORTRAN
       Visual Workbench.  The FORTRAN Visual Workbench will then allow
       you to reload the edited file.

19. Q. I created a project with the PowerStation Visual Workbench and
       several of my source files have include statements. When I
       modify one of these include files and then build the project,
       the source file does not recompile. Why isn't there a build
       dependency for the include files?

    A. You are probably using the $INCLUDE metacommand and not the
       INCLUDE statement in your source files. The Visual Workbench
       build engine does not create dependencies for files on $INCLUDE
       metacommands. Change all the metacommands to FORTRAN statements
       and then force the project to rescan dependencies by selecting
       Project and then choosing Scan All Dependencies.

20. Q. Sometimes when I start up the PowerStation Visual Workbench I
       can't see some of the windows I had set up when I closed it;
       they are listed in the Windows menu, but I can't see or access
       them. What happened and how can I see my windows again?

    A. You probably had the inaccessible child windows minimized
       within the Visual Workbench frame and then closed the Visual
       Workbench while it was itself minimized. This can easily happen
       if you exit Windows when the Visual Workbench is still active
       and minimized. To avoid this problem, never exit the Visual
       Workbench application when it is in a minimized state. You can
       make any inaccessible child windows visible by selecting the
       Window menu and choosing Cascade.

21. Q. When I use the PowerStation debugger under the Visual
       Workbench, it sometimes proceeds very slowly and occasionally
       performs erratically. What can I do to improve this situation?

    A. The system requirements for FORTRAN PowerStation state that
       the product requires 4 MB of available memory. This is an
       absolutely minimum requirement. Under Windows, the PowerStation
       tools may not perform optimally without an adequate size
       Windows swap file. Make sure that you have the largest Windows
       swap file possible. The most effective way to improve
       performance of the PowerStation tools is to add physical memory
       (RAM) to your machine. For optimal performance while debugging,
       make sure that you are not running any other applications.
       In particular, make sure that you are not running any other
       MS-DOS applications or MS-DOS prompts.

Mixed Language Programming

22. Q. I have a number of assembly-code modules that I would like to
       use with FORTRAN PowerStation.  How can I do this?

    A. 16-bit assembly code must be modified to work with 32-bit
       applications.  The assembly code will need to be converted to
       use a 32-bit flat memory model and, in some cases, will have to
       adjust for the fact that the application is running in 32-bit
       protected mode and not in real mode.  Object modules produced
       by assemblers will probably be OMF-type files.  They will need
       to be converted to COFF-type object modules. It is recommended
       that MASM 6.1 (or later) be used for 32-bit programming.
       Please consult your MASM manual and Chapter 18 of the FORTRAN
       PowerStation User's Guide.

       An extended example of 32-bit MASM programming is provided with
       the GRDEMO sample project in the F32\SAMPLES\GRAPHICS\DEMO
       directory.  The file MOUSE.ASM is a MASM routine used in the sample.
       The comments in this file include tips on assembly language
       programming.

23. Q. I used to do mixed-language programming with high-level
       languages (such as C) and FORTRAN.  Can I do this with
       FORTRAN PowerStation?

    A. Yes.  Object modules compiled with Microsoft Visual C++
       32-bit edition, can be linked with FORTRAN PowerStation.
       For more details, please see the information in the
       F32\SAMPLES\MIXED_C directory.  16-bit C/C++ object modules
       (created by earlier versions of Microsoft C or Visual C++
       16-bit edition) can not be linked with 32-bit FORTRAN;
       these must be recompiled with a 32-bit compiler.

       For complete support of mixed 32-bit C and FORTRAN programming,
       Microsoft offers development tools for Windows NT: Visual C++
       32-bit edition and FORTRAN PowerStation 32 for Windows NT.
       Microsoft Windows NT is a true 32-bit operating system
       (in contrast to a 32-bit DOS extender on top of 16-bit
       MS-DOS) allowing full integration between the two languages.
       Mixing of C and FORTRAN is also possible in a pure 16-bit world,
       such as MS-DOS or Windows, with Microsoft FORTRAN 5.1 and Microsoft
       Visual C++ 16-bit edition.

Differences from FORTRAN Version 5.1

24. Q. Why is a program sometimes faster when compiled with FORTRAN 5.1?

    A. In some cases, code compiled with optimization disabled (-Od)
       may be faster with FORTRAN 5.1.  We chose to provide a fast
       compile (-Od, default) and a fast execute (-Ox) option.
       FORTRAN 5.1 did some optimization even with -Od, while FORTRAN
       PowerStation does not.  Also, by default, FORTRAN PowerStation
       does no optimization, but -Ox is the default when using
       FORTRAN 5.1.  Since the default optimization is different between
       these versions, it is important to be careful and compare using
       the same level of optimization.

25. Q. In FORTRAN version 5.1 there is an option, /Fs, to create a
       source listing file. Can I do this with PowerStation?

    A. No, this PowerStation product does not support the source
       listing option. Most of the functionality of source listings is
       available though different options in the Visual Workbench.
       Source browser information, for example, provides a visual
       means of locating variable definitions and references.


Additional reference words: 1.00a q&a
KBCategory: kbreadme
KBSubcategory:


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 21, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.