STACKLEN =?  0x100;
MEMSTART =? 0x2000;
MEMEND   =? 0xB000;

MEMORY
{
 zero : org = 0x82 , len = 0x7e
 vec : org = 0x2e0, len = 2
 ram : org = MEMSTART+STACKLEN, len=MEMEND-MEMSTART-STACKLEN
 out : org = MEMSTART, len = 0xffff
}

SECTIONS
{
  vec : {SHORT(MEMSTART+STACKLEN); } > vec
  text : {*(text)} >ram
  .dtors : { *(.dtors) } > ram
  .ctors : { *(.ctors) } > ram
  rodata : {*(rodata)} >ram
  data: {*(data)} >ram
  init : {*(init)} >ram
  zpage (NOLOAD) : {*(zpage) *(zp1) *(zp2)} >zero
  bss (NOLOAD): {*(bss)} >ram

  __SP = MEMSTART+STACKLEN;
  __BB = ADDR(bss);
  __BE = ADDR(bss)+SIZEOF(bss);
  ___heap = ADDR(bss) + SIZEOF(bss);
}
