MP3@64 has been designed by Oliver Achten with some help of Jens Schönfeld. It was discontinued because the decoder-chip is not manufactured any more.
The MP3@64 is a MP3 player addon for C64 or Amiga machines equipped with a clockport (using a carrier card by individual Computers). It is based on the famous MAS3507-G12 MP3 decoder from Micronas Intermetall, and features a 24bit 96khz CS4334 DAC for high quality sound.
The interface is a 22-pin 2-row female pin header, raster 2mm. The port is also known as "clockport", because it was first used on the Amiga 1200 computer for connecting a real-time clock. Turned out that hardly anyone ever used it for that purpose...
Many products by individual Computers today feature this connector in both the Amiga and C64 market.
Communication between the MP3@64 and the host computer is established by a CPLD which provides automatic parallel/serial conversion of the MP3 data, and a simple CPU-driven I2C interface to the MP3 decoder. The following register addresses apply to the C64 with an MMC64 card. Please refer to the end of this document for address translation if used on an Amiga computer.
(assuming the clock port base is $de00)
$DE04 (W): MP3 data port
Byte written to this register is sent to the MP3 chip immediately. The value requires about 10 CPU clock cycles (8680ns) to be transferred to the MP3 chip.
$DE04 (R): MP3 status register
bit 7: 1 = MP3 chip requires more data, 0 = MP3 buffer is full
$DE05 (R/W): I2C data register
bit 0: 1 = set I2C data high, 0 = set I2C data low
$DE06 (R/W): I2C clock register
bit 0: 1 = set I2C clock high, 0 = set I2C clock low
On power-up, the MP3 chip is immediately ready to recieve MP3 data and I2C commands. That means any MP3 data stream which is written to the MP3 data port will be played back almost instantly, as soon as the chip has enough data to start decoding. Remember that transferring one byte to the MP3 decoder takes about 10 clock cycles, which means that consecutive write accesses to the MP3 data port have to be slightly delayed (use "nop" for PAL and "bit $80" for NTSC machines). To prevent buffer overruns to the decoder, you have to check bit 7 of the MP3 data port regularly. However, you are still on the safe side if you check this bit every 16 bytes, to speed up the data transfer (the chip has a small compensation for buffer overruns).
Access to the internal MAS3507 chip registers is etablished by using the I2C data Interface. For further details on this issue, please consult the MAS3507 data sheet. Be prepared that further revisions of the MP3@64 add-on might use a different MP3 data decoder, which may not be compatible with the MAS3507-G12 internal register structure.
AMIGA ADDRESS TRANSLATION
If connected to an Amiga computer, the addresses are mapped differently according to this table:
$de04 -> Base + 0x10 $de05 -> Base + 0x14 $de06 -> Base + 0x18
The base address of Amiga clockports can be found in the respective hardware documentation. Please mind that using the card in a bare A1200 is not possible, as the kickstart roms get in the way. Same with the A500 clockport adapter: The processor gets in the way, and either a spacer or a cable must be used. It is recommended to only connect MP3@64 to a Zorro-card or to one of the clockports of the Z4 board.