Experimental very fast tape loading

Anything related to the tools Tap2Wav, Tap2CD, Tap2Dsk, Sedoric Disc Manager, Tape Header Creator, WriteDsk, and generaly speaking tools related to the management of Oric data files and devices.
Post Reply
User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Experimental very fast tape loading

Post by Symoon » Wed Aug 03, 2016 8:54 pm

It's all there !
https://youtu.be/ZjN3SdGQVQE

Sadly can't seem to be that fast and work on any machine. As soon as I change, I have to (very painfully) set up again several parameters.

User avatar
iss
Squad Leader
Posts: 620
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Experimental very fast tape loading

Post by iss » Wed Aug 03, 2016 9:21 pm

Congrats! The speed is really impressive.
I think you can extend the idea and create kind of networking trough the tape port ;).

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Wed Aug 03, 2016 9:35 pm

iss wrote:Congrats! The speed is really impressive.
I think you can extend the idea and create kind of networking trough the tape port ;).
Thanks !
Networking PC and Oric through the tape port is an idea I've explored for yeaaars, but needed to improve skills on various sides:
- how to allow the Oric to be interrupted by an incoming signal (which is a real data signal)
- how to decode an Oric signal "live" on a PC/Mac
Quite another story !

About this attempt, I wanted to try to reach the fastest speed. But sadly it's not reliable (that's why TAP2CD doesn't go that fast: reliability!). What you see is a mix between TAP2CD-like accelerated loading, mixed with a little RLE compression (an empty Hires screen will load in 0.8s instead of 3.2 in the video)

Godzil
Squad Leader
Posts: 758
Joined: Sat May 21, 2011 7:21 pm
Location: Between UK and France
Contact:

Re: Experimental very fast tape loading

Post by Godzil » Wed Aug 03, 2016 9:48 pm

I would be curious to see side by side with the "normal" way of working.

For the network part I think that using the audio card is not a good idea, it would be better and more reliable to use a small microcontroller, probably connected to the PC via USB

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Wed Aug 03, 2016 9:57 pm

Godzil wrote:I would be curious to see side by side with the "normal" way of working.
Routines loading excluded:
Very fast: 3.2 seconds
Tap2CD: 6 seconds
Standard: 57 seconds :lol: (ok, with synchro)
Godzil wrote:For the network part I think that using the audio card is not a good idea, it would be better and more reliable to use a small microcontroller, probably connected to the PC via USB
Certainly better indeed, but the basic idea was, for non harware guys like me, to just have to buy a tape cable and be able to access to the PC hard drive ;)

ThomH
Flying Officer
Posts: 144
Joined: Thu Oct 13, 2016 9:55 pm

Re: Experimental very fast tape loading

Post by ThomH » Thu Oct 20, 2016 4:26 pm

Symoon wrote:Networking PC and Oric through the tape port is an idea I've explored for yeaaars, but needed to improve skills on various sides:
- how to allow the Oric to be interrupted by an incoming signal (which is a real data signal)
...
For what reason did you reject using the CB1 interrupt as a 'start listening' trigger? So the Oric would be off doing its other things, upon getting a CB1 interrupt it would attempt to receive a packet, which either would timeout quickly (if it was noise on the line) or else would be a real piece of content.

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Thu Oct 20, 2016 6:30 pm

ThomH wrote:
Symoon wrote:Networking PC and Oric through the tape port is an idea I've explored for yeaaars, but needed to improve skills on various sides:
- how to allow the Oric to be interrupted by an incoming signal (which is a real data signal)
...
For what reason did you reject using the CB1 interrupt as a 'start listening' trigger? So the Oric would be off doing its other things, upon getting a CB1 interrupt it would attempt to receive a packet, which either would timeout quickly (if it was noise on the line) or else would be a real piece of content.
I didn't reject anything ;) Just never found enough spare time to explore how to program: "how to time out when the Oric has recieved crap, and how to prevent the Oric blocking again and again if it recieves lots of crap".
It's certainly doable and maybe not too complicated, the only problem is... Me, and life ;)

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Wed Feb 22, 2017 10:08 pm

Hello! I need your help to test the reliability of an expected improvement on the very fast tape loading routines. Fabrice gave me (huge) hints on how to measure things in the best possible way (with a 3µs precision).

How to operate, once you downloaded the test kit:
- you need a perfect quality WAV player: quality of playback, and signal fully played (not cut at the beginning or ending)
- move away your cellphone and any other audio interference
- load MD3456-Interrupt.wav on an Atmos (no Oric-1, except if it has a ROM 1.1)
- RUN the program then load MD3456_test_sample_3_--___.wav and write the interval that appears after "Résultat final :"
- RUN the program then load MD3456_test_sample_4_--___.wav and write the interval that appears after "Résultat final :"
- RUN the program then load MD3456_test_sample_5_--___.wav and write the interval that appears after "Résultat final :"
- RUN the program then load MD3456_test_sample_6_--___.wav and write the interval that appears after "Résultat final :"
- finally send me those 4 results!

This allows me to know if all the Atmos will measure the same time interval between various very fast tape signal combinations. I need those results on a maximum of different Atmos machines. :D

Here's an example of results on one of my machines:
Atmos Paris: 3:[B7-AE] 4:[A2-9C] 5:[8D-87] 6:[75-6F]

Thanks in advance! :wink:
MD3456-Interrupt-test-kit.zip
New test kit
(5.86 KiB) Downloaded 106 times

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Sat Mar 03, 2018 9:05 pm

Calling testers again, hopefully with more feedback this time :mrgreen:
On Atmos (ROM 1.1 only), type
HIRES:CLOAD""

then try loading the wav file below (with a top quality player ;) )

