1
*************************************************************

The following is a patch from Microsoft to fix a problem with MASM 4.0
using some "INCLUDE" files. I was given this patch from (and thanks to):
    Richard L. Mueller, Ph.D.
    11890 65th Ave., North
    Maple Grove, MN 55369
Doctor Mueller also makes mention of another unresolved problem with
MASM 4.0 on page 7 of Sept.86 REMark, which has to do with the way a
 -1 is handled in ver. 4.0 versus ver. 3.0. Microsoft acknowledged that
it is a known problem, but has not yet sent a 'fix'.

INCLUDE Files:

Some text editors pad files to set block sizes. If you create INCLUDE
files with one of these editors, you may receive the following error
message from MASM:

    filename.ASM (#) : error1: Extra characters on line

While the object file is successfully completed, the listing file is
truncated. This behavior differs from pre-4.0 MASM. The enclosed
instructions will allow you to patch your copy of the Assembler, using
SYMDEB, so that you can avoid the include file problem.

Please note the following:

   1. The enclosed patch should only be made to a COPY of MASM.EXE,
      and NOT to the original file.

   2. The extension "FIX" is used so that changes can be written to
      the file. Changes cannot be written if the file is loaded with
      the "EXE" extension.

   3. User input is underlined. ( Note that this is not true for this )
                    ( .DOC or .ARC file, so I assume you )
                ( know what to do and where. )

------------ The Patch Process ----------

A: copy masm.exe masm.sav

A: ren masm.exe masm.fix

A: symdeb masm.fix

Microsoft (R) Symbolic Debug Utility Version 4.00
Copyright (C) Microsoft Corp 1984, 1985. All rights reserved.

Processor is [8086]
-A 72B8
xxxx:72B8 MOV BX,[09D6]
    :72BC MOV BYTE PTR [01C0], 00
    :72C1 JMP 7539
    :72C4 LES DX, [BX+06]
    :72C7 INC BYTE PTR [01C0]
    :72CB JMP 7542
    :72CE CMP BYTE PTR [SI-01], 1A
    :72D2 JZ 72D7
    :72D4 JMP 7574
    :72D7 DEC SI
    :72D8 JMP 72CE
xxxx:72DA           (Terminate Assembly)
-A 7535
xxxx:7535 JMP 72B8
xxxx:7538
-A 753F
xxxx:753F JMP 72C4
xxxx:7542
-A 756D
xxxx:756D JMP 72CE
xxxx:7570
-W
Writing 14E3E bytes
-Q
A: ren masm.fix masm.exe

************************* End of Official Microsoft Patch ******************

The following is a "homebrew" type of patch that I received from a friend:

-------- Use this one at your own risk --------

Errors that occur during the assembly process (using MASM 4.0) are only
reported to the CRT, and cannot be "re-directed" to the PRN or a file.
This patch allows redirection so that you can see the "error-free"
assembly of your "First Draft" code.

( DON'T EVER PATCH YOUR ORIGINAL COPY OF ANY FILE )

REN MASM.EXE MASM.ORG       ( I prefer to keep my ORiGinal file intact )
COPY MASM.ORG MASM.TMP      ( then make a copy of it )
SYMDEB MASM.TMP
-E (CS+1000):4C11 1     ( Need the Space after the 'E' )
-W
-Q
REN MASM.TMP MASM.EXE

----- End of Patch -----

Now you can do:       MASM >ERRORS.TXT     (or, whatever)

and you'll have a new very small file on your disk if any errors occur
during the assembly process (which we all know won't happen with our code).

Thanks to:  FandS Software for this one.

To test it out, take a short, good .ASM file and insert one instruction
like:   ZZX  AX,BX     Then reassemble with redirection on the command line
and see if you can TYPE or VFILER (thanks for this beauty) (V)iew the new
file on the default disk (ERRORS.TXT in the example above).

Typing by Chuck Rogalo - I assume no responsibility for any of the above,
             and you use it AT YOUR OWN RISK...

----------- End of MASM 4.0 patches ----------
 1:1