{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "PACKING  LST",
              "size": 12415,
              "date": "1989-03-28",
              "time": "15:16"
            },
            {
              "name": "FLOPSET  DOC",
              "size": 4647,
              "date": "1989-03-27",
              "time": "15:36"
            },
            {
              "name": "SETUP    DAT",
              "size": 48757,
              "date": "1989-03-23",
              "time": "11:21"
            },
            {
              "name": "SETUP    EXE",
              "size": 41862,
              "date": "1989-03-23",
              "time": "11:24"
            },
            {
              "name": "LIBBUILD BAT",
              "size": 17490,
              "date": "1989-01-16",
              "time": "11:18"
            },
            {
              "name": "FL       ERR",
              "size": 1287,
              "date": "1988-08-30",
              "time": "15:38"
            },
            {
              "name": "FL       EXE",
              "size": 37735,
              "date": "1989-03-29",
              "time": "17:29"
            },
            {
              "name": "FL       HLP",
              "size": 2212,
              "date": "1989-02-07",
              "time": "9:43"
            },
            {
              "name": "F3       EXE",
              "size": 152070,
              "date": "1989-03-29",
              "time": "12:28"
            },
            {
              "name": "README   DOC",
              "size": 23136,
              "date": "1989-04-24",
              "time": "11:10"
            },
            {
              "name": "MSHERC   COM",
              "size": 6749,
              "date": "1988-11-17",
              "time": "22:16"
            },
            {
              "name": "F3S      EXE",
              "size": 99201,
              "date": "1989-03-29",
              "time": "12:28"
            },
            {
              "name": "F1       EXE",
              "size": 194699,
              "date": "1989-04-10",
              "time": "14:27"
            },
            {
              "name": "F1       ERR",
              "size": 20868,
              "date": "1989-04-10",
              "time": "14:14"
            },
            {
              "name": "F23      ERR",
              "size": 3025,
              "date": "1989-03-28",
              "time": "10:47"
            },
            {
              "name": "F2       EXE",
              "size": 210858,
              "date": "1989-03-27",
              "time": "10:43"
            },
            {
              "name": "LINK     EXE",
              "size": 122371,
              "date": "1989-03-21",
              "time": "16:56"
            }
          ]
        }
      ]
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "EXEHDR   EXE",
              "size": 30945,
              "date": "1989-04-12",
              "time": "13:05"
            },
            {
              "name": "LIB      EXE",
              "size": 52424,
              "date": "1989-03-23",
              "time": "13:31"
            },
            {
              "name": "IMPLIB   EXE",
              "size": 30327,
              "date": "1989-01-30",
              "time": "16:09"
            },
            {
              "name": "NMAKE    EXE",
              "size": 87341,
              "date": "1989-03-23",
              "time": "16:47"
            },
            {
              "name": "CVPACK   EXE",
              "size": 49191,
              "date": "1989-03-23",
              "time": "17:11"
            },
            {
              "name": "ILINK    EXE",
              "size": 98455,
              "date": "1989-03-21",
              "time": "16:39"
            },
            {
              "name": "ILINKSTB OVL",
              "size": 4214,
              "date": "1989-01-16",
              "time": "7:41"
            },
            {
              "name": "CV       EXE",
              "size": 258012,
              "date": "1989-03-23",
              "time": "12:30"
            },
            {
              "name": "CV       HLP",
              "size": 19071,
              "date": "1988-09-19",
              "time": "15:39"
            },
            {
              "name": "MOUSE    COM",
              "size": 14419,
              "date": "1989-01-30",
              "time": "14:47"
            },
            {
              "name": "SETENV   EXE",
              "size": 10982,
              "date": "1989-03-23",
              "time": "13:32"
            },
            {
              "name": "EXEMOD   EXE",
              "size": 12502,
              "date": "1989-03-23",
              "time": "13:33"
            },
            {
              "name": "PATCH87  EXE",
              "size": 4206,
              "date": "1988-02-12",
              "time": "14:00"
            },
            {
              "name": "M        EXE",
              "size": 141830,
              "date": "1989-04-20",
              "time": "10:37"
            },
            {
              "name": "M        HLP",
              "size": 55080,
              "date": "1989-04-20",
              "time": "11:50"
            },
            {
              "name": "TOOLS    PRE",
              "size": 1701,
              "date": "1989-04-06",
              "time": "18:22"
            },
            {
              "name": "BRIEF    INI",
              "size": 9507,
              "date": "1989-04-06",
              "time": "18:22"
            },
            {
              "name": "EPSILON  INI",
              "size": 982,
              "date": "1989-04-06",
              "time": "18:22"
            },
            {
              "name": "QUICK    INI",
              "size": 1062,
              "date": "1989-04-06",
              "time": "18:22"
            },
            {
              "name": "WS       MXT",
              "size": 1948,
              "date": "1989-04-17",
              "time": "16:33"
            },
            {
              "name": "MHELP    MXT",
              "size": 21478,
              "date": "1989-04-17",
              "time": "16:36"
            },
            {
              "name": "EXP      EXE",
              "size": 35141,
              "date": "1989-01-31",
              "time": "7:28"
            },
            {
              "name": "UNDEL    EXE",
              "size": 36731,
              "date": "1989-01-31",
              "time": "7:26"
            },
            {
              "name": "BIND     EXE",
              "size": 43158,
              "date": "1988-12-07",
              "time": "15:16"
            }
          ]
        }
      ]
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "87       LIB",
              "size": 4633,
              "date": "1989-03-28",
              "time": "14:46"
            },
            {
              "name": "EM       LIB",
              "size": 16921,
              "date": "1989-03-28",
              "time": "14:45"
            },
            {
              "name": "LIBH     LIB",
              "size": 13673,
              "date": "1988-03-31",
              "time": "15:13"
            },
            {
              "name": "LCLIB1   LIB",
              "size": 22931,
              "date": "1989-03-28",
              "time": "9:12"
            },
            {
              "name": "LCLIB2   LIB",
              "size": 18835,
              "date": "1989-03-28",
              "time": "9:13"
            },
            {
              "name": "LLIBFP   LIB",
              "size": 68869,
              "date": "1989-03-28",
              "time": "13:31"
            },
            {
              "name": "LLIBFA   LIB",
              "size": 87125,
              "date": "1989-03-28",
              "time": "13:33"
            },
            {
              "name": "LLIBFOR  LIB",
              "size": 81797,
              "date": "1989-04-18",
              "time": "15:55"
            },
            {
              "name": "LLIBFOR1 LIB",
              "size": 19105,
              "date": "1989-03-28",
              "time": "9:12"
            },
            {
              "name": "LLIBFOR2 LIB",
              "size": 18079,
              "date": "1989-03-28",
              "time": "9:13"
            },
            {
              "name": "NBUILD   OBJ",
              "size": 624,
              "date": "1989-02-21",
              "time": "10:39"
            },
            {
              "name": "MCLIB1   LIB",
              "size": 21905,
              "date": "1989-03-28",
              "time": "9:08"
            },
            {
              "name": "MCLIB2   LIB",
              "size": 18323,
              "date": "1989-03-28",
              "time": "9:09"
            },
            {
              "name": "MLIBFP   LIB",
              "size": 67331,
              "date": "1989-03-28",
              "time": "13:28"
            },
            {
              "name": "MLIBFA   LIB",
              "size": 86101,
              "date": "1989-03-28",
              "time": "13:30"
            },
            {
              "name": "MLIBFOR  LIB",
              "size": 79749,
              "date": "1989-04-18",
              "time": "15:51"
            },
            {
              "name": "MLIBFOR1 LIB",
              "size": 18593,
              "date": "1989-03-28",
              "time": "9:08"
            },
            {
              "name": "MLIBFOR2 LIB",
              "size": 18079,
              "date": "1989-03-28",
              "time": "9:09"
            },
            {
              "name": "API      LIB",
              "size": 74752,
              "date": "1988-12-28",
              "time": "15:16"
            },
            {
              "name": "APILMR   OBJ",
              "size": 112,
              "date": "1988-12-28",
              "time": "10:04"
            },
            {
              "name": "DOSCALLS LIB",
              "size": 31232,
              "date": "1988-12-28",
              "time": "15:10"
            },
            {
              "name": "GRAPHICS LIB",
              "size": 76467,
              "date": "1989-03-24",
              "time": "20:56"
            },
            {
              "name": "FGRAPH   FD",
              "size": 11078,
              "date": "1989-03-07",
              "time": "17:38"
            },
            {
              "name": "FGRAPH   FI",
              "size": 13413,
              "date": "1989-03-07",
              "time": "17:38"
            },
            {
              "name": "COURB    FON",
              "size": 19088,
              "date": "1987-11-12",
              "time": "13:23"
            },
            {
              "name": "HELVB    FON",
              "size": 50880,
              "date": "1987-11-12",
              "time": "13:25"
            },
            {
              "name": "MODERN   FON",
              "size": 7584,
              "date": "1987-11-12",
              "time": "13:26"
            },
            {
              "name": "ROMAN    FON",
              "size": 11120,
              "date": "1987-11-12",
              "time": "13:27"
            },
            {
              "name": "SCRIPT   FON",
              "size": 10304,
              "date": "1987-11-12",
              "time": "13:27"
            },
            {
              "name": "TMSRB    FON",
              "size": 45936,
              "date": "1987-11-12",
              "time": "13:27"
            }
          ]
        }
      ]
    },
    "4": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "SOURCE   DOC",
              "size": 2717,
              "date": "1989-03-28",
              "time": "15:22"
            },
            {
              "name": "EMOEM    ASM",
              "size": 12125,
              "date": "1988-02-12",
              "time": "14:00"
            },
            {
              "name": "F1L      EXE",
              "size": 252360,
              "date": "1989-04-10",
              "time": "14:49"
            },
            {
              "name": "CVP      EXE",
              "size": 235312,
              "date": "1989-03-21",
              "time": "16:09"
            },
            {
              "name": "CVP      HLP",
              "size": 22192,
              "date": "1988-09-16",
              "time": "15:25"
            },
            {
              "name": "DIFFHLP  DEF",
              "size": 65,
              "date": "1988-04-14",
              "time": "12:07"
            },
            {
              "name": "FDLLOBJS CMD",
              "size": 2151,
              "date": "1989-01-31",
              "time": "10:00"
            },
            {
              "name": "FDLLOBJS DEF",
              "size": 6219,
              "date": "1988-11-19",
              "time": "11:00"
            },
            {
              "name": "LLIBFMT  LIB",
              "size": 214533,
              "date": "1989-04-18",
              "time": "15:59"
            }
          ]
        }
      ]
    }
  },
  "desc_file": "README.DOC",
  "desc_text": "==============================<README.DOC file>==============================\r\n\r\n\r\nRelease Notes for the Microsoft(R) FORTRAN Optimizing Compiler, Version 5.00\r\n\r\n                (C) Copyright Microsoft Corporation, 1989\r\n\r\nThis file contains information about Version 5.00 of the Microsoft(R) FORTRAN\r\nOptimizing Compiler and libraries for MS-DOS(R) and the Microsoft Operating\r\nSystem/2 (MS(R) OS/2). It also contains information about the utility\r\nprograms supplied with this product.\r\n\r\nThis file is more up-to-date than the manuals. If the manuals conflict with\r\nthis file, you should assume this file is correct.\r\n\r\nMicrosoft updates language documentation when it is reprinted, so some of the\r\ninformation in this file may already be in your manuals.\r\n\r\nMicrosoft documentation uses the term \"OS/2\" to refer to the OS/2 systems -- \r\nMicrosoft Operating System/2 (MS OS/2) and IBM(R) OS/2. Similarly, the term \r\n\"DOS\" refers to both the MS-DOS and IBM Personal Computer DOS operating\r\nsystems.  The name of a specific operating system is used when it is necessary\r\nto note features that are unique to that system.\r\n\r\n\r\n\r\n====================<Requesting Assistance from Microsoft>===================\r\n\r\n                              (1-206-454-2030)\r\n\r\nWhen reporting problems, the following information will help Microsoft\r\nresolve the problem quickly:\r\n\r\n*    The compiler version number (from the logo that appears on the screen\r\n     when you invoke the compiler with the FL command).\r\n\r\n*    The version of DOS you are running. Use the DOS \"VER\" command.\r\n\r\n*    Your system configuration (the machine, total memory, and total free\r\n     memory at compiler execution time). Use the DOS \"CHKDSK\" command.\r\n\r\n*    The command line used for compilation.\r\n\r\n*    All object files/libraries used to link, if necessary. You need not\r\n     use standard object files/libraries, but please specify which ones you\r\n     did use.\r\n\r\nPlease have this information ready when you call.\r\n\r\n\r\n\r\n=================================<Contents>==================================\r\n\r\nThis file has five parts:\r\n\r\n     Part    Note\r\n     ----    ----\r\n     1       Additional information about the SETUP program\r\n     2       Changes and additions to \"Microsoft FORTRAN Reference\"\r\n     3       Changes and additions to \"Microsoft FORTRAN Advanced Topics\"\r\n     4       Changes and additions to \"Microsoft Editor User's Guide\"\r\n     5       Changes and additions to \"Microsoft CodeView(R) and Utilities\r\n             User's Guide\"\r\n\r\n\r\n\r\n=========================<Part 1: The SETUP Program>=========================\r\n\r\n\r\nDisk Space for Additional Libraries\r\n-----------------------------------\r\n\r\n    Each library for a different combination of memory model and floating-\r\n    point arithmetic requires up to 220K of disk space. If you intend to\r\n    create more than one library when running SETUP, be sure to take into\r\n    account the additional disk space required.\r\n\r\n\r\nStandard and High-Density Disks\r\n-------------------------------\r\n\r\n    If you select full installation for OS/2 Protected Mode (as opposed to\r\n    creating only protected-mode libraries), SETUP prompts you to insert\r\n    high-density disks. See PACKING.LST on the SETUP disk for the specific\r\n    disk layout.\r\n\r\n\r\nFile Facility Program\r\n---------------------\r\n\r\n    SETUP does not support the IBM File Facility utility program (or any\r\n    similar programs that search for data files). They should be removed\r\n    before running SETUP.\r\n\r\n\r\n\r\n====================<Part 2: Microsoft FORTRAN Reference>====================\r\n\r\n\r\n$NOTRUNCATE Metacommand\r\n-----------------------\r\n\r\n    $NOTRUNCATE is now the default. As a result, it is possible to create\r\n    variable names, common block names, and function or subroutine names that\r\n    are longer than the 26-character space allotted in a .LST file. If these\r\n    identifiers do not differ in the first 26 characters, the .LST file shows\r\n    them with the same name.\r\n\r\n\r\nNew NINT Functions\r\n------------------\r\n\r\n    Three NINT intrinsic functions have been added: NINT1, NINT2, and NINT4.\r\n    These return integer values of one, two, and four bytes respectively.\r\n\r\n\r\nThe /4I2 Switch and the INT and NINT Functions\r\n----------------------------------------------\r\n\r\n    The length of the value returned by the INT and NINT intrinsic functions\r\n    is determined by the integer storage switch: two bytes if /4I2 is used,\r\n    four bytes if /4I4 (the default) is used.\r\n\r\n    If you want these functions to return a value with a length different\r\n    from the length set by the integer storage switch, use INT1, INT2, or\r\n    INT4 instead of INT, and use NINT1, NINT2, or NINT4 instead of NINT.\r\n\r\n\r\nInteraction of AUTOMATIC Variables and the Large Memory Model\r\n-------------------------------------------------------------\r\n\r\n    The $LARGE metacommand overrides the /4Ya switch or an AUTOMATIC command\r\n    without specified variables. All arrays are made FAR or HUGE, rather than\r\n    being placed on the stack.\r\n\r\n\r\n80387 Coprocessor Instructions\r\n------------------------------\r\n\r\n    The run-time libraries recognize the presence of an 80387 coprocessor. If\r\n    you are not using the alternate math package, the library uses the 80387\r\n    SIN and COS instructions, rather than deriving sines and cosines from the\r\n    FPTAN instruction.\r\n\r\n\r\nArray Conformity in Functions and Subroutines\r\n---------------------------------------------\r\n\r\n    A formal array argument in a subroutine or function does not have to have\r\n    the same number of dimensions or total size as the actual array argument\r\n    passed to it. This permits the procedure to contain a formal array that\r\n    is as large as you think you will ever need; the calling program can then\r\n    pass any array of the same size or smaller.\r\n\r\n    Note, however, that if the formal and actual dimensions do not match in\r\n    quantity and size, the formal array elements do not point to the same\r\n    memory locations as the actual array elements with the same subscripts.\r\n    In this case, your program has to calculate the correct subscripts.\r\n\r\n\r\nReading and Writing RECORD (structure) Variables\r\n------------------------------------------------\r\n\r\n    Section 1.4 of the Microsoft FORTRAN Reference, \"Records,\" states that\r\n    structure variables may not be written as a whole to files. This is true\r\n    only for formatted reads and writes. A whole structure variable may be\r\n    written or read in unformatted form.\r\n\r\n\r\n\"Out of Memory\" Error Message\r\n-----------------------------\r\n\r\n    This compiler error does not have an error number. It occurs when the\r\n    FL program does not have sufficient memory, as in the following cases:\r\n\r\n    1. You used wildcard characters to specify the files to be compiled\r\n       (for example, FL *.FOR) and there were too many files. The exact\r\n       number of files that can be handled depends on the amount of system\r\n       memory.\r\n    2. The computer did not have enough free memory. This may occur when\r\n       other processes are running under Microsoft Windows or OS/2.\r\n\r\n\r\nAdditional Compiler Error Messages\r\n----------------------------------\r\n\r\n    F2399: <name> : COMMON (or EQUIVALENCE) : automatic variable illegal.\r\n\r\n    A variable previously declared as AUTOMATIC cannot appear in a COMMON\r\n    block or an EQUIVALENCE statement.\r\n\r\n\r\n    F4187: Debugging information exceeds 64K - extra ignored.\r\n\r\n    There was more debugging information than could fit in the allotted 64K\r\n    space. The additional information (which is usually symbols) was\r\n    discarded.\r\n\r\n\r\nRevised Compiler Error Message\r\n------------------------------\r\n\r\n    The <attribute> in error message F2384 can be \"common block\" or\r\n    \"equivalenced,\" in addition to ALLOCATABLE, EXTERN, FAR, or HUGE.\r\n\r\n\r\nLinker Path Specification\r\n-------------------------\r\n\r\n    The /link option does not allow you to specify the linker's path. FL\r\n    assumes the linker is in the same directory as the compiler.\r\n\r\n\r\nLinker EXEPACK Option\r\n---------------------\r\n\r\n    You can create a packed executable (.EXE) file by specifying the /E\r\n    (EXEPACK) linker option.\r\n\r\n\r\nLinker Error Message Corrections\r\n--------------------------------\r\n\r\n    error L1006   /STACK : stack size exceeds 65535 bytes\r\n\r\n    The value given as a parameter to the /STACK option exceeds the maximum.\r\n\r\n\r\n    error L1041   resident-name table overflow\r\n\r\n    The resident-name table exceeds 65,534 bytes. (An entry in the resident-\r\n    name table is made for each exported routine without a designated\r\n    ordinal, or with an ordinal if RESIDENTNAME is given. An entry consists\r\n    of the name plus three bytes of information. The first entry is the\r\n    module name.)\r\n\r\n\r\n    error L1042   nonresident-name table overflow\r\n\r\n    The nonresident-name table exceeds 65,534 bytes. (An entry in the\r\n    nonresident-name table is made for each exported routine which designates\r\n    an ordinal and does not say RESIDENTNAME. The entry consists of the name\r\n    plus three bytes of information. The first entry is the DESCRIPTION\r\n    statement.)\r\n\r\n    Errors L1041 and L1042 can be handled by reducing the number of exported\r\n    routines, or by changing some of them to resident status.\r\n\r\n\r\nReserved File Names\r\n-------------------\r\n\r\n    The following file names are reserved for operating system devices. If\r\n    one of these names is specified in the FILE= option of a FORTRAN OPEN\r\n    statement, the connection is always to the device, even if a disk file\r\n    with the same name already exists.\r\n\r\n    File Name     Device\r\n    ---------     ------\r\n\r\n    AUX           communications port (COM1)\r\n    COM1          communications port\r\n    CON           keyboard and screen\r\n    ERR           standard error output (screen)\r\n    LINE          communications port (COM1)\r\n    LPT1          printer\r\n    NUL           null device\r\n    PRN           printer (LPT1)\r\n    USER          keyboard and screen\r\n\r\n    You can use READ and WRITE statements (as appropriate) to access these\r\n    devices, and CLOSE statements to disconnect them, just as you would with\r\n    other files. FORTRAN carriage-control characters are recognized for\r\n    these devices.\r\n\r\n    We recommend that you not use the names of these devices for disk files. \r\n\r\n\r\nFL Switch Default Values\r\n------------------------\r\n\r\n    If no switches appear in the FL command line, the source code is compiled\r\n    with the following defaults:\r\n\r\n    1. The Large memory model is used\r\n    2. The 8086/8088 instruction set is used\r\n    3. 8087/287/387 in-line instructions are used for floating-point\r\n       calculations\r\n    4. Variable, subroutine, or function names are not truncated\r\n    5. All integer and single-precision floating-point numbers are four bytes\r\n    6. All Microsoft extensions to FORTRAN are enabled\r\n    7. FORTRAN 66-style DO statements are disabled\r\n    8. Full optimization is performed\r\n    9. Debugging (extended run-time error handling) is disabled\r\n\r\n    Any metacommands in a source code file override these defaults.\r\n\r\n\r\nDefault Stack Size\r\n------------------\r\n\r\n   The default stack size is 2,048 bytes (hexadecimal #800). This value can\r\n   be changed with the /F option when running FL, or the /STACK option when\r\n   running LINK.\r\n\r\n\r\nCompiling Extremely Large Programs\r\n----------------------------------\r\n\r\n    This release has an additional disk labeled HIGH-CAPACITY COMPILER,\r\n    which contains an alternate form of the Compiler Pass 1 named F1L.EXE.\r\n    SETUP does not install F1L.EXE; you must copy it from the distribution\r\n    disk if you need it.\r\n\r\n    This compiler pass is used to compile programs that receive error message\r\n    \"F1901: program too large for memory.\" The F1L.EXE pass is invoked by\r\n    adding the /B1 option to the FL command line, as follows:\r\n\r\n        FL  /B1  <path>\\F1L.EXE  <sourcefile>.FOR\r\n\r\n    where <path> is the path (including drive and directory) where F1L.EXE\r\n    resides, and <sourcefile> is the name of the FORTRAN source file you are\r\n    compiling. Alternatively, you can rename F1L.EXE to F1.EXE to make the\r\n    high-capacity version the default.\r\n\r\n\r\n\r\n=================<Part 3: Microsoft FORTRAN Advanced Topics>=================\r\n\r\n\r\nPage     Note\r\n----     ----\r\n 191     The plus sign (+) used as a continuation character in front of the\r\n         WRITE statement should be removed.\r\n\r\n\r\nHuge Arrays in Bound Programs under DOS\r\n---------------------------------------\r\n\r\n    If a huge array is initialized with DATA statements, and the program is\r\n    bound, the array will not be properly initialized when the program is run\r\n    under DOS or OS/2 real mode. The array is properly initialized when the\r\n    program runs under OS/2 protected mode. This is due to a problem with the\r\n    OS/2 version 1.1 API.LIB.\r\n\r\n    There are two workarounds:\r\n\r\n    1. Initialize the huge array with assignment statements.\r\n\r\n    2. Instead of binding the program, build a \"dual-mode\" executable file.\r\n\r\n       Compile and link your program for real mode. Then insert the following\r\n       statement in your definitions file (or create a definitions file with\r\n       this statement):\r\n\r\n       STUB '<file>.EXE'\r\n\r\n       where <file> is the base name of the real-mode executable file you\r\n       created.\r\n\r\n       Compile and link the program a second time for protected mode,\r\n       specifying this definitions file. Be sure to select a different base\r\n       name for the .EXE file, so that this protected-mode version will not\r\n       overwrite the real-mode version.\r\n\r\n       The resulting executable file now contains both a real-mode and a\r\n       protected-mode program (rather than a single bound program). The\r\n       appropriate program is automatically loaded at run time.\r\n\r\n\r\nHercules(R) Graphics Support\r\n----------------------------\r\n\r\n    This release of Microsoft FORTRAN supports the Hercules(R) display\r\n    adapter. This is a brief summary of the feature:\r\n\r\n    1. The Hercules Graphics Card, Graphics Card Plus, InColor(TM) Card, and\r\n       100%-compatible cards are supported.\r\n\r\n    2. Only monochrome text and graphics are supported. The screen resolution\r\n       is 720 x 348 pixels. The text dimensions are 80 columns by 25 rows,\r\n       with a 9 x 14 character box. The bottom two scan lines of the 25th row\r\n       are not visible.\r\n\r\n    3. You must load the Hercules driver MSHERC.COM before running your\r\n       program. Place this driver in one of the directories specified in the\r\n       system PATH environment variable, then type MSHERC at the command line\r\n       prompt. You can also add this command to your AUTOEXEC.BAT file.\r\n\r\n       If you have both a Hercules monochrome card and a color video card you\r\n       should invoke MSHERC.COM with the /H (/HALF) option. The /H option\r\n       limits the driver to a single graphics page, so that the two cards do\r\n       not attempt to use the same memory.\r\n\r\n       If you develop commercial applications that use graphics, you should\r\n       include MSHERC.COM with your products. A license is not required.\r\n       (MSHERC.COM is identical to QBHERC.COM, the Hercules driver supplied\r\n       with Microsoft QuickBASIC 4.0 and Microsoft BASIC Compiler 6.0.)\r\n\r\n    4. To use a mouse, you must follow the special instructions for Hercules\r\n       cards in the Microsoft Mouse Programmer's Reference Guide. (This\r\n       product must be ordered separately. It is not supplied with Microsoft\r\n       FORTRAN or the Microsoft Mouse package.)\r\n\r\n    5. In the file FGRAPH.FD, the manifest constant $HERCMONO sets the video\r\n       mode to 720 x 348 monochrome for Hercules graphics, and the constant\r\n       $HGC has been added in the section \"videoconfig adapter values.\"\r\n\r\n\r\nCalling the Graphics Libraries\r\n------------------------------\r\n\r\n    Unlike the FORTRAN intrinsic functions, which the linker recognizes and\r\n    automatically searches for in the libraries, the linker has no record of\r\n    the names of the graphics library routines. Therefore, the appropriate\r\n    graphics library must be explicitly specified in the FL command line or\r\n    when linking manually. You do not need to use the /link switch. For\r\n    example, the following FL command line compiles the source file FONTS.FOR\r\n    and links it with GRAPHICS.LIB:\r\n\r\n        FL  FONTS.FOR  GRAPHICS.LIB\r\n\r\n\r\nAdditional Graphics Routines\r\n----------------------------\r\n\r\n    Two routines have been added to the graphics library.\r\n\r\n    ScrollTextWindow (lines)\r\n    ------------------------\r\n\r\n    The ScrollTextWindow subroutine scrolls text within the defined text\r\n    window. Any text or graphics outside the window is unaffected.\r\n    ScrollTextWindow takes a single integer argument which equals the number\r\n    of lines to be scrolled. Positive values scroll the screen up; negative\r\n    values scroll the screen down.\r\n\r\n    GetTextWindow (r1, c1, r2, c2)\r\n    ------------------------------\r\n\r\n    The GetTextWindow subroutine takes four integer arguments, which return\r\n    the upper-left-hand and lower-right-hand corner boundaries of the current\r\n    text window (as established by SetTextWindow). The first two are the row\r\n    and column of the upper-left-hand corner. The second two are the row\r\n    and column of the lower-right-hand corner.\r\n\r\n\r\nProper Use of Include Files with IMPLICIT NONE\r\n----------------------------------------------\r\n\r\n    If you use both IMPLICIT NONE and INCLUDE 'FGRAPH.FI', the correct order\r\n    is\r\n\r\n        INCLUDE 'FGRAPH.FI'\r\n        IMPLICIT NONE\r\n\r\n    Here is a sample file with two subroutines and a main program. (The\r\n    PROGRAM Main statement is still optional but using it if you also use\r\n    IMPLICIT NONE is clearer.) Note that INCLUDE 'FGRAPH.FI' appears once\r\n    per file, while INCLUDE 'FGRAPH.FD' appears once in each routine.\r\n\r\n        INCLUDE 'FGRAPH.FI'\r\n        PROGRAM  Main\r\n        IMPLICIT NONE\r\n        INCLUDE 'FGRAPH.FD'\r\n           .\r\n           .\r\n           .\r\n        END\r\n\r\n\r\n        SUBROUTINE  One\r\n        IMPLICIT NONE\r\n        INCLUDE 'FGRAPH.FD'\r\n           .\r\n           .\r\n           .\r\n        END\r\n\r\n\r\n        SUBROUTINE  Two\r\n        IMPLICIT NONE\r\n        INCLUDE 'FGRAPH.FD'\r\n           .\r\n           .\r\n           .\r\n        END\r\n\r\n\r\n\r\n===================<Part 4: Microsoft Editor User's Guide>===================\r\n\r\n\r\nVersion 1.02 (shipped with FORTRAN)\r\n\r\nAutostart Mode\r\n--------------\r\n\r\n    If an \"autostart\" assignment appears in the TOOLS.INI file, the macro on\r\n    the right of the assignment is executed automatically each time the\r\n    editor is run. An autostart assignment takes the form\r\n\r\n        autostart:=macro\r\n\r\n    where macro is any valid Microsoft Editor function assignment, switch\r\n    setting, or macro.\r\n\r\n\r\nStream Mode Default\r\n-------------------\r\n\r\n    The editor now always starts in stream mode, regardless of the mode set\r\n    when you exited.\r\n\r\n\r\nenterboxmode Switch\r\n-------------------\r\n\r\n    The enterboxmode switch, when set to \"yes,\" starts the editor in box\r\n    mode. Its default value is \"no.\"\r\n\r\n\r\nSetting Editor Modes\r\n--------------------\r\n\r\n    Some editor modes are set with functions that toggle the mode between two\r\n    states, rather than setting the mode directly. For example, the boxstream\r\n    function switches between box mode and stream mode; it does not set\r\n    either mode directly.\r\n\r\n    This inability to set the mode directly can cause problems if you want to\r\n    use an autostart command to set a specific mode (for example, stream)\r\n    every time the editor is run. There is no default status for boxstream;\r\n    the current status is retained when you exit. Consequently, an\r\n    autostart:=boxstream statement in TOOLS.INI toggles the existing mode,\r\n    whether it's box or stream.\r\n\r\n    The boxstream function returns a TRUE/FALSE flag indicating the\r\n    function's status. In the case of boxstream, TRUE is returned if the mode\r\n    was set to box, FALSE if it was set to stream. You can test this flag and\r\n    use the test results to determine whether boxstream should be called a\r\n    second time to reset the mode to the desired value.\r\n\r\n    For example, suppose you want the editor to always start up in stream\r\n    mode. You would enter the following autostart macro in your TOOLS.INI\r\n    file:\r\n\r\n        autostart:=boxstream -> boxstream\r\n\r\n    The initial call to the boxstream function toggles the existing mode to\r\n    either box or stream. The macro conditional -> terminates the macro if\r\n    the returned value is FALSE. Therefore, if the initial boxstream command\r\n    switched to stream mode, FALSE is returned and the macro terminates. If\r\n    the initial boxstream command switched to box mode, TRUE is returned, the\r\n    macro does not terminate, and the boxstream function is repeated to\r\n    toggle the mode to stream. Regardless of the initial condition, you are\r\n    now in stream mode.\r\n\r\n\r\nDefault Values for Help Switches\r\n--------------------------------\r\n\r\n    There are four switches that set the text colors for Help files:\r\n    helpboldcolor, helpitalcolor, helpundcolor, and helpwarncolor. The value\r\n    you specify for the high-order digit of these colors is automatically\r\n    replaced by the high-order digit of the value for the fgcolor switch.\r\n    This replacement assures that one of the Help colors always matches one\r\n    of the foreground colors, to promote visual consistency.\r\n\r\n\r\n\r\n===========<Part 5: Microsoft CodeView and Utilities User's Guide>===========\r\n\r\n\r\nCodeView Support for FORTRAN Record Variables\r\n---------------------------------------------\r\n\r\n    CodeView 2.3 supports the display of record elements as well as ordinary\r\n    variables. For example, if the record variable 'employee' is declared\r\n    with the following structure\r\n\r\n        STRUCTURE /emprec/\r\n           INTEGER       years\r\n           REAL          raises(10)\r\n           CHARACTER*10  empname(3)\r\n        END STRUCTURE\r\n\r\n        RECORD /emprec/ employee\r\n\r\n    the elements of 'employee' can be displayed individually. The CodeView\r\n    command\r\n\r\n        ?employee.raises(2)\r\n\r\n    displays the current value of the second array member of the record\r\n    element 'raises' of the record variable 'employee'.\r\n\r\n\r\n\r\nERROUT Utility\r\n--------------\r\n\r\n    The ERROUT utility is no longer supplied with Microsoft FORTRAN. All\r\n    compiler, linker, and utility error messages are now directed to \"stdout\"\r\n    instead of \"stderr,\" so DOS redirection may be used to write error\r\n    messages to any file. The header information (product name, version\r\n    number, and Microsoft copyright notice) is still sent to \"stderr.\"\r\n\r\n\r\nEXEPACK Utility\r\n---------------\r\n\r\n    The EXEPACK utility is no longer supplied with Microsoft FORTRAN. Use the\r\n    /E link option to create a packed executable file.\r\n\r\n\r\nNMAKE Utility\r\n-------------\r\n\r\n    The MAKE utility has been replaced with the NMAKE utility. NMAKE is not\r\n    compatible with existing MAKE files. Please read the section on NMAKE\r\n    before running MAKE files."
}