PSID510 v0.3

Description:

PSID510 v0.2 is a program that converts SID-tunes, Compute SID-player tunes (MUS) and Compute Stereo SID-player tunes (MUS+STR) to a CBM510 program which plays the tune on a real (or emulated) CBM510.

Windows download:

PSID510.zip

Source-code download:

PSID510.tgz

SID Tune technical specs:

The tune itself is put in ram bank 1. A bank-switching routine which is put in a piece of shared memory at $0400-$07FF is used to play the tune. Because the SID-chip in the CBM510 is located at $DA00 instead of $D400 as on a C64/C128 the converter translates machine language instructions that put data in the range of $D400-$D41C to subroutine-calls that will do the same thing at $DA00-$DA1C, this translation is not smart (yet) so at that point some tunes could get corrupted. The valid ranges for a tune to be played are $0800-$FFFF. The player uses a rastertimer to play the tune.

SID Tune Limitations:

A tune will definatly not work if the tune does 1 of the following things:

- writing to address $0000 (on the CBM510 this address is used for bank-switching, changing this address might kill the player)

- writing to address $0001 (on the CBM510 this address is used for accessing ram banks, changing this address might cause no sound to be produced)

- writing to address-range $0400-$07FF (the bank-switching routine resides in this range and would be killed)

- jumping to C64 specific rom/kernal routines (since the CBM510 doesn't have the same rom/kernal and because the rom/kernal are mapped out during the playing of the tune, jumping to such a routine would cause unknown conditions, and probably wind up jamming the CPU)

- changing machine-language instructions inside the range that the tune uses (it might cause unknown conditions or no sound to be played)

MUS technical specs:

.MUS files are Compute SID-player tunes, PSID510 now has support for these kind of tunes. The tune itself is place in ram bank 1 at $0800. A player at $E000-$ECFF in bank 1 is used to play the tune. Therefor the maximum convertable size of a MUS-file is 55296 bytes.

MUS+STR technical specs:

.MUS+.STR files are Compute Stereo SID-player tunes, PSID510 now has support for these kind of tunes. The .MUS part of the tune is put in ram bank 1, starting at $0800. The .STR part of the tune is put in ram bank 0, starting at $2800. A bank-switching routine which is put in a piece of shared memory at $0400-$07FF is used to play the tune. The I/O area at $DA00-$DAFF is banked in so the SID-chips can be accessed. Therefor the maximum convertable size of a MUS+STR-file is 47104 bytes. The second SID will have to be located at either address $DA20, $DA40, $DA60, $DA80, $DAA0, $DAC0 or $DAE0 in order for this player to work.