Самое простое (и, с точки зрения совместимости — – самое надежное) это расположить фиктивный трек в области данных подлинного трека, выбрав стартовый адрес фиктивного трека так, чтобы до начала следующего трека оставалось не менее 350 секторов, которыей пойдут на покрытие областей Post-gap/Pre-gap (для последнего трека сессии достаточно и 150 секторов, поскольку здесь не нужно тратиться на Pre-gap). Между стартовым адресом подлинного трека и стартовым адресом фиктивного трека также должно помещаться по меньшей мере 350 секторов, занимаемых постзазором подлинного и предзазором фиктивного трека. Нарушение этого правила приводит к усилению защиты, но и порождает определенные побочные эффекты, о которых мы поговорим позднее (см. разд. "Фиктивный трек в Post-gap подлинного трека" и "Фиктивный трек в Pre-gap подлинного трека" этой главы).
Сейчас же нас больше всего интересует как именно добавить новое Entry в файл IMAGE.CCD файл, не нарушив его работоспособности. Алгоритм создания фиктивного трека, подробно рассмотренный в предыдущеимх главеразделе, все еще представляет собой абстрактную теорию, достаточно далеко отстоящую от практики. В ходе осуществления творческого замысла на нашем пути могут встретиться различные трудности и нам придется "сразиться" с ними, или… просто обойти их.
Давайте рассмотрим самый сложный случай —– многосессионный диск. Правила хорошего тона обязывают нас скорректировать не только содержимое той сессии, к которой добавляется новый трек, но и атрибуты всех последующих сессий, поскольку нумерация треков на диске —– сквозная. Частая ошибка начинающих —– перенумеровать треки. Перенумеровать-то они перенумеруют, а вот переустановить указатели на первый и последний трек каждой сессии —– забывают. Как следствие, этого – защищенный диск перестает читаться совсем или читается неправильно (конкретное поведение зависит от "темперамента" привода на который этот диск попадет).
|
[CloneCD] |
[CloneCD] |
[Entry 6] |
[Entry 7] |
|
Version=3 |
Version=3 |
Session=1 |
Session=1 |
|
Point=0xc1 |
Point=0xc1 |
||
|
[Disc] |
[Disc] |
ADR=0x05 |
ADR=0x05 |
|
TocEntries=12 |
TocEntries=13 |
Control=0x04 |
Control=0x04 |
|
Sessions=2 |
Sessions=2 |
TrackNo=0 |
TrackNo=0 |
|
DataTracksScrambled=0 |
DataTracksScrambled=0 |
AMin=4 |
AMin=4 |
|
CDTextLength=0 |
CDTextLength=0 |
ASec=120 |
ASec=120 |
|
AFrame=96 |
AFrame=96 |
||
|
[Session 1] |
[Session 1] |
ALBA=26946 |
ALBA=26946 |
|
PreGapMode=1 |
PreGapMode=1 |
Zero=0 |
Zero=0 |
|
PreGapSubC=0 |
PreGapSubC=0 |
PMin=0 |
PMin=0 |
|
PSec=0 |
PSec=0 |
||
|
[Session 2] |
[Session 2] |
PFrame=0 |
PFrame=0 |
|
PreGapMode=1 |
PreGapMode=1 |
PLBA=-150 |
PLBA=-150 |
|
PreGapSubC=0 |
PreGapSubC=0 |
||
|
[Entry 0] |
[Entry 0] |
[Entry 7] |
[Entry 8] |
|
Session=1 |
Session=1 |
Session=2 |
Session=2 |
|
Point=0xa0 |
Point=0xa0 |
Point=0xa0 |
Point=0xa0 |
|
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
AMin=0 |
AMin=0 |
AMin=0 |
AMin=0 |
|
ASec=0 |
ASec=0 |
ASec=0 |
ASec=0 |
|
AFrame=0 |
AFrame=0 |
AFrame=0 |
AFrame=0 |
|
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
|
Zero=0 |
Zero=0 |
Zero=0 |
Zero=0 |
|
PMin=1 |
PMin=1 |
PMin=2 |
PMin=3 |
|
PSec=0 |
PSec=0 |
PSec=0 |
PSec=0 |
|
PFrame=0 |
PFrame=0 |
PFrame=0 |
PFrame=0 |
|
PLBA=4350 |
PLBA=4350 |
PLBA=8850 |
PLBA=-1 |
|
[Entry 0] |
[Entry 0] |
[Entry 8] |
[Entry 9] |
|
Session=1 |
Session=1 |
Session=2 |
Session=2 |
|
Point=0xa0 |
Point=0xa0 |
Point=0xa1 |
Point=0xa1 |
|
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
AMin=0 |
AMin=0 |
AMin=0 |
AMin=0 |
|
ASec=0 |
ASec=0 |
ASec=0 |
ASec=0 |
|
AFrame=0 |
AFrame=0 |
AFrame=0 |
AFrame=0 |
|
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
|
Zero=0 |
Zero=0 |
Zero=0 |
Zero=0 |
|
PMin=1 |
PMin=1 |
PMin=2 |
PMin=3 |
|
PSec=0 |
PSec=0 |
PSec=0 |
PSec=0 |
|
PFrame=0 |
PFrame=0 |
PFrame=0 |
PFrame=0 |
|
PLBA=4350 |
PLBA=4350 |
PLBA=8850 |
PLBA=-1 |
|
[Entry 1] |
[Entry 1] |
[Entry 9] |
[Entry 10] |
|
Session=1 |
Session=1 |
Session=2 |
Session=2 |
|
Point=0xa1 |
Point=0xa1 |
Point=0xa2 |
Point=0xa2 |
|
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
AMin=0 |
AMin=0 |
AMin=0 |
AMin=0 |
|
ASec=0 |
ASec=0 |
ASec=0 |
ASec=0 |
|
AFrame=0 |
AFrame=0 |
AFrame=0 |
AFrame=0 |
|
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
|
Zero=0 |
Zero=0 |
Zero=0 |
Zero=0 |
|
PMin=1 |
PMin=2 |
PMin=3 |
PMin=3 |
|
PSec=0 |
PSec=0 |
PSec=24 |
PSec=24 |
|
PFrame=0 |
PFrame=0 |
PFrame=23 |
PFrame=23 |
|
PLBA=4350 |
PLBA=-1 |
PLBA=15173 |
PLBA=15173 |
|
[Entry 2] |
[Entry 2] |
[Entry 10] |
[Entry 11] |
|
Session=1 |
Session=1 |
Session=2 |
Session=2 |
|
Point=0xa2 |
Point=0xa2 |
Point=0x02 |
Point=0x03 |
|
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
ADR=0x01 |
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
AMin=0 |
AMin=0 |
AMin=0 |
AMin=0 |
|
ASec=0 |
ASec=0 |
ASec=0 |
ASec=0 |
|
AFrame=0 |
AFrame=0 |
AFrame=0 |
AFrame=0 |
|
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
ALBA=-150 |
|
Zero=0 |
Zero=0 |
Zero=0 |
Zero=0 |
|
PMin=0 |
PMin=0 |
PMin=3 |
PMin=3 |
|
PSec=29 |
PSec=29 |
PSec=1 |
PSec=1 |
|
PFrame=33 |
PFrame=33 |
PFrame=33 |
PFrame=33 |
|
PLBA=2058 |
PLBA=2058 |
PLBA=13458 |
PLBA=13458 |
|
[Entry 3] |
[Entry 3] |
[Entry 11] |
[Entry 12] |
|
Session=1 |
Session=1 |
Session=2 |
Session=2 |
|
Point=0x01 |
Point=0x01 |
Point=0xb0 |
Point=0xb0 |
|
ADR=0x01 |
ADR=0x01 |
ADR=0x05 |
ADR=0x05 |
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
AMin=0 |
AMin=0 |
AMin=4 |
AMin=4 |
|
ASec=0 |
ASec=0 |
ASec=54 |
ASec=54 |
|
AFrame=0 |
AFrame=0 |
AFrame=23 |
AFrame=23 |
|
ALBA=-150 |
ALBA=-150 |
ALBA=21923 |
ALBA=21923 |
|
Zero=0 |
Zero=0 |
Zero=1 |
Zero=1 |
|
PMin=0 |
PMin=0 |
PMin=22 |
PMin=22 |
|
PSec=2 |
PSec=2 |
PSec=14 |
PSec=14 |
|
PFrame=0 |
PFrame=0 |
PFrame=34 |
PFrame=34 |
|
PLBA=0 |
PLBA=0 |
PLBA=99934 |
PLBA=99934 |
|
[Entry 4] |
[Entry 5] |
[Entry 6] |
|
|
Session=1 |
Session=1 |
Session=1 |
|
|
Point=0x02 |
Point=0xc0 |
Point=0xc0 |
|
|
ADR=0x01 |
ADR=0x05 |
ADR=0x05 |
|
|
Control=0x04 |
Control=0x04 |
Control=0x04 |
|
|
TrackNo=0 |
TrackNo=0 |
TrackNo=0 |
|
|
AMin=0 |
AMin=162 |
TrackNo=0 |
|
|
ASec=0 |
ASec=128 |
ASec=128 |
|
|
AFrame=0 |
AFrame=140 |
AFrame=140 |
|
|
ALBA=-150 |
ALBA=288590 |
ALBA=288590 |
|
|
Zero=0 |
Zero=0 |
Zero=0 |
|
|
PMin=22 |
PMin=97 |
PMin=97 |
|
|
PSec=0 |
PSec=27 |
PSec=27 |
|
|
PFrame=0 |
PFrame=21 |
PFrame=21 |
|
|
PLBA=-1 |
PLBA=-11604 |
PLBA=-11604 |
|
|
[Entry 4] |
[Entry 5] |
[TRACK 1] |
[TRACK 1] |
|
Session=1 |
Session=1 |
MODE=1 |
MODE=1 |
|
Point=0xb0 |
Point=0xb0 |
INDEX 1=0 |
INDEX 1=0 |
|
ADR=0x05 |
ADR=0x05 |
||
|
Control=0x04 |
Control=0x04 |
[TRACK 2] |
|
|
TrackNo=0 |
TrackNo=0 |
MODE=1 |
|
|
AMin=2 |
AMin=2 |
INDEX 1=0 |
|
|
ASec=59 |
ASec=59 |
||
|
AFrame=33 |
AFrame=33 |
[TRACK 2] |
[TRACK 3] |
|
ALBA=13308 |
ALBA=13308 |
MODE=1 |
MODE=1 |
|
Zero=3 |
Zero=3 |
INDEX 1=0 |
INDEX 1=0 |
|
PMin=22 |
PMin=22 |
||
|
PSec=14 |
PSec=14 |
||
|
PFrame=34 |
PFrame=34 |
||
|
PLBA=99934 |
PLBA=99934 |
