Pr0f wrote: Wed Jan 10, 2024 11:13 am
That was also my understanding - that if the QL was writing data - it would be present on the head, and would not be there if we were reading - it would expect the tape to be providing it.
I would think for reading vs writing, there would be a voltage passing through the magnetic coil in either instance, but for reading it would be low, to allow for picking up the magnetic pattern on the tape, and for writing it would be high, to change the pattern. Am I thinking of that incorrectly? Is the magnetic pattern on the tape strong enough for no voltage to be required on the coil to pick it up?
Since the QL would normally spin up the tape before attempting to write anything, and as I understand it - it needs to find already written markers on the tape, it would always be in the 'reading state' initially. You won't know a write is coming from the point of view of a cartridge, until it actually starts to write the tape (either as a format or write of a file). Some buffering would therefore have to be done to avoid missing any data, but since the entire capacity of a cartridge is only some 120K - this could potentially be handled.
Since this is done computationally, buffering would not be an issue. Also, the assumption would be, whatever solid state computing mechanism is deployed, it would be fast enough to adjust accordingly. Again, what we are talking about is emulating the properties of a magnetic tape electronically (i.e. however it is stored as data, it would provide the equivalent of magnetic signals through the sold-state micro-cartridge's magnetic head form the computing platform's end).
So presumably the sequence:
Spin up motor
Wait for tape markers
If tape marker detected - cartridge is formatted, if no tape markers - cartidge not formatted - throw an error (for real tapes)
If writing - wait for gap and start writing blocks
if reading - wait for gap and start reading blocks
This is a gross over simplification of course - but that's my understanding of it.
So it seems that first the QL's microdrive mechanism reads the tape (presumably to see if it is dealing with formatted media). Then, if it's about to write, presumably the voltage on the coil would change. On the emulated micro-cartridge end that voltage change would be detected and used to start capturing bits to collect in writing on the virtual tape. I guess the thing to better understand is, when writing, how are the high vs low signals represented and how do those compare to voltages (if any) when reading (i.e. are there any voltages passed to the coil when reading).
For physical magnetic media, when writing, it is being changed by the high/low voltages of the coil, whereas when reading, it is not. So do those low (or non) voltages differ, or is it just that a lack of voltage leaves the tape in a certain state that the erase head left it in (note that I have doubts that is the case, which I will articulate at the end). In that case, reading the tape and writing a low signal to the tape would be identical and make it trickier for detecting read vs write. Perhaps there is some time delta that signals that you are in a write mode (i.e., once a high signal for writing is detected, the next low is assumed to be a low until it stays low for long enough to be back into read-mode).
Here is why I have my doubts. In the previous post I pointed to a Quora post where it said that you could record audio without the erase head. It might not sound as crisps, since the randomness of the remnants of the previous recording could impact the new one (i.e. the magnetic material is all over the place and one pass of recording has to orient it properly and so if you erase, everything is oriented uniformly making that process cleaner). One way to test that is to remove the erase head and record no audio onto a tape that already has audio. If silence is being written in analog, should the original recording remain? It's not a perfect experiment because "silence" may not mean a complete lack of recording in the analog domain, but would the previous signal be stronger than if you record a conversation? Perhaps "silence" could be represented by turning off the mic by plugging in a 3.5 mm cable without a mic on the end (I used to do that to clean a tape as a kid to erase it more cleanly). Something to try.
Unfortunately I don't have the technical know-how to build such a solid-state drive at the moment (not that I'm not willing to learn). However, I think what I can build is an audio version of that using a cassette car adapter, a cassette deck, my computer, and a Python script that can scan for any input on the mic channel. I've done that before when doing a neat experiment to create an in-between translator that allowed my ZX81 to transfer a program into my TRS-80 Pocket Computer. The ZX81 would save to the computer, where a Python script was monitoring the input mic to recognize a decidable level change and started recording, then followed by translating it to the TRS-80 PC-1 format as a wave file, and sent it automatically to the TRS-80 Pocket Computer that was listening on the audio port. I got it to work pretty easily. So stay tuned for that in the next few months (I'll create a video on that).
I would need help in developing a solid-state micro cartridge. What platform is small enough and powerful enough to be able to connect to a magnetic tape head and read and write signals to it, and fit into such a small form-factor, etc... I think it could be a cool project and the end result would be a neat solid-state reproduction of a micro cartridge that could be plugged into a QL (or Spectrum) and behave as a flawless cartridge with no read/write errors. It wouldn't be any better than a vDrive (i.e. just as slow), so the need for it isn't necessarily there, but still, would be cool to develop such a thing. It would be better than the Smart Media floppy disks that were created in the 90's for cameras (i.e. Flash Path), since those needed floppy drivers to deal with that medium -- the solid-state micro-cartridges would behave exactly as actual cartridges with no change to the QL.