                    Small Assembler Revision History

 -- included in version 1.1

  1 Pad location counter in listing with leading zeroes.
  2 Add 80186, 80286, and 80386 instructions to instruction set.
  3 Add 8087, 80287, and 80387 instructions to instruction set.
  4 Add support for floating point and packed decimal constants in 
    DD, DQ, and DT directives.

 -- included in version 1.2

  5 Revise DUMP to perform formatted dumps of object libraries too.  At this
    stage the directory at the end of a library is still not yet formatted.
  6 A forward reference in a PUBLIC directive to a PROC caused the 
    referenced PROC to generate a "Redundant Definition" error.  Also, 
    subsequent forward references to the same PROC generated "Bad 
    Expression" errors.
  7 Made PROCs report "Phase Error" messages as labels do.
  8 Dropped EXT.H in favor of individually naming external references in files
    ASM2.C, ASM3.C, and ASM4.C.  This reduces the number of global symbols in
    each file so as to avoid overflowing the global symbol table in Small C.

  - Tried making the assembler run faster by skipping the MIT lookups on pass
    2.  The MIT subscript and opnds[] values resulting from pass 1 were 
    written to an intermediate file which was read during pass 2 instead of
    performing the complicated MIT lookups and mappings.  The result was no
    measurable improvement in speed.  Replacing the file with an array also
    failed to produce a speed improvement.  This effort was an attempt to get
    some of the advantages of using intermediate code without having to 
    rewrite major portions of the assembler.  I abandoned the idea after its
    dismal showing, however.

  9 Revised ASMCAL.BAT to correctly name the assembler's own library file,
    ASM.LIB, in the link step.  Also changed the assembly step to invoke ASM
    instead of MASM.  Also revised READ.ME comments about ASMCAL.BAT to better 
    describe its operation and to warn you to run CMIT to create the first 
    80X86.OBJ file.

 10 Corrected a problem that caused ASM to generate a FIXUPP record with the
    FIX386 code following the first LEDATA record in the object file, if the
    LEDATA record overflowed.  This prevented ASM's being able to properly
    assemble ASM2.  Also made ASM properly toggle between FIXUPP and FIX386
    records when the ASO prefix changes the default address size attribute.

 11 Corrected a problem which caused ASM not to recognize instructions with
    memory-only operands if the reference is indirect.

 12 Revised function dosegment(), in file ASM2.C, to detect when a segment
    or class name redefines another symbol.  A "Redundant Definition" error
    is generated in these cases. 

 13 Revised function dogroup(), in file ASM2.C, to recognize forward 
    references to segments.

 14 MASM takes a segment-override prefix to imply a memory reference; thus,
    it sees ES:63H as though it were ES:[63H].  ASM now does the same, rather
    than generate "- Segment Error."
