Jump to content
IGNORED

Can an emulator write .wav cassette files (higher baudrate)?


globeron

Recommended Posts

Guys, I remember writing this! Stumbled upon this forum by accident. What do you want to know... icon_winking.gif

 

When I first started experimenting with the CRU inputs to read "the beeps from the cassette tape", I figured the format for basicode out at some point. It's pretty straightforward, with two frequencies, startbit, stopbit etc. I then applied the very same knowledge to create AFSK telex decoder, ZX-Spectrum loader, and turbo loader for the 4A. The latter was just the basicode format with less delay.

Oh, how very nice to have the original author available for consultation icon_smile.gif

 

Is the TI fastloader compliant with the protocol as described in http://www.brutaldeluxe.fr/projects/cassettes/bbc/k7_bbc_thechipshop_manual_ocr.pdf ?

 

The loader portion expects to run from BASIC and controls the tape motor to start playback, yes? What is the timeout duration until it gives up waiting for data, or will it wait forever?

  • Like 1
Link to comment
Share on other sites

What I'm looking for is the frequency for 1 and 0. I can work it out from there. Ultimately this will be folded into my bin->tape .wav generator, I think, but Ron just wants to see it working in any way possible icon_smile.gif

 

The way I implemented the loader back in the days, is to sample the frequencies during the lead-in tone of the playback. Then you can calibrate the speed of the CPU against the speed of the tape. With this mechanism you can speed up the tape if you want, and if your CPU can keep up, load even faster. You can then implement a loader without any magic constants, since they're all calculated on the fly.

  • Like 1
Link to comment
Share on other sites

Tonny, maybe you saw my post in this thread - I have a problem with the cassette routine in MESS. It does not start the cassette motor. The console cassette driver works without problems. In MESS you can see that the motor is active by a small pop-up window that shows the increasing cassette drive counter.

Link to comment
Share on other sites

Tonny, maybe you saw my post in this thread - I have a problem with the cassette routine in MESS. It does not start the cassette motor. The console cassette driver works without problems. In MESS you can see that the motor is active by a small pop-up window that shows the increasing cassette drive counter.

 

The way I remember it the cassette on/off switch is just another CRU register. Why not disconnect the motor control and start/stop the tape manually when the routine starts listening? I remember I had a cassette player that even didn't allow motor control...

 

The turboloader I wrote was derived from the basicode protocol. I think I increased the frequencies to the max that was achievable with somewhat reliable readback. I may have thrown out one of the two stop bits for an extra couple of percent... not sure. ;-)

Link to comment
Share on other sites

The problem is that the emulation assumes that the cassette motor is explicitly turned on and off by the CRU bit. If I wanted to get your loader running in MESS I would have to include a special switch just for this purpose. It would probably be easier to have a version of the loader that contains the missing SBO.

Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...