How to read main channel data in PMA?

vbimport

#1

CD recorders are supposed to write their RID code in the main channel of the Table of Contents Items in the PMA of CD-Rs that they record. This is useful information to companies like mine that write lots of discs on lots of recorders. Most notably, when QA discovers a marginally written or defective disc, it is imperative to know which drive wrote the disc so we can get it out of service.

We can get at the RID code the hard way, i.e. feed the PMA RF data coming from our tester into a TIA and go through all the decoding necessary to recover the main channel data. But this takes time and trained personnel. What we’d like is a simple way to get at the RID code data that could be implemented on the shop floor.

Any CD Freak out there who knows how to make that happen?


#2

Hi,

I don’t know much about RID, but is that Program Memory Area (PMA)?

So i.e. the area before TOC, and a place for storing temporary TOCs when recording incrementally?

If so, unfortunately the standard CD commands MMC (SCSI-3 spec) doesn’t have such to allow reading and transferring to the PC.

I’ve heard that in Track-At-Once (TAO) recording mode, there are 2 unreadable link blocks contains RID, but no one uses this recording mode anymore.


#3

There was a discussion on this subject in this forum a couple of years ago including a program to return RIDs but I saw no source with it.
The thread below has lots of info on how to read RIDs.
http://club.cdfreaks.com/f52/rid-code-166942/

and if you google on “Recorder IDentification (RID) code” you’ll get a lot of hits.

bilm


#4

Why bother with RIDs ? They sound undependable. Apparently not all drive’s provide this capability and probably some implement it differently than others.

You want to be able to ID the recorder that burned the disc so assign a numeric ID for each drive, and assuming DAO record type, you could use the Serial Number field in the Cue Sheet’s ISRC section for the drive’s ID. Or maybe there is a better, safer place on the disc to burn it.

Truman or one of the other CD experts could suggest the best place.
I would forget about using RID.

bilm


#5

That is a very good point Bil! :slight_smile:

I would agree with ISRC, or even using RW part of subchannel to write the entire drive string.


#6

Hi Joe,

Are you burning audio or ROM discs?
Do you use professional recorders or standard consumer drives?

Depending on the above, the RID code may or may not be present. The Orange book states:

V.2.3.1 RID code for data applications (optional)

It goes on to say that for consumer CD-recorders the use of RID codes is mandatory in audio recordings. Professional recorders CAN (not must) store their RID code in the user data of run-in and run-out blocks.

At Orange book V.6.3.2 it states that consumer recorders SHALL write ISRC, RID and TDB codes in mode 3 Q-channel. It does not say if this is just for audio or not though.

So the book is confusing and it is hard to say how drive manufacturers have implemented the RID codes.

BTW, what type of tester do you have that streams the RF out for you?

RM


#7

[QUOTE=RichMan;2107908]Hi Joe,

Are you burning audio or ROM discs?
Do you use professional recorders or standard consumer drives?[/QUOTE]

We are writing data, not audio, using professional recorders, not consumer recorders. In addition, we are writing an image using commercial equipment that does not allow us to insert information that is specific to each drive.

We are writing a single Mode 2 Form 1 track in a single session, apparently in track-at-once mode, leaving the disc open for append. So it is possible that there is RID information in the main channel of the PMA and/or of the link blocks - two locations for which I have yet to find an easy means of access.

BTW, what type of tester do you have that streams the RF out for you?

RM

We have an aged, yet phenomenonally functional, piece of test gear made by APEX that allows us to test both unwritten and written CD-R media. It has all sorts of analog outputs including RF. We can order it to any radius, instruct it to lock the motor speed to the data, then capture the RF signal.

Dr. Joe


#8

Dr. Joe,

I think we can assume that the RID code is written to a place on the disc that is accessible for reading. As long as you are sure that all your recorders are producing a RID code and can identify the address of the sector where they are writing them to, reading them should the easy part.

The thread I mentioned (above) discusses the location of RID codes. The 1st best guess seems to be the lean-out sector i.e. the LBA following the last LBA of the last track of the session. Maybe there are other places it is written to also. Where ever you decide the RID LBA is located, you should be able to use the scsi Read10 command (op code 28h) with the RID LBA as the “Starting Logical Block Address” parameter with a “Transfer Length” parameter of one sector. I would set the FUA bit to one so the disc is read directly.

