recording CD-ROM on Spectrum

ZXNet echo conference «real.speccy»

From Kirill Frolov To All 28 June 2003

Immediately click on RESET, All!

At the moment, recording CDs on the Spectrum is considered impossible due to
the limited speed of both the IDE controller and the Spectrum itself. The lowest possible write speed - 4 times - requires reading from the HDD and writing to the CD recorder at about 500kb per second. That is, at least 1MB/sec.
The existing IDE controllers do not allow reading more than 200kb per second,
writing is even slower.

It is easy to notice that if the disk image for recording
(*.iso file) is prepared in advance and is located on the HDD, then the main stream
of data can be transferred from the HDD to the CD recording device without any processing. In fact, for direct data transfer between two IDE
devices, only separate control of the IORD and IOWR
IDE bus signals is necessary; the remaining signals can be combined. It is obvious that a
single-channel (using one cable to connect two devices)
IDE controller cannot in any way separately control the
IORD and IOWR signals for different devices. And an IDE controller that has several
separate channels can. Moreover, for the purpose of simplification, all other
IDE bus signals, with the exception of IORW and IOWR, can be combined
for all controller channels. To record discs at 24x speed
the PIO-2 mode may be sufficient. ForHigher speeds
and higher speed exchange modes will require synchronization of devices
using the IORDY signal. Using DMA modes from my point of view
is unnecessarily complicated, although it allows you to further increase the exchange speed. In
PIO mode, to transfer a block of data between drives, Spectrum is required
only 256 times (block size is 512 bytes) to issue an IORD pulse to one
drive and an IOWR to another drive, which must be carried out
by the controller logic. To record a CD using this scheme, the HDD must produce the next requested sector without
delays, which is impossible.
Delays can be compensated by the cache buffer of the recording device
and the HDD. You should choose a write speed and a recording device with a buffer of sufficient size to compensate for the maximum delay
reading from the HDD.

This is me giving an idea of ​​how you can simply modify the IDE controller
and get both the ability to quickly transfer data between two drives
on different channels, and the ability to connect more than two drives.
For Hemo this is possible and simple, for Sprinter it may be...,
possible for SMUC and others. Ready-made circuits, software, etc. I don't have it.