2 session disc / DAO problem

Hi guys,

I’ve written a complete DAO/96 burning program, which takes cooked session images and burns them to disc, making all other stuff.

Everything works fine, except when I make a 2 session disc, the second session is not regognized on some drives (Asus CD-S400/A, 1.3D). All other drives tested work fine. The aformentioned drive easily reads 2 session discs written with Nero, for example. If I keep inserting / ejecting the disc, sometimes the session is recognized. This drive has the same problem when I try to read a Nero made 2 session disc copied with CCD or Alcohol!!!

I haven’t found any firmware for this drive (there are a lot for CD-S400/A4 which already works fine!)

I have even simulated TAO packet writing with DAO (Link, Run-in, TDB, TDU, Run-Out, etc.) with no luck. Should I make anything special in the TOC for a 2 session disc, other than C0, B0 pointers?

Can you give some good references for CD structure, giving the details to make TOC, PreGap, …? Something better than SCSI drafts or CDRDAO source :wink:

Please help me!!!

Thanks in advance!

Maybe some questions might help u…

R u sure it’s not the drive?

R u using different media?

Does it actually read Nero 2 session disks every time (I mean more than once)?

If it does, why not try analysing the TOC areas of the Nero made disk - the problem with this is that most drives cannot read into the TOC areas. I’ve found that some Plextor drives does allow you to do this.

I just noticed from a google search that your ASUS drive is a CDROM reader. You do know that most readers only read sessions (2nd, 3rd, etc, sessions) if the session is finalised - some don’t even recognise the disk until you do this. However this may not be in your case, because your drive is rather new - I havn’t any experience with newer readers.

Thanks for reply.

About your questions:

  1. Yes. I have tested several drives of the same kind.
  2. There is an strange thing here… When I use my Ricoh CDRW, the drive read it with no problem! But I cannot get it to work with other CDRs/CDRWs.
  3. Yes. It does. Tested several times.

In fact I’ve tried that; wrote a little program to do that (fortunately, I have a Plextor writer!), but I could not find any meaningful difference. I should note that my Plextor drive did not read Subs very clearly; i.e. it seemed to me that some are omitted or repeated (not all of entries were repeated 3 times). Also, I have tried setting all fields I get from READ TOC (Raw) SCSI command in my generated TOC with no luck.

There is no incomplete session, as I write Lead-in and lead-out. This is what I write in DAO:

Lead-in of first session
Pregap of track 1
Program area of track 1
Lead-out of track 1
Lead-in of second session
Pregap of track 2
Program area of track 2
Lead-out of track 2

I’m also going to test your programs.

Thanks again for replying!

It seems that I could finally solve the problem (I have to test on some similar drives to be sure). I wrote a little program that read everything from first lead-in to final lead-out (Thanks to my Plextor!), and saw some strange things:

  1. In first lead-in, POINT B0 is repeated once in each cycle, while in the second lead-in, it comes after each other POINT! As I have analyzed discs written with CloneCD, I’m sure it doesn’t do this. Could somebody tell me what’s out there? The descriptions in MMC drafts about this are too hazy…

  2. The order of POINTs in nero-written CD and my program was not the same. Is it important at all? Should the order be the same as report order in READ TOC / PMA / ATIP command in MMC?

  3. In the lead-outs, I found a new POINT, D1, with Min/Sec/Frm = 0, Zero = Track No. and PMin/PSec/PFrm pointing to start of the track. I could not find anything about it in MMC drafts. Anybody knows what’s this?

I fixed 1 and 2 above, and the problem vanished (I hope!), so actually I don’t know what made the problem.

Hope this can help someone else.

Thanks!

  1. When used, mode 5 (ADR=5) should alternate with mode 1 (normal addresses),
    both subcode block being repeated 3 times. In the Lead-In area of the last
    session, Mode 5 can be omitted. The layout you describe doesn’t match the
    requirements, so that could cause problems.

  2. As mentioned in 1), mode 1 and mode 5 should be alternated. For instance :
    A0 A0 A0 B0 B0 B0 A1 A1 A1 C0 C0 C0 A2 A2 A2 B0 B0 B0 01 01 01 C0 C0 C0 02 02 02…

  3. never heard of it

Thanks for reply!

I must admit that arrangement of sub-channels STILL mixes me up :confused: Do you know a good reference for it?

About POINT D1, here is a snippet of my program output for lead-out of first track:

013165: ADR-CTL: 65h, TNO: AAh, POINT: D1h, Min:Sec.Frame: 02:00.00 (  2:  0.  0), Zero: 01h, PMin:PSec.PFrame: 00:02.00 (  0:  2.  0)
013166: ADR-CTL: 65h, TNO: AAh, POINT: D1h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 01h, PMin:PSec.PFrame: 00:02.00 (  0:  2.  0)
013167: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 00:22.42 (  0: 34. 66)
013168: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 00:22.43 (  0: 34. 67)
013169: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 00:22.C4 (  0: 34.196)
013170: ADR-CTL: 65h, TNO: AAh, POINT: D1h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 01h, PMin:PSec.PFrame: 00:02.00 (  0:  2.  0)
013171: ADR-CTL: 65h, TNO: AAh, POINT: D1h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 01h, PMin:PSec.PFrame: 00:02.00 (  0:  2.  0)
013172: ADR-CTL: 65h, TNO: AAh, POINT: D1h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 01h, PMin:PSec.PFrame: 00:02.00 (  0:  2.  0)
013173: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 10:22.48 ( 16: 34. 72)
013174: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 00:22.49 (  0: 34. 73)
013175: ADR-CTL: 61h, TNO: AAh, POINT: 01h, Min:Sec.Frame: 00:00.00 (  0:  0.  0), Zero: 00h, PMin:PSec.PFrame: 00:22.50 (  0: 34. 80)

Any description?

Orange book gives a few subcode dumps for multisession lead-ins, if you want
them pm me your email. As for D1, it seems to indicate the session number.

Thanks :slight_smile: I just sent you a PM!

FYI

The mode 5 D1 point is only to be used in 2nd and higher sessions. As spath mentioned, it indicates the session number that the leadout belongs to. I am pretty sure that the ZERO field is used to indicate the current session number. It also contains the starting A-Time for the first track (index 1) of the session (PMin, PSec and PFrm).

Hope this helps.

Thanks RichMan! I was just wondering why it is not mentioned in MMC drafts…

hi guys

i just wondering about how to know some basics or requirement knowledge of coding a program to burn cd ?

its from color books ?

Although there are several experts on this forum, let me tell you some good starting points:

  1. Truman’s code samples
  2. “Home made tools” on this forum
  3. MMC drafts (www.t10.org)
  4. CDRDAO project
  5. Several articles / code samples on the web
  6. And of course color books if you have them :wink: But be aware that they are mostly standards not programming guides.

Hope this helps,

Have fun!

thanks TellMeWhy for post :slight_smile: