rickjr.ld -> export .pgZ natively (WIP)
This commit is contained in:
parent
56648300fc
commit
88a44ca1f0
1 changed files with 89 additions and 83 deletions
140
rickjr.ld
140
rickjr.ld
|
@ -8,6 +8,8 @@ PROVIDE(__stack = 0xA000);
|
|||
PROVIDE(__f256_start = 0x300);
|
||||
/* page size of a block of memory */
|
||||
PROVIDE(__BLOCK_SIZE = 0x2000);
|
||||
/* swappable block address */
|
||||
PROVIDE(__SLOT_ADDR = 0xA000);
|
||||
|
||||
/* f256k uses first 16 bytes of ZP for mmu control? */
|
||||
__rc0 = 0x10;
|
||||
|
@ -22,24 +24,22 @@ MEMORY {
|
|||
}
|
||||
|
||||
/* LMAs */
|
||||
__fixed_lma = 0x0000a000;
|
||||
|
||||
__block8_lma = 0x01a000;
|
||||
__block9_lma = 0x02a000;
|
||||
__block10_lma = 0x03a000;
|
||||
__block11_lma = 0x04a000;
|
||||
__block12_lma = 0x05a000;
|
||||
__block13_lma = 0x06a000;
|
||||
__block14_lma = 0x07a000;
|
||||
__block15_lma = 0x08a000;
|
||||
__block16_lma = 0x09a000;
|
||||
__block17_lma = 0x0Aa000;
|
||||
__block18_lma = 0x0Ba000;
|
||||
__block19_lma = 0x0Ca000;
|
||||
__block20_lma = 0x0Da000;
|
||||
__block21_lma = 0x0Ea000;
|
||||
__block22_lma = 0x0Fa000;
|
||||
__block23_lma = 0x10a000;
|
||||
__block8_lma = 0x08a000;
|
||||
__block9_lma = 0x09a000;
|
||||
__block10_lma = 0x0Aa000;
|
||||
__block11_lma = 0x0Ba000;
|
||||
__block12_lma = 0x0Ca000;
|
||||
__block13_lma = 0x0Da000;
|
||||
__block14_lma = 0x0Ea000;
|
||||
__block15_lma = 0x0Fa000;
|
||||
__block16_lma = 0x10a000;
|
||||
__block17_lma = 0x11a000;
|
||||
__block18_lma = 0x12a000;
|
||||
__block19_lma = 0x13a000;
|
||||
__block20_lma = 0x14a000;
|
||||
__block21_lma = 0x15a000;
|
||||
__block22_lma = 0x16a000;
|
||||
__block23_lma = 0x17a000;
|
||||
|
||||
|
||||
MEMORY {
|
||||
|
@ -51,7 +51,6 @@ MEMORY {
|
|||
block13 : ORIGIN = __block13_lma, LENGTH = __BLOCK_SIZE
|
||||
block14 : ORIGIN = __block14_lma, LENGTH = __BLOCK_SIZE
|
||||
block15 : ORIGIN = __block15_lma, LENGTH = __BLOCK_SIZE
|
||||
|
||||
block16 : ORIGIN = __block16_lma, LENGTH = __BLOCK_SIZE
|
||||
block17 : ORIGIN = __block17_lma, LENGTH = __BLOCK_SIZE
|
||||
block18 : ORIGIN = __block18_lma, LENGTH = __BLOCK_SIZE
|
||||
|
@ -60,8 +59,6 @@ MEMORY {
|
|||
block21 : ORIGIN = __block21_lma, LENGTH = __BLOCK_SIZE
|
||||
block22 : ORIGIN = __block22_lma, LENGTH = __BLOCK_SIZE
|
||||
block23 : ORIGIN = __block23_lma, LENGTH = __BLOCK_SIZE
|
||||
|
||||
fixed : ORIGIN = __fixed_lma, LENGTH = __BLOCK_SIZE
|
||||
}
|
||||
|
||||
REGION_ALIAS("c_writeable", ram)
|
||||
|
@ -73,57 +70,66 @@ SECTIONS {
|
|||
|
||||
INCLUDE c.ld
|
||||
|
||||
.fixed : { *(.fixed .fixed.*) } >fixed
|
||||
|
||||
.block8 : { *(.block8 .block8.*) } >block8
|
||||
.block9 : { *(.block9 .block9.*) } >block9
|
||||
.block10 : { *(.block10 .block10.*) } >block10
|
||||
.block11 : { *(.block11 .block11.*) } >block11
|
||||
.block12 : { *(.block12 .block12.*) } >block12
|
||||
.block13 : { *(.block13 .block13.*) } >block13
|
||||
.block14 : { *(.block14 .block14.*) } >block14
|
||||
.block15 : { *(.block15 .block15.*) } >block15
|
||||
.block16 : { *(.block16 .block16.*) } >block16
|
||||
.block17 : { *(.block17 .block17.*) } >block17
|
||||
.block18 : { *(.block18 .block18.*) } >block18
|
||||
.block19 : { *(.block19 .block19.*) } >block19
|
||||
.block20 : { *(.block20 .block20.*) } >block20
|
||||
.block21 : { *(.block21 .block21.*) } >block21
|
||||
.block22 : { *(.block22 .block22.*) } >block22
|
||||
.block23 : { *(.block23 .block23.*) } >block23
|
||||
.block8 : { *(.block8 .block8.*) } >block8 end_block8 = .;
|
||||
.block9 : { *(.block9 .block9.*) } >block9 end_block9 = .;
|
||||
.block10 : { *(.block10 .block10.*) } >block10 end_block10 = .;
|
||||
.block11 : { *(.block11 .block11.*) } >block11 end_block11 = .;
|
||||
.block12 : { *(.block12 .block12.*) } >block12 end_block12 = .;
|
||||
.block13 : { *(.block13 .block13.*) } >block13 end_block13 = .;
|
||||
.block14 : { *(.block14 .block14.*) } >block14 end_block14 = .;
|
||||
.block15 : { *(.block15 .block15.*) } >block15 end_block15 = .;
|
||||
.block16 : { *(.block16 .block16.*) } >block16 end_block16 = .;
|
||||
.block17 : { *(.block17 .block17.*) } >block17 end_block17 = .;
|
||||
.block18 : { *(.block18 .block18.*) } >block18 end_block18 = .;
|
||||
.block19 : { *(.block19 .block19.*) } >block19 end_block19 = .;
|
||||
.block20 : { *(.block20 .block20.*) } >block20 end_block20 = .;
|
||||
.block21 : { *(.block21 .block21.*) } >block21 end_block21 = .;
|
||||
.block22 : { *(.block22 .block22.*) } >block22 end_block22 = .;
|
||||
.block23 : { *(.block23 .block23.*) } >block23 end_block23 = .;
|
||||
}
|
||||
|
||||
/* OUTPUT_FORMAT { FULL(cart_rom) } */
|
||||
OUTPUT_FORMAT {
|
||||
FULL(block8)
|
||||
FULL(block9)
|
||||
FULL(block10)
|
||||
FULL(block11)
|
||||
FULL(block12)
|
||||
FULL(block13)
|
||||
FULL(block14)
|
||||
FULL(block15)
|
||||
FULL(block16)
|
||||
FULL(block17)
|
||||
FULL(block18)
|
||||
FULL(block19)
|
||||
FULL(block20)
|
||||
FULL(block21)
|
||||
FULL(block22)
|
||||
FULL(block23)
|
||||
FULL(fixed)
|
||||
}
|
||||
BYTE(0x5A) /* pgZ */
|
||||
|
||||
/* ram segment */
|
||||
|
||||
SHORT(ORIGIN(ram))
|
||||
BYTE(0x00)
|
||||
SHORT(__bss_start-ORIGIN(ram))
|
||||
BYTE(0x00)
|
||||
TRIM(ram)
|
||||
|
||||
/* block8 */
|
||||
SHORT(ORIGIN(block8))
|
||||
BYTE(0x00)
|
||||
SHORT(end_block8 - __block8_lma)
|
||||
TRIM(block8)
|
||||
|
||||
/* block9 */
|
||||
/*
|
||||
SHORT(ORIGIN(block9))
|
||||
BYTE(0x00)
|
||||
SHORT(end_block9 - __block9_lma)
|
||||
TRIM(block9)
|
||||
*/
|
||||
|
||||
/*
|
||||
__attribute__((section(".bank30.rodata"))) const char bank30_s[] = "bank thirty";
|
||||
|
||||
...
|
||||
|
||||
__attribute__((noinline, section(".bank2.text"))) signed char bank2_fn(void) {
|
||||
asm volatile("nop");
|
||||
puts(bank2_s);
|
||||
asm volatile("nop");
|
||||
return 5;
|
||||
}
|
||||
TRIM(block9)
|
||||
TRIM(block10)
|
||||
TRIM(block11)
|
||||
TRIM(block12)
|
||||
TRIM(block13)
|
||||
TRIM(block14)
|
||||
TRIM(block15)
|
||||
TRIM(block16)
|
||||
TRIM(block17)
|
||||
TRIM(block18)
|
||||
TRIM(block19)
|
||||
TRIM(block20)
|
||||
TRIM(block21)
|
||||
TRIM(block22)
|
||||
TRIM(block23)
|
||||
*/
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue