ATAPI CD-ROM timings for each command transfer and data transfer?

Emulation of old PCs, PC hardware, or PC peripherals.

ATAPI CD-ROM timings for each command transfer and data transfer?

Postby superfury » 2019-7-29 @ 13:28

So, currently I have these timings(all are in nanoseconds, as double floating point numbers):

//Timeout for a reset! We're up to 300ms!
#define ATA_RESET_TIMEOUT 300000000.0
//Timing for drive select(documented as 400ns).
//Timing to execute an ATAPI command(from finishing the command packet(12th byte) until start of the command to execute.) Also used during waiting for the drive to spin up.
//Timing for ATAPI to prepare data and give it to the host after starting the command!
//Timing for ATAPI to prepare result phase and give it to the host(time from the final transferred sector/block) and entering the result phase!
//Timing until ATAPI becomes ready for a new command during finishing command A1(IDENTIFY PACKET DEVICE) and command DA(GET MEDIA STATUS).

It's currently reporting to be reading a 1024KB/s. Anyone got an idea what those value are supposed to be with a 1x CD-ROM drive?

Edit: I also noticed OAKCDROM.SYS failing to detect the CD-ROM drive when CPU speeds are too low(seen at least at 0.3 MIPS(million instructions per second) speeds and below)? Anyone knows something about that? The CPU speed is the only one affected by the cycle speed setting, the hardware timings themselves are constant(except they might be slightly affected by larger CPU timings due to the higher amount of nanoseconds to update in one chunk(which is updated for each instruction executed, so at 1 IPS, the hardware all updates in chunks of 1000000us, at 1KIPS in chunks of 1000us, at 1MIPS in chunks of 1us).
Posts: 3228
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Return to PC Emulation

Who is online

Users browsing this forum: No registered users and 1 guest