As discussed in this post, I made a very little patch '911001_ab.bin' for the latest available C65 ROM (911001.bin).
Only three little things are changed:
- the demo programs which are in the ROM area from $4000 to $7000 are removed (filled with $00) because sometimes they make problems after start
- the values for 'top of bank 0' and 'top of bank 1' are changed to $FFFF (bank 0) and $F800 (bank 1), so by default there is more free BASIC memory for program (bank 0) and variables (bank 1).
- the display of the version number is shifted one digit left and '.AB' is added at the end so you can see which ROM version is actually installed.
The ROM CHECKSUM of the patched ROM '911001_ab.bin" is $2680.
How to patch:
1.) Buy a used C65 at ebay for the original ROM, save the ROM in a binary file on disc, name the file '911001.bin' and transfer it to your PC.
2.) Download the attached 'patch_ab.bin' and save it into the same folder as your ROM file '911001.bin' is in.
3.a) If you use Windows: Download BSPatch e.g. from this site and unzip the file in the ROM folder.
3.b) If you use Linux: Install 'bsdiff' if not yet done with:
sudo apt install bsdiff
4.) Open the command line (Windows) or terminal (Linux) in the folder there your ROM and patch files are.
5.) Patch the file with this command:
bspatch 911001.bin 911001_ab.bin patch_ab.bin
6.) The created file '911001_ab.bin' is the patched rom and you can rename and use it for your needs. E.g. for Xemu 'c65-system.rom' or 'MEGA65.ROM' for Mega65 or the Nexys board.
- Comparing files 911001.bin and 911001_ab.bin
- 00004001: 14 00 ; fill area from $04000 to $07000 with $00
- 00004002: 20 00 ; deletes the demo programs stored in ROM
- ...
- 00006FFF: FF 00
- 00007000: FF 00
- 000120C9: 00 FF ; set top of bank 0 to $FFFF (instead of $8000)
- 000120CB: 80 FF
- 000120D5: 80 F8 ; set top of bank 1 to $F800 (instead of $8000)
- 00012281: 20 56 ; shift display of ROM version number one digit left
- 00012282: 56 30 ; and add '.AB' at the end for displaying patch number
- 00012283: 30 2E
- 00012284: 2E 39
- 00012285: 39 42
- 00012286: 42 2E
- 00012287: 2E 39
- 00012288: 39 31
- 0001228A: 31 30
- 0001228C: 30 31
- 0001228D: 31 2E
- 0001228E: 20 41
- 0001228F: 20 42