| ## Version 1.2, Jan 22, 1996: 1. Bug Fixes Since version 1.0, only two serious bugs have been found in ASEM-51: If DB or DW statements contained at least two subsequent expressions with forward references, followed by at least one further expression or string, the code lengths of these statements were calculated different on pass 1 and pass 2. Therefore, jumps to locations behind those statements might have led to wrong addresses. If a symbol name with more than 31 characters was referenced in an instruction operand, the assembler marked that symbol reference with the error message `@@@@@ symbol not defined @@@@@`, although it was defined correctly above. Apart of that, some minor deficiencies have been improved or corrected: The arrows of the error messages in the list file are now pointing more exactly to the position in the source line, where something is wrong. ASEM and HEXBIN do no longer crash in exotic I/O error situations (i.e. opening the door of a disk drive while reading from it), and they can output more specific I/O error messages. It is no longer possible to overwrite the input files by specifying duplicate file names in the command line. (This does not apply to device names!) The previous field separator '=' for ASEM and HEXBIN command line options had to be changed to ':', because of two reasons: It is not possible to pass a string, containing an '=' character, to a DOS batch file as a parameter, and it cannot be assigned to a DOS environment variable. However, the old field separator '=' is still accepted to maintain compatibility with previous HEXBIN versions. 2. New Features The new assembler version comes up with numerous extensions and improvements: The /INCLUDES command line option has been introduced to specify directories that ASEM has to search for include files. The /DEFINE command line option has been implemented to define symbols from the command line, for easy assembly of different program variants. Conditional assembly has been extended with the new IFDEF and IFNDEF meta instructions. Primary controls may now be preceded also by general controls. The new $PHILIPS control allows to switch to the reduced instruction set of the Philips 83C75x family of microcontrollers. The pseudo instruction NAME has been introduced for compatibility purposes. The ASEM-51 list file has been beautified, and contains more information. New fancy printing facilities have been introduced with the $XREF, $PAGEWIDTH, $DATE, $TITLE and $NOTABS controls. The $DEBUG, $NODEBUG, $MOD51, $PAGING, $SYMBOLS, and $NOXREF controls have been implemented for compatibility purposes. Now all assembler controls may be replaced by their (Intel-) abbreviations. The error message filter program ASEM2MSG has been introduced, which allows the integration of ASEM-51 into the Borland IDE for DOS. Files ASEM.PIF and ASEM.ICO have been added to simplify the ASEM-51 installation under Windows 3.1. Device names that are passed to ASEM or HEXBIN as command line parameters may but need no longer be terminated with a ':' character. HEXBIN 2.2 is running about 15% faster than version 2.1. The length of the binary output file now matches exactly the byte count of the code. HEXBIN now returns ERRORLEVEL 1 on conversion errors and ERRORLEVEL 2 on fatal runtime errors. With this version, new processor definition files are provided:
File | Manufacturer | Derivatives
--- | --- | ---
89C1051.MCU | Atmel | 89C1051, 89C2051
83C451.MCU | Philips | 83C451, 80C451, 87C451
83C528.MCU | Philips | 83C528, 80C528, 87C528, 83C524, 87C524, 83CE528, 80CE528, 89CE528
83C550.MCU | Philips | 83C550, 80C550, 87C550
83C562.MCU | Philips | 83C562, 80C562
83C652.MCU | Philips | 83C652, 80C652, 87C652, 83C654, 87C654, 83CE654, 80CE654
83C750.MCU | Philips | 83C750, 87C750
83C751.MCU | Philips | 83C751, 87C751
83C752.MCU | Philips | 83C752, 87C752
83C851.MCU | Philips | 83C851, 80C851
83C852.MCU | Philips | 83C852
C501.MCU | SIEMENS | C501-1R, C501-L
C502.MCU | SIEMENS | C502-2R, C502-L
C503.MCU | SIEMENS | C503-1R, C503-L
C511.MCU | SIEMENS | C511, C511A
C513.MCU | SIEMENS | C513, C513A, C513A-H
COM20051.MCU | SMC | COM20051
ASEM_51.DOC has been updated accordingly, and extended with an alphabetical 8051 instruction table. The error messages in appendices A and B are now sorted in lexical order, and completed with brief explanations. The bootstrap program BOOT-51 V1.0 has been added to the ASEM-51 package. It allows an 8051 target system to receive an application program in Intel-Hex format over the serial interface, load it into the external RAM, and finally start it (provided that the board has a suitable memory map). Once installed, BOOT-51 leads to very short turn-around cycles in testing. For detailed information refer to the ASCII text file BOOT51.DOC provided. An "ASEM-51 Updating Guide" has been added to the package. It describes, how and where to get a new ASEM-51 version! For further information see the ASCII file UPDATES.DOC provided.