/*
** ###################################################################
**     THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
**     Filename  : RTOSDemo.PRM
**     Project   : RTOSDemo
**     Processor : MC9S12DP256BCPV
**     Compiler  : Metrowerks HC12 C Compiler
**     Date/Time : 19/06/2005, 15:54
**     Abstract  :
**        This file is used by the linker. It describes files to be linked,
**        memory ranges, stack size, etc. For detailed description of the PRM file
**        see CodeWarrior documentation. This file is generated by default.
**        You can switch off generation by setting the property
**        "Generate PRM file = no" on the "Build options" tab in CPU bean and then modify
**        this file if needed.
**
**     (c) Copyright UNIS, spol. s r.o. 1997-2002
**     UNIS, spol. s r.o.
**     Jundrovska 33
**     624 00 Brno
**     Czech Republic
**     http      : www.processorexpert.com
**     mail      : info@processorexpert.com
** ###################################################################
*/

NAMES

END

SECTIONS
      /* List of all sections specified on the "Build options" tab */
      RAM  =  READ_WRITE                0x00001000 TO 0x00003FFF;
      ROM_C000  =  READ_ONLY            0x0000C000 TO 0x0000C511;
      ROM_4000  =  READ_ONLY            0x00004000 TO 0x00004255;
      ROM_PAGE30  =  READ_ONLY          0x00308000 TO 0x00308255;
      ROM_PAGE31  =  READ_ONLY          0x00318000 TO 0x00318255;
      ROM_PAGE32  =  READ_ONLY          0x00328000 TO 0x00328255;
      ROM_PAGE33  =  READ_ONLY          0x00338000 TO 0x00338255;
      ROM_PAGE34  =  READ_ONLY          0x00348000 TO 0x00348255;
      ROM_PAGE35  =  READ_ONLY          0x00358000 TO 0x00358255;
      ROM_PAGE36  =  READ_ONLY          0x00368000 TO 0x00368255;
      ROM_PAGE37  =  READ_ONLY          0x00378000 TO 0x00378255;
      ROM_PAGE38  =  READ_ONLY          0x00388000 TO 0x00388255;
      ROM_PAGE39  =  READ_ONLY          0x00398000 TO 0x00398255;
      ROM_PAGE3A  =  READ_ONLY          0x003A8000 TO 0x003A8255;
      ROM_PAGE3B  =  READ_ONLY          0x003B8000 TO 0x003B8255;
      ROM_PAGE3C  =  READ_ONLY          0x003C8000 TO 0x003C8255;
      ROM_PAGE3D  =  READ_ONLY          0x003D8000 TO 0x003D8255;
END

PLACEMENT
      DEFAULT_RAM                      INTO RAM;
      DEFAULT_ROM                      INTO ROM_PAGE30, ROM_PAGE31, ROM_PAGE32, ROM_PAGE33, ROM_PAGE34, ROM_PAGE35, ROM_PAGE36,
ROM_PAGE37, ROM_PAGE38, ROM_PAGE39, ROM_PAGE3A, ROM_PAGE3B, ROM_PAGE3C, ROM_PAGE3D;
      _PRESTART, STARTUP,
      ROM_VAR, STRINGS,
      NON_BANKED, COPY                 INTO ROM_C000, ROM_4000;
END

INIT _EntryPoint                       /* The entry point of the application. This function is generated into the CPU module. */

STACKSIZE 0x0080                       /* Size of the system stack. Value can be changed on the "Build options" tab */

