home *** CD-ROM | disk | FTP | other *** search
- CHAPTER 1 INTRODUCTION AND LEGAL TERMS
-
-
- Introduction
-
- A86 is the finest assembler available, at any cost under any
- terms, for the 86-family of microprocessors (IBM-PC, compatibles,
- and not-so-compatibles). In contrast to software firms who
- attempt to restrict the distribution of their products via
- protection-schemes, I encourage free distribution, and trust that
- those who use my products will pay for them.
-
- Please keep in mind the fundamental good spirit of free-
- distribution software as you endure the following barrage of
- legalities. Then evaluate the outstanding value that the A86
- package offers you. I assure you that you will not be
- disappointed.
-
-
- Legal Terms and Conditions
-
- This package is provided to you under the following conditions:
-
- 1. You may copy the A86Vxxxx.ARC and D86Vxxxx.ARC files, and give
- them to anyone who accepts these terms. The copies you
- distribute must be complete and unmodified. You do not have
- to be registered to distribute this package.
-
- 2. Even if you have not yet obtained full execution rights, you
- may execute the programs in this package, in order to evaluate
- them. If you decide that any of this package is of use to
- you, you must become a registered user by sending $50 US ($52
- if you are outside North America) to:
-
- Eric Isaacson
- 416 E. University Street
- Bloomington, IN 47401
-
- For your convenience, I now accept Visa and MasterCard, by
- telephone. My number is (812)339-1811.
-
- For the convenience of users in Great Britain, I have
- authorized the firm Shareware Marketing to collect
- registrations for me. (But the printed version of the manual
- is not yet available from them; if you want it, you should
- order directly from me.) We'll try to keep the prices about
- the same whether you register through me or through them; it's
- your choice. Their address is 87 High Street, Tonbridge, Kent
- TN9 1RX; telephone 0732 771344. They'll send me a list of
- registered users at the end of every month, and I'll send an
- acknowledgement to each user when I get the list. So if you
- haven't heard from me by the third week of the month following
- your registration with them, please let me know.
- 1-2
-
- Your registration includes a single update diskette (5.25
- inch, double density), that also includes the A86LIB tool
- available to registered users only. You may order further
- updates for $10 US, or $12 US if you are overseas. Once you
- register for this package, you are registered for all future
- versions. As long as I'm in business, you can get the latest
- version for just the update fee.
-
- I have a combination offer for the A86 and D86 packages.
- Instead of $50 + $50 = $100, I charge $80 ($82 overseas) for
- both.
-
- I also offer a printed version of this manual, covering both
- A86 and D86. The manual is printed on sheets 8.5 inches high
- and 7 inches wide, with a plastic ring-style binding so the
- book can lay flat. If you order with your registration the
- manual is an extra $10 to the U.S., $18 to England and Europe,
- $22 to further points. If you've already registered and now
- want the manual, add $10 for the update disk that the manual
- is bundled with. There is a limit of one manual per computer
- registered (except you may reorder when there is a substantial
- revision to the manual).
-
- Indiana residents need to add sales tax. At the current rate
- of 5%, the prices for Indiana residents are $52.50 for one
- product, $63 one product with manual, $84 both products,
- $94.50 both products with manual, $21 manual if already
- registered.
-
- Educational institutions and training facilities MUST be
- registered in order to use A86 in courses. Contact me for
- special terms.
-
- Companies and government agencies MUST be registered in order
- to use A86 for their work. Again, contact me for special
- terms.
-
- 3. This package may not be sold to anyone. If the package is
- distributed this package on a diskette, any fees collected
- must be specified as materials/handling, and may not exceed
- $10 for the diskette.
-
- 4. The user is completely responsible for determining the fitness
- or usability of this package. I will not be liable for any
- damages, of any kind, arising from any failure of any programs
- in this package to perform as expected.
-
- 5. Only permanent registered users can sell or distribute any
- programs that you have written or modified using this
- assembler. If you do sell or distribute such programs, you
- must insure that your registered name (company or individual)
- will always be distributed with the program, so that I can
- verify your registration. Any individual or company found to
- be violating these terms will be liable for triple
- registration fees for every machine they own capable of
- running my assembler (plus any legal and court costs).
- 1-3
-
- 6. A86 takes advantage of situations in which more than one set
- of opcodes can be generated for the same instruction. (For
- example, MOV AX,BX can be generated using either an 89 or 8B
- opcode, by reversing fields in the following ModRM byte. Both
- forms are absolutely identical in functionality.) A86 adopts
- an unusual mix of choices in such situations. This creates a
- code-generation "footprint" that occupies no space in your
- program file, but will enable me to tell, and to demonstrate
- in a court of law, if a non-trivial object file has been
- produced by A86. The specification for this "footprint" is
- sufficiently obscure and complicated that it would be
- impossible to duplicate by accident. I claim exclusive rights
- to the particular "footprint" I have chosen, and prohibit
- anyone from duplicating it. This has at least two specific
- implications:
-
- a. Any assembler that duplicates the "footprint" is mine. If
- it is not identified as mine and issued under these terms,
- then those who sell or distribute the assembler will be
- subject to prosecution.
-
- b. Any program marked with the "footprint" has been produced
- by my assembler. It is subject to condition 5 above.
-
-
- Overview of A86
-
- A86 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,
- professional quality program. I designed A86 to be as closely
- compatible to the standard Intel/IBM assembly language as
- possible, given that I insisted upon making design and language
- enhancements necessary to make A86 the world's finest assembler.
- Some of A86's most notable features are:
-
- * A86 is blazingly fast. Don't believe the advertisements of
- that other, big company. THIS is the fastest MSDOS macro
- assembler, bar none. In the best conditions (large program,
- 8MHz AT, RAM drive) A86 assembles at a rate of over a thousand
- lines per second. That's per second. NOT per minute, per
- second.
- 1-4
-
- * A86 is simple to use. You can feed it a program containing
- just machine instructions, without the red tape (NAME, ASSUME,
- SEGMENT PARA PUBLIC, PROC, ENDP, END, PUBLIC, EXTRN, etc. etc.)
- necessary with other assemblers. The output of A86 can be a
- .COM file, ready to execute immediately. You don't have to go
- through a linker. Or, if you want to go through a linker, A86
- will produce a correct .OBJ file even if no red tape directives
- are given-- the default settings are compatible with most high-
- level languages. (If you have programs written for that other
- assembler containing the red tape directives, you may leave
- them in: A86 knows about them, and is programmed to act upon
- them when assembling .OBJ files, and ignore them if assembling
- .COM files.)
-
- * In spite of its simplicity, A86 encourages modular programming,
- even in its .COM mode, with separately-developed source files.
- This is because A86 assembles multiple source files in its
- invocation line; and because A86 assembles source files faster
- than other people's linkers can link their object files. You
- get all the advantages of relocation/linkage systems (building
- up libraries of reliable program modules that you can piece
- together), without the disadvantages (excessive,
- time-and-source-code-wasting, confusing red tape).
-
- * A86 has ample capacity for really large programming projects.
- Its symbol table capacity is approximately 1500 10-letter
- symbols, plus room for 8K bytes of compressed macro definition
- text. (10 letters is an average symbol length; A86 recognizes
- up to 127 letters in a symbol.) Plus, A86's generic local label
- facility effectively doubles your symbol table capacity.
-
- * A86 has language extension features that, once you start using,
- you'll never want to do without. These include multiple
- operands to PUSH and POP; conditional returns; MOV from one
- segment register to another; assembly time assertion checking;
- based structures; and IF (flag) (statement).
-
- * A86's macro processor is the best, achieving an optimal balance
- between ease of use and raw power. Its looping and text
- concatenation abilities let you define sophisticated macros,
- whose calls look just like the machine instructions that
- surround them; without the clumsy invocation syntax required by
- other macro processors of A86's power.
-
- * A86 provides clear, English error messages, given right at the
- point in the source code where A86 detected the error. The
- messages are actually inserted into your source file, where you
- can read them and correct your code at the same time. You can
- remove the messages yourself, or A86 will remove them for you
- when it reassembles the file. (Fear not: your original source
- is preserved in x.OLD if you want it. Or you can disable this
- feature and send error messages to a .ERR file.)
- 1-5
-
- * A86 provides a full complement of assembly time expression
- arithmetic operators, compatible with Intel/IBM assemblers. A86
- also provides 4-function floating point arithmetic in assembly
- time expressions used for floating point initializations (an
- A86-exclusive feature).
-
- * A86 assembles the floating point instruction set of the
- 8087/287, and the extended instruction set of the 186/286/NEC
- series. This now includes the NEC-unique instructions, which I
- had been unaware of until somebody pointed them out to me.
-
- * A86 has a built-in source file library feature. Any undefined
- symbols in your program are automatically searched for in a
- special library file A86.LIB, and the associated source files
- are automatically assembled. This makes access to library
- routines as effortless as it is in the "C" programming
- language. A sample A86.LIB file is included in the shareware
- version of the package. Only registered users should have the
- tool A86LIB, with which you can create your own library files.
-
- * A86 works with an associated symbolic debugger, D86, to make
- the finest development environment available for the PC. See
- the D86 package, available now, for the details of its
- wonderful features.
-
-
- Who IS That Guy?
-
- For those of you who wish to know what credentials I have for
- producing programs that meet the above claims, let me tell you
- who I am. I am an independent software consultant. I have
- worked with Intel microprocessors since the early days of the
- 8080. As an employee of Intel, I was a part of the two-man team
- that implemented the first ASM86 assembler. I am one of the
- world's leading authorities on the entire 86 family of
- microcomputers, having completed numerous major projects
- involving the 8086, and 80186, and the 80286. I just completed a
- book, The 80386/387 Architecture, by Morse, Isaacson, and Albert,
- published by Wiley and Sons. Look for it in your bookstore.
-
- A86 and D86 themselves are mature, solid programs. They have
- been in existence for over 3 years, running first under my own,
- proprietary operating system; then later under the Xenix
- operating system on Altos computers, used by myself and my
- clients.
-
- Although I have been unknown to the world of the IBM-PC until
- A86, I intend to change all that in the next couple of years.
- Peter Norton, watch out.
- 1-6
-
- How to Get in Touch With Me
-
- For earlier versions of A86, I didn't give out my telephone
- number, because I was afraid that all my time would be chewed up
- giving telephone support. But then I attended a convention of
- shareware programmers, in which the Big Boys (Wallace, Button,
- Magee, etc.) unanimously agreed that a product needs telephone
- support to be successful. So I'll field questions from
- REGISTERED users (and you can register on the spot, with a credit
- card).
-
- So now your choices for contacting me are:
-
- 1. Phone me by voice at (812)339-1811. Have your credit card
- ready if you haven't registered yet. If you get an answering
- machine, give your card number, expiration date, name as it
- appears on the card, address, city, state, zip, phone number
- with area code, which product or products your are registering
- for, and the amount.
-
- Sorry, but my financial condition is such that I can't
- guarantee to return everybody's long distance calls. If you'd
- like to be SURE I'll get back to you, please invite me to call
- you back collect, or tell to charge the cost of the call to
- your credit card.
-
- 2. Write to me.
-
- 3. Leave me bulletin board mail, on the Bloomington PC-Link
- Central bulletin board, at (812)335-7252 335-5803 or 335-5804;
- or Indiana On-Line, at (812)332-7227. I'll reply on the same
- board.
-
- PLEASE contact me if you find bugs in my programs; I'll fix them!
- It's very frustrating to hear about people telling each other
- about bugs, and not telling me. I still await your bug list,
- Greg Wettstein.
-
-