CHAPTER 14 RELEASE HISTORY OF A86 14-1 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. Upgrades from that previous version included: * cleaning up the command invocation to allow default output files * insertion of full error messages, not just number codes * automatic removal of error messages upon reassembly * addition of features for compatibility with Microsoft's assembler (PTR, LABEL, PROC, etc.) * provision for ignoring certain keywords, for compatibility (ASSUME, PAGE, SUBTTL, PUBLIC, EXTRN, etc.) V2.11 June 1986. A very slight upgrade. The RADIX command was added, a couple of minor bugs were fixed, and formfeeds were put into the documentation. V2.12 Test release for Alan Tschetter and Charlotte Wood V2.13 July 1986. Quick-fix release for a user who wanted A86 to run on his 256K machine. I had foolishly assumed that everyone had 512K by now. This release erroneously mentions a "-s" option in the blurb that you get when you type "a86" by itself. No such option exists; I realized that the small-memory adjustment could be made automatically; and I forgot to remove the message. V2.14 Test release for Andy Harrington V2.15 August 1986. Implemented COMMENT directive for compatibility; added floating-point instruction set and DQ and DT directives; fixed bugs. V2.16 August 1986. Made internal changes to accommodate forward- referencing in D86's patch-memory mode. V2.17 Test release for Wang V2.18 November 1986. Fixed 3 bugs: (1) DB,DW,DD,DQ,DT directives in structures or the data segment caused a byte of memory to be written to the object buffer (or in short- memory systems, possibly to the source buffer). I have fixed this serious bug, and also rearranged things so that any future bugs of the same type cannot affect the source file. (2) "MOV AX,BX," -- the trailing comma was not flagged, and caused spurious extra code to be generated. (3) Named STRUC followed by unnamed ENDS did not work correctly. V2.90 March 1987. Test release for .OBJ support. 14-2 V3.00 April 1987. Major upgrade: * added support for linkable .OBJ files * added pagination and indexing to manual * added long constants and floating-point constants * added A86LIB library tool and A86 support * added ability to forward-reference variables * added ability to add to and index forward references * added 286 protected-mode instructions * added NEC-specific instructions * added option not to insert errors in source * added option for long forward JMP for local labels * added switch for default decimal * added "=" equate compatibility feature * added double-quoted strings compatibility feature * underscores allowed within numbers * leading $ and ? allowed in symbols, for compatibility * parentheses no long required for most DUP right operands * less type-checking for pointer arithmetic; compatibility * numerous minor bug fixes V3.01 April 1987. Some bug fixes and minor enhancements: * original file had been renamed to no extension, not OLD * some forward-reference and OBJ operands didn't work * file name reporting in undefineds-list was sometimes off * wider display columns, for longer LIB source file names * segment overrides outlawed in 3-operand MOV * forward references outlawed in numeric-operand INC/DEC * add support for near jumps between OBJ segments * add "S" suppress-symtab and "C" case-sensitivity switches V3.02 May 1987. Some bug fixes: * Jc $+5 altered to be MASM-compatible * MOV B[1+BX],0 now works * fixed a serious bug: OBJ fixup records were not being generated in some multiple-segment modules V3.03 May 1987. Bug fixes: * A previous bug-fix had caused A86 to issue errors for MASM directives beginning with a period, that A86 should ignore. An embarrassing side-effect was that when this happened, all subsequent lines containing symbols had errors, as well! V3.03 fixes all this. * XREF did not recognize the double-quote mark for strings V3.04 May 1987. Bug fix: if a forward reference to a variable had an indexing register as well, then the indexing register became part of the definition of the variable, and appeared in subsequent usages of the variable, even when not explicitly given.