{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BA       ASM",
              "size": 1138,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "BAMAIN   BAS",
              "size": 545,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "BIOS     INC",
              "size": 2302,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CA       ASM",
              "size": 298,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CAMAIN   C",
              "size": 111,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CREF     EXE",
              "size": 15830,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CV       DOC",
              "size": 17280,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CV       EXE",
              "size": 218018,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "CV       HLP",
              "size": 18348,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "DEMO     BAT",
              "size": 4851,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "DOS      INC",
              "size": 7516,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "E_AUTO   CV",
              "size": 7407,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "ERROUT   EXE",
              "size": 9499,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "EXEMOD   EXE",
              "size": 12149,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "EXEPACK  EXE",
              "size": 14803,
              "date": "1987-10-15",
              "time": "5:00"
            },
            {
              "name": "FA       ASM",
              "size": 426,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "FAMAIN   FOR",
              "size": 190,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "LIB      EXE",
              "size": 32150,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "LINK     EXE",
              "size": 64982,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "M_AUTO   CV",
              "size": 570,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MACRO    DOC",
              "size": 17983,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MAKE     EXE",
              "size": 24199,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MASM     EXE",
              "size": 103175,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MIXED    DOC",
              "size": 9085,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MIXED    INC",
              "size": 6238,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "MOUSE    SYS",
              "size": 13793,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "PA       ASM",
              "size": 388,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "PACKING  LST",
              "size": 1045,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "PAGER    ASM",
              "size": 11192,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "PAMAIN   PAS",
              "size": 164,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "POWER2   ASM",
              "size": 1982,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "Q_AUTO   CV",
              "size": 16,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "README   DOC",
              "size": 9216,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "RUNME    BAT",
              "size": 2975,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "SETENV   EXE",
              "size": 10601,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "SETUP    BAT",
              "size": 7287,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "SETUP2   BAT",
              "size": 2130,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "SHOW     ASM",
              "size": 8944,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "SHOW     EXE",
              "size": 2040,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "U_AUTO   CV",
              "size": 5152,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "W_AUTO   CV",
              "size": 9639,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "WHAT     ASM",
              "size": 23280,
              "date": "1987-07-31",
              "time": "0:00"
            },
            {
              "name": "WHAT     EXE",
              "size": 3170,
              "date": "1987-07-31",
              "time": "0:00"
            }
          ]
        }
      ],
      "volume": "MS-MASM500"
    }
  },
  "desc_file": "README.DOC",
  "desc_text": "\t\t    Microsoft Macro Assembler Package\r\n\t\t\t     Version 5.00\r\n\r\n\tText files on the Macro\tAssembler disks\tare tabbed to save\r\n\tdisk space. If your printer does not automatically handle\r\n\ttabs during printing, you must use a print program that\r\n\texpands\ttabs. For example, use the DOS PRINT program to\tprint\r\n\tthis and other document\tor source files\ton the disk.\r\n\r\n  Note to DOS 3.0 Users\r\n\r\n\tBecause\tof an incompatibility between DOS 3.0 and the batch\r\n\tfile enhancer on this disk, you\tcannot run the setup batch\r\n\tfiles under DOS\t3.0. Instead, follow the setup instructions in\r\n\tChapter\t1 of the Programmer's Guide. You can run the CodeView\r\n\tdemo on\tDisk 2.\tType DEMO to run DEMO.BAT.\r\n\r\n  ==( MASM.EXE )==\r\n\r\n  New Feature\r\n\r\n\tThe /LA\toption has been\tadded to specify a complete listing\r\n\tof all symbols,\tmacros,\tand false conditionals.\tIt is\r\n\tequivalent to using the\t.LIST, .LFCOND,\t.LALL, and .CREF\r\n\tdirectives throughout the source file. The option overrides\r\n\tany conflicting\tdirectives in the source file.\r\n\r\n  Clarification\r\n\r\n\tThe PTR\toperator can be\tused to\tspecify\tthe size of a\r\n\tregister indirect operand for a\tCALL or\tJMP instruction.\r\n\tHowever, the size cannot be specified with NEAR\tor FAR.\tUse\r\n\tWORD or\tDWORD instead. (In 80386 32-bit\tsegments, use DWORD\r\n\tor FWORD.) Examples are\tshown below:\r\n\r\n\t  ; 8086, 80826, or 80386 16-bit mode\r\n\r\n\t  jmp  WORD PTR\t[bx]\t    ; Legal near jump\r\n\t  call NEAR PTR\t[bx]\t    ; Illegal near call\r\n\t  call DWORD PTR [bx]\t    ; Legal far\tcall\r\n\t  jmp  FAR PTR [bx]\t    ; Illegal far jump\r\n\r\n\t  ; 80386 32-bit mode only\r\n\r\n\t  jmp  DWORD PTR [bx]\t    ; Legal near jump\r\n\t  call NEAR PTR\t[bx]\t    ; Illegal near call\r\n\t  call FWORD PTR [bx]\t    ; Legal far\tcall\r\n\t  jmp  FAR PTR [bx]\t    ; Illegal far jump\r\n\r\n\tThis limitation\tonly applies to\tregister indirect operands.\r\n\tNEAR or\tFAR can\tbe applied to operands associated with\r\n\tlabels.\tExamples are shown below:\r\n\r\n\t  jmp  NEAR PTR\tpointer[bx] ; Legal\r\n\t  call FAR PTR location\t    ; Legal\rè\r\n  Correction\r\n\r\n\tWhen evaluating\texpressions, MASM does 16-bit arithmetic except\r\n\twhen the 80386 processor is enabled. If\tthe .386 or .386P\r\n\tdirective has been given, MASM does 32-bit arithmetic. This\r\n\tbehavior is consistent with earlier versions of\tMASM, which\r\n\talways did 16-bit arithmetic. The notes\tin Sections 9.2.1 and\r\n\t9.2.1.5\tof the Programmer's Guide are incorrect. They should say\r\n\tthat MASM always does 16-bit arithmetic.\r\n\r\n  Clarification\r\n\r\n\tThe description\tof declaring external symbols in Section 8.2\r\n\tis incomplete and the example is incorrect. You\tcannot\r\n\taccess the segment of an external far data variable with the\r\n\t@FARDATA equate. Instead you must use the SEG operator as\r\n\tshown below:\r\n\r\n\t\t .FARDATA\r\n\t\t EXTRN\t   fvar:WORD\t   ; FAR variable in far data\r\n\t\t .CODE\r\n\t  start: ASSUME\t   es:SEG fvar\t   ; Tell the assembler\r\n\t\t mov\t   ax,SEG fvar\t   ; Tell the processor\r\n\t\t mov\t   es,ax\r\n\r\n\tThis is\tthe same limitation described for communal variables\r\n\tin Section 8.4.\tThe reason is that under the DOS segment\r\n\tconventions, multiple far data segments\tshare the same name\r\n\t(FAR_DATA) and have private combine type. Segments with\tthe\r\n\tsame name can only be distinguished indirectly using the SEG\r\n\toperator.\r\n\r\n  Clarification\r\n\r\n\tThe .286P and .386P processor directives enable\tinstructions\r\n\tthat are normally used in systems programming. However,\r\n\tsome of\tthese instructions do not necessarily require that\r\n\tthe processor be in privileged or protected mode.\r\n\r\n  Correction\r\n\r\n\tPublic absolute\tsymbols\tmust be\tdeclared during\tpass 1.\tThis\r\n\tmeans that aliases for absolute\tsymbols\tor other forward\r\n\treferences to them will\tcause errors. For example, the\r\n\tfollowing code generates an error:\r\n\r\n\t\t PUBLIC\tlines\r\n\t  lines\t EQU\trows\r\n\t  rows\t EQU\t25\r\n\r\n\tThis behavior is different than\tin previous versions of\tMASM\r\n\tand contrary to\tthe note in Section 8.1.\r\n\r\n\rè\r\n  Behavior Change\r\n\r\n\tSome errors and\tquestionable practices that were ignored by\r\n\tearlier\tversions are now flagged as errors. As a result,\r\n\texisting source\tcode may produce errors\tor warnings.\r\n\tThe following are examples:\r\n\r\n\t  - Labels defined only\tduring pass 1 will cause errors\tif\r\n\t    used in expressions.\r\n\t  - A CS assume\tthat changes from pass 1 to pass 2 causes\r\n\t    an error.\r\n\t  - Constants are now checked for type overflow.\r\n\t  - Reserved words used\tas labels produce warnings.\r\n\t  - The\tOFFSET operator\tused with a constant causes an error.\r\n\r\n  ==( CREF.EXE )==\r\n\r\n  New Feature\r\n\r\n\tCross-reference\tlisting\tfiles created with CREF\tnow have an\r\n\tadditional symbol. A line number followed by + indicates\r\n\tthat a symbol is modified at the given line. For example:\r\n\r\n\t  TST .\t. . . .\t. . . .\t. . . .\t.  134#\t  237\t 544+\r\n\r\n\tThe symbol TST is defined at line 134, used at line 237, and\r\n\tmodified at line 544.\r\n\r\n  ==( MASM.EXE and LINK.EXE\t)==\r\n\r\n  Clarification\r\n\r\n\tThe description\tof STACK combine type in Section 5.2.2.3\r\n\tdoes not explain how multiple initialized stack\tsegments are\r\n\tcombined. The total size of the\tstack is the total size\tof\r\n\tall stack definitions. LINK puts initialized data for each\r\n\tdefined\tstack segment at the end of the\tstack. Data initialized\r\n\tin the last segment linked overrides data initialized in\r\n\tprevioussegments. This behavior\tis usually not relevant, since\r\n\tmost programs only define one stack of uninitialized data.\r\n\tStack data cannot be initialized with simplified segment\r\n\tdirectives.\r\n\r\n  ==( CodeView Debugger\t)==\r\n\r\n  New Feature\r\n\r\n\tThe /R option has been added to\tenable the CodeView debugger\r\n\tto use the debug registers (DR0, DR1, DR2, and DR3) of the\r\n\t80386 processor. The option is ignored if you do not have an\r\n\t80386 processor.\r\n\r\n\tThe display does not change to indicate\tthat the debug\r\n\tregisters are in use, but debugger operations with\rè\ttracepoint or trace memory statements (but not with\r\n\twatchpoint statements) will be much faster. Any\tof the\r\n\tfollowing conditions will prevent the debugger from using\r\n\tdebug registers:\r\n\r\n\t  1) /E\tis used.\r\n\t  2) More than four tracepoints\tare set.\r\n\t  3) A tracepoint watches more than four bytes of memory.\r\n\t  4) A watchpoint is set.\r\n\r\n  Clarification\r\n\r\n\tThe Pascal expression evaluator\tdescribed in the CodeView\r\n\tand Utilities manual is\tnot implemented\tin this\tversion\tof\r\n\tthe CodeView debugger. It will be implemented in the\r\n\tdebugger supplied with the next\tversion\tof Pascal, which\r\n\twill also produce executable files with\tCodeView symbolic\r\n\tinformation. Current versions of Pascal\tdo not work with the\r\n\tCodeView debugger.\r\n\r\n  Clarification\r\n\r\n\tSection\t4.2, \"FORTRAN Expressions,\" of the CodeView and\r\n\tUtilities manual should\tmention\tthat FORTRAN relational\r\n\toperators do not work with string variables or constants.\r\n\r\n  Warning\r\n\r\n\tSome versions of the GENOA EGA short card are incompatible\r\n\twith CodeView when used\twith a mouse. You can work around this\r\n\tproblem\tby turning off the mouse with /M.\r\n\r\n  ==( LINK.EXE )==\r\n\r\n  New Feature\r\n\r\n\tThe following new LINK message warns about a practice that is\r\n\tlegal in real mode, but\tillegal\tin protected mode:\r\n\r\n\t  warning L4003: intersegment self-relative fixup at <position>\r\n\r\n\tIn assembly-language, the warning only occurs if the DOSSEG\r\n\tdirective or /DOSSEG linker option is used. It indicates a\r\n\t16-bit jump to an address in another segment. For example,\r\n\tthe following code produces the\terror:\r\n\r\n\t  _TEXT\t  SEGMENT\r\n\t\t  EXTRN\t   doit:NEAR\r\n\t\t  jmp\t   _TEXT2:doit\r\n\t\t  .\r\n\t\t  .\r\n\t\t  .\r\n\t  _TEXT\t  ENDS\r\n\r\n\t  _TEXT2  SEGMENT\rè\t\t  PUBLIC   doit\r\n\t  doit\t  PROC\t   NEAR\r\n\t\t  .\r\n\t\t  .\r\n\t\t  .\r\n\t  doit\t  ENDP\r\n\t  _TEXT2  ENDS\r\n\r\n\tThe warning usually indicates a\tfatal error in high-level-\r\n\tlanguage programs. It can occur\twhen the /NT option is used\r\n\tto compile a small-model C program.\r\n\r\n  ==( Mixed-Languages Programming Guide\t)==\r\n\r\n  Clarification\r\n\r\n\tNaming convention rules\ton page\t10 are incomplete. If you\r\n\tcombine\tBASIC with other high-level languages, avoid using\r\n\tsymbolic names longer than eight characters. Pascal and\tC\r\n\twill recognize only the\tfirst eight characters,\twhereas\r\n\tBASIC will recognize more than eight characters.\r\n\r\n  Clarification\r\n\r\n\tThe example programs for BASIC in Chapter 6 will not work\r\n\twith QuickBASIC\tVersions 2.0 or\t3.0. They will work if you\r\n\trewrite\tthe function as\ta subprogram, and omit the DECLARE\r\n\tstatement. Functions and DECLARE statements will be supported\r\n\tin future versions of Microsoft\tBASIC compilers.\r\n\r\n  ==( Macro Files )==\r\n\r\n  New Feature\r\n\r\n\tMacro files have been added to the Macro Assembler package.\r\n\tThe following files are\tprovided:\r\n\r\n\t      MIXED.INC\t      For defining assembler procedures\r\n\t\t\t      that can be called from high-level\r\n\t\t\t      languages\r\n\r\n\t      MIXED.DOC\t      Documentation for\tthe macros in\r\n\t\t\t      MIXED.INC.\r\n\r\n\t      DOS.INC\t      For calling common DOS interrupts\r\n\r\n\t      BIOS.INC\t      For calling common BIOS interrupts\r\n\t\t\t      used on IBM and IBM-compatible computers\r\n\r\n\t      MACRO.DOC\t      Description, syntax, and reference\r\n\t\t\t      for using\tthe macros in DOS.INC and\r\n\t\t\t      BIOS.INC."
}