home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sharew / a86 / asm_doc / a01.doc < prev    next >
Encoding:
Text File  |  1987-12-16  |  14.2 KB  |  303 lines

  1. CHAPTER 1   INTRODUCTION AND LEGAL TERMS
  2.  
  3.  
  4. Introduction
  5.  
  6. A86 is the finest assembler available, at any cost under any
  7. terms, for the 86-family of microprocessors (IBM-PC, compatibles,
  8. and not-so-compatibles).  In contrast to software firms who
  9. attempt to restrict the distribution of their products via
  10. protection-schemes, I encourage free distribution, and trust that
  11. those who use my products will pay for them.
  12.  
  13. Please keep in mind the fundamental good spirit of free-
  14. distribution software as you endure the following barrage of
  15. legalities.  Then evaluate the outstanding value that the A86
  16. package offers you.  I assure you that you will not be
  17. disappointed.
  18.  
  19.  
  20. Legal Terms and Conditions
  21.  
  22. This package is provided to you under the following conditions:
  23.  
  24. 1. You may copy the A86Vxxxx.ARC and D86Vxxxx.ARC files, and give
  25.    them to anyone who accepts these terms.  The copies you
  26.    distribute must be complete and unmodified.  You do not have
  27.    to be registered to distribute this package.
  28.  
  29. 2. Even if you have not yet obtained full execution rights, you
  30.    may execute the programs in this package, in order to evaluate
  31.    them.  If you decide that any of this package is of use to
  32.    you, you must become a registered user by sending $50 US ($52
  33.    if you are outside North America) to:
  34.  
  35.       Eric Isaacson
  36.       416 E. University Street
  37.       Bloomington, IN 47401
  38.  
  39.    For your convenience, I now accept Visa and MasterCard, by
  40.    telephone.  My number is (812)339-1811.
  41.  
  42.    For the convenience of users in Great Britain, I have
  43.    authorized the firm Shareware Marketing to collect
  44.    registrations for me.  (But the printed version of the manual
  45.    is not yet available from them; if you want it, you should
  46.    order directly from me.)  We'll try to keep the prices about
  47.    the same whether you register through me or through them; it's
  48.    your choice.  Their address is 87 High Street, Tonbridge, Kent
  49.    TN9 1RX; telephone 0732 771344.  They'll send me a list of
  50.    registered users at the end of every month, and I'll send an
  51.    acknowledgement to each user when I get the list.  So if you
  52.    haven't heard from me by the third week of the month following
  53.    your registration with them, please let me know.
  54.                                                               1-2
  55.  
  56.    Your registration includes a single update diskette (5.25
  57.    inch, double density), that also includes the A86LIB tool
  58.    available to registered users only.  You may order further
  59.    updates for $10 US, or $12 US if you are overseas.  Once you
  60.    register for this package, you are registered for all future
  61.    versions.  As long as I'm in business, you can get the latest
  62.    version for just the update fee.
  63.  
  64.    I have a combination offer for the A86 and D86 packages.
  65.    Instead of $50 + $50 = $100, I charge $80 ($82 overseas) for
  66.    both.
  67.  
  68.    I also offer a printed version of this manual, covering both
  69.    A86 and D86.  The manual is printed on sheets 8.5 inches high
  70.    and 7 inches wide, with a plastic ring-style binding so the
  71.    book can lay flat.  If you order with your registration the
  72.    manual is an extra $10 to the U.S., $18 to England and Europe,
  73.    $22 to further points.  If you've already registered and now
  74.    want the manual, add $10 for the update disk that the manual
  75.    is bundled with.  There is a limit of one manual per computer
  76.    registered (except you may reorder when there is a substantial
  77.    revision to the manual).
  78.  
  79.    Indiana residents need to add sales tax.  At the current rate
  80.    of 5%, the prices for Indiana residents are $52.50 for one
  81.    product, $63 one product with manual, $84 both products,
  82.    $94.50 both products with manual, $21 manual if already
  83.    registered.
  84.  
  85.    Educational institutions and training facilities MUST be
  86.    registered in order to use A86 in courses.  Contact me for
  87.    special terms.
  88.  
  89.    Companies and government agencies MUST be registered in order
  90.    to use A86 for their work.  Again, contact me for special
  91.    terms.
  92.  
  93. 3. This package may not be sold to anyone.  If the package is
  94.    distributed this package on a diskette, any fees collected
  95.    must be specified as materials/handling, and may not exceed
  96.    $10 for the diskette.
  97.  
  98. 4. The user is completely responsible for determining the fitness
  99.    or usability of this package.  I will not be liable for any
  100.    damages, of any kind, arising from any failure of any programs
  101.    in this package to perform as expected.
  102.  
  103. 5. Only permanent registered users can sell or distribute any
  104.    programs that you have written or modified using this
  105.    assembler.  If you do sell or distribute such programs, you
  106.    must insure that your registered name (company or individual)
  107.    will always be distributed with the program, so that I can
  108.    verify your registration.  Any individual or company found to
  109.    be violating these terms will be liable for triple
  110.    registration fees for every machine they own capable of
  111.    running my assembler (plus any legal and court costs).
  112.                                                               1-3
  113.  
  114. 6. A86 takes advantage of situations in which more than one set
  115.    of opcodes can be generated for the same instruction.  (For
  116.    example, MOV AX,BX can be generated using either an 89 or 8B
  117.    opcode, by reversing fields in the following ModRM byte.  Both
  118.    forms are absolutely identical in functionality.)  A86 adopts
  119.    an unusual mix of choices in such situations.  This creates a
  120.    code-generation "footprint" that occupies no space in your
  121.    program file, but will enable me to tell, and to demonstrate
  122.    in a court of law, if a non-trivial object file has been
  123.    produced by A86.  The specification for this "footprint" is
  124.    sufficiently obscure and complicated that it would be
  125.    impossible to duplicate by accident.  I claim exclusive rights
  126.    to the particular "footprint" I have chosen, and prohibit
  127.    anyone from duplicating it.  This has at least two specific
  128.    implications:
  129.  
  130.    a. Any assembler that duplicates the "footprint" is mine.  If
  131.       it is not identified as mine and issued under these terms,
  132.       then those who sell or distribute the assembler will be
  133.       subject to prosecution.
  134.  
  135.    b. Any program marked with the "footprint" has been produced
  136.       by my assembler.  It is subject to condition 5 above.
  137.  
  138.  
  139. Overview of A86
  140.  
  141. A86 accepts assembly language source files, and transforms them
  142. directly into either: (1) .COM files executable under MS-DOS,
  143. starting at offset 0100 within a code segment; (2) .OBJ files
  144. suitable for feeding to a linker; or (3) object files starting at
  145. offset 0, suitable for copying to ROMs.  A86 is a full featured,
  146. professional quality program. I designed A86 to be as closely
  147. compatible to the standard Intel/IBM assembly language as
  148. possible, given that I insisted upon making design and language
  149. enhancements necessary to make A86 the world's finest assembler.
  150. Some of A86's most notable features are:
  151.  
  152. * A86 is blazingly fast.  Don't believe the advertisements of
  153.   that other, big company.  THIS is the fastest MSDOS macro
  154.   assembler, bar none.  In the best conditions (large program,
  155.   8MHz AT,  RAM drive) A86 assembles at a rate of over a thousand
  156.   lines per second.  That's per second.  NOT per minute, per
  157.   second.
  158.                                                               1-4
  159.  
  160. * A86 is simple to use.  You can feed it a program containing
  161.   just machine instructions, without the red tape (NAME, ASSUME,
  162.   SEGMENT PARA PUBLIC, PROC, ENDP, END, PUBLIC, EXTRN, etc. etc.)
  163.   necessary with other assemblers.  The output of A86 can be a
  164.   .COM file, ready to execute immediately.  You don't have to go
  165.   through a linker.  Or, if you want to go through a linker, A86
  166.   will produce a correct .OBJ file even if no red tape directives
  167.   are given-- the default settings are compatible with most high-
  168.   level languages.  (If you have programs written for that other
  169.   assembler containing the red tape directives, you may leave
  170.   them in: A86 knows about them, and is programmed to act upon
  171.   them when assembling .OBJ files, and ignore them if assembling
  172.   .COM files.)
  173.  
  174. * In spite of its simplicity, A86 encourages modular programming,
  175.   even in its .COM mode, with separately-developed source files.
  176.   This is because A86 assembles multiple source files in its
  177.   invocation line; and because A86 assembles source files faster
  178.   than other people's linkers can link their object files.  You
  179.   get all the advantages of relocation/linkage systems (building
  180.   up libraries of reliable program modules that you can piece
  181.   together), without the disadvantages (excessive,
  182.   time-and-source-code-wasting, confusing red tape).
  183.  
  184. * A86 has ample capacity for really large programming projects.
  185.   Its symbol table capacity is approximately 1500 10-letter
  186.   symbols, plus room for 8K bytes of compressed macro definition
  187.   text.  (10 letters is an average symbol length; A86 recognizes
  188.   up to 127 letters in a symbol.) Plus, A86's generic local label
  189.   facility effectively doubles your symbol table capacity.
  190.  
  191. * A86 has language extension features that, once you start using,
  192.   you'll never want to do without.  These include multiple
  193.   operands to PUSH and POP; conditional returns; MOV from one
  194.   segment register to another; assembly time assertion checking;
  195.   based structures; and IF (flag) (statement).
  196.  
  197. * A86's macro processor is the best, achieving an optimal balance
  198.   between ease of use and raw power.  Its looping and text
  199.   concatenation abilities let you define sophisticated macros,
  200.   whose calls look just like the machine instructions that
  201.   surround them; without the clumsy invocation syntax required by
  202.   other macro processors of A86's power.
  203.  
  204. * A86 provides clear, English error messages, given right at the
  205.   point in the source code where A86 detected the error.  The
  206.   messages are actually inserted into your source file, where you
  207.   can read them and correct your code at the same time.  You can
  208.   remove the messages yourself, or A86 will remove them for you
  209.   when it reassembles the file.  (Fear not: your original source
  210.   is preserved in x.OLD if you want it.  Or you can disable this
  211.   feature and send error messages to a .ERR file.)
  212.                                                               1-5
  213.  
  214. * A86 provides a full complement of assembly time expression
  215.   arithmetic operators, compatible with Intel/IBM assemblers. A86
  216.   also provides 4-function floating point arithmetic in assembly
  217.   time expressions used for floating point initializations (an
  218.   A86-exclusive feature).
  219.  
  220. * A86 assembles the floating point instruction set of the
  221.   8087/287, and the extended instruction set of the 186/286/NEC
  222.   series.  This now includes the NEC-unique instructions, which I
  223.   had been unaware of until somebody pointed them out to me.
  224.  
  225. * A86 has a built-in source file library feature.  Any undefined
  226.   symbols in your program are automatically searched for in a
  227.   special library file A86.LIB, and the associated source files
  228.   are automatically assembled.  This makes access to library
  229.   routines as effortless as it is in the "C" programming
  230.   language.  A sample A86.LIB file is included in the shareware
  231.   version of the package. Only registered users should have the
  232.   tool A86LIB, with which you can create your own library files.
  233.  
  234. * A86 works with an associated symbolic debugger, D86, to make
  235.   the finest development environment available for the PC.  See
  236.   the D86 package, available now, for the details of its
  237.   wonderful features.
  238.  
  239.  
  240. Who IS That Guy?
  241.  
  242. For those of you who wish to know what credentials I have for
  243. producing programs that meet the above claims, let me tell you
  244. who I am.  I am an independent software consultant.  I have
  245. worked with Intel microprocessors since the early days of the
  246. 8080.  As an employee of Intel, I was a part of the two-man team
  247. that implemented the first ASM86 assembler.  I am one of the
  248. world's leading authorities on the entire 86 family of
  249. microcomputers, having completed numerous major projects
  250. involving the 8086, and 80186, and the 80286.  I just completed a
  251. book, The 80386/387 Architecture, by Morse, Isaacson, and Albert,
  252. published by Wiley and Sons.  Look for it in your bookstore.
  253.  
  254. A86 and D86 themselves are mature, solid programs.  They have
  255. been in existence for over 3 years, running first under my own,
  256. proprietary operating system; then later under the Xenix
  257. operating system on Altos computers, used by myself and my
  258. clients.
  259.  
  260. Although I have been unknown to the world of the IBM-PC until
  261. A86, I intend to change all that in the next couple of years.
  262. Peter Norton, watch out.
  263.                                                               1-6
  264.  
  265. How to Get in Touch With Me
  266.  
  267. For earlier versions of A86, I didn't give out my telephone
  268. number, because I was afraid that all my time would be chewed up
  269. giving telephone support.  But then I attended a convention of
  270. shareware programmers, in which the Big Boys (Wallace, Button,
  271. Magee, etc.) unanimously agreed that a product needs telephone
  272. support to be successful.  So I'll field questions from
  273. REGISTERED users (and you can register on the spot, with a credit
  274. card).
  275.  
  276. So now your choices for contacting me are:
  277.  
  278. 1. Phone me by voice at (812)339-1811.  Have your credit card
  279.    ready if you haven't registered yet.  If you get an answering
  280.    machine, give your card number, expiration date, name as it
  281.    appears on the card, address, city, state, zip, phone number
  282.    with area code, which product or products your are registering
  283.    for, and the amount.
  284.  
  285.    Sorry, but my financial condition is such that I can't
  286.    guarantee to return everybody's long distance calls.  If you'd
  287.    like to be SURE I'll get back to you, please invite me to call
  288.    you back collect, or tell to charge the cost of the call to
  289.    your credit card.
  290.  
  291. 2. Write to me.
  292.  
  293. 3. Leave me bulletin board mail, on the Bloomington PC-Link
  294.    Central bulletin board, at (812)335-7252 335-5803 or 335-5804;
  295.    or Indiana On-Line, at (812)332-7227.  I'll reply on the same
  296.    board.
  297.  
  298. PLEASE contact me if you find bugs in my programs; I'll fix them!
  299. It's very frustrating to hear about people telling each other
  300. about bugs, and not telling me.  I still await your bug list,
  301. Greg Wettstein.
  302.  
  303.