home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / SND_TOOL / DA2WAV12.ZIP / CDDA.DOC < prev    next >
Encoding:
Text File  |  1995-06-25  |  47.7 KB  |  1,014 lines

  1.  
  2.  
  3. CDDA Version 1.2a - This is the seventh release of CDDA.
  4.  
  5. **** NOTE ****
  6. Release 1.0h was the last free release of CDDA.
  7.  
  8. Since then I have made some drastic changes to the program to 
  9. include XA and most importantly CDi.  It is because of the fact
  10. that Phillips in their infinite wisdom want to "license" their
  11. CDi technology, that I must now turn CDDA into shareware.  I am
  12. not happy about having to shell out several hundred dollars to 
  13. get ahold of their "GREEN" and "WHITE" books.  The new registration
  14. fee is small, and I don't intend to screw the user with paying a 
  15. more than $100US fee before knowing if it may or may not work for them.
  16.  
  17. CDDA - What is it?
  18. ------------------
  19.  
  20. CDDA is a DOS PC based utility that allows the user to extract digitally
  21. perfect copies of samples from audio CDs.  It also allows the user
  22. to extract MPEG streams from CDi Digital Video CDs, and VideoCDs, and 
  23. XA frames from CD-XA CDs.
  24.  
  25. Some History
  26. ------------
  27.  
  28. In February 1993, I needed to get some audio samples into digital
  29. form on my PC.  Toshiba had just released the 3401 CDROM drive
  30. which allowed reading of DA frames across the SCSI bus.  Because
  31. there were no programs available to do this, I had to write my
  32. own.  I used it to get the samples, and then left it alone because
  33. I had no idea anyone else wanted to do this.  Some months later
  34. CDGRAB came out, but they wanted much too much money for their
  35. program, so I cleaned up the program and released it as CDDA09A.ZIP.
  36.  
  37. Note:
  38. Some time later I heard from a very irate person who told me I
  39. couldn't use the name CDDAxxx.zip because he was already using
  40. the name.  I've looked everywhere, used ARCHIE, and asked people
  41. who seem to know every program on the net, and no one has seen
  42. this guy's program.  However, in the interest of keeping peace on
  43. the net, I have changed the distribution file name to DA2WAV1G.ZIP.
  44. The program itself will still be called CDDA.
  45.  
  46. The first release fully supported the Toshiba 3401 CD-ROM drive.  I have
  47. since added a whole bunch more including MSCDEX only. I have given 
  48. prerelease versions of my program to people who have to some degree 
  49. had success with other drives.  I have no guarantees that this program 
  50. will work with your drive.
  51.  
  52. Since the release of 1.0a I have heard from people who were having
  53. trouble with the NEC 74-1/84-1 drives.  So, I went out and borrowed
  54. one for a few days.  To my surprise the 84-1 didn't work.  The next
  55. thing I did was get the data sheets for the drive sent to me from
  56. the NEC faxback.  There is no mention of being able to read DA frames
  57. on that data sheet.  Next, I reread the NEC programming manual.  It
  58. says about the 74-1/84-1 drives "Read CD-DA is under consideration of
  59. content in the SCSI support commnds".  This suggests that it may
  60. or may not be supported.  Next I called NEC tech support.  They told
  61. me that "reading digital audio through the SCSI port is NOT supported
  62. on the 74-1/84-1 drives.  It is supported on the 3x and 4x drives."
  63. So, for the time being, I will leave in the code to support the 74-1/84-1
  64. drives.  If I don't hear from someone who gets it to work in the
  65. next while, I will remove the support and mention it in this file. I have
  66. also heard from someone who has a NEC 211 drive.  I have no idea what
  67. this drive is other than it is a 2X drive.  This person has had good
  68. success running CDDA.  I have also heard from someone with NEC 210 who
  69. has not had success.  If anyone knows more about programming for NEC
  70. drives please let me know.
  71.  
  72. I wanted to be sure that I had full support for all the NEC drives,
  73. so I called tech support again.  This time I had to wait on hold for
  74. over an hour to talk to a tech droid tell me that he didn't know the
  75. answer, but would call me back later in the day with an answer.  That
  76. was six+ months ago and I haven't heard from him.  Next, I tried the email
  77. tech support for NEC.  I got an email back saying that they would look
  78. into it and get back to me right away.  I have sent follow up emails, and
  79. again I haven't heard from them in over six months.  I am not going to
  80. try any more NEC support. Period.  If they can't get their act together
  81. to support their users/developers, then everyone should buy drives
  82. from another vendor.  With all the trouble over the OEM'd 3x drive,
  83. I would think that no one would ever buy a NEC drive again.  BTW, has
  84. anyone heard of a NEC drive since the final version of the 74/84 that
  85. actually works correctly?  I know I haven't, and that includes all the 
  86. new 4x and IDE drives.  I you know otherwise let me know.  In the mean
  87. time I might suggest another vendor.
  88.  
  89. There has been a lot of talk about the Mitsumi drives and whether 
  90. they will work with CDDA and like programs.  The bottom line is this:
  91. I talked to an engineer in the CDROM group at Mitsumi, and he told
  92. me that none of their drives will read DA frames, and that none
  93. of their drives ever will.  It appears that Mitsumi is concerned about
  94. the copyright issues of CDDA.  I know we have all heard rumours about
  95. people getting the drives to work, but I trust the word of the head
  96. s/w designer for CDROM drives over a fourth hand rumour.
  97.  
  98. The reason I have left the Mitsumi in the program is that the Mitsumi drives 
  99. WILL read XA/CDi frames.  For that reason, you can extract your MPEG 
  100. movies, but you can't extract DA.
  101.  
  102. Different ROM revisions cause the drives to do things differently.  One
  103. version may work just fine and others might not.  It is very tough for
  104. me to help with drives that don't work, when I don't have one of
  105. those drives to work with.  If your drive revision is on the bad list,
  106. I don't know what to tell you.  Perhaps you can make a really big
  107. stink with the manufacturer and have them upgrade your rom.
  108. Here is a list of known good and bad rom revisions.  I will add to this
  109. list as I receive reports from the field.  Hint: that means if you get
  110. this program working, please, please, please send me dumps of the
  111. output, so I can update these docs.  You will notice no changes to 
  112. this list since the last version of CDDA.  This is because I haven't
  113. received any dumps from people that have the program working.
  114.  
  115. good                  bad
  116. ----                  ---
  117. Sony 561 rev 1.9a     Sony 561 rev 1.7x
  118. Sony 561 rev 1.8p     Sony 561 rev 1.8f
  119. Sony 8012 rev 3.1e    Sony 55s 1.0q
  120. Toshiba rev 0283      Toshiba rev 2732
  121.                       Toshiba rev 3593
  122. NEC 211 rev 1.0       NEC 84-1 rev 1.0
  123.                       NEC 210
  124.  
  125.  
  126. What drives support DA?
  127. -----------------------
  128.  
  129. I have heard from many different people who say such-and-such drive
  130. will read DA frames.  The following is a list of which drives which
  131. I understand have the ability to read DA frames: (thanks to
  132. bwilliam@iat.holonet.net for starting this list)
  133.  
  134. Apple 300, 300i, 300e (Sony CDU-8003, CDU-8003A, CDU-8012)
  135. Apple CD300+
  136. Chinon CDS-535
  137. NEC CDR 200, 300, 400, 500, 600, 900 series
  138. NEC CDR 84-1/74-1 (rumoured with special firmware) (NEC told me that
  139.                    it didn't exist)
  140. Panasonic CR-562B/563B
  141. Pinnacle RCD1000
  142. Pioneer 124/624
  143. Plextor 4Plex/6Plex
  144. Sony CDU-561, CDU-31A, CDU-33A, CDU-55S, CDU-55E, 76E/76S
  145. Toshiba XM3301 (Silicon Graphics)
  146. Toshiba XM3401, XM4101, (XM3501 with '95 firmware update), 3601, 5302
  147. Hitachi
  148. Matshita (Panasonic) 503
  149. Yamaha CDR100
  150. Kodak PCD225/Philips CDD522/Plasmon RF4100/JVC XRW2001
  151.  
  152. There are a whole slew of new drives coming out with the ATAPI.  A
  153. lot of rumours are floating around as to whether they will work or
  154. not.  Toshiba especially is coming out with a new drive every other
  155. week it seems. Until I can get more detailed results, I will not enter 
  156. them in the supported drive list.
  157.  
  158. You may want to run CDROMINF.EXE and have a look at the output.  If
  159. there no mention of being able to read RAW frames, and/or the
  160. RAW READ SIZE is not 2352, there is no chance that CDDA will work
  161. using the MSCDEX interface.  Also, if it reports that your drive
  162. supports reading RAW, that DOES NOT mean that CDDA will work.  It
  163. all depends upon the person who wrote the driver for your drive.  If
  164. he/she passes DA frames to MSCDEX, you're laughing.  Otherwise,
  165. you're out of luck.
  166.  
  167. There are rumors that the Mitsumi LU055 drive will work using the
  168. MSCDEX interface, but I have yet to hear specifically what version
  169. drive, and what version driver works.  NO OTHER Mitsumi drives are 
  170. supported.  It is not my fault, it is Mitsumi's fault.  Complain 
  171. to them not me.
  172.  
  173. If you know or think you know of other drives, let me know and I will
  174. do some investigating.
  175.  
  176. What is this new CDi support?
  177. -----------------------------
  178.  
  179. Phillips has developed a standard for storing about an hour of video and
  180. audio on a standard CD.  The data is really a long MPEG I stream.  CDDA
  181. will allow you to extract either the raw MPEG stream, or just the
  182. video stream.  You can then play back the movies with any of the 
  183. standard MPEG file players.  Have a look at the included file CDIFAQ.TXT.
  184. This gives a very basic run down of what CDi is all about.
  185.  
  186. Phillips has two disc standards: WHITE book and GREEN book.  Green
  187. book was the first standard, but was really only any use if you
  188. were using a real CDi player.  It has a proprietary file system
  189. and most CDROM players won't accept the discs.  Phillips finally 
  190. smartened up and decided that they wanted to expand their market
  191. so they came up with the White book standard.  The only difference
  192. is that these new discs come with the file system built around
  193. ISO 9660.  This way most every CDROM drive in the world will allow
  194. you to look at the directory structure.  To get at the movie data
  195. you still need a drive that supports CDi.  Fortunately, as far as
  196. my program is concerned, if your drive supports XA and you have a
  197. White book disc, then you are probably ok.
  198.  
  199. When you have a White book CD installed, CDDA detects this and will
  200. attempt to display a list of MPEG streams contained on the disc.
  201. They should be displayed as file names from the CD in the form 
  202. of /MPEGAV/AVSEQ*.DAT.  It should also give you an idea of the starting
  203. block of the stream if you want to use the /LBA option.
  204.  
  205. Have a look at the included file CDCOMPAT.TXT.  It is a list from Sigma
  206. Designs (the people who make the RealMagic MPEG card) as to what
  207. CD-ROM drives work with CDi movies and what don't.  Have a look at this
  208. list before yelling at me because your drive doesn't work.
  209.  
  210. How do I use this program?
  211. --------------------------
  212.  
  213. This is a command line utility which allows the user to specify the start
  214. and end points of the data transfer and the output type.  The start and
  215. end points may be entered in one of three modes,: LBA, MSF and track.
  216. Logical Block Address mode is the number of the frame from the start of
  217. the disc. Minute, Second, Frame mode specifies the time from the start
  218. of the disc in actual time.  Track mode allows you to dump an entire track
  219. (or song) to disk.  The LBA and MSF are related by the following formula:
  220.     LBA = Minutes * 60 * 75 + Seconds * 75 + Frames - 150
  221. The lead in track is usually 150 because there are usually 2 empty
  222. seconds at the start of a CD, but it can also be any number +- 75 frames
  223. from 150.  A commmon number other than 150 is often 182 or 183.
  224. The Toshiba, NEC and MSCDEX programming manuals define the LBA equation
  225. to be as above with -150 at the end.  The Sony manual is very vague,
  226. and it could be interpreted as either -150 or as -(lead in track).
  227. Since two of the three manuals say clearly -150, I have chosen
  228. -150 for the Sony as well.  I managed to do a fair bit of testing on
  229. a Sony 561 drive, and it appears that the -150 figure is correct.
  230. If anyone has more precise information on the Sony please pass it along.
  231.  
  232. The /ID option allows you to manually set the SCSI ID of the CDROM
  233. drive you want to use.  This is useful if my software incorrectly
  234. guesses your drive's ID, or if you have more than one CDROM drive
  235. in your system.
  236.  
  237. The /LUN option allows you to manually set the SCSI LUN of the CDROM
  238. drive you want to use.  This is useful if my software incorrectly
  239. guesses your drive's LUN, or if you have a multi-CD drive in your system
  240. like the 6 Pack from Pioneer.
  241.  
  242. The /MSC option allows you to manually set the MSCDEX drive letter of
  243. the CDROM drive you want to use.  This is useful if my software incorrectly
  244. guesses your drive's ID, or if you have more than one CDROM drive
  245. in your system.  This option does not force the software into
  246. the /M option.
  247.  
  248. The /M option forces the software to use only MSCDEX commands.  This
  249. may or may not work with your drive.  If you don't have a SCSI CDROM
  250. drive with ASPI drivers, this is your only hope.  This option would
  251. be used with the Panasonic CR-562/563, Sony CDU-31A/33A drives.
  252.  
  253. The /NJC option forces the software to not do any jitter correction
  254. to the data read from the CD.  This means that the program will run
  255. faster, but that the files created cannot be guaranteed to be 100%
  256. perfect copies.
  257.  
  258. The /P option starts the CDROM drive playing the selected range of
  259. audio out either the headphone jack on the front or out the line level
  260. jack on the back.
  261.  
  262. The /CDIVIDEO and /CDIRAW options are to be used when you have a CDi
  263. movie disc.  /CDIVIDEO allows you to extract just the video portion
  264. of the MPEG stream.  /CDIRAW allows you to extract the entire
  265. MPEG audio/video stream.  If you use a program like VMPEG, or have
  266. a RealMagic card, then you will be able to play the movies from 
  267. hard disk instead of from the CD.
  268.  
  269. One thing to remember when using the CDi options:  CDDA must hunt through
  270. the disc to find the start of the stream.  A good way to figure out
  271. where the streams start is to look at the dump from CDROMINF.  If you
  272. have a White book disc, then the streams start at the same point
  273. as the tracks 2 and up.  Track 1 is for the file system and support
  274. files, and tracks 2 and up are for the MPEG.  If you have a Green 
  275. book disc, then you will have to choose a start point which is
  276. early enough in the disc to find the stream start.  Often the streams
  277. start around LBA 3400.  There may be more than one stream on a 
  278. Green book disc.
  279.  
  280. If you are using a White book disc, your best bet is to use the /T
  281. option, if you have enough disc space.
  282.  
  283. When you want to play the MPEG files that you have extracted, your
  284. best be is to use a program like VMPEG.  The latest version now also
  285. plays the audio.  Remember that you are going to need a lot of computing
  286. muscle to do the MPEG decoding.  Have a look at the following news post
  287. about CDi.
  288.  
  289. From: davido@aimla.com (David Oseas)
  290. Newsgroups: comp.multimedia
  291. Subject: Re: Wanted:CD-i mpeg files viewer without mpeg card
  292. Date: 11 May 1995 17:38:08 GMT
  293. Organization: Philips Media
  294. Lines: 23
  295. Distribution: world
  296. Message-ID: <3oti21$f6f@silver.aimla.com>
  297. References: <3od40u$pqj@ufrima.imag.fr>
  298. Reply-To: davido@aimla.com
  299. NNTP-Posting-Host: gneiss.aimla.com
  300.  
  301. In article pqj@ufrima.imag.fr, ageay@turing.imag.fr (Alexandre GEAY) writes:
  302. >i want to play sound from CD-i mpeg files with the video!
  303. >
  304.  
  305. I want the Cray-X/MP you're planning on running it on!
  306.  
  307. Seriously, I don't know of any computer system that is capable of
  308. demultiplexing the bitstream off disc & decoding the video and
  309. audio in sync (i.e. real time) using a software-only solution.
  310.  
  311. Your best bet is a hardware decoder.  Prices are dropping fast.
  312. I've seen boards with a MSRP of $179.
  313.  
  314. Alternatively, get a CD-i player with a DigitalVideo cartridge--
  315. then you'll be able to play all CD-i discs, including the ones
  316. we're showing at E3 this week.  ;-)
  317.  
  318. ---
  319. David Oseas, (davido@aimla.com)                [CD-i, MPEG & Amiga guru] 
  320. Sr. Software Engineer, InSight Entertainment Group
  321. Philips Media, Los Angeles, CA                  Tel: (310) 444-6150
  322.   [OPINIONS ARE MY OWN & DO NOT NECESSARILY REFLECT PHILIPS POLICIES]
  323.  
  324.  
  325.  
  326. One last thing about CDi.  You may see messages during the dump
  327. about unknown subheaders.  This is fairly normal.  If you do get these
  328. messages, dump them to disk and send them to me.  I will include 
  329. checking in a later version of the program.  There is a very long list
  330. of subheaders, and I have only added the ones I have seen in the 3 CDi
  331. discs I have.
  332.  
  333. For the options /S /E /F which expect a following parameter, remember that
  334. there needs to be a space between the letter and the parameter.  ie if you
  335. enter /S01:10:10, it would come up as an error, but if you entered
  336. /S 01:10:10, it would be correct.  For the MSF mode, there need to
  337. be 2 digits for each of minutes, seconds and frames or it will come up as
  338. an error.  When entering the filename with the /F, don't include an
  339. extension, as the software automagically adds the extension for you.
  340.  
  341. At there are several file formats supported. WAVE (.WAV) and Binary (.CDA)
  342. are the types for DA, .XA for XA, and MPG for raw CDi and MPV for 
  343. MPEG video. There is also the option to dump the data in HEX format out 
  344. to the STDOUT device.
  345.  
  346. The binary format has the audio samples stored in the order Left LSB, 
  347. Left MSB, Right LSB, Right MSB.  The samples are 16 bit 44.1 KHz stereo.
  348.  
  349. I am not expecting to add options to output files in 8-bit or 22.05 KHz.
  350. This is not as simple as just throwing away samples, as this causes
  351. aliasing in the output files.  Correcting this is way beyond the
  352. scope of this program.
  353.  
  354. I am not planning to add many more formats because there
  355. are plenty of other programs out there that will do the conversions much
  356. better than I can.  Besides, the whole purpose of this program was to
  357. get the raw data out to the hard disk, not duplicate SOX.
  358.  
  359. On every CD there is a bit which defines if copying a particular track is
  360. permitted or prohibited.  CDDA checks this bit and will not continue
  361. with the dump to disk.  I have included an override option /O which forces
  362. the user to explicitly specify and to knowingly copy a copy prohibited
  363. song.  Have look at the file ROYALTY.TXT included in this distribution,
  364. which was honourably pinched from the program CDGRAB.  It is a list
  365. of most country's contacts for paying royalties.  I have heard from
  366. a couple of people who have actually tried to pay the royalites.  They
  367. have had nothing but trouble.  My understanding is that the producer
  368. has the final say on royalties, and that you must deal with him/her 
  369. as well.
  370.  
  371. One thing to remember is that audio/video fills up the hard disk fast.  It
  372. takes between 9 and 10 megabytes per minute.  Because of this I
  373. put in a check to make sure that you will have enough space to put the
  374. requested samples.  As well there is the /U option which will give you
  375. an estimate of how much disk space will be used without actually dumping
  376. the data to disk.
  377.  
  378. Examples
  379. --------
  380.  
  381. CDDA /MSF /S 10:14:36 /E 13:55:11 /F outfile /W
  382. will dump using MSF mode from 10:14:36 to 13:55:11 to a WAV file
  383.  
  384. CDDA /LBA /S 106232 /E 109443 /F outfile /B
  385. will dump using MSF mode from 106232 to 109443 to a Binary file
  386.  
  387. CDDA /T 2 /F outfile /W /O
  388. will dump the entire track 2 to a WAV file with the override mode on
  389.  
  390. CDDA /T 2 /U
  391. will display the estimated disk space for all of track 2
  392.  
  393. CDDA /T 2 /H
  394. will dump the entire track 2 in HEX to STDOUT
  395.  
  396. CDDA /T 2 /M /F outfile /W /O
  397. will dump the entire track 2 using MSCDEX interface only
  398.  
  399. CDDA /T 2 /F outfile /W /O /NJC
  400. will dump the entire track 2 using no jitter correction
  401.  
  402. CDDA /T 2 /MSC G /ID 4 /F outfile /W /O
  403. will dump the entire track 2 from MSCDEX drive G, SCSI ID 4 CDROM drive
  404.  
  405. CDDA /T 2 /CDIVIDEO /F outfile /O
  406. will dump the entire track 2 in MPEG video to outfile.MPV
  407.  
  408. CDDA /T 2 /CDIRAW /F outfile /O
  409. will dump the entire track 2 in MPEG raw audio/video to outfile.MPG
  410.  
  411. CDDA /LBA /S 2345 /E 3456 /XA /F outfile /O
  412. will dump track 2345-3456 in to outfile.XA
  413.  
  414.  
  415. What is this jitter business?
  416. -----------------------------
  417.  
  418. The following is a post made over a year and a half ago which discusses
  419. the technical reason for a CDROM drives difficulty in accurately
  420. positioning itself on an audio CD.
  421.  
  422.  
  423. --------------------------------------------------------------------------
  424. Newsgroups: alt.cd-rom,aus.cdrom
  425. From: adrie@ica.philips.nl (Adrie Koolen)
  426. Subject: Re: Reading Audio CDs - Why is it so complicated?
  427. Keywords: cd, cd-rom, cdrom, audio, sampling, naivety
  428. Organization: Philips Consumer Electronics, Eindhoven, The Netherlands
  429. Date: Fri, 19 Feb 1993 08:23:53 GMT
  430. Lines: 63
  431.  
  432. In article <C2nqFC.5Ew@smsc.sony.com> dce@smsc.sony.com (David Elliott) writes:
  433. >In article <1993Feb17.213223.24058@isa.de>, schwarz@isa.de (Diemo Schwarz) writes:
  434. >|> What I don't understand is: 
  435. >|> Why should it be so difficult to extract pure audio data from a CD?
  436. >
  437. >It isn't.  The problem is that the SCSI controllers in most CD-ROM
  438. >drives simply don't support it.
  439. >
  440. >|> The medium is structured by tracks and indices, isn't it?
  441. >
  442. >Yes.
  443.  
  444. Note that the `tracks' on a CD aren't layed out like tracks on a hard disk.
  445. The track and index are just numbers that are stored with each sector on
  446. the CD (in the Q-subchannel packet). The start address of a track is stored
  447. in the Table Of Contents on the CD, indices are not. Indices are normally
  448. not used, except index 0 for the 2 seconds pause at the start of each
  449. track.
  450.  
  451. The REAL structure of the CD medium is a large continuous spiral, starting
  452. at the center of the CD (at 46mm diameter). Finding a specific sector is
  453. not as trivial as it is on a hard disk. You'll have to employ a kind of
  454. binary search algorithm. Finding the start position of a specific index
  455. is even more difficult as you don't even know where it starts.
  456.  
  457. >|> And every CD player somehow manages to ship the data from the disc to
  458. >|> the D/A converter, doesn't it?
  459.  
  460. But at the DAC, they don't know which sector the sample came from or what
  461. the relative position the sample takes in a sector.
  462.  
  463. >|> So, what's the difference between reading data CDs and music CDs?
  464. >
  465. >The format of the data, to put it simply.
  466.  
  467. Well, most decoders used in audio CD players, output a stream of samples
  468. and sub-channel data, mostly used for their time code. As the decoder has
  469. to adjust the spindle speed, it uses a FIFO to store the data. If the
  470. FIFO fills up, the spindle motor is slowed down, if it gets empty, the
  471. motor is sped up. The sub-channel data normally doesn't pass through the
  472. FIFO, but goes directly to a microcontroller. That way, the microcontroller
  473. can't be sure that it knows the exact address of the data, coming out of
  474. the FIFO.
  475.  
  476. To circumvent this problem, the address of a sector is also stored in the
  477. data itself, together with a 12 bytes sync pattern. This way, one can
  478. determine the starting of a sector and its address just by looking at the
  479. data coming out of the FIFO.
  480.  
  481. Here's the real problem: audio sectors don't have this sync pattern, nor
  482. the address of the sector, in the data area of a sector. Most CDROM drives
  483. use chips that are coming from audio players. The first CDROM drives were
  484. just modified audio CD players.
  485.  
  486. To read audio sectors on a CDROM drive, you'll need a special decoder or
  487. you'll need to connect a standard decoder with some custom hardware to
  488. generate pulses to indicate the start of a sector and to synchronize the
  489. sub-channel packets with the real 2352 bytes of data.
  490.  
  491. I hope that this explains it a bit.
  492.  
  493. Adrie Koolen (adrie@ica.philips.nl)
  494. Philips Consumer Electronics, Eindhoven, the Netherlands
  495. --------------------------------------------------------------------------
  496.  
  497.  
  498. Because of this, most every CDROM drive that can read DA frames cannot
  499. accurately return to the exact same location on the disc every time.
  500. It will usually return within a few samples either way.  It took
  501. a lot of time and thought to write the code to correct for the
  502. "jitter" efficiently.  My first try brought the transfer rate
  503. to a crawl.  I have been refining the process to the point that
  504. it barely has any computing overhead, but still I have to read most
  505. every frame twice.  I am still working on getting this to work
  506. faster.  Some people have reported an 8x slowdown from 0.9a to
  507. 1.0a.  I have no explaination for that large a difference.  
  508. It is nowhere near that large on my machine, as I see only about 3x.
  509. I do agree that it is still much too slow. I have made a number of
  510. improvements in 1.0e and 1.0g that help with this slow down including making
  511. the receive buffer as large as possible (64K) when using real mode drivers
  512. like ASPI and MSCDEX.  I have also added the /NJC option for those who
  513. cannot wait for their files to be created, or for those whose drives
  514. are generating "Jitter greater than 5 frames" errors.  This error
  515. means that the software has become lost on the CD because the drive
  516. was unable to return to within 5 frames of its last postion.
  517.  
  518.  
  519.  
  520. What kind of help is there?
  521. ---------------------------
  522.  
  523. There is very limited help from the command line for CDDA.  You can get
  524. the "USAGE" by just typing CDDA.e.g.:
  525.  
  526. C:>CDDA
  527.  
  528. Usage: CDDA /(mode)  [/O] /S <start> /E <end> /F filename
  529.            [/ID <cd-rom scsi id>][/MSC <mscdex drive letter>].
  530. modes are LBA, MSF, T, U, H, NJC, M, XA, CDIRAW, CDIVIDEO
  531. /MSF - times in minute, second, frame format (MM:SS:FF)
  532. /LBA - times in Logical Block Address format (xxxxxx)
  533. /T   - send whole track to file
  534. /S   - Start time
  535. /E   - End time
  536. /P   - play the selected range
  537. /U   - estimated disk usage required for data
  538. /H   - hex dump of sectors to stdout
  539. /B   - write to file in Binary format
  540. /W   - write to file in WAV format
  541. /O   - override copy protection bit
  542. /M   - override ASPI interface and use MSCDEX
  543. /NJC - do not perform jitter correction
  544. /MSC - override MSCDEX find first CD-ROM
  545. /ID  - override ASPI find first CD-ROM
  546. /LUN - override ASPI find first CD-ROM
  547. /XA  - read raw CD-XA frames
  548. /CDIVIDEO  - read plain MPEG video from a CDi disc
  549. /CDIRAW    - read raw MPEG video/audio from a CDi disc
  550. Binary mode extension CDA will automagically added to the filename
  551. Wave format extension WAV will automagically added to the filename
  552. CDi raw format extension MPG will automagically added to the filename
  553. CDi video format extension MPV will automagically added to the filename
  554. XA format extension XA will automagically added to the filename
  555. e.g. CDDA /MSF /S 10:14:36 /E 13:55:11 /F outfile /W
  556. e.g. CDDA /LBA /S 106232 /E 109443 /F outfile /B
  557. e.g. CDDA /T 2 /F outfile /W /O
  558.  
  559.  
  560. Copying and Registration (does he mean this costs $$$?)
  561. -------------------------------------------------------
  562.  
  563. I am allowing full freedom to copy this program.
  564. It IS a fully functional version.
  565. It is NOT Crippleware!
  566. There is NOT a pro version available for an unreasonable sum of money.
  567. As I said at the start of this file, I am now forced to start asking
  568. for a small amount of money for this program.  If you use it, then
  569. you need to register it. 
  570.  
  571. If you don't agree with the new shareware policy, then you can:
  572. a) use the program anyway and violate the copyright
  573. b) go back and use version 1.0h which will remain freeware
  574. c) don't use the program at all
  575.  
  576. I would rather keep this program Freeware, but when it starts costing
  577. me money to develop new features, then I have to draw the line.
  578.  
  579. The registration fee for using CDDA is now $15 US.  I believe that
  580. this is a fair amount given the amount that the program does.  As
  581. well, if you don't need the new features and bug fixes, then
  582. use the old version.
  583.  
  584. I won't be asking for a fee every time a new version comes out.  This
  585. fee will give you a lifetime (as long as I bug fix and add features) 
  586. of free updates via the Internet.  I will also notify registed users 
  587. of any new versions for a year.
  588.  
  589. My mail address is:
  590.  
  591.       Jim McLaughlin
  592.       449 Viewmount Dr.
  593.       Nepean, Ontario
  594.       Canada
  595.       K2E 7P1
  596.  
  597. If you have any questions, my email address is jmclaugh@bnr.ca.
  598.  
  599. I would also like to try and keep all the files together and unchanged
  600. in the archive, so if you are passing this around don't change the files.
  601. In this distribution the files contained are:
  602.  
  603. CDDA.EXE - the program itself
  604. CDDA.DOC - this document file
  605. ROYALTY.TXT - the list of people to whom you should pay royalties
  606. CDROMINF.EXE - the MSCDEX exerciser program
  607. CDROMINF.DOC - the text file describing CDROMINF
  608. MSCTEST.EXE - the test program for MSCDEX only access reading DA
  609. TOSHTEST.EXE - the test program for TOSHIBA drives reading DA
  610. TOSH_RST.EXE - the program to reset TOSHIBA drives after fatal errors
  611. TOSHREPR.EXE - the program to restore the sectors/track on a damaged HD
  612. NECTEST.EXE - the test program for NEC drives reading DA
  613. SONYTEST.EXE - the test program for SONY drives reading DA
  614. CHINTEST.EXE - the test program for CHINON drives reading DA
  615. SCSIPING.EXE - the program which uses ASPI to search for SCSI drives
  616. CDCOMPAT.TXT - a list from Sigma Designs of drives which support CDi
  617. CDIFAQ.TXT - the short CDi FAQ
  618. CDIMOVIE.TXT - the most up to date movie list from Philips
  619. SYWTBACD.TXT - so you want to buy a CDROM?  my commentary on all the vendors
  620. XADRIVE.TXT - the list from Kodak of drives which support CD-XA
  621.  
  622.  
  623. If you are one of those Shareware houses, I don't want to see this program
  624. available for $6.99 plus shipping and handling.  I don't like seeing
  625. the average Joe getting burned for a 10 cent disk, 1 cent label and 2 cents
  626. worth of labour to make the disk, especially when he can get 600+ Meg
  627. of really good stuff from something like the Simtel CD for $25 (thanks to
  628. Robert Bruce for starting the cheap archive business).
  629.  
  630.  
  631. How to get hold of me for help.
  632. -------------------------------
  633. If you want to mail me about problems or to tell me I'm going to rot in
  634. HE double hockey sticks for helping to copy music, put your message in
  635. a file and copy it to the NUL device. :>
  636.  
  637. If you want to make suggestions or want to send compliments you can contact
  638. me at the address below.
  639.  
  640. If you encounter trouble with the program CDDA, try and run the included
  641. test program most suited to your drive.  There are four test programs:
  642. one for each of the Toshiba, Sony and NEC type drives, and one which
  643. is a MSCDEX only version.  These programs are scaled down versions of
  644. CDDA and use the command line to specify the drive letter and ID.
  645. The programs TOSHTEST, SONYTEST and NEC test take a single command
  646. line argument.  It is -n, where n is the SCSI id of the drive.
  647. eg. c:>toshtest -3
  648. This will run TOSHTEST on the SCSI drive id 3.
  649.  
  650. There is also the program SCSIPING.  It searchs for are reports all devices
  651. connected to the SCSI controller.  It uses the ASPI interface.
  652.  
  653. Finally there is a new program called TOSH_RST.  It is used to reset
  654. a Toshiba drive after CDDA has stopped with a fatal error.  It uses
  655. the same command line argument as the TOSHTEST program.
  656.  
  657.  
  658. If you would like assistance in solving problems, please include all
  659. dumps from all the related programs.  You should be able to
  660. run the programs like this and get the dumps in a text file:
  661. CDDA /T 2 /W /O /F testfile >dumpfile.txt
  662.  
  663. I have real difficulty in tracking down problems without these
  664. dumps.  In the past the majority of people asking for help just send
  665. along a short note telling me my program doesn't work, and what
  666. they remember the error messages saying.  This just doesn't cut it.
  667. I have to have the dumps to help.
  668.  
  669. The bottom line - RTFM before writing me.  Also read the alt.cd-rom
  670. FAQ.  many of your questions can be answered by reading.
  671. EMAIL: jmclaugh@bnr.ca
  672.  
  673. Things on my wish list of new functions
  674. ---------------------------------------
  675.  
  676. I want to add support for other CDROM drives that can read DA sectors
  677. over the SCSI, but I don't have access to these drives.  If someone could
  678. supply me with the programming information, I could try and do up a new
  679. version of CDDA, if I ever get some spare time.
  680.  
  681. Aren't there other programs which do the same thing?
  682. ----------------------------------------------------
  683.  
  684. Yes.  There are several other programs out there which do some 
  685. of what CDDA does.  In the spirit of the Internet, here are all (I think)
  686. the other programs which read DA frames.  CDDA is the only program
  687. available that will do DA, XA and CDi for all the drives I support.
  688.  
  689. CDDA.ZIP - ftp.cdrom.com - contact: jmclaugh@bnr.ca (my old version)
  690. DA2WAV12.ZIP - ftp.cdarchive.com contact: jmclaugh@bnr.ca (my new version)
  691. CDGRAB32.ZIP - ftp.cdrom.com - contact: cdgrab@aldigital.algroup.com
  692. CDAR010.ZIP - wuarchive.wustl.edu - contact: rhofboer@knoware.nl
  693. NECTOWAV.ZIP - ftp.cdrom.com - contact: zerucha@shell.portal.com
  694. CDINFO12.ZIP - archive.utoronto.edu - contact: hpverwei@cs.ruu.nl
  695. CDDAREAD.ZIP - archive.utoronto.edu - contact: ap@jyu.fi
  696. ??????.??? - posted to alt.cd-rom - contact yenchee@Jupiter.cdie.nctu.edu.tw
  697. CDDA2WAV.ZIP - ftp.cdrom.com - contact: heiko@colossus.escape.de
  698. READCDA.ZIP - ftp.cdrom.com - contact: hst@mh.nl
  699.  
  700. Questions I have received since the release of 0.9a and 1.0a
  701. ------------------------------------------------------------
  702.  
  703. Why is the program so slow?
  704. This program is so slow because of the following:
  705. 1. My poor programming skills.
  706. 2. Many of the CDROM drives only read DA frames in 1X mode even though
  707.    they may transfer data at 2X or 3X.
  708. 3. The amount of computing to do jitter correction.
  709. 4. Reordering the bytes from the CD to the WAV file.
  710. 5. Having to read 16 frames for every 10 actually written to disk to
  711.    allow for up to three frames of jitter.
  712. 6. When there is more than three frames of jitter, I slightly shift
  713.    the aim of the search and reread the problem frames.
  714. 7. My Toshiba seems to have a majic number of 10 frames, that if I
  715.    read more than that at a time it takes 2-3 times longer than
  716.    reading in bunches of 10 or less.  I don't understand it.  Since I
  717.    have to read ahead 4 frames and behind 4 frames every time I read
  718.    a block from the drive to correct for jitter, I can't very well
  719.    keep my reads under 11 frames.  Other drives may have similar
  720.    thresholds.
  721. 8. If you are using MSCDEX only, make sure that the /m:xx option on the
  722.    MSCDEX line of your autoexec.bat is set to at least 20.  Any less
  723.    than this, and CDDA will end up reading in 2 possibly discontinous
  724.    chunks.  This will add greatly to the time to read data.
  725.  
  726.  
  727. What is ASPI?
  728. ASPI stands for Advanced SCSI Programming Interface.  It was developed
  729. by Adaptec, and has been adopted by many SCSI card manufacturers as
  730. a standard SCSI programming interface.  If you want more information
  731. on ASPI call Adaptec (408) 945-8600.
  732.  
  733. When I use /T, the start and ends of the track are a couple of
  734. seconds away from where I think they should be.  Why is this?
  735. In version 0.9a, there was a deep rooted bug which caused this.  I
  736. have fixed it (I hope), and this should no longer be a problem.
  737.  
  738. When I play back my samples, why are there pops and clicks?
  739. These pops and clicks can come from two places:
  740. 1. version 0.9a did NOT handle the jitter problem, it is handled now.
  741. 2. your sound card can't handle 16-bit 44.1 KHz samples.  Try using SOX
  742.    or a similar program to change the sample to 22.05 or 11.025 KHz
  743.    samples and try again.
  744.  
  745. The program stops with the error xxx.  What is wrong?
  746. The 0.9a release had very limited error reporting.  I thought that
  747. if it worked on my machine it work on everybody's.  This version
  748. has much more error reporting.  As I understand it, CDDA will
  749. not necessarily work correctly if SMARTDRV is installed.  This has
  750. been the source of a lot of trouble.  As well some people have been
  751. having trouble using CDDA in a DOS window in Windows.  I think
  752. there may be a problem when being used with a DPMI manager installed.
  753. So, the bottom line is DON'T run CDDA under Windows.
  754.  
  755. When will you release an OS/2 version?
  756. I have no interest in writing a version for OS/2. Period.  However,
  757. if you are running Warp, then you already have VASPI, and CDDA should
  758. run just fine.  If you are using an earlier version, then
  759. there is a program from Adaptec called VASPI, which will allow
  760. you to run CDDA in a DOS window.  I got the following email with
  761. the how-to for OS/2 from Stefan Eichner (Stefan-Eichner@k2.maus.de):
  762.  
  763. > 1. Your CONFIG.SYS has to include the follow lines:
  764. > [...]
  765. > BASEDEV=TMV1SCSI.ADD
  766. > BASEDEV=OS2ASPI.DMD
  767. > REM DEVICE=C:\OS2\OS2CDROM.DMD /Q
  768. > E=C:\OS2\MDOS\VASPI.SYS
  769. > [...]
  770. > !If no OS2CDROM.DMD is loaded you can't read Data-CDs!
  771. >
  772. > 2. Add to the autoexec.bat the start-comand for MSCDEX2.EXE
  773. > (e.g. C:\MSCDEX2.EXE /D:MSCD001 /L:H /m:10 /v)
  774. >
  775. > 3. Change the settings of the DOS-Session on the WPS:
  776. > DOS_DEVICE=C:\TSLRCDR.SYS /d:mscd001 /p:3
  777. >
  778. > Now CDDA works great!!!
  779. VASPIBET.ZIP is available from ftp.cdrom.com
  780.  
  781. When will you release a Windows version?
  782. I have no interest in writing a Windows version.  I don't have the time,
  783. and I don't think Windows is a particularly good OS (if you can call
  784. it an OS).  I have had a couple of offers to help, but I have been
  785. too busy with the rest of my life to work on it.  Don't hold your
  786. breath.
  787.  
  788. When will you release a UNIX version?
  789. Never.  Although I run LINUX on my machine, I have no interest in
  790. rewriting CDDA.  There is a program called CD-DA for Linux, which
  791. should work with the Toshiba drives.  It is available from Sunsite.
  792.  
  793. When will you be writing a version for my CDROM drive?
  794. Getting the programming information from CDROM drive manufacturers is
  795. like pulling teeth.  I've been hunting for this stuff for over two
  796. years, and have only managed to get the programming manuals for
  797. Toshiba, Chinon and Sony.  If you have a drive and it does support DA frames,
  798. I need the programming manual.  I also need about 5 or 6 extra hours
  799. in each day.
  800.  
  801. I have a Toshiba drive.  Why doesn't your program work?
  802. It appears that different ROM revisions cause the drives to work
  803. differently.  For instance, my Toshiba 3401 is revision 0283.  I have
  804. heard from people who have ROMs older and newer that can't use
  805. my program.  I have also heard that Toshiba has changed the programming
  806. interface on newer drives, but it is not reflected in their SCSI
  807. programming manual.  I just don't know what is wrong.
  808.  
  809. Why doesn't your program work with my ASPI driver?
  810. Several vendors supply ASPI drivers for their SCSI cards.  However,
  811. all drivers are not created equal.  I have heard from people who
  812. have had trouble with just about every SCSI card on the planet.  I
  813. only have Adaptec's EZSCSI to do my testing.  I'll try and do my
  814. best on case by case basis, but I really don't have any spare time.
  815.  
  816. CDROMINF works on my machine, so why doesn't CDDA?
  817. CDROMINF only uses MSCDEX calls, and CDDA also uses ASPI calls.  It
  818. is these ASPI calls that do the meat of the program.  If ASPI isn't
  819. on your machine, or doesn't work correctly, then CDDA will never work.
  820. Your only other choice is to try the /M option and use only
  821. MSCDEX commands.  This is unlikely to help any SCSI drive owners.
  822. Before writing me and asking for your drive to be supported, do a
  823. little legwork first.  Call the manufacturer and ask for the programming
  824. information.  Second, run all the test programs included with this
  825. release.  These programs don't check for the drive type before trying
  826. to read DA frames.  If any of these pass, let me know and I can
  827. add your drive based on the programming information of an existing
  828. drive.  It has happened before, so it might happen again.
  829.  
  830.  
  831. Why are there tons of zeros at the beginning and end of my track?
  832. Most every audio track has some silence at the beginning and
  833. end.  This silence is actually digital silence which is all
  834. zeros for the samples.
  835.  
  836. Can I use CDDA to read from DAT drives?
  837. As far as I know there are only a couple of DAT drives out there
  838. that allow reading of digital audio through SCSI.  In theory, I could
  839. add that feature to CDDA, but since I don't have one of those drive,
  840. and I don't have the programming manuals either, I seems very unlikely
  841. that this will ever happen.  It also seems that these drive vendors
  842. have taken out support for reading DA.  Their story is that people
  843. were putting cheap quality audio tapes in the drives and screwing
  844. up the drives.  So they took out the feature.  My guess is that they
  845. were getting pressure from the record companies.  If you really
  846. need to do this then get yourself a Silicon Graphics machine.  They
  847. make sure that this feature is available in their package.  Don't 
  848. forget to mortgage your house to pay for it.
  849.  
  850. Sometimes CDDA doesn't work when I first put in a CD. Why?
  851. I don't know.  Some people have reported that CDDA works better after
  852. a new CD is put in the drive if you use some other utility to play and
  853. then stop the CD.  This seems to force some sanity into some drivers.
  854.  
  855. Can you change CDDA to read the song titles from my audio CD?
  856. There are no song titles recorded on an audio CD.  The following
  857. is a post which explains this better than I can.
  858.  
  859.  
  860. ----------------------------------------------------------------------------
  861. From: dplatt@ntg.com (Dave Platt)
  862. Newsgroups: alt.cd-rom
  863. Subject: Re: Ascii Track data on Audio CDs
  864. Keywords: Audio CD Ascii Track
  865. Date: 23 Feb 93 19:16:03 GMT
  866. Organization: New Technologies Group, Inc.  Palo Alto CA
  867. Lines: 41
  868.  
  869. >A friend told me that encoded on Audio CDs are the track titles, CD title,
  870. >credits and even a bitmap image of the cover art.  Can anyone confirm or 
  871. >deny this?  If it is true, how does a programmer get to this information?
  872.  
  873. In general, this is _not_ true.
  874.  
  875. The disc table-of-contents has information about the total disc length,
  876. number of tracks, and the starting time of each track.  It has no room
  877. for human-readable text and there is no provision in the standards for
  878. such, as far as I've ever been able to find out.
  879.  
  880. The audio tracks have "subcode" information associated with each frame
  881. (75 frames per second).  The P subcode bit is used for primitive
  882. track-signalling flags, and is rarely interpreted by modern CD players.
  883. The Q subcode contains some useful information: control (type,
  884. preemphasis, and copy-protect fields), address information, index
  885. numbers, and sometimes the disc catalog/barcode number or the ISRC code
  886. (serial number, country, year, owner ID) of the recording.  Still, no
  887. room for text or artwork.
  888.  
  889. The R,S,T,U,V,W bits in the subcode can be used in a variety of ways.
  890. The most popular de facto standard is for CD+G graphics.  These provide
  891. a sort of slow-scan video (288x192 pixels, max of 4096 colors using an
  892. encoded color lookup table).  The CD+G graphics can include almost
  893. anything... lyrics, still photos from concert footage, and copies of the
  894. cover artwork are all quite possible and have been done.
  895.  
  896. Only a relatively small percentage of audio CDs have CD+G graphics.
  897.  
  898. Some CD players have a "subcode out" jack which can be fed to an
  899. external decoder.
  900.  
  901. Some CD-ROM drives allow the subcode data to be read over the SCSI (or
  902. other) communication bus while the drive is playing audio CDs through
  903. its built-in DACs.  Some [fewer] drives allow both the audio data and
  904. the subcode to be retrieved over the bus and manipulated by the host
  905. computer.  Details vary;  see your drive reference manual.
  906. -- 
  907. Dave Platt                                                VOICE: (415) 813-8917
  908.               Domain: dplatt@ntg.com      UUCP: ...netcomsv!ntg!dplatt
  909.  USNAIL: New Technologies Group Inc. 2470 Embarcardero Way, Palo Alto CA 94303
  910.  
  911. ----------------------------------------------------------------------------
  912. Changes in version 1.2a from version 1.1a
  913. - fixed another memory allocation bug which cause the program to hang
  914.   for no apparent reason on some machines
  915. - added support for Pioneer, Kodak, Philips, Pinnacle, Plasmon, Yamaha
  916.   Ricoh and JVC drives
  917. - added doc files on movie lists, CDi compatible drives and XA compatible
  918.   drives
  919. - added the /P option to allow playing out the head phone jack the select
  920.   range of audio instead of saving to disk
  921. - added the /LUN option to override the LUN=0 default - useful when
  922.   using the 6Pack from Pioneer
  923. - included my commentary on the purchasing of CDROM drives - is not very
  924.   complimentary to most vendors
  925.  
  926.  
  927. Changes in version 1.1a from version 1.0h
  928. - a minor bug in the count of bytes written to disk has been fixed.
  929. - support for CDi discs - both white and green book
  930. - support for XA discs
  931. - no longer freeware
  932. - official word from Mitsumi says that they have not and will not
  933.   ever support reading DA frames with their drives.
  934.  
  935. Changes in version 1.0h from version 1.0g
  936.  
  937. - bug in displaying the sense data has been fixed.
  938. - a major bug that caused the program to hang at random has been fixed.
  939. - Mitsumi 4x, Sony 55E, Sony 8012 drive types added
  940. - Plextor (Texel drives 3028 and 5028 have been removed.  I included
  941.   them based on a rumour I heard.  I have since received the programming
  942.   manual for these drives, and they do not support reading DA frames.
  943.  
  944. Changes in version 1.0g from version 1.0e
  945. (version 1.0f was not formally released)
  946.  
  947. - ISRC code display added
  948. - option NJC added
  949. - Hitachi, Teac, Matshita drive types added
  950. - bug in MSCTEST concerning empty buffers fixed
  951.  
  952. Changes in version 1.0e from version 1.0a
  953. (versions 1.0b to 1.0d were not formally released)
  954.  
  955. - UPC code display added for NEC drives
  956. - Toshiba mode select to return the drive to normal operation after
  957.   reading DA frames had a conflict with EZSCSI drivers - this has
  958.   been fixed
  959. - length of WAV file did not always match length contained in header -
  960.   this has been fixed
  961. - added support for the Chinon CDS-535 drive (since I don't have one
  962.   of these drives, this is untested)
  963. - added support for the Plextor 3028/5028 drives (since I don't have one
  964.   of these drives, this is untested)
  965. - there was a bug which on some machines would allocate memory wrong
  966.   when using the /M option, and would fill the file with zeros - this
  967.   has been fixed
  968. - program TOSH_RST was added for users of the Toshiba drives who
  969.   have CDDA exit with a major error.  It resets the drive back to
  970.   normal operation
  971. - there was a bug on some machines that would allow the user to run
  972.   CDDA fine, but the respective test program would fail.  It appeared
  973.   mostly on the SONYTEST and NECTEST programs - this has been fixed
  974. - during running with NEC drives extra debug messages were printed -
  975.   this has been fixed
  976. - the jitter correction routine has been rewritten - CDDA now runs
  977.   about twice as fast as 1.0a did on my machine
  978. - a problem with one version of the Sony rom has a peculiar failure
  979.   which may be corrected by a rewrite of the sector search routine
  980. - a problem with copy permitted discs sometimes required /O in order
  981.   to dump to disk
  982. - when the last track of a disc or the last LBA or the last MSF was
  983.   selected to be dumped, some drives actually only allow reading
  984.   of the second to last frame, and not the last frame.  since there
  985.   is virtually no sound on the last frame of the disc, I have forced
  986.   the program to stop at the next to last frame
  987.  
  988. Known bugs:
  989. - someone has reported the program failing on a very large drive
  990.   with very large amounts of disk space available.  The specific
  991.   example was a 250M drive with 235M free.  It would appear that
  992.   there is a bug in the Borland dfree routines.  I will be looking
  993.   into the problem, except for the fact that my drive is only
  994.   100M, so I can't duplicate it.
  995. - a couple of people have reported that the WAV files created are
  996.   not compatible.  I can't say much except that in one case the
  997.   file size written in the WAV header was incorrect, and I don't know
  998.   why.  I have however found that really large WAV files (>10M) often
  999.   confuse some players.  I have seen a file work correctly on a couple
  1000.   of players, and not on others.  My guess is that some players out
  1001.   there are not interpreting WAV files correctly, or are not expecting
  1002.   very large files.
  1003. - one person reported that running the test programs on their machine
  1004.   and specifying a hard drive instead of a CD-ROM drive causes the
  1005.   number of bytes per sector to be changed permanently on the drive
  1006.   I don't know if this was just a fluke, but be careful.  I have 
  1007.   included the program TOSHREPR.EXE.  This program will reset the 
  1008.   sectors per track to 512 when you accidentally run TOSHTEST on a hard
  1009.   drive instead of the CDROM drive.
  1010.  
  1011. Wish list: (which may or may not get implemented)
  1012. - have start and end times include offset from beginning of track
  1013. - more CD-ROM drives supported
  1014.