1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 06:28:57 +00:00
cc65 - a freeware C compiler for 6502 based systems
Go to file
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
asminc Merge pull request #552 from polluks/master 2017-12-16 18:26:34 +00:00
cfg Added Apple II linker configs for programs including a hires screen. 2018-01-29 17:46:36 +01:00
doc Merge pull request #552 from polluks/master 2017-12-16 18:26:34 +00:00
include Added recently published ProDOS version. 2018-01-18 12:37:21 +01:00
libsrc Merge pull request #577 from polluks/master 2018-01-25 12:35:21 +00:00
samples Make use of C library waitvsync(). 2017-11-21 23:03:50 +01:00
src 65C02 JMP (ind,x) opcode 7C 2018-01-14 19:42:29 +00:00
test Merge pull request #446 from clbr/lz4 2017-06-10 23:23:12 +02:00
testcode Added Apple II linker configs for programs including a hires screen. 2018-01-29 17:46:36 +01:00
util dont use that silly buffer 2015-11-29 21:15:10 +01:00
.gitattributes Added .gitattributes to force LF line endings on commit. 2017-03-12 18:13:18 +01:00
.gitignore Don't ignore more than necessary. 2016-06-01 22:36:38 +02:00
.travis.yml Migrate 'encrypted variables' variables to 'repository settings'. 2017-05-17 20:56:21 +02:00
LICENSE Simplified license. 2015-05-05 21:56:23 +02:00
Makefile Added "html" and "info" goals to the top-level Makefile. 2017-05-24 18:49:02 -04:00
Makefile.travis Fixed file name of Windows binary snapshot. 2015-01-20 21:00:44 +01:00
README.md README.md: PC-Engine is a console 2017-02-22 14:25:10 +01:00

Windows Snapshot

Documentation

Wiki

Build Status

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 Bit Corporation Gamate console.
  • the NEC PC-Engine (aka TurboGrafx-16) console.
  • the Nintendo Entertainment System (NES) console.
  • the Watara Supervision console.
  • the VTech Creativision console.
  • the Oric Atmos.
  • the Oric Telestrat.
  • the Lynx console.
  • the Ohio Scientific Challenger 1P.

The libraries are fairly portable, so creating a version for other 6502s shouldn't be too much work.