Commit Graph

20 Commits

Author SHA1 Message Date
bbbradsmith 2431fb7d85 correct INIT segment semantic is bss, make this consistent across all default cfg 2023-08-19 13:08:46 -04:00
Christian Groessler 6c90f3e2d2 atarixl configs: RAM memory area was renamed to MAIN in d8c31cf1d3
adjust comments accordingly
2021-02-09 11:22:58 +01:00
Christian Groessler 944ebbc23c atarixl configs: make size of CHARGEN configurable
If text mode is not used, its space can be reclaimed by setting __CHARGENSIZE__
to 0.
Following a suggestion from issue #1314.
2020-10-29 17:43:49 +01:00
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 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 39a98f250b untabify 2013-09-27 22:01:54 +02:00
Christian Groessler 722dbaa1aa Add comment describing the need to have the runtime library compiled
with CHARGEN_RELOC enabled.
2013-09-20 18:09:16 +02:00
Christian Groessler b713706304 Get rid of SAVEAREA segment: fold it into LOWDATA. 2013-09-18 00:48:01 +02:00
Christian Groessler d0c41ecee9 Default atatixl.cfg file now leaves the character generator at $E000.
This reduces the potential to flicker, but creates two separate
memory areas in the high memory.
For applications which require a large continuous memory space in
high memory, atarixl-largehimem.cfg is provided. With high IRQ
activity or DL interrupt there might be flicker.
2013-09-18 00:38:29 +02:00