home *** CD-ROM | disk | FTP | other *** search
- AmiCDROM - a CDROM filesystem for the Commodore Amiga
- -----------------------------------------------------
-
- Version 1.7 06-Dec-93 (C) 1993 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.
-
- INTRODUCTION
-
- AmiCDROM is a CDROM disk filing system for the Commodore
- Amiga. It supports the ISO-9660 standard, 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".
-
- 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.
-
- 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).
-
- INSTALLATION
-
- 1. Copy the 'cdrom-handler' file to L:cdrom-handler.
-
- 2a If you use Workbench 2.0:
-
- 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.
-
- 2b If you use Workbench 2.1 or higher:
-
- 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.
-
- The 'Startup' field
-
- The 'Startup' field in the MountList is a string with the following
- template:
-
- D=DEVICE,U=UNIT/N,F=FAST/S,L=LOWERCASE/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
-
- 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
-
- 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.)
-
- 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.)
-
- 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.
-
- I recommend to specify at least LOWERCASE and ROCKRIDGE, for better
- readability.
-
- 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"
-
- USING AMICDROM
-
- You may use "CD0:" as if were an ordinary volume, i.e. you may
- execute commands such as:
-
- dir cd0:
- cd cd0:
- type cd0:readme.txt
-
-
- 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.
-
- 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:".
-
- 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.
-
- 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.
-
- 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, and
- "PlayCDDA" by the author of AmiCDROM. PlayCDDA is suitable only
- for Toshiba 3401 CDROM 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.
-
- You can use this feature only if the TRACKDISK option is not
- enabled, and if your CDROM drive supports audio commands.
-
- BUGS AND NOT SUPPORTED FEATURES
-
- Bugs: If you find any bugs, please send an e-mail message to:
- ln_fmu@pki-nbg.philips.de
-
- Not supported features:
-
- - Interleaved mode (ISO)
- - Multi-disk volumes (ISO)
- - Multi-volume disks (ISO)
- - Deep directory relocation (Rock Ridge)
-
- These features aren't unsupported because of laziness of the
- author. He hasn't simply been able to find a CDROM disk which
- uses any of the above features. If you know of such a disk,
- please send e-mail to the above address.
-
- 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".
-
-
- 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[rl] dir Show directory 'dir' using Rock Ridge names.
- Option r: also show subdirectories.
- Option l: show additional information.
-
- 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.
-
- THANKS
-
- I would like to send many thanks for their help and encouragement to:
-
- Thomas Baetzler
- Stefan Becker
- Johanna Berewinkel
- Dirk-Michael Brosig
- Richard L. Dyson
- Phillip Eastham
- Jos Fries
- Oliver Graf
- Christoph Guelicher
- Carsten Hammer
- Rainer Hess
- Martin Jahner
- Stephan Kohler
- Roy S. Laufer
- W. R. Leach
- Bo Najdrovsky
- Dylan McNamee
- Thomas J. Moore
- Henning Schmiedehausen
- Bill Seymour
- Mark Tomlinson
- Roy Trevino
- Jim Zepeda
-
- Especially I would like to thank
-
- Olaf Barthel
-
- for his many valuable hints on how to improve AmiCDROM.
-
- CONTACTING THE AUTHOR
-
- Please send bug reports and suggestions to:
-
- Email: ln_fmu@pki-nbg.philips.de
-
- Mail: Frank Munkert
- Zum Froschbruecklein 5
- 90411 Nuernberg
- Germany
-
- 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.
-
- ----------------------------------------------------------------------
-
- TODO:
- =====
-
- * Support for multisession disks (such as PhotoCDs).
- * AmigaDOS protection bits should reflect the protection status as
- stored on the disk (especially for RR disks).
- * Support for symbolic links on RockRidge disks.
-
- HISTORY:
- ========
-
- 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')
-