Do away with the cassette player and transfer files to and from a PC
(requires the ET3400 I/O accessory)
Sometime in early 2009 I was surfing the 'net and came across Ted Rossin's page describing a cassette interface to save files from a COSMAC Elf to a PC. The idea intrigued me because I had recently been fooling around with an old Heathkit ET-3400A trainer I had gotten in the 1980s.
Ted's page (If it's not working, try searching for his name and see if his hosting has changed)
Unfortunately, the Elf used a different tape format than the ET-3400A. The ET-3400A uses the so called Kansas City Format (KCF). I decided to try and do one for the ET-3400A and this is the result.
mycass.asm for PIC OR mycass.hex already compiled
MyCass.exe - Note: This is the front end for the PC side done in Visual Basic 5.0. You may need some Visual Basic library files (DLLs) for this to run. All my computers already have them and I'm too lazy to find out which it needs. You should get an error message for what's missing and then be able to find them on the 'net and put them in your SYSTEM or SYSTEM32 directory. Email me if you can't find one of them.
Set up the PIC:
Pick Cassette to PC or PC to Cassette in the drop-down box. For PC to Cassette, you have to have a file ready to send. For Cassette to PC you have to pick a file to save to.
Pick the Cassette Baud Rate. Not all old computers can use all the Baud Rates. Pick one you know you can use (The ET3400A can use 300 to 2400). If you're sending a file from the PC to the Cassette, you need to know what Baud Rate it was saved in.
Set up the PC:
For PC to Cassette, select the file to send.
For Cassette to PC, select the file to save to. Note that if you select an existing file it will write over part of what is already in the file. If the incoming data is smaller than what is already in the file, it will only overwrite the amount it needs. Best bet is to make a new file.
I'm no electronic genius so don't complain if I did something weird with this. I was an auto technician for 21 years and now work as a trim carpenter. I just play around with electronics as a hobby. I do whatever I can to get something to work.
I couldn't get the PIC to receive from the ET-3400A until I added an amplifier on the input. I happened to come across one in Don Lancaster's CMOS Cookbook which is still available from amazon.com. Thanks Don.
I added the 74HCT04 on the output for the same reason. I found inverting the signal didn't hurt anything since KCF depends on timing only.
I started to do a PC board for the project and then realized I could breadboard the thing in half the time. I used a Radio Shack perfboard and cut it down. I find their perfboards are cheaper than anyone else's.
Breadboard setup I used to work everything out. Note the ZIF socket with header pins underneath I use to swap the PICs out when coding changes. Breadboard
Perf board for the final version. The green LED sticks through the side of the case and is just to see if something is actually happening during transfer. Perf Board
I needed another serial port for using this. I need one to act as a terminal for the ET-3400A and one for the cassette interface. I bought a TRENDnet TU-S9 USB to serial converter from amazon.com and it worked fine using COM3. About $15.00 and if you order something else for $10.00+ you can get free shipping.
The ET-3400A can save files at 300 to 2400 baud. I found the interface worked reliably at all of them.
For actually working out the code, I needed to see the output format. I was going to use Ted Rossin's small logic analyzer, but I found it was easier just to record the output from the ET-3400A. I used the Goldwave wave editor I've been using for years, http://www.goldwave.com/. Well worth the registration fee. I started using it years ago to transfer records to the PC and remove the noise from scratches.
Actually, if you don't feel like building the cassette interface, I found you can transfer files back and forth from the ET-3400A to the PC just by recording them and playing them back in Goldwave. But that's not as much fun as building something more complicated to do it!
Jeff Thorssell - Remove the brackets in the email address to email: jthorsse[@]mchsi[.]com
My Trim Capentry