Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Reliable tape loader testing
2021-11-23 15:35
Martin Piper

Registered: Nov 2007
Posts: 722
Reliable tape loader testing

From the other tape related thread, a point was raised about reliably testing a loader without needing to use a variety of tape decks.

The TapeTool utility that is included in the latest release includes the ability to add a constant or random variance to the pulse bytes in a TAP file: TapeTool 1.0.0.7

This should work on any TAP file of course. By running several passes on the same TAP file it's possible to apply cumulative variances to the tests.


I've prepared some example TAP files in this archive: https://drive.google.com/file/d/15qtoJx3e0hKtdE7sUUxBPdJ8deWfhy..

The original file "test.tap" has not been modified. The turbo portion uses a TAP file pulse byte values of $20 and $40. Note that this loader uses load time decompression of the blocks, which means the bandwidth on uncompressed data is actually faster than expected.


"tesp_p.tap" uses this to add a constant positive value of 7 to the tape file bytes:
copy /Y test.tap test_p.tap
TapeTool.exe d test_p.tap 7


"tesp_m.tap" uses this to add a constant positive value of 7 to the tape file bytes:
copy /Y test.tap test_m.tap
TapeTool.exe d test_m.tap -8


"tesp_r.tap" uses this to add a random variance of +/- 3 to the tape file bytes:
copy /Y test.tap test_r.tap
TapeTool.exe v test_r.tap 3

Note the TAP file byte length is not changed, only the pulse (edge) lengths represented by the bytes are changed.

These values are the largest reliable values I found under testing.

Random variance is the hardest for the kernal to deal with since the calibration code is more geared towards a tape deck that runs consistently faster or slower. A random variance of 3 seems to be the maximum supported without seeing a load error.

A constant -8 value, which makes the TAP file quicker to load due to much shorter pulses, also seems to be the minimum the kernal loader will cope with.

A constant 7 value, which makes the TAP file much slower to load, is the largest value my turbo seems to handle without a load error.

This is the approach I use when testing the reliability of the loader under emulation. It's substantially more reproducible that trying to us a real C2N.

Discuss :)
2021-11-24 09:49
tlr

Registered: Sep 2003
Posts: 1790
I did a small tool for testing my loaders which currently just adjusts the apparent tape speed. Was thinking about adding jitter, but at the time wasn't up to fixing a good normal distribution random function.

Ideally you'd want such a tool to more or less convert to wav, filter, and then back.
This might be feasible using already available tools like wavprg and sox.

I suspect the wav->prg direction might not be identical to how the datasette does it though. Also, the actual tape won't be modelled this way.

I guess I'll at least add jitter to my tool.
2021-11-24 13:23
chatGPZ

Registered: Dec 2001
Posts: 11386
I should mention that the VICE wobble settings can be used aswell :) Reminds me i need to add a constant offset setting too...
2021-11-24 15:45
Martin Piper

Registered: Nov 2007
Posts: 722
Quote: I should mention that the VICE wobble settings can be used aswell :) Reminds me i need to add a constant offset setting too...

Oh wow, I've been using tape wobble 10 without even realising it.
2021-11-24 15:47
chatGPZ

Registered: Dec 2001
Posts: 11386
:) Thats infact why it was added - so people dont accidently make tape loaders that only work in the emulator.
2021-11-24 16:33
Martin Piper

Registered: Nov 2007
Posts: 722
Well now I know why I was seeing a bit more wobble than expected when the TAP file had no wobble. I put it down to bad lines and the enabled sprite.
2021-11-24 19:11
Pex Mahoney Tufvesson

Registered: Sep 2003
Posts: 52
Now that I've got you tape experts' attention, bear with me a dumb question:

Would it be possible to "sync" a tape using motor on/off to get approximately the correct bytes loaded within a frame?

I mean, now I'm hearing talks about >10kB/s tape loading - and a disk based demo production today will mostly read sequential data from floppy anyhow.

So
1: would a multi part demo loader be possible by turning the tape motor off until the data is needed for the next part? Why haven't we seen this in the demoscene, yet? Or have we?

2: Could we use this motor control to adjust the tape loading speed to give us ~150 reliable bytes per frame, at a certain uninterruptible clock cycle cost, of course.

Any ideas? / Pex "Mahoney" Tufvesson
2021-11-24 19:41
chatGPZ

Registered: Dec 2001
Posts: 11386
the motor can be turned on and off ofcourse, but the delays it introduces and the deviation between individual devices will be more than desired :)
2021-11-24 20:28
tlr

Registered: Sep 2003
Posts: 1790
Quote: the motor can be turned on and off ofcourse, but the delays it introduces and the deviation between individual devices will be more than desired :)

probably, but I guess to some extent it might be (slowly) pulse width modulated, and the resulting speed could be measured
2021-11-25 01:17
Krill

Registered: Apr 2002
Posts: 2980
Quoting Pex Mahoney Tufvesson
now I'm hearing talks about >10kB/s tape loading
That's >10 kilobits per second, not bytes.

So...
Quoting Pex Mahoney Tufvesson
tape loading speed to give us ~150 reliable bytes per frame
no. =)
2021-11-25 07:08
Martin Piper

Registered: Nov 2007
Posts: 722
Maybe 15 bytes per frame at 50 Hz.
:)
 
... 6 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
ptoing
Guests online: 105
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 Tim  (9.7)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.047 sec.