SECTIONS 
{
  .text 0x00000000:
  {
	. = ALIGN(2);
	*(.boot)
	. = ALIGN(2);
	*(.text)
	. = ALIGN(2);
	*(.rodata) 
	. = ALIGN(2);
	*(.rodata.*)
  _etext = .;
  } = 0xFF

  .data 0xFFFF0000:
  AT (_etext)
  {
  _data = .;
	. = ALIGN(2);
	*(.data)
  _edata = .;
  } = 0xFF

  .bss :
  {
	. = ALIGN(2);
	*(.bss)
	. = ALIGN(2);
	*(COMMON)
  _bss_end = .;
  }

  .junk :
  {
/* This is C++ initialization stuff that uses 68020 bsr.l instructions */
/* even with the -m68000 switch. It is put here so that it can STFU. */
	. = ALIGN(2);
	*(.eh_frame)
	. = ALIGN(2);
	*(.init)
	. = ALIGN(2);
	*(.fini)
  }
}

/*
	lea	_etext, %a0		| initialization data in ROM
	lea	_data, %a1		| start of initialized RAM
	lea	_edata, %a2		| end of initialized RAM
1:
	cmpa.l	%a1, %a2		| at end of RAM?
	beq.s	2f			| exit loop if end of RAM
	move.b	(%a0)+, (%a1)+		| copy next byte
	bra.s	1b			| loop for rest of initialized data
2:
	bsr.w	main			| start main program
	bra.b	.			| loop forever if main program exits
*/