|The MOS Technology
SID is the single-chip synthesizer to which the venerable Commodore 64 computer
owed its voice. The best known way of connecting it to the PC is
the HardSID. This card has a
very good reputation, but I cannot afford it - and it could not work
with my laptop. Thus, I decided to solve the problem using the
contents of my junk bin.
This is quite possibly the simplest imaginable PC-to-SID interface. The 8 data lines of the PC parallel port are connected directly to the data port of the SID; the first five are also connected to a latch, the output lines of which are connected to the address lines of the SID. To write a byte to a SID register, the address of said register is latched, the data lines are set to the correct state, and the chip select is enabled. Reading a register is also possible, in a similar way.
The clock signal for the SID is provided by a 1MHz oscillator, visible on the right. Somewhat excessively sized capacitors ensure a clean power feed. There is a variable regulator which can be adjusted to allow either a 12 or 9 volt SID (I own the latter, a 6582A.) The somewhat untidy schematic is available for your viewing pleasure/pain.
This design is mind-numbingly simple, with the total cost of construction approaching $10 US (not including the SID, of course.) As expected there are some shortcomings. Most importantly, the apparatus must be connected directly to the PC's parallel port - no cable of any kind can be used. This is a result of the direct connection between the DSUB-25 connector and the SID's data port. The SID is not sensitive enough, and the impedence of the cable will result in missed writes and bizarre sounds. Additionally, there is no means of adjusting the clock frequency. Personally I have not been bothered by this fact. In the planning stages of this design I considered using the system clock crystal and divider from an actual C64, but decided against it, preferring to limit the Commodore cannibalism to a strict minimum.
UPDATE (November 26, 2006):
The part placement diagram and PCB layout image (negative) have been posted, by request. Do not use these images unchanged to construct the circuit. They contain mistakes! For instance, the oscillator is placed backwards. There are others! The mistakes can be corrected by drilling holes differently and applying some patch wire (or by fixing the PCB mask!) Use your brain.
UPDATE (November 5, 2006):
VICE (starting at version 1.20) now includes Marco van den Heuvel's patch for supporting this card. Anyone who has built according to my schematics and tested the new driver is invited to write to me.
UPDATE (March 18, 2006):
Marco van den Heuvel has created a patched version (local mirror here) of VICE with support for this card. To enable support, use the --enable-parsid configure option. I have not tested this yet.
The old driver, still available, is a hacked version of Sinsch's HardSID mod for VICE. Replace sid.c with the patched one and compile. The parallel port is accessed via barbaric port writes and thus the emulator will now run only as root (with sound enabled.) I have tested this setup under FreeBSD 5.1.
The sound quality in my opinion is very good, except for those songs which make heavy use of filtering, as I was unable to locate proper filter capacitors at the time the apparatus was built (summer of 2003.)
MP3 recordings were made on a Sound Blaster AWE64 Gold (44.1kb/s, 16 bit mono):