home *** CD-ROM | disk | FTP | other *** search
- CHAPTER 1 INTRODUCTION AND LEGAL TERMS
-
-
- Introduction
-
- D86 is a screen-oriented assembly language debugger for the IBM-
- PC, compatibles, and several not-so-compatibles (Wang-PC, TI-PC,
- Tandy 2000, and Sanyo 55x). D86 is the finest debugger
- available, at any price under any conditions, for the following:
-
- 1. Learning 8086 assembly language.
-
- 2. Exploring the machine state of your computer (memory
- structure, registers, etc.)
-
- 3. Doing assembly language program development using my A86
- assembler.
-
- 4. Doing any kind of debugging involving the floating point (8087
- or 287) coprocessor.
-
- In contrast to software firms who attempt to restrict the
- distribution of their software through 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 D86 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 this entire package, and give it 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. 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 overseas) 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.
- 1-2
-
- For the convenience of users in Great Britain, I have author-
- ized 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.) If you don't want the update right away you can ask
- them to give you a voucher good for an update in the future.
- 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.
-
- Your registration includes a single update diskette (5.25
- inch, double density). 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.
-
- To use D86, you must have the associated assembler, A86. A
- copy of A86 (without all of its documentation) is included in
- the D86 package. If you are using D86 to debug only programs
- written in languages other than A86, then you do not need to
- register for A86. If you are programming in A86, then you
- must register for A86. There is a discount for combined
- registration of A86 and D86. Instead of $50+$50 = $100, the
- charge for both packages is $80 ($82 overseas).
-
- 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 North America, $14 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 D86 in courses. Contact me for
- special terms.
-
- Companies and government agencies MUST be registered in order
- to use D86 for their work. Again, contact me for special
- terms.
- 1-3
-
- 3. You may not sell this package to anyone. If you distribute
- this package on a diskette, any fees you collect must be
- specified as materials/handling, and may not exceed $10 for
- the diskette.
-
- 4. You are 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.
-
-
- Overview of D86
-
- D86 is a screen-oriented program that allows you to troubleshoot
- faulty computer programs written for the IBM-PC, Wang-PC, TI-PC,
- or Sanyo computer. It "freezes" the state of your program, and
- allows you to investigate the values of registers, flags, and
- memory. You can monitor your program's execution by stepping it
- one instruction or procedure at a time; or you can start your
- program running, telling D86 to stop it when it reaches certain
- locations. D86 recognizes the symbol-table output of the A86
- assembler, creating a symbolic disassembly of your A86 program,
- and allowing you to refer to locations and variables by name.
-
- The primary design criterion for D86 is ease of use. This is
- reflected in the most notable features of D86:
-
- * You don't need to ask D86 what the values of registers and
- flags are. They are there, automatically, at a fixed location
- on the screen.
-
- * You don't need to ask D86 where in your program you are
- stopped. A disassembly is always generated, at another fixed
- location on the screen. The disassembly gives a hefty chunk of
- your program, not just the single instruction you are at. A
- cursor next to the disassembly marks the current location. The
- disassembly chunk remains fixed as you step though it, allowing
- you to follow the flow of the program much more easily. If you
- wrote the program using A86, the disassembly is symbolic,
- giving instruction operands by name, and labelling disassembly
- locations when possible.
-
- * You don't need to ask D86 what is on the machine stack. A
- display of the top elements of the stack is always generated,
- at yet another fixed location on the screen.
-
- * You can set up windows into memory, displaying memory contents
- in a variety of types. The types can even be mixed, to display
- complicated structures. The windows will stay at the same
- location until you turn them off, allowing you to watch what
- your program is doing to those memory locations.
-
- * If you have an 8087 or 287 floating-point chip, D86 will
- generate complete window of the 87 state. The values of the
- stack elements are in a readable decimal format, with
- suppression of unneccessary zeroes, and scientific notation
- only if necessary.
- 1-4
-
- * You can, at any time, enable a help-window, to guide you
- through debugger commands. You will be astounded by the
- sophistication of this help-facility, especially since other
- debuggers offer no on-line help whatsoever.
-
- * All of the above-mentioned windows, except for the last two,
- exist on the screen at the same time. You don't have to switch
- between them.
-
- * You can single-step your program with single keystrokes, rather
- than sequences of arcane commands. There are several flavors
- of single-step keys, clustered together on the function-keypad.
- This, combined with the automatic nature of the display, allows
- you to single-step very quickly. You feel like you are
- actually watching your program run.
-
- * Much of D86's command language is simply the A86 assembly
- language itself. You can type in any A86 instruction, to be
- executed immediately. You use this to set registers and
- variables, perform arithmetic, jump to another location, etc.
- The immediate-execution feature makes D86 the most effective
- tool available for teaching 86 architecture: the student can
- watch the effects of instructions on registers, flags, and
- memory.
-
- * You can patch programs in memory, using the full power of the
- A86 assembly language.
-
-
- 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 have completed a
- book on the 386/387 architecture, to be published soon by Wiley
- and Sons.
-
- A86 and D86 themselves are mature, solid programs. They have
- been in existence for 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
- and D86, I intend to change all that in the next couple of years.
- Peter Norton, watch out.
- 1-5
-
- How to Get in Touch With Me
-
- For earlier versions of D86, 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). And, of course, I'll accept bug reports from anyone.
-
- 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.
-
- 2. Write to me.
-
- 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
-
-