****************************************************************************
****************************************************************************
**                                                                        **
**          Application notes for Atmel Microcontrollers                  **
**                       (Informal Document)                              **
**                                                                        **
**  To find the application notes specfic for your device search for the  **
**  'core' part name.  As an example using the AT89C51RD2 44 pin PLCC you **
**  would search on '89C51RD2'                                            **
**                                                                        **
****************************************************************************
****************************************************************************


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

89C51AC2 / 89C51CC01:
--------------------

Unisystem RAM mapping:
----------------------
       0x0000- 0x07FFF    User Memory (FM0)
       0xF000- 0x0F7FF    Data Memory (EEPROM)2KB
       0xF800- 0x0FFFF    Boot Memory 2KB (FM1)
       0x10000-0x10004    XA flash mem
       0x10005-           HSB (1byte)
Please refer figure 1 for pictorial representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting Program Configuration data Option to 'Y'.
If the chip is erased, this XAF array is filled with the default values
Id locations i.e 0030h, 0031h, 0060h, 0061h are filled with a constant data
viz. 58h, D7h, F7h, FFh every time the Program XAF operation
is selected.

Ram Location            XAF Address     Default data
-----------             -----------     ------------
0x10000                  0x0000            0xFF          Boot Status Byte
0x10001                  0x0001            0xF8          Software Boot Vector
0x10002                  0x0004            0xD8          Copy of HSB **Note1
0x10003                  0x0006            0xFF          Extra Byte
0x10004                  none                            not used

**Note1: This location is filled with HSB copy irrespective of what is
present in the corresponding Ram location(0x10002). However, while reading,
it displays the data that is present in Copy of HSB location.
This data is valid only after a read operation.
In verification, the contents of the device are compared with the HSB directly.

HSB Contents (1byte) - Ram mapping 0x10005
-------------------
This memory can be programmed by setting Program Protect Register Option to 'Y'

Here, only bit 6, 7 of the HSB are programmed as per the data in the Ram 
location 10005.
Bit 6, 7 of HSB signify  BLJB and X2 respectively.
Bits 0, 1, 2 represent Lock bits and are programmed by selecting
the options - Program Security bit options to 'Y'
The bits 3,4,5 are reserved and are programmed as per their previously stored
value.


Figure 1:
---------

         Device mapping:
     ----------------------  0Mbit
    |User memory FM0       |
    | 0-07FFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 32K


    |----------------------|
    | EEPROM               |
    | F000->F7FF hex       |
    | 2K                   |
    |----------------------|
    | FM1- Boot Memory    |
    | F800->FFFF hex       |
    |                      |
    |                      |
    |                      |
    |----------------------|
    | XA FLASH MEM         |
       (only 4 bytes done)
Ram Location  XAF Location      Default Value
0x10000       0x0000            0xFF            Boot Status Byte
0x10001       0x0001            0xF8            Software Boot Vector
0x10002       0x0004            0xD8            Copy of HSB **Note1
0x10003       0x0006            0xFF            Extra Byte
0x10004       none              0xFF            spare location not used 
                                                presently

    |----------------------|
    | HSB MEM - 1 Byte     |
           0x10005

         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |  X2Bit |  BLJB  |Reserved|Reserved|Reserved|  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

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

89C51CC03:
--------------------

Unisystem RAM mapping:
----------------------
       0x0000 -0x0FFFF    User Memory (FM0)
       0x10000-0x107FF    Data Memory (EEPROM)2KB
       0x10800-0x10FFF    Boot Memory 2KB (FM1)
       0x11000-0x10009    XA flash mem
       0x1100A-           HSB (1byte)
Please refer figure 1 for pictorial representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting Program Configuration data Option to 'Y'.
If the chip is erased, this XAF array is filled with the default values
Id locations i.e 0030h, 0031h, 0060h, 0061h are filled with a constant data
viz. 58h, D7h, FFh, FFh every time the Program XAF operation
is selected.

Ram Location            XAF Address     Default data
-----------             -----------     ------------
0x11000                  0x0000            0xFF        Boot Status Byte
0x11001                  0x0001            0xF8        Software Boot Vector
0x11002                  0x0005            0xD8        Software security byte
0x11003                  0x0006            0xFF        Extra Byte
0x11004                  0x001C            0xFF        CANBT1
0x11005                  0x001D            0xFF        CANBT2
0x11006                  0x001E            0xFF        CANBT3
0x11007                  0x001F            0xFF        NNB
0x11008                  0x0020            0xFF        CRIS
0x11009                  none                          not used

HSB Contents (1byte) - Ram mapping 0x1100A
-------------------
This memory can be programmed by setting Program Protect Register Option to 'Y'

Here, only bit 6, 7 of the HSB are programmed as per the data in the Ram
location 10005.
Bit 6, 7 of HSB signify  BLJB and X2 respectively.
Bits 0, 1, 2 represent Lock bits and are programmed by selecting
the options - Program Security bit options to 'Y'
The bits 3,4,5 are reserved and are programmed as per their previously stored
value.


Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-0FFFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K


    |----------------------|
    | EEPROM               |
    | 10000->107FF hex     |
    | 2K                   |
    |----------------------|
    | FM1- Boot Memory    |
    | 10800->10FFF hex     |
    |                      |
    |                      |
    |                      |
    |----------------------|
    | XA FLASH MEM         |
       (only 4 bytes done)
Ram Location  XAF Location      Default Value
0x11000        0x0000            0xFF             Boot Status Byte
0x11001        0x0001            0xF8             Software Boot Vector
0x11002        0x0005            0xD8             Software security byte
0x11003        0x0006            0xFF             Extra Byte
0x11004        0x001C            0xFF             CANBT1
0x11005        0x001D            0xFF             CANBT2
0x11006        0x001E            0xFF             CANBT3
0x11007        0x001F            0xFF             NNB
0x11008        0x0020            0xFF             CRIS
0x11009        none                               not used
    |----------------------|
    | HSB MEM - 1 Byte     |
           0x1100A

         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |  X2Bit |  BLJB  |Reserved|Reserved|Reserved|  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

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

AT89C51RD2
----------

Unisystem RAM mapping:
----------------------
       0x00000-0x0FFFF    User Flash Memory
       0x10000-0x10003    XA flash mem
       0x10004-           HSB (1byte)
Please refer figure 1 for pictorial representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting the appropriate data in the required RAM locations as
shown below. If the chip is erased, this XAF array is filled with the respective
default values. Id locations i.e 0030h, 0031h, 0060h, 0061h are filled with a
constant data viz. 58h, D7h, ECh, EFh every time the Program XAF operation is
selected. The other XAF locations are Reserved and not accessible to the user.

Ram Location        XAF Address     Default/Erased data
-----------         -----------     ------------------
0x10000              0x0000            0xFF      Boot Status Byte (BSB)
0x10001              0x0001            0xFC      Software Boot Vector (SBV)
0x10002              0x0004            0xFF      Copy of HSB**Note1
0x10003              0x0005            0xFF      Software Security Byte (SSB)

                     0x0030            0x58      Manufacturer Id
                     0x0031            0xD7      Family Code
                     0x0060            0xEC      ID3
                     0x0061            0xEF      ID4
