mirror of
https://github.com/cc65/cc65.git
synced 2025-02-03 22:32:24 +00:00
Oliver Schmidt
2c975d3642
Create static drivers directly from source files.
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach: The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory. However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails. Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
…
cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools.
cc65 has C and runtime library support for many of the old 6502 machines, including
- the following Commodore machines:
- VIC20
- C16/C116 and Plus/4
- C64
- C128
- CBM 510 (aka P500)
- the 600/700 family
- newer PET machines (not 2001).
- the Apple ][+ and successors.
- the Atari 8 bit machines.
- the Atari 5200 console.
- GEOS for the C64, C128 and Apple //e.
- the Nintendo Entertainment System (NES) console.
- the Supervision console.
- the Oric Atmos.
- the Lynx console.
The libraries are fairly portable, so creating a version for other 6502s shouldn't be too much work.
Languages
C
62.5%
Assembly
35.5%
PHP
0.7%
Makefile
0.6%
Perl
0.3%
Other
0.3%