@database "AmiCDROM.guide"

@node main "AmiCDROM Table Of Contents"

AmiCDROM - a CDROM filesystem for the Commodore Amiga
-----------------------------------------------------

Version 1.15   03-Nov-94   (C) 1993,1994 by Frank Munkert
                           (ln_fmu@pki-nbg.philips.de)

* IMPORTANT NOTICE FOR USERS OF VERSIONS 1.0, 1.1 and 1.2:
*
* The format of the Mountlist 'Startup' field has been changed.
* Please consult the section "THE 'STARTUP' FIELD" for further information.

Table of Contents:

	@{"INTRODUCTION" link "INTRODUCTION"}	  -  Introduction to AmiCDROM
	@{"DISCLAIMER" link "DISCLAIMER"}	  -  Standard Disclaimer
	@{"REQUIREMENTS" link "REQUIREMENTS"}	  -  AmiCDROM Requirements
	@{"INSTALLATION" link "INSTALLATION"}	  -  Installing AmiCDROM
	@{"USAGE" link "USAGE"}		  -  Using AmiCDROM
	@{"FILENAMES" link "FILENAMES"}	  -  CDROM Filenames (ISO-9660 and RockRidge)
	@{"SYMLINKS" link "SYMLINKS"}	  -  Symbolic links on Rockridge disks
	@{"DISKCHANGE" link "DISKCHANGE"}	  -  Diskchange recognition
	@{"ATTRIBUTES" link "ATTRIBUTES"}	  -  File Attributes
	@{"MACHFS" link "MACHFS"}		  -  Macintosh HFS format
	@{"AUDIO" link "AUDIO"}		  -  Audio disks (CD-DA)
	@{"MULTISESSION" link "MULTISESSION"}	  -  Multisession Support
	@{"CDCONTROL" link "CDCONTROL"}	  -  The 'CDCONTROL' Program
	@{"CDROM" link "CDROM"}		  -  The 'CDROM' Program
	@{"CHECKCD" link "CHECKCD"}		  -  The 'CHECKCD' Program
	@{"TROUBLESHOOTING" link "TROUBLESHOOTING"}	  -  Troubleshooting
	@{"UTILITIES" link "UTILITIES"}	  -  Other utilities of interest
	@{"THANKS" link "THANKS"}		  -  Thanks must go to..
	@{"BUGS" link "BUGS"}		  -  Bugs and not supported features
	@{"TODO" link "TODO"}		  -  Things still to do
	@{"HISTORY" link "HISTORY"}		  -  History of AmiCDROM

@endnode

@node INTRODUCTION "Introduction to AmiCDROM"

  AmiCDROM is a CDROM disk filing system for the Commodore
  Amiga. It supports the ISO-9660 standard (single and multiple sessions),
  the Rock Ridge Interchange Protocol and the Macintosh HFS format.

  The CDROM drive is mounted as a DOS device (e.g. CD0:). You
  can access files and directories on a CDROM disk by the usual
  syntax, e.g. "type cd0:foo/readme.txt".

@endnode

@node DISCLAIMER "Standard Disclaimer"

  This software is provided as-is, without warranty of any kind,
  either expressed or implied. In no event will the author be liable
  for direct, indirect, incidental or consequential damages or data
  loss resulting from the use or application of this software. The
  entire risk as to the results and performance of this software is
  assumed by the user.

@endnode

@node REQUIREMENTS "AmiCDROM Requirements"

  AmiCDROM should work with any Amiga model which has a "SCSI-direct"
  compatible SCSI bus adapter. (It might also work with SCSI drivers
  that have no SCSI-direct feature; see 'T' option.)

  The running handler requires about 60K of memory (with default parameter
  settings).

  Information on tested hardware configurations is contained in the
  file @{"amicdrom.works" rxs "address command amigaguide amicdrom.works"}.
  
  Problems have been reported with GVP controllers, Evolution and
  ICD Advantage. If you have one of these controllers, try the TRACKDISK
  option!

  If you are using a GVP controller, you probably will have to disable
  the "disconnect/reconnect" feature; see your SCSI controller manual.

  Users of the Pioneer drives DRM600 and DRM602 possibly have to add
  the option SI=0 to the startup field.

@endnode

@node INSTALLATION "Installing AmiCDROM"

  1. Copy the 'cdrom-handler' file to L:cdrom-handler.

  2. @{"If you use Workbench 2.0" link "2.0"}
     @{"If you use Workbench 2.1 or higher" link "2.1"}


     @{"Startup" link "startup"} - The 'Startup' field

@endnode


@node 2.0 "Installation on 2.0 systems"

     Create an entry in DEVS:MountList like this:

     CD0:	Handler = L:cdrom-handler
		Stacksize = 10000
		Priority = 5
		GlobVec  = -1
		Mount = 1
		Startup = "scsi.device 1 ROCKRIDGE LOWERCASE" /* see below */
     #

     You can choose any name you like for "CD0".

     Install the handler in DOS using the CLI command "Mount CD0:".
     If there is a problem during mounting, AmiCDROM will put up a
     requester with an error message.
     If you use AmiCDROM regularily, you might consider to put
     "Mount CD0:" in the user startup-sequence.

@endnode

@node 2.1 "Installation on 2.1 and higher systems"

     Edit the file CD0. It contains a Mountlist as described in step 2a
     (with the exception that "CD0:" and "#" are missing).
     If you don't like the name "CD0", rename this file and the file
     CD0.info. Use the Workbench to move the icon CD0 into the drawer
     sys:Storage/DOSDrivers. Now enter the command "Mount CD0:" to
     install the handler.
     If you use AmiCDROM regularily, you might consider to put
     the icon in the drawer WBStartup or Devs:DOSDrivers; all files in these
     drawers will be mounted at startup. If the icon is in the WBStartup
     drawer, the Workbench will not wait until "CD0:" is mounted; if the
     icon is in Devs:DOSDrivers, the Workbench will wait. The first
     method is recommendable if you want your system to come up as fast
     as possible. The second method has to be used if you want to refer
     to "CD0:" in your s:user-startup sequence.
     
  IMPORTANT:
     Make sure, that all assigned volume names (such as "L:") are known
     at the time of mounting. Otherwise, the handler will not be
     mounted, and no error message will be issued.
     
     If you have put CD0 into DEVS:DosDrivers and the handler does not
     auto-mount, then you probably have a wrong filename in the 'Handler'
     or 'Startup' field.

@endnode

@node startup "The 'Startup' field"

  The 'Startup' field in the MountList is a string with the following
  template:
  
    D=DEVICE,U=UNIT/N,C=CHIP/S,F=FAST/S,DMA,ANY,
    RETRY/S,L=LOWERCASE/S,ML=MAYBELOWERCASE/S,
    R=ROCKRIDGE/S,T=TRACKDISK/S,MI=MACTOISO/S,CS=CONVERTSPACES/S,
    SV=SHOWVERSION/S,HF=HFSFIRST/S,SB=STDBUFFERS/K/N,FB=FILEBUFFERS/K/N,
    DE=DATAEXT/K,RE=RESOURCEEXT/K,SI=SCANINTERVAL/K/N,PC=PLAYCDDA/K,
    X=XPOS/K/N,Y=YPOS/K/N

  The first field (DEVICE) contains the name of your SCSI device.
  
  The second field (UNIT) contains the target ID (aka "SCSI-ID")
  of your CDROM drive. If your CDROM drive supports multiple logical units,
  such as the Pioneer DRM-604X six disk changer drive, then the 10s digit
  of the number in this field should be the LUN of the desired disk.

  The following options may be used:
  
  L            Map ISO-9660 names to lower case
  LOWERCASE
  
  ML           Do not convert the filenames if the CDROM is a 
  MAYBE-       CDTV or CD32 disk, or a disk created by Mkisofs.
  LOWERCASE    Otherwise, map the filenames to lower case.
  	       (LOWERCASE and MAYBELOWERCASE are mutually exclusive.)

  R            Use Rock Ridge file names, if possible.
  ROCKRIDGE
       
  T            Use trackdisk-device calls instead of SCSI-direct calls.
  TRACKDISK    (Some SCSI boards do not support Commodore's HD_SCSICMD
	       command. If you set the 'T' option, only the normal
	       CMD_READ is used, which will be translated by the SCSI driver
	       into the corresponding SCSI commands.)

  MI           Convert Mac characters into ISO-Latin-1 (Amiga) characters.
  MACTOISO     (The conversion applies only to the filenames, not to
               the contents of the files.) Additionally, the character
	       ':' will be converted into a '.', and '/' will be
	       converted into '-'; this is necessary because AmigaDOS cannot
	       handle filenames containing those characters.

  CS           Convert spaces in MacHFS filenames into underscores ('_').
  CONVERTSPACES
  
  SV           Show version numbers.
  SHOWVERSION
  
  HF	       If a new disk is mounted, AmiCDROM normally tests first
  HFSFIRST     if the new disk is a ISO-9660 disk. If the option "HF"
               is given, then the disk is first examined for a HFS
	       partition.
	       This option is useful if you have a "multi-platform"
	       disk with both a ISO-9660 and a HFS partition. Without
	       the option you get the ISO partition; with the option
	       you get the HFS partition.

  SB           Number of 2048 byte buffers for general access to the
  STDBUFFERS   CDROM drive. Default = 5 buffers

  FB           Number of 2048 byte buffers for file access with the
  FILEBUFFERS  AmigaDOS Read() call. Default = 5 buffers

  DE           Extension for the data fork of a file on MacHFS disks.
  DATAEXT

  RE           Extension for the resource fork of a file on MacHFS disks.
  RESOURCEEXT  (If neither DE nor RE are given, DE is set to the empty
               string and RE is set to ".rsrc".)

  SI           Time between two successive diskchange checks.
  SCANINTERVAL Default = 3 seconds.
               If the value of this option is 0, then no diskchange
	       checks will be performed; in this case, you have to use
	       the DISKCHANGE command in order to inform AmiCDROM that
	       a disk has been changed.

  PC           Name of the command to be executed if the user double-
  PLAYCDDA     clicks at the "CD-DA" icon. If you want to execute
               a command with parameters, you have to create
	       a script file containing the command plus parameters.
	       The name of the script file has to be passed as an
	       argument to the PC option. Don't forget to set the
	       "S" protection bit of the script file.

  X            X position of CD-DA icon. (Default: WB selects position.)
  XPOS

  Y            Y position of CD-DA icon. (Default: WB selects position.)
  YPOS
  
  RETRY	       Report no error if the CDROM drive is switched off while
  	       mounting the filesystem. The "mount" program will hang until
	       the CDROM drive is switched on.

  I recommend to specify at least MAYBELOWERCASE and ROCKRIDGE, for better
  readability.

  Memory options:

  C            Use chip memory for SCSI buffers.
  CHIP

  F            Use fast memory for SCSI buffers. Please note, that some 
  FAST         SCSI devices can only read from or write to chip memory.
	       (The A3000 scsi.device is able to use fast memory.)

  DMA          Use 24 bit DMA memory for SCSI buffers, i.e. only
               memory addresses below 0x01000000 are considered for
	       buffering.

  ANY          Use any memory available.

  The memory options are mutually exclusive. If no memory option has
  been selected, then CHIP is the default.

  Example:
  
         Startup = "foo.device 3 ROCKRIDGE SB=10 FB=10 DE=.1 RE=.2"

    Use the device "foo.device" and unit number 3. Use Rock Ridge
    if possible and use 10 buffers for standard SCSI access (SB=10) and
    for file access (FB=10). In HFS filenames, mark the data fork with
    the extension ".1" (DE=.1) and the resource fork with the
    extension ".2" (RE=.2).

  Older Mount commands (e.g. those distributed with Workbench 2.0)
  cannot handle space characters and "=" signs within startup
  parameters. In AmiCDROM, the following workaround has been made
  available: every '-' sign will be replaced internally by a space
  character. This means that
  
         Startup = "foo.device-3-ROCKRIDGE-SB-10-FB-10-DE-.1-RE-.2"
 
  is equivalent to the example above.

  If you really need a '-' character in the startup field (e.g. if
  the name of your device is "my-scsi.device"), then you have
  to write '--' instead of '-', e.g.
  
         Startup = "my--scsi.device-3"

@endnode

@node USAGE "Using AmiCDROM"

  You may use "CD0:" as if it were an ordinary volume, i.e. you may
  execute commands such as:
  
         dir cd0:
	 cd cd0:
	 type cd0:readme.txt
  

@endnode