* The Id. locations are not displayed to the user.
**Note1: This location is filled with HSB copy irrespective of what is present
in the corresponding Ram location(0x10002). However, while reading, it displays
the data that is present in Copy of HSB location. This data is valid only after
a read operation.In verification, the contents of the device are compared with
the HSB directly.


HSB Contents (1byte) - Ram mapping 0x10004
-------------------
HSB byte is programmed with the data in the Ram location 0x10004.

Here, only bit 3, 6,7 of the HSB are programmed as per the data in the Ram
location 0x10004.
Bit 3, 6,7 of HSB signify  XRAM,BLJB and X2 respectively.
Bits 0, 1, 2 represent Lock bits and are programmed by selecting the
options - Program Security bit options to 'Y'
The bits 4,5 is reserved and are programmed as per their previously stored
value.

Bits 0, 1, 2 represent Lock bits and are programmed by selecting the options -
Program Security bit options to 'Y'
The bits 4 is reserved and are programmed as per their previously stored
value.

The device has three lock bits (bit0 - bit2 of HSB byte).These bits are
programmed to '0' (to secure state) if PROGRAM SECURITY FUSE fields in the
Program Memory Device Options screen are set to 'Y'.
Unsecured device has security bits set to '1'.
To set Lock Bits flag in TaskLink you must navigate to the following
Dialog box: Setup -> Programmer Properties... -> "Security" Dialog tab.

Program Security fuse 1 : Lock Bit 1
Program Security fuse 2 : Lock Bit 2
Program Security fuse 3 : Lock Bit 3

Program Lock Bits
------------------------
     LB1    LB2    LB3
     ---    ---    ---
1    U      U      U       No program lock features
2    P      U      U       Further programming of device memory is disabled
3    P      P      U       Further programming and verify is disabled
4    P      P      P       Further programming, verify and external execution
                           is disabled
(U) unprogrammed
(P) programmed

Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-0FFFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K(10000H)
    | XA FLASH MEM         |
       (only 4 bytes done)
    |----------------------|
    | HSB MEM - 1 Byte     |
           0x10004

Significance of the bits in HSB:
--------------------------------
         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |   X2   |  BLJB  |Reserved|Reserved|XRAM    |  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

The user has to take care to fill in the appropriate data in the required 
locations in XAF

For more details please refer the device data sheet.

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

AT89C51ED2
--------

Unisystem RAM mapping:
----------------------
      0x00000- 0x0FFFF    User Flash Memory
      0x10000- 0x107FF    Data Memory (EEPROM)2KB
      0x10800- 0x10803    XA flash mem
      0x10804-            HSB (1byte)
Please refer figure 1 for pictorial representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting the appropriate data in the required locations.
If the chip is erased, this XAF array is filled with the default values
Id locations i.e 0030h, 0031h, 0060h, 0061h are.filled with a constant data
viz. 58h, D7h, FCh, FFh every time the Program XAF operation is selected.
The other XAF locations are Reserved and not accessible to the user.

Ram Location        XAF Address    Default/Erased data
-----------         -----------     ------------
0x10800              0x0000            0xFF      Boot Status Byte (BSB)
0x10801              0x0001            0xFF      Software Boot Vector (SBV)
0x10802              0x0004            0xFF      Copy of HSB**Note1
0x10803              0x0005            0xFF      Software Security Byte (SSB)

                     0x0030            0x58      Manufacturer Id
                     0x0031            0xD7      Family Code
                     0x0060            0xEC      ID3
                     0x0061            0xEF      ID4

* The Id. locations are not displayed to the user.
**Note1: This location is filled with HSB copy irrespective of what is present
in the corresponding Ram location(0x10002). However, while reading, it displays
the data that is present in Copy of HSB location. This data is valid only after
a read operation.In verification, the contents of the device are compared with
the HSB directly.

HSB Contents (1byte) - Ram mapping 0x10804
-------------------
This memory can be programmed by setting Program Protect Register Option to 'Y'

HSB byte is programmed with the data in the Ram location 0x10804.

Here, only bit 3, 6,7 of the HSB are programmed as per the data in the Ram
location 0x10804.
Bit 3, 6,7 of HSB signify  XRAM,BLJB and X2 respectively.
Bits 0, 1, 2 represent Lock bits and are programmed by selecting the
options - Program Security bit options to 'Y'
The bits 4,5 is reserved and are programmed as per their previously stored 
value.

Bits 0, 1, 2 represent Lock bits and are programmed by selecting the options -
Program Security bit options to 'Y'
The bits 4 is reserved and are programmed as per their previously stored
value.

The device has three lock bits (bit0 - bit2 of HSB byte).These bits are
programmed to '0' (to secure state) if PROGRAM SECURITY FUSE fields in the
Program Memory Device Options screen are set to 'Y'.
Unsecured device has security bits set to '1'.
To set Lock Bits flag in TaskLink you must navigate to the following
Dialog box: Setup -> Programmer Properties... -> "Security" Dialog tab.

Program Security fuse 1 : Lock Bit 1
Program Security fuse 2 : Lock Bit 2
Program Security fuse 3 : Lock Bit 3

Program Lock Bits
------------------------
     LB1    LB2    LB3
     ---    ---    ---
1    U      U      U       No program lock features
2    P      U      U       Further programming of device memory is disabled
3    P      P      U       Further programming and verify is disabled
4    P      P      P       Further programming, verify and external execution
                           is disabled
(U) unprogrammed
(P) programmed

Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-0FFFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K
    | EEPROM               |
    | 10000->107FF hex     |
    | 2K                   |
    |----------------------|10800
    | XA FLASH MEM         |
       (only 4 bytes done)
    |----------------------|
    | HSB MEM - 1 Byte     |
           0x10804

Significance of the bits in HSB:
--------------------------------
         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |   X2   |  BLJB  |Reserved|Reserved|XRAM    |  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

The user has to take care to fill in the appropriate data in the required 
locations in XAF

For more details please refer the device data sheet.

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

AT89C51ID2
--------

Unisystem RAM mapping:
----------------------
      0x0000 - 0x0FFFF    User Flash Memory
      0x10000- 0x107FF    Data Memory (EEPROM)2KB
      0x10800- 0x10803    XA flash mem
      0x10804-            HSB (1byte)
Please refer figure 1 for pictorial representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting the appropriate data in the required locations.
If the chip is erased, this XAF array is filled with the default values
Id locations i.e 0030h, 0031h, 0060h, 0061h are filled with a constant data
viz. 58h, D7h, FCh, FFh every time the Program XAF operation is selected.
The other XAF locations are Reserved and not accessible to the user.

