|
Hi,
I am Ahsan Mostafa from Bangladesh. I have ordered from my boss that I should make a software that write sector by sector in CD-R or CD-RW. I have found the Nero SDK, but I can write files or folders in CD-R or CD-RW.
Now I am in problem,How can I write sectors in CD-R or CD-RW ? Any one out there to help me.
Is this possible using C++? I am trying using DDK(Driver Development Kit) in Windows 2000.But still cann't.
Thanks in forward
Mostafa
|
|
|
|
|
My question is related to data being burned on a CD-R disk using a packet-writing software like Roxio, NERO and or XP under windows based computer, when does the TOC get written to the disk?
Before or after the data is burned?
It seems that the Lead-In and Lead-Out (in variable length packet writing) physically (as opposed to timing) is written at the end of the last user data entered. If this is the case, it seems that "the directory/file information..., plus the volume descriptor (at filesystem level), and as you add a session on the CD-R, the TOC of the CD" is written at this physical location:
1. Could anyone detail exactly what's contained in the Table of Contents (TOC) and the "Volume Descriptor" (or what the volume descriptor is supposed to accomplish).
2. What's in the Lead-Out area?
3. How does the UDF VAT relate to a TOC?
4. What, in general, does an ICB do? Do ICBs play any role with either a
TOC?
5. What is the difference between a path table and a directory?
Thanks - I very much appreciate your responses.
|
|
|
|
|
It has been long since I worked on this, hope I recall it correctly.
TOC is in the lead-in area of a session. It's written when
the session is being closed.
TOC contains track number and LBA.
In UDF, TOC isn't a critical part. The volume stucture and file system stucture
are stored in data area.
Lead-out contains audio or data null. Generally, you dont need to r/w it.
UDF VAT doesn't relate to TOC directly.
ICB tells you where to find the file. It might contain the
file location(embedded),or the pointer to where the address is.
ECMA167 is a good reference, so is MMC3.
|
|
|
|
|
I have a couple of follow-up questions even afater reciewing OSTA 1.5 and ECMA167 all weekend:
1 - Could you describe to me what is and what is included within the
volume structure and the file system structure that are stored in the
data area? Is the file system structure the directory?
2 - Where is the lead-in area physically located in relation to the data
entry area and the lead out area? Is it written at the end of the data
entry just before the lead out area or is it written before the user
data area?"
Thank you all for helping
|
|
|
|
|
Volume structure contains info like volume name,character set, logic block size, partition maps.
File system contains directory structure, file size/location/datetime, allocation table.
Data area is between lead-in and lead-out.
|
|
|
|
|
Thanks sir, your response helps but it still leaves the following questions in my mind.
1. Is the directory structure, file size/location/datetime,
allocation table physically located at the end of the user data area? Yes or no?
2. Is the directory structure and the file size/location/dateline
typically what we would call a directory or is it more than just a
typical directory? If it's more, what "extra information" does it
include that directories typically do not?
3. Can you explain exactly what an allocation table is?
Thank you all for helping
|
|
|
|
|
i found source code to audio cd burning here. i guess itll burn mp2,mp3,atrac3,wma,and ogg vrbis to audio cd all on the fly. http://www.dgpdev.com/activex.htm i ordered it should be getting it soon. just thought id pass this great informat to anyone else interested in cd burning programming.
|
|
|
|
|
|
in my case
"write" butten -> command sequence error
I thing SCSIRead() function is dose not work
|
|
|
|
|
I really want to know how to read VAT ICB on CD-R/DVD-R recorded with UDF.
Could you give me some solution?
|
|
|
|
|
VAT ICB is the last block written to the disc.
You should read track info of the last track,
get the next writtable address.
address of last VAT ICB is this address-8.
See function ListFiles().
|
|
|
|
|
I think it is wrong! When I get the next writtable address, then lastVATICB=this address-8. In your source, I see: SCSIRead(blk,lastVATICB_Addr,1);
but SCSIRead function read 2448*size=2448bytes, its wrong because the next writtable address is the last block but 2448 >8 then I alway get the error:
sense key =0x05, ASC = 0x21 and ASCQ =0x00, that means LOGICAL BLOCK ADDRESS OUT OF RANGE.
am I right, Hongfeng?
If Im wrong, can U explain for me this issue?
Thank a lot!
chimpanzeeVN
|
|
|
|
|
I am not very sure about the problem you are talking about. 8 refers to 8 logic blocks,not 8 bytes, so it's not comparable to the number 2048.
There's one thing for sure, if you get LOGICAL BLOCK ADDRESS OUT OF RANGE error, definitely the LBA is not correct.
|
|
|
|
|
hi..
your program is very detail.. and..
so..large ..
but
in my cd-rw is do not work for your program..
it work.. only open / Eject command.. and.. bus scan...
but..
can not read and..
record..
can you more easy way to.. record?
and..
how can I Burn it well..
thanks..
|
|
|
|
|
ATAPI DRIVE IS NOT SUPPORTED IN CURRENT VERSION
In other words, when this was first posted, it contained software which the author did not have the right to distribute, and he removed it when this was pointed out to him. As a result, this code won't work for most CD-RW drives, at least not without the dll the author removed.
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
It'd probably be fairly easy to make a bot that'd post random stupid VB questions, and nobody would probably ever notice - benjymous - 21-Jan-2003
|
|
|
|
|
Christian Graus wrote:
> ATAPI DRIVE IS NOT SUPPORTED IN CURRENT VERSION
In other words, when this was first posted, it contained software which the author did not have the right to distribute, and he removed it when this was pointed out to him.
Is that a fact?
From what I read from the article, he made just one (fatal) mistake, and that was using only the ASPI API. Had he used any of the the published ASPI <-> SPTI (and make no mistake, SPTI is what is used even for ATAPI devices on NT kernel based operating systems) I believe this would have worked like a charm for almost any ATAPI CD-R/W drive.
I've got some GPL'd source to use ASPI calls with very little source code change to instead access SPTI. I'm not interested in hosting it myself, but should anyone else want it, you know how to reach me.
It works like a charm - I've used it for CDRecord/cdrtools for several years now. Hell, I've even got a full CD-buring/reading incl. MP3 encoding and decoding suite on one single floppy disk. With enough room to spare to put some MP3'd heavy metal on it!
I have never tried it for packet writing since I 1) never had the need, and 2) haven't bothered to look into how UDF works (which I must give a lot of credit to the author of this article, to have displayed the stamina to research it, put it in source and write an - albeit short - article about it), but I see no reason whatsoever it shouldn't work.
|
|
|
|
|
Is there anyone trying to compile the project source after dl?
I can not find the .rc file ...
By the way, may I ask: when I try to write files to the already-formatted CDR, it told me "out of memory", what does it mean?
Thanks ahead
|
|
|
|
|
you can find the file
in root directory on zip file
copy it in to the folder
and..
you can execute the program..
but I'm still can not find ..
"out of memory" is.. not found in my case
|
|
|
|
|
Hello.
I wanted to ask when the update comes which supports ATAPI drives?
Or does any one know why it doesn't workd with ATAPI drives?
thanks
|
|
|
|
|
ATAPI drives, the joke You've to know that SCSI is older and better than AT/IDE. The standart command set defined for SCSI (http://www.t10.org) is slightly different from the one described for AT/IDE (http://www.t13.org) but derivated from SCSI.
AT/IDE support only direct commands that fits into the AT/IDE registers. But for enhanced purposes, especialy MultiMediaCommand (MMC, have a look there for MMC and MMC-2 and MMC-3 : http://www.t10.org/drafts.htm), it was impossible to fit 12 or even 16 bytes commands in just 6 bytes of the AT/IDE registers.
The ATAPI (ATA Packet Interface) is 'just' an encapsulation of the standart SCSI MMC commands for ATAPI ! Every ATAPI drives are in fact SCSI drives with an AT/IDE bus instead !
The only difference, is that you can chain 7/8 drives on SCSI, and only 2 (master/slave) on AT/IDE. And that SCSI have the abilities to control the bus without external task from the CPU, whereas AT/IDE needs some PIO from the CPU, even in DMA that is ONLY used for brust transfert of datas. Commands still chained in PIO mode by the CPU.
SOOoooo, why ATAPI drives (SCSI/MMC drives with AT/IDE bus) not yet supported ? Probably because there is no API as easy to use as the one provided by Ahead 'Nero' Hongfeng. Writing a SCSI/ATAPI driver is fairly easy, because the IO buffers have the SAME structure, you just have to send them in a different way according to the bus (PIO for AT/IDE but DMA for the datas once the command is initialized, stack them using SCSI)... I done it on my ATARI
Kochise
|
|
|
|
|
So are there any other resources which explains the difference between SCSI and ATAPI? Or could you post your code update for atapi drives ?
Lailornd
|
|
|
|
|
Kochise, thanks for your useful info.
I supposed the API of Ahead should work on both ATAPI and SCSI,
but some commands can run on ATAPI drives, while others can't.
I struggled with it for a while, but no success.
Too busy recently...
|
|
|
|
|
Commands that do not work on SCSI but ATAPI are most of the times commands related to the control of the cache and the data Xfert ! While SCSI have it's own cache control originaly implemented in the SCSI protocol, it was something lately implemented on ATAPI drives and called 'BurnProof' or so... It's just the copy of the automatic cache manager of the SCSI the AT/IDE don't do by itself, due to the CPU task.
Where SCSI implement everything to make it independent from the CPU, AT/IDE (and ATAPI) are fully controlled by the CPU. 'BurnProof' is just an IRQ with some additive commands to control the cache. Now for instance if the cache of your CD writer comes to be low (eg. 20%), an IRQ is sent to the CPU/IDE manager to refill the cache. It's something transparent on SCSI and fully controlled by the hardware...
Kochise
PS : http://www.ata-atapi.com
|
|
|
|
|
As my Research SCSI and ATAPI has seperate command set. So
you can not using SCSI command for ATAPI device. But how about ASPI layer ?
Does ASPI fully support for ATAPI ?. I mean ASPI can manage ATAPI device, transfer data and command to ATAPI device ?
Thanks
hungtuan123
|
|
|
|
|
Hi, Thanks for a great demo app. I want to write something similar for DVD UDF, and was wondering if you knew of any file size limitation in UDF?
Thanks,
Mark
|
|
|
|