OUT_OF_TZX!
ZXNet echo conference «real.speccy»
From Alexey Voskresensky → To All 29 May 2003
On Wednesday, May 28, 2003, at exactly 09:16:52, the connection unexpectedly
was interrupted. I miraculously managed to detect only half-strangled:
-"TZX to REAL TAPE..."...
The product is ready. At the moment I am testing and making
all sorts of minor service improvements.
It will be released in a week, approximately on June 6 (after all, the utility
is dedicated to A.S. Pushkin - a big fan of the ZX
Spectrum computer, a recognized ace of the Russian language and the BASIC language,
therefore the release of the program is timed to coincide with his birthday).
SY> Hy So why hasn’t she arrived here yet? Who is the author of the program? Which TZX's
SY> understands.
Understands _any_ tzx's. After all, writing a program to record
standard blocks onto a cassette (a la tap, turbo tap) makes no
sense. For what? If we're going to write, then let all sorts of alcatraz, speedlocks, biploads and other powerloads work :) work. For this,
actually, the utility was created...
(In general, a separate converter was made for 'unprotected' tzx's,
which rips blocks of data from the file and puts them on a tr-dos
disk.)
But not everything is so smooth, there are also disadvantages:
1. Owners of computers with 128K RAM are not very lucky - after all, _very_ large tzx's may not fit into regular 128K
memories. And of the computers with extended memory in the first version
onlyScorpion-256, Kay-256.
2. Some 'Direct Recording' blocks are skipped (this is like a
.wav file inside a tzx file - in general, these blocks are
very, very rare in nature. About 1 file out of 500
.tzx files. Therefore, we will assume that this is not a big deal :)).
'Direct Recording' blocks that have a sampling frequency
more than ~8000 are skipped Hz Because the sampling frequency
equal to, say, 22050 Hz or (even more so) 44100 Hz is impossible for the old Spectrum to handle... And without this there is enough work - at
3.5 megahertz the poor ZX has to do what some
computers do with a creak at their three hundred megahertz!
SY> I remember I also tried to write a similar program, but
SY> gave up because I was tired
SY> of adjusting everything clock by clock...
Implemented with decent accuracy: error +-0...8 clock cycles
(this is very acceptable :)).
Good luck!
P.S. In short, be patient for a week... It was not in vain that I asked the question - it became
clear that five people want to [try] loading programs
from a cassette. This makes me happy. :)
...
From Stanislav Yudin → To All 30 May 2003
29 May 03 21:24, Alexey Voskresensky -> All:
AV> But not everything is so smooth, there are also disadvantages:
AV> 1. Owners of computers with 128K RAM are not very lucky -
AV> - after all, _very_ large tzx's may not fit into regular ones 128K
AV> memory. And of the computers with extended memory in the first version of
AV> only Scorpion-256, Kay-256 are supported.
When I was doing something in the same direction, I had the idea before
playing TZX to start analyzing it and if the entire file does not
fit into memory, but there are pauses of more than a few milliseconds in it, then
consider these as different blocks and consider that the pause can be increased, and during
it additional blocks that do not fit into memory can be added.
AV> 2. Some 'Direct Recording' blocks are skipped (this is similar to
AV> .wav file inside a tzx file - in general, these blocks are very, very rare in nature
AV> About 1 file out of 500
I haven’t come across any of these. pull... And without this there is enough work - at 3.5 megahertz the poor ZX has to do what some AV computers do with a creak at their three hundred megahertz!
That's why I love the Spectrum... :)
From Kirill Frolov → To All 30 May 2003
AV> memory. And of the computers with extended memory in the first version of
AV> only Scorpion-256, Kay-256 are supported.
That's always the case. I hate Scorpio.
AV> are very, very rare. Approximately 1 file out of 500
AV> .tzx files. Therefore, we will assume that this is not scary :)).
AV> 'Direct Recording' blocks that have a
AV> sampling frequency greater than ~8000 Hz are skipped. Because the sampling frequency
AV> is equal to, say, 22050 Hz or (even more so) 44100 Hz for the old man
AV> Spectrum can’t handle it...
Absolute nonsense, about not being able to handle it. Through covox you can also play wavs. Without covox if, PWM-ohm, really, 8000 limit.
From Alexey Voskresensky → To All 31 May 2003
-"OUT_OF_TZX!"...
SY> When I did something in the same direction, then I had
SY> thought before playing
SY> TZX to start analyzing it and if the entire file does not
SY> fit into memory,
SY> but there are pauses in it for more than a few milliseconds, then
SY> regard these as different
SY> blocks and assume that the pause can be increased, and during it
SY> add blocks that do not fit into memory.
Before playing, the file is sucked from the disk into memory, while
everything unnecessary is cut out, all sorts of txt infos, etc., so that there is more space, in the process of absorption - the structure is analyzed, the data is analyzed, and it is recoded into its own format (more
convenient for output). Thus, we get some semblance of
compression.
And about finishing the file in pauses between blocks:
Naturally, at the initial stage of creation, the exact same thought occurred to me. I looked at it from all sides for a long time, but gave up on it completely!!! And here's why:
1. There is such a thing in tzx files - 'jump to block' and
'loop' (cycle). Imagine that we sucked part of the file into memory, output it to the tape, sucked in the next part of the file, output it to the tape and suddenly encountered the command 'go to block X', and this block X was located in the first part of the file, which inThe memory has been gone for a long time. You will have to load the first part
of the file, AND THIS IS TIME!!!, to which the loader can be
critical.
2. Another interesting thing in tzx files: It’s called
CALL block. This is similar to GOSUB: RETURN. Let's imagine that we
sucked in a part of the file, output it to the tape, encountered the
CALL command, and call to that part of the file that is not currently
in memory. You have to load the required part of the file
(wasted time), execute the called block in order to return -
you have to load the first block (wasted time again). The result is
sad.
I will do it simpler - in the second version I will support
extended memory (>128K) for other computers (if there are
wishes).
From Yurik Tolokonnikov → To All 2 June 2003
Bah, who do I see!!! Hello, All
As I understand, the subject is for real life. Will this program output to the tape recorder such things as speedlocks, bleepload, etc..??
73! All, I wish you a lot of luck and summer cottages by the sea! ...
[*RA9SJI*] [Speccy] [Music] [HamRadio] [Fido]
... np: Winamp silently watches TV..
From Vassili Klimov → To All 3 June 2003
AV> I'll do it simpler - in the second version I will support
AV> extended memory (>128K) for other computers (if there are
AV> wishes).
why not in the 1st? what problems?
pokedova Alexey
jtn\\4d