recording CD-ROM on Spectrum
ZXNet echo conference «hardware.zx»
From Kirill Frolov → To All 28 June 2003
Press RESET immediately, All!
At the moment, recording CDs on the Spectrum is considered impossible due to
limited speed of both the IDE controller and the Spectrum itself. Smallest
Possible write speed -- 4x requires reading from HDD and writing to
CD recorder about 500kb per second. That is, at least 1MB/sec.
The existing IDE controllers do not allow reading more than 200kb per second,
The recording is even slower.
It is easy to see that if the disk image for recording
(*.iso file) is prepared in advance and is located on the HDD, then the main thread
data can be transferred from the HDD to the recording device without any processing
CD device. In fact, to directly transfer data between two IDEs
devices only require separate control of the IORD and IOWR signals
IDE buses, other signals can be combined. It's obvious that
single-channel (using one cable to connect two devices)
The IDE controller cannot control signals separately in any way.
IORD and IOWR for different devices. And an IDE controller having several
separate channels will be able. Moreover, for the sake of simplicity, all the rest
IDE bus signals, except IORW and IOWR, can be combined
for all controller channels. For burning discs at 24x speed
PIO-2 mode may well be sufficient. For higher speedsand higher speed exchange modes will require device synchronization
by signal IORDY. Using DMA modes from my point of view
unnecessarily complicated, although it allows you to further increase the exchange speed. In mode
PIO for transferring a block of data between drives from Spectrum is required
only 256 times (block size -- 512 bytes) issue an IORD pulse for one
drive and IOWR to another drive, which must be done
controller logic. To record a CD using this scheme, the HDD must be
delays in issuing the next requested sector, which is impossible.
Delays can be compensated for by the recorder's cache buffer
and HDD. You should select a recording speed and recording device with
a buffer of sufficient size to compensate for maximum latency
reading from HDD.
This is me giving an idea of how you can easily modify the IDE controller
and get the ability to quickly transfer data between two drives
on different channels, and the ability to connect more than two drives.
For Nemo it is possible and simple, for Sprinter it may be...,
possible for SMUC and others. Ready-made circuits, software, etc. I have no.