Ram Location        XAF Address   Default/Erased data
-----------         -----------     ------------
0x10800              0x0000            0xFF      Boot Status Byte (BSB)
0x10801              0x0001            0xFF      Software Boot Vector (SBV)
0x10802              0x0004            0xFF      Copy of HSB**Note1
0x10803              0x0005            0xFF      Software Security Byte (SSB)

                     0x0030            0x58      Manufacturer Id
                     0x0031            0xD7      Family Code
                     0x0060            0xEC      ID3
                     0x0061            0xEF      ID4

* The Id. locations are not displayed to the user.
**Note1: This location is filled with HSB copy irrespective of what is present
in the corresponding Ram location(0x10002). However, while reading, it displays
the data that is present in Copy of HSB location. This data is valid only after
a read operation.In verification, the contents of the device are compared with
the HSB directly.

HSB Contents (1byte) - Ram mapping 0x10804
-------------------
This memory can be programmed by setting Program Protect Register Option to 'Y'

HSB byte is programmed with the data in the Ram location 0x10804.

Here, only bit 3,5,6,7 of the HSB are programmed as per the data in the Ram
location 0x10804.
Bit 3,5,6,7 of HSB signify XRAM,OSC,BLJB and X2 respectively.
Bits 0, 1, 2 represent Lock bits and are programmed by selecting the
options - Program Security bit options to 'Y'
The bits 4 is reserved and are programmed as per their previously stored value.

Bits 0, 1, 2 represent Lock bits and are programmed by selecting the options -
Program Security bit options to 'Y'
The bits 4 is reserved and are programmed as per their previously stored value.

The device has three lock bits (bit0 - bit2 of HSB byte).These bits are
programmed to '0' (to secure state) if PROGRAM SECURITY FUSE fields in the
Program Memory Device Options screen are set to 'Y'.
Unsecured device has security bits set to '1'.
To set Lock Bits flag in TaskLink you must navigate to the following
Dialog box: Setup -> Programmer Properties... -> "Security" Dialog tab.

Program Security fuse 1 : Lock Bit 1
Program Security fuse 2 : Lock Bit 2
Program Security fuse 3 : Lock Bit 3

Program Lock Bits
------------------------
     LB1    LB2    LB3
     ---    ---    ---
1    U      U      U       No program lock features
2    P      U      U       Further programming of device memory is disabled
3    P      P      U       Further programming and verify is disabled
4    P      P      P       Further programming, verify and external execution
                           is disabled
(U) unprogrammed
(P) programmed

Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-0FFFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K
    | EEPROM               |
    | 10000->107FF hex     |
    | 2K                   |
    |----------------------|10800
    | XA FLASH MEM         |
       (only 4 bytes done)
    |----------------------|
    | HSB MEM - 1 Byte     |
           0x10804

Significance of the bits in HSB:
--------------------------------
         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |   X2   |  BLJB  |Osc     |Reserved|XRAM    |  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

The user has to take care to fill in the appropriate data in the required
locations in XAF

For more details please refer the device data sheet.
*****************************************************************************

89C5131
--------

Unisystem RAM mapping:
----------------------
       0x0000- 0x07FFF    User Memory
       0xF000- 0x0F3FF    Data Memory (EEPROM)1KB
       0xF400- 0x0FFFF    Boot Memory 3KB
       0x10000-0x10005    XA flash mem
       0x10006-           HSB (1byte)Hardware byte for chip configuration
                          and security

Please refer figure 1 for pictoral representation

XAF Details:
-----------
Details of XA flash locations and their significance: This memory can be
programmed by setting Program Configuration data Option to 'Y' 
If the chip is erased, this XAF array is filled with the default values
Id locations i.e 0030h, 0031h, 0060h, 0061h are filled with a constant data
viz. 58h, D7h, F7h, DFh every time the Program XAF operation is selected.

Ram Location        XAF Address     Default data
-----------         -----------     ------------
0x10000              0x0000            0xFF      Boot Status Byte (BSB)
0x10001              0x0001            0x3F      Software Boot Vector (SBV)
0x10002              0x0002            0xFE      P1_CF
0x10003              0x0003            0xFF      P3_CF
0x10004              0x0004            0xFF      P4_CF
0x10005              0x0005            0xFF      Software Security Byte (SSB)


HSB Contents (1byte) - Ram mapping 0x10006         Default value 0xFF
-------------------
This memory can be programmed by setting Program Protect Register Option to 'Y'

Here, only bits 4-7 of the HSB are programmed as per the data in the Ram
location 10006.
Bit 6, 7 of HSB signify  BLJB and X2 respectively.
Bits 5-4 are OSCON1 and OSCON0 respectively Oscillator Control Bits
These two bits are used to control the oscillator in order to reduce
consummation.
OSCON1 OSCON0 description is as follows:
   1     1 the oscillator is configured to run from 0 to 32 MHz
   1     0 the oscillator is configured to run from 0 to 16 MHz
   0     1 the oscillator is configured to run from 0 to 8 MHz
   0     0 this configuration shouldn’t be set
Bits 0, 1, 2 represent Lock bits and are programmed by selecting
the options - Program Security bit options to 'Y'
The bit 3, is reserved and the value read from this is indeterminate


Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-07FFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 32K


    |----------------------|
    | EEPROM - Data Memory |
    | F000->F3FF hex       |
    | 1K                   |
    |----------------------|
    | FM1- Boot Memory     |
    | F400->FFFF hex       |
    | 3K                   |
    |----------------------|
    | XA FLASH MEM         |
       (only 6 bytes done)
Ram Location  XAF Location      Default Value
0x10000              0x0000            0xFF      Boot Status Byte (BSB)
0x10001              0x0001            0x3F      Software Boot Vector (SBV)
0x10002              0x0002            0xFE      P1_CF
0x10003              0x0003            0xFF      P3_CF
0x10004              0x0004            0xFF      P4_CF
0x10005              0x0005            0xFF      Software Security Byte (SSB)

    |----------------------|
    | HSB MEM - 1 Byte     |
           0x10006

Significance of the bits in HSB:
--------------------------------
         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |  X2Bit |  BLJB  | OSCON1 | OSCON0 |Reserved|  LB2   |  LB1   |  LB0   |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|


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

89S53
-----
Blank devices are unsecured.
Unsecured device has security bits set to '1'.
Blank devices have the Serial Program feature enabled

The device has three lock bits (bit1 - bit3). These bits are programmed to
'0' (to secure state) if PROGRAM SECURITY FUSE fields in the Program Memory
Device Options screen are set to 'Y'.
The secured device cannot be read/verified by the programmer, but the device
can be erased.

The Serial Program Enable feature is in effect if PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'N' (default).

The Serial Program Disable feature is in effect if PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.

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

89S8252
-------
Blank devices are unsecured.
Unsecured device has security bits set to '1'.
Blank devices have the Serial Program feature enabled

The device has three lock bits (bit1 - bit3). These bits are programmed to
'0' (to secure state) if PROGRAM SECURITY FUSE fields in the Program Memory
Device Options screen are set to 'Y'.
The secured device cannot be read/verified by the programmer, but the device
can be erased.

