mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-24 07:31:32 +00:00
98 lines
1.7 KiB
Python
98 lines
1.7 KiB
Python
|
TORS=".tors :
|
||
|
{
|
||
|
___ctors = . ;
|
||
|
*(.ctors)
|
||
|
___ctors_end = . ;
|
||
|
___dtors = . ;
|
||
|
*(.dtors)
|
||
|
___dtors_end = . ;
|
||
|
} > ram"
|
||
|
|
||
|
cat <<EOF
|
||
|
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
|
||
|
OUTPUT_ARCH(h8300h)
|
||
|
${RELOCATING+ENTRY ("_start")}
|
||
|
|
||
|
/* The memory size is 256KB to coincide with the simulator.
|
||
|
Don't change either without considering the other. */
|
||
|
|
||
|
MEMORY
|
||
|
{
|
||
|
/* 0xc4 is a magic entry. We should have the linker just
|
||
|
skip over it one day... */
|
||
|
vectors : o = 0x0000, l = 0xc4
|
||
|
magicvectors : o = 0xc4, l = 0x3c
|
||
|
/* We still only use 256k as the main ram size. */
|
||
|
ram : o = 0x0100, l = 0x3fefc
|
||
|
/* The stack starts at the top of main ram. */
|
||
|
topram : o = 0x3fffc, l = 0x4
|
||
|
/* This holds variables in the "tiny" sections. */
|
||
|
tiny : o = 0xff8000, l = 0x7f00
|
||
|
/* At the very top of the address space is the 8-bit area. */
|
||
|
eight : o = 0xffff00, l = 0x100
|
||
|
}
|
||
|
|
||
|
SECTIONS
|
||
|
{
|
||
|
.vectors :
|
||
|
{
|
||
|
/* Use something like this to place a specific
|
||
|
function's address into the vector table.
|
||
|
|
||
|
LONG (ABSOLUTE (_foobar)). */
|
||
|
|
||
|
*(.vectors)
|
||
|
} ${RELOCATING+ > vectors}
|
||
|
|
||
|
.text :
|
||
|
{
|
||
|
*(.rodata)
|
||
|
*(.text)
|
||
|
*(.strings)
|
||
|
${RELOCATING+ _etext = . ; }
|
||
|
} ${RELOCATING+ > ram}
|
||
|
|
||
|
${CONSTRUCTING+${TORS}}
|
||
|
|
||
|
.data :
|
||
|
{
|
||
|
*(.data)
|
||
|
${RELOCATING+ _edata = . ; }
|
||
|
} ${RELOCATING+ > ram}
|
||
|
|
||
|
.bss :
|
||
|
{
|
||
|
${RELOCATING+ _bss_start = . ;}
|
||
|
*(.bss)
|
||
|
*(COMMON)
|
||
|
${RELOCATING+ _end = . ; }
|
||
|
} ${RELOCATING+ >ram}
|
||
|
|
||
|
.stack :
|
||
|
{
|
||
|
${RELOCATING+ _stack = . ; }
|
||
|
*(.stack)
|
||
|
} ${RELOCATING+ > topram}
|
||
|
|
||
|
.tiny :
|
||
|
{
|
||
|
*(.tiny)
|
||
|
} ${RELOCATING+ > tiny}
|
||
|
|
||
|
.eight :
|
||
|
{
|
||
|
*(.eight)
|
||
|
} ${RELOCATING+ > eight}
|
||
|
|
||
|
.stab 0 ${RELOCATING+(NOLOAD)} :
|
||
|
{
|
||
|
[ .stab ]
|
||
|
}
|
||
|
|
||
|
.stabstr 0 ${RELOCATING+(NOLOAD)} :
|
||
|
{
|
||
|
[ .stabstr ]
|
||
|
}
|
||
|
}
|
||
|
EOF
|