From: raymoon@ms1.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: <70vrps$1p4$6@news.dgsys.com> Followup-To: alt.lang.asm,comp.lang.asm.x86 Date: 23 Nov 1998 18:10:10 GMT Organization: MoonWare Lines: 291 Approved: news-answers-request@MIT.EDU Distribution: world Expires: Sun, 20 Dec 1998 23:59:59 GMT Message-ID: <73c8e2$nos$6@news.dgsys.com> Reply-To: raymoon@moonware.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 Archive-Name: assembly-language/x86/a86 Posting-Frequency: monthly (21st of every month) Last-modified: 1998/10/25 ------------------------------ 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 to both newsgroups and news.answers, alt.answers and comp.answers. It also is archived at the normal FAQ archival site, ftp://rtfm.mit.edu and to SimTel and its mirror sites in the msdos/info directory and Garbo and its mirrors in the pc/doc-net directory. Lastly, the current version is available from my web page as: As text files: http://www2.dgsys.com/~raymoon/faq/asmfaq.zip As HTML documents: http://www2.dgsys.com/~raymoon/faq/asmfaqh.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 on the Internet. I believe that this will enhance the FAQ's value not only to the novices but also to the old hands. 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 period. 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://ds.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 me. Author: Raymond Moon, raymoon@moonware.dgsys.com Copyright 1998 - Raymond Moon ALL RIGHTS RESERVED Last Changed: 25 Oct 98 ------------------------------ 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. A86 Tutorial 9. 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 source 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.simtel.net/pub/simtelnet/msdos/asmutl 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.simtel.net/pub/simtelnet/msdos/asmutl/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 The only A86 Source code site is Simtel and its mirrors. The following two files are available there: 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. Contributor: Ray Moon, raymoon@moonware.dgsys.com Last changed: 20 Dec 96 ------------------------------ 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. A86 Tutorial Homer Tilton has written a simple tutorial on A86 using DEBUG as the debugger. It is available from: http://www6.zdnet.com/cgi-bin/texis/swlib/hotfiles/info.html?fcode=000804 Contributor: Raymond Moon, raymoon@moonware.dgsys.com Last changed: 31 Aug 97 ------------------------------ Subject: 9. 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