The Serial Program Enable feature is in effect if PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'N' (default).

The Serial Program Disable feature is in effect if PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.

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

89S8253
-------
Blank devices are unsecured and have the Serial Program feature enabled.

The device has three lock bits (bit1 - bit3). These bits are programmed to
'0' (to secure state) if PROGRAM SECURITY FUSE fields in the Program Memory
Device Options screen are set to 'Y'.
Unsecured device has security bits set to '1'.
To set Lock Bits flag in TaskLink you must navigate to the following
Dialog box: Setup -> Programmer Properties... -> "Security" Dialog tab.

Program Security fuse 1 : Lock Bit 1
Program Security fuse 2 : Lock Bit 2
Program Security fuse 3 : Lock Bit 3

Program Lock Bits
------------------------
     LB1    LB2    LB3
     ---    ---    ---
1    U      U      U       No program lock features
2    P      U      U       Further programming of device memory is disabled
3    P      P      U       Further programming and verify is disabled
4    P      P      P       Further programming, verify and external execution
                           is disabled
(U) unprogrammed
(P) programmed

Unisystem RAM mapping:
----------------------
       0x0000- 0x02FFF    Code Memory (12K Bytes)
       0x3000- 0x037FF    Data Memory (2K  Bytes)
       0x3800- 0x0383F    User Memory (0x040 Bytes)
       0x3840             User Fuses  (Default Value = 0xFA)

To program User Fuses option using the Hiterm or TaskLink interface you must
enable (set to Yes) the "Program Protect Register" flag in Hiterm.To set this
flag in TaskLink you must navigate to the following Dialog box:
Setup -> Programmer Properties... -> "Special" Dialog tab.
The significance of the fuses corresponding to memory location
0x03840 is as follows:

Fuse1: SerialPrgEn            D0 = 0
        SerialPrgDis           D0 = 1
Fuse2 : x2 ClockEn             D1 = 0
        x2 ClockDis            D1 = 1
Fuse3 : UsrRowPrgEn            D2 = 0
        UsrRowPrgDis           D2 = 1
Fuse4 : Ext.Clk/CrystalEn      D3 = 0
        Ext.Clk/CrystalDis     D3 = 1

        7         6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |        |        |        |        | FUSE4  | FUSE3  | FUSE2  | FUSE1  |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

(Bit 4 to Bit 7 are not used)

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

AT90S1200
---------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of RCEN bit is '1'
Default value of SPIEN bit is '0'

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 03FF hex      flash the main array
     0400 hex - 043F hex      EEPROM array
                0440 hex      byte with RCEN and SPIEN fuses


The fuse distribution in the byte at 0440 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      RCEN

                     '0'                                      '1'

                   (default)                               (default)


The fuses RCEN and SPIEN can be reprogrammed.

To reprogram RCEN and SPIEN fuses go to the Programmer's User RAM location
440 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 440 hex in the Programmer's User RAM are :

    00 hex ------  RCEN and SPIEN are programmed to '0'
    01 hex ------  RCEN is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and RCEN is programmed to '0'
    21 hex ------  SPIEN is '1' and RCEN is '1'

To find the default value of the blank chip, load the device and check
location 0440 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the RCEN and SPIEN
fuses. Consult your software designer what values should be programmed
into RCEN and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 90 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S1200A
----------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of RCEN bit is '0'
Default value of SPIEN bit is '0'

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 03FF hex      flash the main array
     0400 hex - 043F hex      EEPROM array
                0440 hex      byte with RCEN and SPIEN fuses


The fuse distribution in the byte at 0440 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      RCEN

                     '0'                                      '0'

                   (default)                               (default)


The fuses RCEN and SPIEN can be reprogrammed.

To reprogram RCEN and SPIEN fuses go to the Programmer's User RAM location
440 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 440 hex in the Programmer's User RAM are :

    00 hex ------  RCEN and SPIEN are programmed to '0' (default)
    01 hex ------  RCEN is '1' and SPIEN is programmed to '0'
    20 hex ------  SPIEN is '1' and RCEN is programmed to '0'
    21 hex ------  SPIEN is '1' and RCEN is '1'

To find the default value of the blank chip, load the device and check
location 0440 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the RCEN and SPIEN
fuses. Consult your software designer what values should be programmed
into RCEN and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 90 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S8515
---------
Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of FSTRT bit is '1'
Default value of SPIEN bit is '0'
Some versions of the device can have different default values.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 1FFF hex      flash the main array
     2000 hex - 21FF hex      EEPROM array
                2200 hex      byte with FSTRT and SPIEN fuses


The fuse distribution in the byte at 2200 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      FSTRT

                     '0'                                      '1'

                   (default)                               (default)


The fuses FSTRT and SPIEN can be reprogrammed.

To reprogram FSTRT and SPIEN fuses go to the Programmer's User RAM location
2200 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 2200 hex in the Programmer's User RAM are :

    00 hex ------  FSTRT and SPIEN are programmed to '0'
    01 hex ------  FSTRT is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and FSTRT is programmed to '0'
    21 hex ------  SPIEN is '1' and FSTRT is '1'

To find the default value of the blank chip, load the device and check
location 2200 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the FSTRT and SPIEN
fuses. Consult your software designer what values should be programmed
into FSTRT and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 93 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S4414
---------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of FSTRT bit is '1'
Default value of SPIEN bit is '0'
Some versions of the device can have different default values.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 0FFF hex      flash the main array
     1000 hex - 10FF hex      EEPROM array
                1100 hex      byte with FSTRT and SPIEN fuses


The fuse distribution in the byte at 2200 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      FSTRT

                     '0'                                      '1'

                   (default)                               (default)

The fuses FSTRT and SPIEN can be reprogrammed.

To reprogram FSTRT and SPIEN fuses go to the Programmer's User RAM location
1100 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 1100 hex in the Programmer's User RAM are :

    00 hex ------  FSTRT and SPIEN are programmed to '0'
    01 hex ------  FSTRT is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and FSTRT is programmed to '0'
    21 hex ------  SPIEN is '1' and FSTRT is '1'

To find the default value of the blank chip, load the device and check
location 1100 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the FSTRT and SPIEN
fuses. Consult your software designer what values should be programmed
into FSTRT and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 92 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S2333
---------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Factory default value of fuses is usually DA hex.
Some versions of the device can have different default values.

Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 07FF hex      flash the main array
     0800 hex - 083F hex      EEPROM array
                0840 hex      byte with  fuses


The fuse distribution in the byte at 1100 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ------------------------------------------------------------------
   x        x     SPIEN  BODLEVEL  BODEN   CLKSEL2  CLKSEL1 CLKSEL0

