
                     Wolfware Assembler (WASM) Version 2.23
            Copyright (c) 1985-1991 Eric Tauck. All rights reserved

Wolfware Assembler (WASM) is a free assembler for the 8086 and compatible
microprocessors.  WASM is best suited for writing system utilities, TSR's, and
other small programs.  The minimum system requirements are an IBM PC or
compatible, 100K of free memory, and DOS 2.0 or up.  The assembler package
consists of the assembler program, the user's manual, a list of version
changes, and sample programs.  All of the documentation (*.TXT) files are
standard text files that can be displayed on the screen or printed. Unmodified
copies of WASM may be shared and distributed.  WASM may be used without
obligation to me, the author.

  Eric Tauck
  1304 Deerpass Road
  Marengo, IL  60152
  U.S.A.

  Email: eric.tauck@bigfoot.com
  Phone: 815-568-1110

                       SUMMARY OF FILES AND DIRECTORIES
                       --------------------------------

Files are in lowercase, directories are in uppercase.  Indented directories
are sudirectories of the previous non-indented directory (does that make
sense?).  If you didn't do so, it would probably be helpful to extract the
files with the directory information intact.

  wasm.com      assembler program
  wasm.txt      user's manual
  update.txt    instruction set reference
  history.txt   version changes
  EDITORS
    ASMED       ASMED editor
    MR.ED       Mr. Ed editor
  LIBRARY       library files
  SAMPLES
    PROGRAMS    sample programs
    JOHNSON     sample programs and utilities
    SLEEPER     Sleeper sample program
    SESSION     Session sample program
  ROUTINE
    INLINE      Turbo C and Turbo Pascal inline subroutines
    OBJECT      object (OBJ) file support

Many of the sample programs use the library files -- usually looking in
..\..\LIBRARY.  If you don't use the directory structure above (or I goofed
up the path setting), you will have to enter the correct path to the library
files.

                          VERSION 2.20 to 2.23 NOTES
                          --------------------------

The user's manual has not been upgraded since version 2.11.  The only
significant change is the support of the 80186 and 80286 processors.  The
following instructions have been added or enhanced:

  ARPL       LAR        LTR        RCR        SHR
  BOUND      LEAVE      OUTSB      ROL        SIDT
  CLTS       LGDT       OUTSW      ROR        SLDT
  ENTER      LIDT       POPA       SAL        SMSW
  IMUL       LLDT       PUSH       SAR        STR
  INSB       LMSW       PUSHA      SGDT       VERR
  INSW       LSL        RCL        SHL        VERW

WASM will assemble 80186 and 80286 code regardless of the microprocessor doing
the assembling.  There is no way to disable these instructions, so be careful
not to run 80186 or 80286 code on an 8088 or 8086 processor.

The enhanced IMUL instruction for 80186 and 80286 processors will not assemble
properly in one particular instance, when the first operand of the "IMUL reg16,
reg16, imed" version is AX.  If the first operand of IMUL is AX or AL, the
instruction MUST be the standard 8086 32 bit multiply.  This is to maintain
compalibility with WASM code prior to the introduction of 80186/80286
instructions.

The 1 bit version of the shift and roll instructions must be written without
a second operand to assemble correctly for an 8088/8086:

  shl al    ;one bit shift for an 8088/8086 and 80186/80286/etc
  shl al, 1 ;one bit shift for an 80186/80286/etc, WON'T WORK ON 8088/8086

The documentation file WASM.REF is a reference to all of the instructions
supported by WASM, including the new and enhanced instructions.  This file
replaces the Instruction Set section of the user's manual.

                                 LIBRARY NOTES
                                 -------------

The TSR support provided in the library files TSR1.ASM, TSR2.ASM, and TSR3.ASM
are only used by the sample program BASE.ASM.  The other sample program TSR's
(like SLEEPER and AUTOPARK) do not use library TSR support.

The macro language provided in the library files MACRO1.ASM and MACRO2.ASM is
still a little experimental and not fully tested.  The macro language is based
on Forth and may be difficult to understand if you aren't familiar with Forth.
The Session communications program is the one sample program that uses the
macro language.  The files without an extension included with the Session
souce code are Session macro files.

                                 OBJECT FILES
                                 ------------

The WASM User's manual states that WASM cannot produce object (OBJ) files.
This is no longer true.  A set of macros in the ROUTINE/OBJECT directory allow
WASM to produce object files that can be linked with most commercial languages.
The files in the directory ROUTINE/INLINE also allow WASM code to be used with
other languages, but as inline code.

                                    JOHNSON
                                    -------

These files contain some debugging utilities and example programs that have 
been written and made available by D. E. Johnson.  The debugging utilities 
(DHEX.INC and DREGMEM.INC) provide macros that allow you to interrupt your 
program and examine the contents of the registers and memory.  The other files 
demonstrate some specific programming tasks. 

                                     ASMED
                                     -----

ASMED is a shareware programer's editor suitable for creating WASM source
files.  You don't have to use ASMED, but it can make using WASM a whole lot
easier.  Not only will ASMED edit your files, but it will assemble them and
trap the assembly errors.  ASMED creates an integrated environment similar to
that provided by the "Turbo" and "Quick" languages.

Before using ASMED with WASM, you must make sure it's properly configured.
I've set up the default configuration file (ASMED.CNF) to trap WASM error
messages.  You will only have to configure ASMED's directory option so ASMED
can find WASM.  See the ASMED manual (ASMED.MAN) for details.

                                    MR ED
                                    -----

Mr Ed is another editor you can use for creating WASM source files.  Mr Ed
may be best described as "unobtrusive" -- it's pretty small and fast, but it
doesn't have too many features.
