mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 17:30:50 +00:00
Curt J. Sampson
1d39863a60
vic20/cputc: Fix incorrect CRAM_PTR at startup when using conio
To do this we add a constructor call to UPDCRAMPTR, which is the ROM routine that fixes up CRAM_PTR to match the screen location pointed to by SCREEN_PTR. This adds two additional bytes to programs using cputc() or other routines that call it. These are in theory recoverable, but the VIC-20 does not yet free space used by constructors after the constructors have been called. Thanks to <greg.king5@verizon.net> (GitHub: greg-king5) for investigating the difference in the VIC-20 KERNAL from the C64 and proposing this solution to the problem.[1] [1]: https://github.com/cc65/cc65/issues/946#issuecomment-538502820
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.
Languages
C
62.4%
Assembly
35.6%
PHP
0.7%
Makefile
0.6%
Perl
0.3%
Other
0.3%