After upgrading the RAM of my Super Snapshot V5 from 8kB RAM to 32kB, I was hoping for considerably better performance when copying disks with the built-in Disk Copier program. I was quite disappointed when I found out that copying a regular 35-track disk with a single disk drive only improved from requiring 4 read/write cycles (7 disk swaps) to 3 read/write cycles (5 disk swaps).
I did not put any further energy into looking more closely at how the memory of the C64 and Super Snapshot V5 is used when copying disks until I noticed that VICE is able to emulate the Super Snapshot V5 with both 8kB and 32kB cartridge RAM.
Starting the C64 emulator and attaching the cartridge image results in the emulation of the Super Snapshot V5 with 8kB RAM. The ssramexpansion command line parameter causes VICE to expand the RAM to 32kB.
x64sc -cartss5 Super_Snapshot_v5.22_v2_1990_PAL.bin -ssramexpansion
The Disk Copier program can be configured to use the RAM of the cartridge if 32kB is available. Disabling this option is identical with the only possible configuration if just 8kB of cartridge RAM is available.
I created an empty standard disk image (d64) with 35 tracks in VICE. Each track of a disk for the C64 is divided into a number of sectors which contain 256 bytes of data each. The number of sectors in a track depends on the position of the track on the disk. Tracks on the outer side of the disks (lower track numbers) have room for more sectors than tracks on the inner side of the disk (higher track numbers). According to the Commodore 1541 Disk Drive User's Guide the tracks contain the following number of sectors:
Tracks | Number of Sectors/Track | Bytes of Data/Track |
1 to 17 | 21 | 5376 |
18 to 24 | 19 | 4864 |
25 to 30 | 18 | 4608 |
31 to 35 | 17 | 4352 |
I copied the disk (onto itself) using the Disk Copier program with cartridge RAM disabled. VICE displays the track which is accessed by the disk drive emulation. The program required 4 read/write cycles:
Cycle | First Track | Last Track | Bytes of Data |
1 | 1 | 10 | 53760 |
2 | 11 | 20 |
52224 |
3 | 21 | 31 |
51456 |
4 | 32 | 35 |
17408 |
The maximum amount of RAM used in this case is 52.5kB.
After enabling cartridge RAM copying a disk requires 3 read/write cycles.
Cycle | First Track | Last Track | Bytes of Data |
1 | 1 | 14 |
75264 |
2 | 15 | 30 |
77824 |
3 | 31 | 35 |
21760 |
The maximum amount of RAM used in this case is 76kB.
The difference between both cases is 23.5kB which is just a little bit less than the difference between the 8kB and 32kB. I suspect that 8kB (the minimum configuration of the Super Snapshot V5) cartridge RAM is reserved to be able to save the state of the C64 when using the freeze function. This leaves 24kB of usable RAM for the Disk Copier program which is used nearly completely.
Contrary to my original intuition, the Disk Copier program uses almost all of the additional cartridge RAM if 32kB is installed. 👍