MICRO/ASM-51 Product Release Notes

Do you need an update? The following shows changes we have made to our product, and can be used to determine if you need an update.

This document contains information related to the latest version of the Micro Computer Control MICRO/ASM-51 8051 Relocatable Assembler. The information contained in this document is more up to date than the printed manual. As a result, where information in the manual conflicts with information in this document, the information in this document will supersede manual information.

V1.14b Product Corrections/Enhancements

* Improved Syntax Checking

This version provides enhanced source code syntax checking. In previous versions, certain numeric expression syntax errors in instruction operands could go undetected.

V1.14a Product Corrections/Enhancements

* IDATA Memory Space Control Fix

This version provides a fix for a problem with the MAPMAX memory space control in the ML51 Linker. In previous versions, use of this control to set IDATA maximum address above 127 was ignored, causing ML51 to generate Error# 106, "Segment Overflow" when IDATA reached address 128 or greater. This version forces the maximum IDATA address to 255. A future update will restore normal MAPMAX operation.

V1.14 Product Corrections/Enhancements

* Memory Allocation Correction

This version corrects a problem with the MAPMIN location control in the ML51 Linker. In previous versions, use of this control could cause ML51 to skip unallocated memory below absolute segments.

* ORL A,@R1 Instruction Error

This version corrects a problem with the ORL A,@R1 instruction in the MA51 Assembler. In previous versions, use of this instruction would cause the MA51 to generate an illegal instruction error.

V1.13 Product Corrections/Enhancements

* Relocatable ($) Reference Correction

This version corrects a problem with references to the Program Counter symbol ($) in the MA51 Assembler. In previous versions, use of the $ symbol with a relocatable test bit in a conditional jump instruction could cause the ML51 linker to generate an internal stack overflow error.

V1.12 Product Corrections/Enhancements

* Register Equate/Set Correction

This version corrects a problem with Register symbols in the MA51 Assembler. In previous versions, use of register (R0..R7) symbols in EQU or SET symbol definition directives could cause MA51 to generate incorrect addresses when referenced in a program.

V1.11 Product Corrections/Enhancements

* External BITADDRESSABLE Data Correction

This version corrects a problem with External BITADDRESSABLE Data symbols in the MA51 Assembler. In previous versions, use of External bit symbols in DATA BITADDRESSABLE segments could cause ML51 to generate incorrect bit addresses.

* Maintenance of Existing Features

V1.10 Product Corrections/Enhancements

* Macro Correction

This version corrects a problem with MACRO Definitions. In previous versions, use of the CLR instruction within a Macro Definition would cause MA51 to generate an invalid ERROR #311.

V1.9 Product Corrections/Enhancements

* Relocatable BITADDRESSABLE Data Correction

This version corrects a problem with Relocatable BITADDRESSABLE Data segments in the MA51 Assembler. In previous versions, use of Relocatable BITADDRESSABLE data could cause ML51 to generate incorrect bit addresses.

V1.8 Product Corrections/Enhancements

* Relocatable BITADDRESSABLE Data Correction

This version corrects a problem with Relocatable BITADDRESSABLE Data segments in the MA51 Assembler. In previous versions, use of Relocatable BITADDRESSABLE data could cause MA51 to generate incorrect bit addresses.

* Bit Address Operator (.) Correction

This version corrects a problem with Bit Address operator (.) expression evaluation in the MA51 Assembler. In previous versions, use of the Bit Address operator with Relocatable BITADDRESSABLE data could result in indeterminate assembler actions.

* Bit Addressable Memory Allocation Correction

This version corrects a problem with ML51 allocation of Relocatable Bit Addressable Memory. In previous versions, allocation of the full memory space could cause the ML51 linker to incorrectly generate ERROR #107, ADDRESS SPACE OVERFLOW.

* Relational Expression Correction

This version corrects a problem with MA51 Relational Expression Evaluation. In previous versions, Relational Operators (EQ, NE, LT, LE, GT, GE, =, <>, <, <=, >, >=) with two positive operands could generate an incorrect result.

* Improved Expression List Error Handling

This version corrects a problem with MA51 Expression List Evaluation. In previous versions, expression lists in DW and DB directives could accept invalid characters without reporting errors.

* Improved Segment Relocatability Error Checking

This version corrects a problem with MA51 Segment Directive Evaluation. In previous versions, segment directives with an invalid relocatability specifier could be accept without reporting errors.

V1.7 Product Corrections/Enhancements

* Relocatable BITADDRESSABLE Data Correction

This version corrects a problem with Relocatable BITADDRESSABLE Data segments in the MA51 Assembler. In previous versions, use of Relocatable BITADDRESSABLE data could cause MA51 to incorrectly generate ERROR #39, BIT SEGMENT ADDRESS EXPECTED.