Convert the returned data to strings for easy reading to confirm you’ve located the RID. My understanding of the RID code format is the 1st three characters are the manufacturers’ code followed by a space, then four characters for the model code followed by a space and five more (or more) characters for the serial number code. So you are looking for something like “PHI CR27 87532”.

bilm


#9

bilm,

Thanks for getting me to (re-)educate myself about Run-in and Run-out blocks. Correct me if I’m wrong, but as we’re writing basically in TAO mode, there should be four Run-in blocks at the start of the track (LBA 00m00s01f - 00m00s04f) and two Run-out blocks following the user data in the track.

I can, and have, read these blocks with plscsi and so far have found nothing but blank sectors, however I haven’t yet sampled discs written by all the drive models we employ. I’ll post what I find.

Dr. Joe


#10

Dr. Joe,

I don’t know anymore about the location of the RID code than you do. I was suggesting how you could read the RID once you’ve determined where it is.

I don’t have the Orange Book which is apparently where the specification is described. Until one of the resident gurus who has access to an Orange Book shares the answer with us, all we have to go on is the info from the discussion I gave a link to in my 1st post. Based on that discussion there seems to be 2 places to look for the RID code; the lead-out sector and the subcode Q-channel mode 3 i.e. where the ISRC is recorded for audio tracks.

You are recording TAO with data block type 10 or 11 (Mode 2 CD-ROM XA, form 1) but you have the track mode set to data (not audio). So I don’t know how the subcode Q-channel mode 3 gets written under those circumstances.

I would take this one step at a time. Click on the link I provided for the discussion and download RID_code.zip. Unzip it, open up a command window (CMD box) and type in “rid_code d:” without the quotes and instead of “d” use the letter(s) for your drive(s). Hit enter. The results are written to a text file named “disc_info.txt”. Do that for each of your drives. If they all say “RID Code absent” then the lead-out sector is not where the RID code is located. What did you get ?

bilm


#11

[QUOTE=bifmud;2109688]

I would take this one step at a time. Click on the link I provided for the discussion and download RID_code.zip. Unzip it, open up a command window (CMD box) and type in “rid_code d:” without the quotes and instead of “d” use the letter(s) for your drive(s). Hit enter. The results are written to a text file named “disc_info.txt”. Do that for each of your drives. If they all say “RID Code absent” then the lead-out sector is not where the RID code is located. What did you get ?

bilm[/QUOTE]

bilm,

For the discs I’m interested in, with a single track recorded, the RID_code.exe utility determines the track length, then reads the the sector immediately following the track to check for the RID code. It doesn’t find one for the three drives I checked (Plextor 760A, Pioneer 112D & 115D).

I went a bit further and checked every sector from the end of the last data file in the track through the post gap and on through the end of the first session lead-out. I found no RID code data for any of the three drives. Not too surprising since RID code placement in the main channel data of Run-in and Run-out sectors is optional.

Of the three drives, only the Plextor writes its RID code in the main channel of the PMA as required.

Dr. Joe


#12

Hi Dr_Joe,

In a previous post you said that you were ‘using professional recorders’. In your latest post you mention that you are using ‘Plextor 760A, Pioneer 112D & 115D’. These drives are consumer drives and NOT professional recorder drives. Are these the drives that you are using to create the discs or just read them?

RM


#13

[QUOTE=RichMan;2111379]Hi Dr_Joe,

In a previous post you said that you were ‘using professional recorders’. In your latest post you mention that you are using ‘Plextor 760A, Pioneer 112D & 115D’. These drives are consumer drives and NOT professional recorder drives. Are these the drives that you are using to create the discs or just read them?

RM[/QUOTE]

RichMan,

I’m using the Orange Book terminology for a “professional recorder”. In that context, any data recording drive is a professional recorder. What drives aren’t professional recorders? According to the OB “consumer recorders” are those that are dedicated to the recording of audio.

Way back when, there used to be a set of drives that were definitely “industrial strength” and were designed (and priced) for true professional use, i.e. able to stand up to 24/7 operation for months at a time. Over time, due to the constant drive to lower cost and the dominance of the consumer market, those special drives became unprofitable and, for the most part, have been discontinued.

