Path: news1.ucsd.edu!ihnp4.ucsd.edu!news.service.uci.edu!unogate!mvb.saic.com!homer.alpha.net!uwm.edu!math.ohio-state.edu!jussieu.fr!oleane!tank.news.pipex.net!pipex!news.be.innet.net!INbe.net!news.nl.innet.net!INnl.net!hunter.premier.net!news-res.gsl.net!news.gsl.net!news.mathworks.com!newsfeed.internetmci.com!newsreader.sprintlink.net!news.sprintlink.net!news-fw-12.sprintlink.net!news.dgsys.com!DGS.dgsys.com!raymoon
From: raymoon@dgsys.com (Raymond Moon)
Newsgroups: alt.lang.asm,comp.lang.asm.x86,news.answers,alt.answers,comp.answers
Subject: x86 Assembly Language FAQ - A86 and D86
Supersedes: <4qcjgb$eb9@news.dgsys.com>
Followup-To: alt.lang.asm,comp.lang.asm.x86
Date: 22 Jul 1996 23:03:09 GMT
Organization: MoonWare
Lines: 369
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: Tue, 20 Aug 1996 23:59:59 GMT
Message-ID: <4t11bd$vrs@news.dgsys.com>
Reply-To: raymoon@moonware.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 Assemby Language ASM FAQ A86 D86
X-Newsreader: TIN [version 1.2 PL2]
Xref: news1.ucsd.edu alt.lang.asm:6681 comp.lang.asm.x86:16644 news.answers:62959 alt.answers:12718 comp.answers:15762

Archive-name: assembly-language/x86/a86
Posting-Frequency: monthly (21st of every month)
Last-modified: 1996/04/16

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

Subject: 1. Introduction and Intent

This is the x86 Assembly Language FAQ for the comp.lang.asm.x86 and
alt.lang.asm 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 and the
SimTel mirror sites in the msdos/info directory.  Lastly, the current
version is available from my web page as:
    http://www2.dgsys.com/~raymoon/faq/asmfaq.zip
Currently, this FAQ is broken into six sections.  The following are the
section filenames and the scope of each section of the FAQ.

assembly-language/x86/general/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.

assembly-language/x86/general/part2 - This is a continuation of the above
    FAQ.

assembly-language/x86/general/part3 - This is a continuation of the above
    FAQ.

assembly-language/x86/microsoft - This portion of the FAQ contains
    information specific for the Microsoft MASM.

assembly-language/x86/borland - This portion of the FAQ contains
    information specific for the Borland TASM.

assembly-language/x86/a86 - This portion of the FAQ contains information
    specific for the Shareware A86 Assembler and D86 Debugger.

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.

All references to files and locations are in Uniform Resource Locators
(URLs) format.  Some web browser will be able to use these URLs directly as
hot links.  If the format is not clear to you, get RFC 1738.  It is
available from:   ftp://is.internic.net/rfc/rfc1738.txt 

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

Author: Raymond Moon, raymoon@moonware.dgsys.com
Copyright 1996 - Raymond Moon
ALL RIGHTS RESERVED
Last Changed: 17 Feb 96

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

Subject: 2. Table of Contents

1.  Introduction And Intent
2.  Table Of Contents
3.  What is A86 Assembler and Where Can I Get It
4.  Structuring Assembly Language in A86
5.  A386/D386 Availability
6.  A86 Source Code Site
7.  Eric Isaacson's A86 Assembler and D86 Debugger Web Page
8.  Acknowledgments

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

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

3.1  A86 ASSEMBLER - A86V402.ZIP

The A86 is Eric Isaacson's shareware assembler.  The latest version is 4.02
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

New features of version 4.02 are:
- INCLUDE file support
- listings
- no limit on size of sourse files
- forward references in complex expressions
- END operand
- default ORG END in DATA SEGMENT

3.2  D86 DEBUGGER - D86V402.ZIP

The D86 is Eric Isaacson's shareware debugger.  The latest version is 4.02. 
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

New features of version 4.02 are:
- Keystroke scripts
- macro keys
- Undo command
- file copy and delete

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 SimTel

    ftp://ftp.coast.net/SimTel/msdos/asmutil

    mget ?86*                   For all files
        or
    mget ?86v402.zip            or the basic A86 and D86 files

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last changed: 4 Nov 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 SimTel.

    ftp://ftp.coast.net/SimTel/msdos/asmutil/struca86.zip

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

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

Subject: 5. A386/D386 Availability

I have received the following information about A386/D386 availability from
the author, Mr.Eric Isaacson:

A preliminary version of A386+D386 currently is shipping on the registered
A86+D86 disk.  The A386 implements the entire 386/486/Pentium instruction
set, including 32-bit registers, 32-bit expression arithmetic, and 32-bit
memory indexing.  The only major feature not yet implemented is segments of
type USE32 (i.e., flat mode).  There is not any schedule date for
completing that last feature.

Note that the A86-only registered disk does not have A386. the A386 disk is
available for $80 to get A386 ($82 overseas, $84 in Indiana).  The printed
manual that covers everything is an additional $10 ($15 overseas, $10.50 in
Indiana).

