From: bwilliam@iat.holonet.net (Bill Williams)
Subject: Re: What does Multi session mean?
Organization: HoloNet National Internet Access BBS: 510-704-1058/modem
Date: Tue, 26 Jan 1993 11:53:38 GMT

Multisession is a term usually used to describe a feature that allows some
new CD-ROM drives to show all additions made to a Kodak PhotoCD that you
have processed.
 
In order to read mutisession CD-ROMs that are mutilisession ISO9660 as
setup within the subset of uses with Kodak Photo-CD the following must occur:
 
1-> The driver must detect that it is an ISO 9660 disk (Block 16 in 2048
logical block size) Simple.
2-> The driver must determine if it is a Kodak Photo CD. Simple. (Could
also be done via a 2340 byte block read of block 0 and checking the 4th
byte of the header area to see if it is "0x02" XA bridge mode.
3-> The driver must then, if it is PhotoCD, find out if it is multisession.
This is very complex and involves a variety of techniques and strategies
available. Lead-out and lead in areas can be played for their Q subcodes
looking for the exotic "0x05" signiture indicating usage of ISO
"orange-book" multisession tracks. lead outs of sessions can be chained.
or even brute force methods involving scanning for transition areas can be
made. Ugh! Apple's Sony 8001 merely uses a standard ANSI SCSI-2 Table of
content command "0x43" with the very last byte in the CDB set to "40"
instead of "0x00" and the track set to "0". This results in a simple set
of steps allowing the driver to immediately discover the beginning of the
very very last session, if it is multisession.
 
4-> If it is determined that it is multisession, and the final session was
found, NOW THE DRIVER MUST FIND OUT HOW TO REMAP THE WORM INFO of the
alterred sectors. Ugh!!! Unbelievable you say? Sector remapping? Yes.
True. Luckily two facts are on our side: the beggining area of sectors to
remap is always the same (block 0 for future ISO and mixed mode
compatibility) and the total number of blocks needing remapping IS ALWAYS
THE SAME ON EACH SESSION. To discover the number of blocks to remap, block
16 of the last session is scanned (a ISO volume control block) and from
that point is searched until the end of all the ISO9660 volume info is
located (very few blocks). Now these sectors need to be ALWAYS REMAPPED by
the CD-ROM SCSI driver. Thus all references to sectors 0 through 17 for
example must be redirected to the area on the disk containing the last
session. THE MAGIC PART: Only multisession disks allow the head to move to
this last session normally. This is because the SCSI command READ CAPACITY
on a non-multisession drive will always yield a number smaller than the
area where some of the latest sessions are located and the head (for
safety reasons) will not normally allow you to command it to those "BLANK
MEDIA" areas past the lead out area.Just buy multisession equipment such
 as Toshiba 3401, Sony 8003, etc.
 
 
5-> There are some other issues of course, and the mapping actually has
more to do than this, but This is just a rough description of the work a
multi-session SCSI driver has to go through.
 
 
PURPOSE OF THIS POST: To explain how complex multisession, Orange-book,
for Kodak Photo CD, XA mode bridge format media is, and why your equipment
only shows the first sessions of your photos and not the later sessions
written when more are recorded to your PhotoCD's.
 
 
HOT RUMOR AREA: Because of all the crap and irritation behind multisession
PhotoCD's, and because of lagging sales of Kodak labeled CD players, two
things have recently happened: (1) list prices on Kodak Photo CD players
have been slashed dramatically (pathetic, non-SCSI devices), (2) rumors
abound that PhotoCD processing locations will remaster your PhotoCDs onto
a new ($5-ish) media creating a larger collection appearing in a single
first session almost at cost, because NO-ONE IN THE WORLD (except a few
happy Apple IIvx owners) HAS MULTISESSION WORKING WELL.
 
 
Have fun, and don't try to understand this drivel of mine, it is full of
too much insider info for non CD driver people.
 
Bill Williams