cc65 - a freeware C compiler for 6502 based systems
Go to file
Marshall Ward 09495519c0 NES memory map amend (16k prg, 8k chr default)
The configuration file and runtime (crt0.s) provided for the default NES
ROM layout (2x16k PRG, 8k CHR) incorrectly added interrupts (IRQ1, IRQ2,
TIMERIRQ) which are not supported by the NES hardware.  For example, see
the NESdev wiki, which makes no reference to these interrupts.

    https://wiki.nesdev.com/w/index.php/CPU_memory_map

The VECTORS region was also incorrectly set to 0xFFF6, which would have
left the 0xFFF4 normally unspecified.  This did not result in any error,
however, since cc65 simply placed ROMV directly after ROM0 regardless of
start address.

(This layout may be due to a copy-and-paste from the PC-Engine
configuration, whose interrupt registers start at 0xFFF6, begins with
the three interrupts listed above, followed by NMI and START, and does
not end with a final IRQ interrupt.)

Despite the absence of any actual error, since START is still placed at
0xFFFC, this patch removes the nonexistent interrupts and also correctly
aligns the ROM0 and ROMV regions.  It also has the (admittedly very
minor) benefit of freeing up 6 additional bytes for ROM0.
2016-12-24 08:32:54 +11:00
asminc Atari: fix lookup of default device on XDOS. 2016-09-12 23:40:25 +02:00
cfg NES memory map amend (16k prg, 8k chr default) 2016-12-24 08:32:54 +11:00
doc Shorten a URL. 2016-09-29 20:00:09 -04:00
include added 4510 cpu detection to getcpu.s 2016-09-07 19:44:11 +02:00
libsrc NES memory map amend (16k prg, 8k chr default) 2016-12-24 08:32:54 +11:00
samples Make use of doesclrscrafterexit(). 2016-10-15 15:47:25 +02:00
src Added 'any' to --list-opt-steps. 2016-12-15 09:06:15 -08:00
test Removed DEL as suggested by Greg. 2016-10-16 13:47:31 +02:00
testcode Merge pull request #345 from SvOlli/release 2016-09-07 10:11:47 +02:00
util dont use that silly buffer 2015-11-29 21:15:10 +01:00
.gitignore Don't ignore more than necessary. 2016-06-01 22:36:38 +02:00
.travis.yml Update package index (as recommended by Travis CI). 2015-12-16 12:24:47 +01:00
LICENSE Simplified license. 2015-05-05 21:56:23 +02:00
Makefile Allow to build samples from the main Makefile. 2016-06-12 23:30:29 +02:00
Makefile.travis Fixed file name of Windows binary snapshot. 2015-01-20 21:00:44 +01:00
README.md Merge pull request #238 from mrdudz/gamate 2016-02-27 18:44:26 +01:00

README.md

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).
  • the Nintendo Entertainment System (NES) console.
  • the Watara Supervision console.
  • the Oric Atmos.
  • 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.