Question about LBA computing in CLoneCd CCD file.
Hi,
Those days, I try to code a little thing to parse a .CCD file.
I am sure that people here are very comfortable with some definitions
I am about to tell : it is only to clarify the subject of my question.
I start from the fact that time in CCD file is indicated by 3 fields :
- Minute
- Second
- Frame
These time information is present twice on a section called "Entry".
An example below :
[Entry 8]
Session=1
Point=0xc1
ADR=0x05
Control=0x00
TrackNo=0
AMin=4
ASec=152
AFrame=96
ALBA=29346
Zero=0
PMin=0
PSec=0
PFrame=0
PLBA=-150
AMin, ASec, AFrame to indicate Absolute time (I think).
PMin, PSec, PFrame to indicate Point time (I think).
In a theoretical point of view, there are means to translate a time to an address.
The address is called LBA (Logical Block Address) and there are ALBA to indicate Absolute address and PLBA
to indicate Point address.
As I want is to deal with the less fields and datas in my code, I take only Minute, Second, Frame values
and later use means to compute address value.
I know two means to compute it :
- a translation table between LBA and MSF found in a file called "SCSI-3 – Multimedia Commands" from "American National Standards Institute" page 115.
- a formula from ECMA-394 Chapter 13: Attachment 11 : LBN = (((MIN*60)+SEC)*75+FRAMES)-150
But quickly I face very confusing LBA values that do not match any known means result.
Let's concentrate about Absolute time and Absolute address.
I have selected three (from many) examples where I could not understand
how CloneCd figure it out.
Problem 1
[Entry 8]
Session=1
Point=0xc1
ADR=0x05
Control=0x00
TrackNo=0
AMin=4
ASec=152
AFrame=96
ALBA=29346
Zero=0
PMin=0
PSec=0
PFrame=0
PLBA=-150
AMin=4
ASec=152
AFrame=96
ALBA=29346
Using LBA to MSF transaltion table :
269898 <=> 60:00:48
Using ECMA formula :
(((4 * 60) + 152) * 75 + 96) - 150 = 29346
Problem 2
[Entry 10]
Session=2
Point=0xb0
ADR=0x05
Control=0x04
TrackNo=0
AMin=255
ASec=255
AFrame=255
ALBA=716730
Zero=1
PMin=79
PSec=59
PFrame=73
PLBA=359848
AMin=255
ASec=255
AFrame=255
ALBA=716730
Using LBA to MSF transaltion table :
impossible because 255 is out of range
Using ECMA formula :
(((255 * 60) + 255) * 75 + 255) - 150 = 1166730
Problem 3
[Entry 5]
Session=1
Point=0xc0
ADR=0x05
Control=0x04
TrackNo=0
AMin=160
ASec=0
AFrame=48
ALBA=269898
Zero=0
PMin=97
PSec=26
PFrame=66
PLBA=-11634
AMin=160
ASec=0
AFrame=48
ALBA=269898
Using LBA to MSF transaltion table :
269898 <=> 60:00:48
Using ECMA formula :
(((160 * 60) + 0) * 75 + 48) - 150 = 719898
How CloneCd compute ALBA in those case (PLBA should have same issue) ?
Thanks in advance for any help