From: raymoon@ms1.dgsys.com (Raymond Moon)
Subject: x86 Assembly Language FAQ - Microsoft MASM
Summary: This section contains x86 asm info specific to the Microsoft MASM assembler.
------------------------------

Subject: 1. Introduction and Intent

go General Section for Details
Return to the Table Of Contents
------------------------------

Subject: 2. Table Of Contents

1.  Introduction And Intent
2.  Table Of Contents                                           REVISED
3.  How To Get The Patch For MASM 6.11
4.  What Is And How To Access The Microsoft Knowledge Base
5.  Pentium Instruction Macros
6.  Microsoft's MASM Newsgroup
7.  MASM Information Available At www.microsoft.com
8.  How To Get The Patch For MASM 6.12 and 6.13
9.  MASM Free From Microsoft                                    REVISED
10. Acknowledgments

[General][MASM][TASM][A86/D86]
------------------------------

Subject: 3. How To Get The Patch For MASM 6.11

There is a patch available from Microsoft for MASM 6.11.  This patch
converts MASM 6.11 or 6.11a into the latest version MASM 6.11d.  This patch
will not work on MASM 6.11c.

To obtain this patch:

    ftp://ftp.microsoft.com/softlib/mslfiles/ML611D.EXE

ML611D.EXE is a self-extracting file which when executed will create the
following files:

    ERRMSG.TXT      PATCH.RTP
    H2INC.EXE       PATCH.RTD
    H2INC.ERR       README.TXT
    ML611D.TXT      SUPPORT.TXT
    PATCH.EXE

All the instructions for installing the patch are contained in ML611D.TXT.

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 20 Mar 98

Return to the Table Of Contents
------------------------------

Subject: 4. What Is and How to Access the Microsoft Knowledge Base

4.1  WHAT IS THE MICROSOFT KNOWLEDGE BASE

The Microsoft Knowledge Base (KB) is a collection of articles that is
maintained and used by the Microsoft Support personnel to answer customer
questions.  Included in the Knowledge Base are detailed how-to articles,
answers to technical support questions, bug lists, fix lists, and
documentation errors.  This Knowledge Base is available to all on
Microsoft's Internet Node.  An index of all the articles is available in a
file, index.txt.

4.2  HOW TO OBTAIN INDEX.TXT

    ftp://ftp.microsoft.com/developr/masm/kb/index.txt

This index still is available with the last entry dated Aug 96.

4.3  FILE FORMAT OF INDEX.TXT

The format of this file consists of three columns.

    Column One is the file type with the following meanings:
        FIX         - Bug Fix
        DOCERR      - Documentation Error
        INF         - Information
        PRB         - Problem
        BUG         - Bug
    Column Two is the path and file name in the following format: Qxxxyzz
        where   the part,  Qxxx', is Q followed by two or three numbers and
                    represents the first subdirectory under the kb
                    subdirectory,
                the part,  y', is the next subdirectory under Qxxx, and
                The part,  zz', when combined with  .txt' is the filename.

                ****WARNING**** Some of the Qs are uppercase and some are
                lower case.  Unlike DOS, the filenames and directory names
                are case sensitive.

    Column Three is a short description of the file.

4.4  GETTING FILES

You can get all the files from the /developr/masm/kb directory without
navigating this very strange directory structure by using the path in the
get command.  As an example, let's say you want Q106399, a very useful file
if you use Visual C++ (see below).  Using the parsing rules above, you can
use the following get command:

    get q106/3/99.txt

4.5  HOW TO ACCESS THE KNOWLEDGE BASE USING GOPHER

    There no longer is gopher access to microsoft.com

4.6  HOW TO ACCESS USING WWW

Microsoft has removed the MASM option from the their www KB search.

4.7  SOME EXAMPLE FILES FROM THE MICROSOFT KNOWLEDGE BASE

Q86815      Mixed C and MASM with MASM Main Language, No C Run-Time
Q86816      Mixed C and MASM with MASM Main Language, C Run-Time
Q101264     Assembling Code Developed for MASM 5.x with MASM 6.x
Q106399     Using the Visual Workbench with MASM
Q110598     Spontaneous Assembly and MASM 6.11 Errors
Q123729     Accessing Command Line Arguments

    I have found Q106399 particularly helpful since I am really upset that
    Microsoft did not include direct support of MASM from within the Visual
    Workbench.

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 9 Nov 96

Return to the Table Of Contents
------------------------------

Subject 5. Pentium Instruction Macros

Macros that implement the new instructions available with the Pentium
processor is available from Intel.

    ftp://ftp.intel.com/pub/IAL/pentium/p5masm.mac

The new macros are:
    CMPXCHG8B   - Compare and exchange eight bytes 
    CPUID       - CPU Identification
    RDTSC       - Read Time Stamp Counter
    MOVTOCR4    - Move reg to CR4
    MOVFROMCR4  - Move CR4 to reg
    RDMSR       - Read Model Specific Register
    WRMSR       - Write Model Specific Register
    RSM         - Resume from SMM

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 8 Jan 95

Return to the Table Of Contents
------------------------------

Subject 6. Microsoft's MASM Newsgroup

Microsoft has create a whole family of newsgroups devoted to their
products.  One of these new newsgroups is devoted to MASM.  Its URL is

news:msnews.microsoft.com/microsoft.public.masm

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 20 Apr 97

Return to the Table Of Contents
------------------------------

Subject 7. MASM Information Available At www.microsoft.com

Microsoft's web site finally has a few pages to MASM.  This overview page
has links to the following areas: features, system requirements, evaluation
tools, standard, academic and volume pricing, FAQ, and support policies. 
The basic URL is:

    http://www.microsoft.com/products/prodref/450_ov.htm

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 16 Aug 97

Return to the Table Of Contents
------------------------------

Subject 8. How To Get The Patchs For MASM 6.12 and 6.13

There are patches available to patch MASM 6.11 to update for support
Pentium Pro and MMX instructions (Version 6.12) and AMD 3D instructions
(Version 6.13).  Numerous bug fixes have been added.  You do not need to
download each, ml613.exe contains everything to upgrade your 6.11, 6.11a or
6.11d.  Again, these patches will not upgrade MASM 6.11c

    ftp://ftp.microsoft.com/softlib/mslfiles/ML612.EXE
    ftp://ftp.microsoft.com/softlib/mslfiles/ML613.EXE

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 20 Mar 98

Return to the Table Of Contents
------------------------------

Subject 9. MASM Free From Microsoft REVISED

MASM Version 6.11d is available on the Windows 98 Software Development Kit. 
It is part of an 18+ Meg file.  The URL to the file is:

    http://www.microsoft.com/hwdev/ddk/download/win98ddk.exe

I still could not download the file, but thanks to Barry Brey who sent me
the expanded directory listing I have discovered the following.  Also
included is a linker, but I could not find the Programmer's Work Bench nor
CodeView for debugging, so downloading this file will provide only the
assembler and linker without any supporting programs nor documentation.

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last Changed: 19 Sep 98

Return to the Table Of Contents
------------------------------

Subject: 10. Acknowledgments

I would like to acknowledge all the people who have assisted me or any of
the contributors.  For their time and effort, this FAQ is a better product.

Barry Brey, Daniel Cardenas and Kevin Weinrich 

Return to the Table Of Contents