I have continued to modify Hoglets VHDL code top add support for cassette tape. I have also modified the keyboard code so that the characters match the PC keyboard, as I was getting fed up of having to remember where the equivalent Atom key was
I had a strange problem with the cassette VHDL code. I created the same logic as on the Atom (simple NAND logic), but I wasn't getting anything on the pin of the Papilio arcade wing. So I routed a number of debug signals to the LEDs, including the cassette out, and there it was. I modifed the code to assign the output of the logic to a signal and then to the port, and this seemed to fix the problem, although I'd really like to understand where the problem was. On my scope the digital cassette output looked very much as I might expect, two different frequency square waves.
I built the analogue circuitry on a plug in breadboard. It took around 10 minutes to find the parts and build. It took 15 minutes to find my old cassette player (in the last place it could have been)! It was a little dusty. I was able to play an old Atom tape and adjust the volume while monitoring the output of the cassette input circuit (simple Op-Amp) on my scope. I was actually quite impressed at the integrity of the signal, once I adjusted the volume.
I tried to use "*LOAD", but SDDOS got in the way and my guess of "*TAPE" didn't work. I tried to re-compile with no SDDOS ROM, but then I got the "Acorn Atom" sign on string but no prompt. Many years ago I did blow a ROM for 0xA000, so there must be some way that the Atom OS decides if there is something there or not, but I can't remember. So I added the SDDOS ROM back in and re-compiled.
I was able to use the simple tape check code from "Atomic Theory". The first cassette tape was a problem as it stalled. I guess that the rubbers are old and smooth. I tried roughing them up but it still didn't work. So I tried another random TDK cassette. To my suprise there was audio, the guy who used to present Film 19XX (can't remember his name, and I didn't like him anyway). It was a recording from radio I assume of one of the BBC transmissions of computer programs over the air. It sounded similar, but more screechy than the Atom. I think that you had to have special software for your computer to decode it. Anyway I found a blank space further on and recorded a stream of X's. I then ran the code which reads them back with BGET, and I got a stream of X's on the screen of the Atom. Neat. So tape I/O appears to be working.
So how do I temporarily disable SDDOS so that I can use "*LOAD" to load from cassette?