3 ms·
Not especially relevant to the article, but reading it describing 150 baud tape systems made me think that people reading it might like to hear about my efforts
by ralferoo 3y ago
Not especially relevant to the article, but reading it describing 150 baud tape systems made me think that people reading it might like to hear about my efforts at creating a turbo loader about a decade ago for the Amstrad CPC (a British machine from 1984).
It manages 2688 baud for uncompressed data using a proprietary encoding format, but actually it operates on a system that encodes a symbol larger than a byte (ranging from 0-276) in a constant time, and uses the extra 20 values to indicate the presence of RLE data which allow repeated data to be decompressed in real-time.
On the Amstrad CPC, each screen line is 63us, and the encoding relies on signals that nominally last 3 or 9 screen lines. There's a small code fragment that takes 20us which detects if a tape pulse has occurred and if so, it executes the code to decode the signal, otherwise the remaining time is used to block copy a few bytes if there are outstanding RLE instructions, or used to allow something else to run in the background, such as a music player, so it's effectively a co-operative multi-tasking OS in a tape loader!
I had plans to do more complicated effects, so as drawing sprites based just on coordinates, but sadly ran out of time before the demo was presented.
More technical detail is here: https://github.com/ralferoo/breaking-baud/blob/master/docs/technical.txt https://github.com/ralferoo/breaking-baud/blob/master/docs/t...
And there's a live video of it here: https://www.youtube.com/watch?v=D62jpqZ6TG4 https://www.youtube.com/watch?v=D62jpqZ6TG4
The demo video doesn't show explain what it's doing, so the loading speed doesn't seem as impressive, but each time there's the wide green border bars, it's actually the boundary of a new 16KB block being read in, and each image builds on top of the previous screen. Similarly, the screen clear is an example of a 16KB RLE section.
A slightly older proof of concept video (WARNING - do not watch if you are sensitive to flashing flights!) that shows the speed more clearly is here with a sequence of random images is here: https://www.youtube.com/watch?v=qfGcvWOaFFw https://www.youtube.com/watch?v=qfGcvWOaFFw - for comparison, these images are all 16KB and would normally take nearly 3 minutes each to load.