@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 ". @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 Set extension for HFS data forks resourceext 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