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.
|
|||
|
|
|||
|
|