cc65 - a freeware C compiler for 6502 based systems https://github.com/cc65/cc65
Find a file
Oliver Schmidt 20a9c0c336 Replaced call to paddle read ROM routine with custom code.
As described e.g. in the Apple IIe Technote #6: 'The Apple II Paddle Circuits' it doesn't work to call PREAD several times in immediate succession. However, so far the Apple II joystick driver did just that in order to read the two joystick axis.

Therefore the driver now uses a custom routine that reads both paddles _at_the_same_time_. The code doing so requires nearly twice the cycles meaning that the overall time for a joy_read() stays roughly the same. However, twice the cycles in the read loop means half the resolution. But for the cc65 joystick driver use case that doesn't hurt at all as the driver is supposed to only detect neutral vs. left/right and up/down.

CPU accelerators are supposed to detect access to $C070 and slow down for some time automatically. However, the IIgs rather comes with a modified ROM routine. Therefore it is necessary to manually slow down the IIgs when replacing the ROM routine.
2020-06-06 15:15:13 +02:00
asminc Replaced call to paddle read ROM routine with custom code. 2020-06-06 15:15:13 +02:00
cfg Updated the cx16 library to the Commander X16 Kernal's prerelease 35. 2019-12-25 10:56:32 -05:00
doc Removed --lib option from cl65. 2020-05-30 21:03:15 +02:00
include Allowed the TGI API to support 256 colors. 2020-06-04 12:58:05 -04:00
libsrc Replaced call to paddle read ROM routine with custom code. 2020-06-06 15:15:13 +02:00
samples Refactored the TGI demo. 2020-06-05 13:37:20 -04:00
src Fixed g_addlocal codegen with long types. 2020-06-01 22:37:40 +02:00
test Changes resulting from 2nd code review 2020-02-03 20:45:09 +01:00
testcode Fixed the target guards around the usage messages. 2019-12-30 19:53:39 -05:00
util util/zlib/deflater: Fix several compiler warnings. 2019-06-19 19:01:30 +02: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 The doc now lives in the 'master' branch of the 'doc' project. 2018-09-18 23:39:11 +02:00
README.md Normalized Atari naming. 2020-02-17 11:07:52 +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 2600 console.
  • 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.