1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
Commit Graph

20 Commits

Author SHA1 Message Date
Christian Groessler
af50b5e516 Atari: atarixl config files already had a LOWBSS segment. 2018-09-05 11:28:15 +02:00
Christian Groessler
1cc4fa9356 Atari: fix interrupt handling if extended memory is banked in
Extendend memory is mapped over the main memory in the 0x4000..0x7FFF
area. Many DOSes disable interrupts while extended memory is banked in,
but not all (e.g. SpartaDOS-X).
This change modifies the initial interrupt handler to map in main memory
before chaining to the "worker" handlers.
Since the initial interrupt handler uses a data segment to store the
trampoline to chain to the original handler, introduce a new "LOWBSS"
segment to hold this trampoline. Otherwise the trampoline may end up
inside the 0x4000..0x7FFF area.

Add a link time warning if "LOWCODE" segment lays within the extended
memory window.
2018-09-05 11:28:15 +02:00
Oliver Schmidt
c768de156a Fixed INIT properties.
The main chunk load header references __BSS_LOAD__ so BSS must be the first bss type segment. Subsequent changes will move ONCE to share its address with the BSS. Then it'll be necessary to load INIT from disk. Therefore we do it right now.
2016-03-13 22:18:51 +01:00
Oliver Schmidt
d8c31cf1d3 Renamed RAM to MAIN for all disk based targets.
The name RAM doesn't make much sense in general for a memeory area because i.e. the zero page is for sure RAM but is not part of the memory area named RAM.

For disk based targets it makes sense to put the disk file more into focus and here MAIN means the main part of the file - in contrast to some header.

Only for ROM based targets the name RAM is kept as it makes sense to focus on the difference between RAM and ROM.
2016-03-07 01:28:55 +01:00
Oliver Schmidt
419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
Oliver Schmidt
76a5a72403 Adjusted current working directory initialization on Apple and Atari.
Moving __cwd from BSS into INITBSS does of course ;-) not only impact the CBM targets but all targets with disk I/O support.

Note: Code using `__cwd-1` may trigger an ld65 range error because __cwd may end up at the very begining of a segment. As far as I see this is an ld65 bug which I'm not try to fix - at least here.
2015-10-15 00:15:38 +02:00
Christian Groessler
478a7679a2 Force inclusion of 'shadow RAM preparation' load chunk in crt0.s and
not in the linker config file.
2013-10-18 22:08:26 +02:00
Christian Groessler
9f44d00d17 Put EXE header and main chunk load header into a single file --
it makes no sense to be able to include/exclude them separately.
2013-10-18 14:54:22 +02:00
Christian Groessler
b153ec8896 atari-asm.cfg linker config file 2013-10-18 03:08:26 +02:00
Christian Groessler
bf3a23c34c Rename 'syschk' symbol in the linker config file, which forces inclusion
of the 'system check' load chunki, to '__SYSTEM_CHECK__'.
2013-10-18 03:08:15 +02:00
Christian Groessler
90bac9d38c rename LOWDATA segment to LOWBSS 2013-10-16 18:20:57 +02:00
Christian Groessler
73d38b0ff2 Fix typo in last change. 2013-10-03 14:15:39 +02:00
Christian Groessler
417110d341 Use all available memory below the ROM. 2013-10-03 14:13:13 +02:00
Christian Groessler
7fb0cf4bb2 Some formatting and style fixes. 2013-10-01 11:36:37 +02:00
Christian Groessler
c88e0818b4 Leave the character generator at $E000 like atarixl.cfg does. 2013-09-27 21:50:17 +02:00
Christian Groessler
b713706304 Get rid of SAVEAREA segment: fold it into LOWDATA. 2013-09-18 00:48:01 +02:00
Christian Groessler
42835d91b8 remove __RESERVED_MEMORY__: not supported on atarixl 2013-09-18 00:28:48 +02:00
Christian Groessler
de639fdf6a introduce SHADOW_RAM2 2013-09-18 00:27:45 +02:00
Christian Groessler
85170998ad more atarixl linker cfg file cleanups; adapt atarixl-overlay.cfg 2013-09-13 21:47:39 +02:00
Oliver Schmidt
98c47d1877 Introduced target 'atarixl'.
The target 'atarixl' is to be used for Atari XL (and better) machines.
It will disable the OS ROM and enable the Shadow RAM available on
those machine.

Note: This commit is only the inital step towards for this goal that just
replicates the target 'atari' as a starting point!
2013-05-28 21:56:37 +02:00