We use low-cost drives in our operation, but only after they pass a rigorous accreditation process. We read back a portion of every disc we make to catch failures and monitor disc rejects closely to identify when a drive is failing so that it can be replaced.

Dr. Joe


#14

My apologies, Dr Joe, and thanks for pointing that out. I had not bothered to read the definitions in the front of the book. :confused:

I was thinking of drives like the old Sony 900-E but haven’t seen any drives that I would consider ‘professional’ in over 10 years.

So, for non audio recordings, the use of the RID seems to be optional.

RM


#15

[QUOTE=RichMan;2111548]

So, for non audio recordings, the use of the RID seems to be optional.

RM[/QUOTE]

RichMan,

On the contrary, the recording of a RID code in the main channel of the PMA by a “professional recorder” is mandatory according to the OB (they use the “shall” word). It’s just that some drives don’t do it.

In my experience, it’s SOP for the drive industry to treat a hardware “requirement” as a “suggestion”. Who’s going to call them on it? There are lots of media testers out there that test every unwritten and written media specification; have you ever seen a drive tester that does the same?

Dr. Joe


#16

Dr Joe,

I was about to post that the OB seems to indicate RID as mandatory in the PMA but the wording I am seeing just isn’t as clear as it should be.

At V.4 it states that the use of PMA is mandatory except for DAO.

At V.4.1 it says 'The PMA can contain the following types of information:'
1: Track numbers…
2: Disc ID (optional)…
3: Skip/Unskip info (optional)…
4: The RID code in user data…

So it uses the word ‘can’ to begin with but then list 2 out of the 4 as optional. Very confusing.

Then at V.4.5 it says recorders able to write CD-ROM ‘shall’ write the RID code.

I’ve been debugging through one of my QA apps and my Lite-On 1693S will not even read the last 4 sectors of my CD-R so I can’t see if there is a RID in the link area or not. I get an error that the LBA is out of range, even though I am reading before leadout.

I’ve also been studying the MMC spec and there seems no way to get user data from the PMA. The commands seem to return only subcode data.

I’ve not seen any drive verifiers (if they exists). Our business is in optical disc encoders so I only see the disc verifiers (mostly AudioDev and Datarius).

RM


#17

Maybe RID codes are only produced for audio tracks ?
Maybe they were only meant for music CDs ? like ISRC data ?

Is there a way to use the Read CD command to read main channel data in the PMA?

bilm


#18

[QUOTE=RichMan;2111605]Dr Joe,

I was about to post that the OB seems to indicate RID as mandatory in the PMA but the wording I am seeing just isn’t as clear as it should be.

At V.4 it states that the use of PMA is mandatory except for DAO.

At V.4.1 it says 'The PMA can contain the following types of information:'
1: Track numbers…
2: Disc ID (optional)…
3: Skip/Unskip info (optional)…
4: The RID code in user data…

So it uses the word ‘can’ to begin with but then list 2 out of the 4 as optional. Very confusing.

Then at V.4.5 it says recorders able to write CD-ROM ‘shall’ write the RID code.

RM[/QUOTE]

RichMan,

I think the last sentence in section III.1 and the first sentence in section V.4.5 are pretty clear; the OB requires data recorders to put their RID code in the main channel of the PMA. The precise location depends on whether the disc is written DAO or not, but in either case the RID code is to be written in the main channel of the PMA.

Section V.4.1 speaks to the potential of the PMA. Since the requirement of putting RID code data in the PMA does not extend to consumer recorders, the PMA will not always contain RID code data.

Dr. Joe


#19

[QUOTE=bifmud;2111651]

Is there a way to use the Read CD command to read main channel data in the PMA?

bilm[/QUOTE]

bilm,

I think this is where I came in.

Dr. Joe


#20

[QUOTE=bifmud;2111651]Maybe RID codes are only produced for audio tracks ?
Maybe they were only meant for music CDs ? like ISRC data ?

Is there a way to use the Read CD command to read main channel data in the PMA?

bilm[/QUOTE]

As RichMan mentioned from MMC commands, no. :slight_smile: