Began to describe TAO multi-session CD writing
This commit is contained in:
parent
f418c49e63
commit
fb98c0390e
160
doc/cookbook.txt
160
doc/cookbook.txt
@ -1,3 +1,163 @@
|
|||||||
|
Content:
|
||||||
|
- TAO Multi-Session CD Cookbook
|
||||||
|
- Overwriteable DVD Cookbook
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
TAO Multi-Session CD Cookbook
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Guided by reading mmc-r10a.pdf , O.8 "Write a Track"
|
||||||
|
from http://www.t10.org/ftp/t10/drafts/mmc/
|
||||||
|
backed by reading mmc5r03c.pdf from http://www.t10.org/ftp/t10/drafts/mmc5/
|
||||||
|
by reading spc3r23.pdf from http://www.t10.org/ftp/t10/drafts/spc3/
|
||||||
|
and by experiments with drives NEC ND-4570A, LG GSA-4082B, LITE-ON LTR48125S
|
||||||
|
which used in part code from http://icculus.org/burn.
|
||||||
|
|
||||||
|
For libburnia.pykix.org by Thomas Schmitt <scdbackup@gmx.net>
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Media type can be recognized by Current Profile from 46h GET CONFIGURATION.
|
||||||
|
(mmc5r03c.pdf 6.6.2.1)
|
||||||
|
|
||||||
|
CD-R 0009h
|
||||||
|
CD-RW 000ah
|
||||||
|
|
||||||
|
The following topics are covered:
|
||||||
|
- About blank, appendable and finalized CD media
|
||||||
|
- Writing a session to CD
|
||||||
|
- Obtaining CD multi-session info for extending ISO-9660 filesystems
|
||||||
|
- Obtaining a Table Of Content from CD >>> under construction
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
About blank, appendable and finalized CD media :
|
||||||
|
|
||||||
|
CD media have to be blank or appendable in order to be writeable in TAO mode.
|
||||||
|
The according status may be inquired by 51h READ DISC INFORMATION requesting
|
||||||
|
Data Type 000b Standard Disc Information, where reply value Disc Status
|
||||||
|
indicates:
|
||||||
|
00b blank
|
||||||
|
01b appendable
|
||||||
|
10b finalized
|
||||||
|
11b others (unsuitable for this recipe)
|
||||||
|
(mmc5r03c.pdf 6.22.3.1.4)
|
||||||
|
|
||||||
|
CDs which are finalized or appendable may be blanked by command A1h BLANK with
|
||||||
|
blanking types 000b "Blank the disc" or 001b "Minimally blank the disc".
|
||||||
|
The Start Address/Track Number will be ignored so it may well be 0.
|
||||||
|
Because the operation is long running it is advised to set the Immed bit and to
|
||||||
|
watch the progress by commands 00h TEST UNIT READY and 03h REQUEST SENSE
|
||||||
|
with DESC bit set to 0 for fixed format reply.
|
||||||
|
It is done when 00h succeeds and 03h reports 0 in PROGRESS INDICATION
|
||||||
|
(byte 1+2 in Table 22 = byte 16+17 SENSE KEY SPECIFIC in table 26).
|
||||||
|
(mmc5r03c.pdf 6.2 BLANK)
|
||||||
|
(spc3r23.pdf 4.5.2.4.4 table 22, 4.5.3 table 26,
|
||||||
|
6.27 REQUEST SENSE, 6.33 TEST UNIT READY)
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Writing a session to CD :
|
||||||
|
|
||||||
|
The writing method for blank or appendable media is the same. If the media is
|
||||||
|
blank then the new track will be the first and only one in the table of
|
||||||
|
content. If the media is appendable then a new session will be opened
|
||||||
|
automatically and the new track will be the first and only one in this session.
|
||||||
|
|
||||||
|
Speed may be set by BBh SET CD SPEED parameter Drive Write Speed. Note that
|
||||||
|
kbytes/sec means 1000 bytes/sec and not 1024/sec. Rotational control should
|
||||||
|
be set to 00b. 1x CD speed is 176.4 kbytes/sec. Speed is usually set to the
|
||||||
|
next lower possible value by the drive. So it is helpful to add a few
|
||||||
|
kbytes/sec just in case the drive has rounding problems.
|
||||||
|
(mmc5r03c.pdf 6.37)
|
||||||
|
|
||||||
|
Before writing can occur, a Write Parameters mode page 05h has to be composed
|
||||||
|
and transmitted via 55h MODE SELECT. Mode page 05h describes several burn
|
||||||
|
parameters:
|
||||||
|
BUFE Buffer Underrun protection 0=off, 1=on
|
||||||
|
Test Write -dummy mode for writing 0=off, 1=on
|
||||||
|
Write Type Packet/TAO/SAO/RAW 01h = TAO
|
||||||
|
Multi-session Wether to keep appendable 00b = close, 11b = appendable
|
||||||
|
Track Mode Describes frame type 4 for data , 0 for audio
|
||||||
|
Data Block Type Layout of payload blocks 8 for 2048 byte data blocks
|
||||||
|
0 for 2352 byte audio blocks
|
||||||
|
Audio Pause Length 150 = 2 seconds
|
||||||
|
Any other parameters may be set to 0.
|
||||||
|
Mode page data as of MMC-5 table 644 are preceded by a Mode Parameter Header
|
||||||
|
as of SPC-3 table 240. This 8-byte header may be filled with 0s ... obviously.
|
||||||
|
(mmc5r03c.pdf 7.5.4 The Mode Page, 4.2.3.4 Table 17 CONTROL = Track Mode)
|
||||||
|
(spc3r23.pdf 6.8 MODE SELECT, 7.4.3 Mode parameter header formats)
|
||||||
|
|
||||||
|
|
||||||
|
Writing has to begin at the address returned by 52h READ TRACK INFORMATION
|
||||||
|
with Address/Number Type set to 01b and Logical Block Address/Track/Session
|
||||||
|
Number set to FFh. The Next Writeable Address as of table 500 is the number
|
||||||
|
to start writing with.
|
||||||
|
(mmc5r03c.pdf 6.27 )
|
||||||
|
|
||||||
|
Writing is done by 2Ah WRITE with the Logical Block Address counted up from
|
||||||
|
the initial number in sync with the number of blocks written. Only full blocks
|
||||||
|
can be written.
|
||||||
|
(mmc5r03c.pdf, 6.44)
|
||||||
|
When writing is done, it is mandatory to force the drive's buffer to media by
|
||||||
|
35h SYNCHRONIZE CACHE.
|
||||||
|
(mmc5r03c.pdf, 6.41)
|
||||||
|
|
||||||
|
The track has to be closed by 5Bh CLOSE TRACK SESSION Close Function 001b.
|
||||||
|
Older MMC specifies a valid Logical Track Number FFh to depict the open track.
|
||||||
|
MMC-5 is quite silent about this. FFh works for my drives.
|
||||||
|
After that, a new track can be written beginning with sending the mode page 05h
|
||||||
|
again (it is not tested wether this can be omitted).
|
||||||
|
(mmc5r03c.pdf 6.3.3.1.2)
|
||||||
|
|
||||||
|
After the last track of a session, 5Bh CLOSE TRACK SESSION Close Function 010b
|
||||||
|
with Logical Track Number 0 closes the session. It depends on the Multi-Session
|
||||||
|
value in mode page 05h wether the disc is finalized or stays appendable.
|
||||||
|
(mmc5r03c.pdf 6.3.3.1.3)
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Obtaining CD multi-session info for extending ISO-9660 filesystems :
|
||||||
|
|
||||||
|
Program mkisofs expects two numbers with its option -C which describe the
|
||||||
|
situation on an appendable CD which already contains a ISO-9660 filesystem
|
||||||
|
in the first track of the last session.
|
||||||
|
|
||||||
|
The first number is the Logical Block Address of that track containing the
|
||||||
|
existing ISO-9660 filesystem image. This number is needed for mkisofs option
|
||||||
|
-M to connect to the existing image. The new image will refer to files in
|
||||||
|
the previously existing image. mkisofs option -M needs read access to the
|
||||||
|
CD or a blockwise copy of it on hard disk.
|
||||||
|
Untested is Format 0001b which in table 478 promises quick access via
|
||||||
|
Start Address of First Track in Last Session.
|
||||||
|
(mmc5r03c.pdf 6.26.3.3.1)
|
||||||
|
libburn gets the number from its Table Of Content model which is obtained
|
||||||
|
by 43h READ TOC/PMA/ATIP, Format 0010b. See below.
|
||||||
|
|
||||||
|
The second number is an exact prediction of the Logical Block Address of the
|
||||||
|
new track which will contain the newly generated ISO-9660 image.
|
||||||
|
Even without option -M this second number is still needed to make the inner
|
||||||
|
block address pointers of the image match the Logical Block Addresses on CD.
|
||||||
|
|
||||||
|
This number is the address returned by 52h READ TRACK INFORMATION with
|
||||||
|
Address/Number Type set to 01b and Logical Block Address/Track/Session
|
||||||
|
Number set to FFh. The Next Writeable Address as of table 500 is the number
|
||||||
|
to use.
|
||||||
|
(mmc5r03c.pdf 6.27 )
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
>>> Obtaining a Table Of Content from CD :
|
||||||
|
|
||||||
|
Table of content information is gained by 43h READ TOC/PMA/ATIP, Format 0010b.
|
||||||
|
The number of sessions is given by Last Complete Session Number.
|
||||||
|
The number of TOC Track descriptors is: (TOC Data Length - 2)/11 .
|
||||||
|
|
||||||
|
>>> sift out the track entries
|
||||||
|
>>> track starts, leadout starts
|
||||||
|
|
||||||
|
(mmc5r03c.pdf 6.26.2.5 table 478, 6.26.3.4 )
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Overwriteable DVD Cookbook
|
Overwriteable DVD Cookbook
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user