home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / A86V402.ZIP / A01.DOC < prev    next >
Text File  |  1995-09-24  |  17KB  |  344 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
  14. free-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 A86Vxxx.ZIP and D86Vxxx.ZIP 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 A86 is of use to you, you must
  32.    become a registered user by sending $50 US, ($52 if you are
  33.    outside North America) to:
  34.  
  35.       Eric Isaacson
  36.       416 E. University Ave.
  37.       Bloomington, IN 47401-4739
  38.  
  39.    For your convenience, I now accept Visa, MasterCard and
  40.    American Express, by telephone or mail.  My voice number is
  41.    1-812-339-1811.  My fax number is 1-812-335-1611.
  42.  
  43.    For the convenience of users in Great Britain, I have
  44.    authorized the firm Atlantic Coast Plc to collect
  45.    registrations for me.  We'll try to keep the prices about the
  46.    same whether you register through me or through them; it's
  47.    your choice.  Their address is The Shareware Village, Colyton,
  48.    Devon EX13 6HA, telephone 01297 552222.  They'll send me a
  49.    list of registered users at the end of every month, and I'll
  50.    send an acknowledgement to each user when I get the list.  So
  51.    if you haven't heard from me by the end of the month following
  52.    your registration with them, please let me know.
  53.                                                               1-2
  54.  
  55.    Your registration includes the latest diskette (3.5 inch, or
  56.    high-density 5.25 inch), that also includes the A86LIB tool
  57.    available to registered users only.  You may order further
  58.    updates for $10 US, or $12 US if you are overseas.  Once you
  59.    register for this package, you are registered for all future
  60.    versions -- you have permanent rights to execute A86 on one
  61.    computer.  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 (without the printed manual).  The A86+D86 registered
  67.    disk also includes a preliminary version of A386 and D386.
  68.  
  69.    I also offer a printed version of this manual, covering both
  70.    A86 and D86. The manual is printed on sheets 8.5 inches high
  71.    and 7 inches wide, with a plastic ring-style binding so the
  72.    book can lay flat.  If you order with your registration the
  73.    manual is an extra $10 to the U.S., $15 overseas. If you've
  74.    already registered and now want the manual, add another $10
  75.    ($12 overseas) for the update disk that the manual is bundled
  76.    with.  There is a limit of one manual per computer registered
  77.    (except you may reorder when there is a substantial revision
  78.    to the manual).
  79.  
  80.    Indiana residents need to add sales tax.  At the current rate
  81.    of 5%, the prices for Indiana residents are $52.50 for one
  82.    product, $63 one product with manual, $84 both products,
  83.    $94.50 both products with manual, $21 manual if already
  84.    registered.
  85.  
  86.    Educational institutions and training facilities MUST be
  87.    registered in order to use A86 in courses.  Contact me for
  88.    special terms.
  89.  
  90.    Companies and government agencies MUST be registered in order
  91.    to use A86 for their work.  Again, contact me for special
  92.    terms.
  93.  
  94. 3. This package may not be sold to anyone.  If the package is
  95.    distributed on a diskette, any fees collected must be
  96.    specified as materials/handling, and may not exceed $10 for
  97.    the diskette.
  98.  
  99. 4. The user is completely responsible for determining the fitness
  100.    or usability of this package.  I will not be liable for any
  101.    damages, of any kind, arising from any failure of any programs
  102.    in this package to perform as expected.
  103.                                                               1-3
  104.  
  105. 5. Only permanent registered users can sell or distribute any
  106.    programs that you have written or modified using this
  107.    assembler.  If you do sell or distribute such programs, you
  108.    must insure that your registered name (company or individual)
  109.    will always be distributed with the program, so that I can
  110.    verify your registration.  Any individual or company found to
  111.    be violating these terms will be liable for triple
  112.    registration fees for every machine they own capable of
  113.    running my assembler (plus any legal and court costs).
  114.  
  115.    NOTE that the only computers that need to be registered are
  116.    those executing the program A86.COM.  The programs produced by
  117.    A86 are entirely yours-- there are no "run-time royalties".
  118.  
  119. 6. A86 takes advantage of situations in which more than one set
  120.    of opcodes can be generated for the same instruction.  (For
  121.    example, MOV AX,BX can be generated using either an 89 or 8B
  122.    opcode, by reversing fields in the following effective address
  123.    byte.  Both forms are absolutely identical in functionality
  124.    and execution speed.)  A86 adopts an unusual mix of choices in
  125.    such situations.  This creates a code-generation "footprint"
  126.    that occupies no space in your program file, but will enable
  127.    me to tell, and to demonstrate in a court of law, if a
  128.    non-trivial object file has been produced by A86. The
  129.    specification for this "footprint" is sufficiently obscure and
  130.    complicated that it would be impossible to duplicate by
  131.    accident.  I claim exclusive rights to the particular
  132.    "footprint" I have chosen, and prohibit anyone from
  133.    duplicating it.  This has at least two specific implications:
  134.  
  135.    a. Any assembler that duplicates the "footprint" is mine.  If
  136.       it is not identified as mine and issued under these terms,
  137.       then those who sell or distribute the assembler will be
  138.       subject to prosecution.
  139.  
  140.    b. Any program marked with the "footprint" has been produced
  141.       by my assembler.  It is subject to condition 5 above.
  142.  
  143.  
  144. Registration Benefits
  145.  
  146. Thank you for enduring the legalities.  They are there to protect
  147. me, and also to convince you that this is my business, from which
  148. I make my living.  I'll now return to a softer sell, to try to
  149. make you want to register for my products.
  150.  
  151. There is a certain amount of ambiguity about when you're still
  152. evaluating A86, and when you're really using A86 and should
  153. register for it.  Some cases are clear (e.g., you're a school
  154. using A86 to teach a course); but many are not.  In practical
  155. reality, it's up to you to decide: you are "on your honor". Also
  156. in practical reality, most users who ought to register haven't,
  157. yet. For most, it's not dishonesty but merely procrastination.
  158. So I have provided some incentives, to prod you into registering.
  159.                                                               1-4
  160.  
  161. One incentive is the printed manual, which only registered users
  162. can purchase. I haven't left anything out of the disk version of
  163. the manual, but the printed version is formatted and bound much
  164. more nicely than if you print it yourself.
  165.  
  166. Another incentive, included if you register both A86 and D86, is
  167. a preliminary test version of A386 and D386.  At this writing,
  168. all instructions though the Pentium are implemented, except
  169. assembly to a 32-bit protected-mode segment (in which you need
  170. override bytes for 16-bit operands instead of 32-bit operands).
  171.  
  172. Another incentive is the tool A86LIB.COM, that lets you create
  173. libraries of source files, to be automatically searched by A86
  174. whenever your program has undefined symbols.  This means you can
  175. effectively add procedures of arbitrary power and complexity to
  176. A86's language.
  177.  
  178. Also, when you register you're on my mailing list.  I'll
  179. occasionally send you notices about what I've added to A86 and
  180. D86 since the last notice.  When I bring out new products, you'll
  181. hear about them.
  182.  
  183. Finally, there are the intangible incentives.  You know you've
  184. done the right thing.  You're letting me know that you appreciate
  185. what I've done.  You're letting the world know that quality
  186. software can succeed when distributed as shareware.
  187.  
  188.  
  189. Overview of A86
  190.  
  191. A86 accepts assembly language source files, and transforms them
  192. directly into either: (1) .COM files executable under MS-DOS,
  193. starting at offset 0100 within a code segment; (2) .OBJ files
  194. suitable for feeding to a linker; or (3) object files starting at
  195. offset 0, suitable for copying to ROMs.  A86 is a full featured,
  196. professional-quality program. I designed A86 to be as closely
  197. compatible to the standard Intel/IBM assembly language as
  198. possible, given that I insisted upon making design and language
  199. enhancements necessary to make A86 the best possible assembler.
  200. Some of A86's most notable features are:
  201.  
  202. * A86 is blazingly fast-- 4 times as fast as MASM V5.1.  On a
  203.   typical modern computer (486/33 with source files already
  204.   disk-cached) A86 assembles at a rate of over ten thousand lines
  205.   per second.  That's per second.  NOT per minute, per second.
  206.                                                               1-5
  207.  
  208. * A86 is simple to use.  You can feed it a program containing
  209.   just machine instructions, without the red tape (NAME, ASSUME,
  210.   SEGMENT PARA PUBLIC, PROC, ENDP, END, PUBLIC, EXTRN, etc. etc.)
  211.   necessary with other assemblers.  The output of A86 can be a
  212.   .COM file, ready to execute immediately.  You don't have to go
  213.   through a linker.  Or, if you want to go through a linker, A86
  214.   will produce a correct .OBJ file even if no red tape directives
  215.   are given-- the default settings are compatible with most
  216.   high-level languages.  (If you have programs written for
  217.   another assembler containing the red tape directives, you may
  218.   leave them in: A86 knows about them, and is programmed to act
  219.   upon them when assembling .OBJ files, and ignore them if
  220.   assembling .COM files.)
  221.  
  222. * In spite of its simplicity, A86 encourages modular programming,
  223.   even in its .COM mode, with separately-developed source files.
  224.   This is because A86 assembles multiple source files in its
  225.   invocation line; and because A86 assembles source files faster
  226.   than other people's linkers can link their object files.  You
  227.   get all the advantages of relocation/linkage systems (building
  228.   up libraries of reliable program modules that you can piece
  229.   together), without the disadvantages (excessive,
  230.   time-and-source-code-wasting, confusing red tape).
  231.  
  232. * A86 has ample capacity for really large programming projects.
  233.   Its symbol table capacity is approximately 3000 10-letter
  234.   symbols, plus room for 15K bytes of compressed macro definition
  235.   text.  (10 letters is an average symbol length; A86 recognizes
  236.   up to 127 letters in a symbol.) Plus, A86's generic local label
  237.   facility effectively doubles your symbol table capacity.
  238.  
  239. * A86 has language extension features that, once you start using,
  240.   you'll never want to do without.  These include multiple
  241.   operands to PUSH and POP; conditional returns; MOV from one
  242.   segment register to another; assembly time assertion checking;
  243.   based structures; and IF (flag) (statement).
  244.  
  245. * A86's macro processor is the best, achieving an optimal balance
  246.   between ease of use and raw power.  Its looping and text
  247.   concatenation abilities let you define sophisticated macros,
  248.   whose calls look just like the machine instructions that
  249.   surround them; without the clumsy invocation syntax required by
  250.   other macro processors of A86's power.
  251.  
  252. * A86 provides clear, English error messages, given right at the
  253.   point in the source code where A86 detected the error.  The
  254.   messages are actually inserted into your source file, where you
  255.   can read them and correct your code at the same time.  You can
  256.   remove the messages yourself, or A86 will remove them for you
  257.   when it reassembles the file.  (Fear not: your original source
  258.   is preserved in x.OLD if you want it.  Or you can disable this
  259.   feature and send error messages to a .ERR file.)
  260.                                                               1-6
  261.  
  262. * A86 provides a full complement of assembly time expression
  263.   arithmetic operators, compatible with Intel/IBM assemblers. A86
  264.   also provides 4-function floating point arithmetic in assembly
  265.   time expressions used for floating point initializations (an
  266.   A86-exclusive feature).
  267.  
  268. * A86 assembles the floating point instruction set of the
  269.   8087/287/387/IIT coprocessors, and the extended instruction set
  270.   of the 186/286/NEC series, including the NEC-unique
  271.   instructions.  The 386 version, A386, assembles all the new
  272.   386/486/Pentium instructions.
  273.  
  274. * A86 has a built-in source file library feature.  Any undefined
  275.   procedures or macros in your program are automatically searched
  276.   for in a special library file A86.LIB, and the associated
  277.   source files are automatically assembled.  This makes access to
  278.   library routines as effortless as it is in the "C" programming
  279.   language.  A sample A86.LIB file is included in the shareware
  280.   version of the package.  Only registered users should have the
  281.   tool A86LIB, with which you can create your own library files.
  282.  
  283. * A86 has a powerful listing facility, allowing you complete
  284.   flexibility over the format of your listings, and including an
  285.   extremely sophisticated algorithm for automatically generating
  286.   page breaks at sensible places.
  287.  
  288. * A86 works with an associated symbolic debugger, D86, to make
  289.   the finest development environment available for the PC.  See
  290.   the D86 package for the details of its features.
  291.  
  292.  
  293. About the Author
  294.  
  295. I am a full-time shareware author.  I have worked with Intel
  296. microprocessors since the early days of the 8080.  As an employee
  297. of Intel, I was a part of the two-man team that implemented the
  298. first ASM86 assembler. Having worked with all the processors of
  299. the 86 family from the beginning, I know as much as anyone about
  300. their machine-language architecture.
  301.  
  302. A86 and D86 themselves are extremely mature, solid programs.
  303. They have been in existence since 1984, running first under my
  304. own, proprietary operating system; then later under the Xenix
  305. operating system on Altos computers, used by myself and my
  306. clients.  I have been making a decent living from my products for
  307. some time now, and with your much-appreciated support, I will
  308. continue to improve my products, and enhance them with new,
  309. related offerings.
  310.                                                               1-7
  311.  
  312. How to Contact Me
  313.  
  314. I have no plans to move from my present location at least through
  315. the millennium.  So you can write to:
  316.  
  317.     Eric Isaacson Software
  318.     416 East University Ave.
  319.     Bloomington, IN 47401-4739
  320.  
  321. or call 1-812-339-1811 voice, or 1-812-335-1611 fax.
  322.  
  323. Sorry, I can't guarantee to return everybody's long distance
  324. calls.  If you'd like to be SURE I'll get back to you, please
  325. invite me to call you back collect, or tell me to charge the cost
  326. of the call to your credit card.
  327.  
  328. I also have a section on Compuserve: just type GO ZIPKEY to any !
  329. prompt.  (ZIPKEY is the name of my other product line, a pop-up
  330. zipcode directory.)  My Internet address is
  331. 71333.3154@compuserve.com.
  332.  
  333. If you have extraordinary difficulty contacting me, write the ASP
  334. Ombudsman, 545 Grover Road, Muskegon, MI 49442-9427.  He'll also
  335. try to mediate any business problems people might have with
  336. shareware authors or distributors.
  337.  
  338. PLEASE contact me if you find bugs in my programs; I'll fix them!
  339. I accept bug reports from anyone, registered or non-registered,
  340. no questions asked.  It's very frustrating to hear about people
  341. telling each other about bugs, and not telling me.  I still await
  342. Greg Wettstein's bug list.
  343.  
  344.