* Library Object Module Extraction Correction

This version corrects a problem with ML51 extraction of object modules from library files. In previous versions, extracting the last object module in a library file could cause the ML51 linker to incorrectly generate ERROR #218, NOT AN OBJECT FILE.

* Librarian Object Module Extraction Correction

This version corrects a problem with MLB Librarian extraction of object modules from library files. In previous versions, extracting object modules from a library file could corrupt the file.

V1.6 Product Corrections/Enhancements

* TF0 Address Correction

This version corrects a problem with the bit-addressable Special Function Register (SFR) TF0 in the MA51 Assembler. In the previous version, the MA51 address assigned to the symbol TF0 is incorrect. The resulting invalid instruction could access SFR SM2 in the SCON register.

V1.5 Product Corrections/Enhancements

* AJMP/ACALL Instruction Range Check Correction

This version corrects a problem with range checking on AJMP/ACALL instructions performed by the MA51 Assembler. In the previous version, the invalid use of an AJMP or ACALL instruction within the last 2 bytes of any 2K memory address boundary could go undetected. The resulting invalid instruction could branch to a memory location in the following 2K block.

* Generic Instruction (CALL/JMP) Correction

This version corrects a problem with generic instruction substitutions performed by the MA51 Assembler. In the previous version, use of a generic CALL or JMP instruction within 2 bytes of any 2K memory address boundary could result in the invalid use of an ACALL/AJMP instruction when an LCALL/LJMP should be used. The resulting invalid instruction could branch to a memory location in the following 2K block.

V1.4 Product Corrections/Enhancements

* Relative Jump Instruction Correction

This version corrects a problem with relative jump instruction evaluation performed by the MA51 Assembler. In the previous version, a relative jump instruction that tests a relocatable bit operand could generate an invalid instruction opcode in the output file.

* Relative Address Computation Correction

This version corrects a problem with relocatable address computations performed by the ML51 Linker. In the previous version, a backward relative jump instruction to a relocatable location could generate an incorrect relative address. The error occurs only if the relative jump instruction is testing a relocatable bit, thus causing a link time computation to be performed.

* IOMF File Format Correction

This version corrects a problem with Intel Object Module File (IOMF) format files generated by the ML51 Linker. In the previous version, IOMF files contained invalid program segment debug information. This error could cause development tools (i.e. emulators) that accept IOMF files to generate errors or warnings during file loading operations.

V1.3 Product Corrections/Enhancements

* OUT-OF-MEMORY Error Correction

This version corrects a problem with the NOLIST/NOPRINT Assembler controls. In the previous version, an OUT-OF-MEMORY Error could be generated for larger programs when the NOLIST or NOPRINT controls are asserted.

V1.2 Product Corrections/Enhancements

* INCLUDE Control Correction

This version corrects a problem with the INCLUDE Assembler control. In the previous version, multiple INCLUDE statements in a single source file are not processed correctly.

* MACRO Definition Correction

This version corrects a problem with Assembler Macro definitions. In the previous version, use of the LOW expression operator within a MACRO definition could result in indeterminate assembler actions.

* MACRO Parameter Correction

This version corrects a problem with Assembler Macro Calls. In the previous version, some call parameter characters could be missing in dummy argument expansions.

* SET Directive Listing Correction

This version corrects a problem with Assembler SET directive listing. In the previous version, the listing did not include the SET value.

* Expression Evaluation Correction

This version corrects a problem with the Assembler evaluation of relocatable expressions. In the previous version, the expression:

relocatable + absolute

causes the MA51 to generate "Error #28, REFERENCE NOT TO CURRENT SEGMENT", even if the relocatable is in the current segment.

* Define Storage (DS) Directive Correction

This version corrects a problem with Assembler Define Storage (DS) directive when used in a CODE segment. In the previous version, a DS directive in an absolute or relocatable CODE segment could cause indeterminate results.

* Relocatable ORG Expression Correction

This version corrects a problem with Assembler ORG directives that contain a relocatable expression. In the previous release, the expression:

ORG relocatable expression

could corrupt the program load address in the output file and cause indeterminate results.

V1.1 Product Corrections/Enhancements

This version corrects a problem with the MAPMAX Assembler and Linker control.

Changes to Documentation

No changes are available at this time.

General Notes

* Sample Batch File Included

The sample DOS batch file "hello.bat" is included on the distribution disk. This batch program assembles and links the sample relocatable source files provided on disk and given in Section 1.1, "Selecting a Program Structure".

To run this batch program, at the DOS prompt type:

hello<ENTER>

In addition to creating assembly listings (*.lst) for all the files, the batch program generates a map file (hello.map) and the executable Intel Hex file "hello.hex".

Updates are available to registered users. Proof of ownership (i.e. a photocopy of an original product diskette) of a previous version is required.