@node FILENAMES "CDROM Filenames (ISO-9660 and RockRidge)"

  A standard CDROM disk ("volume") contains a ISO-9660 directory tree.
  ISO file names have the following format:

                FILENAME.EXTENSION;VERSION

  e.g.  README.TXT;1

  The filenames may contain upper-case letters, digits and underscores.

  AmiCDROM normally ignores the version number of a file. If you
  specify the option "SV", however, the version numbers will be
  displayed. If you have to supply a file name, you may or may not
  specify a version number. E.g. in order to type the contents of the file
  README.TXT;1 you might use one of the following commands:
  
                type readme.txt
		type "readme.txt;1"

  (don't forget the quotation marks!)
  If a directory contains more than one file with the same name (and
  different version numbers), then you have to supply the version number
  in order to be able to choose the version you want.

  Filenames may be mapped to lower-case by specifying the startup option "L".
  Lower-case names are generally easier to read than upper-case names.

  ISO filenames have a limited length and format. To overcome this
  restriction, the Rock Ridge Group has devised the Rock Ridge Interchange
  Protocol which allows arbitrary filenames. Rock Ridge filenames
  are stored in so-called "system use areas" within the ISO-9660
  filesystem.
  
  By specifying the startup option "R", AmiCDROM recognizes Rock Ridge
  filenames on a Rock Ridge CDROM disk.

@endnode

@node SYMLINKS "Symbolic links on Rockridge disks"

  The Rock Ridge protocol standard also defines so-called symbolic links.
  A symbolic link is a file A which contains the filename of another
  file B. Whenever the name of file A is used, file B will be accessed.
  
  AmiCDROM maps symbolic links to AmigaDOS soft links. The soft links as
  specified and implemented in AmigaDOS 2.1/3.0, however, do not work
  very well. Actually, soft links are not officially supported by Commodore.
  You most probably will encounter problems, if you use path names which
  contain soft links in their middle. Therefore, you should always ensure that
  the soft link part of the path name is the last part, i.e.
  use "cd cd0:foo/soft" and "cd bar" instead of "cd cd0:foo/soft/bar", if
  "soft" is a soft link.

  The AmigaDOS comment field for symbolic links will be set to "Symbolic Link".
  Therefore, you may use the "list" command in order to identify symbolic
  links. If you want to know what the target file of a symbolic link is,
  then you might use the command "cdrom o <symlink-name>".

@endnode

@node DISKCHANGE "Diskchange recognition"

  In order to recognize a "disk changed" condition, the CDROM drive is
  periodically (each 3 seconds) queried by the filesystem handler.
  
  On some Amigas this may cause the "Hard Disk" LED to flash every
  3 seconds. Obviously, the "Hard Disk" LED isn't actually connected to
  a hard disk drive; it is simply an indicator for SCSI bus activity.

  The time between two successive diskchange checks can be modified
  with the SCANINTERVAL option. If this option is set to 0, no diskchange
  checks will be performed. This might especially be useful for BBS
  systems, where disks aren't changed very often.

  You may force a diskchange check with the AmigaDOS DISKCHANGE
  command, e.g. "DISKCHANGE CD0:".

@endnode

@node ATTRIBUTES "File Attributes"

  In the current version of AmiCDROM, only the "creation date"
  attribute of a CDROM file is supported (e.g. if you say "list cd0:").
  
  Protection bits will be supported in a later version of AmiCDROM.

@endnode

@node MACHFS "Macintosh HFS format"

  Each MacHFS file consists of two parts: a "data fork" and a "resource
  fork". Each fork may be regarded as an individual file. Both the
  data fork and the resource fork may be empty.

  AmiCDROM treats each fork as an individual file. While other CDROM
  filesystems may require you to switch between the modes "show only
  data forks" and "show only resource forks", AmiCDROM displays both
  data and resource forks in one directory. If either of the two forks
  is empty, it will not be displayed.

  By default, the resource fork is marked with the extension ".rsrc".
  You may change the extensions with the options DATAEXT and RESOURCEEXT.

  MacHFS file names tend to contain lots of space characters. If you
  don't like this, you may use the switch CONVERTSPACES to convert
  all space characters into underscores.
  
  The Macintosh uses a slightly different character set than the
  Amiga. The upper 128 characters in the Amiga character set
  correspond to the ISO-Latin-1 standard. The upper 128 characters in
  the Macintosh character set, however, are specific to the Mac.
  If you want to convert Mac characters in filenames into ISO-Latin-1
  characters, you should use the MACTOISO option.

@endnode

@node AUDIO "Audio disks (CD-DA)"

  If a disk that contains one or more audio tracks is inserted into the
  drive, AmiCDROM will display an icon with the name "CD-DA". If you
  double-click on this icon, the CDROM drive will start to play the
  first track on the disk. If you double-click on this icon again, the
  CDROM drive stops playing.

  If you want to use a more sophisticated way to handle audio disks,
  you may provide the name of a CD-DA player program as an argument
  to the PLAYCDDA option. Recommendable programs are "JukeBox" by
  F-J. Reichert, which uses a CD-player like user-interface,
  "CDDA" by Olaf Barthel (for an Apple CD-300) and "PlayCDDA" by
  Frank Munkert and Heiko Rath. PlayCDDA V1.1 is suitable only
  for Toshiba 3401 and Apple CD-300 drives; these drives can send CD-DA
  data over the SCSI bus. PlayCDDA reproduces the sound which is recorded
  on the disk on the Amiga's audio.device.

  The position of the CD-DA icon on the Workbench can be modified with
  the options XPOS and YPOS.

  If you do not like the default CD-DA icon, then you might create an
  icon in the file "ENV:cdda.info". Then this icon will be used by
  AmiCDROM. The tooltype argument "ICONNAME" will be used as a replacement
  for the default icon name ("CD-DA"). An example icon can be found in the
  drawer "icons" in the AmiCDROM distribution.

  You can use this feature only if the TRACKDISK option is not
  enabled, and if your CDROM drive supports audio commands. If you only
  have a SCSI-1 CDROM drive, you probably also won't be able to use
  this feature (use "cdrom a" to test whether or not you have a SCSI-1
  drive).

@endnode

@node MULTISESSION "Multisession Support"

  Some CD-ROMs, such as PhotoCDs, can be recorded in multiple sessions.
  If your CD-ROM drive supports extended architecture (XA) disks and
  can read multiple sessions, then AmiCDROM will show you always the
  latest session.

  You can use this feature only if the TRACKDISK option is not used.
  If you only have a SCSI-1 CDROM drive, you probably also won't be able
  to use this feature (use "cdrom a" to test whether or not you have a SCSI-1
  drive).

@endnode

@node CDCONTROL "The 'CDCONTROL' Program"
  
  The 'cdcontrol' lets the user change parameters of the CDROM handler
  while the handler is running. These changes are only temporary, and
  persist only as long as the handler is running.
  
  'cdcontrol' is invoked as
  
       cdcontrol device: command
  
  where 'command' may be one of the following commands:
  
    lowercase on        Convert ISO filenames to lowercase
    
    lowercase off       Don't convert ISO filenames

    mactoiso on         Convert Mac to Amiga characters
    
    mactoiso off        Don't convert Mac filenames
    
    convertspaces on    Convert HFS spaces into underscores
    
    convertspaces off   Don't convert spaces in HFS filenames
    
    hfsfirst on         Look for a HFS partition first
    
    hfsfirst off        Look for an ISO partition first
    
    dataext <name>      Set extension for HFS data forks
    
    resourceext <name>  Set extension for HFS resource forks

  Example:
  
    cdcontrol CD0: dataext ".data"

  All command names may be abbreviated to the one- or two-letter
  abbreviations shown in the section "The 'Startup' field".


@endnode

@node CDROM "THE 'CDROM' PROGRAM"

  The 'cdrom' program is mainly for developers of AmiCDROM.
  However, there are some features which might be useful to
  everyone.
  
  In order to use 'cdrom' you have to set the following
  environment variables:
  
     CDROM_DEVICE     Name of your SCSI device, e.g. "scsi.device"
     
     CDROM_UNIT       SCSI-ID of your CDROM drive, e.g. "2"

     CDROM_TRACKDISK  Has to be set to any value if you want to use
                      trackdisk commands only.

     CDROM_FASTMEM    Has to be set to any value if you want to use
                      fast memory instead of chip memory for buffers.

  Here are some useful commands:
  
     cdrom a          Show information on the CDROM drive.
  
     cdrom d[rl] dir  Show directory 'dir'.
     		      Option r: also show subdirectories.
		      Option l: show additional information.

     cdrom e[rlL] dir Show directory 'dir' using Rock Ridge names.
     		      Option r: also show subdirectories.
		      Option l: show names of system use fields.
		      Option L: show names and contents of system use fields.

     cdrom i          Show the format (ISO, RR or HFS) of the current disk.
     
     cdrom s num      Read the contents of sector 'num'.

     cdrom v          Show the primary volume descriptor of the CDROM disk.
     
     cdrom z          Test if the CDROM drive is ready.

@endnode

@node CHECKCD "The 'CHECKCD' Program"

  Checkcd performs some consistency checks on an ISO 9660 disk.
  Set the options CDROM_DEVICE, CDROM_TRACKDISK and CDROM_FASTMEM as
  described in the previous section and invoke "checkcd" without arguments.
  The test may take up to 20 minutes, depending on the complexity of
  your CD.

@endnode

@node TROUBLESHOOTING "Troubleshooting"

  Q: My Amiga crashes if I mount the CD0 device.
  A: Possibly your SCSI driver does not support the selected
     access method. Play around with the options "TRACKDISK",
     "CHIP", "FAST", "DMA" and "ANY"; there should be a setting
     which also works for you.

  Q: If I use many screens or many colors, my Amiga runs slower
     and slower.
  A: Probably you are running out of chip memory. Use the "FAST"
     option, if your SCSI driver supports this. Otherwise, decrease
     the size of the AmiCDROM buffers with the options FB and SB.

  Q: My system does not boot if no disk is inserted in the CDROM drive.
  A: L. Scott Emmons (csusac.csus.edu!cdsac!scotte) suggests this:
     If the CDROM drive is at a SCSI address lower than the last
     hard drive device, the system will not boot unless either the
     drive is powered off, or a data CD is in the drive. To fix,
     I changed my hard drive to SCSI device 0, put the CDROM drive
     as device 5, and then rebooted with the CDROM drive powered OFF.
     I ran HDTOOLBOX, which complained that "something had changed",
     did a "SAVE", and exited. Now, I can reboot with the CDROM drive
     either on or off, and everything is fine. Apparently this has to
     do with setting the "last drive" bit on the hard drive, or some
     such. This will be a problem with any factory-installed hard
     drives, since CBM insists on installing them as SCSI device 6.

@endnode

@node UTILITIES "Other utilities of interest"

  "SCSIUtil" by Gary Duncan and Heiko Rath:
  Provides low level access to your CDROM drive. Useful for debugging.

  "ForceIcon" by Kai Iske:
  A commodity which places icons for volumes and devices at user-definable
  locations. Useful if you don't like the icon locations and images on
  your CDROM.

  "cdromemu.device" (included in this distribution):
  Emulates a trackdisk device which reads a CDROM image from an AmigaDOS
  file. Can be used by CDROM manufacturers to verify the output of
  their pre-mastering program. See the file cdromemu/cdromemu.doc.

@endnode

@node THANKS "Thanks must go to.."

  I would like to send many thanks for their help, encouragement and
  beta testing to:
 
    Thomas Baetzler
    Olaf Barthel
    Stefan Becker
    Johanna Berewinkel
    J. M. Bezeau
    Stefan Le Breton
    Dirk-Michael Brosig
    James Cooper
    Gary Duncan
    Richard L. Dyson
    Brent Earl
    Phillip Eastham
    L. Scott Emmons
    Stephan Feinen
    Manuel Fischer
    Fred Fish
    Jos Fries
    Thorsten Frueauf
    Humberto L. Gomez
    Oliver Graf
    Christoph Guelicher
    Carsten Hammer
    Joe Hanson
    Thorsten Herrmann
    Rainer Hess
    Martin Jahner
    Tom Kennedy
    Thomas Kessler
    Stephan Kohler
    Thomas Kroener
    Roy S. Laufer
    W. R. Leach
    Martin Loos
    Dylan McNamee
    Thomas J. Moore
    Gunther Nikl
    Bo Najdrovsky
    Ottmar Roehrig
    Nicola Salmoria
    Matthias Scheler
    Henning Schmiedehausen
    Martin Schulze
    Bill Seymour
    Ignatios Souvatzis
    Ken Sowinski
    Luca Spada
    Erkki Tapola
    Joergen Thomsen
    Mark Tomlinson
    Olivier Tonino
    Roy Trevino
    Frank Wuerkner
    Jim Zepeda

@endnode

@node BUGS "Bugs and not supported features"

  Bugs: If you find any bugs, please send an e-mail message to:
	   ln_fmu@pki-nbg.philips.de

    If you want to report an error, please describe your system
    configuration (Amiga model, SCSI device name, CDROM drive model)
    and include your MountList entry for the "CD0:" device.
    Include in your bug report the output of the commands "cdrom a"
    and "cdrom v".

  Not supported features:
  
    - Interleaved mode (ISO)
    - Multi-disk volumes (ISO)
    - Multi-volume disks (ISO)

@endnode

@node TODO "TO DO"

Things still to do:
-------------------

- Support trackdisk disk change interrupt:
  Neither trackdisk interrupts nor trackdisk changenums are supported
  by the V40 scsi.device for A3000(T). Therefore the trackdisk disk change
  recognition feature currently cannot be supported by AmiCDROM.

@endnode

@node HISTORY "History of AmiCDROM"

Changes in V1.15:

* Mount command returns now even if the SCSI device cannot be opened
  (with RETRY option only!)
* Fixed bug in HFS driver which caused slow or even incorrect file access.
* Truncate file names to 30 characters.
* Included installer script.

Changes in V1.14:

* Fixed bug in volume handling routines.
* Start sector of files is now returned in the fl_Key field of
  FileLock structures, for compatibility with the Commodore CDROM file
  system.

Changes in V1.13:

* Offset of last session is determined with a vendor specific command
  on Toshiba drives.
* Added a workaround for the bad NEC 3X READ TOC command, which sometimes
  contains a wrong track number for the lead-out track.
* Added support for packet ACTION_EXAMINE_FH; this fixes the problems with
  some implementations of the C library routine fstat().
* Added support for packet ACTION_PARENT_FH.
* Better error message for ACTION_MAKE_LINK.
* A volume node will be removed if the last lock from the volume node has
  been freed.
* READ TOC command disabled for Apple CD 150, because this command caused
  some CD 150 drives to block the SCSI bus.
* AmiCDROM sources can now be compiled with the GNU C compiler gcc.
* Aztec C and DICE C are no longer supported.

Changes in V1.12:

* Tries to cope with CDROMs which have an incorrect table of contents.
* New default CD-DA icon.
* User-definable CD-DA icon.
* New option RETRY.

Changes in V1.11:

* New option MAYBELOWERCASE.
* Audio support for Apple CD-150 (= Sony 8002) und CD-300 (= Sony 8003).
* Sense length 20 instead of 18 (needed by ALF driver).
* Fixed bug in ACTION_DISK_INFO.
* Performance improvement for lock+filehandle processing.

Changes in V1.10:

* Larger buffer for startup strings.
* Improved handling of volumes: locks and file handles will not be
  discarded if a CDROM is removed from the drive.
* Adapted ACTION_CURRENT_VOLUME to new volume handling.
* CDROM emulator now also supports TD_CHANGESTATE and TD_CHANGENUM,
  and the virtual CDROMs can be inserted into and removed from the
  emulated drive.
* Fixed bug concerning TRACKDISK disk change recognition.
* Improved implementation of ACTION_INHIBIT.
* Minor improvements and bug fixes in the HFS driver.
* The extended attribute record length has to be considered when
  reading file sections.

Changes in V1.9:

* Added support for Rock Ridge relocated directories.
  AmiCDROM now conforms fully to the Rock Ridge Interchange Protocol Rev 1.09.
* Added CDROM emulator cdromemu.device.
* Included "checkcd" tool.
* Full support for ACTION_INHIBIT.
* Better trackdisk disk change recognition.
* Toshiba 4101 support.

Changes in V1.8:

* Support for symbolic links on RockRidge disks.
* Support for multisession disks (such as PhotoCDs).
* New memory options CHIP, DMA and ANY.
* Removed the assembly stubs for the debug process (Aztec and SAS/C).
* Support for the ACTION_FLUSH packet.
* Changed the packet number for cdcontrol from 666 to 2050.
* The option LOWERCASE now also applies to ISO volume names.
* Double-clicking at the CD-DA icon (without PLAYCDDA option) now plays
  the whole CD.
* Support for CDROM drives with block lengths of 512, 1024 and 2048 bytes.
* Better method for finding HFS master directory blocks.
* User may define the location of the CD-DA icon.
* If the CD-DA icon cannot be displayed because the WB is not open, then
  the display function will be retried periodically (all SCANINTERVAL seconds).
* The AmiCDROM device node now also contains a pointer a FileSysStartupMsg,
  in order to live peacefully together with SysInfo and similar tools.
* Support for drives which do not support the SCSI-2 READ TOC command.

Changes in V1.7:

* Some packets are now handled even if no disk is inserted (e.g. the
  ACTION_INHIBIT packet). Otherwise WB would bring up the requester "No Disk
  in drive CD0:" when the system is booted without a CD in the drive.
* Improved "cdrom d" and "cdrom e" commands.
* Removed call to GetDefDiskObject(). This call sometimes caused a crash,
  because GetDefDiskObject sends/receives DOS packets. A DOS handler isn't
  allowed to do this.
* Added custom CD-DA icon.
* Support for logical block sizes of 512, 1024 and 2048 bytes.
* Fixed bug in HFS module.
* Option MACTOISO now also converts ':' and '/' characters.
* Options MACTOISO and CONVERTSPACES now also apply to volume names.

Changes in V1.6:

* CD-DA support; new option: PLAYCDDA.
* New option: SCANINTERVAL (user-programmable diskchange check interval).
* Better support for ACTION_INHIBIT packet.
* Allows ISO filenames with ';' characters.
* Can now be compiled with DICE 2.07.56R.

Changes in V1.5:

* Make Toshiba-3401 drives switch between XA and normal mode, depending
  on the inserted disk. (Useful for PhotoCDs.)
* New option: SHOWVERSION.
* New option: HFSFIRST.
* Fixed a bug which caused an enforcer hit with the "cdrom" program.
* "cdcontrol" control program.

Changes in V1.4:

* Added Mac HFS support.
* The path table of ISO disks is no longer examined. This results in a
  little speed increase. Furthermore, the FishMarket V2.0 disk by AsimWare
  (which has a corrupted path table) can now be read with AmiCDROM.
* Bug fix: if a there is a disk change immediatedly before mounting AmiCDROM,
  the new disk will now be recognized.
* SAS/C support for debug process (dbproc.a).

Changes in V1.3:

* Improved caching algorithm.
* New buffering options 'STDBUFFERS' and 'FILEBUFFERS'.
* Fixed bug with locks containing wrong fl_Volume entry. Now the AmigaDOS
  shell should show the correct volume prompt.
* New format for the Mountlist 'Startup' field.
* Compiled with small memory model.
* Uses utility.library in order to reduce the size of the executable.
* Recognizes if a non-ISO disk is in the CDROM drive and creates a
  'no DOS disk' volume node. This solves some problems with Audio-CDs.
* The volume node now contains the volume creation date.
* Can now be compiled with SAS/C and DICE in addition to Aztec C.

Changes in V1.2:

* Support for new packets: ACTION_SAME_LOCK, ACTION_IS_FILESYSTEM,
  ACTION_CURRENT_VOLUME.
* Send 'disk inserted' or 'disk removed' event, so that the Workbench
  detects disk changes faster.
* Added fast memory option 'F'.
* Writing ACTIONs now return a 'write protected' error status.
* Unload handler after ACTION_DIE.
* Immediately terminate program if called from CLI.
* Set volume label to "Unnamed" for disks without name.
* Added support for LUNs other than 0.
* Included an icon for the Mountlist.
* DOS list changes now bracketed by Forbid() and Permit().
* Corrected another ACTION_SEEK bug.
* Handler cannot be killed if locks or filehandles are in use.

Changes in V1.1:

* Bug in ACTION_SEEK handling fixed.
* Bug with top-level ACTION_EXAMINE_OBJECT for Rock Ridge disks fixed.
* Added code to detect whether a lock stems from the current volume
  or from another volume which has been removed from the drive.
  (In this case the error 'object not found' (205) is reported.)
* Added support for trackdisk calls. (Startup option 'T')

@endnode
