1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-26 20:29:34 +00:00
cc65/cfg
Oliver Schmidt 855aceaba8 Added Apple II linker configs for programs including a hires screen.
The Apple II hires screen buffer is located at $2000 (and can't be moved). The usual way to get along with this is to load the cc65 program above the hires screen buffer at $4000. However, that means that it becomes difficult to make good use of the memory below the hires screen buffer. The simplest approach is to add that memory to the heap. But there are programs containing just lots of code and not much data. One could think of moving the code to the area below the hires screen after loading (like it is done with the code for the language card). But if the program is really large (and already contains code to be moved to the language card) it won't just fit into memory in the first place.

The alternative is to load the program at the usual $803 and have it "cover" the hires screen buffer. Of course the part of the program that actually "covers" the hires screen buffer mustn't contain anything necessary for the program. The downside of this approach is that the program file on disk contains 8kB that can't be used by the program. But instead of just containing zeros the program can as well contain a hires screen picture that can be displayed right after startup.

Now the user can have code loaded below the hires screen buffer by setting the code-name to LOWCODE. However, he needs to explicitly do so. Otherwise the memory below the hires screen is totally wasted.

Trivia: Allowing to do this hires screen buffer "covering" was the very reason to change tgi_init() to not clear the hires screen anymore.
2018-01-29 17:46:36 +01:00
..
apple2-asm.cfg Harmonized asm linker configs. 2016-03-17 21:51:20 +01:00
apple2-hgr.cfg Added Apple II linker configs for programs including a hires screen. 2018-01-29 17:46:36 +01:00
apple2-overlay.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
apple2-system.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
apple2.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
apple2enh-asm.cfg Harmonized asm linker configs. 2016-03-17 21:51:20 +01:00
apple2enh-hgr.cfg Added Apple II linker configs for programs including a hires screen. 2018-01-29 17:46:36 +01:00
apple2enh-overlay.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
apple2enh-system.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
apple2enh.cfg Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
atari-asm.cfg Harmonized asm linker configs. 2016-03-17 21:51:20 +01:00
atari-cart.cfg Renamed RAM to MAIN for all disk based targets. 2016-03-07 01:28:55 +01:00
atari-cassette.cfg make BSS segment optional in atari-cassette.cfg 2016-05-25 01:29:00 +02:00
atari-overlay.cfg Fixed INIT properties. 2016-03-13 22:18:51 +01:00
atari.cfg Fixed INIT properties. 2016-03-13 22:18:51 +01:00
atari2600.cfg Add C support for Atari 2600 (VCS) 2017-01-13 21:12:22 +01:00
atari5200.cfg atari5200.cfg: fix formatting 2018-01-21 15:42:12 +01:00
atarixl-largehimem.cfg Fixed INIT properties. 2016-03-13 22:18:51 +01:00
atarixl-overlay.cfg Fixed INIT properties. 2016-03-13 22:18:51 +01:00
atarixl.cfg Fixed INIT properties. 2016-03-13 22:18:51 +01:00
atmos.cfg Converted the Atmos configuration to the new constructor segment model. 2016-03-18 11:28:56 -04:00
bbc.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
c16-32k.cfg Update c16-32k.cfg 2017-12-16 02:35:00 +01:00
c16.cfg Optimizing the stack size 2017-12-18 19:19:59 +01:00
c64-asm.cfg Harmonized asm linker configs. 2016-03-17 21:51:20 +01:00
c64-overlay.cfg Cleaned up C64 linker configs. 2016-03-13 14:32:07 +01:00
c64.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
c128-overlay.cfg Removed symbol definition for ONCE. 2016-03-15 22:55:34 +01:00
c128.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
cbm510.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
cbm610.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
creativision.cfg Optimizing the stack size 2017-12-18 19:19:59 +01:00
gamate.cfg Removed symbol definition for ONCE. 2016-03-15 22:55:34 +01:00
geos-apple.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
geos-cbm.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
lunix.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
lynx-bll.cfg Fixed last linefeed and notation convention errors. 2016-09-13 22:02:37 +02:00
lynx-coll.cfg Fixed last linefeed and notation convention errors. 2016-09-13 22:02:37 +02:00
lynx-uploader.cfg Fixed last linefeed and notation convention errors. 2016-09-13 22:02:37 +02:00
lynx.cfg Fixed last linefeed and notation convention errors. 2016-09-13 22:02:37 +02:00
module.cfg Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
nes.cfg NES memory map amend (16k prg, 8k chr default) 2016-12-24 08:32:54 +11:00
none.cfg Fixed unused import and export of none.cfg and none/crt0.s 2018-01-04 22:27:39 +01:00
osic1p-asm.cfg Harmonized asm linker configs. 2016-03-17 21:51:20 +01:00
osic1p.cfg Removed symbol definition for ONCE. 2016-03-15 22:55:34 +01:00
pce.cfg Removed symbol definition for ONCE. 2016-03-15 22:55:34 +01:00
pet.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
plus4.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
sim65c02.cfg Fix regression of #pragma bss-name 2017-03-21 22:35:25 +01:00
sim6502.cfg Fix regression of #pragma bss-name 2017-03-21 22:35:25 +01:00
supervision-16k.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
supervision-64k.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
supervision-128k.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
supervision.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00
telestrat.cfg Correcting missing return line :/ 2017-09-24 11:57:52 +02:00
vic20-32k.cfg Optimizing the stack size 2017-12-18 19:19:59 +01:00
vic20.cfg Consider the segment attributes 'define' and 'optional' mutually exclusive. 2016-03-17 21:31:43 +01:00