README.TXT

****************************************************************

  Information for ZiLOG Z8/Z8Plus Tool Set Release 4.05

           Copyright(C) 1999-2000 ZiLOG, Inc.

****************************************************************

================
IMPORTANT NOTES:  
================

This README.TXT File contains information on the following:

        o Software Tool Components 
        o Notes
        o Corrected Problems
        o Known Problems  
        o Technical Support 

=================================================
SOFTWARE TOOL SET COMPONENTS:
=================================================
Components of this release include:

        o Z8ASM Macro Assembler
        o Z8LINK Linker/Locator
        o Z8LIB Object Librarian 
        o Z8CC ANSI C Compiler
        o Runtime Library
        o Compiler User's Manual
	o Assembler User's Manual
	o Linker User's Manual
	o Librarian User's Manual
	o Product Specification Sheet
         
================
Release NOTES
================

The runtime library routines were compiled using static frames
and are not reentrant for the sake of efficient code.  If you wish
to recompile the files for reentrancy, then add the source files
to your project as any other source file.

Some runtime library routines are large and should not be used
in SMALL model.  These include: printf, strtok, strcat, tan, sin,
cos, and pow.  You should be careful when adding runtime routines
to a SMALL model project.


===================
New Features
===================

o A new option was added to the compiler to make the use of the
  const keyword more standard. By placing -const:RAM on the
  compiler's command line, variables defined with the const
  keyword will no longer be stored in ROM.

  WARNING: This feature will prevent some runtime library functions
	   from executing properly. It is suggested that you
	   re-build the runtime libraries with this option set
	   prior to using them.

o Strings are no longer forced into far memory. They are now stored
  in near or far memory depending upon whether the small or large
  memory model is used.

===================
CORRECTED PROBLEMS:
===================

****************************************************************
                IMPORTANT NOTE!!!!!!
****************************************************************
  ERF's cannot be addressed by their address anymore in Z8.H
  (such as P0).  The user must use SET_ERF and GET_ERF
  instead. The names of the available ERF registers are defined
  in the header file specific to your target processor. For
  example, if your target processor is the Z86C93, then you
  should include the file z86c93.h before calling SET_ERF or
  GET_ERF.
*****************************************************************

****************************************************************
                IMPORTANT NOTE!!!!!!
****************************************************************
  ERF's are predefined in header files for programmer use (such 
  as P0).  The user has the responsibility to set the Register 
  Pointer (RP) to the correct bank before using this (P0 is in 
  bank 0). The names of the available ERF registers are defined 
  in the header file specific to your target processor. For 
  example, if your target processor is the Z86C93, then you should 
  include the file z86c93.inc before using an ERF.  Note that the 
  previous assembler predefined P0, P1, P2, and P3, but that this 
  version does not.
*****************************************************************

1) Use of a port (or a near address) and the &= or |= operator now works 
    correctly.
    (Example:  P2 &= 0xfe;)

2) SET_ERF and GET_ERF were inadvertently left out of the include files.

5) Assembler now can always assemble in a remote directory.

6) Assembler now flags error instead of crashing when INCLUDE file
   is not found.

7) A problem with global variables in certain compare instructions
   is now fixed.

8) C++ comments are now allowed in macros.

9) Hex expressions (0xmmm) are now always handled correctly in 
   #define statements.

10) Forward references in structures is now allowed.

11) A problem with typedefs of pointers to structures has been fixed.

12) malloc() routines are now working properly.

13) A problem with multiple pointer increments has been fixed.

14) Conversion of a float to an int when using as a parameter now pushes
    the correct number of bytes onto the stack.

15) A problem with passing a pointer to an array of const has been fixed.

16) A problem retrieval of certain elements in a multidimensional arrays
    has been fixed.

17) Some problems with SET_ERF, SET_REG, SET_RREG, and GET_ERF have been
    fixed.

18) exp() function now handles all negative values correctly.

19) A bug in modf() has been fixed.

20) A bug in strtol() has been fixed.

21) A bug in floating point to long integer conversion has been fixed.

22) A bug in the driver reading OMF695 has been corrected.

23) A specific bug with preincrementing a structure member in a compare
    has been fixed.

===============
Known Problems:
===============

==================
TECHNICAL SUPPORT:
==================
Please take advantage of all documentation aids provided 
with this product before seeking Technical Support including:

        - Assembler User's Manual ..\Manuals\Assem.pdf
	- Compiler User's Manual ..\Manuals\Compiler.pdf
	- Linker User's Manual ..\Manuals\Linker.pdf
	- Librarian User's Manual ..\Manuals\Librarian.pdf

If your questions are not answered, or should you require other 
technical assistance, contact your local ZiLOG Technical Support 
Center at (877) 945-6427.

---------------------------------------------------------------
