dos2unix on all files + tab madness
[pyfrprog.git] / Start91460.asm
index 453c85a0dbd2d828fac6eb5ca9b8d3e0cd8329c2..9f3190ee7de54b7467acd3fe6afa067b69812195 100644 (file)
-/*      THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU       */\r
-/*      MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR       */\r
-/*      ELIGIBILITY FOR ANY PURPOSES.                                                   */\r
-/*      (C) Fujitsu Microelectronics Europe GmbH                                        */\r
-;=========================================================================================\r
-; 1  Contents\r
-;=========================================================================================\r
-; 1       Contents\r
-; 2       Disclaimer\r
-;\r
-; 3       History\r
-;\r
-; 4       Settings\r
-; 4.1     Controller device\r
-; 4.2     Boot / flash security \r
-; 4.3     Stack type and stack size\r
-; 4.4     Copy code from flash to I-RAM\r
-; 4.5     C++ start-up \r
-; 4.6     Low-level library interface\r
-; 4.7     Clock Configuration\r
-; 4.7.1   Clock selection\r
-; 4.7.2   Select Clock Modulator\r
-; 4.8     External bus interface\r
-; 4.8.1   Select chipselect \r
-; 4.8.2   Set memory addressing for chipselects\r
-; 4.8.3   Configure chipselect area\r
-; 4.8.4   Set wait cycles for chipselects\r
-; 4.8.5   Configure chipselects SDRAM memory only \r
-; 4.8.6   Referesh control register RCR \r
-; 4.8.7   Terminal and timing control register\r
-; 4.8.8   Enable / disable I-cache\r
-; 4.8.9   Enable CACHE for chipselect\r
-; 4.8.10  Select external bus mode (data lines)\r
-; 4.8.11  Select external bus mode (address lines)\r
-; 4.8.12  Select external bus mode (control signals)\r
-;\r
-; 5       Definitions of Configurations\r
-;\r
-; 6       Section and data declaration\r
-; 6.1     Define stack size\r
-; 6.2     Define sections\r
-;\r
-; 7.      S T A R T \r
-; 7.1     Initialise stack pointer and table base register\r
-; 7.2     Check for CSV reset and set CSV\r
-; 7.3     Check clock condition\r
-; 7.4     Restore default settings after reset\r
-; 7.4.1   Disable clock modulator\r
-; 7.4.2   Check if running on sub clock, change to main clock\r
-; 7.4.3   Disable sub clock\r
-; 7.4.4   Check if running on PLL, gear down PLL\r
-; 7.4.5   Disable PLL\r
-; 7.4.6   Set to main clock\r
-; 7.5     Set memory controller\r
-; 7.6     Clock startup\r
-; 7.6.1   Set Voltage Regulator Settings\r
-; 7.6.2   Power on clock modulator - clock modulator part I\r
-; 7.6.3   Set CLKR register w/o clock mode\r
-; 7.6.4   Start PLLs \r
-; 7.6.5   Wait for PLL oscillation stabilisation\r
-; 7.6.6   Set clocks \r
-; 7.6.6.1 Set CPU and peripheral clock\r
-; 7.6.6.2 Set external bus interface clock\r
-; 7.6.6.3 Set CAN clock prescaler\r
-; 7.6.6.4 Switch main clock mode\r
-; 7.6.6.5 Switch sub clock mode\r
-; 7.6.6.6 Switch to PLL mode\r
-; 7.6.7   Enable frequncy modulation - clock modulator part II\r
-; 7.7     Set BusInterface\r
-; 7.7.1   Disable all CS\r
-; 7.7.2   Clear TCR register\r
-; 7.7.3   Set CS0 \r
-; 7.7.4   Set CS1 \r
-; 7.7.5   Set CS2  \r
-; 7.7.6   Set CS3\r
-; 7.7.7   Set CS4\r
-; 7.7.8   Set CS5 \r
-; 7.7.9   Set CS6\r
-; 7.7.10  Set CS7  \r
-; 7.7.11  Set special SDRAM config register  \r
-; 7.7.12  set Port function register\r
-; 7.7.13  Set TCR register\r
-; 7.7.14  Enable cache for selected CS\r
-; 7.7.15  Set SDRAM referesh control register\r
-; 7.7.16  Enable used CS\r
-; 7.7.17  I-cache on/off\r
-; 7.7.18  Set port function register to general as I/O-port\r
-; 7.8     Copy code from flash to I-RAM\r
-; 7.9     Fill stacks\r
-; 7.10    Clear data \r
-; 7.11    Copy Init section from ROM to RAM\r
-; 7.12    C library initialization\r
-; 7.13    Call C++ constructors\r
-; 7.14    Call main routine\r
-; 7.15    Return from main function\r
-;\r
-;=========================================================================================\r
-; 2  Disclaimer\r
-;=========================================================================================\r
-;                    Fujitsu Microelectronics Europe GmbH                       \r
-;                http://emea.fujitsu.com/microelectronics \r
-;                                                              \r
-;    The  following  software  is for  demonstration  purposes only. It  is not fully  \r
-;    tested, nor  validated  in order to fullfill its task under  all  circumstances.  \r
-;    Therefore,  this software or  any part of it must only  be used in an evaluation \r
-;    laboratory environment.                        \r
-;    This  software  is  subject to  the  rules of  our  standard DISCLAIMER, that is\r
-;    delivered with our  SW-tools on  the  Fujitsu  Microcontrollers  CD/DVD (V3.4 or \r
-;    higher "\START.HTM") or on our Internet Pages:                                   \r
-;    http://www.fme.gsdc.de/gsdc.htm\r
-;    http://emea.fujitsu.com/microelectronics \r
-;\r
-;=========================================================================================\r
-; 3  History\r
-;=========================================================================================\r
-;\r
-;=========================================================================================\r
-;       MB914xx (FR60 CORE ONLY) Series C Compiler's \r
-;\r
-;       Startup file for memory and basic controller initialisation\r
-;=========================================================================================\r
-;History:\r
-;\r
-; 2005-04-18 V1.0 UMa  Release first version\r
-; 2005-06-17 V1.1 UMa  Added bus interface, modified c++ startup\r
-; 2005-06-28 V1.2 UMa  minor changes\r
-; 2005-07-27 V1.3 UMa  default values changed\r
-; 2005-10-04 V1.4 UMa  changed code 'Call main Routine'\r
-;                      Added secutiy section for MB91F467D  \r
-;                      Added Flash Access Read Timing setting section;\r
-; 2005-10-04 V1.5 UMa  Added Flash Controller Section\r
-; 2005-10-28 V1.6 UMa  Check for CSV reset\r
-; 2005-11.16 V1.7 UMa  Monitor Debugger support added: Copy of intvect Table\r
-;                      Ext. Int 0 as abort function\r
-;                      Changed PLL-Startup, Reset HWWD added\r
-; 2005-11-16 V1.7 UMa  Examples for MUL_G changed\r
-; 2006-02-14 V1.8 UMa  mb91464a added\r
-;                      Settings for Clock Spervisor added\r
-;                      Name of Section SECURITY changed to SECURITY_VECTORS\r
-;                      Example values for gear-up changed\r
-; 2006-03-17 V1.9 UMa  Changed Startup for Monitor Debugger\r
-; 2006-04-24 v2.0 UMa  Added MB91465K and MB91469G\r
-; 2006-05-03 v2.1 UMa  Added MB91461R; removed MB91V460A\r
-;                      Added settings for the external bus-interface\r
-; 2006-07-28 v2.2 UMa  Added I-RAM copy function (ROM -> IRAM)\r
-;                      Added default settings for FLASH Access Read Timing \r
-;                      Settings \r
-;                      Changed default settings for FLASH cache configuration \r
-;                      Register\r
-;                      Changed check for clock startup\r
-; 2006-08-16 v2.3 MVo  Corrected Boot Security Sector Addresses for MB91469G\r
-; 2006-10-06 v2.4 UMa  Added new devices\r
-;                      Corrected typo in I_RAM to flash copy function\r
-;                      Changed default settings for flash cache configuration\r
-;                      Changed comments for SDRAM bus interface configuration\r
-;                      Changed comments and default setting of CAN Prescaler\r
-;                      Added Stack filler\r
-;                      Added Settings for REGSEL Register\r
-; 2007-02-13 v2.5 UMa  Introduction of default configurations\r
-;                      Changed I_RAM to flash copy function                    \r
-;\r
-;\r
-;=========================================================================================\r
-; 4  Settings\r
-;=========================================================================================\r
-;\r
-; CHECK ALL OPTIONS WHETHER THEY FIT TO THE APPLICATION;\r
-;\r
-; Configure this startup file in the "Settings" section. Search for\r
-; comments with leading "; <<<". This points to the items to be set.\r
-;=========================================================================================\r
-;\r
-#set    OFF             0\r
-#set    ON              1\r
-#set    DEFAULT         2\r
-#set    LOW_PRIOR       31\r
-;\r
-;=========================================================================================\r
-; 4.1  Controller Device\r
-;=========================================================================================\r
-#set    MB91464A        2                       ; MB91460 series\r
-;\r
-#set    MB91467B       10                       ; MB91460 series\r
-;\r
-#set    MB91467C       11                       ; MB91460 series\r
-;\r
-#set    MB91467D        4                       ; MB91460 series\r
-;\r
-#set    MB91469G        6                       ; MB91460 series\r
-;\r
-#set    MB91465K        3                       ; MB91460 series\r
-;\r
-#set    MB91463N        8                       ; MB91460 series\r
-;\r
-#set    MB91461R        1                       ; MB91460 series\r
-#set    MB91467R        5                       ; MB91460 series\r
-;\r
-#set    MB91465X        9                       ; MB91460 series\r
-;\r
-#set    others          7                       ; MB91460 series\r
-;\r
-;\r
-;\r
-#set    DEVICE          MB91465K                ; <<< select device\r
-;\r
-;=========================================================================================\r
-; 4.2  Boot / Flash Security \r
-;=========================================================================================\r
-;\r
-#set    BOOT_FLASH_SEC  OFF                     ; <<< BOOT and Flash Security Vector    \r
-;\r
-; The flash devices have two flash and two boot security vectors.  It is important to set\r
-; the four vectors correctly.  Otherwise it might be possible,  that the flash device is \r
-; not accessible any more via the bootrom. Please read carefully the hardware manual.\r
-; \r
-; OFF:  The security feature is switch off. The section SECURITY_VECTORS is reserved and\r
-;       the vectors are set.\r
-; ON:   IMPORTANT! The  security vectors are  not set. But the  section SECURITY_VECTORS \r
-;       is reserved.  \r
-;\r
-; Note: This feature is not supported by every device. Please check the data sheet. This \r
-;       feature is not available on MB91461R.\r
-;\r
-;=========================================================================================\r
-; 4.3  Stack Type and Stack Size\r
-;=========================================================================================\r
-;\r
-#set    USRSTACK        0                       ; user stack:   for main program\r
-#set    SYSSTACK        1                       ; system stack: for main program and \r
-;                                               ;               interrupts\r
-;\r
-;\r
-#set    STACKUSE        SYSSTACK                ; <<< set active stack\r
-;\r
-#set    STACK_RESERVE   ON                      ; <<< reserve stack area in \r
-;                                               ;     this module\r
-#set    STACK_SYS_SIZE  0x400-4                 ; <<< byte size of System stack\r
-#set    STACK_USR_SIZE  0x2                     ; <<< byte size of User stack \r
-;\r
-#set    STACK_FILL      OFF                     ; <<< fills the stack area with pattern\r
-#set    STACK_PATTERN   0x55AA6699              ; <<< the pattern to write to stack\r
-;\r
-; - If the active stack is set to SYSSTACK,  it is used for main program and interrupts. \r
-;   In this case,  the user stack  could be set to a dummy size.  If the active stack is \r
-;   set  to  user  stack,  it is  used  for the  main  program  but the  system stack is \r
-;   automatically activated,  if an interrupt is serviced.  Both stack areas must have a \r
-;   reasonable size.\r
-; - If STACK_RESERVE is ON,  the sections USTACK and SSTACK are reserved in this module. \r
-;   Otherwise, they have to be reserved in other modules.  If STACK_RESERVE is OFF,  the \r
-;   size definitions STACK_SYS_SIZE and STACK_USR_SIZE have no meaning.\r
-; - Even if  they  are reverved  in other modules,  they are  still initialised  in this \r
-;   start-up file.\r
-;\r
-; Note: Several library functions require quite a big stack (due to ANSI). \r
-;       Check the stack information files (*.stk) in the LIB\911 directory.\r
-;\r
-;=========================================================================================\r
-; 4.4  Copy code from Flash to I-RAM\r
-;=========================================================================================\r
-;\r
-#set    I_RAM           ON                      ; <<< select  if  code  in  section IRAM\r
-;                                                     should be copied\r
-;\r
-; If this option is activated code located in the  section IRAM is copied during startup \r
-; from ROM to the instruction-RAM. The code is linked for the instruction-RAM.\r
-;\r
-;=========================================================================================\r
-; 4.5  Low-Level Library Interface\r
-;=========================================================================================\r
-;\r
-#set    CLIBINIT        OFF                     ; <<< select ext. libray usage\r
-;\r
-; This option has only to be set,  if  stream-IO/standard-IO function  of the C-libraray \r
-; have to be used (printf(), fopen()...).  This also requires  low-level functions to be \r
-; defined by the application software.\r
-; For other library functions like (e.g. sprintf()) all this is not necessary.  However, \r
-; several functions consume a large amount of stack.\r
-;\r
-;=========================================================================================\r
-; 4.6  C++ start-up \r
-;=========================================================================================\r
-;\r
-#set    CPLUSPLUS       OFF                     ; <<< activate if c++ files are used\r
-;\r
-; In the  C++ specifications,  when external  or static objects are used,  a constructor \r
-; must be called followed by  the main function.  Because four-byte pointers to the main \r
-; function are stored in the EXT_CTOR_DTOR section, call a constructor sequentially from\r
-; the  lower  address  of  the four  addresses  in that  section.  If using C++ sources, \r
-; activate this function to create the section EXT_CTOR_DTOR. \r
-;\r
-;=========================================================================================\r
-; 4.7  Clock Configuration\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 4.7.1  Clock Selection\r
-;=========================================================================================\r
-;\r
-; No clock settings\r
-#set    NO_CLOCK                                               0x01\r
-;\r
-; Sub-oscillation input: 32 kHz \r
-#set    SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ     0x11\r
-;\r
-; Oscillation input: 4 MHz \r
-#set    MAIN_4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ     0x21\r
-#set    PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ     0x22\r
-#set    PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ     0x23\r
-#set    PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ     0x24\r
-#set    PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ     0x25\r
-#set    PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ     0x26  ;not MB91V460, ...\r
-#set    PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ     0x27  ;not MB91V460, ...\r
-;\r
-; MB91461R only: Oscillation input: 10 MHz\r
-#set    PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ     0x41\r
-;\r
-; MB91461R only: Oscillation input: 20 MHz\r
-#set    PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ     0x51\r
-;\r
-; User settings\r
-#set    CLOCK_USER                                             0x61\r
-;\r
-;\r
-;\r
-#set    CLOCKSPEED      PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ\r
-;                                               ; <<< Select clock configuration \r
-;\r
-; There are different default configurations available, where all necessary settings for \r
-; clocks and the related  registers are made.  Beside this configurations,  there is the\r
-; possibility   to  define  a  user   configuration   in  the  chapter   "Definition  of \r
-; Configurations"\r
-; \r
-; - NO_CLOCK means: \r
-;   The clock registers are not set by the start-up file.\r
-;\r
-; - PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ means:\r
-;   Main oszillation        =  4 MHz, PLL is activated\r
-;   CPU clock (CLKB)        = 64 MHZ\r
-;   Peripheral clock (CLKP) = 16 MHZ\r
-;   Ext. bus clock (CLKT)   = 32 MHZ\r
-;   CAN clock (CLKCAN)      = 16 MHz, using PLLx \r
-;\r
-; - CLOCK_USER: \r
-;   The user configuration definded in the chapter "Definition of Configurations" is set.\r
-;\r
-; Note: Not all  frequencies  are supported  by every device.  Please see  the  hardware \r
-;       manual.\r
-;\r
-;=========================================================================================\r
-; 4.7.2  Select Clock Modulator  \r
-;=========================================================================================\r
-;\r
-#set    CLOMO           OFF                     ; <<< Enable /disable clock modulator      \r
-;\r
-#set    CMPR            0x026F                  ; <<< Ref. to the data sheet, CMPR\r
-; \r
-; Please  refer  to the data sheet  of the device  if you  enable clock modulation.  The \r
-; register CMPR dependant on the PLL-Clock.\r
-;\r
-; Note: If the CLKCAN source is set either to main oscillator or to PLL  output then the\r
-;       clock  for  the CAN  is not influenced by  the clock  modulation.  If the CLKCAN \r
-;       source is set CPU clock (CLKB) then the clock for the CAN is also modulated  (if \r
-;       the clock modulator is enabled).\r
-;\r
-; Note: If the clock modulator is enabled,  the wait states  of the  internal flash wait \r
-;       states  must  be  adapted  to  maximum frequency.  Please check the  wait states \r
-;       settings.\r
-;\r
-; Note: This feature  is not supported by every device,  e.g. MB91461.  Please check the \r
-;       data sheet.\r
-;\r
-;=========================================================================================\r
-; 4.8  External Bus Interface\r
-;\r
-;      The rest of the configuration is only applicable for devices with an external bus \r
-;      interface.\r
-;\r
-;      If the device does not offer an external bus interface,  the configuration can be \r
-;      stoped at this point.\r
-;\r
-;=========================================================================================\r
-;\r
-#set    EXTBUS          DEFAULT                 ; <<< Ext. Bus on/off\r
-;\r
-;                       ON      - The ext. bus interface is enabled and is configured as\r
-;                                 set below. \r
-;                             \r
-;                       OFF     - The ext. bus interface is  diabled.  The port function \r
-;                                 registers  are set to  general I/O.  The registers  of \r
-;                                 ext. bus interface will not be touched by the start-up \r
-;                                 file.  \r
-;                                 Be aware, that the device  might be conifgured in ext.\r
-;                                 bus mode by default after reset.\r
-;\r
-;                       DEFAULT - Neither the register nor the respective  port function\r
-;                                 registers are touched by the start-up file.\r
-;                                 Be aware, that the device  might be conifgured in ext. \r
-;                                 bus mode by default after reset.\r
-;\r
-;\r
-; Note: This feature is not supported by every device. Please check the data sheet.  The \r
-;       following devices for example do not offer an external bus interface:  MB91464A, \r
-;       MB91467C, MB91465K, MB91463N, MB91465X.\r
-;\r
-;=========================================================================================\r
-; 4.8.1  Select Chipselect (Only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    CS0             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS1             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS2             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS3             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS4             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS5             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS6             OFF                     ; <<< select CS (ON/OFF)\r
-#set    CS7             OFF                     ; <<< select CS (ON/OFF)\r
-#set    SDRAM           OFF                     ; <<< select if a SDRAM is connected \r
-;\r
-;\r
-#set    ENACSX          B'00000000              ; <<< set CS, ENACSX\r
-;                         ||||||||\r
-;                         ||||||||__ CS0 bit, enable/disable CS0 (1/0)\r
-;                         |||||||___ CS1 bit, enable/disable CS1 (1/0)\r
-;                         ||||||____ CS2 bit, enable/disable CS2 (1/0)\r
-;                         |||||_____ CS3 bit, enable/disable CS3 (1/0)\r
-;                         ||||______ CS4 bit, enable/disable CS4 (1/0)\r
-;                         |||_______ CS5 bit, enable/disable CS5 (1/0) \r
-;                         ||________ CS6 bit, enable/disable CS6 (1/0)\r
-;                         |_________ CS7 bit, enable/disable CS7 (1/0)\r
-;\r
-; Note: If the SWB Monitor Debugger is used,  set the CS1 (external RAM only) or CS0 and \r
-;       CS 1 (external RAM and flash) to off.\r
-;\r
-; Note: Not all Chipselects  are supported by  the different devices.  Please check  the \r
-;       data sheet.\r
-;\r
-;=========================================================================================\r
-; 4.8.2  Set memory addressing for Chipselects (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    AREASEL0        0x0000                  ; <<< set start add. for CS0, ASR0  \r
-#set    AREASEL1        0x0000                  ; <<< set start add. for CS1, ASR1           \r
-#set    AREASEL2        0x0000                  ; <<< set start add. for CS2, ASR2 \r
-#set    AREASEL3        0x0000                  ; <<< set start add. for CS3, ASR3 \r
-#set    AREASEL4        0x0000                  ; <<< set start add. for CS4, ASR4 \r
-#set    AREASEL5        0x0000                  ; <<< set start add. for CS5, ASR5 \r
-#set    AREASEL6        0x0000                  ; <<< set start add. for CS6, ASR6 \r
-#set    AREASEL7        0x0000                  ; <<< set start add. for CS7, ASR7 \r
-;\r
-; Configure the starting address of each used Chipselect. Chipselects which are not used\r
-; (not set to ON in "Select Chipselect") need not be set (setting ignored).\r
-;\r
-; NOTE: Just  the upper 16-bit  of the start address must be set,  e.g. when using start \r
-;       address 0x00080000 set 0x0008.\r
-;\r
-;=========================================================================================\r
-; 4.8.3  Configure Chipselect Area (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    CONFIGCS0       B'0000000000000000      ; <<< Config. CS0, ACR0\r
-#set    CONFIGCS1       B'0000000000000000      ; <<< Config. CS1, ACR1 \r
-#set    CONFIGCS2       B'0000000000000000      ; <<< Config. CS2, ACR2 \r
-#set    CONFIGCS3       B'0000000000000000      ; <<< Config. CS3, ACR3 \r
-#set    CONFIGCS4       B'0000000000000000      ; <<< Config. CS4, ACR4  \r
-#set    CONFIGCS5       B'0000000000000000      ; <<< Config. CS5, ACR5  \r
-#set    CONFIGCS6       B'0000000000000000      ; <<< Config. CS6, ACR6  \r
-#set    CONFIGCS7       B'0000000000000000      ; <<< Config. CS7, ACR7  \r
-;                         ||||||||||||||||\r
-;                         ||||||||||||||||__ TYP0 bit, TYP0-4 bits select access type\r
-;                         |||||||||||||||___ TYP1 bit\r
-;                         ||||||||||||||____ TYP2 bit\r
-;                         |||||||||||||_____ TYP3 bit\r
-;                         ||||||||||||______ LEND bit, select little '1' or big endian '0'\r
-;                         |||||||||||_______ WREN bit, en-/disable (1/0) Write access\r
-;                         ||||||||||________ PFEN bit, en-/disable (1/0) pre-fetch\r
-;                         |||||||||_________ SREN bit, en-/disable (1/0) share of BRQ & BGRNTX\r
-;                         ||||||||__________ BST0 bit, BSTx bits select burst size\r
-;                         |||||||___________ BST1 bit\r
-;                         ||||||____________ DBW0 bit, DBWx select data bus width\r
-;                         |||||_____________ DBW1 bit\r
-;                         ||||______________ ASZ0 bit, ASZx bits select address size of CS\r
-;                         |||_______________ ASZ1 bit\r
-;                         ||________________ ASZ2 bit\r
-;                         |_________________ ASZ3 bit\r
-;\r
-; Bit description:\r
-;\r
-; TYP3 TYP2 TYP1 TYP0  : Select access type of each CS\r
-; 0    0    X    X     : Normal access (asynchronous SRAM, I/O, \r
-;                        single/page/busrt-ROM/FLASH) \r
-; 0    1    X    X     : Address/data multiplexed (8bit / 16bit bus width only)\r
-; 0    X    X    0     : WAIT insertion by RDY disabled\r
-; 0    X    X    1     : WAIT insertion by RDY enabled\r
-; 0    X    0    X     : The WR0X pin to the WR3X pin are used as write strobes \r
-;                        (WRX is fixed at H-Level)\r
-; 0    X    1    X     : The WRX pin is used as write strobe \r
-; 1    0    0    0     : Memory type A: SDRAM/FCRAM (Auto pre-charge used)  \r
-; 1    0    0    1     : Memory type B: FCRAM (Auto pre-charge used)  \r
-; 1    0    1    0     : setting not allowed\r
-; 1    0    1    1     : setting not allowed\r
-; 1    1    0    0     : setting not allowed\r
-; 1    1    0    1     : setting not allowed\r
-; 1    1    1    0     : setting not allowed\r
-; 1    1    1    1     : mask area setting\r
-;\r
-;               LEND   : select BYTE ordering \r
-;                0     : Big endian\r
-;                1     : Little endian\r
-;\r
-;               WREN   : enable or disable write access \r
-;                0     : disabled \r
-;                1     : enabled,    \r
-;\r
-;               PFEN   : Enable or disable the pre-fetch\r
-;                0     : disabled \r
-;                1     : enabled,    \r
-;\r
-;               SREN   : Enable or disable the sharing of BRQ and BGRNTX \r
-;                0     : disabled \r
-;                1     : enabled (CSx pin High-Z)\r
-;\r
-;          BST1 BST0   : set burst size of chip select area\r
-;            0   0     : 1 burst (single access)\r
-;            0   1     : 2 bursts (Address boundary 1 bit) \r
-;            1   0     : 4 bursts (Address boundary 2 bit)\r
-;            1   1     : 8 bursts (Address boundary 3 bit)\r
-;\r
-;          DBW1 DBW0   : Set data bus width\r
-;            0   0     : 8-bit (BYTE access) \r
-;            0   1     : 16-bit (HALF-WORD access) \r
-;            1   0     : 32-bit (WORD access) \r
-;            1   1     : Reserved  \r
-;\r
-; ASZ3 ASZ2 ASZ1 ASZ0  :  Select memory size of each chipselect \r
-; 0    0    0    0     : 64 Kbyte  (0x01.0000 bytes; use ASR A[31:16] bits) \r
-; 0    0    0    1     : 128 Kbyte (0x02.0000 bytes; use ASR A[31:17] bits)\r
-; 0    0    1    0     : 256 Kbyte (0x04.0000 bytes; use ASR A[31:18] bits)\r
-; 0    0    1    1     : 512 Kbyte (0x08.0000 bytes; use ASR A[31:19] bits)\r
-; 0    1    0    0     : 1 Mbyte   (0x10.0000 bytes; use ASR A[31:20] bits)\r
-; 0    1    0    1     : 2 Mbyte   (0x20.0000 bytes; use ASR A[31:21] bits)\r
-; 0    1    1    0     : 4 Mbyte   (0x40.0000 bytes; use ASR A[31:22] bits)\r
-; 0    1    1    1     : 8 Mbyte   (0x80.0000 bytes; use ASR A[31:23] bits)\r
-; 1    0    0    0     : 16 Mbyte  (0x100.0000 bytes; use ASR A[31:24] bits)\r
-; 1    0    0    1     : 32 Mbyte  (0x200.0000 bytes; use ASR A[31:25] bits)\r
-; 1    0    1    0     : 64 Mbyte  (0x400.0000 bytes; use ASR A[31:26] bits)\r
-; 1    0    1    1     : 128 Mbyte (0x800.0000 bytes; use ASR A[31:27] bits)\r
-; 1    1    0    0     : 256 Mbyte (0x1000.0000 bytes; use ASR A[31:28] bits)\r
-; 1    1    0    1     : 512 Mbyte (0x2000.0000 bytes; use ASR A[31:29] bits)\r
-; 1    1    1    0     : 1024 Mbyte(0x4000.0000 bytes; use ASR A[31:30] bits)\r
-; 1    1    1    1     : 2048 Mbyte(0x8000.0000 bytes; use ASR A[31] bit)\r
-;\r
-;=========================================================================================\r
-; 4.8.4  Set Wait cycles for Chipselects for ordinary businterface (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-; Ordinary bus interface (w/o SDRAM and FRAM) (ACRx_Type = 0xxx)\r
-;\r
-#set    WAITREG0        B'0000000000000000      ; <<< CS0 Waitstates, AWR0  \r
-#set    WAITREG1        B'0000000000000000      ; <<< CS1 Waitstates, AWR1  \r
-#set    WAITREG2        B'0000000000000000      ; <<< CS2 Waitstates, AWR2 \r
-#set    WAITREG3        B'0000000000000000      ; <<< CS3 Waitstates, AWR3 \r
-#set    WAITREG4        B'0000000000000000      ; <<< CS4 Waitstates, AWR4 \r
-#set    WAITREG5        B'0000000000000000      ; <<< CS5 Waitstates, AWR5 \r
-;                         ||||||||||||||||\r
-;                         ||||||||||||||||__ W00 bit, RDY/WRY-> CSX hold cycle\r
-;                         |||||||||||||||___ W01 bit, CSX->RDX/WRX setup extension cycle\r
-;                         ||||||||||||||____ W02 bit, Address -> CSX Delay selection\r
-;                         |||||||||||||_____ W03 bit, WR0X to WR3X/WRX outout timing \r
-;                         ||||||||||||______ W04 bit, W04/W05 Write recovery cycle\r
-;                         |||||||||||_______ W05 bit  \r
-;                         ||||||||||________ W06 bit, W06/07 Read -> Write idle cycle \r
-;                         |||||||||_________ W07 bit          selection\r
-;                         ||||||||__________ W08 bit, W08-W11 Intra-page access cycle \r
-;                         |||||||___________ W09 bit          select (0-15 cycles)\r
-;                         ||||||____________ W10 bit \r
-;                         |||||_____________ W11 bit\r
-;                         ||||______________ W12 bit, W12-W15 First access wait cycle  \r
-;                         |||_______________ W13 bit          select (0-15 cycles)\r
-;                         ||________________ W14 bit\r
-;                         |_________________ W15 bit\r
-;\r
-;\r
-; SDRAM and FRAM bus interface (ACRx_Type = 100x) \r
-;\r
-#set    WAITREG6        B'0000000000000000      ; <<< CS6 Waitstates, AWR6 \r
-#set    WAITREG7        B'0000000000000000      ; <<< CS7 Waitstates, AWR7\r
-;                         ||||||||||||||||\r
-;                         ||||||||||||||||__ W00 bit, W0-W1 RAS precharge cycles\r
-;                         |||||||||||||||___ W01 bit\r
-;                         ||||||||||||||____ W02 bit, W2-W3 RAS active Time\r
-;                         |||||||||||||_____ W03 bit\r
-;                         ||||||||||||______ W04 bit, W4-W5 Write recovery cycle\r
-;                         |||||||||||_______ W05 bit \r
-;                         ||||||||||________ W06 bit, W6-W7 Read->Write idle cycle\r
-;                         |||||||||_________ W07 bit\r
-;                         ||||||||__________ W08 bit, W8-W10 CAS latency \r
-;                         |||||||___________ W09 bit\r
-;                         ||||||____________ W10 bit \r
-;                         |||||_____________ W11 bit, reserved\r
-;                         ||||______________ W12 bit, W12-W16 RAS-CAS delay \r
-;                         |||_______________ W13 bit\r
-;                         ||________________ W14 bit  \r
-;                         |_________________ W15 bit, reserved\r
-;\r
-;\r
-; The bit meaning depends on the configured bus interface type. The bus interface can be \r
-; configured for different memory types. Depending on the memory type, the wait register \r
-; bits have a differnt meaning.  CS0-5 should  be configurable as ordinary bus interface \r
-; (w/o SDRAM and FRAM)  and CS6-7 should be configurable as  SDRAM and FRAM.  It is also \r
-; possible and for some devices neccessary to configure  other two chip selects as SDRAM \r
-; or FRAM interface. In such a case be aware of the bit meanings.\r
-;\r
-;\r
-; Ordinary bus interface (w/o SDRAM and FRAM) (ACRx_Type = 0xxx)\r
-; --------------------------------------------------------------\r
-;\r
-; Bit description:\r
-;\r
-;                W00   : RDY/WRX -> CSX hold extension cycle\r
-;                0     : 0 cycle\r
-;                1     : 1 cycle\r
-;\r
-;                W01   : CSX -> RDX/WRX setup extention cycle\r
-;                0     : 0 cycle\r
-;                1     : 1 cycle\r
-;\r
-;                W02   : Address -> CSX Delay selection\r
-;                0     : no delay selected\r
-;                1     : delay selected\r
-;\r
-;                W03   : WR0X to WR3X/WRX outout timing selection\r
-;                0     : MCLK synchronous write output enable (ASX=L)\r
-;                1     : Asynchronous write strobe output (norma operation)\r
-;\r
-;           W05  W04   : select Write recovery cycle\r
-;           0    0     : 0 cycle\r
-;           0    1     : 1 cycle\r
-;           1    0     : 2 cycles\r
-;           1    1     : 3 cycles\r
-;\r
-;           W07  W06   : Read -> Write idle cycle selection\r
-;           0    0     : 0 cycle\r
-;           0    1     : 1 cycle\r
-;           1    0     : 2 cycles\r
-;           1    1     : 3 cycles\r
-; \r
-; W11  W10  W09  W08   :  Intra-page access cycle select (0-15 cycles)\r
-; 0    0    0    0     :  0 Wait state\r
-; 0    0    0    1     :  1 Auto-wait cycle\r
-; 0    0    1    0     :  2 Auto-wait cycle\r
-; ....\r
-; 1    1    1    1     :  15 Auto wait cycles\r
-;\r
-; W15  W14  W13  W12   :  First access wait cycle can be set (0-15 cycles)\r
-; 0    0    0    0     :  0 Wait state\r
-; 0    0    0    1     :  1 Auto-wait cycle\r
-; 0    0    1    0     :  2 Auto-wait cycle\r
-; ....\r
-; 1    1    1    1     :  15 Auto wait cycles\r
-;  \r
-;\r
-;\r
-; SDRAM and FRAM bus interface (ACRx_Type = 100x)\r
-; -----------------------------------------------\r
-;\r
-; Bit description:\r
-;\r
-;           W01  W00   : RAS precharge cycles.\r
-;           0    0     : 1 cycle\r
-;           0    1     : 2 cycles\r
-;           1    0     : 5 cycles\r
-;           1    1     : 6 cycles\r
-;\r
-;           W03  W02   : RAS active Time\r
-;           0    0     : 1 cycle\r
-;           0    1     : 2 cycles\r
-;           1    0     : 5 cycles\r
-;           1    1     : 6 cycles\r
-;\r
-;           W05  W04   : set Write recovery cycle (1 - 4 cycles)\r
-;           0    0     : Prohibited\r
-;           0    1     : 2 cycles\r
-;           1    0     : 3 cycles\r
-;           1    1     : 4 cycles\r
-;\r
-;           W07  W06   : set Read -> Write idle Cycle (1 - 4 cycles)\r
-;           0    0     : 1 cycle\r
-;           0    1     : 2 cycles\r
-;           1    0     : 3 cycles\r
-;           1    1     : 4 cycles\r
-;\r
-;      W10  W09  W08   : set CAS latency (1 - 8 cycles)\r
-;      0    0    0     : 1 cycle\r
-;      0    0    1     : 2 cycle\r
-;      ...\r
-;      1    1    1     : 8 cycle\r
-;\r
-;                W11   : RESERVED, ALWAYS WRITE 0 !\r
-;\r
-;      W14  W13  W12   : set RAS-CAS delay (1 - 8 cycles)\r
-;      0    0    0     : 1 cycle\r
-;      0    0    1     : 2 cycle\r
-;      ...\r
-;      1    1    1     : 8 cycle\r
-;\r
-;                W15   : RESERVED, ALWAYS WRITE 0 !\r
-;\r
-\r
-; The bit meaning depends on the configured bus interface type\r
-;\r
-;=========================================================================================\r
-; 4.8.5  Configure Chipselects for SDRAM memory only (only EXTBUS == ON and SDRAM)\r
-;=========================================================================================\r
-;\r
-#set    MEMCON           B'00000111             ; <<< set special SDRAM register, MCRA\r
-;                          ||||||||\r
-;                          ||||||||__ ABS0 bit, set max. active banks (ABS1,0)\r
-;                          |||||||___ ABS1 bit\r
-;                          ||||||____ BANK bit, set number of banks connected to CS\r
-;                          |||||_____ WBST bit, Write burst enable/disable\r
-;                          ||||______ PSZ0 bit, Set page size (PSZ2-0)\r
-;                          |||_______ PSZ1 bit \r
-;                          ||________ PSZ2 bit\r
-;                          |_________ reserved, always write 0 \r
-;\r
-; When connecting  SDRAM/FCRAM TYP3-0=1000  in ACRx register the following register must  \r
-; be setup.\r
-;\r
-; Bit description:\r
-;\r
-;           ABS1  ABS0 : Set maximum number of bank, active at same time\r
-;            0     0   : 1 bank\r
-;            0     1   : 2 banks\r
-;            1     0   : 3 banks\r
-;            1     1   : 4 banks\r
-;\r
-;                 BANK : Set number of connected SDRAM banks\r
-;                  0   : 2 banks\r
-;                  1   : 4 banks\r
-;\r
-;                 WBST : Write burst enable\r
-;                  0   : Single Write\r
-;                  1   : Busrt Write\r
-;\r
-;      PSZ2  PSZ1  PS0 : Select page size of connected memory\r
-;      0     0     0   : 8-bit column address = A0 to A7 \r
-;      0     0     1   : 9-bit column address = A0 to A8 \r
-;      0     1     0   : 10-bit column address = A0 to A9 \r
-;      0     1     1   : 11-bit column address = A0 to A9, A11 \r
-;      1     X     X   : setting disabled\r
-;\r
-;\r
-;=========================================================================================\r
-; 4.8.6  Referesh Control Register RCR (only EXTBUS == ON and SDRAM)\r
-;=========================================================================================\r
-;\r
-#set    REFRESH         B'1110001001000111      ; <<< set Refresh Control Register, RCR\r
-;                         ||||||||||||||||\r
-;                         ||||||||||||||||__ TRC0 bit, set refresh cycle (TRC2-0)\r
-;                         |||||||||||||||___ TRC1 bit\r
-;                         ||||||||||||||____ TRC2 bit\r
-;                         |||||||||||||_____ PON bit, set power-on control\r
-;                         ||||||||||||______ RFC0 bit, set refresh count (RFC2-0)\r
-;                         |||||||||||_______ RFC1 bit \r
-;                         ||||||||||________ RFC2 bit \r
-;                         |||||||||_________ BRST bit, set burst refresh control \r
-;                         ||||||||__________ RFINT0 bit, set auto refresh interval\r
-;                         |||||||___________ RFINT1 bit, (RFINT5-0)\r
-;                         ||||||____________ RFINT2 bit\r
-;                         |||||_____________ RFINT3 bit\r
-;                         ||||______________ RFINT4 bit\r
-;                         |||_______________ RFINT5 bit\r
-;                         ||________________ RRLD bit, counter refresh strat control\r
-;                         |_________________ SELF bit, self refresh control\r
-;\r
-;\r
-; This register sets various SDRAM refresh controls.  When SDRAM control is not set  for \r
-; any area, the setting of this register is meaningless,  but do not change the register \r
-; value  at  initial   state.   When  a  read is  performed   using  a read-modify-write \r
-; instruction, 0 always returns from the SELF, RRLD, and PON bits.\r
-;\r
-; Bit description:\r
-;\r
-;\r
-;    TRC2  TRC1  TRC0  : Refresh Cycle \r
-;      0     0     0   : 4\r
-;      0     0     1   : 5\r
-;      0     1     0   : 6\r
-;      0     1     1   : 7\r
-;      1     0     0   : 8\r
-;      1     0     1   : 9\r
-;      1     1     0   : 10\r
-;      1     1     1   : 11\r
-;\r
-;                 PON  : Power-on control\r
-;                  0   : disabled\r
-;                  1   : power-on sequence started\r
-;\r
-;     RFC2  RFC1  RFC0 : Refresh Count\r
-;      0     0     0   : 256\r
-;      0     0     1   : 512\r
-;      0     1     0   : 1024\r
-;      0     1     1   : 2048\r
-;      1     0     0   : 4096\r
-;      1     0     1   : 8192\r
-;      1     1     0   : Setting disabled\r
-;      1     1     1   : Refresh disabled\r
-;\r
-;                 BRST : Burst refresh control\r
-;                  0   : Decentralised refresh \r
-;                  1   : burst refresh\r
-; \r
-;           RFINT[5-0] : auto refresh interval\r
-;\r
-;                 RRLD : Refresh counter Activation Control\r
-;                  0   : Disabled,  \r
-;                  1   : Autorefresh performed once, then value of RFINT reloaded\r
-;\r
-;                 SELF : Self refresh control\r
-;                  0   : auto refresh or power down\r
-;                  1   : Transitions to self-refresch mode\r
-;\r
-; NOTE: PON bit is set after the above setting. Do not set PON bit to 1 in the \r
-;       above setting. Otherwise the settings are not correct set.\r
-;\r
-;=========================================================================================\r
-; 4.8.7  Terminal and Timing Control Register (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    TIMECONTR        B'00000000             ; <<< set TCR register, TCR\r
-;                          ||||||||\r
-;                          ||||||||__ RDW0 bit, set wait cycle reduction (RDW0,1)\r
-;                          |||||||___ RDW1 bit\r
-;                          ||||||____ OHT0 bit, set output hold delay (OHT1,0)\r
-;                          |||||_____ OHT1 bit\r
-;                          ||||______ reserved, always write 0 \r
-;                          |||_______ PCLR bit, prefetch buffer clear \r
-;                          ||________ PSUS bit, prefetch suspend\r
-;                          |_________ BREN bit, BRQ input enable \r
-;\r
-; This register controls the general functions  of the external bus interface controller \r
-; such as the common-pin function setting and timing control.\r
-;\r
-; Bit description:\r
-;\r
-;          RDW1  RDW0  : Wait cycle reduction \r
-;            0     0   : Normal Wait (AWR0 - 7 setting)\r
-;            0     1   : 1/2 of AWR0 - 7 setting value\r
-;            1     0   : 1/4 of AWR0 - 7 setting value\r
-;            1     1   : 1/8 of AWR0 - 7 setting value\r
-;\r
-;          OHT1  OHT0  : Output hold selection bit\r
-;            0     0   : Output performed at falling edge of SYSCLK/MCLK\r
-;            0     1   : Output performed about 3ns after falling edge of SYSCLK/MCLK\r
-;            1     0   : Output performed about 4ns after falling edge of SYSCLK/MCLK\r
-;            1     1   : Output performed about 5ns after falling edge of SYSCLK/MCLK\r
-;\r
-;                PCLR  : Prefetch buffer all clear\r
-;                  0   : normal state\r
-;                  1   : Prefetch buffer cleared\r
-;\r
-;                PSUS  : prefetch suspension bit \r
-;                  0   : Prefetch enabled\r
-;                  1   : Prefetch disabled\r
-;\r
-;                BREN  : BRQ input enable\r
-;                  0   : disabled, \r
-;                  1   : enabled, Bus sharing of BRQ/BGRNTX performed\r
-;\r
-; Note: This function is used to prevent an  excessive access cycle wait while operating \r
-;       at  a low-speed  clock  (such as  while  base  clock  operating at low  speed or \r
-;       high frequency division rate for external bus clock).\r
-;\r
-;=========================================================================================\r
-; 4.8.8  Enable/Disable I-CACHE (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    C1024           1                       ; CACHE Size: 1024 BYTE\r
-#set    C2048           2                       ; CACHE Size: 2048 BYTE\r
-#set    C4096           3                       ; CACHE Size: 4096 BYTE\r
-;\r
-;\r
-#set    CACHE           OFF                     ; <<< Select use of cache \r
-#set    CACHE_SIZE      C4096                   ; <<< Select size of cache, ISIZE\r
-;\r
-; It is possible  to use cache  functionality on  the I-Bus on  several devices.  Please \r
-; check the  corresponidng data sheet  if this feature is  available on a certain device \r
-; and for the size of the cache. This is the general cache configuration. It is possible \r
-; to configure for each CS area, if the cache should be used.\r
-;\r
-; Note: This feature is not supported by every device. Please check the data  sheet. The \r
-;       feature is for example supported by MB91461R, MB91469G.\r
-;\r
-;=========================================================================================\r
-; 4.8.9  Enable CACHE for chipselect (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    CHEENA          B'11111111              ; <<< en-/disable cache, CHER\r
-;                         ||||||||\r
-;                         ||||||||__ CHE0 bit, CS0 area\r
-;                         |||||||___ CHE1 bit, CS1 area\r
-;                         ||||||____ CHE2 bit, CS2 area\r
-;                         |||||_____ CHE3 bit, CS3 area\r
-;                         ||||______ CHE4 bit, CS4 area \r
-;                         |||_______ CHE5 bit, CS5 area \r
-;                         ||________ CHE6 bit, CS6 area\r
-;                         |_________ CHE7 bit, CS7 area \r
-;\r
-; Additional to  the general cache enable setting,  select which CS  area should be used \r
-; with cache functionality.\r
-;\r
-; Note: Not all  Chipselects are  supported by the  different devices.  Please check the \r
-;       data sheet.\r
-;\r
-; Note: This feature is not supported by every device.  Please check the data sheet. The \r
-;       Feature is supported by MB91461R, MB91469G.\r
-;\r
-;=========================================================================================\r
-; 4.8.10  Select External bus mode (Data lines) (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    PFUNC0          B'11111111              ;<<< Data lines or GIO, PFR00\r
-;                         ||||||||\r
-;                         ||||||||__ D24 / P00_0\r
-;                         |||||||___ D25 / P00_1\r
-;                         ||||||____ D26 / P00_2\r
-;                         |||||_____ D27 / P00_3\r
-;                         ||||______ D28 / P00_4\r
-;                         |||_______ D29 / P00_5\r
-;                         ||________ D30 / P00_6\r
-;                         |_________ D31 / P00_7\r
-;\r
-#set    PFUNC1          B'11111111              ;<<< Data lines or GIO, PFR01\r
-;                         ||||||||\r
-;                         ||||||||__ D16 / P01_0\r
-;                         |||||||___ D17 / P01_1\r
-;                         ||||||____ D18 / P01_2\r
-;                         |||||_____ D19 / P01_3\r
-;                         ||||______ D20 / P01_4\r
-;                         |||_______ D21 / P01_5\r
-;                         ||________ D22 / P01_6\r
-;                         |_________ D23 / P01_7\r
-;\r
-#set    PFUNC2          B'11111111              ;<<< Data lines or GIO, PFR02\r
-;                         ||||||||\r
-;                         ||||||||__ D8 / P02_0\r
-;                         |||||||___ D9 / P02_1\r
-;                         ||||||____ D10 / P02_2\r
-;                         |||||_____ D11 / P02_3\r
-;                         ||||______ D12 / P02_4\r
-;                         |||_______ D13 / P02_5\r
-;                         ||________ D14 / P02_6\r
-;                         |_________ D15 / P02_7\r
-;\r
-#set    PFUNC3          B'11111111              ;<<< Data lines or GIO, PFR03\r
-;                         ||||||||\r
-;                         ||||||||__ D0 / P03_0\r
-;                         |||||||___ D1 / P03_1\r
-;                         ||||||____ D2 / P03_2\r
-;                         |||||_____ D3 / P03_3\r
-;                         ||||______ D4 / P03_4\r
-;                         |||_______ D5 / P03_5\r
-;                         ||________ D6 / P03_6\r
-;                         |_________ D7 / P03_7\r
-;\r
-; Select if the ports are set to\r
-;                  1   : External bus mode, I/O for data lines or\r
-;                  0   : General I/O port (GIO)\r
-;\r
-; Note: Not all data-lines are supported by the different devices. Please check the data\r
-;       sheet.\r
-;\r
-;=========================================================================================\r
-; 4.8.11  Select External bus mode (Address lines) (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    PFUNC4          B'11111111              ;<<< Address lines or GIO, PFR04\r
-;                         ||||||||\r
-;                         ||||||||__ A24 / P04_0\r
-;                         |||||||___ A25 / P04_1\r
-;                         ||||||____ A26 / P04_2\r
-;                         |||||_____ A27 / P04_3\r
-;                         ||||______ A28 / P04_4\r
-;                         |||_______ A29 / P04_5\r
-;                         ||________ A30 / P04_6\r
-;                         |_________ A31 / P04_7\r
-;\r
-#set    PFUNC5          B'11111111              ;<<< Address lines or GIO, PFR05\r
-;                         ||||||||\r
-;                         ||||||||__ A16 / P05_0\r
-;                         |||||||___ A17 / P05_1\r
-;                         ||||||____ A18 / P05_2\r
-;                         |||||_____ A19 / P05_3\r
-;                         ||||______ A20 / P05_4\r
-;                         |||_______ A21 / P05_5\r
-;                         ||________ A22 / P05_6\r
-;                         |_________ A23 / P05_7\r
-;\r
-#set    PFUNC6          B'11111111              ;<<< Address lines or GIO, PFR06\r
-;                         ||||||||\r
-;                         ||||||||__ A8 / P06_0\r
-;                         |||||||___ A9 / P06_1\r
-;                         ||||||____ A10 / P06_2\r
-;                         |||||_____ A11 / P06_3\r
-;                         ||||______ A12 / P06_4\r
-;                         |||_______ A13 / P06_5\r
-;                         ||________ A14 / P06_6\r
-;                         |_________ A15 / P06_7\r
-;\r
-#set    PFUNC7          B'11111111              ;<<< Address lines or GIO, PFR07\r
-;                         ||||||||\r
-;                         ||||||||__ A0 / P07_0\r
-;                         |||||||___ A1 / P07_1\r
-;                         ||||||____ A2 / P07_2\r
-;                         |||||_____ A3 / P07_3\r
-;                         ||||______ A4 / P07_4\r
-;                         |||_______ A5 / P07_5\r
-;                         ||________ A6 / P07_6\r
-;                         |_________ A7 / P07_7\r
-;\r
-; Select if the ports are set to\r
-;                  1   : External bus mode, I/O for address lines or\r
-;                  0   : General I/O port (GIO)\r
-;\r
-; Note: Not all address-lines are supported  by the different devices.  Please check the\r
-;       data sheet.\r
-;\r
-;=========================================================================================\r
-; 4.8.12  Select External bus mode (Control signals) (only EXTBUS == ON)\r
-;=========================================================================================\r
-;\r
-#set    PFUNC8          B'11111111              ;<<< Control signals or GIO, PFR08\r
-;                         ||||||||\r
-;                         ||||||||__ WRX0 / P08_0\r
-;                         |||||||___ WRX1 / P08_1\r
-;                         ||||||____ WRX2 / P08_2\r
-;                         |||||_____ WRX3 / P08_3\r
-;                         ||||______ RDX / P08_4\r
-;                         |||_______ BGRNTX / P08_5\r
-;                         ||________ BRQ / P08_6\r
-;                         |_________ RDY / P08_7\r
-;\r
-#set    PFUNC9          B'11111111              ;<<< Control signals or GIO, PFR09\r
-;                         ||||||||\r
-;                         ||||||||__ CSX0 / P09_0\r
-;                         |||||||___ CSX1 / P09_1\r
-;                         ||||||____ CSX2 / P09_2\r
-;                         |||||_____ CSX3 / P09_3\r
-;                         ||||______ CSX4 / P09_4\r
-;                         |||_______ CSX5 / P09_5\r
-;                         ||________ CSX6 / P09_6\r
-;                         |_________ CSX7 / P09_7\r
-;\r
-#set    PFUNC10         B'01011111              ;<<< Control signals or GIO, PFR10\r
-;                         ||||||||\r
-;                         ||||||||__ SYSCLK or !SYSCLK / P10_0 \r
-;                         |||||||___ ASX / P10_1 \r
-;                         ||||||____ BAAX / P10_2 \r
-;                         |||||_____ WEX / P10_3 \r
-;                         ||||______ MCLKO or !MCLKO / P10_4 \r
-;                         |||_______ MCLKI or !MCLKI/ P10_5 \r
-;                         ||________ MCLKE / P10_6\r
-;                         |_________ - \r
-;\r
-#set    EPFUNC10        B'00000000              ;<<< Control signals or GIO, EPFR10\r
-;                         ||||||||\r
-;                         ||||||||__ 0:SYSCLK / 1:!SYSCLK\r
-;                         |||||||___ - \r
-;                         ||||||____ -\r
-;                         |||||_____ -\r
-;                         ||||______ 0:MCLKO / 1:!MCLKO\r
-;                         |||_______ 0:MCLKI / 1:!MCLKI\r
-;                         ||________ 0:MCLKI / 1:!MCLKI\r
-;                         |_________ -\r
-;\r
-;\r
-; Select if the ports are set to\r
-;                  1   : External bus mode, I/O for control lines or\r
-;                  0   : General I/O port (GIO)\r
-;\r
-; Note: Not all control-lines are supported  by the different devices.  Please check the\r
-;       data sheet.\r
-;\r
-;=========================================================================================\r
-; 5  Definition of Configurations\r
-;=========================================================================================\r
-;\r
-#set    NOCLOCK         0                       ; do not touch CKSCR register\r
-#set    MAINCLOCK       1                       ; select main clock \r
-;                                               ; MB91461R : 1/4 of oscillation input\r
-;                                               ; Others:    1/2 of oscillation input\r
-#set    MAINPLLCLOCK    2                       ; select main clock with PLL\r
-#set    SUBCLOCK        3                       ; select subclock (if available)\r
-;\r
-#set    PSCLOCK_CLKB    0x00                    ; select core clock (initial)\r
-#set    PSCLOCK_PLL     0x10                    ; select PLL output (x)\r
-#set    PSCLOCK_MAIN    0x30                    ; select Main Oscillation\r
-;\r
-;=========================================================================================\r
-; 5.1  CLOCKSPEED == CLOCK_USER <<<\r
-;=========================================================================================\r
-; Must be configured only in the case of CLOCKSPEED is set to CLOCK_USER. Please see the \r
-; corresponding application note.\r
-;\r
-#if (CLOCKSPEED == CLOCK_USER )\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; <<< Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; <<< Subclock: ON/OFF\r
-  #set  PLLSPEED        0x010F                  ; <<< 0x48Ch, 0x48Dh: PLLDIVM/N ; 64 MHz\r
-  #set  DIV_G           0x0F                    ; <<< 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x0F                    ; <<< 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; <<< 0x486h: DIV0R_B;   => /1  ; 64 MHz       \r
-  #set  PERCLOCK        0x03                    ; <<< 0x486h: DIV0R_P;   => /4  ; 16 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; <<< 0x487h: DIV1R_T;   => /2  ; 32 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; <<< 0x4C0h: CANPRE;    => PLLx;128 MHz\r
-  #set  PSDVC           0x07                    ; <<< 0x4C0h: CANPRE_DVC;=> /8  ; 16 MHz\r
-  #set  CANCLOCK        0x00                    ; <<< 0x4C1h: CANCKD;    \r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; <<< 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; <<< 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; <<< 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC413                  ; <<< 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x10                    ; <<< 0x7006h: FMWT2;\r
-#endif  \r
-;\r
-;=========================================================================================\r
-; 5.2  CLOCKSPEED == NO_CLOCK\r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == NO_CLOCK )\r
-    #set CLOCKSOURCE       NOCLOCK \r
-#endif      \r
-;\r
-;=========================================================================================\r
-; 5.2  CLOCKSPEED == SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91463N) || (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     SUBCLOCK                ; Clocksource\r
-  #set  ENABLE_SUBCLOCK ON                      ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;   n. a.\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  32 KHz       \r
-  #set  PERCLOCK        0x00                    ; 0x486h: DIV0R_P;    => /1    ;  32 KHz  \r
-  #set  EXTBUSCLOCK     0x00                    ; 0x487h: DIV1R_T;    => /1    ;  32 KHz  \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_MAIN            ; 0x4C0h: CANPRE;     => MAIN  ;   4 MHz\r
-  #set  PSDVC           0x01                    ; 0x4C0h: CANPRE_DVC; => /2    ;   2 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC100                  ; 0x7004h: FMWT; \r
-  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;\r
-#endif \r
-;\r
-;=========================================================================================\r
-; 5.3  CLOCKSPEED == MAIN__4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == MAIN_4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINCLOCK               ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;   n. a.\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;   2 MHz       \r
-  #set  PERCLOCK        0x01                    ; 0x486h: DIV0R_P;    => /2    ;   1 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;   1 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_MAIN            ; 0x4C0h: CANPRE;     => PLLx  ;   4 MHz\r
-  #set  PSDVC           0x01                    ; 0x4C0h: CANPRE_DVC; => /2    ;   2 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC100                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;  \r
-#endif           \r
-;\r
-;=========================================================================================\r
-; 5.4  CLOCKSPEED == PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x010B                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  48 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x0B                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  48 MHz       \r
-  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  16 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  24 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ;  96 MHz\r
-  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  16 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #if (DEVICE == MB91469G) \r
-   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;\r
-  #else\r
-   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #endif    \r
-  #set REGULATORCTRL    0x00                    ; 0x4CFh: REGCTR;    \r
-   ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC201                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;   \r
-#endif        \r
-;\r
-;=========================================================================================\r
-; 5.5  CLOCKSPEED == PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  64 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  64 MHz       \r
-  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  16 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  32 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 128 MHz\r
-  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;  16 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;\r
-#endif  \r
-;\r
-;=========================================================================================\r
-; 5.6  CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0113                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  80 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x13                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  80 MHz       \r
-  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  20 MHz \r
-  #set  EXTBUSCLOCK     0x02                    ; 0x487h: DIV1R_T;    => /3    ;  27 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 160 MHz\r
-  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;   8 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;\r
-#endif      \r
-;\r
-;=========================================================================================\r
-; 5.7  CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91461R) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0113                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  80 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x13                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  80 MHz       \r
-  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  20 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  40 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 160 MHz\r
-  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;   8 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;\r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;\r
-#endif      \r
-;\r
-;=========================================================================================\r
-; 5.8  CLOCKSPEED == PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91464A) || (DEVICE == MB91465K) || (DEVICE == MB91463N) ||\\r
-      (DEVICE == MB91461R) || (DEVICE == MB91467R)\r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0117                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  96 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x17                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  64 MHz       \r
-  #set  PERCLOCK        0x05                    ; 0x486h: DIV0R_P;    => /6    ;  16 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  32 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 192 MHz\r
-  #set  PSDVC           0x0B                    ; 0x4C0h: CANPRE_DVC; => /12   ;  16 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #if (DEVICE == MB91469G) \r
-   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;\r
-  #else\r
-   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #endif    \r
-  #set REGULATORCTRL    0x00                    ; 0x4CFh: REGCTR;    \r
-  ; Memory Controller\r
-  #set FLASHCONTROL     0x032                   ; 0x7002h: FCHCR;\r
-  #set FLASHREADT       0xC413                  ; 0x7004h: FMWT;\r
-  #set FLASHMWT2        0x10                    ; 0x7006h: FMWT2;\r
-#endif        \r
-;\r
-;=========================================================================================\r
-; 5.9  CLOCKSPEED == PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91464A) || (DEVICE == MB91465K) || (DEVICE == MB91463N) ||\\r
-      (DEVICE == MB91461R) || (DEVICE == MB91467R) || (DEVICE == MB91467D)\r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0118                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ; 100 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x17                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ; 100 MHz       \r
-  #set  PERCLOCK        0x04                    ; 0x486h: DIV0R_P;    => /5    ;  20 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  50 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 200 MHz\r
-  #set  PSDVC           0x09                    ; 0x4C0h: CANPRE_DVC; => /10   ;  20 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  #if (DEVICE == MB91469G) \r
-   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;\r
-  #else\r
-   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;\r
-  #endif    \r
-  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;    \r
-  ; Memory Controller\r
-  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;\r
-  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;\r
-  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;\r
-#endif        \r
-;\r
-;=========================================================================================\r
-; 5.10  CLOCKSPEED == PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91464A) || (DEVICE == MB91467B) || (DEVICE == MB91467C) ||\\r
-      (DEVICE == MB91467D) || (DEVICE == MB91469G) || (DEVICE == MB91465K) ||\\r
-      (DEVICE == MB91463N) || (DEVICE == MB91467R) || (DEVICE == MB91465X) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0105                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  60 MHz\r
-  #set  DIV_G           0x0B                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x1F                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  60 MHz       \r
-  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  20 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  30 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 120 MHz\r
-  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  20 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  ; -\r
-  ; Memory Controller\r
-  ; -\r
-#endif        \r
-;\r
-;=========================================================================================\r
-; 5.11  CLOCKSPEED == PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ \r
-;=========================================================================================\r
-;\r
-#if (CLOCKSPEED == PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ )\r
-;\r
-; Start restriction; Maximum frequency\r
-  #if (DEVICE == MB91464A) || (DEVICE == MB91467B) || (DEVICE == MB91467C) ||\\r
-      (DEVICE == MB91467D) || (DEVICE == MB91469G) || (DEVICE == MB91465K) ||\\r
-      (DEVICE == MB91463N) || (DEVICE == MB91467R) || (DEVICE == MB91465X) \r
-     #error: Frequency is not supported by this device.\r
-  #endif \r
-; End restriction\r
-;\r
-  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource\r
-  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF\r
-  #set  PLLSPEED        0x0102                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ; 60 MHz\r
-  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; \r
-  #set  MUL_G           0x1F                    ; 0x48Fh: PLLMULG;     \r
-  ; Clock Divider\r
-  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  60 MHz       \r
-  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  20 MHz \r
-  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  30 MHz \r
-  ; CAN Clock\r
-  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 120 MHz\r
-  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  20 MHz\r
-  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled\r
-  ; Voltage Regulator \r
-  ; -\r
-  ; Memory Controller\r
-  ; -\r
-#endif  \r
-;      \r
-;=========================================================================================\r
-; 6  Section and Data Declaration\r
-;=========================================================================================\r
-\r
-        .export __start             \r
-        .import _main\r
-        .import _RAM_INIT\r
-        .import _ROM_INIT\r
-        \r
-#if CLIBINIT == ON    \r
-        .export __exit \r
-        .import _exit\r
-        .import __stream_init\r
-#endif\r
-\r
-#if CPLUSPLUS == ON\r
-        .export __abort\r
-        .import ___call_dtors\r
-        .import _atexit\r
-#endif\r
-;=========================================================================================\r
-; 6.1  Define Stack Size\r
-;=========================================================================================\r
- .SECTION  SSTACK, STACK, ALIGN=4\r
-#if STACK_RESERVE == ON\r
-        .EXPORT         __systemstack, __systemstack_top\r
- __systemstack:\r
-        .RES.B          STACK_SYS_SIZE\r
- __systemstack_top: \r
-#endif\r
\r
-        .SECTION  USTACK, STACK, ALIGN=4\r
-#if STACK_RESERVE == ON\r
-         .EXPORT        __userstack, __userstack_top\r
- __userstack:\r
-        .RES.B          STACK_USR_SIZE\r
- __userstack_top:\r
\r
-#endif\r
-;=========================================================================================\r
-; 6.2  Define Sections\r
-;=========================================================================================\r
-        .section        DATA,  data,  align=4\r
-        .section        INIT,  data,  align=4\r
-        .section        IRAM,  code,  align=4\r
-        .section        CONST, const, align=4\r
-        .section        INTVECT, const, align=4 \r
-        \r
-#if I_RAM \r
-        .import _RAM_IRAM\r
-        .import _ROM_IRAM\r
-#endif\r
-                    \r
-#if (DEVICE != MB91461R)\r
-    #if (DEVICE == MB91469G)\r
-        .section        SECURITY_VECTORS, code, locate = 0x248000\r
-    #else \r
-        .section        SECURITY_VECTORS, code, locate = 0x148000\r
-    #endif\r
-    \r
-    #if (BOOT_FLASH_SEC == OFF)        \r
-        .data.w 0xFFFFFFFF\r
-        .data.w 0xFFFFFFFF\r
-        .data.w 0xFFFFFFFF\r
-        .data.w 0xFFFFFFFF       \r
-    #else\r
-        .res.w          4\r
-    #endif         \r
-#endif     \r
-   \r
-#if CPLUSPLUS == ON\r
-        .section        EXT_CTOR_DTOR, const, align=4  ; C++ constructors\r
-#endif        \r
-       \r
-;-----------------------------------------------------------------------------------------\r
-; MACRO Clear RC Watchdog\r
-;-----------------------------------------------------------------------------------------\r
-#macro  ClearRCwatchdog\r
-        LDI             #0x4C7,R7               ; clear RC watchdog\r
-        BANDL           #0x7,@R7\r
-#endm\r
-;-----------------------------------------------------------------------------------------\r
-; MACRO WAIT_LOOP\r
-;-----------------------------------------------------------------------------------------\r
-#macro wait_loop loop_number\r
-#local _wait64_loop\r
-        LDI             #loop_number, R0\r
-_wait64_loop:\r
-        ADD             #-1, R0\r
-        BNE             _wait64_loop\r
-#endm\r
-        .section        CODE, code, align=4\r
-        .section        CODE_START, code, align=4\r
-\r
-\r
-;=========================================================================================\r
-; 7.  S T A R T \r
-;=========================================================================================\r
-__start:                                        ; start point   \r
-startnop: \r
-        NOP       \r
-;   \r
-        ANDCCR          #0xEF                   ; disable interrupts   \r
-        STILM           #LOW_PRIOR              ; set interrupt level to low prior\r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-\r
-;=========================================================================================\r
-; 7.1  Initialise Stack Pointer and Table Base Register\r
-;=========================================================================================\r
-#if STACKUSE == SYSSTACK       \r
-        ORCCR           #0x20\r
-        LDI             #__userstack_top, SP    ; initialize SP\r
-        ANDCCR          #0xDF\r
-        LDI             #__systemstack_top, SP  ; initialize SP\r
-#endif\r
-\r
-#if STACKUSE == USRSTACK\r
-        ANDCCR          #0xDF\r
-        LDI             #__systemstack_top, SP  ; initialize SP\r
-        ORCCR           #0x20\r
-        LDI             #__userstack_top, SP    ; initialize SP\r
-#endif\r
-\r
-        LDI             #INTVECT, R0            ; set Table Base\r
-smd_tbr: \r
-        MOV             R0, TBR         \r
-\r
-#if (CLOCKSOURCE != NOCLOCK)                                          \r
-;=========================================================================================\r
-; 7.2  Check for CSV reset and set CSV\r
-;=========================================================================================\r
-; Start restriction; No clock supervisor (CSV)\r
-#if (DEVICE != MB91461R) && (DEVICE != MB91467R) && (DEVICE != MB91463N)\r
-; End restriction\r
-        LDI:20          #0x04AD, R0             ; CSVCR\r
-        BORL            #0x8, @R0               ; Enable Main Osc CSV\r
-        BTSTH           #0x4, @R0               ; Check for Main Osc missing\r
-        BEQ             NoMAINCSVreset          ; Main osc available -> branch \r
-                                                ;   to NoCSVreset\r
-        BANDL           #0x7, @R0               ; Disable Main Osc CSV\r
-        \r
-        LDI             #noClockStartup, R0     ; Main Clock missing -> no\r
-        JMP             @R0                     ; clock startup\r
-                                                \r
-NoMAINCSVreset: \r
-\r
-\r
-        BORL            #0x4, @R0               ; Enable Sub Osc CSV\r
-        BTSTH           #0x2, @R0               ; Check for Sub Osc missing\r
-        BEQ             NoSUBCSVreset           ; Sub osc available -> branch \r
-                                                ;   to NoCSVreset\r
-        BANDL           #0xB, @R0               ; Disable Sub Osc SCSV\r
-#if (CLOCKSOURCE == SUBCLOCK)\r
-        LDI             #noClockStartup, R0     ; Sub Clock missing -> no\r
-        JMP             @R0                     ; clock startup\r
-#endif                                                \r
-NoSUBCSVreset:       \r
-#endif        \r
-;=========================================================================================\r
-; 7.3  Check Clock Condition\r
-;=========================================================================================\r
-        LDI             #0x484, R0              ; Check for Default Values\r
-        LDI             #0x0F, R1               \r
-        ANDB            R1, @R0\r
-        BEQ             clock_startup \r
-\r
-;=========================================================================================\r
-; 7.4  Restore Default Settings after Reset\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.4.1  Disable Clock Modulator\r
-;=========================================================================================\r
-        LDI             #0x04BB, R0             ; Clock Modulator Control Reg\r
-        BANDL           #0xD, @R0               ; Disable Frequency modulation\r
-FMODwait:        \r
-        BTSTL           #8, @R0                 ; Wait until Frequency modulation\r
-        BNE             FMODwait                ; is disabled\r
-        \r
-        BANDL           #0xE, @R0               ; Power down clock modulator\r
-\r
-;=========================================================================================\r
-; 7.4.2  Check if running on Sub Clock, change to Main Clock\r
-;=========================================================================================\r
-        LDI:20          #0x0484,R12             ; Check if running on sub clock\r
-        LDUB            @R12,R0\r
-        LDI:8           #0x3,R1\r
-        AND             R1,R0\r
-        CMP             #0x3,R0\r
-        BNE             notOnSubClock\r
-        \r
-        LDI:20          #0x04CC,R12             ; Check if Main Clock is stopped\r
-        BTSTL           #1, @R12\r
-        BEQ             mainNotStopped\r
-\r
-        BANDL           #0xE, @R12              ; Start Main Oscillation\r
-                        \r
-        LDI             #0x4C8, R0              ; Main Stabilisation Wait Time\r
-        LDI             #0x04, R1               ; 32.7 ms\r
-        AND             R1, @R0  \r
-        BORH            #0x02, @R0      \r
-        \r
-        mainStabTime:                           ; Wait for stabilisation time\r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-        BTSTH           #8, @R0\r
-        BEQ             mainStabTime\r
-        LDI             #0x0, R1\r
-        STB             R1, @R0\r
-\r
-mainNotStopped:        \r
-        LDI:20          #0x0484, R12            ; disable sub clock as source\r
-        BANDL           #0xD, @R12              ; Clock source = 0x01 (Main/2)  \r
-                                                       \r
-notOnSubClock:\r
-;=========================================================================================\r
-; 7.4.3  Disable Sub Clock\r
-;=========================================================================================\r
-#if ENABLE_SUBCLOCK != ON\r
-        LDI             #0x0484, R0             ; Clock source control reg CLKR\r
-        BANDL           #0x7, @R0               ; Disable PLL\r
-#endif       \r
-\r
-;=========================================================================================\r
-; 7.4.4  Check if running on PLL, Gear Down PLL\r
-;=========================================================================================\r
-        LDI:20          #0x0484,R12             ; Check if running on PLL\r
-        LDUB            @R12,R0\r
-        LDI:8           #0x3,R1\r
-        AND             R1,R0\r
-        CMP             #0x2,R0\r
-        BNE             notOnPll\r
-                    \r
-        LDI:20          #0x0490, R11            ; clear flags  \r
-        LDI:8           #0x0,R1        \r
-        STB             R1, @R11\r
-        LDI             #0x04,R1\r
-        STB             R1, @R11                ; Set Flag for Simulator; no Effekt on\r
-                                                ; Emulator      \r
-\r
-        BANDL           #0xC, @R12              ; disable PLL as clock source  \r
-                                                ; Clock Source = 0x00 (Main/2)\r
-                                                    \r
-        LDI:20          #0x048E,R12             ; check if DivG != 0\r
-        LDUB            @R12, R0\r
-        LDI:8           #0xFF,R1\r
-        AND             R1,R0\r
-        BEQ             notOnPll\r
-                                                                                          \r
-gearDownLoop:    \r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-        BTSTL           #4, @R11                ; Gear Down\r
-        BEQ             gearDownLoop            ; \r
\r
-        LDI             #0x00,R1                ; Clear Flags\r
-        STB             R1, @R11                ;       \r
-        \r
-notOnPll:\r
-;=========================================================================================\r
-; 7.4.5  Disable PLL\r
-;=========================================================================================\r
-        LDI             #0x0484, R0             ; Clock source control reg CLKR\r
-        BANDL           #0xB, @R0               ; Disable PLL\r
-        \r
-;=========================================================================================\r
-; 7.4.6  Set to Main Clock\r
-;=========================================================================================\r
-        LDI:20          #0x0484,R12             ; Check if running on PLL\r
-        BANDL           #0xC, @R12              ; disable PLL as clock source  \r
-                                                ; Clock Source = 0x00 (Main/2)\r
-\r
-clock_startup:\r
-;=========================================================================================\r
-; 7.5  Set Memory Controller\r
-;=========================================================================================\r
-; Start restriction; No embedded flash\r
-#if DEVICE != MB91461R\r
-; End restriction\r
-        LDI             #0x7002, R1             ; FLASH Controller Reg.\r
-        LDI             #FLASHCONTROL, R2       ; Flash Controller Settings\r
-        STH             R2, @R1                 ; set register\r
-        LDI             #0x7004, R1             ; FLASH Memory Wait Timing Reg.\r
-        LDI             #FLASHREADT, R2         ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-        LDI             #0x7006, R1             ; FLASH Memory Wait Timing Reg.\r
-        LDI             #FLASHMWT2, R2          ; wait settings\r
-        STB             R2, @R1                 ; set register               \r
-#endif                \r
-        ClearRCwatchdog   \r
-                                                       \r
-;=========================================================================================\r
-; 7.6  Clock startup\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.6.1  Set Voltage Regulator Settings\r
-;=========================================================================================\r
-; Start restriction; No regulator settings\r
-#if DEVICE != MB91461R\r
-; End restriction\r
-        LDI             #0x04CF, R0             ; REGCTR\r
-        LDI             #REGULATORCTRL, R1\r
-        STB             R1, @R0\r
-\r
-        LDI             #0x04CE, R0             ; REGSEL\r
-        LDI             #REGULATORSEL, R1\r
-        STB             R1, @R0\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.6.2  Power on Clock Modulator - Clock Modulator Part I\r
-;=========================================================================================\r
-#if CLOMO == ON \r
-        LDI             #0x04BB, R0             ; Clock Modulator Control Reg\r
-        LDI             #0x11, R1               ; Load value to Power on CM\r
-        ORB             R1, @R0                 ; Power on clock modulaor\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.6.3  Set CLKR Register w/o Clock Mode\r
-;=========================================================================================\r
-; Set Clock source (Base Clock) for the three clock tree selections\r
-; This select Base clock is used to select afterwards the 3\r
-; Clocks for the diffenrent internal trees.\r
-; When PLL is used, first pll multiplication ratio is set and PLL is\r
-; enabled. After waiting the PLL stabilisation time via timebase\r
-; timer, PLL clock is selected as clock source. \r
-        LDI             #0x048C, R0             ; PLL Cntl Reg. PLLDIVM/N\r
-        LDI:20          #PLLSPEED, R1\r
-        STH             R1, @R0\r
-\r
-        LDI             #0x048E, R0             ; PLL Cntl Reg. PLLDIVG\r
-        LDI             #DIV_G, R1\r
-        STB             R1, @R0\r
-\r
-        LDI             #0x048F, R0             ; PLL Cntl Reg. PLLMULG\r
-        LDI             #MUL_G, R1\r
-        STB             R1, @R0\r
-\r
-;=========================================================================================\r
-; 7.6.4  Start PLL \r
-;=========================================================================================\r
-#if ( ( CLOCKSOURCE == MAINPLLCLOCK ) || ( PSCLOCKSOURCE == PSCLOCK_PLL ) )\r
-        LDI             #0x0484, R0             ; Clock source control reg CLKR\r
-        LDI             #0x04, R1               ; Use PLL x1, enable PLL \r
-        ORB             R1, @R0                 ; store data to CLKR register\r
-#endif\r
-       \r
-       \r
-#if ENABLE_SUBCLOCK == ON\r
-        LDI             #0x0484, R0             ; Clock source control reg CLKR\r
-        LDI             #0x08, R1               ; enable subclock operation\r
-        ORB             R1, @R0                 ; store data to CLKR register\r
-        LDI             #0x4CA, R0              ; Sub Clock oszilation \r
-        LDI             #0x00, R1               ; stabilitsation time = 32 ms\r
-        AND             R1, @R0  \r
-        BORH            #0x02, @R0      \r
-#endif      \r
-      \r
-;=========================================================================================\r
-; 7.6.5  Wait for PLL oscillation stabilisation\r
-;=========================================================================================\r
-#if ((CLOCKSOURCE==MAINPLLCLOCK)||(PSCLOCKSOURCE==PSCLOCK_PLL))\r
-        LDI             #0x0482, R12            ; TimeBaseTimer TBCR\r
-        LDI             #0x00, R1               ; set 1024 us @ 2 MHz \r
-        STB             R1, @R12\r
-\r
-        BANDH           #7, @R12                ; clear interrupt flag\r
-        \r
-        LDI             #0x0483, R0             ; clearTimeBaseTimer CTBR\r
-        LDI             #0xA5, R1                 \r
-        STB             R1, @R0\r
-        LDI             #0x5A, R1                 \r
-        STB             R1, @R0\r
-        \r
-        BANDH           #7, @R12                ; clear interrupt flag\r
-        BORH            #8, @R12                ; set interrupt flag for simulator\r
-\r
-PLLwait:        \r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-        BTSTH           #8, @R12\r
-        BEQ             PLLwait\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.6.6  Set clocks \r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.6.6.1  Set CPU and peripheral clock \r
-;=========================================================================================\r
-; CPU and peripheral clock are set in one register\r
-        LDI             #0x0486, R2             ; Set DIVR0 (CPU-clock (CLKB)  \r
-        LDI             #((CPUCLOCK << 4) + PERCLOCK), R3 ; Load CPU clock setting\r
-        STB             R3, @R2               \r
-;=========================================================================================\r
-; 7.6.6.2  Set External Bus interface clock\r
-;=========================================================================================\r
-; set External Bus clock\r
-; Be aware to do smooth clock setting, to avoid wrong clock setting\r
-; Take care, always write 0 to the lower 4 bits of DIVR1 register\r
-        LDI             #0x0487, R2             ; Set DIVR1  \r
-        LDI             #(EXTBUSCLOCK << 4), R3 ; Load Peripheral clock setting\r
-        STB             R3, @R2 \r
-        \r
-;=========================================================================================\r
-; 7.6.6.3  Set CAN clock prescaler\r
-;=========================================================================================\r
-; Set CAN Prescaler, only clock relevant parameter \r
-        LDI             #0x04C0, R0             ; Set CAN ClockParameter Register\r
-        LDI             #(PSCLOCKSOURCE + PSDVC), R1     ; Load Divider\r
-        STB             R1, @R0                          ; Set Divider\r
-; enable CAN clocks\r
-        LDI             #0x04c1, R0             ; Set CAN Clock enable Register\r
-        LDI             #CANCLOCK, R1           ; Load CANCLOCK\r
-        STB             R1, @R0                 ; set CANCLOCK\r
-\r
-;=========================================================================================\r
-; 7.6.6.4  Switch Main Clock Mode\r
-;=========================================================================================\r
-#if CLOCKSOURCE == MAINCLOCK\r
-\r
-;=========================================================================================\r
-; 7.6.6.5  Switch Subclock Mode\r
-;=========================================================================================\r
-#elif ( (CLOCKSOURCE == SUBCLOCK) )\r
-    #if ENABLE_SUBCLOCK == ON\r
-        LDI             #0x4CA, R12\r
-subStabTime:        \r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-        BTSTH           #8, @R12                ; wait until sub clock stabilisation\r
-        BEQ             subStabTime             ; time is over\r
-        LDI             #0x0, R1\r
-        STB             R1, @R12\r
-\r
-        LDI             #0x0484, R0             ; Clock source control reg CLKR\r
-        LDI             #0x01, R1               ; load value to select main clock\r
-        ORB             R1, @R0                 ; enable main clock (1/2 external)        \r
-        LDI             #0x03, R1               ; load value to select subclock\r
-        ORB             R1, @R0                 ; enable subclock as clock source       \r
-    #else\r
-        #error: Wrong setting! The clock source is subclock, but the subclock is disabled.\r
-    #endif\r
-\r
-;=========================================================================================\r
-; 7.6.7  Switch to PLL Mode\r
-;=========================================================================================\r
-#elif ( (CLOCKSOURCE == MAINPLLCLOCK) )\r
-\r
-#if (DIV_G != 0x00)\r
-        LDI             #0x0490, R0             ; PLL Ctrl Register   \r
-        LDI             #0x00,R1\r
-        STB             R1, @R0                 ; Clear Flag\r
-        LDI             #0x01,R1\r
-        STB             R1, @R0                 ; Set Flag for Simulator; no Effekt on\r
-#endif                                                ; Emulator\r
\r
-        LDI             #0x0484, R3             ; Clock source control reg CLKR\r
-        BORL            #0x2, @R3               ; enable PLL as clock source                                               \r
-                                                \r
-#if (DIV_G != 0x00)                                                \r
-gearUpLoop:    \r
-        ClearRCwatchdog                         ; clear harware watchdog\r
-        LDUB            @R0, R2                 ; LOAD PLLCTR to R2\r
-        AND             R1, R2                  ; GRUP, counter reach 0\r
-        BEQ             gearUpLoop\r
-\r
-        LDI             #0x00,R1\r
-        STB             R1, @R0                 ; Clear Gear-Up Flag\r
-#endif         \r
-     \r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.6.8  Enable Frequncy Modulation - Clock Modulator Part II\r
-;=========================================================================================\r
-#if CLOMO == ON                                 ; Only applicable if Modulator is on\r
-        LDI             #0x04B8, R0             ; Clock Modulation Parameter Reg\r
-        LDI             #CMPR, R1               ; Load CMP value\r
-        STH             R1, @R0                 ; Store CMP value in CMPR\r
-\r
-        LDI             #0x04BB, R0             ; Clock Modulator Control Reg\r
-        LDI             #0x13, R1               ; Load value to FM on CM\r
-        ORB             R1, @R0                 ; FM on \r
-#endif\r
-\r
-#endif\r
-noClockStartup:\r
-\r
-;=========================================================================================\r
-; 7.7  Set BusInterface\r
-;=========================================================================================\r
-; Start restriction; No ext. bus interface\r
-#if (DEVICE != MB91464A) && (DEVICE != MB91467C) && (DEVICE != MB91465K) &&  \\r
-    (DEVICE != MB91463N) && (DEVICE != MB91465X)\r
-; End restriction\r
-#if (EXTBUS == ON) \r
-;=========================================================================================\r
-; 7.7.1  Disable all CS\r
-;=========================================================================================\r
-; Start restriction; Flashless device\r
-#if(DEVICE != MB91461R)\r
-; End restriction\r
-        LDI             #0x0680, R3             ; chip select enable register CSER\r
-        LDI             #(0x00), R2             ; load disable settings                                                    \r
-smd_cs:                                                    \r
-        ANDB            R2, @R3                 ; set register          \r
-#endif        \r
-\r
-;=========================================================================================\r
-; 7.7.2  Clear TCR Register\r
-;=========================================================================================\r
-        LDI             #0x0683, R1             ; Pin/Timing Control Register TCR\r
-        BORH            #0x6,@R1                ; load timing settings \r
-\r
-;=========================================================================================\r
-; 7.7.3  Set CS0\r
-;=========================================================================================\r
-#if CS0\r
-        LDI             #0x0640, R1             ; area select reg ASR0, ACR0      \r
-        LDI             #(AREASEL0<<16)+CONFIGCS0, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
\r
-        LDI             #0x660, R1              ; area wait register awr0\r
-        LDI             #WAITREG0, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.7.4  Set CS1  \r
-;=========================================================================================\r
-#if CS1  \r
-        LDI             #0x0644, R1             ; area select reg ASR1, ACR1      \r
-        LDI             #(AREASEL1<<16)+CONFIGCS1, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-\r
-        LDI             #0x662, R1              ; area wait register awr1\r
-        LDI             #WAITREG1, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-smd_cs_mb91461r:\r
-;=========================================================================================\r
-; 7.7.5  Set CS2  \r
-;=========================================================================================\r
-#if CS2\r
-        LDI             #0x0648, R1             ; area select reg ASR2, ACR2      \r
-        LDI             #(AREASEL2<<16)+CONFIGCS2, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x664, R1              ; area wait register awr2\r
-        LDI             #WAITREG2, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-;=========================================================================================\r
-; 7.7.6  Set CS3  \r
-;=========================================================================================\r
-#if CS3\r
-        LDI             #0x064C, R1             ; area select reg ASR3, ACR3      \r
-        LDI             #(AREASEL3<<16)+CONFIGCS3, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x666, R1              ; area wait register awr3\r
-        LDI             #WAITREG3, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-;=========================================================================================\r
-; 7.7.7  Set CS4  \r
-;=========================================================================================\r
-#if CS4\r
-        LDI             #0x0650, R1             ; area select reg ASR4, ACR4      \r
-        LDI             #(AREASEL4<<16)+CONFIGCS4, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x668, R1              ; area wait register awr4\r
-        LDI             #WAITREG4, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-;=========================================================================================\r
-; 7.7.8  Set CS5  \r
-;=========================================================================================\r
-#if CS5\r
-        LDI             #0x0654, R1             ; area select reg ASR5, ACR5      \r
-        LDI             #(AREASEL5<<16)+CONFIGCS5, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x66A, R1              ; area wait register awr5\r
-        LDI             #WAITREG5, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-;=========================================================================================\r
-; 7.7.9  Set CS6\r
-;=========================================================================================\r
-#if (CS6)  \r
-        LDI             #0x0658, R1             ; area select reg ASR6, ACR6      \r
-        LDI             #(AREASEL6<<16)+CONFIGCS6, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x66C, R1              ; area wait register awr6\r
-        LDI             #WAITREG6, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif\r
-;=========================================================================================\r
-; 7.7.10  Set CS7  \r
-;=========================================================================================\r
-#if CS7\r
-        LDI             #0x065C, R1             ; area select reg ASR7, ACR7     \r
-        LDI             #(AREASEL7<<16)+CONFIGCS7, R0  ; load settings\r
-        ST              R0, @R1                 ; set registers\r
-        LDI             #0x66E, R1              ; area wait register awr7\r
-        LDI             #WAITREG7, R2           ; wait settings\r
-        STH             R2, @R1                 ; set register\r
-#endif             \r
-;=========================================================================================\r
-; 7.7.11  Set special SDRAM config register  \r
-;=========================================================================================\r
-#if (SDRAM)\r
-        LDI             #0x670, R1              ; SDRAM memory config register\r
-        LDI             #MEMCON, R2             ; wait settings\r
-        STB             R2, @R1                 ; set register\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.7.12  set Port Function Register\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.7.12.1  set PFR00 Register. External bus mode (D[24-31]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D80, R1             ; Port Function Register 0, (PFR00)\r
-        LDI             #PFUNC0, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register    \r
-;=========================================================================================\r
-; 7.7.12.2  set PFR01 Register. External bus mode (D[16-23]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D81, R1             ; Port Function Register 1, (PFR01)\r
-        LDI             #PFUNC1, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.3  set PFR02 Register. External bus mode (D[8-15]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D82, R1             ; Port Function Register 2, (PFR02)\r
-        LDI             #PFUNC2, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.4  set PFR03 Register. External bus mode (D[0-7]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D83, R1             ; Port Function Register 3, (PFR03)\r
-        LDI             #PFUNC3, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.5  set PFR04 Register. External bus mode (Adr[24-31]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D84, R1             ; Port Function Register 4, (PFR04)\r
-        LDI             #PFUNC4, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.6  set PFR05 Register. External bus mode (Adr[16-23]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D85, R1             ; Port Function Register 5, (PFR05)\r
-        LDI             #PFUNC5, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.7  set PFR06 Register. External bus mode (Adr[8-15]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D86, R1             ; Port Function Register 6, (PFR06)\r
-        LDI             #PFUNC6, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.8  set PFR07 Register. External bus mode (Adr[0-7]) or General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D87, R1             ; Port Function Register 7, (PFR07)\r
-        LDI             #PFUNC7, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.9  set PFR08 Register. External bus mode (Control Signals) or GIO port\r
-;=========================================================================================\r
-        LDI             #0x0D88, R1             ; Port Function Register 8, (PFR08)\r
-        LDI             #PFUNC8, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.10  set PFR09 Register. External bus mode (Control Signals) or GIO port\r
-;=========================================================================================\r
-        LDI             #0x0D89, R1             ; Port Function Register 9, (PFR09)\r
-        LDI             #PFUNC9, R0             ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.11  set PFR10 Register. External bus mode (Control Signals) or GIO port\r
-;=========================================================================================\r
-        LDI             #0x0D8A, R1             ; Port Function Register 10, (PFR10)\r
-        LDI             #PFUNC10, R0            ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.12.12  set EPFR10 Register. External bus mode (Control Signals) or GIO port\r
-;=========================================================================================\r
-        LDI             #0x0DCA, R1             ; Extended PFR 10, (EPFR10)\r
-        LDI             #EPFUNC10, R0           ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.13  Set TCR Register\r
-;=========================================================================================\r
-        LDI             #0x0683, R1             ; Pin/Timing Control Register TCR\r
-        LDI             #TIMECONTR, R0          ; load timing settings \r
-        STB             R0, @R1                 ; set register\r
-;=========================================================================================\r
-; 7.7.14  Enable CACHE for selected CS\r
-;=========================================================================================\r
-        LDI             #0x0681, R3             ; chip select enable register CSER\r
-        LDI             #CHEENA, R2 \r
-        ORB             R2, @R3      \r
-;=========================================================================================\r
-; 7.7.15 set SDRAM  Referesh Control Register\r
-;=========================================================================================\r
-#if (SDRAM)\r
-        LDI             #0x0684, R1             ; Refresh Control Register RCR\r
-        LDI             #REFRESH, R0            ; load refresh settings \r
-        STH             R0, @R1                 ; set register    \r
-        LDI             #0x0008, R2\r
-        OR              R2, R0                  ; Set PON bit to 1     \r
-        STH             R0, @R1                 ; set register \r
-#endif\r
-;=========================================================================================\r
-; 7.7.16  Enable used CS\r
-;=========================================================================================\r
-        LDI             #0x0680, R3             ; chip select enable register CSER\r
-        LDI             #ENACSX, R2 \r
-; Start restriction; Flashless device\r
-#if (DEVICE == MB91461R)\r
-; End restriction\r
-emu_sram_cs_mb91461r:    \r
-        ANDB            R2, @R3                 ; set register\r
-#else    \r
-        ORB             R2, @R3\r
-#endif   \r
-;=========================================================================================\r
-; 7.7.17  I-cache on/off\r
-;=========================================================================================\r
-; Start restriction; No cache\r
-#if (DEVICE == MB91461R) || (DEVICE == MB91469G) || (DEVICE == others)         \r
-; End restriction\r
-    #if CACHE\r
-        #if CACHE_SIZE  == C1024\r
-        LDI             #0x03C7, R1             ; Cache size register ISIZE\r
-        LDI             #0x00, R2\r
-        STB             R2, @R1\r
-        LDI             #0x03E7, R1             ; Cache control reg   ICHCR\r
-        LDI             #0x07, R2               ; Release entry locks, flush and enable \r
-        STB             R2, @R1                 ; cache  \r
-        #elif CACHE_SIZE  == C2048\r
-        LDI             #0x03C7, R1             ; Cache size register ISIZE\r
-        LDI             #0x01, R2\r
-        STB             R2, @R1\r
-        LDI             #0x03E7, R1             ; Cache control reg   ICHCR\r
-        LDI             #0x07, R2               ; Release entry locks, flush and enable \r
-        STB             R2, @R1                 ; cache\r
-        #elif CACHE_SIZE  == C4096\r
-        LDI             #0x03C7, R1             ; Cache size register ISIZE\r
-        LDI             #0x02, R2\r
-        STB             R2, @R1\r
-        LDI             #0x03E7, R1             ; Cache control reg   ICHCR\r
-        LDI             #0x07, R2               ; Release entry locks, flush and enable \r
-        STB             R2, @R1                 ; cache\r
-        #else    \r
-        #error: Wrong Cache size selected!\r
-        #endif          \r
-     #else\r
-        LDI             #0x03E7, R1             ; Cache control reg   ICHCR\r
-        LDI             #0x06, R2               ; Release entry locks, flush and disable\r
-        STB             R2, @R1                 ; cache\r
-    #endif\r
-#endif\r
-#elif (EXTBUS == OFF) \r
-;=========================================================================================\r
-; 7.7.18  set Port Function Register to general as I/O-Port\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.7.18.1  set PFR00 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D80, R1             ; Port Function Register 0, (PFR00)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register    \r
-;=========================================================================================\r
-; 7.7.18.2  set PFR01 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D81, R1             ; Port Function Register 1, (PFR01)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.3  set PFR02 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D82, R1             ; Port Function Register 2, (PFR02)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.4  set PFR03 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D83, R1             ; Port Function Register 3, (PFR03)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.5  set PFR04 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D84, R1             ; Port Function Register 4, (PFR04)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.6  set PFR05 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D85, R1             ; Port Function Register 5, (PFR05)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.7  set PFR06 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D86, R1             ; Port Function Register 6, (PFR06)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.8  set PFR07 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D87, R1             ; Port Function Register 7, (PFR07)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.9  set PFR08 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D88, R1             ; Port Function Register 8, (PFR08)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.10  set PFR09 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D89, R1             ; Port Function Register 9, (PFR09)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.11  set PFR10 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0D8A, R1             ; Port Function Register 10, (PFR10)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-; 7.7.18.12  set EPFR10 Register. External bus mode as General purpose port\r
-;=========================================================================================\r
-        LDI             #0x0DCA, R1             ; Extended PFR10, (EPFR10)\r
-        LDI             #0x00, R0               ; load port settings \r
-        STB             R0, @R1                 ; set register \r
-;=========================================================================================\r
-\r
-#elif (EXTBUS == DEFAULT)\r
-        NOP\r
-smd_cs_mb91461r:\r
-emu_sram_cs_mb91461r:\r
-smd_cs:\r
-#endif                                          ; #endif (EXTBUS)\r
-#endif                                          ; #endif (excl. devices)\r
-        ClearRCwatchdog\r
-\r
-;=========================================================================================\r
-; 7.8  Copy code from Flash to I-RAM \r
-;=========================================================================================\r
-#if I_RAM == ON\r
-        LDI             #_RAM_IRAM, R0\r
-        LDI             #_ROM_IRAM, R1\r
-        LDI             #sizeof(IRAM), R13\r
-        CMP             #0, R13\r
-        BEQ             copy_iram_end\r
-copy_iram1: \r
-        ADD             #-1, R13\r
-        LDUB            @(R13, R1), R12\r
-        BNE:D           copy_iram1\r
-        STB             R12, @(R13, R0)\r
-copy_iram_end: \r
-        ClearRCwatchdog\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.9  Fill stacks\r
-;=========================================================================================\r
-#if STACK_FILL == ON\r
-        LDI             #STACK_PATTERN, R0\r
-        LDI             #SSTACK, R1\r
-        LDI             #sizeof(SSTACK), R2\r
-        CMP             #0, R2\r
-        BEQ:D           fill_sstack_end\r
-        MOV             R2, R13\r
-        LDI             #3, R12\r
-        AND             R2, R12\r
-        BEQ:D           fill_sstack2\r
-        MOV             R2, R3\r
-        SUB             R12, R3\r
-        LDI             #0x3, R4\r
-        SUB             R12, R4\r
-        LSL             #0x3, R4 \r
-        LDI             #STACK_PATTERN, R5\r
-        LSR             R4, R5 \r
-        LDI             #0x8, R4\r
-fill_sstack1:\r
-        ADD             #-1, R13\r
-        LSR             R4, R5 \r
-        CMP             R3, R13\r
-        BHI:D           fill_sstack1\r
-        STB             R5, @(R13, R1)\r
-        CMP             #0, R3\r
-        BEQ:D           fill_sstack_end\r
-fill_sstack2:\r
-        ADD             #-4, R13\r
-        BGT:D           fill_sstack2\r
-        ST              R0, @(R13, R1)\r
-fill_sstack_end:\r
-\r
-        LDI             #STACK_PATTERN, R0\r
-        LDI             #USTACK, R1\r
-        LDI             #sizeof(USTACK), R2\r
-        CMP             #0, R2\r
-        BEQ:D           fill_ustack_end\r
-        MOV             R2, R13\r
-        LDI             #3, R12\r
-        AND             R2, R12\r
-        BEQ:D           fill_ustack2\r
-        MOV             R2, R3\r
-        SUB             R12, R3\r
-        LDI             #0x3, R4\r
-        SUB             R12, R4\r
-        LSL             #0x3, R4 \r
-        LDI             #STACK_PATTERN, R5\r
-        LSR             R4, R5 \r
-        LDI             #0x8, R4\r
-fill_ustack1:\r
-        ADD             #-1, R13\r
-        LSR             R4, R5 \r
-        CMP             R3, R13\r
-        BHI:D           fill_ustack1\r
-        STB             R5, @(R13, R1)\r
-        CMP             #0, R3\r
-        BEQ:D           fill_ustack_end\r
-fill_ustack2:\r
-        ADD             #-4, R13\r
-        BGT:D           fill_ustack2\r
-        ST              R0, @(R13, R1)\r
-fill_ustack_end:\r
-        ClearRCwatchdog\r
-#endif \r
-\r
-;=========================================================================================\r
-; Standard C startup\r
-;=========================================================================================\r
-;=========================================================================================\r
-; 7.10  Clear data \r
-;=========================================================================================\r
-; clear DATA section\r
-; According to ANSI, the DATA section must be cleared during start-up\r
-        LDI:8           #0, R0\r
-        LDI             #sizeof DATA &~0x3, R1\r
-        LDI             #DATA, R13\r
-        CMP             #0, R1\r
-        BEQ             data_clr1\r
-data_clr0:\r
-        ADD2            #-4, R1\r
-        BNE:D           data_clr0\r
-        ST              R0, @(R13, R1)\r
-data_clr1:\r
-        LDI:8           #sizeof DATA & 0x3, R1\r
-        LDI             #DATA + (sizeof DATA & ~0x3), R13\r
-\r
-        CMP             #0, R1\r
-        BEQ             data_clr_end\r
-data_clr2:\r
-        ADD2            #-1, R1\r
-        BNE:D           data_clr2\r
-        STB             R0, @(R13, R1)\r
-data_clr_end:\r
-        ClearRCwatchdog\r
-        \r
-;=========================================================================================\r
-; 7.11  Copy Init section from ROM to RAM\r
-;=========================================================================================\r
-; copy rom\r
-; All initialised data's (e.g. int i=1) must be stored in ROM/FLASH area. \r
-; (start value)\r
-; The Application must copy the Section (Init) into the RAM area.\r
-        LDI             #_RAM_INIT, R0\r
-        LDI             #_ROM_INIT, R1\r
-        LDI             #sizeof(INIT), R2\r
-        CMP             #0, R2\r
-        BEQ:D           copy_rom_end\r
-        LDI             #3, R12\r
-        AND             R2, R12\r
-        BEQ:D           copy_rom2\r
-        MOV             R2, R13\r
-        MOV             R2, R3\r
-        SUB             R12, R3\r
-copy_rom1:\r
-        ADD             #-1, R13\r
-        LDUB            @(R13, R1), R12\r
-        CMP             R3, R13\r
-        BHI:D           copy_rom1\r
-        STB             R12, @(R13, R0)\r
-        CMP             #0, R3\r
-        BEQ:D           copy_rom_end\r
-copy_rom2:\r
-        ADD             #-4, R13\r
-        LD              @(R13, R1), R12\r
-        BGT:D           copy_rom2\r
-        ST              R12, @(R13, R0)\r
-copy_rom_end:\r
-        ClearRCwatchdog\r
-\r
-;=========================================================================================\r
-; 7.12 C library initialization\r
-;=========================================================================================\r
-#if CLIBINIT == ON\r
-       CALL32          __stream_init, r12         ; initialise library \r
-#endif\r
-;=========================================================================================\r
-; 7.13  call C++ constructors\r
-;=========================================================================================\r
-#if CPLUSPLUS == ON\r
-       LDI              #___call_dtors, r4\r
-       CALL32           _atexit, r12\r
-\r
-       LDI              #EXT_CTOR_DTOR, r8\r
-       LDI              #EXT_CTOR_DTOR + sizeof(EXT_CTOR_DTOR), r9\r
-       CMP              r9, r8\r
-       BEQ              L1\r
-L0:\r
-       LD               @r8, r10\r
-       CALL:D           @r10\r
-       ADD              #4, r8\r
-       CMP              r9, r8\r
-       BC               L0\r
-L1:\r
-#endif\r
-\r
-start_main:\r
-;=========================================================================================\r
-; 7.14  call main routine\r
-;=========================================================================================\r
-       ClearRCwatchdog                            ; clear harware watchdog\r
-       LDI:8            #0, r4                    ; Set the 1st parameter for main to 0.\r
-       CALL32:d         _main, r12\r
-       LDI:8            #0, r5                    ; Set the 2nd parameter for main to 0.\r
-#if CLIBINIT == ON\r
-       CALL32           _exit, r12\r
-       __exit:\r
-#endif\r
-\r
-#if CPLUSPLUS == ON\r
-       __abort:\r
-#endif\r
-\r
-;=========================================================================================\r
-; 7.15  Return from main function\r
-;=========================================================================================\r
-end: \r
-        BRA            end  \r
-        .end            __start\r
+/*      THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU       */
+/*      MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR       */
+/*      ELIGIBILITY FOR ANY PURPOSES.                                                   */
+/*      (C) Fujitsu Microelectronics Europe GmbH                                        */
+;=========================================================================================
+; 1  Contents
+;=========================================================================================
+; 1       Contents
+; 2       Disclaimer
+;
+; 3       History
+;
+; 4       Settings
+; 4.1     Controller device
+; 4.2     Boot / flash security 
+; 4.3     Stack type and stack size
+; 4.4     Copy code from flash to I-RAM
+; 4.5     C++ start-up 
+; 4.6     Low-level library interface
+; 4.7     Clock Configuration
+; 4.7.1   Clock selection
+; 4.7.2   Select Clock Modulator
+; 4.8     External bus interface
+; 4.8.1   Select chipselect 
+; 4.8.2   Set memory addressing for chipselects
+; 4.8.3   Configure chipselect area
+; 4.8.4   Set wait cycles for chipselects
+; 4.8.5   Configure chipselects SDRAM memory only 
+; 4.8.6   Referesh control register RCR 
+; 4.8.7   Terminal and timing control register
+; 4.8.8   Enable / disable I-cache
+; 4.8.9   Enable CACHE for chipselect
+; 4.8.10  Select external bus mode (data lines)
+; 4.8.11  Select external bus mode (address lines)
+; 4.8.12  Select external bus mode (control signals)
+;
+; 5       Definitions of Configurations
+;
+; 6       Section and data declaration
+; 6.1     Define stack size
+; 6.2     Define sections
+;
+; 7.      S T A R T 
+; 7.1     Initialise stack pointer and table base register
+; 7.2     Check for CSV reset and set CSV
+; 7.3     Check clock condition
+; 7.4     Restore default settings after reset
+; 7.4.1   Disable clock modulator
+; 7.4.2   Check if running on sub clock, change to main clock
+; 7.4.3   Disable sub clock
+; 7.4.4   Check if running on PLL, gear down PLL
+; 7.4.5   Disable PLL
+; 7.4.6   Set to main clock
+; 7.5     Set memory controller
+; 7.6     Clock startup
+; 7.6.1   Set Voltage Regulator Settings
+; 7.6.2   Power on clock modulator - clock modulator part I
+; 7.6.3   Set CLKR register w/o clock mode
+; 7.6.4   Start PLLs 
+; 7.6.5   Wait for PLL oscillation stabilisation
+; 7.6.6   Set clocks 
+; 7.6.6.1 Set CPU and peripheral clock
+; 7.6.6.2 Set external bus interface clock
+; 7.6.6.3 Set CAN clock prescaler
+; 7.6.6.4 Switch main clock mode
+; 7.6.6.5 Switch sub clock mode
+; 7.6.6.6 Switch to PLL mode
+; 7.6.7   Enable frequncy modulation - clock modulator part II
+; 7.7     Set BusInterface
+; 7.7.1   Disable all CS
+; 7.7.2   Clear TCR register
+; 7.7.3   Set CS0 
+; 7.7.4   Set CS1 
+; 7.7.5   Set CS2  
+; 7.7.6   Set CS3
+; 7.7.7   Set CS4
+; 7.7.8   Set CS5 
+; 7.7.9   Set CS6
+; 7.7.10  Set CS7  
+; 7.7.11  Set special SDRAM config register  
+; 7.7.12  set Port function register
+; 7.7.13  Set TCR register
+; 7.7.14  Enable cache for selected CS
+; 7.7.15  Set SDRAM referesh control register
+; 7.7.16  Enable used CS
+; 7.7.17  I-cache on/off
+; 7.7.18  Set port function register to general as I/O-port
+; 7.8     Copy code from flash to I-RAM
+; 7.9     Fill stacks
+; 7.10    Clear data 
+; 7.11    Copy Init section from ROM to RAM
+; 7.12    C library initialization
+; 7.13    Call C++ constructors
+; 7.14    Call main routine
+; 7.15    Return from main function
+;
+;=========================================================================================
+; 2  Disclaimer
+;=========================================================================================
+;                    Fujitsu Microelectronics Europe GmbH                       
+;                http://emea.fujitsu.com/microelectronics 
+;                                                              
+;    The  following  software  is for  demonstration  purposes only. It  is not fully  
+;    tested, nor  validated  in order to fullfill its task under  all  circumstances.  
+;    Therefore,  this software or  any part of it must only  be used in an evaluation 
+;    laboratory environment.                        
+;    This  software  is  subject to  the  rules of  our  standard DISCLAIMER, that is
+;    delivered with our  SW-tools on  the  Fujitsu  Microcontrollers  CD/DVD (V3.4 or 
+;    higher "\START.HTM") or on our Internet Pages:                                   
+;    http://www.fme.gsdc.de/gsdc.htm
+;    http://emea.fujitsu.com/microelectronics 
+;
+;=========================================================================================
+; 3  History
+;=========================================================================================
+;
+;=========================================================================================
+;       MB914xx (FR60 CORE ONLY) Series C Compiler's 
+;
+;       Startup file for memory and basic controller initialisation
+;=========================================================================================
+;History:
+;
+; 2005-04-18 V1.0 UMa  Release first version
+; 2005-06-17 V1.1 UMa  Added bus interface, modified c++ startup
+; 2005-06-28 V1.2 UMa  minor changes
+; 2005-07-27 V1.3 UMa  default values changed
+; 2005-10-04 V1.4 UMa  changed code 'Call main Routine'
+;                      Added secutiy section for MB91F467D  
+;                      Added Flash Access Read Timing setting section;
+; 2005-10-04 V1.5 UMa  Added Flash Controller Section
+; 2005-10-28 V1.6 UMa  Check for CSV reset
+; 2005-11.16 V1.7 UMa  Monitor Debugger support added: Copy of intvect Table
+;                      Ext. Int 0 as abort function
+;                      Changed PLL-Startup, Reset HWWD added
+; 2005-11-16 V1.7 UMa  Examples for MUL_G changed
+; 2006-02-14 V1.8 UMa  mb91464a added
+;                      Settings for Clock Spervisor added
+;                      Name of Section SECURITY changed to SECURITY_VECTORS
+;                      Example values for gear-up changed
+; 2006-03-17 V1.9 UMa  Changed Startup for Monitor Debugger
+; 2006-04-24 v2.0 UMa  Added MB91465K and MB91469G
+; 2006-05-03 v2.1 UMa  Added MB91461R; removed MB91V460A
+;                      Added settings for the external bus-interface
+; 2006-07-28 v2.2 UMa  Added I-RAM copy function (ROM -> IRAM)
+;                      Added default settings for FLASH Access Read Timing 
+;                      Settings 
+;                      Changed default settings for FLASH cache configuration 
+;                      Register
+;                      Changed check for clock startup
+; 2006-08-16 v2.3 MVo  Corrected Boot Security Sector Addresses for MB91469G
+; 2006-10-06 v2.4 UMa  Added new devices
+;                      Corrected typo in I_RAM to flash copy function
+;                      Changed default settings for flash cache configuration
+;                      Changed comments for SDRAM bus interface configuration
+;                      Changed comments and default setting of CAN Prescaler
+;                      Added Stack filler
+;                      Added Settings for REGSEL Register
+; 2007-02-13 v2.5 UMa  Introduction of default configurations
+;                      Changed I_RAM to flash copy function                    
+;
+;
+;=========================================================================================
+; 4  Settings
+;=========================================================================================
+;
+; CHECK ALL OPTIONS WHETHER THEY FIT TO THE APPLICATION;
+;
+; Configure this startup file in the "Settings" section. Search for
+; comments with leading "; <<<". This points to the items to be set.
+;=========================================================================================
+;
+#set    OFF             0
+#set    ON              1
+#set    DEFAULT         2
+#set    LOW_PRIOR       31
+;
+;=========================================================================================
+; 4.1  Controller Device
+;=========================================================================================
+#set    MB91464A        2                       ; MB91460 series
+;
+#set    MB91467B       10                       ; MB91460 series
+;
+#set    MB91467C       11                       ; MB91460 series
+;
+#set    MB91467D        4                       ; MB91460 series
+;
+#set    MB91469G        6                       ; MB91460 series
+;
+#set    MB91465K        3                       ; MB91460 series
+;
+#set    MB91463N        8                       ; MB91460 series
+;
+#set    MB91461R        1                       ; MB91460 series
+#set    MB91467R        5                       ; MB91460 series
+;
+#set    MB91465X        9                       ; MB91460 series
+;
+#set    others          7                       ; MB91460 series
+;
+;
+;
+#set    DEVICE          MB91465K                ; <<< select device
+;
+;=========================================================================================
+; 4.2  Boot / Flash Security 
+;=========================================================================================
+;
+#set    BOOT_FLASH_SEC  OFF                     ; <<< BOOT and Flash Security Vector    
+;
+; The flash devices have two flash and two boot security vectors.  It is important to set
+; the four vectors correctly.  Otherwise it might be possible,  that the flash device is 
+; not accessible any more via the bootrom. Please read carefully the hardware manual.
+; 
+; OFF:  The security feature is switch off. The section SECURITY_VECTORS is reserved and
+;       the vectors are set.
+; ON:   IMPORTANT! The  security vectors are  not set. But the  section SECURITY_VECTORS 
+;       is reserved.  
+;
+; Note: This feature is not supported by every device. Please check the data sheet. This 
+;       feature is not available on MB91461R.
+;
+;=========================================================================================
+; 4.3  Stack Type and Stack Size
+;=========================================================================================
+;
+#set    USRSTACK        0                       ; user stack:   for main program
+#set    SYSSTACK        1                       ; system stack: for main program and 
+;                                               ;               interrupts
+;
+;
+#set    STACKUSE        SYSSTACK                ; <<< set active stack
+;
+#set    STACK_RESERVE   ON                      ; <<< reserve stack area in 
+;                                               ;     this module
+#set    STACK_SYS_SIZE  0x400-4                 ; <<< byte size of System stack
+#set    STACK_USR_SIZE  0x2                     ; <<< byte size of User stack 
+;
+#set    STACK_FILL      OFF                     ; <<< fills the stack area with pattern
+#set    STACK_PATTERN   0x55AA6699              ; <<< the pattern to write to stack
+;
+; - If the active stack is set to SYSSTACK,  it is used for main program and interrupts. 
+;   In this case,  the user stack  could be set to a dummy size.  If the active stack is 
+;   set  to  user  stack,  it is  used  for the  main  program  but the  system stack is 
+;   automatically activated,  if an interrupt is serviced.  Both stack areas must have a 
+;   reasonable size.
+; - If STACK_RESERVE is ON,  the sections USTACK and SSTACK are reserved in this module. 
+;   Otherwise, they have to be reserved in other modules.  If STACK_RESERVE is OFF,  the 
+;   size definitions STACK_SYS_SIZE and STACK_USR_SIZE have no meaning.
+; - Even if  they  are reverved  in other modules,  they are  still initialised  in this 
+;   start-up file.
+;
+; Note: Several library functions require quite a big stack (due to ANSI). 
+;       Check the stack information files (*.stk) in the LIB\911 directory.
+;
+;=========================================================================================
+; 4.4  Copy code from Flash to I-RAM
+;=========================================================================================
+;
+#set    I_RAM           ON                      ; <<< select  if  code  in  section IRAM
+;                                                     should be copied
+;
+; If this option is activated code located in the  section IRAM is copied during startup 
+; from ROM to the instruction-RAM. The code is linked for the instruction-RAM.
+;
+;=========================================================================================
+; 4.5  Low-Level Library Interface
+;=========================================================================================
+;
+#set    CLIBINIT        OFF                     ; <<< select ext. libray usage
+;
+; This option has only to be set,  if  stream-IO/standard-IO function  of the C-libraray 
+; have to be used (printf(), fopen()...).  This also requires  low-level functions to be 
+; defined by the application software.
+; For other library functions like (e.g. sprintf()) all this is not necessary.  However, 
+; several functions consume a large amount of stack.
+;
+;=========================================================================================
+; 4.6  C++ start-up 
+;=========================================================================================
+;
+#set    CPLUSPLUS       OFF                     ; <<< activate if c++ files are used
+;
+; In the  C++ specifications,  when external  or static objects are used,  a constructor 
+; must be called followed by  the main function.  Because four-byte pointers to the main 
+; function are stored in the EXT_CTOR_DTOR section, call a constructor sequentially from
+; the  lower  address  of  the four  addresses  in that  section.  If using C++ sources, 
+; activate this function to create the section EXT_CTOR_DTOR. 
+;
+;=========================================================================================
+; 4.7  Clock Configuration
+;=========================================================================================
+;=========================================================================================
+; 4.7.1  Clock Selection
+;=========================================================================================
+;
+; No clock settings
+#set    NO_CLOCK                                               0x01
+;
+; Sub-oscillation input: 32 kHz 
+#set    SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ     0x11
+;
+; Oscillation input: 4 MHz 
+#set    MAIN_4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ     0x21
+#set    PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ     0x22
+#set    PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ     0x23
+#set    PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ     0x24
+#set    PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ     0x25
+#set    PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ     0x26  ;not MB91V460, ...
+#set    PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ     0x27  ;not MB91V460, ...
+;
+; MB91461R only: Oscillation input: 10 MHz
+#set    PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ     0x41
+;
+; MB91461R only: Oscillation input: 20 MHz
+#set    PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ     0x51
+;
+; User settings
+#set    CLOCK_USER                                             0x61
+;
+;
+;
+#set    CLOCKSPEED      PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ
+;                                               ; <<< Select clock configuration 
+;
+; There are different default configurations available, where all necessary settings for 
+; clocks and the related  registers are made.  Beside this configurations,  there is the
+; possibility   to  define  a  user   configuration   in  the  chapter   "Definition  of 
+; Configurations"
+; 
+; - NO_CLOCK means: 
+;   The clock registers are not set by the start-up file.
+;
+; - PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ means:
+;   Main oszillation        =  4 MHz, PLL is activated
+;   CPU clock (CLKB)        = 64 MHZ
+;   Peripheral clock (CLKP) = 16 MHZ
+;   Ext. bus clock (CLKT)   = 32 MHZ
+;   CAN clock (CLKCAN)      = 16 MHz, using PLLx 
+;
+; - CLOCK_USER: 
+;   The user configuration definded in the chapter "Definition of Configurations" is set.
+;
+; Note: Not all  frequencies  are supported  by every device.  Please see  the  hardware 
+;       manual.
+;
+;=========================================================================================
+; 4.7.2  Select Clock Modulator  
+;=========================================================================================
+;
+#set    CLOMO           OFF                     ; <<< Enable /disable clock modulator      
+;
+#set    CMPR            0x026F                  ; <<< Ref. to the data sheet, CMPR
+; 
+; Please  refer  to the data sheet  of the device  if you  enable clock modulation.  The 
+; register CMPR dependant on the PLL-Clock.
+;
+; Note: If the CLKCAN source is set either to main oscillator or to PLL  output then the
+;       clock  for  the CAN  is not influenced by  the clock  modulation.  If the CLKCAN 
+;       source is set CPU clock (CLKB) then the clock for the CAN is also modulated  (if 
+;       the clock modulator is enabled).
+;
+; Note: If the clock modulator is enabled,  the wait states  of the  internal flash wait 
+;       states  must  be  adapted  to  maximum frequency.  Please check the  wait states 
+;       settings.
+;
+; Note: This feature  is not supported by every device,  e.g. MB91461.  Please check the 
+;       data sheet.
+;
+;=========================================================================================
+; 4.8  External Bus Interface
+;
+;      The rest of the configuration is only applicable for devices with an external bus 
+;      interface.
+;
+;      If the device does not offer an external bus interface,  the configuration can be 
+;      stoped at this point.
+;
+;=========================================================================================
+;
+#set    EXTBUS          DEFAULT                 ; <<< Ext. Bus on/off
+;
+;                       ON      - The ext. bus interface is enabled and is configured as
+;                                 set below. 
+;                             
+;                       OFF     - The ext. bus interface is  diabled.  The port function 
+;                                 registers  are set to  general I/O.  The registers  of 
+;                                 ext. bus interface will not be touched by the start-up 
+;                                 file.  
+;                                 Be aware, that the device  might be conifgured in ext.
+;                                 bus mode by default after reset.
+;
+;                       DEFAULT - Neither the register nor the respective  port function
+;                                 registers are touched by the start-up file.
+;                                 Be aware, that the device  might be conifgured in ext. 
+;                                 bus mode by default after reset.
+;
+;
+; Note: This feature is not supported by every device. Please check the data sheet.  The 
+;       following devices for example do not offer an external bus interface:  MB91464A, 
+;       MB91467C, MB91465K, MB91463N, MB91465X.
+;
+;=========================================================================================
+; 4.8.1  Select Chipselect (Only EXTBUS == ON)
+;=========================================================================================
+;
+#set    CS0             OFF                     ; <<< select CS (ON/OFF)
+#set    CS1             OFF                     ; <<< select CS (ON/OFF)
+#set    CS2             OFF                     ; <<< select CS (ON/OFF)
+#set    CS3             OFF                     ; <<< select CS (ON/OFF)
+#set    CS4             OFF                     ; <<< select CS (ON/OFF)
+#set    CS5             OFF                     ; <<< select CS (ON/OFF)
+#set    CS6             OFF                     ; <<< select CS (ON/OFF)
+#set    CS7             OFF                     ; <<< select CS (ON/OFF)
+#set    SDRAM           OFF                     ; <<< select if a SDRAM is connected 
+;
+;
+#set    ENACSX          B'00000000              ; <<< set CS, ENACSX
+;                         ||||||||
+;                         ||||||||__ CS0 bit, enable/disable CS0 (1/0)
+;                         |||||||___ CS1 bit, enable/disable CS1 (1/0)
+;                         ||||||____ CS2 bit, enable/disable CS2 (1/0)
+;                         |||||_____ CS3 bit, enable/disable CS3 (1/0)
+;                         ||||______ CS4 bit, enable/disable CS4 (1/0)
+;                         |||_______ CS5 bit, enable/disable CS5 (1/0) 
+;                         ||________ CS6 bit, enable/disable CS6 (1/0)
+;                         |_________ CS7 bit, enable/disable CS7 (1/0)
+;
+; Note: If the SWB Monitor Debugger is used,  set the CS1 (external RAM only) or CS0 and 
+;       CS 1 (external RAM and flash) to off.
+;
+; Note: Not all Chipselects  are supported by  the different devices.  Please check  the 
+;       data sheet.
+;
+;=========================================================================================
+; 4.8.2  Set memory addressing for Chipselects (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    AREASEL0        0x0000                  ; <<< set start add. for CS0, ASR0  
+#set    AREASEL1        0x0000                  ; <<< set start add. for CS1, ASR1           
+#set    AREASEL2        0x0000                  ; <<< set start add. for CS2, ASR2 
+#set    AREASEL3        0x0000                  ; <<< set start add. for CS3, ASR3 
+#set    AREASEL4        0x0000                  ; <<< set start add. for CS4, ASR4 
+#set    AREASEL5        0x0000                  ; <<< set start add. for CS5, ASR5 
+#set    AREASEL6        0x0000                  ; <<< set start add. for CS6, ASR6 
+#set    AREASEL7        0x0000                  ; <<< set start add. for CS7, ASR7 
+;
+; Configure the starting address of each used Chipselect. Chipselects which are not used
+; (not set to ON in "Select Chipselect") need not be set (setting ignored).
+;
+; NOTE: Just  the upper 16-bit  of the start address must be set,  e.g. when using start 
+;       address 0x00080000 set 0x0008.
+;
+;=========================================================================================
+; 4.8.3  Configure Chipselect Area (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    CONFIGCS0       B'0000000000000000      ; <<< Config. CS0, ACR0
+#set    CONFIGCS1       B'0000000000000000      ; <<< Config. CS1, ACR1 
+#set    CONFIGCS2       B'0000000000000000      ; <<< Config. CS2, ACR2 
+#set    CONFIGCS3       B'0000000000000000      ; <<< Config. CS3, ACR3 
+#set    CONFIGCS4       B'0000000000000000      ; <<< Config. CS4, ACR4  
+#set    CONFIGCS5       B'0000000000000000      ; <<< Config. CS5, ACR5  
+#set    CONFIGCS6       B'0000000000000000      ; <<< Config. CS6, ACR6  
+#set    CONFIGCS7       B'0000000000000000      ; <<< Config. CS7, ACR7  
+;                         ||||||||||||||||
+;                         ||||||||||||||||__ TYP0 bit, TYP0-4 bits select access type
+;                         |||||||||||||||___ TYP1 bit
+;                         ||||||||||||||____ TYP2 bit
+;                         |||||||||||||_____ TYP3 bit
+;                         ||||||||||||______ LEND bit, select little '1' or big endian '0'
+;                         |||||||||||_______ WREN bit, en-/disable (1/0) Write access
+;                         ||||||||||________ PFEN bit, en-/disable (1/0) pre-fetch
+;                         |||||||||_________ SREN bit, en-/disable (1/0) share of BRQ & BGRNTX
+;                         ||||||||__________ BST0 bit, BSTx bits select burst size
+;                         |||||||___________ BST1 bit
+;                         ||||||____________ DBW0 bit, DBWx select data bus width
+;                         |||||_____________ DBW1 bit
+;                         ||||______________ ASZ0 bit, ASZx bits select address size of CS
+;                         |||_______________ ASZ1 bit
+;                         ||________________ ASZ2 bit
+;                         |_________________ ASZ3 bit
+;
+; Bit description:
+;
+; TYP3 TYP2 TYP1 TYP0  : Select access type of each CS
+; 0    0    X    X     : Normal access (asynchronous SRAM, I/O, 
+;                        single/page/busrt-ROM/FLASH) 
+; 0    1    X    X     : Address/data multiplexed (8bit / 16bit bus width only)
+; 0    X    X    0     : WAIT insertion by RDY disabled
+; 0    X    X    1     : WAIT insertion by RDY enabled
+; 0    X    0    X     : The WR0X pin to the WR3X pin are used as write strobes 
+;                        (WRX is fixed at H-Level)
+; 0    X    1    X     : The WRX pin is used as write strobe 
+; 1    0    0    0     : Memory type A: SDRAM/FCRAM (Auto pre-charge used)  
+; 1    0    0    1     : Memory type B: FCRAM (Auto pre-charge used)  
+; 1    0    1    0     : setting not allowed
+; 1    0    1    1     : setting not allowed
+; 1    1    0    0     : setting not allowed
+; 1    1    0    1     : setting not allowed
+; 1    1    1    0     : setting not allowed
+; 1    1    1    1     : mask area setting
+;
+;               LEND   : select BYTE ordering 
+;                0     : Big endian
+;                1     : Little endian
+;
+;               WREN   : enable or disable write access 
+;                0     : disabled 
+;                1     : enabled,    
+;
+;               PFEN   : Enable or disable the pre-fetch
+;                0     : disabled 
+;                1     : enabled,    
+;
+;               SREN   : Enable or disable the sharing of BRQ and BGRNTX 
+;                0     : disabled 
+;                1     : enabled (CSx pin High-Z)
+;
+;          BST1 BST0   : set burst size of chip select area
+;            0   0     : 1 burst (single access)
+;            0   1     : 2 bursts (Address boundary 1 bit) 
+;            1   0     : 4 bursts (Address boundary 2 bit)
+;            1   1     : 8 bursts (Address boundary 3 bit)
+;
+;          DBW1 DBW0   : Set data bus width
+;            0   0     : 8-bit (BYTE access) 
+;            0   1     : 16-bit (HALF-WORD access) 
+;            1   0     : 32-bit (WORD access) 
+;            1   1     : Reserved  
+;
+; ASZ3 ASZ2 ASZ1 ASZ0  :  Select memory size of each chipselect 
+; 0    0    0    0     : 64 Kbyte  (0x01.0000 bytes; use ASR A[31:16] bits) 
+; 0    0    0    1     : 128 Kbyte (0x02.0000 bytes; use ASR A[31:17] bits)
+; 0    0    1    0     : 256 Kbyte (0x04.0000 bytes; use ASR A[31:18] bits)
+; 0    0    1    1     : 512 Kbyte (0x08.0000 bytes; use ASR A[31:19] bits)
+; 0    1    0    0     : 1 Mbyte   (0x10.0000 bytes; use ASR A[31:20] bits)
+; 0    1    0    1     : 2 Mbyte   (0x20.0000 bytes; use ASR A[31:21] bits)
+; 0    1    1    0     : 4 Mbyte   (0x40.0000 bytes; use ASR A[31:22] bits)
+; 0    1    1    1     : 8 Mbyte   (0x80.0000 bytes; use ASR A[31:23] bits)
+; 1    0    0    0     : 16 Mbyte  (0x100.0000 bytes; use ASR A[31:24] bits)
+; 1    0    0    1     : 32 Mbyte  (0x200.0000 bytes; use ASR A[31:25] bits)
+; 1    0    1    0     : 64 Mbyte  (0x400.0000 bytes; use ASR A[31:26] bits)
+; 1    0    1    1     : 128 Mbyte (0x800.0000 bytes; use ASR A[31:27] bits)
+; 1    1    0    0     : 256 Mbyte (0x1000.0000 bytes; use ASR A[31:28] bits)
+; 1    1    0    1     : 512 Mbyte (0x2000.0000 bytes; use ASR A[31:29] bits)
+; 1    1    1    0     : 1024 Mbyte(0x4000.0000 bytes; use ASR A[31:30] bits)
+; 1    1    1    1     : 2048 Mbyte(0x8000.0000 bytes; use ASR A[31] bit)
+;
+;=========================================================================================
+; 4.8.4  Set Wait cycles for Chipselects for ordinary businterface (only EXTBUS == ON)
+;=========================================================================================
+;
+; Ordinary bus interface (w/o SDRAM and FRAM) (ACRx_Type = 0xxx)
+;
+#set    WAITREG0        B'0000000000000000      ; <<< CS0 Waitstates, AWR0  
+#set    WAITREG1        B'0000000000000000      ; <<< CS1 Waitstates, AWR1  
+#set    WAITREG2        B'0000000000000000      ; <<< CS2 Waitstates, AWR2 
+#set    WAITREG3        B'0000000000000000      ; <<< CS3 Waitstates, AWR3 
+#set    WAITREG4        B'0000000000000000      ; <<< CS4 Waitstates, AWR4 
+#set    WAITREG5        B'0000000000000000      ; <<< CS5 Waitstates, AWR5 
+;                         ||||||||||||||||
+;                         ||||||||||||||||__ W00 bit, RDY/WRY-> CSX hold cycle
+;                         |||||||||||||||___ W01 bit, CSX->RDX/WRX setup extension cycle
+;                         ||||||||||||||____ W02 bit, Address -> CSX Delay selection
+;                         |||||||||||||_____ W03 bit, WR0X to WR3X/WRX outout timing 
+;                         ||||||||||||______ W04 bit, W04/W05 Write recovery cycle
+;                         |||||||||||_______ W05 bit  
+;                         ||||||||||________ W06 bit, W06/07 Read -> Write idle cycle 
+;                         |||||||||_________ W07 bit          selection
+;                         ||||||||__________ W08 bit, W08-W11 Intra-page access cycle 
+;                         |||||||___________ W09 bit          select (0-15 cycles)
+;                         ||||||____________ W10 bit 
+;                         |||||_____________ W11 bit
+;                         ||||______________ W12 bit, W12-W15 First access wait cycle  
+;                         |||_______________ W13 bit          select (0-15 cycles)
+;                         ||________________ W14 bit
+;                         |_________________ W15 bit
+;
+;
+; SDRAM and FRAM bus interface (ACRx_Type = 100x) 
+;
+#set    WAITREG6        B'0000000000000000      ; <<< CS6 Waitstates, AWR6 
+#set    WAITREG7        B'0000000000000000      ; <<< CS7 Waitstates, AWR7
+;                         ||||||||||||||||
+;                         ||||||||||||||||__ W00 bit, W0-W1 RAS precharge cycles
+;                         |||||||||||||||___ W01 bit
+;                         ||||||||||||||____ W02 bit, W2-W3 RAS active Time
+;                         |||||||||||||_____ W03 bit
+;                         ||||||||||||______ W04 bit, W4-W5 Write recovery cycle
+;                         |||||||||||_______ W05 bit 
+;                         ||||||||||________ W06 bit, W6-W7 Read->Write idle cycle
+;                         |||||||||_________ W07 bit
+;                         ||||||||__________ W08 bit, W8-W10 CAS latency 
+;                         |||||||___________ W09 bit
+;                         ||||||____________ W10 bit 
+;                         |||||_____________ W11 bit, reserved
+;                         ||||______________ W12 bit, W12-W16 RAS-CAS delay 
+;                         |||_______________ W13 bit
+;                         ||________________ W14 bit  
+;                         |_________________ W15 bit, reserved
+;
+;
+; The bit meaning depends on the configured bus interface type. The bus interface can be 
+; configured for different memory types. Depending on the memory type, the wait register 
+; bits have a differnt meaning.  CS0-5 should  be configurable as ordinary bus interface 
+; (w/o SDRAM and FRAM)  and CS6-7 should be configurable as  SDRAM and FRAM.  It is also 
+; possible and for some devices neccessary to configure  other two chip selects as SDRAM 
+; or FRAM interface. In such a case be aware of the bit meanings.
+;
+;
+; Ordinary bus interface (w/o SDRAM and FRAM) (ACRx_Type = 0xxx)
+; --------------------------------------------------------------
+;
+; Bit description:
+;
+;                W00   : RDY/WRX -> CSX hold extension cycle
+;                0     : 0 cycle
+;                1     : 1 cycle
+;
+;                W01   : CSX -> RDX/WRX setup extention cycle
+;                0     : 0 cycle
+;                1     : 1 cycle
+;
+;                W02   : Address -> CSX Delay selection
+;                0     : no delay selected
+;                1     : delay selected
+;
+;                W03   : WR0X to WR3X/WRX outout timing selection
+;                0     : MCLK synchronous write output enable (ASX=L)
+;                1     : Asynchronous write strobe output (norma operation)
+;
+;           W05  W04   : select Write recovery cycle
+;           0    0     : 0 cycle
+;           0    1     : 1 cycle
+;           1    0     : 2 cycles
+;           1    1     : 3 cycles
+;
+;           W07  W06   : Read -> Write idle cycle selection
+;           0    0     : 0 cycle
+;           0    1     : 1 cycle
+;           1    0     : 2 cycles
+;           1    1     : 3 cycles
+; 
+; W11  W10  W09  W08   :  Intra-page access cycle select (0-15 cycles)
+; 0    0    0    0     :  0 Wait state
+; 0    0    0    1     :  1 Auto-wait cycle
+; 0    0    1    0     :  2 Auto-wait cycle
+; ....
+; 1    1    1    1     :  15 Auto wait cycles
+;
+; W15  W14  W13  W12   :  First access wait cycle can be set (0-15 cycles)
+; 0    0    0    0     :  0 Wait state
+; 0    0    0    1     :  1 Auto-wait cycle
+; 0    0    1    0     :  2 Auto-wait cycle
+; ....
+; 1    1    1    1     :  15 Auto wait cycles
+;  
+;
+;
+; SDRAM and FRAM bus interface (ACRx_Type = 100x)
+; -----------------------------------------------
+;
+; Bit description:
+;
+;           W01  W00   : RAS precharge cycles.
+;           0    0     : 1 cycle
+;           0    1     : 2 cycles
+;           1    0     : 5 cycles
+;           1    1     : 6 cycles
+;
+;           W03  W02   : RAS active Time
+;           0    0     : 1 cycle
+;           0    1     : 2 cycles
+;           1    0     : 5 cycles
+;           1    1     : 6 cycles
+;
+;           W05  W04   : set Write recovery cycle (1 - 4 cycles)
+;           0    0     : Prohibited
+;           0    1     : 2 cycles
+;           1    0     : 3 cycles
+;           1    1     : 4 cycles
+;
+;           W07  W06   : set Read -> Write idle Cycle (1 - 4 cycles)
+;           0    0     : 1 cycle
+;           0    1     : 2 cycles
+;           1    0     : 3 cycles
+;           1    1     : 4 cycles
+;
+;      W10  W09  W08   : set CAS latency (1 - 8 cycles)
+;      0    0    0     : 1 cycle
+;      0    0    1     : 2 cycle
+;      ...
+;      1    1    1     : 8 cycle
+;
+;                W11   : RESERVED, ALWAYS WRITE 0 !
+;
+;      W14  W13  W12   : set RAS-CAS delay (1 - 8 cycles)
+;      0    0    0     : 1 cycle
+;      0    0    1     : 2 cycle
+;      ...
+;      1    1    1     : 8 cycle
+;
+;                W15   : RESERVED, ALWAYS WRITE 0 !
+;
+
+; The bit meaning depends on the configured bus interface type
+;
+;=========================================================================================
+; 4.8.5  Configure Chipselects for SDRAM memory only (only EXTBUS == ON and SDRAM)
+;=========================================================================================
+;
+#set    MEMCON           B'00000111             ; <<< set special SDRAM register, MCRA
+;                          ||||||||
+;                          ||||||||__ ABS0 bit, set max. active banks (ABS1,0)
+;                          |||||||___ ABS1 bit
+;                          ||||||____ BANK bit, set number of banks connected to CS
+;                          |||||_____ WBST bit, Write burst enable/disable
+;                          ||||______ PSZ0 bit, Set page size (PSZ2-0)
+;                          |||_______ PSZ1 bit 
+;                          ||________ PSZ2 bit
+;                          |_________ reserved, always write 0 
+;
+; When connecting  SDRAM/FCRAM TYP3-0=1000  in ACRx register the following register must  
+; be setup.
+;
+; Bit description:
+;
+;           ABS1  ABS0 : Set maximum number of bank, active at same time
+;            0     0   : 1 bank
+;            0     1   : 2 banks
+;            1     0   : 3 banks
+;            1     1   : 4 banks
+;
+;                 BANK : Set number of connected SDRAM banks
+;                  0   : 2 banks
+;                  1   : 4 banks
+;
+;                 WBST : Write burst enable
+;                  0   : Single Write
+;                  1   : Busrt Write
+;
+;      PSZ2  PSZ1  PS0 : Select page size of connected memory
+;      0     0     0   : 8-bit column address = A0 to A7 
+;      0     0     1   : 9-bit column address = A0 to A8 
+;      0     1     0   : 10-bit column address = A0 to A9 
+;      0     1     1   : 11-bit column address = A0 to A9, A11 
+;      1     X     X   : setting disabled
+;
+;
+;=========================================================================================
+; 4.8.6  Referesh Control Register RCR (only EXTBUS == ON and SDRAM)
+;=========================================================================================
+;
+#set    REFRESH         B'1110001001000111      ; <<< set Refresh Control Register, RCR
+;                         ||||||||||||||||
+;                         ||||||||||||||||__ TRC0 bit, set refresh cycle (TRC2-0)
+;                         |||||||||||||||___ TRC1 bit
+;                         ||||||||||||||____ TRC2 bit
+;                         |||||||||||||_____ PON bit, set power-on control
+;                         ||||||||||||______ RFC0 bit, set refresh count (RFC2-0)
+;                         |||||||||||_______ RFC1 bit 
+;                         ||||||||||________ RFC2 bit 
+;                         |||||||||_________ BRST bit, set burst refresh control 
+;                         ||||||||__________ RFINT0 bit, set auto refresh interval
+;                         |||||||___________ RFINT1 bit, (RFINT5-0)
+;                         ||||||____________ RFINT2 bit
+;                         |||||_____________ RFINT3 bit
+;                         ||||______________ RFINT4 bit
+;                         |||_______________ RFINT5 bit
+;                         ||________________ RRLD bit, counter refresh strat control
+;                         |_________________ SELF bit, self refresh control
+;
+;
+; This register sets various SDRAM refresh controls.  When SDRAM control is not set  for 
+; any area, the setting of this register is meaningless,  but do not change the register 
+; value  at  initial   state.   When  a  read is  performed   using  a read-modify-write 
+; instruction, 0 always returns from the SELF, RRLD, and PON bits.
+;
+; Bit description:
+;
+;
+;    TRC2  TRC1  TRC0  : Refresh Cycle 
+;      0     0     0   : 4
+;      0     0     1   : 5
+;      0     1     0   : 6
+;      0     1     1   : 7
+;      1     0     0   : 8
+;      1     0     1   : 9
+;      1     1     0   : 10
+;      1     1     1   : 11
+;
+;                 PON  : Power-on control
+;                  0   : disabled
+;                  1   : power-on sequence started
+;
+;     RFC2  RFC1  RFC0 : Refresh Count
+;      0     0     0   : 256
+;      0     0     1   : 512
+;      0     1     0   : 1024
+;      0     1     1   : 2048
+;      1     0     0   : 4096
+;      1     0     1   : 8192
+;      1     1     0   : Setting disabled
+;      1     1     1   : Refresh disabled
+;
+;                 BRST : Burst refresh control
+;                  0   : Decentralised refresh 
+;                  1   : burst refresh
+; 
+;           RFINT[5-0] : auto refresh interval
+;
+;                 RRLD : Refresh counter Activation Control
+;                  0   : Disabled,  
+;                  1   : Autorefresh performed once, then value of RFINT reloaded
+;
+;                 SELF : Self refresh control
+;                  0   : auto refresh or power down
+;                  1   : Transitions to self-refresch mode
+;
+; NOTE: PON bit is set after the above setting. Do not set PON bit to 1 in the 
+;       above setting. Otherwise the settings are not correct set.
+;
+;=========================================================================================
+; 4.8.7  Terminal and Timing Control Register (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    TIMECONTR        B'00000000             ; <<< set TCR register, TCR
+;                          ||||||||
+;                          ||||||||__ RDW0 bit, set wait cycle reduction (RDW0,1)
+;                          |||||||___ RDW1 bit
+;                          ||||||____ OHT0 bit, set output hold delay (OHT1,0)
+;                          |||||_____ OHT1 bit
+;                          ||||______ reserved, always write 0 
+;                          |||_______ PCLR bit, prefetch buffer clear 
+;                          ||________ PSUS bit, prefetch suspend
+;                          |_________ BREN bit, BRQ input enable 
+;
+; This register controls the general functions  of the external bus interface controller 
+; such as the common-pin function setting and timing control.
+;
+; Bit description:
+;
+;          RDW1  RDW0  : Wait cycle reduction 
+;            0     0   : Normal Wait (AWR0 - 7 setting)
+;            0     1   : 1/2 of AWR0 - 7 setting value
+;            1     0   : 1/4 of AWR0 - 7 setting value
+;            1     1   : 1/8 of AWR0 - 7 setting value
+;
+;          OHT1  OHT0  : Output hold selection bit
+;            0     0   : Output performed at falling edge of SYSCLK/MCLK
+;            0     1   : Output performed about 3ns after falling edge of SYSCLK/MCLK
+;            1     0   : Output performed about 4ns after falling edge of SYSCLK/MCLK
+;            1     1   : Output performed about 5ns after falling edge of SYSCLK/MCLK
+;
+;                PCLR  : Prefetch buffer all clear
+;                  0   : normal state
+;                  1   : Prefetch buffer cleared
+;
+;                PSUS  : prefetch suspension bit 
+;                  0   : Prefetch enabled
+;                  1   : Prefetch disabled
+;
+;                BREN  : BRQ input enable
+;                  0   : disabled, 
+;                  1   : enabled, Bus sharing of BRQ/BGRNTX performed
+;
+; Note: This function is used to prevent an  excessive access cycle wait while operating 
+;       at  a low-speed  clock  (such as  while  base  clock  operating at low  speed or 
+;       high frequency division rate for external bus clock).
+;
+;=========================================================================================
+; 4.8.8  Enable/Disable I-CACHE (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    C1024           1                       ; CACHE Size: 1024 BYTE
+#set    C2048           2                       ; CACHE Size: 2048 BYTE
+#set    C4096           3                       ; CACHE Size: 4096 BYTE
+;
+;
+#set    CACHE           OFF                     ; <<< Select use of cache 
+#set    CACHE_SIZE      C4096                   ; <<< Select size of cache, ISIZE
+;
+; It is possible  to use cache  functionality on  the I-Bus on  several devices.  Please 
+; check the  corresponidng data sheet  if this feature is  available on a certain device 
+; and for the size of the cache. This is the general cache configuration. It is possible 
+; to configure for each CS area, if the cache should be used.
+;
+; Note: This feature is not supported by every device. Please check the data  sheet. The 
+;       feature is for example supported by MB91461R, MB91469G.
+;
+;=========================================================================================
+; 4.8.9  Enable CACHE for chipselect (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    CHEENA          B'11111111              ; <<< en-/disable cache, CHER
+;                         ||||||||
+;                         ||||||||__ CHE0 bit, CS0 area
+;                         |||||||___ CHE1 bit, CS1 area
+;                         ||||||____ CHE2 bit, CS2 area
+;                         |||||_____ CHE3 bit, CS3 area
+;                         ||||______ CHE4 bit, CS4 area 
+;                         |||_______ CHE5 bit, CS5 area 
+;                         ||________ CHE6 bit, CS6 area
+;                         |_________ CHE7 bit, CS7 area 
+;
+; Additional to  the general cache enable setting,  select which CS  area should be used 
+; with cache functionality.
+;
+; Note: Not all  Chipselects are  supported by the  different devices.  Please check the 
+;       data sheet.
+;
+; Note: This feature is not supported by every device.  Please check the data sheet. The 
+;       Feature is supported by MB91461R, MB91469G.
+;
+;=========================================================================================
+; 4.8.10  Select External bus mode (Data lines) (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    PFUNC0          B'11111111              ;<<< Data lines or GIO, PFR00
+;                         ||||||||
+;                         ||||||||__ D24 / P00_0
+;                         |||||||___ D25 / P00_1
+;                         ||||||____ D26 / P00_2
+;                         |||||_____ D27 / P00_3
+;                         ||||______ D28 / P00_4
+;                         |||_______ D29 / P00_5
+;                         ||________ D30 / P00_6
+;                         |_________ D31 / P00_7
+;
+#set    PFUNC1          B'11111111              ;<<< Data lines or GIO, PFR01
+;                         ||||||||
+;                         ||||||||__ D16 / P01_0
+;                         |||||||___ D17 / P01_1
+;                         ||||||____ D18 / P01_2
+;                         |||||_____ D19 / P01_3
+;                         ||||______ D20 / P01_4
+;                         |||_______ D21 / P01_5
+;                         ||________ D22 / P01_6
+;                         |_________ D23 / P01_7
+;
+#set    PFUNC2          B'11111111              ;<<< Data lines or GIO, PFR02
+;                         ||||||||
+;                         ||||||||__ D8 / P02_0
+;                         |||||||___ D9 / P02_1
+;                         ||||||____ D10 / P02_2
+;                         |||||_____ D11 / P02_3
+;                         ||||______ D12 / P02_4
+;                         |||_______ D13 / P02_5
+;                         ||________ D14 / P02_6
+;                         |_________ D15 / P02_7
+;
+#set    PFUNC3          B'11111111              ;<<< Data lines or GIO, PFR03
+;                         ||||||||
+;                         ||||||||__ D0 / P03_0
+;                         |||||||___ D1 / P03_1
+;                         ||||||____ D2 / P03_2
+;                         |||||_____ D3 / P03_3
+;                         ||||______ D4 / P03_4
+;                         |||_______ D5 / P03_5
+;                         ||________ D6 / P03_6
+;                         |_________ D7 / P03_7
+;
+; Select if the ports are set to
+;                  1   : External bus mode, I/O for data lines or
+;                  0   : General I/O port (GIO)
+;
+; Note: Not all data-lines are supported by the different devices. Please check the data
+;       sheet.
+;
+;=========================================================================================
+; 4.8.11  Select External bus mode (Address lines) (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    PFUNC4          B'11111111              ;<<< Address lines or GIO, PFR04
+;                         ||||||||
+;                         ||||||||__ A24 / P04_0
+;                         |||||||___ A25 / P04_1
+;                         ||||||____ A26 / P04_2
+;                         |||||_____ A27 / P04_3
+;                         ||||______ A28 / P04_4
+;                         |||_______ A29 / P04_5
+;                         ||________ A30 / P04_6
+;                         |_________ A31 / P04_7
+;
+#set    PFUNC5          B'11111111              ;<<< Address lines or GIO, PFR05
+;                         ||||||||
+;                         ||||||||__ A16 / P05_0
+;                         |||||||___ A17 / P05_1
+;                         ||||||____ A18 / P05_2
+;                         |||||_____ A19 / P05_3
+;                         ||||______ A20 / P05_4
+;                         |||_______ A21 / P05_5
+;                         ||________ A22 / P05_6
+;                         |_________ A23 / P05_7
+;
+#set    PFUNC6          B'11111111              ;<<< Address lines or GIO, PFR06
+;                         ||||||||
+;                         ||||||||__ A8 / P06_0
+;                         |||||||___ A9 / P06_1
+;                         ||||||____ A10 / P06_2
+;                         |||||_____ A11 / P06_3
+;                         ||||______ A12 / P06_4
+;                         |||_______ A13 / P06_5
+;                         ||________ A14 / P06_6
+;                         |_________ A15 / P06_7
+;
+#set    PFUNC7          B'11111111              ;<<< Address lines or GIO, PFR07
+;                         ||||||||
+;                         ||||||||__ A0 / P07_0
+;                         |||||||___ A1 / P07_1
+;                         ||||||____ A2 / P07_2
+;                         |||||_____ A3 / P07_3
+;                         ||||______ A4 / P07_4
+;                         |||_______ A5 / P07_5
+;                         ||________ A6 / P07_6
+;                         |_________ A7 / P07_7
+;
+; Select if the ports are set to
+;                  1   : External bus mode, I/O for address lines or
+;                  0   : General I/O port (GIO)
+;
+; Note: Not all address-lines are supported  by the different devices.  Please check the
+;       data sheet.
+;
+;=========================================================================================
+; 4.8.12  Select External bus mode (Control signals) (only EXTBUS == ON)
+;=========================================================================================
+;
+#set    PFUNC8          B'11111111              ;<<< Control signals or GIO, PFR08
+;                         ||||||||
+;                         ||||||||__ WRX0 / P08_0
+;                         |||||||___ WRX1 / P08_1
+;                         ||||||____ WRX2 / P08_2
+;                         |||||_____ WRX3 / P08_3
+;                         ||||______ RDX / P08_4
+;                         |||_______ BGRNTX / P08_5
+;                         ||________ BRQ / P08_6
+;                         |_________ RDY / P08_7
+;
+#set    PFUNC9          B'11111111              ;<<< Control signals or GIO, PFR09
+;                         ||||||||
+;                         ||||||||__ CSX0 / P09_0
+;                         |||||||___ CSX1 / P09_1
+;                         ||||||____ CSX2 / P09_2
+;                         |||||_____ CSX3 / P09_3
+;                         ||||______ CSX4 / P09_4
+;                         |||_______ CSX5 / P09_5
+;                         ||________ CSX6 / P09_6
+;                         |_________ CSX7 / P09_7
+;
+#set    PFUNC10         B'01011111              ;<<< Control signals or GIO, PFR10
+;                         ||||||||
+;                         ||||||||__ SYSCLK or !SYSCLK / P10_0 
+;                         |||||||___ ASX / P10_1 
+;                         ||||||____ BAAX / P10_2 
+;                         |||||_____ WEX / P10_3 
+;                         ||||______ MCLKO or !MCLKO / P10_4 
+;                         |||_______ MCLKI or !MCLKI/ P10_5 
+;                         ||________ MCLKE / P10_6
+;                         |_________ - 
+;
+#set    EPFUNC10        B'00000000              ;<<< Control signals or GIO, EPFR10
+;                         ||||||||
+;                         ||||||||__ 0:SYSCLK / 1:!SYSCLK
+;                         |||||||___ - 
+;                         ||||||____ -
+;                         |||||_____ -
+;                         ||||______ 0:MCLKO / 1:!MCLKO
+;                         |||_______ 0:MCLKI / 1:!MCLKI
+;                         ||________ 0:MCLKI / 1:!MCLKI
+;                         |_________ -
+;
+;
+; Select if the ports are set to
+;                  1   : External bus mode, I/O for control lines or
+;                  0   : General I/O port (GIO)
+;
+; Note: Not all control-lines are supported  by the different devices.  Please check the
+;       data sheet.
+;
+;=========================================================================================
+; 5  Definition of Configurations
+;=========================================================================================
+;
+#set    NOCLOCK         0                       ; do not touch CKSCR register
+#set    MAINCLOCK       1                       ; select main clock 
+;                                               ; MB91461R : 1/4 of oscillation input
+;                                               ; Others:    1/2 of oscillation input
+#set    MAINPLLCLOCK    2                       ; select main clock with PLL
+#set    SUBCLOCK        3                       ; select subclock (if available)
+;
+#set    PSCLOCK_CLKB    0x00                    ; select core clock (initial)
+#set    PSCLOCK_PLL     0x10                    ; select PLL output (x)
+#set    PSCLOCK_MAIN    0x30                    ; select Main Oscillation
+;
+;=========================================================================================
+; 5.1  CLOCKSPEED == CLOCK_USER <<<
+;=========================================================================================
+; Must be configured only in the case of CLOCKSPEED is set to CLOCK_USER. Please see the 
+; corresponding application note.
+;
+#if (CLOCKSPEED == CLOCK_USER )
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; <<< Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; <<< Subclock: ON/OFF
+  #set  PLLSPEED        0x010F                  ; <<< 0x48Ch, 0x48Dh: PLLDIVM/N ; 64 MHz
+  #set  DIV_G           0x0F                    ; <<< 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x0F                    ; <<< 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; <<< 0x486h: DIV0R_B;   => /1  ; 64 MHz       
+  #set  PERCLOCK        0x03                    ; <<< 0x486h: DIV0R_P;   => /4  ; 16 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; <<< 0x487h: DIV1R_T;   => /2  ; 32 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; <<< 0x4C0h: CANPRE;    => PLLx;128 MHz
+  #set  PSDVC           0x07                    ; <<< 0x4C0h: CANPRE_DVC;=> /8  ; 16 MHz
+  #set  CANCLOCK        0x00                    ; <<< 0x4C1h: CANCKD;    
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; <<< 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; <<< 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; <<< 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC413                  ; <<< 0x7004h: FMWT;
+  #set  FLASHMWT2       0x10                    ; <<< 0x7006h: FMWT2;
+#endif  
+;
+;=========================================================================================
+; 5.2  CLOCKSPEED == NO_CLOCK
+;=========================================================================================
+;
+#if (CLOCKSPEED == NO_CLOCK )
+    #set CLOCKSOURCE       NOCLOCK 
+#endif      
+;
+;=========================================================================================
+; 5.2  CLOCKSPEED == SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == SUB_32KHZ_CPU__32KHZ_PER_32KHZ_EXT_32KHZ_CAN__2MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91463N) || (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     SUBCLOCK                ; Clocksource
+  #set  ENABLE_SUBCLOCK ON                      ; Subclock: ON/OFF
+  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;   n. a.
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  32 KHz       
+  #set  PERCLOCK        0x00                    ; 0x486h: DIV0R_P;    => /1    ;  32 KHz  
+  #set  EXTBUSCLOCK     0x00                    ; 0x487h: DIV1R_T;    => /1    ;  32 KHz  
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_MAIN            ; 0x4C0h: CANPRE;     => MAIN  ;   4 MHz
+  #set  PSDVC           0x01                    ; 0x4C0h: CANPRE_DVC; => /2    ;   2 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC100                  ; 0x7004h: FMWT; 
+  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;
+#endif 
+;
+;=========================================================================================
+; 5.3  CLOCKSPEED == MAIN__4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == MAIN_4MHZ_CPU___2MHZ_PER__1MHZ_EXT__1MHZ_CAN__2MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINCLOCK               ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;   n. a.
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;   2 MHz       
+  #set  PERCLOCK        0x01                    ; 0x486h: DIV0R_P;    => /2    ;   1 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;   1 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_MAIN            ; 0x4C0h: CANPRE;     => PLLx  ;   4 MHz
+  #set  PSDVC           0x01                    ; 0x4C0h: CANPRE_DVC; => /2    ;   2 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC100                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;  
+#endif           
+;
+;=========================================================================================
+; 5.4  CLOCKSPEED == PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU__48MHZ_PER_16MHZ_EXT_24MHZ_CAN_16MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x010B                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  48 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x0B                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  48 MHz       
+  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  16 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  24 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ;  96 MHz
+  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  16 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #if (DEVICE == MB91469G) 
+   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;
+  #else
+   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #endif    
+  #set REGULATORCTRL    0x00                    ; 0x4CFh: REGCTR;    
+   ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC201                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x00                    ; 0x7006h: FMWT2;   
+#endif        
+;
+;=========================================================================================
+; 5.5  CLOCKSPEED == PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU__64MHZ_PER_16MHZ_EXT_32MHZ_CAN_16MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x010F                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  64 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x0F                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  64 MHz       
+  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  16 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  32 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 128 MHz
+  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;  16 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;
+#endif  
+;
+;=========================================================================================
+; 5.6  CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_27MHZ_CAN_20MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0113                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  80 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x13                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  80 MHz       
+  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  20 MHz 
+  #set  EXTBUSCLOCK     0x02                    ; 0x487h: DIV1R_T;    => /3    ;  27 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 160 MHz
+  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;   8 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;
+#endif      
+;
+;=========================================================================================
+; 5.7  CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU__80MHZ_PER_20MHZ_EXT_40MHZ_CAN_20MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91461R) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0113                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  80 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x13                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  80 MHz       
+  #set  PERCLOCK        0x03                    ; 0x486h: DIV0R_P;    => /4    ;  20 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  40 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 160 MHz
+  #set  PSDVC           0x07                    ; 0x4C0h: CANPRE_DVC; => /8    ;   8 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #set  REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;
+#endif      
+;
+;=========================================================================================
+; 5.8  CLOCKSPEED == PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU__96MHZ_PER_16MHZ_EXT_48MHZ_CAN_16MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91464A) || (DEVICE == MB91465K) || (DEVICE == MB91463N) ||\
+      (DEVICE == MB91461R) || (DEVICE == MB91467R)
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0117                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  96 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x17                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  64 MHz       
+  #set  PERCLOCK        0x05                    ; 0x486h: DIV0R_P;    => /6    ;  16 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  32 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 192 MHz
+  #set  PSDVC           0x0B                    ; 0x4C0h: CANPRE_DVC; => /12   ;  16 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #if (DEVICE == MB91469G) 
+   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;
+  #else
+   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #endif    
+  #set REGULATORCTRL    0x00                    ; 0x4CFh: REGCTR;    
+  ; Memory Controller
+  #set FLASHCONTROL     0x032                   ; 0x7002h: FCHCR;
+  #set FLASHREADT       0xC413                  ; 0x7004h: FMWT;
+  #set FLASHMWT2        0x10                    ; 0x7006h: FMWT2;
+#endif        
+;
+;=========================================================================================
+; 5.9  CLOCKSPEED == PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_4MHZ__CPU_100MHZ_PER_20MHZ_EXT_50MHZ_CAN_20MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91464A) || (DEVICE == MB91465K) || (DEVICE == MB91463N) ||\
+      (DEVICE == MB91461R) || (DEVICE == MB91467R) || (DEVICE == MB91467D)
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0118                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ; 100 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x17                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ; 100 MHz       
+  #set  PERCLOCK        0x04                    ; 0x486h: DIV0R_P;    => /5    ;  20 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  50 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 200 MHz
+  #set  PSDVC           0x09                    ; 0x4C0h: CANPRE_DVC; => /10   ;  20 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  #if (DEVICE == MB91469G) 
+   #set REGULATORSEL    0x36                    ; 0x4CEh: REGSEL;
+  #else
+   #set REGULATORSEL    0x06                    ; 0x4CEh: REGSEL;
+  #endif    
+  #set  REGULATORCTRL   0x00                    ; 0x4CFh: REGCTR;    
+  ; Memory Controller
+  #set  FLASHCONTROL    0x032                   ; 0x7002h: FCHCR;
+  #set  FLASHREADT      0xC413                  ; 0x7004h: FMWT;
+  #set  FLASHMWT2       0x10                    ; 0x7006h: FMWT2;
+#endif        
+;
+;=========================================================================================
+; 5.10  CLOCKSPEED == PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_10MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91464A) || (DEVICE == MB91467B) || (DEVICE == MB91467C) ||\
+      (DEVICE == MB91467D) || (DEVICE == MB91469G) || (DEVICE == MB91465K) ||\
+      (DEVICE == MB91463N) || (DEVICE == MB91467R) || (DEVICE == MB91465X) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0105                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ;  60 MHz
+  #set  DIV_G           0x0B                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x1F                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  60 MHz       
+  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  20 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  30 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 120 MHz
+  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  20 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  ; -
+  ; Memory Controller
+  ; -
+#endif        
+;
+;=========================================================================================
+; 5.11  CLOCKSPEED == PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ 
+;=========================================================================================
+;
+#if (CLOCKSPEED == PLL_20MHZ_CPU__60MHZ_PER_20MHZ_EXT_30MHZ_CAN_20MHZ )
+;
+; Start restriction; Maximum frequency
+  #if (DEVICE == MB91464A) || (DEVICE == MB91467B) || (DEVICE == MB91467C) ||\
+      (DEVICE == MB91467D) || (DEVICE == MB91469G) || (DEVICE == MB91465K) ||\
+      (DEVICE == MB91463N) || (DEVICE == MB91467R) || (DEVICE == MB91465X) 
+     #error: Frequency is not supported by this device.
+  #endif 
+; End restriction
+;
+  #set  CLOCKSOURCE     MAINPLLCLOCK            ; Clocksource
+  #set  ENABLE_SUBCLOCK OFF                     ; Subclock: ON/OFF
+  #set  PLLSPEED        0x0102                  ; 0x48Ch, 0x48Dh: PLLDIVM/N    ; 60 MHz
+  #set  DIV_G           0x0F                    ; 0x48Eh: PLLDIVG; 
+  #set  MUL_G           0x1F                    ; 0x48Fh: PLLMULG;     
+  ; Clock Divider
+  #set  CPUCLOCK        0x00                    ; 0x486h: DIV0R_B;    => /1    ;  60 MHz       
+  #set  PERCLOCK        0x02                    ; 0x486h: DIV0R_P;    => /3    ;  20 MHz 
+  #set  EXTBUSCLOCK     0x01                    ; 0x487h: DIV1R_T;    => /2    ;  30 MHz 
+  ; CAN Clock
+  #set  PSCLOCKSOURCE   PSCLOCK_PLL             ; 0x4C0h: CANPRE;     => PLLx  ; 120 MHz
+  #set  PSDVC           0x05                    ; 0x4C0h: CANPRE_DVC; => /6    ;  20 MHz
+  #set  CANCLOCK        0x00                    ; 0x4C1h: CANCKD; all CAN Clocks enabled
+  ; Voltage Regulator 
+  ; -
+  ; Memory Controller
+  ; -
+#endif  
+;      
+;=========================================================================================
+; 6  Section and Data Declaration
+;=========================================================================================
+
+        .export __start             
+        .import _main
+        .import _RAM_INIT
+        .import _ROM_INIT
+        
+#if CLIBINIT == ON    
+        .export __exit 
+        .import _exit
+        .import __stream_init
+#endif
+
+#if CPLUSPLUS == ON
+        .export __abort
+        .import ___call_dtors
+        .import _atexit
+#endif
+;=========================================================================================
+; 6.1  Define Stack Size
+;=========================================================================================
+ .SECTION  SSTACK, STACK, ALIGN=4
+#if STACK_RESERVE == ON
+        .EXPORT         __systemstack, __systemstack_top
+ __systemstack:
+        .RES.B          STACK_SYS_SIZE
+ __systemstack_top: 
+#endif
+        .SECTION  USTACK, STACK, ALIGN=4
+#if STACK_RESERVE == ON
+         .EXPORT        __userstack, __userstack_top
+ __userstack:
+        .RES.B          STACK_USR_SIZE
+ __userstack_top:
+#endif
+;=========================================================================================
+; 6.2  Define Sections
+;=========================================================================================
+        .section        DATA,  data,  align=4
+        .section        INIT,  data,  align=4
+        .section        IRAM,  code,  align=4
+        .section        CONST, const, align=4
+        .section        INTVECT, const, align=4 
+        
+#if I_RAM 
+        .import _RAM_IRAM
+        .import _ROM_IRAM
+#endif
+                    
+#if (DEVICE != MB91461R)
+    #if (DEVICE == MB91469G)
+        .section        SECURITY_VECTORS, code, locate = 0x248000
+    #else 
+        .section        SECURITY_VECTORS, code, locate = 0x148000
+    #endif
+    
+    #if (BOOT_FLASH_SEC == OFF)        
+        .data.w 0xFFFFFFFF
+        .data.w 0xFFFFFFFF
+        .data.w 0xFFFFFFFF
+        .data.w 0xFFFFFFFF       
+    #else
+        .res.w          4
+    #endif         
+#endif     
+   
+#if CPLUSPLUS == ON
+        .section        EXT_CTOR_DTOR, const, align=4  ; C++ constructors
+#endif        
+       
+;-----------------------------------------------------------------------------------------
+; MACRO Clear RC Watchdog
+;-----------------------------------------------------------------------------------------
+#macro  ClearRCwatchdog
+        LDI             #0x4C7,R7               ; clear RC watchdog
+        BANDL           #0x7,@R7
+#endm
+;-----------------------------------------------------------------------------------------
+; MACRO WAIT_LOOP
+;-----------------------------------------------------------------------------------------
+#macro wait_loop loop_number
+#local _wait64_loop
+        LDI             #loop_number, R0
+_wait64_loop:
+        ADD             #-1, R0
+        BNE             _wait64_loop
+#endm
+        .section        CODE, code, align=4
+        .section        CODE_START, code, align=4
+
+
+;=========================================================================================
+; 7.  S T A R T 
+;=========================================================================================
+__start:                                        ; start point   
+startnop: 
+        NOP       
+;   
+        ANDCCR          #0xEF                   ; disable interrupts   
+        STILM           #LOW_PRIOR              ; set interrupt level to low prior
+        ClearRCwatchdog                         ; clear harware watchdog
+
+;=========================================================================================
+; 7.1  Initialise Stack Pointer and Table Base Register
+;=========================================================================================
+#if STACKUSE == SYSSTACK       
+        ORCCR           #0x20
+        LDI             #__userstack_top, SP    ; initialize SP
+        ANDCCR          #0xDF
+        LDI             #__systemstack_top, SP  ; initialize SP
+#endif
+
+#if STACKUSE == USRSTACK
+        ANDCCR          #0xDF
+        LDI             #__systemstack_top, SP  ; initialize SP
+        ORCCR           #0x20
+        LDI             #__userstack_top, SP    ; initialize SP
+#endif
+
+        LDI             #INTVECT, R0            ; set Table Base
+smd_tbr: 
+        MOV             R0, TBR         
+
+#if (CLOCKSOURCE != NOCLOCK)                                          
+;=========================================================================================
+; 7.2  Check for CSV reset and set CSV
+;=========================================================================================
+; Start restriction; No clock supervisor (CSV)
+#if (DEVICE != MB91461R) && (DEVICE != MB91467R) && (DEVICE != MB91463N)
+; End restriction
+        LDI:20          #0x04AD, R0             ; CSVCR
+        BORL            #0x8, @R0               ; Enable Main Osc CSV
+        BTSTH           #0x4, @R0               ; Check for Main Osc missing
+        BEQ             NoMAINCSVreset          ; Main osc available -> branch 
+                                                ;   to NoCSVreset
+        BANDL           #0x7, @R0               ; Disable Main Osc CSV
+        
+        LDI             #noClockStartup, R0     ; Main Clock missing -> no
+        JMP             @R0                     ; clock startup
+                                                
+NoMAINCSVreset: 
+
+
+        BORL            #0x4, @R0               ; Enable Sub Osc CSV
+        BTSTH           #0x2, @R0               ; Check for Sub Osc missing
+        BEQ             NoSUBCSVreset           ; Sub osc available -> branch 
+                                                ;   to NoCSVreset
+        BANDL           #0xB, @R0               ; Disable Sub Osc SCSV
+#if (CLOCKSOURCE == SUBCLOCK)
+        LDI             #noClockStartup, R0     ; Sub Clock missing -> no
+        JMP             @R0                     ; clock startup
+#endif                                                
+NoSUBCSVreset:       
+#endif        
+;=========================================================================================
+; 7.3  Check Clock Condition
+;=========================================================================================
+        LDI             #0x484, R0              ; Check for Default Values
+        LDI             #0x0F, R1               
+        ANDB            R1, @R0
+        BEQ             clock_startup 
+
+;=========================================================================================
+; 7.4  Restore Default Settings after Reset
+;=========================================================================================
+;=========================================================================================
+; 7.4.1  Disable Clock Modulator
+;=========================================================================================
+        LDI             #0x04BB, R0             ; Clock Modulator Control Reg
+        BANDL           #0xD, @R0               ; Disable Frequency modulation
+FMODwait:        
+        BTSTL           #8, @R0                 ; Wait until Frequency modulation
+        BNE             FMODwait                ; is disabled
+        
+        BANDL           #0xE, @R0               ; Power down clock modulator
+
+;=========================================================================================
+; 7.4.2  Check if running on Sub Clock, change to Main Clock
+;=========================================================================================
+        LDI:20          #0x0484,R12             ; Check if running on sub clock
+        LDUB            @R12,R0
+        LDI:8           #0x3,R1
+        AND             R1,R0
+        CMP             #0x3,R0
+        BNE             notOnSubClock
+        
+        LDI:20          #0x04CC,R12             ; Check if Main Clock is stopped
+        BTSTL           #1, @R12
+        BEQ             mainNotStopped
+
+        BANDL           #0xE, @R12              ; Start Main Oscillation
+                        
+        LDI             #0x4C8, R0              ; Main Stabilisation Wait Time
+        LDI             #0x04, R1               ; 32.7 ms
+        AND             R1, @R0  
+        BORH            #0x02, @R0      
+        
+        mainStabTime:                           ; Wait for stabilisation time
+        ClearRCwatchdog                         ; clear harware watchdog
+        BTSTH           #8, @R0
+        BEQ             mainStabTime
+        LDI             #0x0, R1
+        STB             R1, @R0
+
+mainNotStopped:        
+        LDI:20          #0x0484, R12            ; disable sub clock as source
+        BANDL           #0xD, @R12              ; Clock source = 0x01 (Main/2)  
+                                                       
+notOnSubClock:
+;=========================================================================================
+; 7.4.3  Disable Sub Clock
+;=========================================================================================
+#if ENABLE_SUBCLOCK != ON
+        LDI             #0x0484, R0             ; Clock source control reg CLKR
+        BANDL           #0x7, @R0               ; Disable PLL
+#endif       
+
+;=========================================================================================
+; 7.4.4  Check if running on PLL, Gear Down PLL
+;=========================================================================================
+        LDI:20          #0x0484,R12             ; Check if running on PLL
+        LDUB            @R12,R0
+        LDI:8           #0x3,R1
+        AND             R1,R0
+        CMP             #0x2,R0
+        BNE             notOnPll
+                    
+        LDI:20          #0x0490, R11            ; clear flags  
+        LDI:8           #0x0,R1        
+        STB             R1, @R11
+        LDI             #0x04,R1
+        STB             R1, @R11                ; Set Flag for Simulator; no Effekt on
+                                                ; Emulator      
+
+        BANDL           #0xC, @R12              ; disable PLL as clock source  
+                                                ; Clock Source = 0x00 (Main/2)
+                                                    
+        LDI:20          #0x048E,R12             ; check if DivG != 0
+        LDUB            @R12, R0
+        LDI:8           #0xFF,R1
+        AND             R1,R0
+        BEQ             notOnPll
+                                                                                          
+gearDownLoop:    
+        ClearRCwatchdog                         ; clear harware watchdog
+        BTSTL           #4, @R11                ; Gear Down
+        BEQ             gearDownLoop            ; 
+        LDI             #0x00,R1                ; Clear Flags
+        STB             R1, @R11                ;       
+        
+notOnPll:
+;=========================================================================================
+; 7.4.5  Disable PLL
+;=========================================================================================
+        LDI             #0x0484, R0             ; Clock source control reg CLKR
+        BANDL           #0xB, @R0               ; Disable PLL
+        
+;=========================================================================================
+; 7.4.6  Set to Main Clock
+;=========================================================================================
+        LDI:20          #0x0484,R12             ; Check if running on PLL
+        BANDL           #0xC, @R12              ; disable PLL as clock source  
+                                                ; Clock Source = 0x00 (Main/2)
+
+clock_startup:
+;=========================================================================================
+; 7.5  Set Memory Controller
+;=========================================================================================
+; Start restriction; No embedded flash
+#if DEVICE != MB91461R
+; End restriction
+        LDI             #0x7002, R1             ; FLASH Controller Reg.
+        LDI             #FLASHCONTROL, R2       ; Flash Controller Settings
+        STH             R2, @R1                 ; set register
+        LDI             #0x7004, R1             ; FLASH Memory Wait Timing Reg.
+        LDI             #FLASHREADT, R2         ; wait settings
+        STH             R2, @R1                 ; set register
+        LDI             #0x7006, R1             ; FLASH Memory Wait Timing Reg.
+        LDI             #FLASHMWT2, R2          ; wait settings
+        STB             R2, @R1                 ; set register               
+#endif                
+        ClearRCwatchdog   
+                                                       
+;=========================================================================================
+; 7.6  Clock startup
+;=========================================================================================
+;=========================================================================================
+; 7.6.1  Set Voltage Regulator Settings
+;=========================================================================================
+; Start restriction; No regulator settings
+#if DEVICE != MB91461R
+; End restriction
+        LDI             #0x04CF, R0             ; REGCTR
+        LDI             #REGULATORCTRL, R1
+        STB             R1, @R0
+
+        LDI             #0x04CE, R0             ; REGSEL
+        LDI             #REGULATORSEL, R1
+        STB             R1, @R0
+#endif
+
+;=========================================================================================
+; 7.6.2  Power on Clock Modulator - Clock Modulator Part I
+;=========================================================================================
+#if CLOMO == ON 
+        LDI             #0x04BB, R0             ; Clock Modulator Control Reg
+        LDI             #0x11, R1               ; Load value to Power on CM
+        ORB             R1, @R0                 ; Power on clock modulaor
+#endif
+
+;=========================================================================================
+; 7.6.3  Set CLKR Register w/o Clock Mode
+;=========================================================================================
+; Set Clock source (Base Clock) for the three clock tree selections
+; This select Base clock is used to select afterwards the 3
+; Clocks for the diffenrent internal trees.
+; When PLL is used, first pll multiplication ratio is set and PLL is
+; enabled. After waiting the PLL stabilisation time via timebase
+; timer, PLL clock is selected as clock source. 
+        LDI             #0x048C, R0             ; PLL Cntl Reg. PLLDIVM/N
+        LDI:20          #PLLSPEED, R1
+        STH             R1, @R0
+
+        LDI             #0x048E, R0             ; PLL Cntl Reg. PLLDIVG
+        LDI             #DIV_G, R1
+        STB             R1, @R0
+
+        LDI             #0x048F, R0             ; PLL Cntl Reg. PLLMULG
+        LDI             #MUL_G, R1
+        STB             R1, @R0
+
+;=========================================================================================
+; 7.6.4  Start PLL 
+;=========================================================================================
+#if ( ( CLOCKSOURCE == MAINPLLCLOCK ) || ( PSCLOCKSOURCE == PSCLOCK_PLL ) )
+        LDI             #0x0484, R0             ; Clock source control reg CLKR
+        LDI             #0x04, R1               ; Use PLL x1, enable PLL 
+        ORB             R1, @R0                 ; store data to CLKR register
+#endif
+       
+       
+#if ENABLE_SUBCLOCK == ON
+        LDI             #0x0484, R0             ; Clock source control reg CLKR
+        LDI             #0x08, R1               ; enable subclock operation
+        ORB             R1, @R0                 ; store data to CLKR register
+        LDI             #0x4CA, R0              ; Sub Clock oszilation 
+        LDI             #0x00, R1               ; stabilitsation time = 32 ms
+        AND             R1, @R0  
+        BORH            #0x02, @R0      
+#endif      
+      
+;=========================================================================================
+; 7.6.5  Wait for PLL oscillation stabilisation
+;=========================================================================================
+#if ((CLOCKSOURCE==MAINPLLCLOCK)||(PSCLOCKSOURCE==PSCLOCK_PLL))
+        LDI             #0x0482, R12            ; TimeBaseTimer TBCR
+        LDI             #0x00, R1               ; set 1024 us @ 2 MHz 
+        STB             R1, @R12
+
+        BANDH           #7, @R12                ; clear interrupt flag
+        
+        LDI             #0x0483, R0             ; clearTimeBaseTimer CTBR
+        LDI             #0xA5, R1                 
+        STB             R1, @R0
+        LDI             #0x5A, R1                 
+        STB             R1, @R0
+        
+        BANDH           #7, @R12                ; clear interrupt flag
+        BORH            #8, @R12                ; set interrupt flag for simulator
+
+PLLwait:        
+        ClearRCwatchdog                         ; clear harware watchdog
+        BTSTH           #8, @R12
+        BEQ             PLLwait
+#endif
+
+;=========================================================================================
+; 7.6.6  Set clocks 
+;=========================================================================================
+;=========================================================================================
+; 7.6.6.1  Set CPU and peripheral clock 
+;=========================================================================================
+; CPU and peripheral clock are set in one register
+        LDI             #0x0486, R2             ; Set DIVR0 (CPU-clock (CLKB)  
+        LDI             #((CPUCLOCK << 4) + PERCLOCK), R3 ; Load CPU clock setting
+        STB             R3, @R2               
+;=========================================================================================
+; 7.6.6.2  Set External Bus interface clock
+;=========================================================================================
+; set External Bus clock
+; Be aware to do smooth clock setting, to avoid wrong clock setting
+; Take care, always write 0 to the lower 4 bits of DIVR1 register
+        LDI             #0x0487, R2             ; Set DIVR1  
+        LDI             #(EXTBUSCLOCK << 4), R3 ; Load Peripheral clock setting
+        STB             R3, @R2 
+        
+;=========================================================================================
+; 7.6.6.3  Set CAN clock prescaler
+;=========================================================================================
+; Set CAN Prescaler, only clock relevant parameter 
+        LDI             #0x04C0, R0             ; Set CAN ClockParameter Register
+        LDI             #(PSCLOCKSOURCE + PSDVC), R1     ; Load Divider
+        STB             R1, @R0                          ; Set Divider
+; enable CAN clocks
+        LDI             #0x04c1, R0             ; Set CAN Clock enable Register
+        LDI             #CANCLOCK, R1           ; Load CANCLOCK
+        STB             R1, @R0                 ; set CANCLOCK
+
+;=========================================================================================
+; 7.6.6.4  Switch Main Clock Mode
+;=========================================================================================
+#if CLOCKSOURCE == MAINCLOCK
+
+;=========================================================================================
+; 7.6.6.5  Switch Subclock Mode
+;=========================================================================================
+#elif ( (CLOCKSOURCE == SUBCLOCK) )
+    #if ENABLE_SUBCLOCK == ON
+        LDI             #0x4CA, R12
+subStabTime:        
+        ClearRCwatchdog                         ; clear harware watchdog
+        BTSTH           #8, @R12                ; wait until sub clock stabilisation
+        BEQ             subStabTime             ; time is over
+        LDI             #0x0, R1
+        STB             R1, @R12
+
+        LDI             #0x0484, R0             ; Clock source control reg CLKR
+        LDI             #0x01, R1               ; load value to select main clock
+        ORB             R1, @R0                 ; enable main clock (1/2 external)        
+        LDI             #0x03, R1               ; load value to select subclock
+        ORB             R1, @R0                 ; enable subclock as clock source       
+    #else
+        #error: Wrong setting! The clock source is subclock, but the subclock is disabled.
+    #endif
+
+;=========================================================================================
+; 7.6.7  Switch to PLL Mode
+;=========================================================================================
+#elif ( (CLOCKSOURCE == MAINPLLCLOCK) )
+
+#if (DIV_G != 0x00)
+        LDI             #0x0490, R0             ; PLL Ctrl Register   
+        LDI             #0x00,R1
+        STB             R1, @R0                 ; Clear Flag
+        LDI             #0x01,R1
+        STB             R1, @R0                 ; Set Flag for Simulator; no Effekt on
+#endif                                                ; Emulator
+        LDI             #0x0484, R3             ; Clock source control reg CLKR
+        BORL            #0x2, @R3               ; enable PLL as clock source                                               
+                                                
+#if (DIV_G != 0x00)                                                
+gearUpLoop:    
+        ClearRCwatchdog                         ; clear harware watchdog
+        LDUB            @R0, R2                 ; LOAD PLLCTR to R2
+        AND             R1, R2                  ; GRUP, counter reach 0
+        BEQ             gearUpLoop
+
+        LDI             #0x00,R1
+        STB             R1, @R0                 ; Clear Gear-Up Flag
+#endif         
+     
+#endif
+
+;=========================================================================================
+; 7.6.8  Enable Frequncy Modulation - Clock Modulator Part II
+;=========================================================================================
+#if CLOMO == ON                                 ; Only applicable if Modulator is on
+        LDI             #0x04B8, R0             ; Clock Modulation Parameter Reg
+        LDI             #CMPR, R1               ; Load CMP value
+        STH             R1, @R0                 ; Store CMP value in CMPR
+
+        LDI             #0x04BB, R0             ; Clock Modulator Control Reg
+        LDI             #0x13, R1               ; Load value to FM on CM
+        ORB             R1, @R0                 ; FM on 
+#endif
+
+#endif
+noClockStartup:
+
+;=========================================================================================
+; 7.7  Set BusInterface
+;=========================================================================================
+; Start restriction; No ext. bus interface
+#if (DEVICE != MB91464A) && (DEVICE != MB91467C) && (DEVICE != MB91465K) &&  \
+    (DEVICE != MB91463N) && (DEVICE != MB91465X)
+; End restriction
+#if (EXTBUS == ON) 
+;=========================================================================================
+; 7.7.1  Disable all CS
+;=========================================================================================
+; Start restriction; Flashless device
+#if(DEVICE != MB91461R)
+; End restriction
+        LDI             #0x0680, R3             ; chip select enable register CSER
+        LDI             #(0x00), R2             ; load disable settings                                                    
+smd_cs:                                                    
+        ANDB            R2, @R3                 ; set register          
+#endif        
+
+;=========================================================================================
+; 7.7.2  Clear TCR Register
+;=========================================================================================
+        LDI             #0x0683, R1             ; Pin/Timing Control Register TCR
+        BORH            #0x6,@R1                ; load timing settings 
+
+;=========================================================================================
+; 7.7.3  Set CS0
+;=========================================================================================
+#if CS0
+        LDI             #0x0640, R1             ; area select reg ASR0, ACR0      
+        LDI             #(AREASEL0<<16)+CONFIGCS0, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x660, R1              ; area wait register awr0
+        LDI             #WAITREG0, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+
+;=========================================================================================
+; 7.7.4  Set CS1  
+;=========================================================================================
+#if CS1  
+        LDI             #0x0644, R1             ; area select reg ASR1, ACR1      
+        LDI             #(AREASEL1<<16)+CONFIGCS1, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+
+        LDI             #0x662, R1              ; area wait register awr1
+        LDI             #WAITREG1, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+smd_cs_mb91461r:
+;=========================================================================================
+; 7.7.5  Set CS2  
+;=========================================================================================
+#if CS2
+        LDI             #0x0648, R1             ; area select reg ASR2, ACR2      
+        LDI             #(AREASEL2<<16)+CONFIGCS2, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x664, R1              ; area wait register awr2
+        LDI             #WAITREG2, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+;=========================================================================================
+; 7.7.6  Set CS3  
+;=========================================================================================
+#if CS3
+        LDI             #0x064C, R1             ; area select reg ASR3, ACR3      
+        LDI             #(AREASEL3<<16)+CONFIGCS3, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x666, R1              ; area wait register awr3
+        LDI             #WAITREG3, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+;=========================================================================================
+; 7.7.7  Set CS4  
+;=========================================================================================
+#if CS4
+        LDI             #0x0650, R1             ; area select reg ASR4, ACR4      
+        LDI             #(AREASEL4<<16)+CONFIGCS4, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x668, R1              ; area wait register awr4
+        LDI             #WAITREG4, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+;=========================================================================================
+; 7.7.8  Set CS5  
+;=========================================================================================
+#if CS5
+        LDI             #0x0654, R1             ; area select reg ASR5, ACR5      
+        LDI             #(AREASEL5<<16)+CONFIGCS5, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x66A, R1              ; area wait register awr5
+        LDI             #WAITREG5, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+;=========================================================================================
+; 7.7.9  Set CS6
+;=========================================================================================
+#if (CS6)  
+        LDI             #0x0658, R1             ; area select reg ASR6, ACR6      
+        LDI             #(AREASEL6<<16)+CONFIGCS6, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x66C, R1              ; area wait register awr6
+        LDI             #WAITREG6, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif
+;=========================================================================================
+; 7.7.10  Set CS7  
+;=========================================================================================
+#if CS7
+        LDI             #0x065C, R1             ; area select reg ASR7, ACR7     
+        LDI             #(AREASEL7<<16)+CONFIGCS7, R0  ; load settings
+        ST              R0, @R1                 ; set registers
+        LDI             #0x66E, R1              ; area wait register awr7
+        LDI             #WAITREG7, R2           ; wait settings
+        STH             R2, @R1                 ; set register
+#endif             
+;=========================================================================================
+; 7.7.11  Set special SDRAM config register  
+;=========================================================================================
+#if (SDRAM)
+        LDI             #0x670, R1              ; SDRAM memory config register
+        LDI             #MEMCON, R2             ; wait settings
+        STB             R2, @R1                 ; set register
+#endif
+
+;=========================================================================================
+; 7.7.12  set Port Function Register
+;=========================================================================================
+;=========================================================================================
+; 7.7.12.1  set PFR00 Register. External bus mode (D[24-31]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D80, R1             ; Port Function Register 0, (PFR00)
+        LDI             #PFUNC0, R0             ; load port settings 
+        STB             R0, @R1                 ; set register    
+;=========================================================================================
+; 7.7.12.2  set PFR01 Register. External bus mode (D[16-23]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D81, R1             ; Port Function Register 1, (PFR01)
+        LDI             #PFUNC1, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.3  set PFR02 Register. External bus mode (D[8-15]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D82, R1             ; Port Function Register 2, (PFR02)
+        LDI             #PFUNC2, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.4  set PFR03 Register. External bus mode (D[0-7]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D83, R1             ; Port Function Register 3, (PFR03)
+        LDI             #PFUNC3, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.5  set PFR04 Register. External bus mode (Adr[24-31]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D84, R1             ; Port Function Register 4, (PFR04)
+        LDI             #PFUNC4, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.6  set PFR05 Register. External bus mode (Adr[16-23]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D85, R1             ; Port Function Register 5, (PFR05)
+        LDI             #PFUNC5, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.7  set PFR06 Register. External bus mode (Adr[8-15]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D86, R1             ; Port Function Register 6, (PFR06)
+        LDI             #PFUNC6, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.8  set PFR07 Register. External bus mode (Adr[0-7]) or General purpose port
+;=========================================================================================
+        LDI             #0x0D87, R1             ; Port Function Register 7, (PFR07)
+        LDI             #PFUNC7, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.9  set PFR08 Register. External bus mode (Control Signals) or GIO port
+;=========================================================================================
+        LDI             #0x0D88, R1             ; Port Function Register 8, (PFR08)
+        LDI             #PFUNC8, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.10  set PFR09 Register. External bus mode (Control Signals) or GIO port
+;=========================================================================================
+        LDI             #0x0D89, R1             ; Port Function Register 9, (PFR09)
+        LDI             #PFUNC9, R0             ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.11  set PFR10 Register. External bus mode (Control Signals) or GIO port
+;=========================================================================================
+        LDI             #0x0D8A, R1             ; Port Function Register 10, (PFR10)
+        LDI             #PFUNC10, R0            ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.12.12  set EPFR10 Register. External bus mode (Control Signals) or GIO port
+;=========================================================================================
+        LDI             #0x0DCA, R1             ; Extended PFR 10, (EPFR10)
+        LDI             #EPFUNC10, R0           ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.13  Set TCR Register
+;=========================================================================================
+        LDI             #0x0683, R1             ; Pin/Timing Control Register TCR
+        LDI             #TIMECONTR, R0          ; load timing settings 
+        STB             R0, @R1                 ; set register
+;=========================================================================================
+; 7.7.14  Enable CACHE for selected CS
+;=========================================================================================
+        LDI             #0x0681, R3             ; chip select enable register CSER
+        LDI             #CHEENA, R2 
+        ORB             R2, @R3      
+;=========================================================================================
+; 7.7.15 set SDRAM  Referesh Control Register
+;=========================================================================================
+#if (SDRAM)
+        LDI             #0x0684, R1             ; Refresh Control Register RCR
+        LDI             #REFRESH, R0            ; load refresh settings 
+        STH             R0, @R1                 ; set register    
+        LDI             #0x0008, R2
+        OR              R2, R0                  ; Set PON bit to 1     
+        STH             R0, @R1                 ; set register 
+#endif
+;=========================================================================================
+; 7.7.16  Enable used CS
+;=========================================================================================
+        LDI             #0x0680, R3             ; chip select enable register CSER
+        LDI             #ENACSX, R2 
+; Start restriction; Flashless device
+#if (DEVICE == MB91461R)
+; End restriction
+emu_sram_cs_mb91461r:    
+        ANDB            R2, @R3                 ; set register
+#else    
+        ORB             R2, @R3
+#endif   
+;=========================================================================================
+; 7.7.17  I-cache on/off
+;=========================================================================================
+; Start restriction; No cache
+#if (DEVICE == MB91461R) || (DEVICE == MB91469G) || (DEVICE == others)         
+; End restriction
+    #if CACHE
+        #if CACHE_SIZE  == C1024
+        LDI             #0x03C7, R1             ; Cache size register ISIZE
+        LDI             #0x00, R2
+        STB             R2, @R1
+        LDI             #0x03E7, R1             ; Cache control reg   ICHCR
+        LDI             #0x07, R2               ; Release entry locks, flush and enable 
+        STB             R2, @R1                 ; cache  
+        #elif CACHE_SIZE  == C2048
+        LDI             #0x03C7, R1             ; Cache size register ISIZE
+        LDI             #0x01, R2
+        STB             R2, @R1
+        LDI             #0x03E7, R1             ; Cache control reg   ICHCR
+        LDI             #0x07, R2               ; Release entry locks, flush and enable 
+        STB             R2, @R1                 ; cache
+        #elif CACHE_SIZE  == C4096
+        LDI             #0x03C7, R1             ; Cache size register ISIZE
+        LDI             #0x02, R2
+        STB             R2, @R1
+        LDI             #0x03E7, R1             ; Cache control reg   ICHCR
+        LDI             #0x07, R2               ; Release entry locks, flush and enable 
+        STB             R2, @R1                 ; cache
+        #else    
+        #error: Wrong Cache size selected!
+        #endif          
+     #else
+        LDI             #0x03E7, R1             ; Cache control reg   ICHCR
+        LDI             #0x06, R2               ; Release entry locks, flush and disable
+        STB             R2, @R1                 ; cache
+    #endif
+#endif
+#elif (EXTBUS == OFF) 
+;=========================================================================================
+; 7.7.18  set Port Function Register to general as I/O-Port
+;=========================================================================================
+;=========================================================================================
+; 7.7.18.1  set PFR00 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D80, R1             ; Port Function Register 0, (PFR00)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register    
+;=========================================================================================
+; 7.7.18.2  set PFR01 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D81, R1             ; Port Function Register 1, (PFR01)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.3  set PFR02 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D82, R1             ; Port Function Register 2, (PFR02)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.4  set PFR03 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D83, R1             ; Port Function Register 3, (PFR03)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.5  set PFR04 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D84, R1             ; Port Function Register 4, (PFR04)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.6  set PFR05 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D85, R1             ; Port Function Register 5, (PFR05)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.7  set PFR06 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D86, R1             ; Port Function Register 6, (PFR06)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.8  set PFR07 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D87, R1             ; Port Function Register 7, (PFR07)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.9  set PFR08 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D88, R1             ; Port Function Register 8, (PFR08)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.10  set PFR09 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D89, R1             ; Port Function Register 9, (PFR09)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.11  set PFR10 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0D8A, R1             ; Port Function Register 10, (PFR10)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+; 7.7.18.12  set EPFR10 Register. External bus mode as General purpose port
+;=========================================================================================
+        LDI             #0x0DCA, R1             ; Extended PFR10, (EPFR10)
+        LDI             #0x00, R0               ; load port settings 
+        STB             R0, @R1                 ; set register 
+;=========================================================================================
+
+#elif (EXTBUS == DEFAULT)
+        NOP
+smd_cs_mb91461r:
+emu_sram_cs_mb91461r:
+smd_cs:
+#endif                                          ; #endif (EXTBUS)
+#endif                                          ; #endif (excl. devices)
+        ClearRCwatchdog
+
+;=========================================================================================
+; 7.8  Copy code from Flash to I-RAM 
+;=========================================================================================
+#if I_RAM == ON
+        LDI             #_RAM_IRAM, R0
+        LDI             #_ROM_IRAM, R1
+        LDI             #sizeof(IRAM), R13
+        CMP             #0, R13
+        BEQ             copy_iram_end
+copy_iram1: 
+        ADD             #-1, R13
+        LDUB            @(R13, R1), R12
+        BNE:D           copy_iram1
+        STB             R12, @(R13, R0)
+copy_iram_end: 
+        ClearRCwatchdog
+#endif
+
+;=========================================================================================
+; 7.9  Fill stacks
+;=========================================================================================
+#if STACK_FILL == ON
+        LDI             #STACK_PATTERN, R0
+        LDI             #SSTACK, R1
+        LDI             #sizeof(SSTACK), R2
+        CMP             #0, R2
+        BEQ:D           fill_sstack_end
+        MOV             R2, R13
+        LDI             #3, R12
+        AND             R2, R12
+        BEQ:D           fill_sstack2
+        MOV             R2, R3
+        SUB             R12, R3
+        LDI             #0x3, R4
+        SUB             R12, R4
+        LSL             #0x3, R4 
+        LDI             #STACK_PATTERN, R5
+        LSR             R4, R5 
+        LDI             #0x8, R4
+fill_sstack1:
+        ADD             #-1, R13
+        LSR             R4, R5 
+        CMP             R3, R13
+        BHI:D           fill_sstack1
+        STB             R5, @(R13, R1)
+        CMP             #0, R3
+        BEQ:D           fill_sstack_end
+fill_sstack2:
+        ADD             #-4, R13
+        BGT:D           fill_sstack2
+        ST              R0, @(R13, R1)
+fill_sstack_end:
+
+        LDI             #STACK_PATTERN, R0
+        LDI             #USTACK, R1
+        LDI             #sizeof(USTACK), R2
+        CMP             #0, R2
+        BEQ:D           fill_ustack_end
+        MOV             R2, R13
+        LDI             #3, R12
+        AND             R2, R12
+        BEQ:D           fill_ustack2
+        MOV             R2, R3
+        SUB             R12, R3
+        LDI             #0x3, R4
+        SUB             R12, R4
+        LSL             #0x3, R4 
+        LDI             #STACK_PATTERN, R5
+        LSR             R4, R5 
+        LDI             #0x8, R4
+fill_ustack1:
+        ADD             #-1, R13
+        LSR             R4, R5 
+        CMP             R3, R13
+        BHI:D           fill_ustack1
+        STB             R5, @(R13, R1)
+        CMP             #0, R3
+        BEQ:D           fill_ustack_end
+fill_ustack2:
+        ADD             #-4, R13
+        BGT:D           fill_ustack2
+        ST              R0, @(R13, R1)
+fill_ustack_end:
+        ClearRCwatchdog
+#endif 
+
+;=========================================================================================
+; Standard C startup
+;=========================================================================================
+;=========================================================================================
+; 7.10  Clear data 
+;=========================================================================================
+; clear DATA section
+; According to ANSI, the DATA section must be cleared during start-up
+        LDI:8           #0, R0
+        LDI             #sizeof DATA &~0x3, R1
+        LDI             #DATA, R13
+        CMP             #0, R1
+        BEQ             data_clr1
+data_clr0:
+        ADD2            #-4, R1
+        BNE:D           data_clr0
+        ST              R0, @(R13, R1)
+data_clr1:
+        LDI:8           #sizeof DATA & 0x3, R1
+        LDI             #DATA + (sizeof DATA & ~0x3), R13
+
+        CMP             #0, R1
+        BEQ             data_clr_end
+data_clr2:
+        ADD2            #-1, R1
+        BNE:D           data_clr2
+        STB             R0, @(R13, R1)
+data_clr_end:
+        ClearRCwatchdog
+        
+;=========================================================================================
+; 7.11  Copy Init section from ROM to RAM
+;=========================================================================================
+; copy rom
+; All initialised data's (e.g. int i=1) must be stored in ROM/FLASH area. 
+; (start value)
+; The Application must copy the Section (Init) into the RAM area.
+        LDI             #_RAM_INIT, R0
+        LDI             #_ROM_INIT, R1
+        LDI             #sizeof(INIT), R2
+        CMP             #0, R2
+        BEQ:D           copy_rom_end
+        LDI             #3, R12
+        AND             R2, R12
+        BEQ:D           copy_rom2
+        MOV             R2, R13
+        MOV             R2, R3
+        SUB             R12, R3
+copy_rom1:
+        ADD             #-1, R13
+        LDUB            @(R13, R1), R12
+        CMP             R3, R13
+        BHI:D           copy_rom1
+        STB             R12, @(R13, R0)
+        CMP             #0, R3
+        BEQ:D           copy_rom_end
+copy_rom2:
+        ADD             #-4, R13
+        LD              @(R13, R1), R12
+        BGT:D           copy_rom2
+        ST              R12, @(R13, R0)
+copy_rom_end:
+        ClearRCwatchdog
+
+;=========================================================================================
+; 7.12 C library initialization
+;=========================================================================================
+#if CLIBINIT == ON
+       CALL32          __stream_init, r12         ; initialise library 
+#endif
+;=========================================================================================
+; 7.13  call C++ constructors
+;=========================================================================================
+#if CPLUSPLUS == ON
+       LDI              #___call_dtors, r4
+       CALL32           _atexit, r12
+
+       LDI              #EXT_CTOR_DTOR, r8
+       LDI              #EXT_CTOR_DTOR + sizeof(EXT_CTOR_DTOR), r9
+       CMP              r9, r8
+       BEQ              L1
+L0:
+       LD               @r8, r10
+       CALL:D           @r10
+       ADD              #4, r8
+       CMP              r9, r8
+       BC               L0
+L1:
+#endif
+
+start_main:
+;=========================================================================================
+; 7.14  call main routine
+;=========================================================================================
+       ClearRCwatchdog                            ; clear harware watchdog
+       LDI:8            #0, r4                    ; Set the 1st parameter for main to 0.
+       CALL32:d         _main, r12
+       LDI:8            #0, r5                    ; Set the 2nd parameter for main to 0.
+#if CLIBINIT == ON
+       CALL32           _exit, r12
+       __exit:
+#endif
+
+#if CPLUSPLUS == ON
+       __abort:
+#endif
+
+;=========================================================================================
+; 7.15  Return from main function
+;=========================================================================================
+end: 
+        BRA            end  
+        .end            __start