155 lines
5.5 KiB
Plaintext
155 lines
5.5 KiB
Plaintext
CHAPTER 15 RELEASE HISTORY OF A86
|
||
|
||
Virtually all releases of A86 include bug fixes. If I don't say
|
||
anything about a release, then it was essentially only bug fixes.
|
||
|
||
V2.10 June 1986. Initial public release of the MSDOS version of
|
||
A86. The last previous version ran under the Xenix
|
||
operating system on the Altos series of computers. For
|
||
this "public offering", I cleanup up the invocation
|
||
syntax, upgraded the error-reporting facility, and started
|
||
added compatbility features.
|
||
|
||
V2.11 June 1986. Added RADIX command.
|
||
|
||
V2.13 July 1986. Reduced memory requirements.
|
||
|
||
V2.15 August 1986. Implemented COMMENT directive for
|
||
compatibility; added floating point instruction set and DQ
|
||
and DT directives.
|
||
|
||
V2.16 August 1986. Made internal changes to accommodate forward
|
||
referencing in D86's patch-memory mode.
|
||
|
||
V2.18 November 1986.
|
||
|
||
V2.90 March 1987. Test release for .OBJ support.
|
||
|
||
V3.00 April 1987. Major upgrade:
|
||
|
||
* added support for linkable .OBJ files
|
||
|
||
* added long constants and floating-point constants
|
||
|
||
* added A86LIB library tool and A86LIB support
|
||
|
||
* added ability to forward-reference variables, and to add
|
||
to and index forward references
|
||
|
||
* added 286 protected-mode and NEC-specific instructions
|
||
|
||
* added options not to insert errors in source, long
|
||
forward JMP for local labels, and default decimal
|
||
|
||
* added "=" equate compatibility feature
|
||
|
||
* added double-quoted strings compatibility feature
|
||
|
||
* parentheses no longer required for most DUP right
|
||
operands
|
||
|
||
V3.01 April 1987. Minor enhancements:
|
||
|
||
* original file had been renamed to no extension, not OLD
|
||
|
||
* segment overrides outlawed in 3-operand MOV
|
||
|
||
* forward references outlawed in numeric-operand INC/DEC
|
||
15-2
|
||
|
||
* add "S" suppress-symtab and "C" case-sensitivity
|
||
switches
|
||
|
||
V3.02 May 1987.
|
||
|
||
V3.03 May 1987.
|
||
|
||
V3.04 May 1987.
|
||
|
||
V3.05 June 1987. Added the following features for MASM
|
||
compatibility:
|
||
|
||
* recognition of SEGMENT AT in non-OBJ mode
|
||
|
||
* ignore END directive in non-OBJ mode
|
||
|
||
V3.07 July 1987. Added features necessary for Turbo C support
|
||
(+c, +f, +F switches; ignore DGROUP:). Generalized the
|
||
environment variable to include macro files. Added the
|
||
ampersand feature. Made = compatible with MASM.
|
||
|
||
V3.08 July 1987.
|
||
|
||
V3.09 August 1987. Legalized MOV segreg,immediate. Duplicated
|
||
MASM functionality for case sensitive mode (A86's +C
|
||
switch). Added ability to make aliasing EQU to an
|
||
external name. Made FAKE.EXE into an honest EXE file,
|
||
instead of a COM masquerading as EXE.
|
||
|
||
V3.10 September 1987. Added a printed version of the manual.
|
||
Added +c switch, reinstating case sensitivity during
|
||
assembly, but this time without sensitivity in built-in
|
||
symbols.
|
||
|
||
V3.11 November 1987. Added the SEG operator for compatibility
|
||
with Turbo C, and made it possible to define relocatable
|
||
segments called CODE, DATA, or STACK, for compatibility
|
||
with Turbo Pascal.
|
||
|
||
V3.12 February 1988. Added features:
|
||
|
||
* Changed the format of SYM files, so that they are much
|
||
smaller yet hold more information. This allows D86,
|
||
XREF, and EXMAC to work better with A86.
|
||
|
||
* A86 now allows an aribtrary expression to appear in a
|
||
conditional assembly (#IF) directive.
|
||
|
||
* Added macro features, for compatibility: #V value
|
||
operator, #S size operator, #N number operator, #EX exit
|
||
directive, string comparison of operands, and large
|
||
operand numbers (up to 255).
|
||
|
||
* To overcome a Turbo C bug, allowed embedded blanks in
|
||
symbols declared via an EXTRN directive. I dropped this
|
||
feature in V3.13; see below.
|
||
15-3
|
||
|
||
V3.13 March 1988. Made memory management more flexible, to
|
||
allow A86 to run with less available memory. Added a
|
||
small feature to ease Turbo C compatibility: if there is a
|
||
segment override to a forward refernce, the reference is
|
||
assumed to be a variable, not an immediate value. This
|
||
eliminates the need for the EXTRN kluge of the above
|
||
paragraph, so I dropped that kluge.
|
||
|
||
V3.14 March 1988.
|
||
|
||
V3.15 May 1988. Allowed up-arrow in place of equals-sign in
|
||
invocation equates. Allowed MOV mem,mem and XCHG of a
|
||
variety of new forms, generating sequences of instructions
|
||
to implement the unavailable forms.
|
||
|
||
V3.17 June 1988.
|
||
|
||
V3.18 July 1988. For compatibility: allowed OFFSET segname, and
|
||
implicitly converted a constant with a segment override
|
||
into a memory type.
|
||
|
||
V3.19 August 1988.
|
||
|
||
V3.20 July 1989. Made internal redesign of handling of size-
|
||
override operators (B, W, D, F, etc.) so they are handled
|
||
more consistently. Outlawed first DATA SEGMENT without a
|
||
strating ORG statement, forcing an explicit ORG 0 for
|
||
future compatibility. Allowed more forward references,
|
||
including immediate-byte quantities in all applicable
|
||
instruction forms.
|
||
|
||
V3.21 August 1989.
|
||
|
||
V3.22 January 1990. Added support for additional coprocessors:
|
||
the 80387 and the IIT-2C87. Made numerous minor changes
|
||
to enhance MASM-compatibility.
|
||
|
||
|