home *** CD-ROM | disk | FTP | other *** search
- A86 assembler package V3.05 June 5, 1987
- D86 debugger package V2.24 June 5, 1987
- Both entire packages are Copyright (C)1986-1987 Eric Isaacson.
- All rights reserved.
-
- This NEW305.ARC package is for those who have already downloaded
- one of the complete packages V3.00 through V3.04 of A86, and want
- to make the minor upgrade to V3.05. The terms and conditions
- found in Chapter 1 of the full A86 package apply to this package
- as well. This document tells you what you need to know about
- V3.05.
-
- The package also includes D86 V2.24, for those who have the
- entire V2.22 or V2.23 packages.
-
-
-
- New Features
-
- I changed the display of source file names from 5-per-line to
- 4-per-line, to accommodate the longer path names derived from
- A86.LIB libraries.
-
- I've added recognition of SEGMENT AT in non-OMF mode, for MASM-
- compatibility. The directive "segname SEGMENT AT atvalue" is
- interpreted as if it were the directives "segname EQU atvalue"
- followed by "STRUC".
-
- I've also added a couple of switches, at a user's request:
-
- +C causes the assembler to be sensitive to upper- vs. lower-case
- for all symbols, so that routines with lower-case names can
- be created for linking to C programs. WARNING: I provide
- only limited support for this right now. In particular, if
- you use this option, you MUST give all built-in symbol names
- in ALL CAPS. And D86 doesn't recognize this yet-- although
- D86 will correctly disassemble symbols containing lower-case
- letters, you won't be able to refer to such symbols in D86
- commands, because D86 will convert your references to all-
- upper-case.
-
- -C causes A86 to ignore upper- vs. lower-case in all symbol
- names.
-
- +S suppresses the creation of the symbol-table (.SYM) file in
- normal (no errors) assembly. This is overridden if you give
- an explicit symbols-file name in the invocation line.
-
- -S causes the symbol-table file to be created in all cases.
-
-
- Bug fixes
-
- There have also been the inevitable bugs discovered just after a
- major release. Bugs fixed are:
-
- 1. In V3.00 only, not in earlier versions, an erroneous source
- file was renamed to no extension, instead of a .OLD or .ERR
- extension as the assembler claimed. A benign but highly
- embarrassing bug!
-
- 2. If a macro parameter occurred at the beginning of a line,
- then any following blanks were completely eliminated from the
- macro definition. The definition should (and now does) reduce a
- sequence of blanks to one blank, not none.
-
- 3. The BOUND, Shift-rotate, and many 87 instructions did not
- accept size-specifiers in relocatable and/or forward-reference
- operands.
-
- 4. Near JMPs and CALLs between logical segments in OBJ mode were
- not supported in all cases.
-
- 5. If there were = or # operands in the invocation, and there
- were undefined symbols in subsequent source file names, then A86
- got the file names wrong in the undefined symbols listing. A86
- also got the listing wrong for undefined symbols from library
- files.
-
- 6. Segment-override operators in 3-operand MOV instructions
- produced unexpected results. I now outlaw this.
-
- 7. INC FOO,2 where FOO is relocatable or undefined didn't produce
- the correct code. I've outlawed this as well: you probably want
- ADD FOO,2 anyway.
-
- 8. JMP $+5 is now MASM-compatible.
-
- 9. MOV B[1+BX],0 now assembles successfully.
-
- 10. There was a serious bug in versions 3.00 and 3.01, that
- caused fixup records not to be generated under certain conditions
- when modules had more than one segment being assembled. This has
- been corrected.
-
- 11. There was a bug in Versions 3.00 through 3.02, in which MASM
- directive beginning with a period that should be ignored by A86
- were instead flagged with an error. An embarrassing side-effect
- was that all subsequent new symbols caused an error also.
-
- 12. XREF 3.00 did not recognize double-quoted strings, and
- processed their contents as symbol references.
-
- 13. If a forward reference to a label had an indexing register,
- the register became part of the label's definition.
-
- 14. _TEXT declared in a GROUP directive misbehaved.
-
- 15. Certain classes of forward references to different segments
- in OBJ mode did not assemble correctly.
-
- New D86 features
-
- D86 V2.24 now supports the Sanyo 500 and 555 and the Tandy 2000
- computers.
-
- There is also an embellishment to the memory window command: if
- you key in a digit and the cursor moves to an existing memory
- window that you didn't intend to reset, you can hit the ESC key.
- The existing window will be saved.
-
-