Bits masked as 'x' are unused and should be left unprogrammed ('1).
Legal values of the byte with fuses are from C00 hex to FF hex.
All fuses can be reprogrammed.

To reprogram fuses, go to the Programmer's User RAM location
0840 hex and enter the value for the fuses there.

The data files usually does not have information about the fuses.
Consult your software designer what values should be programmed
into fuses.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field "Program security
fuse 1" field corresponds to the lock bit LB1 and "Program
security fuse 2" field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.

Legal combinations of Lock Bits (security fuses) are:

          LB1 = security fuse #1          LB2 = security fuse #2
          -----------------------         ------------------------
 MODE 1    1    (unprogrammed, N)          1    (unprogrammed, N)
 MODE 2    0    (programmed, Y)            1    (unprogrammed, N)
 MODE 3    0    (programmed, Y)            0    (programmed, Y)

When the device is programmed to MODE 2 locks combination,
the device can not be reprogrammed without erasing it.
It can be read and verified.

When the device is programmed to MODE 3 locks combination,
the device can not be reprogrammed without erasing it.
It can not be read and verified. When a device with MODE 3
protection is read the data is scrambled. The even bytes in the
Flash Memory section contain values of the fuses and the even
bytes contain locks values.

Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The flash memory  and the EEPROM can be erased by using the bulk erase
feature. During the bulk erase the security bit  are set to '1' and
the device is unsecured. The fuse bits are also set to '1'.

The checksum is calculated by using this formula:

     CHECKSUM = SUM[0x000 : 0x07FF] + SUM[0x0800 : 0x083F] + FUSE BYTE

     FUSE BYTE is value of byte at address 0840 hex in the User's RAM
     (all bits).

NOTES: Always enable at least one pass verify when programming.

       Some engineering samples have the device code FF hex, FF hex, FF hex
       instead of 1E hex, 91 hex and 05 hex. In this case an ID error occurs.
       You can disable the device code checking by setting the field COMPARE
       ELEC ID to 'N'.

       When using small data files, consider to fill the Programmer's
       User RAM with FF hex (the blank state of the device) prior
       the data file downloading. That will cause that the locations
       not covered in the data file will be programmed to FF hex (left
       blank). In most cases it does not matter.

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

AT90S4433
---------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Factory default value of fuses is usually DA hex.
Some versions of the device can have different default values.

Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 0FFF hex      flash the main array
     1000 hex - 10FF hex      EEPROM array
                1100 hex      byte with  fuses


The fuse distribution in the byte at 1100 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ------------------------------------------------------------------
   x        x     SPIEN  BODLEVEL  BODEN   CLKSEL2  CLKSEL1 CLKSEL0

Bits masked as 'x' are unused and should be left unprogrammed ('1).
Legal values of the byte with fuses are from C00 hex to FF hex.
All fuses can be reprogrammed.

To reprogram fuses, go to the Programmer's User RAM location
1100 hex and enter the value for the fuses there.

The data files usually does not have information about the fuses.
Consult your software designer what values should be programmed
into fuses.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field "Program security
fuse 1" field corresponds to the lock bit LB1 and "Program
security fuse 2" field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.

Legal combinations of Lock Bits (security fuses) are:

          LB1 = security fuse #1          LB2 = security fuse #2
          -----------------------         ------------------------
 MODE 1    1    (unprogrammed, N)          1    (unprogrammed, N)
 MODE 2    0    (programmed, Y)            1    (unprogrammed, N)
 MODE 3    0    (programmed, Y)            0    (programmed, Y)

When the device is programmed to MODE 2 locks combination,
the device can not be reprogrammed without erasing it.
It can be read and verified.

When the device is programmed to MODE 3 locks combination,
the device can not be reprogrammed without erasing it.
It can not be read and verified. When a device with MODE 3
protection is read the data is scrambled. The even bytes in the
Flash Memory section contain values of the fuses and the even
bytes contain locks values.

Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The flash memory  and the EEPROM can be erased by using the bulk erase
feature. During the bulk erase the security bit  are set to '1' and
the device is unsecured. The fuse bits are also set to '1'.

The checksum is calculated by using this formula:

     CHECKSUM = SUM[0x000 : 0x0FFF] + SUM[0x1000 : 0x10FF] + FUSE BYTE

     FUSE BYTE is value of byte at address 1100 hex in the User's RAM
     (all bits).

NOTES: Always enable at least one pass verify when programming.

       Some engineering samples have the device code FF hex, FF hex, FF hex
       instead of 1E hex, 92 hex and 03 hex. In this case an ID error occurs.
       You can disable the device code checking by setting the field COMPARE
       ELEC ID to 'N'.

       When using small data files, consider to fill the Programmer's
       User RAM with FF hex (the blank state of the device) prior
       the data file downloading. That will cause that the locations
       not covered in the data file will be programmed to FF hex (left
       blank). In most cases it does not matter.

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

AT90S2313
-------------------------------
Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of FSTRT bit is '1'
Default value of SPIEN bit is '0'
Some versions of the device can have different default values.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 07FF hex      flash the main array
     0800 hex - 087F hex      EEPROM array
                0880 hex      byte with FSTRT and SPIEN fuses


The fuse distribution in the byte at 0880 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      FSTRT

                     '0'                                      '1'

                   (default)                               (default)


The fuses FSTRT and SPIEN can be reprogrammed.

To reprogram FSTRT and SPIEN fuses go to the Programmer's User RAM location
880 hex and enter the value of fuses. Bit # 0 corresponds to FSTRT
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 880 hex in the Programmer's User RAM are :

    00 hex ------  FSTRT and SPIEN are programmed to '0'
    01 hex ------  FSTRT is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and FSTRT is programmed to '0'
    21 hex ------  SPIEN is '1' and FSTRT is '1'

To find the default value of the blank chip, load the device and check
location 0880 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the RCEN and SPIEN
fuses. Consult your software designer what values should be programmed
into FSTRT and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 91 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: On early engineering samples the signature bytes are erased
      when the chip is erased for the first time. Also problem with
      the lock bit erase.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S2323/AT90LS2323
--------------------
AT90S2343/AT90LS2343
--------------------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of RCEN bit is '1'
Default value of SPIEN bit is '0'
Some versions of the device can have different default values.

The byte at 0880 hex is not added to the final Sumcheck.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 07FF hex      flash the main array
     0800 hex - 087F hex      EEPROM array
                0880 hex      byte with RCEN and SPIEN fuses


The fuse distribution in the byte at 0880 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      RCEN

                     '0'                                      '1'

                   (default)                               (default)

When SPIEN is '0' (factory default), the Serial Downloadind is enabled.
When RCEN is '0', the internal RC oscilator is selected as the MCU clock
source.

Bulk Erase operation on the device  erases main arrays and sets
SPIEN and RCEN to the factory default.

The fuses RCEN and SPIEN can be reprogrammed.

To reprogram RCEN and SPIEN fuses go to the Programmer's User RAM location
880 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed).

The legal value of the byte at 880 hex in the Programmer's User RAM are :

    00 hex ------  RCEN and SPIEN are programmed to '0'
    01 hex ------  RCEN is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and RCEN is programmed to '0'
    21 hex ------  SPIEN is '1' and RCEN is '1'

To find the default value of the blank chip, load the device and check
location 0880 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the RCEN and SPIEN
fuses. Consult your software designer what values should be programmed
into RCEN and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 91 hex and 02 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.


NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT90S8535
---------
Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex
Default value of FSTRT bit is '1'
Default value of SPIEN bit is '0'
Some versions of the device can have different default values.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     0000 hex - 1FFF hex      flash the main array
     2000 hex - 21FF hex      EEPROM array
                2200 hex      byte with FSTRT and SPIEN fuses


The fuse distribution in the byte at 2200 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x        x        x       x      FSTRT

                     '0'                                      '1'

                   (default)                               (default)


The fuses FSTRT and SPIEN can be reprogrammed.

To reprogram FSTRT and SPIEN fuses go to the Programmer's User RAM location
2200 hex and enter the value of fuses. Bit # 0 corresponds to RCEN
fuse and bit #5 corresponds to SPIEN fuse. Also set PROGRAM XNOR DATA field
in the Program Memory Device Options screen are set to 'Y'.
Without setting PROGRAM XNOR DATA field to 'Y' the fuses will not be
programmed(or reprogrammed). The fuses RCEN and SPIEN stay unchanged
by the bulk erase.

The legal value of the byte at 2200 hex in the Programmer's User RAM are :

    00 hex ------  FSTRT and SPIEN are programmed to '0'
    01 hex ------  FSTRT is '1' and SPIEN is programmed to '0' (default)
    20 hex ------  SPIEN is '1' and FSTRT is programmed to '0'
    21 hex ------  SPIEN is '1' and FSTRT is '1'

To find the default value of the blank chip, load the device and check
location 2200 in the Programmer's User RAM. If the value is different
than 01 hex, the device will not pass the blank check.

The data file usually does not have information about the FSTRT and SPIEN
fuses. Consult your software designer what values should be programmed
into FSTRT and SPIEN. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security
fuse 1' field corresponds to the lock bit LB1 and 'Program
security fuse 2' field corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
Reading of the secured device can generate a message "Security fuse
programmed or bad device".

The security bits can be erased by using the bulk erase feature. During
the bulk erase also the flash memory  and the EEPROM are erased.

Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 93 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.


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

ATtiny12/12V/12L
-----------------

NOTE : The following configuration/support information in this document
applies to Software Versions up through V7.9.  For the latest
programming support information please refer to the following
application note:atm_avr.txt


Blank state of flash byte:  FF hex
Blank state of EEPROM byte: FF hex

Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 03FF hex   Flash memory
   0400 hex - 043F hex   EEPROM array

   0440 hex              Fuses byte
   0441 hex              Lock bits fuses
   0442 hex              User's high byte address for Calibration byte location
   0443 hex              User's low byte address for Calibration byte location
   0444 hex              Calibration byte read from the device (not from flash).



The fuse distribution in the byte at 0440 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1     bit0
 ---------------------------------------------------------------------
 BODLEVEL  BODEN   SPIEN  RSTDSBL  CKSEL3   CKSEL2   CLKSEL1  CLKSEL0

All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.


The fuse distribution in the byte at 4202 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
   x        x        x        x       x       LB2      LB1      x


Bits masked as 'x' are unused and should be left un programmed ('1).
These fuses are bulk erasable.


The following is an excerpt regarding the Calibration Byte from the Atmel
data sheet:

"The ATtiny12 has a one-byte calibration value for the internal RC oscillator.
 This byte resides in the high byte of address $000 in the signature address
 space. To make use of this byte, it should be read from this location and
written into the normal Flash Program memory. At startup, the user software
must read this Flash location and write the value to the OSCCAL register."

Data I/O's support of the "one byte calibration value" for the ATtiny12 is
as follows:

The "one byte calibration value" is read during programming operation, and
then programmed into the normal Flash program memory if the "Program Security
Fuse 1" flag has been enabled. During programming operation the algorithm
looks to location 0442 hex and 0443 hex in the Programmer's User RAM to
determine where the end-user wants to place the one byte calibration value.
Note, this byte can only be located in the normal Flash program memory. The
maximum value of this address is 03FF hex.

The location 0444 hex in the Programmer's User RAM contains the Calibration
byte read from the device's fuse area (not from flash memory).
This byte is only for the user information and it is not included in the
checksum calculation. For an information, the user can compare the value at
this address to the Calibration byte programmed into the flash memory.

In the programmer's PROGRAM MEMORY DEVICE screen the user can enable the
Calibration Byte programming and lock bits LB1/LB2 programming.
The user can also select adding the user's Calibration Byte address (locations
0442/0443 hex in the Programmer's User RAM) to the final checksum.

The selection fields in the PROGRAM MEMORY DEVICE screen are:

   1.  Program Security Fuse 1  =    Y/N


       Setting the Y/N field to 'Y' will program the Calibration byte read
       from the device to the flash memory address found in the Programmer's
       User RAM at locations 0442 hex and 0443 hex.

       Example: In order to program the Calibration byte to the flash memory
                location 0134 hex,the Programmer's User RAM location 0442 hex
                should have value 01 hex and the location 0443 hex should
                contain 34 hex.
                Do not forget to set 'Program Security Fuse 1' flag to 'Y'.


   2.  Program Security Fuse 2  =    Y/N

       Setting the Y/N field to 'Y' will program lock bits LB1 and LB2 into
       the device with values found in the Programmer's User RAM at the
       location 0441 hex. When the selection is set to 'N', bits LB1 and LB2
       will not be programmed and the device will not be protected.
       When the device is secured with fuses LB1 and LB2 programmed to '0',
       the flash memory and EEPROM reads as 00 hex. Fuse bytes are not
       scrambled.Check if secured device works in the circuit.


   3.  Program XNOR Data  =    Y/N

       Setting the Y/N field to 'Y' will include the user's Calibration Byte
       address (locations 0442/0443 hex in the Programmer's User RAM) to
       the final checksum


The checksum is calculated by using this formula:


     1.The user's Calibration Byte address is included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x043F] + Fuses +

                 + Lock bits fuses byte + SUM[0x0442 : 0x0443]


     2.The user's Calibration Byte address is not included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x043F] + Fuses byte + Lock bits fuses byte


NOTE: The Calibration Byte can be different for every device and for this
      reason the flash memory location where the Calibration byte is
      programmed is excluded from the device checksum calculation.

      The user's data file checksum and the programmed device checksum
      should be the same. In order to achieve this, the user should set
      in the data file the location where he Calibration byte is to be
      programmed to 00 hex. Setting that location to 00h will exclude that
      location from the checksum calculation


NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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



ATtiny15/15L
------------

NOTE : The following configuration/support information in this document
applies to Software Versions up through V7.9.  For the latest
programming support information please refer to the following
application note:atm_avr.txt

Blank state of flash byte:  FF hex
Blank state of EEPROM byte: FF hex

Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 03FF hex   Flash memory
   0400 hex - 043F hex   EEPROM array

   0440 hex           Fuses byte
   0441 hex           Lock bits fuses
   0442 hex           User's high byte address for Calibration byte location
   0443 hex           User's low byte address for Calibration byte location
   0444 hex           Calibration byte read from the device (not from flash).



The fuse distribution in the byte at 0440 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
 BODLEVEL  BODEN   SPIEN  RSTDSBL     x        x    CLKSEL1  CLKSEL0


Bits masked as 'x' are unused and should be left un programmed ('1).
All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.


The fuse distribution in the byte at 4202 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
   x        x        x        x       x       LB1      LB1      x


Bits masked as 'x' are unused and should be left un programmed ('1).
These fuses are bulk erasable.


The following is an excerpt regarding the Calibration Byte from the Atmel
data sheet:

"The ATtiny15L has a one-byte calibration value for the internal RC Oscillator.
This byte resides in the high byte of address $000 in the signature address
space. To make use of this byte, it should be read from this location and
written into the nor-mal Flash program memory."


Data I/O's support of the "one byte calibration value" for the ATtiny15 is
as follows:

The "one byte calibration value" is read during programming operation, and
then programmed into the normal Flash program memory if the "Program Security
Fuse 1" flag has been enabled. During programming operation the algorithm
looks to location 0442 hex and 0443 hex in the Programmer's User RAM to
determine where the end-user wants to place the one byte calibration value.
Note, this byte can only be located in the normal Flash program memory. The
maximum value of this address is 03FF hex.

The location 0444 hex in the Programmer's User RAM contains the Calibration
byte read from the device's fuse area (not from flash memory).
This byte is only for the user information and it is not included in the
checksum calculation. For an information, the user can compare the value at
this address to the Calibration byte programmed into the flash memory.


In the programmer's PROGRAM MEMORY DEVICE screen the user can enable the
 Calibration Byte programming and lock bits LB1/LB2 programming.
The user can also select adding the user's Calibration Byte address(locations
0442/0443 hex in the Programmer's User RAM) to the final checksum.

The selection fields in the PROGRAM MEMORY DEVICE screen are:

  1.  Program Security Fuse 1  =    Y/N


      Setting the Y/N field to 'Y' will program the Calibration byte read
      from the device to the flash memory address found in the Programmer's
      User RAM at locations 0442 hex and 0443 hex.

      Example: In order to program the Calibration byte to the flash memory
               location 0134 hex, the Programmer's User RAM location 0442 hex
               should have value 01 hex and the location 0443 hex should 
               contain 34 hex.
               Do not forget to set 'Program Security Fuse 1' flag to 'Y'.


  2.  Program Security Fuse 2  =    Y/N

      Setting the Y/N field to 'Y' will program lock bits LB1 and LB2 into
      the device with values found in the Programmer's User RAM at the 
      location 0441 hex. When the selection is set to 'N', bits LB1 and LB2
      will not be programmed and the device will not be protected.
      When the device is secured with fuses LB1 and LB2 programmed to '0',
      the flash memory and EEPROM reads as 00 hex. Fuse bytes are not
      scrambled.Check if secured device works in the circuit.


  3.  Program XNOR Data  =    Y/N

      Setting the Y/N field to 'Y' will include the user's Calibration Byte
      address (locations 0442/0443 hex in the Programmer's User RAM) to
      the final checksum


The checksum is calculated by using this formula:


     1.The user's Calibration Byte address is included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x043F] + Fuses +

                 + Lock bits fuses byte + SUM[0x0442 : 0x0443]


     2.The user's Calibration Byte address is not included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x043F] + Fuses byte + Lock bits fuses byte


NOTE: The Calibration Byte can be different for every device and for this
      reason the flash memory location where the Calibration byte is
      programmed is excluded from the device checksum calculation.

      The the user's data file checksum and the programmed device checksum
      should be the same. In order to achieve this, the user should set
      in the data file the location where he Calibration byte is to be
      programmed to 00 hex. Setting that location to 00h will exclude that
      location from the checksum calculation


NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

ATmega163
---------

ATmega163L
----------

Blank state of flash byte:  FF hex
Blank state of EEPROM byte: FF hex

Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 3FFF hex   Flash memory
   4000 hex - 41FF hex   EEPROM array

   4200 hex           Fuses low byte
   4201 hex           Fuses high byte
   4202 hex           Lock bits fuses
   4203 hex           User's high byte address for Calibration byte location
   4204 hex           User's low byte address for Calibration byte location
   4205 hex           Calibration byte read from the device (not from flash).



The fuse distribution in the byte at 4200 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
 BODLEVEL  BODEN   SPIEN     x     CLKSEL3  CLKSEL2  CLKSEL1 CLKSEL1


Bits masked as 'x' are unused and should be left un programmed ('1).
All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.



The fuse distribution in the byte at 4201 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
   x        x       x       x        x      BOOTSZ1  BOOTSZ1 BOOTRST

Bits masked as 'x' are unused and should be left un programmed ('1).
All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.



The fuse distribution in the byte at 4202 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
   x        x      BLB12   BLB11    BLB02    BLB01    LB2     LB1


Bits masked as 'x' are unused and should be left un programmed ('1).
These fuses are bulk erasable.


The following is an excerpt regarding the Calibration Byte from the Atmel data
sheet:

  "The ATmega163 has a one byte calibration value for the internal RC Oscillator.
   This byte resides in the high byte of address $000 in the signature address
   space. To make use of this byte, it should be read from this location and
   written into the normal Flash program memory by the external programmer."


Data I/O's support of the "one byte calibration value" for the ATmega163 is
as follows:

The "one byte calibration value" is read during programming operation, and
then programmed into the normal Flash program memory if the "Program Security
Fuse 1" flag has been enabled. During programming operation the algorithm
looks to location 4203 hex and 4204 hex in the Programmer's User RAM to
determine where the end-user wants to place the one byte calibration value.
Note, this byte can only be located in the normal Flash program memory. The
maximum value of this address is 3FFF hex.

The location 4205 hex in the Programmer's User RAM contains the Calibration byte
read from the device's fuse area (not from flash memory).
This byte is only for the user information and it is not included in the checksum
calculation. For an information, the user can compare the value at this address to
the Calibration byte programmed into the flash memory.


In the programmer's PROGRAM MEMORY DEVICE screen the user can enable the
Calibration Byte programming and lock bits LB1/LB2 programming.
The user can also select adding the user's Calibration Byte address(locations
4203/4204 hex in the Programmer's User RAM) to the final checksum.

The selection fields in the PROGRAM MEMORY DEVICE screen are:

   1.  Program Security Fuse 1  =    Y/N


       Setting the Y/N field to 'Y' will program the Calibration byte read
       from the device to the flash memory address found in the Programmer's
       User RAM at locations 4203 hex and 4204 hex.

       Example: In order to program the Calibration byte to the flash memory
                location 1034 hex, the Programmer's User RAM location 4203 hex
                should have value 10 hex and the location 4204 hex should 
                contain 34 hex.
                Do not forget to set 'Program Security Fuse 1' flag to 'Y'.


   2.  Program Security Fuse 2  =    Y/N

       Setting the Y/N field to 'Y' will program lock bits LB1 and LB2 into
       the device with values found in the Programmer's User RAM at the
       location 4202 hex. When the selection is set to 'N', bits LB1 and LB2
       will not be programmed and the device will not be protected.
       When the device is secured with fuses LB1 and LB2 programmed to '0',
       the flash memory and EEPROM reads as FF hex. Fuse bytes are not 
       scrambled.Check if secured device works in the circuit.


   3.  Program XNOR Data  =    Y/N

       Setting the Y/N field to 'Y' will include the user's Calibration Byte
       address (locations 4203/4204 hex in the Programmer's User RAM) to
       the final checksum


The checksum is calculated by using this formula:


     1.The user's Calibration Byte address is included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x41FF] + Fuses low byte + Fuses high byte +

                 + Lock bits fuses byte + SUM[0x4203 : 0x4204] +

                 + address of Calibration byte in flash section


     2.The user's Calibration Byte address is not included in the checksum.

       CHECKSUM = SUM[0x0000 : 0x41FF] + Fuses low byte + Fuses high byte +

                 + Lock bits fuses byte -

                 - address of Calibration byte in flash section


NOTE: The Calibration Byte can be different for every device and for this
      reason the flash memory location where the Calibration byte is
      programmed is excluded from the device checksum calculation.

      The the user's data file checksum and the programmed device checksum
      should be the same. In order to achieve this, the user should set
      in the data file the location where he Calibration byte is to be
      programmed to 00 hex. Setting that location to 00h will exclude that
      location from the checksum calculation


NOTE: Always enable at least one pass verify when programming.

      It is recommended to have "ERASE EE DEVICE" on the programing
      screen enabled during the device programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

ATmega103 / ATmega103L
----------------------

Blank state of flash byte: FF hex
Blank state of EEPROM byte: FF hex

Factory default for the fuses byte: DFh (SPIEN bit is '0')

Some versions of the device can have different default values.

Blank devices are unsecured.
Unsecured device has security bits set to '1'.

Data in Programmer's User RAM is partitioned as follow:

     00000 hex - 1FFFF hex    flash the main array
     20000 hex - 20FFF hex    EEPROM array
                 21000 hex    byte with SPIEN, EESAVE and SUT fuses
                 21001 hex    byte with lock bits  (LB1 and LB2)


The fuses distribution in the byte at 21000 hex is as follow:

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 ----------------------------------------------------------------
   x        x      SPIEN    x     EESAVE      x      SUT1    SUT0

                     '0'                                      '1'

                   (default)                               (default)


Bits marked as 'x' are unused ( unimplemented) and should be left
unprogrammed ('1'). Make sure that these bits are set to '1's in
the datafile you are using for the programming.

The fuses byte can be reprogrammed and the byte is not erasable. After the bulk
erase, the value of the fuses byte stay unchanged.

The data files usually does not have information about the fuses.
Consult your software designer what values should be programmed
into fuses. To reprogram SPIEN and other fuses go to the Programmer's User RAM
location 21000 hex and enter the desired fuses value there.

To find the default value of the fuses byte in the blank chip, load the device
and check the location 21000 in the Programmer's User RAM.

The data file usually does not have information about the SPIEN and other
fuses. Consult your software designer what values should be programmed
into the fuses. Mostly it is the default value.

The device has two lock bits (LB1 and LB2).
On the PROGRAM MEMORY DEVICES the field 'Program security fuse 1' field
corresponds to the lock bit LB1 and 'Program security fuse 2' field
corresponds to the lock bit LB2.
Lock bits are programmed if fields are set to 'Y'.
Check if secured device works in the circuit.
To program only LB2 bit is not a valid combination.

To see what value is programmed into LB1 and LB2, load the device and
check the location at address 21001 hex in the  Programmer's User RAM.


The checksum is calculated by using this formula:

     CHECKSUM = SUM[0x00000 : 0x1FFFF] + SUM[0x20000 : 0x20FFF] + FUSE BYTE

     FUSE BYTE is value of byte at address 21000 hex in the User's RAM
     (all bits).


Some engineering samples have the device code FF hex, FF hex, FF hex
instead of 1E hex, 97 hex and 01 hex. In this case an ID error occurs.
You can disable the device code checking by setting the field COMPARE
ELEC ID to 'N'.

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

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

AT89C51RE2
----------

Unisystem RAM mapping:
----------------------
       0x00000-0x0FFFF    User Flash Memory Bank 1 (FM0)
       0x10000-0x1FFFF    User Flash Memory Bank 2 (FM1)
       0x20000-           FCB Fuse Configaration byte (1byte)
Please refer figure 1 for pictorial representation

FCB Contents (1byte) - Ram mapping 0x20000
-------------------
FCB byte is programmed with the data in the Ram location 0x20000.

Bit 7 of FCB signify X2 Bit.
Bits 0, 1, 2 represent Boot Reset Vector Bits .


The device has three lock bits (bit0 - bit2 of HSB byte).These bits are
programmed to '0' (to secure state) if PROGRAM SECURITY FUSE fields in the
Program Memory Device Options screen are set to 'Y'.
Unsecured device has security bits set to '1'.
To set Lock Bits flag in TaskLink you must navigate to the following
Dialog box: Setup -> Programmer Properties... -> "Security" Dialog tab.

Program Security fuse 1 : Lock Bit 1
Program Security fuse 2 : Lock Bit 2
Program Security fuse 3 : Lock Bit 3

Program Lock Bits
------------------------
     LB1    LB2    LB3
     ---    ---    ---
1    U      U      U       No program lock features
2    P      U      U       Further programming of device memory is disabled
3    P      P      U       Further programming and verify is disabled
4    P      P      P       Further programming, verify and external execution
                           is disabled
(U) unprogrammed
(P) programmed

Figure 1:
---------

         Device mapping:
     ----------------------  0
    |User memory FM0       |
    | 0-0FFFF hex          |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K(0FFFFH)
    |User memory FM1       |
    | 10000-1FFFF hex      |
    |                      |
    |                      |
    |                      |
    |----------------------| 64K(1FFFFH)
    | FCB     - 1 Byte     |
    |      0x20000         |
    |----------------------|

Significance of the bits in FCB:
--------------------------------
         7       6        5        4        3        2        1        0
    |--------|--------|--------|--------|--------|--------|--------|--------|
    |        |        |        |        |        |        |        |        |
    |   X2   |Reserved|Reserved|Reserved|Reserved|  BRV2  |  BRV1  |  BRV0  |
    |        |        |        |        |        |        |        |        |
    |--------|--------|--------|--------|--------|--------|--------|--------|

The user has to take care to fill in the appropriate data in the required
locations in FCB

For more details please refer the device data sheet.

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