MultiOSFileSystem Copyright (C) 1993-1994 By Jim Drew Legal issues: use this at your own risk. As with any software, improper installation can lead to destruction of data. License agreement: you are entitled to use this software, but not sell it for anymore than the cost of the media. Permission is granted for including this software with your PD, Shareware, as long as you mention include this portion of this readme file. Commercial use is granted as long as I am contacted before hand so I can give you a proper disclaimer to be distributed. Permission is granted to Fred Fish for including this archive in the infamous Fred Fish collection. This software MAY NOT be included in ANY packaging arrangement other than Fred Fish (shareware collection or PD collection disks). What is MultiOSFileSystem?? This is the first release of the MultiOSFileSystem. With this system you will be able to mount your MAC formatted hard drive partitions, hardfiles, and floppys. Support using multi-os.device lets you use EMPLANT, AMAX, and MAC high density floppys disks. Support using amia.device lets you real 800K MAC floppy disks providing you have our AMIA adapter and a 800K MAC floppy drive. Support using emphf.device lets you use hardfiles and floppy disk image files. Support using any SCSI controller lets you use real MAC SCSI hard drives, but you will need to create the appropriate DOSDriver or mountlist using MAC_HDSetup for each of your drives. You can also use an AmigaDOS formatted/MAC partition... programs such as Ami-Back can create the proper mountlist for AmigaDOS partitions. You will need to add a couple of lines to your DOSDriver (or mountlist): FileSystem = MultiOSFileSystem DOSType = 0x4D554C00 This sets the filesystem to be MultiOSFileSystem and the DOS type to be 'MUL'<<8. In this release, there is NO writing ability. Until I can figure out how HFS extent trees are written back out *properly*, writing is disabled. Since the MAC has two file forks, they have been split into two pieces. The RESOURCE fork file has a .rsrc suffix, and the DATA fork has a .data suffx. You will probably learn pretty quickly that the resource fork is pretty worthless. If you have a picture (GIF, JPEG, etc.), you should be able to just use the DATA fork, as it contains the actual picture. This is a handy way to automatically strip off the MACBinary header (which contains the resource fork), giving you a usable image file. Text is a bit nasty. I do not convert the MAC character set. I figured that there is a better way, such as with stand alone applications (like word processors) on the Amiga that can import different MAC files to do the necessary conversion. Volume names, directory names, and filenames are always stripped of characters above $7F and below $20, leaving basically letters and numbers, with a few symbols. The offending character is turned into the '_' character. Spaces are also included in the conversion so you do not have to enclose the name you are dealing with in quotes. Give this a whirl with everything from CLI use to DirectoryOpus. The only problem that I am aware of is dealing with ACTION_INHIBIT. It works, but the DEVICENAME:BUSY is not shown on Workbench. I am not too sure who/what handles busying the device, but I assume that it is a pretty simple fix. The ACTION_INHIBIT function does work properly (you can eject disks, including removeable media hard drives) and the device will go away from the Amiga's workbench. You can also, 'diskchange' the device to re-validate the contents. The next version will enable the writing (hopefully), and add MS-DOS support. I already have Atari and Apple II file systems documented, and they will also be added sometime in the future as OS-Types (similar to DataTypes). We started this little project before EMPLANT was released, and have never really had much of a chance to finish it. Because companys are now charging for this type of filesystem (MaxDOS and CrossMac), I figured we should release it as is for right now, since we are not going to charge for this software. It is 'thank you' ware. If you like it and use it, send us a note (especially the euro gang... for you guys in Italy, I would accept an emblem from a Lamborghini Countach as a 'thank you' too!) :-) Installation: Copy the devices included with this archive into your DEVS: directory. Copy the libraries included with this archive into your LIBS: directory. Copy the filesystem (MultiOSFileSystem) into your L: directory. Copy the example DOSDrivers to where ever you like. You can use the MAC_HDSetup to create the proper mountlist/DOSDriver for and existing MAC formatted drive or partition. You can use the HardFile_Setup program to create virtual hard drives or floppys. You can use the Converter program to create disk images to be used as virtual floppys. Mini-docs for utilities: Disk Converter Disk conversion is accomplished using the Disk Conversion Utility. Disks or disk image files may be converted into one of many different formats. Formats that are supported at the time of this writing are: Macintosh 800K (low density), 1.44mb (high density), IBM 720K (low density), AMAX, and EMPLANT. Low density Macintosh disks require AMIA (AMIA uses a real Macintosh floppy drive connected to it), in order to read and write this type of disk format. High density disk formats require Commodore's high density floppy. -------- Selected Disk -------- Below the text "SOURCE" and "TARGET" are two rotating gadgets under each. The upper gadget lets you select which device you want to use, and the lower gadget lets you select the format. If you select "IMAGE" for the format, the upper gadget will be ghosted, and the data will be retrieved from or stored to a file instead of a device. If you don't select "IMAGE" then you can choose between one of your floppy drives or "AMIA" if you have an AMIA adaptor. -------- Source Format -------- There are only two choices that are selectable, either AUTO or IMAGE. Click on the gadget to toggle between these two modes. If AUTO is selected, the converter will determine what disk format the disk is, and setup its internal parameters accordingly. If the disk format can not be determined, an error message will be displayed. If IMAGE is selected, the converter will read as much of the file into the Amiga's memory as possible (nearly 1.5 megs of memory is required for a high density disk image), and setup its internal parameters accordingly. If the file type is not recognized, an error message will be displayed. -------- Target Format -------- The TARGET format can be set to EMPLANT, AMAX, 720K, 1.44mb, or IMAGE. If you select IMAGE then the disk will be converted into a file image. -------- Conversion -------- To start a disk conversion/copy, click on the START COPY gadget and follow the on-screen instructions. You will be prompted to insert a SOURCE disk, or TARGET disk, or a file requester will appear, all depending on the conversion you have setup. When you insert a disk, wait for the drive activity to finish first, then continue to copy. Options for the copy process include VERIFY and MULTICOPY. These options are not available if you use IMAGE as the TARGET format. VERIFY makes very sure that the copy is a good one. MULTICOPY allows you to make another copy when the copy is done. NOTE: All source disks must be write protected for the converter to even allow them to be read. This is for your own protection, and not meant as an inconvenience. Once the conversion process has started, the progress is charted in a grid on the left side of the interface. Errors in reading information are indicated by yellow blocks. Errors in writing information are indicated by red blocks. To stop the conversion process at any time, select the ABORT COPY button. **************************************************************************** MAC_HDSETUP The MAC_HDSetup program was created for those customers that did not purchase EMPLANT with the SCSI option because they already had a SCSI controller. This software will create the necessary mountlist entry(s) for a real Macintosh formatted hard drive with any SCSI controller. When you run the program, a device list is displayed (similar to the device lists in the Device window of the emulation setup). This is the list of devices that the Amiga knows exist. If the device you want to use is not in this list then either it cannot be used, or more likely, is not mounted. If the device is not mounted, the software can scan the SCSI bus to find the necessary information. You have the choice of the software generating either a DOSDriver or a MountList entry. If you click on any device name in the list, information about the device will be displayed to the right of the device list window. If the device is in AMAX format, it will tell you so, and it will also tell you if the AMAX partition is bootable or not. If you click on a real Macintosh device (mounted), then another window will open and you will see information about the hard drive. Clicking on SCAN SCSI BUS will bring up another window allowing you to enter the name of the SCSI device driver that controls your hard drive (scsi.device is the default for A3000 machines). You will need to know the SCSI Unit ID # for your SCSI drive, and enter that value into the UNIT gadget field. If the device is recognized as Macintosh then another window will open and you will see information about the hard drive. NOTE: If the length of the HFS partition is not a multiple of the starting block number, (i.e., the length is divisible by a multiple of the starting block number--for example: start block number = 31, length = 10240 blocks; there is no multiple between 10240 and 31; if the start block number is 32, this would work) no actual DOSDriver or mountlist will be created. Click on the "NEXT" gadget until the "Add to Mountlist" (or "Create DOSDriver") gadget is unghosted. Once it is, look at the partition name and decide if this is a partition that you want the Macintosh emulation to have access to. If so, then click on gadget. A file requester will be displayed. You should save the created mountlist entry to your "DEVS:" directory (Mountlist Entry), or save the DOSDrivers into your "DEVS:DOSDrivers" directory (DOS Driver). Continue the above process until all partitions you wish to use have had mountlist entries created for them. -------- Mounting the Device -------- If you chose to create mountlists, you will have to MOUNT the device(s) before running the emulation. You can either add the "MOUNT" command(s) in your startup-sequence, or user-startup files. Your mount command should look like this: MOUNT XXXX: from DEVS: Where "XXXX:" is the name of the device (determined by the MAC_HDSetup program, but you can change it to whatever you like), and is the filename you saved the mountlist entry as. ***************************************************************************** HardFile Setup Utility What is a HardFile? A HardFile is a file of any length that appears to be a hard drive to the Amiga's OS. HardFiles are block-level devices, having DOS-ENVC entries like normal hard drives. HardFiles are used by Commodore's Bridgeboard system and PC-Task (software IBM emulator written by Chris Hames). The HardFileSetup program was designed to make things easier on the user. It has the ability to create hardfiles of user-defined length and also create the mountlist associated with the hardfile. -------- Creating HardFiles -------- Choose the HardFile type you want to use by clicking on the rotating gadget below the text "HardFile Type". You can choose either EMPLANT, PC-Task, Bridgeboard, or Floppy Disk. When you click on PC-Task or Bridgeboard, you will notice that the "FileSystem" box's contents changes to "CrossDOSFileSystem". This is because these FileTypes are MS-DOS based. When you click on Floppy Disk the "FileSystem" box changes to "MultiOSFileSystem." You can use any FileSystem you would like. Once you have selected the HardFile type, select the size of the hardfile you wish to create. If you have selected PC-Task or Bridgeboard as the file type, you can only increment in 1 meg blocks. If you selected EMPLANT as the file type, you can increment in 64K blocks. If you select Floppy Disk as the file type, the size you select can be 720K, 800K, or 1440K. (This gives you IBM, Mac, or high density size.) Once the size has been selected, choose the FileSystem that this device will be using. If you leave the FileSystem box blank, then FastFileSystem will be used. Choose the type of mounting setup you want to use, either a Mountlist Entry or a DOSDriver. If you selected EMPLANT as the file type, then the file generated by the "Create HardFile" option will be called, "EmpHardFile*" (where the * is the UNIT number). If you selected either PC-Task or Bridgeboard as the file type, then the traditional filename of "hardfile*" will be generated (again, with the * being the UNIT number). If you selected Floppy Disk as the file type, then the file generated by the "Create HardFile" option will be called "FloppyImage*" (where * is the UNIT number). Please remember that only 16 units (0-15) are supported and you cannot have the same unit number for a different file type. (For example: EmpHardFile0 and HardFile0 could not be mounted at the same time or a conflict will occur due to both devices using unit 0.) When you select "Create HardFile" a PATH requester will appear, asking you where you want the file created. Once you have selected the PATH, a window will appear showing you the pending operation's information. If it is acceptable, click on the "OK" gadget, if not, click on the "Abort" gadget. If you click on the "OK" gadget, any previously created hardfile with the same name will be erased and then a new hardfile will be created. Once the hardfile has been created, there will be about a three second pause and then you will see the main menu again. -------- Creating Mountlist/DOSDriver -------- Now that you have created the hardfile, you should immediately create the mountlist (don't alter any gadgets at this time). Click on the "Create Mountlist" (or Create DOSDriver) gadget. You will see a window open and a text requester asking for the name of the device will appear. Enter the name that you want to call your device (DH0:, VD0:, SH6:, etc.) and press Return. Click on "OK" if you are ready to create the mountlist or "Abort" if you change your mind. Clicking on "OK" will bring up a file requester asking you where you want the mountlist saved to. Mountlists usually are stored in your "DEVS:" directory. That's it! Exit the setup program. -------- Using the Device -------- The first step in using the device is making an assignment. In order to use the emphf.device, you must assign "EMPHF:" to the same place where your HardFile was created. For example, if you created a hardfile on your DH1: partition, then your assignment would be: assign EMPHF: dh1: If you created an MS-DOS compatible file (PC-Task or Bridgeboard file type), then you must use this assign: assign HF: dh1: Once the assignment has been made, you need to MOUNT the device. If you used the device name of "Test", then you would mount the device like this: mount Test: from device:filename (where 'device' is device name [usually DEVS:] and 'filename' is the name of the mountlist file you created.) Under OS 2.04 (Kickstart 37) and later, there has been the ability to put the mountlist created in the "Devs:DOSDrivers" drawer. Any device's mountlist in this drawer will automatically be mounted when your system boots. Now, if you type: cd Test: You should get a system requester telling you that the device is non-DOS. You must format the device before you can use it. You can use the Amiga's "FORMAT" command for this, or "Format Disk..." from Workbench. NOTE: Do not format a PC-Task or BridgeBoard type hardfile with the Amiga's format command....format these hardfiles only with the emulator it is running with!. Once the device is formatted, you can treat it just like a hard drive.