CD Reading

Hello All ,
How to read the CD data at a location determined by angular position. Or
how can I read data which is X mm from centre and Y mm from starting bit.

Is that possible ??
Ok if not usually , then how can I go for that ?

Please suggest me anything like books , net articles , your suggestions
etc.please please please…

I’ll bite… what is the goal? Just curios…

-Justin

At 02:24 AM 2/22/2003, you wrote:

Hello All ,
How to read the CD data at a location determined by angular position. Or
how can I read data which is X mm from centre and Y mm from starting bit.

Is that possible ??
Ok if not usually , then how can I go for that ?

Please suggest me anything like books , net articles , your suggestions
etc.please please please…


You are currently subscribed to ntdev as: zeppelin@io.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

OK …
How a Highest level CD-ROM driver read the CD ??

Using Logical Block Address ( logical sector number ).

Bala

-----Original Message-----
From: krishnaa [mailto:xxxxx@nothing.com]
Posted At: 24 February 2003 11:02
Posted To: ntdev
Conversation: [ntdev] Re: CD Reading
Subject: [ntdev] Re: CD Reading

OK ...
How a Highest level CD-ROM driver read the CD ??

You are currently subscribed to ntdev as: xxxxx@avantisworld.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Can I query the distance between current point (Where laser head is
reading) and the CD centre ??? is that possible ?

How much fine control can I have over reading , like memory location by
memory location reading etc.

Cdrom’s can be read in multiples of blocks. Depending on the mode
you’ve put the drive in the block could be between 2048 and about 2300
bytes in size (all blocks are actually the largest size - the smaller
versions use some of that block for error-correcting codes.

The SCSI-2 specification has a chapter on cdroms where they tell you the
formula for converting from time-based operations (minute:second:“frame”

  • ie. 75th of a second) to block size in the event you want to read at a
    particular time-point on the CD. Since the table-of-contents is
    described in temporal terms this is useful when attempting to play a CD
    track.

I suspect with some measurement you could compute a particular r/theta
coordinate for any spot on the disk. However in the end it always falls
back to which block do you want to read. And those you can read from
kernel or user-mode the same way you’d read from any device (ReadFile,
NtReadFile or sending IRP_MJ_READ - depending on your mode)

-p

-----Original Message-----
From: krishnaa [mailto:xxxxx@nothing.com]
Sent: Monday, February 24, 2003 6:08 AM
To: NT Developers Interest List

Can I query the distance between current point (Where laser head is
reading) and the CD centre ??? is that possible ?

How much fine control can I have over reading , like memory location by
memory location reading etc.


You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

RE:

It sends SCSI CDBs down to the storage stack.

----- Original Message -----
From: “krishnaa”
To: “NT Developers Interest List”
Sent: Monday, February 24, 2003 2:02 PM
Subject: [ntdev] Re: CD Reading

> OK …
> How a Highest level CD-ROM driver read the CD ??
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to
xxxxx@lists.osr.com
>

> Can I query the distance between current point (Where laser head is

reading) and the CD centre ??? is that possible ?

No you cannot, neither SCSI nor ATAPI CD drives support such a query.

Max

Peter Wieland wrote:


>
> I suspect with some measurement you could compute a particular r/theta
> coordinate for any spot on the disk. However in the end it always falls
> back to which block do you want to read. And those you can read from
> kernel or user-mode the same way you’d read from any device (ReadFile,
> NtReadFile or sending IRP_MJ_READ - depending on your mode)
>
While in theory that’s the case - a given block hence hh:mm:ss:ff will
depend on a particular predicable location on the disc - I doubt you’ll
get anything useful in practice.

The data on the CD is stored in a single spiral track. This is
different to other disks where the data is written as a series of
circles. The distance between turns on the spiral varies - for example
it’s tighter on 80 minute CDs than the usual 74 minute discs. I’d also
expect minor variations between mastering plants.

Because the distance varies the length of a given turn other than the
first will also vary, although only slightly. The effect of this after
a few hundred turns will be that the angular position is unpredicable.

Finally there is no obvious way to find where the start of the spiral is!

You can probably get a pretty good idea of the distance out from the hub
where the data is stored, but this is as far as I can tell of academic
interest only. The only use for this that I can think of would be to
tell the user where the scratch is - and what would be done with that
information?

Krishnaa,
Hope this info helps, if not solves your problem
Andy

To start with… Is there a point on a CD that could be identified as
angle 0 ?

Mat

-----Original Message-----
From: Andy Champ [mailto:xxxxx@earthling.net]
Sent: Thursday, March 06, 2003 4:04 AM
To: NT Developers Interest List
Subject: [ntdev] Re: CD Reading

Peter Wieland wrote:


>
> I suspect with some measurement you could compute a particular r/theta
> coordinate for any spot on the disk. However in the end it always falls
> back to which block do you want to read. And those you can read from
> kernel or user-mode the same way you’d read from any device (ReadFile,
> NtReadFile or sending IRP_MJ_READ - depending on your mode)
>
While in theory that’s the case - a given block hence hh:mm:ss:ff will
depend on a particular predicable location on the disc - I doubt you’ll
get anything useful in practice.

The data on the CD is stored in a single spiral track. This is
different to other disks where the data is written as a series of
circles. The distance between turns on the spiral varies - for example
it’s tighter on 80 minute CDs than the usual 74 minute discs. I’d also
expect minor variations between mastering plants.

Because the distance varies the length of a given turn other than the
first will also vary, although only slightly. The effect of this after
a few hundred turns will be that the angular position is unpredicable.

Finally there is no obvious way to find where the start of the spiral is!

You can probably get a pretty good idea of the distance out from the hub
where the data is stored, but this is as far as I can tell of academic
interest only. The only use for this that I can think of would be to
tell the user where the scratch is - and what would be done with that
information?

Krishnaa,
Hope this info helps, if not solves your problem
Andy


You are currently subscribed to ntdev as: xxxxx@guillemot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com