If you already have registered A86+D86, the A386 disk is available for the
normal update service fee of $10 ($12 overseas, $10.50 in Indiana).  If A86
but not D86 is registered, the A386 disk is available for $40 ($42 overseas
or Indiana).  Again, the printed manual is extra.

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last changed: 20 May 95 

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

Subject 6: A86 Source Code Site

6.1 WHERE

The following programs include A86 source code and are available:
 
    ftp://kludge.byron.apana.org.au/pub/jtsoftware

6.2 WARNING - NOT A SPEED DEMON

Just a warning that the Oz link may be a bit slow (100 cps) but none of the
files are huge.  The largest, colrboot.zip and kwikhelp.zip are on SimTel.

6.3 A FASTER WAY IS NOW AVAILABLE

Jim Tucker has installed procmail and all files at the above ftp site now are
available by e-mail request.  For information e-mail:

         To: netpic@byron.apana.org.au
    Subject: send help

The response is automatic and the body of the message will be ignored.  The help
file will explain how to request a descriptive list of all files, an  ls -al' of
the directory and how to request the files.  Non-ASCII files, i.e., .zip files,
will be returned UUEncoded.  You may request Jim Tucker's UUDecoder, MUUD.COM,
an ASCII executiable Netrun program, which does not need decoding.

6.4 FILES AVAILABLE AND DESCRIPTION

================================================================================
FILES MARKED * are available on SimTel (check the version number).
FILES MARKED # include A86 assembler source code
================================================================================

colrboot.zip    *#  Writes a boot sector to floppies which displays color text
                    if user tries to boot from the disk.  Works with non-system
                    disks through BIOS.  The display is NOT a file.  Choice of
                    many displays.  Can boot from C drive etc.  Useful A86 boot
                    sector source code included.

kwikhelp.zip    *#  Lets you create your own TSR screens easily and quickly. 
                    Includes A86 source code.

eatpaper.zip    #   10 silly TSRs which make your dot matrix printer do silly 
                    things. Source code included.  Useful if you want to write
                    TSRs to control your printer.

kbutils.zip     #   A single TSR that includes:  Constant fat cursor that
                    *always* works, instant abort from program loops, send LF FF
                    Skip perf code to the printer from hotkeys.  The source code
                    is included.

muud.zip        #   A mini-UUDecoder.  Does most things but reads only a single
                    source file.  Its claim to fame is it is only 950 bytes and
                    uses only 40 lines of ASCII in NETRUN.  The NETRUN file is
                    included so you can e-mail it to somebody without a decoder. 
                    Includes the source code. 

MUUD.NPX            This is muud in executable ASCII.  It will run with either
                    DOS or UNIX end line codes without decoding!

rot13.zip       #   A trivial thing. You might like to see the source.  Uses my
                    macros but the algorithm might be useful. 

drlite.zip      #   Shows lites on screen when drive(s) active (my  computer is
                    under the desk). Works a treat. 

cputimer.zip    #   Net people are always asking how do you time a CPU.  Here's
                    how I do it.  Dead easy.  Source included. 

colrprmt.zip    #   I have drives A-H and need to easily see which one is
                    current.  I came up with this.  It changes the color of the
                    DOS prompt.  It cheats a lot, but it works.  Source
                    included.

mymacros.zip    #   I use macros a bit... especially "say@ 'blah blah'"  This
                    might help.  You'll need to be versed in A86.  You should
                    also have the registered version of A86. 

tetris.zip      #   It seems silly to include a game in a serious program. 
                    (NETPIC -#).  It's only 500 bytes so what the heck.  Here's
                    the program (stand alone) and the source code.  I've removed
                    the macros so A86 will assemble this for you.

fptofile.zip    #   Yet another print to disk.  This one is better.  Has hot
                    keys for on-off.  Variable buffer size JIM (load high). 
                    Change target filename while loaded. Etc etc etc.  This
                    includes the FULL source code for A86 (it will assemble as
                    is) and FULL listings file.  Grab this if you are learning
                    assembler.

com2data.zip    #   Converts a COM or EXE file (or anything really) to ASM data
                    statements.  I use this to execute a C program from within a
                    .COM program written in assembler.  Includes source code and
                    source suggestions for use. 

Contributor: Jim Tucker,    jtucker@byron.apana.org.au or
                            jtucker@adam.com.au
Last changed: 29 Aug 95

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

Subject: 7. Eric Isaacson's A86 Assembler and D86 Debugger Web Page

7.1 A86/D86 WEB PAGE

Eric Isaacson has his own web page for the A86 Assembler and the D86 Debugger. 
The URL is:
    http://eji.com/a86/index.htm
The topics of this page are:
    Overview of A86
    Overview of D86
    A86 and D86 Features
    A386 and D386 Status
    Downloading A86 and D86

7.2 GETTING A86 AND D86 STRAIGHT FROM THE HORSES MOUTH

As indicated above, you can get the A86 assembler and D86 Debugger right from
the author's web site.  The URLs are:

    For A86:    http://eji.com/a86.zip
    For D86:    http://eji.com/d86.zip

Contributor: Raymond Moon, raymoon@moonware.dgsys.com
Last changed: 16 Apr 96

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

Subject: 8. 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.

John Krueger and Gary Smith