Happy New Year! It's January 1st, and that means it's the first day of the 2013 Retrochallenge Winter Warmup!
This year I'm going to be tackling a small project, something I know I can finish in a month. I want to add cassette mass storage to a 6502 Single-board computer that I built about a month ago. It's a nice little computer, but without any kind of storage system for programs it's kind of useless.
Naturally, the project will require both hardware and software. Today I've been doing research into how cassette storage worked on a few classic systems: The TRS-80 model 1, SYM-1, the AIM-65, the Apple I, and the Apple II. After briefly evaluating all of these, I think I'm going to just steal from take inspiration from the Apple II Cassette Interface. It has two big advantages: It's very well documented, and both the hardware and software are extremely simple. Of course it has some drawbacks, too. In part due to its simplicity, the Apple II Interface was finicky and required careful setting of the tape audio level on playback for everything to work right. I think I'm OK with that trade-off.
On the hardware side, the cassette interface should require very little. For I/O, I'll only need one pin on my 6522 VIA. Writing will be done directly, and reading will use an LM741 Op-Amp as a zero-crossing detector, just like the Apple II. Software will use polling and a counter to determine whether two logic level transitions are a one or a zero, just like the Apple II.
I suspect the hardest part of all of this will be getting the tape record and file format right. My goal here is NOT to be 100% Apple-II compatible, so that gives me some leeway.
Wish me luck!