HFSLink Version B.3 (beta) by Scott Blackman Internet: blackman@phoenix.princeton.edu Snail: Scott Blackman, 1717 Briarcliff Circle, Dalton, GA 30720 *** This is a test version! Please report any bugs! *** What is HFS Convert? -------------------- HFS Convert, as of this writing, converts files from a Macintosh HFS volume into two ProDOS files: one for the data fork and one for the resource fork. Multiple file selection and directory conversion are supported. How do I use it? ---------------- Quickly: 1. Use "F" if necessary to set the destination ProDOS filetype/auxtype. 2. Use "P" if necessary to set the destination ProDOS prefix. 3. Use "T" to transfer files/folders. If unsure, *** use SHRINKIT keys ***. Table of Contents ----------------- (you may search for the string . , as the following numbered lines appear exactly in their respective sections) 1. Main Menu (Finding your Macintosh and ProDOS disks, and setting the prefix) 2. Setting the Filetype 3. About Transferring files (quick version) 4. About those keys (Selection Notes) 5. About the Conversion (Volumes supported, handling directories, more) 6. HFSLink Modify Program (What is it, and do I need to use it?) 7. Hardware Configuration 8. Technical Information 9. Revision History 10. Standard Stuff 1. Main Menu ------------- The main menu presents five options: Transfer files, Filetype of Converted file, Set ProDOS Prefix, About HFSLink, and Quit. The current Prefix is also on screen. To select, you may use the up/down or left/right arrows, or press the first letter of the option. To set the ProDOS prefix, select "ProDOS prefix". Type the complete or partial pathname at the prompt. Simply pressing RETURN aborts the process. You do not need to tell HFSLink to find your Macintosh disk; it will scan the online volumes, prompting you as necessary, for insertion of an HFS disk. 2. Setting the Filetype ------------------------ You may set the transfer filetype/auxtype by pressing "F". In this version, you must type the hexadecimal value for filetypes. Some common values are: $04 TXT / AuxType = record length (usually 0) $06 BIN / AuxType = starting address $E0 NuFx (ShrinkIt) / AuxType = $8002 $FF System file / AuxType = $2000 (starting address) A file's filetype may also be changed by a number of shareware/freeware file utilities. 3. About Transferring files (quick version) -------------------------------------------- After selecting "Transfer Files", the program will read your HFS disk and present a list of files. At this point you may use the following keys: up/down arrows Move the cursor bar up/down left/right arrows Move the cursor bar up/down ESC Close Directory space Select/Unselect current file RETURN Open Directory or Start Transfer TAB Read another HFS volume oa-A Select/Unselect all files oa-G "Go" - Start transfer oa-O Online volumes oa-V Volume Info (HFS or MFS) Period (".") Abort Transfer 4. About those keys (Selection Notes) -------------------------------------- ESC will "pop" one directory off of the current path, moving back up one directory level on the disk. If already in the root directory, this has no effect. If RETURN is pressed when no files are selected, the operation will be performed only on the file beneath the cursor. TAB will also reread the current device to see if the disk is switched. In most respects, it behaves exactly as the Standard File Toolset in IIgs applications. oa-A marks or unmarks every file. If a file is marked, it will be unmarked, and vice versa. For instance, pressing oa-A twice has no net effect. oa-G "Go" is useful mainly to select directories conversion without opening them at the time of selection. oa-O (Online volumes) presents a list of online volumes, allowing you to choose which volume to read. Pressing oa-V or oa-I will give Volume Info of the volume under the cursor. oa-V (Volume Info) presents information about an HFS or MFS volume (although conversion only reads HFS disks): Free Space and Volume size, Volume Operating system, Volume Created/Modified/Backed up dates. 5. About the Conversion ------------------------ Conversion is supported for all HFS volumes from 800K 3.5" disks to 40 megabyte hard disks. Although it is possible for an HFS volume to be unsupported, I have not had it happen to me. Files and Directories selected undergo filename translation: all non-alphanumeric characters are replaced with periods ("."), and all lowercase characters are replaced with uppercase. If a file does not start with a letter, the letter A is prepended to the name. Filenames are truncated at 15 characters if necessary. Resource forks have ".R" appended to a 13-character truncated name. Selection of a directory preserves the heirarchical structure. A directory is created on the ProDOS disk, and files within that Macintosh folder are placed within the corresponding ProDOS directory. Conversion of nested folders is supported. 6. HFSLink Modify Program -------------------------- To provide greater support for hard drive reading, the HFSLink.Mod program will perform the following function: On some hard drives, ProDOS may not recognize the partitioning, and the HFS volume will "start" at a block other than zero. That is, information that is on logical block zero of the hard drive (according to a Macintosh), may be on block $80 of the ProDOS device, and the first $80 blocks may be taken by partitioning information. In this case, the entire volume is shifted by $80 blocks. A modifying program is included with HFSLink to patch the HFS disk reading routines to add an offset to ALL HFS block requests. As the only offset I have encountered is $80, that is the default. The modifying program creates a temporary file in /RAM5/HFSTEMP (or any file, if you change the string DF$ in the program), which it then runs. No other files are modified, and HFSTEMP may be deleted when finished. The modified HFSTEMP will recognize the hard drive's volume if the offset is correct; however, it will NOT recognize "normal" HFS volumes, and you must re-run the unmodified HFSLink. 7. Hardware Configuration -------------------------- The minimum hardware configuration is an Apple //e, 64K, with 80-column card. MouseText is optional but makes the displays nicer. No 65C02 opcodes are used. One-drive systems are supported. 8. Technical Information ------------------------- Conversion is very simply written. Debugging diagnostics are still printed on the screen: the file's complete extent record, and several procedures are still output on the screen. Errors: Internal errors are numbered much like Apple IIgs Toolbox Errors. The number is $xxyy, where xx is the subroutine number, and yy is the error number. For a complete list of errors and subroutines, mail or email me and I'll send it to you. Conversion Features: Will correctly locate all extent records for all files, and for the Catalog Tree, even if it is necessary to read the Extents Tree. Arbitrary HFS volumes are supported. Directory conversion is supported. One drive systems are supported. Bugs: All *KNOWN* bugs have been worked out of the program, but if you can make anything STRANGE happen, let me know. 9. Revision history -------------------- Beta 1: (3/31/90) First release. Conversion of any HFS file into /RAM5/TEMP.DATA and /RAM5/TEMP.RSRC supported. Catalog Trees with extents in the Extents Tree _NOT_ supported. Beta 2: (5/11/90) Extents tree fully supported, for files and for the Catalog Tree. HFS Device selection added (select a device other than slot 2, drive 1. Some speedups in the B*Tree routines. Beta 3: (7/09/90) First widespread distribution. MANY changes (in fact, basically a rewritten program) including: Creation of Main Menu. File conversion into arbitrary pathnames. Alphabetical HFS directory list. Multiple file or directory selection. Rewritten HFS Device selection. Windows. A real read/write buffer. Completely rewritten HFS tree handling routines. Large volume (hard disk) support. Centralized error handling. Along with many internal memory handling improvements and source code "improvements". Beta 4a: (8/26/90) Bug fixes: Allowed for conversion of empty directories. Added a CLC that was giving //c owners trouble (thanks "Ralpho" Carpenter). Fixed a bug in the "get next HFS volume" routine (thanks Joe Carlin). Fixed a bug in the routine that creates a ProDOS-compatible filename (thanks Dan McGuirk). Beta 4b: (9/02/90) Bug fixes: Getting disk info from the "Volumes online" menu interfered with further HFS directory walking - fixed. Better scrolling in HFSGetfile. Internal cleanup of HFSGetfile and variable-length FileBuf entries (internal effects only). Modification date and time displayed and preserved for files and directories during conversion. Coming soon: Real prefix selection. The ability to list Stuffit files. AppleSingle and AppleDouble support. Automatic re-conversion of files with creator "pdos" (automagically gets the right filetype). MFS support. Summer may bring all of these (if Apple doesn't release the HFS FST first!). Most importantly, this should WORK on all 800K HFS volumes, and convert any file you can throw at it. If you find one that makes it choke, please _let me know_. 10. Standard Stuff ------------------ This program is FreeWare. You may copy it and give it to your friends or upload it to information services as you please. Please remember, however, that this is a beta revision: instead of payment, I ask that you tell me about the program. If you find any bugs (especially one that makes conversion fail), TELL me! If you'd like to see a feature, TELL me! Or, if you like the program, I'd LOVE to hear that. Maybe I need to say this, since I mentioned it: ShrinkIT is a registered trademark of L&L Productions, Inc. ShrinkIT is by Andy Nicholas, and is available almost everywhere. HFSLink Copyright (c) 1990 by Scott Blackman. Any distribution of this program must include this documentation file.