home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / ASM / A86A.ZIP / AREAD_ME.DOC < prev    next >
Encoding:
Text File  |  1986-11-16  |  13.3 KB  |  254 lines

  1. A86 assembler package   V2.18   (V2.16 XREF and EXMAC)      November 16,1986
  2. The entire package is Copyright (C)1986 Eric Isaacson. All rights reserved.
  3.  
  4. For easier bulletin-board distribution, I have split this package into two
  5. ARC files, A86A.ARC and A86B.ARC.  The first half contains enough to get you
  6. started; you can evaluate the package and then download the second half later
  7. on.
  8.  
  9.  
  10. Introduction
  11.  
  12. A86 is the finest assembler available, at any cost under any terms, for the
  13. 86-family of microprocessors (IBM-PC, compatibles, and not-so-compatibles).
  14. In contrast to software firms who attempt to restrict the distribution of their
  15. products via protection-schemes, I encourage free distribution, and trust that
  16. those who use my products will pay for them.
  17.  
  18. Please keep in mind the fundamental good spirit of free-distribution software
  19. as you endure the following barrage of legalities.  Then evaluate the
  20. outstanding value that the A86 package offers you.  I assure you that you will
  21. not be disappointed.
  22.  
  23.  
  24. Legal Terms and Conditions
  25.  
  26. This package is provided to you under the following conditions:
  27.  
  28. 1. You may copy this entire package, and give it to anyone who accepts these
  29.    terms.  The copies you distribute must be complete and unmodified.  You
  30.    do not have to be registered to distribute this package.
  31.  
  32. 2. You may execute the programs in this package, in order to evaluate them.
  33.    If you decide that any of this package is of use to you, you must become a
  34.    registered user by sending $40 US to:
  35.  
  36.       Eric Isaacson
  37.       416 E. University Street
  38.       Bloomington, IN 47401
  39.  
  40.    Registered users may order update-diskettes (5.25 inch, double density)
  41.    for $10 US, plus enough to cover extra postage if you are overseas. (In
  42.    other words, send $50 if you want to register and get an immediate
  43.    update-diskette.)  Once you register for this package, you are entitled to a
  44.    life-time of updates of this package, at $10 each, as long is I am in
  45.    business and willing to cash your $10 checks.  (Well, let's make that 10
  46.    1986-dollars.  If rampant inflation sets in, I reserve the right to raise
  47.    prices accordingly.)  Indiana residents add sales tax.
  48.  
  49.    I have a combination offer for the A86 and D86 packages.  Instead of
  50.    $40 + $40 = $80, I charge $70 for both.
  51.  
  52.    Educational institutions and training facilities MUST be registered in order
  53.    to use A86 in courses.  Contact me for special terms.
  54.  
  55.    Companies and government agencies MUST be registered in order to use A86 for
  56.    their work.  Again, contact me for special terms.
  57.  
  58. 3. You may not sell this package to anyone.  If you distribute this package
  59.    on a diskette, any fees you collect must be specified as materials/handling,
  60.    and may not exceed $10 for the diskette.
  61.  
  62. 4. You are completely responsible for determining the fitness or usability of
  63.    this package.  I will not be liable for any damages, of any kind, arising
  64.    from any failure of any programs in this package to perform as expected.
  65.  
  66. 5. You must be a registered user to sell or distribute any programs that you
  67.    have written or modified using this assembler.  If you do sell or distribute
  68.    such programs, you must insure that your registered name (company or
  69.    individual) will always be distributed with the program, so that I can
  70.    verify your registration.  Any individual or company found to be violating
  71.    these terms will liable for triple registration fees for every machine
  72.    they own capable of running my assembler (plus any legal and court costs).
  73.  
  74. 6. This assembler uses a code-generation "footprint" that will enable me to
  75.    tell, and to demonstrate in a court of law, if a non-trivial object file has
  76.    been produced by my assembler.  The specification for this "footprint" is
  77.    sufficiently obscure and complicated that it would be impossible to
  78.    duplicate by accident.  I claim exclusive rights to the particular
  79.    "footprint" I have chosen, and prohibit anyone from duplicating it.  This
  80.    has at least two specific implications:
  81.  
  82.    a. Any assembler that duplicates the "footprint" is mine.  If it is not
  83.       identified as mine and issued under these terms, then those who sell
  84.       or distribute the assembler will be subject to prosecution.
  85.  
  86.    b. Any program marked with the "footprint" has been produced by my
  87.       assembler.  It is subject to condition 5 above.
  88.  
  89.    *** NOTE: If you have the impression that the "footprint" adds bytes to your
  90.        program file, you are wrong.  You retain complete control over the object
  91.        code generated.  A86 takes advantage of situations in which more than one
  92.        set of object codes can be generated for a given instruction: the
  93.        "footprint" consists of a complicated mix of choices in such situations.
  94.  
  95.  
  96. Overview of A86
  97.  
  98. A86 accepts assembly-language source files, and transforms them directly into
  99. either: (1) .COM files executable under MS-DOS, starting at offset 0100 within
  100. a code segment; or (2) object files starting at offset 0, suitable for copying
  101. to ROMs.  A86 is a full-featured, professional-quality program. I designed A86
  102. to be as closely compatible to the standard Intel/IBM assembly language as
  103. possible, given that I insisted upon making design and language enhancements
  104. necessary to make A86 the world's finest assembler.  Some of A86's most notable
  105. features are:
  106.  
  107. * A86 is blazingly fast.  Don't believe the advertisements of that other, big
  108.   company.  THIS is the fastest MSDOS macro assembler, bar none. On an 8MHz AT
  109.   with hard disk drives, A86 assembles a large program at a rate of over a
  110.   thousand lines per second. That's per second.  NOT per minute, per second.
  111.  
  112. * A86 is simple to use.  You can feed it a program containing just machine
  113.   instructions, without the red-tape (NAME, ASSUME, SEGMENT PARA PUBLIC,
  114.   PROC, ENDP, END, PUBLIC, EXTRN, etc. etc.) necessary with other assemblers.
  115.   The output of A86 is a .COM file, ready to execute immediately.  You
  116.   don't have to go through a linker.  (If you have programs written for
  117.   that other assembler containing the red-tape directives, you may leave
  118.   them in: A86 knows about them, and is programmed to happily ignore them.)
  119.  
  120. * In spite of its simplicity, A86 encourages modular programming, with
  121.   separately-developed source files.  This is because A86 assembles multiple
  122.   source files in its invocation line; and because A86 assembles source files
  123.   faster than other people's linkers can link their object files.  You get all
  124.   the advantages of relocation/linkage systems (building up libraries of
  125.   reliable program modules that you can piece together), without the
  126.   disadvantages (excessive, time-and-source-code-wasting, confusing red tape).
  127.  
  128. * A86 has ample capacity for really large programming projects.  Its symbol-
  129.   table capacity is approximately 1500 10-letter symbols, plus room for
  130.   8K-bytes of compressed macro-definition text.  (10 letters is an average
  131.   symbol length; A86 recognizes up to 31 letters in a symbol.)  Plus, A86's
  132.   generic local-label facility effectively doubles your symbol table capacity.
  133.  
  134. * A86 has language extension features that, once you start using, you'll
  135.   never want to do without.  These include multiple operands to PUSH and POP;
  136.   conditional returns; MOV from one segment register to another; assembly-time
  137.   assertion checking; based structures; and IF (flag) (statement).
  138.  
  139. * A86's macro-processor is the world's finest assembler macro facility.  Its
  140.   looping and text concatenation abilities let you define sophisticated macros,
  141.   whose calls look just like the machine instructions that surround them;
  142.   without the clumsy invocation-syntax required by other macro-processors of
  143.   A86's power.
  144.  
  145. * A86 provides clear, English error messages, given right at the point in the
  146.   source code where A86 detected the error.  The messages are actually inserted
  147.   into your source file, where you can read them and correct your code at the
  148.   same time.  (Fear not: your original source is preserved in *.OLD if you want
  149.   it.)  You can remove the messages yourself, or A86 will remove them for you
  150.   when it reassembles the file.
  151.  
  152. * A86 provides a full complement of assembly-time expression arithmetic
  153.   operators, compatible with Intel/IBM assemblers.
  154.  
  155. * A86 assembles the floating-point instruction set of the 8087/287.
  156.  
  157. * A86 assembles the extended instruction set of the 186/286/NEC series, except
  158.   for those 286 instructions designed to support protected-mode operating
  159.   systems.
  160.  
  161. * A86 works with an associated symbolic debugger, D86, to make the finest
  162.   development environment available for the PC.  See the D86 package, available
  163.   now, for the details of its wonderful features.
  164.  
  165. To give you a balanced view of A86, I shall now list some of its current
  166. limitations. I don't consider any of these limitations inordinately difficult
  167. for me to overcome; I just haven't gotten to implementing these features yet:
  168.  
  169. * Full support of floating-point processing is not complete-- I still need
  170.   to add the ability to initialize arbitrary floating-point constants.
  171.  
  172. * A86 does not yet support the protected operating-system instructions of the
  173.   286.
  174.  
  175. * A86 does not yet produce .OBJ files that can be linked to high-level-
  176.   language programs.  Don't worry, I won't take away your direct-.COM-
  177.   production; OBJ will just be an option.
  178.  
  179. * I intend to implement feature whereby A86 would, if it has undefined symbols,
  180.   attempt to find those symbols in a library of source files, whose directory
  181.   could be determined by an environment-variable.  This would give A86
  182.   programming an ability like that of the "C" language, to effortlessly
  183.   access library functions.  It's not there yet, but look for it Real Soon Now.
  184.  
  185.  
  186. Who IS That Guy?
  187.  
  188. For those of you who wish to know what credentials I have for producing
  189. programs that meet the above claims, let me tell you who I am.  I am
  190. an independent software consultant.  I have worked with Intel microprocessors
  191. since the early days of the 8080.  As an employee of Intel, I was a part of
  192. the two-man team that implemeted the first ASM86 assembler.  I am one of the
  193. world's leading authorities on the entire 86-family of microcomputers, having
  194. completed numerous major projects involving the 8086, and 80186, and the
  195. 80286.  I am currently under contract with Wiley and Sons, publishers, to
  196. write a book on the 386/387 architecture.
  197.  
  198. A86 and D86 themselves are mature, solid programs.  They have been in existence
  199. for 3 years, running first under my own, proprietary operating system; then
  200. later under the Xenix operating system on Altos computers, used by myself and
  201. my clients.
  202.  
  203. Although I have been unknown to the world of the IBM-PC until now, I intend
  204. to change all that in the next couple of years.  Peter Norton, watch out.
  205. (By the way, Peter, you can't use DX as an indexing register.  And the use
  206. of DXAX to hold a 4-byte return result is not such a strange choice; DXAX
  207. is the 4-byte quantity used in the 16-bit multiply and divide instructions.
  208. Nits aside, you wrote a great book; thanks from all of us PC programmers for
  209. writing it!)
  210.  
  211.  
  212.  
  213. Support Your Local Bulletin Board
  214.  
  215. Bob Breedlove, a BBS Sysop in California, sent me a suggestion with his
  216. registration: that I do something to support Sysops, since they are distributing
  217. my software for me.  Good point, Bob.  Let me try this experiment (but I reserve
  218. the legal right to cancel this offer at any time, without notice): if anybody
  219. who registers wishes to support the BBS from which they obtained my program,
  220. they should tell me the name and phone number of the BBS when they register.
  221. They should also leave a message to the Sysop that they have done so, so the
  222. Sysop can contact me with his/her address.  If I receive 5 registrations naming
  223. a particular BBS, I'll award a free registration to the Sysop-- the Sysop can
  224. designate who the registration is for; or (if the Sysop has already paid for a
  225. registration) he/she can elect to receive a cash refund.  For each subsequent 5
  226. registrations, I'll send the Sysop a cash rebate equal to one half the
  227. registration fee.  Sorry, no bonuses for less than 5 registrations; I don't want
  228. to be swamped with paperwork.
  229.  
  230.  
  231. How to Get in Touch With Me
  232.  
  233. I would love to hear about what you think of my products.  But please remember
  234. that telephone support takes time; and I don't have the money to hire a support
  235. staff.  The most obvious way for you to communicate to me is to include your
  236. comments with your registration.  Another way to communicate with me is to leave
  237. a message, addressed to me, on the Bloomington PC-Link Central bulletin board,
  238. at (812)824-7990; or Indiana On-Line, at (812)332-7227.  I'll try to promptly
  239. answer the questions of any REGISTERED users, either via the bulletin board, or
  240. by return mail if you send me a self-addressed, stamped envelope.
  241.  
  242.  
  243. What to Read Next
  244.  
  245. Read the file CONTENTS.DOC for an description of all the files in this package.
  246. I have two batch files for printing the documentation: FLOPLIST.BAT if you
  247. are keeping this package on a floppy, and HARDLIST.BAT if you have copied the
  248. package to a hard disk, and extracted all the files using HEXTRACT.BAT.
  249.  
  250. The file DEMO.DOC will tell you how to assemble the A86 source programs
  251. included in the package; following the directions there will give you a working
  252. knowledge of operation of the assembler program.
  253.  
  254.