Sorry for jumping in late, I just discovered this topic.
This morning I'm pulling in a routine in z88dk able to load data stream in ZX Spectrum format.
The loader calibrates its speed by probing the monitor to understand whether it is running on a Sharp MZ-700 flavor or an earlier system.
In the latter case it assumes it is a 2Mhz CPU.
When run on the MZ800 the border effect is visible.
- mz800_zxhdr.png (24.91 KiB) Viewed 1016 times
- mz800_zxdata.png (25.13 KiB) Viewed 1016 times
The possible "level up", after this concept, is to borrow the "extra turbo" loader I prepared for the ZXSpectrum on z88dk-appmake.
It is a one-way tool which prepares a specially encoded audio stream with 3 levels, thus '1', '0', and 'ESCape'.
When the 'escape' sync is met, the loader boosts at byte level, e.g. repeating the last received byte.
Consider it a kind of RLE compression decoding at runtime. Obviously the original audio stream was prepared on a PC, which can predict the future data sequences while crafting the audio file, which means that a corresponding SAVE command would be rather complex.