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 Ave.
- Bloomington, IN 47401-4739
-
- 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 end 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., $15 overseas. 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
-
- NOTE that the only computers that need to be registered are
- those executing the program A86.COM. The programs produced by
- A86 are entirely yours-- there are no "run-time royalties".
-
- 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 and execution
- speed.) 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.
-
-
- Registration Benefits
-
- Thank you for enduring the legalities. They are there to protect
- me, and also to convince you that this is my business, from which
- I expect to make a living. I'll now return to a softer sell, to
- try to make you want to register for my products.
-
- There is a certain amount of ambiguity about when you're still
- evaluating A86, and when you're really using A86 and should
- register for it. Some cases are clear (e.g., you're a school
- using A86 to teach a course); but many are not. In practical
- reality, it up to you to decide: you are "on your honor". Also in
- practical reality, most users who ought to register haven't, yet.
- For most, it's not dishonesty but merely procrastination. So I
- have provided some incentives, to prod you into registering.
-
- One incentive is the printed manual, which only registered users
- can purchase. I haven't left anything out of the disk version of
- the manual, but the printed version is formatted and bound much
- more nicely than if you print it yourself.
-
- Another incentive is the tool A86LIB.COM, that lets you create
- libraries of source files, to be automatically searched by A86
- whenever your program has undefined symbols. This means you can
- effectively add procedures of arbitrary power and complexity to
- A86's language.
- 1-4
-
- Also, when you register you're on my mailing list. I'll
- occasionally send you notices about what I've added to A86 and
- D86 since the last notice. When I bring out new products, you'll
- hear about them. (I'm working on a library of source files for
- A86, and also a 386 assembler-debugger package.)
-
- Finally, there are the intangible incentives. You know you've
- done the right thing. You're letting me know that you appreciate
- what I've done. You're letting the world know that quality
- software can succeed when distributed as shareware.
-
-
- 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 best possible assembler.
- Some of A86's most notable features are:
-
- * A86 is blazingly fast-- 4 times as fast as MASM V5.1. 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.
-
- * 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).
- 1-5
-
- * 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.)
-
- * 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.
- 1-6
-
- About the Author
-
- 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. Having worked with all the
- processors of the 86 family from the beginning, I know as much as
- anyone about their machine-language architecture. I have written
- a book, The 80386/387 Architecture, by Morse, Isaacson, and
- Albert, published by Wiley and Sons, ISBN 0-471-85352-6. Look
- for it in your bookstore (or I'll send you a copy for $25, which
- is the list price plus a nickel).
-
- A86 and D86 themselves are mature, solid programs. They have
- been in existence since 1984, running first under my own,
- proprietary operating system; then later under the Xenix
- operating system on Altos computers, used by myself and my
- clients. I have been making a decent living from A86 and D86 for
- some time now, and with your much-appreciated support, I will
- continue to improve my products, and enhance them with new,
- related offerings.
-
-
- 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, 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 me to charge the
- cost of the call to your credit card.
-
- 2. Write to me-- type A86 with no operands to get my address.
-
- 3. Leave me bulletin board mail, on the Bloomington PC-Link
- Central bulletin board, at (812)335-7252; 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.
-
-