Could you please then tell me if you see the boat loading, of if nothing happens?
Thanks!
_2018-03-03_v2_interrupt_3456rle3_webtest.zip
(54.73 KiB) Downloaded 49 times

User avatar
iss
Squad Leader
Posts: 620
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Experimental very fast tape loading

Post by iss » Sun Mar 04, 2018 3:12 pm

Downloaded, tested ... and here is the result:
20180304_145312.jpg
As you can see the are some transfer errors, in my opinion bytes are skipped from time to time.
Else, congrats it's really fast!
The only conclusion that I can make is: player need to be "top quality" :).
For playback I used my TapOric's WAV-file player, which is based on the default android's java MediaPlayer.
I think it's not the best option for Oric and it would be better to pass the data trough OpenSL API, as I do with TAP playback, but this requires more work - parsing of WAV files - it's on my (long) ToDo list.
Anyway, other interesting thing is that in my tests I used a "special device" connected between smart phone and Oric. This is the "so called" ground-loop noise isolator.
I don't know why but without this "magic" filter I was unable to see the boat. I will check with oscilloscope what is difference and how it improves the signal. I bought this filter just from curiosity and I'm still skeptical about its "miracle" possibilities, but my test are clear with it I see the picture every time, without it - no single success.

(off-topic: interesting story about the ground loop isolator - actually I bought it from China because the 1/2 price. But the china guy send me first a nice mini bluetooth receiver instead. On my complaint he sent me the right item immediately. So I have the bluetooth receiver as gift :))

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Sun Mar 04, 2018 3:31 pm

Thanks ISS!
Well, this is not the fastest possible speed but I've slowed down things a little (with stop bits) while trying to find a basic signal form that would work on a majority of Atmos. I only got 3 Atmos at hand, and it works on two of them; I suspect the 3rd has a random problem somewhere.

So far the signal uses wavforms of 3, 4, 5, 6, 7 and 8 samples, like this:
_-- _--_ _--__ _--___ _--____ _--_____

They are the ones that gave the best results on all machines, with any Oric apparently being able to separate them correctly (at a few microseconds) using the same values. But I think that some combinations are problematic on some Orics.

Anyway, if it fails on other machines, then I'll definitely have to slow down the speed or find some auto-calibration system which will be very complicated.

User avatar
Chema
Game master
Posts: 2247
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Experimental very fast tape loading

Post by Chema » Sun Mar 04, 2018 11:08 pm

Hi Symoon! Sorry I am failing miserably to help you, but I don't have my Oric ready for use now, and I had nearly no time for retro lately...

What is the comparison in speed from this method and the last tap2cd from Fabrice (used in SkoolDaze and Oricium)? Which are the differences?

EDIT: I've just re-watched the video and it is incredible :shock: I think Fabrice made tests and he could not go beyond 2 bits per signal level and got to the fastest speed that was reliable. Incredible.

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Mon Mar 05, 2018 12:41 am

No problem Chema, I was not expecting everyone to drop everything to test unreliable tape loading ;)

I think Fabrice did the best possible compromise between speed and reliability. TAP2CD is brilliant.

I've been trying to push the limits by using faster sinusoids, but I've been struggling ever since to try to make it run without modification on most Atmos (I don't even expect all).
I've also tried many different bits coding strategies, to finally find that what Fabrice did in TAP2CD is probably the best, so I'm using it. BTW little by little, trying to have more precision, my code gets closer and closer to Fabrice's TAP2CD (BTW Fabrice is giving a hand by replying to many questions I have ;-))

Here's roughly how it works:
- At the moment, I'm using sinusoids of 3, 4, 5 and 6 samples, where TAP2CD uses IIRC, 4, 6, 8 and 10. It's faster but some Atmos don't like that, or give different values reading the lenght of each sinusoid.
- I've also added a kind of small RLE compression: every repeated byte will be coded with only a sinusoid of 5, 6, 7 or 8 samples (to repeat 1, 2, 3 or 4 times). So speed will vary with repetitions.
- based on my previous statistics, showing that globally Oric programs hold (IIRC) 60% of zeroes and 40% of 1, I used the shortest sinusoids to code zeroes: 3 is "00", 4 is "01", 5 is "10", and 6 is "11".
With both these "improvements", Zorgon's Revenge loads in 20 seconds (not counting the loader).

And finally I have in stock a dictionnary that codes the 14 bytes that take the longest time in the program to load (based on occurencies of unrepeated bytes and their length). I only made the program to make the signal, and Zorgon lasts then only 15 seconds - but I didn't implement the decoder yet. It will require heavy modifications and I'm not sure it's worth doing if in the end the thing only works on a few Atmos...

I wanted to make it more reliable first, if possible! Some sinusoids combinations lead to different lenght measure by the VIA, and some Atmos then mix for instance a 3 samples length with a 4 sample length. I think I found the best values and I'd like to see on how many machines it works, to see if it's worth carrying on.
I "only" have 3 Atmos at hand; the WAV test I posted works on two Atmos here, and the 3rd seems to have random errors which I don't understand yet (I made test programs and visually checked one by one about 150 bytes which had no mistakes in the Amos interpretation...)

User avatar
Symoon
Archivist
Posts: 1351
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France
Contact:

Re: Experimental very fast tape loading

Post by Symoon » Mon Mar 05, 2018 1:22 am

By the way, I had made another video last year, a slideshow with many Hires screens.

You can see (and hear!) the effect of the compression when loading "empty" zones in some images.
https://www.youtube.com/watch?v=IHr-gsOn1vc

User avatar
Chema
Game master
Posts: 2247
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Experimental very fast tape loading

Post by Chema » Mon Mar 05, 2018 11:19 am

Most impressive indeed :shock:

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests