From 0db036a0e248a1e5c62e5c85ebd2ef172390196d Mon Sep 17 00:00:00 2001 From: cuz Date: Fri, 2 May 2003 13:47:43 +0000 Subject: [PATCH] Added a new NES config from groepaz git-svn-id: svn://svn.cc65.org/cc65/trunk@2120 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/ld65/cfg/nes.cfg | 53 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/src/ld65/cfg/nes.cfg b/src/ld65/cfg/nes.cfg index 2b17cec27..e62081f57 100644 --- a/src/ld65/cfg/nes.cfg +++ b/src/ld65/cfg/nes.cfg @@ -1,14 +1,50 @@ MEMORY { - ZP: start = $02, size = $1A, type = rw, define = yes; - RAM: start = $03FF, size = $7BFF, file = %O; + + ZP: start = $02, size = $1A, type = rw, define = yes; + + # INES Cartridge Header + HEADER: start = $0, size = $10, file = %O ,fill = yes; + + # 2 16K ROM Banks + # - startup + # - code + # - rodata + # - data (load) + ROM0: start = $8000, size = $7ff4, file = %O ,fill = yes, define = yes; + + # Hardware Vectors at End of 2nd 8K ROM + ROMV: start = $fff6, size = $c, file = %O, fill = yes; + + # 1 8k CHR Bank + ROM2: start = $0000, size = $2000, file = %O, fill = yes; + + # standard 2k SRAM (-zeropage) + # $0100-$0200 cpu stack + # $0200-$0500 3 pages for ppu memory write buffer + # $0500-$0800 3 pages for cc65 parameter stack + SRAM: start = $0500, size = $0300, define = yes; + + # additional 8K SRAM Bank + # - data (run) + # - bss + # - heap + RAM: start = $6000, size = $2000, define = yes; + } + SEGMENTS { - CODE: load = RAM, type = wprot; - RODATA: load = RAM, type = wprot; - DATA: load = RAM, type = rw; - BSS: load = RAM, type = bss, define = yes; - ZEROPAGE: load = ZP, type = zp; + HEADER: load = HEADER, type = wprot; + STARTUP: load = ROM0, type = wprot, define = yes; + CODE: load = ROM0, type = wprot, define = yes; + RODATA: load = ROM0, type = wprot, define = yes; + DATA: load = ROM0, run = RAM, type = rw, define = yes; + VECTORS: load = ROMV, type = rw; + CHARS: load = ROM2, type = rw; + BSS: load = RAM, type = bss, define = yes; + ZEROPAGE: load = ZP, type = zp; + } + FEATURES { CONDES: segment = RODATA, type = constructor, @@ -19,6 +55,7 @@ FEATURES { label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__; } + SYMBOLS { - __STACKSIZE__ = $800; # 2K stack + __STACKSIZE__ = $0300; # 3 pages stack } -- 2.39.2