From news.sas.ab.ca!rover.ucs.ualberta.ca!news.bc.net!vanbc.wimsey.com!news.mindlink.net!agate!howland.reston.ans.net!news.sprintlink.net!news.dgsys.com!DGS.dgsys.com!raymoon Mon Mar 27 16:41:51 1995
Path: news.sas.ab.ca!rover.ucs.ualberta.ca!news.bc.net!vanbc.wimsey.com!news.mindlink.net!agate!howland.reston.ans.net!news.sprintlink.net!news.dgsys.com!DGS.dgsys.com!raymoon
From: raymoon@dgsys.com (Raymond Moon)
Newsgroups: comp.lang.asm.x86,alt.lang.asm
Subject: x86 Assembly Language FAQ - A86
Followup-To: poster
Date: 25 Mar 1995 23:22:08 GMT
Organization: Digital Gateway Systems
Lines: 211
Distribution: world
Expires: Thu, 20 Apr 1995 23:59:59 GMT
Message-ID: <3l28j0$1j8@news.dgsys.com>
Reply-To: raymoon@dgs.dgsys.com
NNTP-Posting-Host: dgs.dgsys.com
Summary: This is the FAQ for the x86 Assembly Language programmers
 for the alt.lang.asm and comp.lang.asm.x86 newsgroups.  This
 particular section of the FAQ contains x86 assembly information
 specific to the Eric Isaacson's shareware A86 assembler and D86
 debugger.
Keywords: x86 ASM FAQ A86
X-Newsreader: TIN [version 1.2 PL2]
Xref: news.sas.ab.ca comp.lang.asm.x86:6025 alt.lang.asm:4557

Archive-name: asm_x86_faq/a86
Alt-lang-asm-archive-name: asm_x86_faq/a86
Comp-lang-asm-x86-archive-name: asm_x86_faq/a86
Posting-Frequency: monthly (21st of every month)
Last-modified: 1995/03/22

------------------------------

Subject: 1. Introduction and Intent

This is the x86 Assembly Language FAQ for the comp.lang.asm.x86 and
alt.lang.asm and newsgroups.  This FAQ is posted monthly on or about
the 21st of the month on both newsgroups and news.answers, alt.answers
and comp.answers.  It also is archived at the normal FAQ archival
sites.  Currently, this FAQ is broken into four sections.  The
following are the section filenames (hopefully, once the FAQ as a
whole is approved) and the scope of each section of the FAQ.

asm_x86_faq/gen_part1 - This is the basic portion of the FAQ that
    contains information of interest to all assembly language
    programmers.  In general, the information contained in this
    portion of the FAQ is not specific to any particular assembler.

asm_x86_faq/gen_part2 - This is a continuation of the above FAQ.

asm_x86_faq/masm - This portion of the FAQ contains information
    specific for the Microsoft MASM.

asm_x86_faq/tasm - This portion of the FAQ contains information
    specific for the Borland TASM.

asm_x86_faq/A86 - This portion of the FAQ contains information
    specific for the A86 Shareware Assembler.

The scope and content of this FAQ is to go beyond just answering the
frequently asked questions.  I am including pointers to assembly
language treasure troves that are hidden out on the internet.  I
believe that this will enhance the FAQ's value not only to the novices
but also to the old hands.

Any subject listed as "OPEN" means that this topic as been requested
but no one has come forth and volunteered to write this section. 
Volunteers please indicate your intentions to the author listed below
either by posting to either newsgroup or by sending e-mail to the
author at the below address.

The general guidelines for submission are:
 *  accuracy and conciseness;
 *  pointers to where on the internet more detailed information is
    available; and
 *  any code submitted will be generic so that most assemblers can
    assemble successfully.

Any subject listed as "UNDER CONSTRUCTION" has a volunteer currently
writing that subject.  If you desire to assist or have some
information that you believe would be of help in writing that
particular subject, contact the contributor of that subject or post to
both newsgroups.  Once a subject is submitted to me, I will post it on
both newsgroups for comment.  After any changes that may be necessary
are made, I will include it in the next posting of the FAQ.

For the ease of determining what has changed since the last FAQ, the
Table of Contents will have "REVISED" at the end of the subject line
for all revised subjects.  If more than one FAQ revision has been
missed, the "Last Changed:" entry at the end of each subject can be
used to determine which subjects have been revised during the
intervening time frame.

The information in this FAQ is free for all to use as long as you
acknowledge the source.  This FAQ can be reproduced in part or in its
entirety as long as the copyright is included.  This FAQ can be made
available on public servers, like ftp, gopher or WWW servers.  Please
do not modify the file, such as converting it into some other format,
without prior permission of the author.

Suggestions for changes and comments are always welcome.  They can be
posted to either newsgroup or e-mailed directly to the me.

As I had to break this section of the FAQ into two parts, I probably
will have to start the approval process all over again.  That is about
a two month process.  So, do not use the above filenames until this
FAQ is approved.

Author: Raymond Moon, raymoon@dgs.dgsys.com
Copyright 1995 - Raymond Moon
ALL RIGHTS RESERVED
Last Changed: 22 Mar 95

------------------------------

Subject: 2. Table of Contents

1.  Introduction And Intent                         REVISED
2.  Table Of Contents                               REVISED
3.  What is A86 Assembler and Where Can I Get It
4.  Structuring Assembly Language in A86
5.  Acknowledgements

------------------------------

Subject: 3. What is A86 Assembler and Where Can I Get It

3.1  A86 ASSEMBLER - A86V372.ZIP
--------------------------------

The A86 is Eric Isaacson's shareware assembler.  The latest version is
3.72 and support up to the 286 instruction set.  This assembler does
not support the extended registers and instructions introduced with
the 386 processor.  This assembler accepts assembly language source
files, and transforms them directly into either: (1) .COM files
executable under MS-DOS, starting at offset 0100 within a code
segment; (2) .OBJ files suitable for feeding to a linker; or (3)
object files starting at offset 0, suitable for copying to ROMs.  A86
is a full featured program designed to be as closely compatible to the
standard Intel/IBM assembly language as possible.

Some of A86's features are:
- Assembly speed
- Ease of use
- Support modular programming even in .com files
- Support very large programming projects
- Full featured macro capability
- Support for math coprocessor instructions
- Supported by its own debugger, D86

3.2  D86 DEBUGGER - D86V372.ZIP
-------------------------------

The D86 is Eric Isaacson's shareware debugger.  The latest version is
3.72.  D86 is a screen-oriented debugger that facilitates the
troubleshooting of faulty computer programs written for the IBM-PC and
all compatibles.  D86 can freeze the state of a program so that the
values of registers, flags, and memory can be investigated.  The
program's execution can be monitored by stepping it one instruction or
procedure at a time; or starting the program running, telling D86 to
stop it when it reaches certain locations.  D86 recognizes the
symbol-table output of the A86 assembler, creating a symbolic
disassembly of a A86 program, and allowing referenced to locations and
variables by name.

Some of D86's features are:
    - Values of registers, flags and stack top are displayed at a fixed
    location on the screen.
- Support for viewing memory contents in a variety of types including
    complicated structures.
- Support for displaying math coprocessor registers

3.3  OTHER FILES
----------------

A86CNVRT.ZIP

This file contains information on converting MASM files into A86
files.  The information is dated and a better source is Chapter 12 of
the A86 documentation.

D86BIOS4.ZIP

If your computer does not have an IBM-compatible BIOS, this file will
help getting D86, the debugger, to work with your BIOS.

3.4  FILE AVAILABILITY
----------------------

All files are available from one of SimTel's mirrored sites under the
SimTel/msdos/asmutil subdirectory.  Some of these sites are:

    oak.oakland.edu         nic.funet.fi
    wuarchive.wustl.edu     src.doc.ic.ac.uk
    ftp.uu.net              archie.au

    ftp oak.oakland.edu             Or any other of the above sites
    anonymous log on
    cd SimTel/msdos/asmutil
    mget ?86*                       For all files
        or
    mget ?86v372.zip                For the basic A86 and D86 files

Contributor: Raymond Moon, raymoon@dgs.dgsys.com
Last changed: 19 Jan 95 

------------------------------

Subject: 4. Structuring Assembly Language in A86

John Barnes has converted the macros from Kurt Schindler's "Structure: 
The Complete Toolkit for Structuring Assembly Language Programs." 
John Barnes warns that the every macro has not been proofed and tested
completely. 

These macros are available from any of the SimTel mirror sites.

    ftp oak.oakland.edu
    anonymous log on
    cd SimTel/msdos/asmutil
    get struca86.zip

Contributor: Raymond Moon, raymoon@dgs.dgsys.com
Last changed: 8 Jan 95 

------------------------------

Subject: 5. Acknowledgements

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.

John Krueger



