ADFS 1.0 Version History
Here's are charts of my progress, showing you the total number of features / fixes and the dates they happened. It's totally non-scientific, and does not give "weight" to any feature or fix, it just literally counts bullet points. Split between a18 and a19 due to an 8 month break.


alpha 37 (not yet released)
alpha 36: July 25, 2004

• ProDOS got the workover this time, and I've fixed ALL the bugs that I know about. ProDOS disks created with ADFS will now properly work when used in emulators and real hardware. There were many bugs:

• Added a new "debug" feature for ProDOS disks, under the Disk menu, "Dump" which uses the LOG file to dump directory info. Only the chronically technically curious will find this information even remotely interesting. I will probably take it out of the next version, I used it extensively to uncover the above bugs.


alpha 35: July 22, 2004

• Updated for Panther (now compiling with CW 9)
• Drags work again (busted with Panther)
• OS X Carbon Disk Map could fail with an access fault (with fresh preferences) . (68k would happily read illegal memory areas without complaining)
• Wasn't disposing the root folder of disks when dismounted (except for DOS)
• Prefs file creator is now set correctly (now is 'pdos', when it was 'adfs', which didn't exist)
• Fixed assert about missing menus at startup (they weren't really missing)
• The DOS 3.3 Name Uniqifier no longer checks deleted files. Used to be, if you say, deleted "HELLO", but then tried to copy a new one with the same name to that disk, it would get the name "HELLO 1", thinking the name "HELLO" was already taken.
• When the Disk Mapper is showing when copying a new file to a disk will 1) no longer give you an assert like "nodeRecP->allocType == Gen_Alloc_NONE" for every sector you copy and 2) no longer update the map twice per file (now only once) and 3) show the correct file type (colors) rather than show generic files (blue) for every file.
• DOS 3.3: When overwriting a deleted Basic or BIN file, we now zero out the previous file size. Used to be, the file size reported after you wrote the new file would be sizeof(newfile) + sizeof(oldfile). If you kept deleting and re-copying, the size would accumulate!
• DOS 3.3: When copying a Basic or BIN file, no longer corrupt the file!! (would write 2 trash bytes per sector for BAS and 4 for BIN)
• Disk Map: When un-mounting a disk, if it's map is open, close it instead of gracefully crashing.
• You can rename files again. When did that break??
• You can now optimize disks even when you have "Show Deleted Files" checked, you no longer crash.
• DOS 3.3: If you unmount a disk, then show deleted files, you don't crash (!)


alpha 34: February 18, 2003

• DiskMap: Now can be resized! Finally fits on a Classic screen! Neat! Live resizing on OS X (only for volumes < 5 megs, cuz big ones take too darn long)
• DiskMap: Now keeps it's depth to the minimum depth that the window intersects. Black and white will switch to patterns.
• Directory Windows: The header area is now aware of black and white, and will look fine on a 1 bit display.
• 68k: Fixed a real crasher! When you double click a file or get info preview! (Thanks Byron!)
• Carbon: No longer beep after every drag.
• 1 Bit DiskMap: You can now see grid lines even in the dark areas
• When you Drag & Drop disk image aliases on to the desktop window, we now resolve the aliases.
• DiskMap: now always using small font, not dynamically resizing font, it was much too hairy on the inside, and not very future friendly.
• DiskMap: Now knows the proper window sizes for each map, and won't allow you to size the window smaller than the legal size for that map
• Hybrid: Now support hybrid disks from http://home.tiscali.se/pausch/apple2/dsk.html (the ProDOS partition does not include the DOS partition in it's volume size info or bitmap)
• DiskMap: Zooming the window now redraws it too, and remembers the size in the pref.
• Log files now report CarbonLib version. 68k reports InterfaceLib version (same as system version)
• Log file now reports full path of folder you are copying files to
• Packed my whole house and moved into another one.
• Started unpacking.
• Started implementing routines for drawing GS/OS icons (directly read them from the disk image). Some of this code can be used to load FType files directly from the disk image.
• 68k: Made twirling "disclosure triangles" faster by skipping all but 3 frames. What I need to do is pre-make some with the right background color, since blitting masked arrows is so slow.
• Floppy: You probly got the assert "count==Pro_kBytesPerBlock" etc. thing when you stuck a floppy in, sorry I couldn't test that when I wrote it, works now.
• Floppy: Now supports physical DOS 3.3 800k disks (in theory)


alpha 33: January 3, 2003

• DiskMap: If you have a disk map open and you select a bunch of files in a directory window, they used to shmutz all over the disk map window. Fixed.
• DiskMap: Woops! Don't crash when viewing a disk by track / sector.
• DiskMap: No big deal for you, but I'm now using a consistent representation for DiskMaps. Used to be different for block-based vs. track / sector-based, but now they're the same.
• Prefs now remember if your sort order is reversed
• Got rid of View->Large Icon
• If you choose View->Arrange->[something] twice, it reverses the sort order (just like clicking)
• DiskMap: Optimized adding/removing from disk map data structures, so for example deleting a buncha files from a 32Meg ProDOS disk with the disk map up should be faster.
• ProDOS: Woops! Had broken the ability to copy a folder! (a disk is conceptually a folder too)
• ProDOS: Crazy problem with double cached directory entries! Duh! (could get the directory entry out of date, bad info, corrupt info!)
• ProDOS: When you undelete a deleted folder, it will undelete only itself. If you undelete a folder that is NOT deleted, it will undelete recursively (ie: it will undelete every file inside it). So for example to undelete every undeletable file on a disk, simply select the disk and choose "Undelete".
• DiskMap: Optimized adding/removing from disk map graphic offscreen, so now deleting a buncha files from a 32Meg ProDOS disk with the disk map up should be waaaaay faster.
• Mostly 68k: Could crash during build of file types menu (when progress bar is up, calls the desktop to update, which is not initialized yet). I say mostly because I randomly ran into it on PPC.
• When you delete a folder, if it took a while you were supposed to get the progress dialog. You used to, then it broke. I've now fixed it again.
• Import from Finder: Never worked! Hah! Wow! Now it does!
• Export to Finder: Never hooked up for folders / disks! Hah! Now it is!
• Undelete will now show a progress dialog if it takes too long.
• DiskMap: When deleting/undeleting, the regions (that show what blocks are used) are now updated correctly (you used to be able to get the wrong regions, especially for the disk, which includes free blocks)
• When copying / deleting / undeleting / whatevering that has a progress dialog, the number of items remaining now updates!
• When deleting, the number of items remaining is now actually correct!
• ProDOS: Wow! When deleting files, if you selected a folder AND one of it's contents you couldda crashed! No more!
• Prefs: Used to not save the prefs if you only changed the delay time for the progress dialog
• ProDOS: Yikes! Root directory information could get out of date! For example you could get that "wrong number of files" dialog. No major deal for ADFS (since it fixes this on the fly) but would appear as a corrupted disk on GS/OS.
• You are no longer allowed to mount the same disk twice. Also, you can't create a disk that replaces a disk that is mounted.
• DOS 3.3: Was leaking a 28 byte "disk image rec" for every disk disk mounted that had 1 partition. (Hooray for memory tracking!)
• You can now cut / copy / paste / clear / selectAll when renaming something
• When renaming, used to be if you clicked in the area to the right of the name as it was before you started renaming it, it would end the edit session, even if you clicked inside the edit box.
• Used to be you could crash if you were renaming an item and either deleted the item or closed the window containing the item
• ProDOS: Used to crash when creating a new folder in a sub-window. Now it works again.


alpha 32: December 31, 2002

• DOS 3.3: When undeleting file A, if any of the file A's sectors are now owned by another file B (ie: multiply alloc'd), then NONE of file A's sectors will be undeleted. This was already being done for ProDOS.
• ProDOS: If the number of files found in a directory does not match the number indicated in the directory header, the header is updated to the correct number.
• ProDOS: Deleting a large number of files should be much faster.
• ProDOS: Can now undelete folders. If you undelete a file within a folder, it's folder is also undeleted.
• ProDOS: Fixed a bajillion bugs undeleting files and folders. Too numerous to mention. Just don't use a31 at all!
• All: A locked disk image would wreak havoc with my caching system. Fixed.
• Started to add a String table. This will be a central repository for all strings. These will be then written to a resource file that can be translated into other languages.
• DiskMap: We now track multiply allocated blocks. Now the disk map will show even if you get either of the two "Danger" dialog. When you click a multiply alloc'd block, all the files who think they own it will be hilited (in different colors) and will be shown by pathname at the top (up to 3 files).
• Updated the 'clut' resource to have 2 new colors. So now, up to 3 files that are multiply allocated get different colors. The new order is:

  1. File: Generic
  2. File: Basic
  3. File: Binary
  4. File: Text
  5. File Extents (in addition to the directory header, these extents help locate all the sectors (blocks) on the disk where the file resides)
  6. Mystery Blocks
  7. Multiply Allocated Blocks. ** DANGER ** these blocks believe they are owned by more than one file! This is a very bad situation, your disk is corrupted.
  8. Directory
  9. Boot Sectors (Blocks)
  10. Volume Bit Map
  11. Hilight color for entire files (when you click)
  12. 2nd Hilight color for multiply alloc'd files (when you click)
  13. 3rd Hilight color for multiply alloc'd files (when you click)
  14. Hilight color for single sector (block)

• Fixed a potential crasher when disposing any topic!
• Error reports could sometimes be garbled at the end (> 128 chars)
• ProDOS: The destination folder is now re-sorted when you move files within a volume (so the files now land in the right place)
• ProDOS: When moving multiple files within a volume (from the same folder to a different folder) you no longer get an error.
• ProDOS: When moving a folder within a volume, no longer crash.
• All: Files moved or copied into a disk are now (or remain) selected
• DiskMap: When you select a file in a window, if there is a disk map window open for the disk containing that file, then that file is hilited in the disk map. *Niftiness Alert!* This becomes a powerful tool for diagnosing damaged disks. For example finding "Mystery" blocks: Mount a disk with Mystery blocks, show the disk map, now show deleted files. Hopefully you'll get no errors. Your mystery blocks may disappear! If so, click on a block that used to be mystery. It will show a path (at the top) to a deleted folder that has undeleted files! Just undelete that folder and you should be good to go! Also be aware, you may suddenly have RED blocks (ie: multiply allocated). This is because other programs (noteably GS/OS) don't shred file entries when simply moving files between directories of the same volume. In other words, when it moves a file from directory A to directory B, it doesn't move the file, but just the directory entry, but it leaves the entry in A in an un-delete-able state, or if the entry itself is a folder, it doesn't bother to delete the contents! That's where your red blocks come from. This is A Bad Thing. DO NOT attempt to undelete multiply alloc'd files.


alpha 31: December 28, 2002

• The most recently mounted disks are now selected automatically (finally)
• Changed "Move To Trash" to "Delete" since that's what it does. Moved "Show Deleted Files" from View menu to Disk menu, since it's easier to implement per disk rather than per view.
• DOS 3.3: You can now toggle "Disk->Show Deleted Files" and use "File->Undelete". Works on multiple selection. If you try to recover a file that has had some sectors overwritten, it won't let you undelete it, however you CAN still copy the file to another disk. Note: where the file intersects the file that overwrote it, you'll get sectors from that other file. If that other file wrote on any extent sectors, or if the file is completely gone, you can't recover the file at all.
• When you choose "Zero Unused" you now get a warning dialog
• DOS 3.3: Zero Unused will now wipe unused directory items as well.
• ProDOS: Fixed a bug introduced a few revs back, not sure when. I stopped deleting files correctly. They would delete fine, but they couldn't be un-deleted. Now they can.
• DOS 3.3: Large DOS 3.3 volumes now have DOS floppy icon.
• ProDOS: Fixed inability to delete any files if there existed an empty folder anywhere on the volume (!)
• ProDOS: You can now choose "Show Deleted Files" and they show up, recursively.
• All: If you are showing deleted files, they now show up with a small trash can over the normal icon, that way you can tell at a glance they've been deleted.
• All: If you are showing locked files, they now show up with a small lock icon over the normal icon, that way you can tell at a glance they've been locked.
• All: Sorting! Yeah! Even in sub-windows! (Sub windows don't yet remember their sort order, or anything really). This fixes the problem of files sometimes showing up out of order (for example when writing a new file to a disk image)
• ProDOS: When creating new large volumes, the volume size is now correct (again).
• ProDOS: You can now undelete files!


alpha 30: December 22, 2002

• The progress dialog was not re-entrant, so calling it twice would crash you. If I did (show, hide, show, hide) then life is okay. But if I go (show, show, hide, hide) then the last hide used to crash.
• ProDOS: The file types menu is now allocated once at the very start of the program. It used to be allocted each time a volume is mounted, and perhaps again when you get info on a file. This was no big deal in PPC land but on 68k allocating a menu with hundreds of items is slow enough to warrant a progress bar.
• DOS 3.3: Brand spankin' new sector caching scheme. Should make things a lot faster when accessing physical floppies (see below)
• DOS 3.3: Woops, the setctor cache scheme was using a global list of sectors! Yikes! Nothing like asking for a sector and getting one from a totally different disk! Now implemented on a per-disk basis.
• DOS 3.3: Disk Map: Now reporting the directory sectors as used by the disks structures, rather than assuming it's track $11 sectors $1-$F
• DOS 3.3: You can now mount and Map 400k DOS 3.3 volumes. Partitions not yet supported (Typically there are 2 400k partitions per 800k disk). Cacheing, reading and writing need debugging.
• Nibblizer: Support coded but not hooked up for Dosius' (ie: Dapple) Nib6250 format.
• Everything but ProDOS: No longer assert-fail when copying forked files. (ProDOS already worked)
• ProDOS: fixed a crasher when moving a file within a volume (from folder to folder)
• Support for multiple partitions per disk device is now available but must be hooked up on a case-by-case basis.
• DOS 3.3: Now supports both 400k partitions on an 800k disk.
• DOS 3.3: Disk Map: Mystery sectors now reported
• Hybrid (DOS 3.3 + ProDOS) disks (from BeagleBros) now supported. When you map one partition, it maps the whole disk, but the other half of the disk is reported as "Mystery" blocks. (Marked as "used" but otherwise unknown to the file system) This is normal and expected.
• You can now create new dual-bootable hybrid disks.
• Hybrid disks: You can set the disk image type and the sector order. Of course, if you do it to one partition it happens to both of them. You can't nibblize a hybrid disk, however if you mount one that's already nibblized, you will get only the DOS partition, but you can can un-nibblize it, then dismount then remount it, and you should now see both partitions.
• No longer allocating detokenizing buffer for files I'm *writing* to.
• DOS 3.3: Entire directory is cached now, not just names and stuff.
• DOS 3.3: Now also works with OzDOS disks (which are interleaved)
• DOS 3.3: An even more excellent disk cache scheme. Will now only ever read a sector once! Kept in memory until dismount the disk. Writes are now queued and flushed as soon as all writing is done. (there's a temp "Flush" command in the disk menu used for debugging)
• Hooked the memory manager into the disk cache scheme, now if you run out of memory, first it will try to dump unreferenced cached items and try again, and if that is not enough, it will write out referenced items then dump those too, and try again! Wow!
• DOS 3.3: When writing files, no longer read each sector before writing to it! This will greatly speed up access to physical floppies.
• Everything but ProDOS: After writing or deleting files, the free and used space of the disk will update (ProDOS already worked)
• All: in the Disk menu, "Put Away", "Zero Unused", "Map Disk", "Flush" will now operate on the selection, not just the first one. The rest operate on just the first selected one.
• Positioned the following dialogs back near the top left of the main screen: About, Alert, Get Info, Copy Progress, Preferences, Generic 3 Button, Format Disk, Sector Order and Format, New Disk
• Memory tracker now reports peak useage.
• Updated name to David M. Cotter


alpha 29: December 1, 2002

• Integer Basic: detokenizer was also using UNIX linefeeds, rather than Mac CarriageReturn's.
• Disassembler: detokenizer was not decoding the last line.
• Disassembler: ProDOS MLI calls were not disassembled correctly, produced junk. Also, in other places some 1 byte values look like 2
• GetInfo: Was leaking memory when viewing graphics.
• HGR AppleEvent code is cleaner and won't leak when errors occur. See the Sample Code section of a2pix.
• 68k: You're gonna love this. I didn't want to say anything 'till I was sure it could work, but i've got direct floppy hardware access going now. Stick in an 800k floppy, watch it mount in ADFS. Pascal and ProDOS are workin' right now. Only on 68k so far, must look into how it's done in carbon.
• ProDOS: Optimized display of info, it's all cached now, so you don't hit the disk when refreshing windows.
• Disk Map: Optimized a bit, not totally. At least you won't continuously hit the disk, only when you change blocks. This will be fully optimized at a later time.
• GetInfo: Will now show under "Storage" if it's a real floppy disk, and what drive it's in.
• Added new menu items: Disk->Image to Disk... and Disk->Disk to Image... which will eventually let you do what they say.
• Hooked up Disk->Disk to Image..., which enables when you have a physical floppy selected. It actually works, so you can now create disk images from real floppy disks without having to use DiskCopy. Can create raw, 2mg or DiskCopy images.
• Yeah baby! Now hooked up Disk->Image to Disk, which enables if you have a floppy drive and when you have a Pascal or ProDOS 800k, 1.4M or 720k disk image selected. It dismounts any media in drive 1 and asks you to stick in a floppy in drive 1. Then says "Are you sure?" (should it?) I don't know what will happen if you stick in the wrong size, or if your drive doesn't support the size you want to image.
• Hey wow! I've made it now now so that the floppy disks work on PPC. But still not OS X. I have to jump thru some funky hoops to make InterfaceLib calls from a Carbon application, but it seems to work! So it should now work on System 7, 8 & 9: 68k and PPC. It even works with USB floppy drives. Unfortunately it does NOT work in Classic.
• Keep in mind folks that this is not quite optimized. Reading and writing files will be slow (perhaps excruciating), but disk imaging should be normal speed.


alpha 28: November 18, 2002

This would have been a "dot" release, like a27.1, cuz it's just bug fixes from the last release. The only problem is, the "1.0.0a27.1" looks and sounds too goofy. The whole point of the "a" is so you can increment as many times as you need to before going to "b", then again before removing the "b" and calling it a release.
• Disassembly: was overruning it's buffer
• Disassembly: could have junk in the first few lines
• Disassembly: Was using UNIX line endings rather than Mac
• Double clicking a graphic would open it using your text editor rather than a2pix.
• GetInfo: The graphic was shrunk by 1 pixel (ouch!)


alpha 27: November 18, 2002

• ProDOS: You can now read AppleWorks Word Processor files as text
• All: You can now read Binary files as simple disassembly (text). Note it's not smart, just dumps a quick disassembly like the monitor.
• GetInfo: You can now see previews of these files: Text, Basic, IntegerBasic and AppleWorks Word Processor and Binary (disassembled)
• GetInfo: If you happen to have a2pix installed (and you should), then you will ALSO see previews of HGR and DHGR files!! Handles this by passing the file info over to it for conversion. If you don't have it installed, it'll just say something nice, like you should install it :)
• Best of all: Double click on a file to open it! Yup! Works with all the files that work in the GetInfo window. No, you can't edit the file and save, and have it go back to the disk. That would be POSSIBLE only with pure text files, the others are translated on the way out, and there's no reverse-translation to go back in.


alpha 26: November 11, 2002

A "Sparse" file in ProDOS is defined as a file that has more than zero blocks that are completely empty. These blocks don't get written to disk, they are simply "marked" as empty by the file extents. When you read the sparse block, you don't actually read anything off the disk, you just get back a block of memory filled with zeroes. So you can write a 16 MB file to a floppy disk, as long as most of the blocks are filled with zeroes.
• ProDOS: Disk Map now can deal with sparse files, was treating them as "mystery"
• ProDOS: Can now read / write / delete sparse files
• ProDOS: Writing or deleting files would cause a crash (why didn't anyone report this?)
• ProDOS: column view "Size" (physical) and "Used" (logical) and Get Info window all show correct block allocation for sparse files
• You can now choose "Disk->Erase..." and it works. Fun to watch when the Disk Map is open.
• All disk functions that are available when a disk is selected in the Desktop window are now available in the Disk Map window
• ProDOS: We will now honor the disk's 'lock' bit when doing "Disk->..." menu commands (if it's locked, you can't change the sector order for example)
• When converting the disk image file format, if a header was added or enlarged (eg: going from "raw" to "2img") then the temp file was created next to the "Temporary Items" folder, rather than inside it, this has been fixed.
• You can now choose "Disk->Optimize" and it will optimize your disk. This is yet another fun thing to watch in the Disk Map window. Currently, it attempts to do it all in memory, so if you're attempting to optimize a 32MB ProDOS volume, be sure you've got enough memory. In the future, for large volumes, we'll do it on disk. Also, it makes a backup of your entire disk image before starting, so be sure you've got enough free drive space too. If you run into a problem while optimizing, it'll report the problem (hopefully), and your disk will be untouched (even if it makes it half way thru, it'll undo by reverting to the backup made before starting).
• Fixed numerous bugs with file copying in each of the OS's.
• CP/M: When writing text files, now using end-of-text-file markers, rather than emtpy-space markers
• CopyTree: would corrupt every file! (not folders) This was used when creating a new large ProDOS volume that can boot. It should actually work now! (ie: it'll actually boot an emulator). Also used in optimizing any disk, which is how I found this bug.
• DOS 3.3: If a file was Basic or Binary, and less than 1 sector, it would get written as 2 sectors.
• ProDOS, MacOS & CopyTree: You can now copy and delete forked files. Whew! This is pretty neat, you can now copy a Mac file onto a ProDOS disk, then back to a Mac disk and it will survive the round trip! Complete with icon, labels, Finder flags, type/creator and everything! No mean feat, I'll have you know :)
• ProDOS: Fixed maybe 4 bugs in file writing and deleting. We now support GS/OS totally, including it's version of sparse files (slightly different from but compatible with ProDOS 8)
• ProDOS: Subfolders again remember their twirl state (whether they're twirled open)


alpha 25: October 27, 2002

• Pascal: Implemenetetd disk map, blocks or tracks and sectors.
• Pascal: Noticed that some disks are not optimized. Re-enabled "Disk->Optimize..." menu item. Hooked it into the disk map so you can watch it happen
• Pascal: Optimized the optimize function: 1) no longer flushing disk on every file, but now waiting for all files to be complete before flushing. 2) no longer re-drawing screen even when files don't move
• DOS 3.3: Oops! I had broken the disk map function! Fixed that!
• Disk Map: When a disk is shown in track/sector format, the sector order of the map will always be in native order (ie: pure ascending order of the OS, so contiguous blocks appear contiguous) and the sector labels on the left will reflect the physical sector order on the disk, which can be changed with "Disk->Sector order and Format"
• Disk Map: "Disk->Sector order and Format" and "Disk->Optimize" (Pascal only) are enabled when the disk map window is forward.
• CP/M: Fixed yet another file corrupting bug, when copying files into a disk
• CP/M: When you "Disk->Zero Unused" it now also zeroes unused directory areas too (actually $E5's)
• CP/M: You can now create Boot or Data disks


alpha 24: October 25, 2002

• CP/M: First class sector order sniffing (used to get it wrong a lot)
• CP/M: No longer assuming the directory is 3 blocks long. It's really 2. And actually, not all the entries are used either.
• CP/M: First shot at a Disk Map. Shows only blocks. Now I can see how often I get the sector order wrong.
• CP/M: Disks are now reported as 128k in size, rather than 126. This now includes the directory blocks, which were always included in the "Used" column. I know they're really 140k, but the first three tracks are "boot blocks" and are considered used by the system at all times. Should I include that? What do you think?
• CP/M: Fixed file size reporting yet again, this time dealing with records, rather than blocks (user should hopefully see a difference). Yep, I did it wrong twice before.
• CP/M: Text files were not recognized as text, so -C wasn't working. Now they are, and it is.
• CP/M: I think I finally figured out what the real sector order is... Nope. (Later...) YES! HAHA! Finally we'll get it right all the time now!

• Added OS X style recognition of extensions. If you have a typeless file, that you happen to know is in DOS 3.3 order, then just add ".dsk" to the end, and now ADFS will take that hint that it's in DOS 3.3 order! (it used to just cycle thru possible orders and guess). Same goes for all the entension types, here's a table: am I missing any? ADFS_Creator is 'pdos', btw.

	{	'????',		   	FSType_UNK, ADFS_Creator,		".???"	 },
	{	'****',      FSType_GEN, ADFS_Creator,		".gen"	 },
	{	'DSK5',      FSType_DOS, ADFS_Creator,		".dsk" 	},
	{	'DISK',     	FSType_PRO, ADFS_Creator,		".po"	  }, 
	{	'aPas',     	FSType_PAS, ADFS_Creator,		".pas" 	}, 
	{	'aCpm',    		FSType_CPM, ADFS_Creator,		".cpm" 	}, 
	{	0x70F70118, 	FSType_C2P, ADFS_Creator,		".img" 	}, //  Copy II+
	{	'DOS3',    		FSType_DOS, ADFS_Creator,		".do"	  }, 
	{	'A2D5',    		FSType_DOS, ADFS_Creator,		".ctkg"	}, 
	{	'PDOS',		   	FSType_PRO, ADFS_Creator,		".disk"	}, 
	{	0x70F70000, 	FSType_C2P, ADFS_Creator,		".img"	 }, 
	{	'VDSK',  	  	FSType_PRO, ADFS_Creator,		".vdsk"	}, 
	{	'hdrv',    		FSType_PRO, ADFS_Creator,		".hdv"	 }, 
	{	'dImg',    		FSType_PRO, ADFS_Creator,		".dImg"	}, 
	{	'2img',    		FSType_GEN, ADFS_Creator,		".2mg"	 },
	{	'NIBL',    		FSType_C2P, ADFS_Creator,		".nib"	 }

• CP/M: The Disk Map is done, tho the sector order shown when you view as tracks / sectors is purely ascending, it's not like that in real life
• CP/M: The following file types are now treated as text: 'PRN', 'DOC', 'ASM', 'BAS' as well as 'TXT'. But there's no translation yet (doesn't convert CRLFs to CRs)
• CP/M: Fixed file size reporting for Text files, which is a bit different from normal files. (Now counting characters until you hit ctrl-Z)


alpha 23: October 19, 2002

• Wrote generic sort routine for UI "entries" (can be used for sorting directories, selections etc, on any criteria) (actually in a22)
• Pascal: wrote filename uniqifier, untested
• Pascal: wrote "NewFile()" routine
• PPC: Won't bother calling FSpThisApp() while getting the Apple II fonts. (68k never did)

• Pascal: Finally wrote the file->Write() and pascal->WriteBlock() routines! Yikes! (untested)
• Pascal: You could never delete the last file. It would disappear, but when you re-mount the disk, it would still be there.
• Pascal: Volumes used to report they had one more block than they really had. Oops! This could lead you to get ".hdv" icons in the finder, if you switched a Pascal disk to use ProDOS/Pascal sector order
• Pascal: Disks used to tell themselves they were in "Pascal" sector order. This is identical to "ProDOS" order, but the rest of the program wouldn't cope with it set to pascal, so now it's set to ProDOS.
• Pascal: The Disk->Set Sector Order and Format... dialog would show the wrong sector order (part of above fix)
• Pascal: Disk icons are now displayed correctly, rather than showing you a DOS 3.3 disk in Copy II+ sector order or somesuch. (part of above fix)
• Pascal: Okay the dir entries were really off by 1, not 2. They now start at 1 instead of 0.
• Pascal: You can now create new Pascal disk images, theoretically bootable. I don't really know yet if they're bootable.
• Pascal: The date stamp was putting the year into the day field doh!
• Pascal: Deleting FIRST file would corrupt the disk. oops!
• Pascal: Was writing 1 too many characters to the volume and/or file name field, corrupting the disk and possibly making it unuseable
• Pascal: Debugged and tested writing code! Yeah!
• Drag and Drop now alphabetizes before dropping, recursively!
• Pascal: OMG! The record I was using for file/volume dates was wrong! Volumes now have date stamps! Hmmm but they look funny. Can someone verify I'm showing the correct dates on files and volumes?


alpha 22: October 13, 2002

• CP/M: found and fixed several bugs related to writing files. Can't write files > 16k. Gets very confused if you write 2 files with same name (other OS's aren't so picky). Gets confused and crashy if you say write 3 files < 16k, delete the middle file, then write another > 16k.
• When dragging files into disk images, we now automatically rename files that would end up with duplicate names. (some day there will be a "Dup file: Replace?, Rename?, Cancel?" dialog)
• CP/M: fixed yet two more bugs relating to writing files (one about file names, would consider deleted files when uniquifying names, the other was in writing large files over the same directory area as deleted large files, would only write part of the file)
• ProDOS: folders now report their sizes. Info is cached, so must be updated when adding or removing files from them. Are there any cases where the info is out of date?
• ProDOS: now reads the hi-bit of the lowcase bitfield when determining if there are lower case bits (as per tn.gsos.008)
• Pascal: Disk->Optimize is now hooked up, for testing. Optimizing Pascal disks is a critical part of the Pascal File System, since files must be stored contiguously. In the release version, "Optimize" will be disabled for Pascal disks, since disks are always kept optimized, even the directory structure is kept optimized, there are no “empty” entries.
• Pascal: file index (displayed) was off by 2!
• Pascal: directory never showed the last file! (had a "<" instead of "<=")
• Pascal: Whew! Fixed a bunch of other bugs, so now it seems that you can delete files from a disk! Wow! No mean feat, I have to keep not only the disk optimized but the directory as well!
• Pascal: re-disabled Disk->Optimize, since it is tested and redundant


alpha 21: October 6, 2002

• Log file is more descriptive of the type of copy being performed
• My BNDL resource for recognizing Copy][+ disk images was wrong. Spent 5 hours trying to get my LaunchServ DB to rebuild, failed. I'm going back to OS 9!
• OS 9 rules! There I rebuilt the desktop DB, icons found! There I deleted all the LaunchServ shenanegans from my OS X prefs, restarted in X and icons found! Yaaay!
• Fixed a mondo bad crashy death bug: if you drag at least 2 files into a disk image from the finder, and the files have identical names except one name is longer than the other, eg: "myfile" and "myfile is cool", and the drag manager happens to send the shorter one first, ADFS would think these files are identical, and start doing some insane stuff like make it a folder of itself or move it into itself. Sometimes you'd just crash right away, sometimes you'd get the progress dialog from hell (counting up to and including infinity) Whew! Once again, thanks go to Byron! :-)
• CP/M: Implemented access bits. The only ones supported are read-only (lock) and archive (backup). You can see the UI in the info window. Note that all access bits are preserved, even if you rename a file or change it's type. So if it came in with 'wheel' and 'system', and you rename it, and change the type, and set the lock, if you go back to a real CP/M system, the 'wheel' and 'system' bits will still be set. Previously if you renamed a file, you'd loose the access bits.
• Pascal: fixed an error renaming files and disks, was treating them as C-strings! hah!
• Pascal: names are now cleaned before being set: no illegal chars (convert to periods), must start with alpha (if not, convert to 'A'), must be all upcase
• Pascal: You can now rename a disk
• CP/M: If you try to rename a disk, it will beep. The disk name actually comes from the disk IMAGE name in the finder. CP/M disk volumes don't actually have names. Would you prefer that renaming a disk actually renames it in the finder?
• CP/M & Pascal: disks now remember their twirl state (whether their disclosure triangle was open)
• CP/M: changed the way names are shown and edited. We now show the filename 'name.ext'. When you edit the name, you edit both the name and extension. Empty names or extensions are not allowed. However, we don't do any duplicate name testing yet. This is in preparation for writing files
• CP/M: Wrote routines for creating new files (used when writing)
• CP/M: When deleting a file, marks ALL directory extent entries as deleted, not just the first one
• CP/M: When copying files into a disk, will now pre-scan to determine if the directory itself would fill too much, and report before starting the copy
• CP/M: Finished writing all code necessary for writing files! Extents allocation, directory scrunching, block writing, and of course, file writing! Whew! (as yet untested)
• If you drag a file that's smaller than a Raw disk image (< 144k) you'll get the "Unsupported Image Type" error
• CP/M: You can now create new blank "Bootable" disk images. Well, I don't really know if they're bootable. Maybe they are. If you try to create a "Data" disk, you'll still get a "Bootable" disk.
• CP/M: Used to call totally blank disks "Unsupported" and you couldn't mount them. Now you can.
• CP/M: The volume bitmap table routines now report that the blocks taken by the directory are always in use. This is a good thing.
• CP/M: When determining Logical Size of a file, I now get the physical size, then go to the last record, and subtract off only the contiguous bytes that are are marked "erased" ($E5), starting at the end and working my way back, rather than what I was doing before.
• Files dragged out of file systems that have no date now have a created / mod date of now, rather than Dec 31, 1999
• CP/M: When reading a file, was truncating it at the end!
• CP/M: Fixed all the bugs I could find in the new write code! Seems I can successfully drag files in and out!


alpha 20: September 30, 2002

• Pascal: Text files are now translated properly when copying out
• Prefs: "Detokenize Basic" is changed to "Translate Text" and also operates on Pascal Text Files (note that DOS and ProDOS Text files will always be translated regardless, what do you think of that?)
• Pascal & CP/M: for the time being, if you try to copy files IN to them, you get a "Disk Locked" error, even if the disk isn't locked
• If I try to hide the progress dialog when it's not showing, it no longer shows first
• You can now double click an empty area in the desktop window to mount a disk
• A double click is now defined as clicking within DblTime and within 1 pixel of where you last clicked
• DOS 3.3: fixed potential errors in writing files (never ran into it but upon reading the code I was like "whaa??")
• 68k: Removed the 'plst' resource, so if you run it on OS X it runs in the Classic environment.
• Added "Find..." command to edit menu (will find and select items containing that string)

• Added "Optimize" to disk menu (obviously, will optimize your disk)
• CP/M: fixed my file size reporting: would fail and crash if the file was an exact multiple of 16k
• 68k: fixed the font problem: was setting font info into the window manager port! Naughty! (Can you believe I got it to compile in CodeWarrior 2.0?)
• Fixed bug in creating new disk image for large ProDOS volumes, handle tracking would report funny numbers, probably also happened when
-C was used to copy a text file
• Added 2 new prefs for logging: "Include screen updates", this was just taking up too much space in the log files, so made it a separate item. "Include Memory Tracking", which helped me track down the aforementioned alleged memory leak. Both default to off.
• Added more logging info to creating new disk images and copying files
• Changed "a2pix" in the Open... dialog to "ADFS"
• Now sharing the HGR file icon with a2pix
• Updated 'plst' and 'vers' resource to show copyright string saying '2003'

• DOS 3.3: dragging files to a disk image would initially create new files of type "BIN" which have a 4 byte header. Now instead, we wait to find out what kind of file it is before setting the file type (they start out as TXT now, which have no header)
• DOS 3.3: With the help of Byron we discovered that files > 512 bytes become hopelessly corrupted when writing to the disk image! Thanks!
• DOS 3.3: The DiskMap function would incorrectly report files with more than 1 extent sector (TrackSector List). It would say the second one occupies T/S 0/0. This was in effect a cosmetic bug, because in fact the TSList was recorded correctly.
• DOS 3.3: a whole separate bug, if the file is > 32k, one: it was written corruptedly, two: the size reported is wrong, and three: I was illegally writing Binary files greater than 64k! (BIN files must be <= 64k). Presently it'll try to write the file until you hit 64k, then complain that it's illegal and abort, but your disk should not be corrupted.
• DOS 3.3: fixed above bug where if an individual file is too large (> 0xFFFF i.e.: 64k) it will tell you before it starts to copy
• Now, if you try to move a file within a disk image, unless it's ProDOS, you'll get an error message explaining you can't do that
• ProDOS: if an individual file is too large (> 0x00FFFFFF i.e.: 16MB) it will tell you before it starts to copy


alpha 19: September 22, 2002

• CP/M: In anticipation of needing these routines in the future, I've implemented routines to walk the Volume BitMap, and a subroutine to determine if any particular block is free, and another to find the next available free block.
• CP/M: disks now report space used and free space (Using above routine)
• CP/M: "Zero Unused Blocks" is somewhat hooked up, but hey, I have no idea if it's doing the right thing, so be warned. Actually it's writing real zeroes, not $E5 like it should, and it presently does NOT zero unused directory entries. (Using above routine)
• ProDOS: When making a new boot disk, I now include Basic System 1.5. The program selector still runs first, but you then have the option of selecting Basic System.
• CP/M: "Zero Unused Blocks" now actually it's writing $E5
• CP/M: now reports physical and logical sizes of files, but I'm not totally sure I'm counting correctly. For logical size, basically I count blocks up 'till the last block, then count bytes until I hit an $E5. Does that sound right? (editor's note: no, it's wrong. What if you hit an $E5 that's part of the file data?)
• Non-dates are now reported as "-" rather than the current date and time. All Pascal disks and some ProDOS disks have files on them with only dates and no time, for these, obviously, only the dates are reported.
• Pascal: Implemented routines to walk the Volume BitMap, and a subroutine to determine if any particular block is free, and another to find the next available free block.
• Pascal: disks now report space used and free space (Using above routine)
• Pascal: "Zero Unused Blocks" is written, but again, I have no idea if it's doing the right thing, so be warned.
• About Box: made the "DropShell" credit string 10 points so it uses text smoothing on OS X. The default (set in the General System Prefs pane) will smooth only 10 and up, I had it set to size 9 before, but I also changed my default to 9, so it looked smooth for me, but not for anyone who hadn't changed their pref too.
• Pascal: you can now rename files (not disks yet)
• Re-enabled
-C to copy text and basic files to the clipboard. Don't know when or why that got disconnected
• Pascal: you can now copy files OFF a pascal disk, tho this doesn't seem very useful. Right now, text files are not quite translated properly, you'll end up with NULLs and such
• Pascal: Implemented support for large volumes. Currently I only allow 144k and 800k volumes. Do other volume sizes exist as disk images?
• Pascal: now can read 2img and DiskCopy (could always read raw)
• Pascal: upgraded many routines to return error codes for much more robust error handling
• Pascal: disk icon shown correctly for large volumes

• Pascal: new directory scanning routine created for uniform method of accessing file info, all file info is cached even for large volumes
• Pascal: volume bitmap routines updated to use new dir scanning
• Pascal: UI "topics" are now created using new dir scanning
• Pascal: file icons now show if the file is text
• CP/M: new directory scanning routine created for uniform method of accessing file info, (for CP/M and DOS 3.3, the entire disk is cached)
• CP/M: volume bitmap routines updated to use new dir scanning
• CP/M: UI "topics" are now created using new dir scanning
• CP/M: you can now drag files OUT of a CP/M disk


alpha 18: January 20, 2002

• Fixed a nasty bug in OS X that would just crash when you clicked a menu! Hooray for illegal memory access!
• For those of you running < 7.1.3 (i.e.: no drag and drop exchange with the finder) you can now choose "File->Export To Finder..." and choose a folder from the "Save" dialog. This actually works. Also added "Import From Finder..." which does nothing at the moment.
• Attempted to add a preference that switches you to 1 bit mode, but it won't work on newer hardware (i.e.: mine) so I'm going to have to fake it :-) If you use it now, and your hardware supports it, you switch to 1 bit mode. If your hardware does NOT support it, it'll switch you to the lowest bit depth your hardware supports, which is not very useful. I'll later change this so all it does is tell ADFS that we're on a 1 bit system, so all drawing will be B&W. Presently, regardless of setting or your actual bit depth, ADFS does not support B&W. Rest assured, I won't leave B&W behind!!


alpha 17: January 17, 2002

• 68k: I reported that the 68k version would run on 68000 processors. Well, actually it was tuned to 68020. Now it really is tuned to 68000. I promise!
• 68k: Disk Mapping and possibly other functions would fail (due to a freekin compiler bug!) So I turned down the optimization dial. Now it works.


alpha 16: January 16, 2002

• Fixed: you can now copy files again. Uninitialized variable holding error condition was typically non-zero, indicating an error, hence no copy. Duh.
• Fixed the 68k version. Jeez, total undersight there. Apparently constants aren't automatically long in size, so if you multiply 2 constants it can overflow, which happened all over the place. Things that now work: New Disk dialog, Convert Format, 32MB volumes, probably a bunch of other things. So what I've learned from this is: develop in 68k and it'll run on Carbon, NOT the other way around.
• You can rename items on a CP/M disk. You can't rename the disk, (yet) from within ADFS, but you can just rename it in the finder, since that's all it's going to do anyway.
• You can now delete files from a CP/M Disk


alpha 15: January 15, 2002

• Fixed conversion of raw<->2img<->dImg. I don't understand how it ever worked, sorry. It works now :)
• No longer leak a pointer if you copy an empty folder
• You can now create a new folder. This is how we decide where to create the new folder:

If you have the Desktop window front most then:

If you have a folder window front most then:

• You can now delete folders. You'll get a single warning, then it will recursively delete everything inside. You can even watch things disappear if you have the disk map open. (It is NOT optimized yet, it will be slow for large disks!)
• The New Disk dialog works again. It was totally broken for creating large ProDOS volumes.
• You can now create and mount 32MB ProDOS volumes. Used to be, it would break a lot of stuff. You can even map them, but you better have a big screen.
• You can now rename Files, Folders, and Disks. Yes, you can renumber DOS Volumes as well. If on a DOS volume you type a number > 254 or if you type a string, then, technically the volume number will be what it was before (i.e.: unchanged), but you will see whatever it is you typed as the new name. This name is stored on the disk, and only ADFS is aware of it. If you put the disk into a real Apple ][ or some emulator, it will only see the volume number that it used to be. To get back to seeing the actual volume number that the rest of the world will see, just delete the string you typed. All names will be sanity checked depending on the OS (i.e.: if you enter an illegal name, it will be corrected)
• Baby baby! You can now drag selections across disk images! :-)
• And after only 6(!) more hours of programming you can now move selections within ProDOS disk images. Smartly, it only moves the directory information, the contents of files don't need to move.
• And you can finally use
-W to close sub windows
• You can now move a hierarchic selection to a non-hierarchic disk. The selection will flatten, and the copier will add numbers to names as necessary to avoid duplicates.
• The Open dialog on 68k no longer crashes. It's been broken for ever.


alpha 14: January 4, 2002

• Fixed a fatal bug: would corrupt and utterly destroy your disk image if you deleted a large file > 128k from a ProDOS disk.
• Fixed a possibly disastrous bug: I was not supporting ProDOS disks that were exactly 32MB in size. 31.9 sure, but not 32. Oops.
• Fixed a bug that would cause it not to copy files dragged in from the finder, IF there are 2 files from the same folder who's names are exactly the same except for the last character
• Fixed another ProDOS bug that would write an extra index block and an extra empty data block if the file size > 512 bytes and the size is exactly divisible by 512
• Fixed yet another ProDOS bug where it would not update the "blocks used" to reflect index blocks. Apparently the "blocks used" field includes file extents, not just file contents.
• Fixed ProDOS bug, when copying something to a disk image, it was not setting the date stamp to match the source file.
• Much more robustly accessing ProDOS disks. Now, if there's any problem reading a file / folder / disk, there is (hopefully) no chance of getting a bus error or access violation.
• Now setting the creation date of a ProDOS disk (when making a new disk)
• We no longer leak a pointer if we fail to mount a disk image (Thanks Martin C)
• We no longer "unexpectedly quit" if you have opened any sub window, but have the desktop window front most when you quit. (Thanks Roger Johnstone)
• I've created a new generalized 3 button dialog, for use with anything that needs up to three choices. My present plan is to use it for the "Replace file" dialog, for when you're copying a file to a destination that already has a file with that name.
• In dialogs where you can use keys to press buttons (like [esc] or [
-'.'] for the Cancel button) the button will now hilite for 1/10th second, as it should.
• Implemented a rudimentary "Disk Map", that mimics the one done by Copy ][+. It only presently works on 140k images (DOS & ProDOS). Does not map files yet.
• Okay, now I've made the disk mapper work on large ProDOS volumes. In fact, you'll always get the new, block oriented one when you map a ProDOS disk. Else you'll get the old Sector map. Seems Pascal is also block oriented. So I guess there will be a choice of what kind of viewer you'll get for those disks that can be viewed either way. (I.e.: ProDOS or Pascal 140k images only)
• Woah. Now I've gone and made it color. It shows these items in different colors: Boot, Volume Bit Map, Directory, File, File Extents.
• And now you get a popup that lets you switch between viewing Blocks or Track / Sectors. (That is only available for 140k ProDOS images)
• For my next trick, if you click (and drag) in a block, it will hilight all the blocks that belong to the file you clicked on. I think the block mapper is no longer "rudimentary". If you click on a block that belongs to the disk itself, it hilights all the blocks that belong to the disk (i.e.: boot blocks, bitmap blocks, mystery blocks, and root directory blocks) (now uses it's own hilight color from a 'clut', see below)
• And be even more siked: now when you click on a block, it tells you it's full path at the top of the window in the header area.
• You now get a readout of what block or track & sector you clicked on.
• In the header area, there is now a legend telling you what the colors mean.
• There is a new resource, 'clut', or Color Look Up Table, that lets you adjust the colors using a resource editor. In order, these are the colors defined in the 'clut':

  1. File: Generic
  2. File: Basic
  3. File: Binary
  4. File: Text
  5. File Extents (in addition to the directory header, these extents help locate all the sectors (blocks) on the disk where the file resides)
  6. Mystery Blocks
  7. Multiply Allocated Blocks. ** DANGER ** these blocks believe they are owned by more than one file! This is a very bad situation, your disk is corrupted.
  8. Directory
  9. Boot Sectors (Blocks)
  10. Volume Bit Map
  11. Hilight color for entire files (when you click)
  12. Hilight color for single sector (block)

• Disk Mapper window now remembers where you put it.
• You now get a readout of the type of file you clicked on, both in terms of what kind of block it is, and it's file type.
• The block you click on now hilights too, using it's hilight color in the 'clut'
• For geeks only: Memory tracking is now more robust. You will now be warned of disposing a NULL pointer or handle, and you will be warned immediately if you dispose more than you allocated. Fixed a bug that was overwriting memory when the tracking string was too long.
• I've added tracking of "Mystery Blocks". These are blocks, which seem to appear only on ProDOS volumes (so far?) that are marked as allocated by the volume bit map, but that have no files referencing them. Now, in the Disk Map, they show up as belonging to the disk itself (rather than a file) and are labeled as "Mystery Blocks"
• You now get a readout of how many blocks a file takes up too.
• Disk mapper is now dynamically updated while copying or deleting files. It's quite fun to watch when copying a large number of files to a disk image :-)


alpha 13: December 23, 2001

• (68k, & pre-System 8.6) Remove dependencies on FSRefs for initializing the FTypes folder.
• (68k, & pre-System 8.6) Remove dependencies on IconRefs for drawing icons. You guys get icons again! :-)
• You will no longer get an error and abort if you have a folder in your FTypes folder.
• You can now drag multiple files and folders both ways! It won't allow recursion, even if you try (e.g.: you can't drag a folder into itself), it'll smartly weed out anything recursive. Note I support the "name locked" as distinct from "file locked". Ergo you can drag files into the finder who's names are locked, which is a kind of unusual situation. You'll need resedit or some such to unlock them. I think copying a locked folder to the finder will also create a locked folder, so be forewarned.
• Basic files dragged out are no longer automatically converted to TEXT. If you want this, hold down 'option' when you start the drag, or to copy one at a time by selecting the file and then click "Edit->Copy", and the text will be on the clipboard.
• When the Basic file *is* translated during copy (i.e.: you held down 'option') then it will open with SimpleText or TextEdit (rather than CodeWarrior). If not, it remains a normal 'pdos' file with the correct type, so you can copy it to another disk image and it will remember that it was a Basic file.
• Hiliting (the drop destination) during drags is a little different, so it doesn't interfere with the current selection (you'll see)
• Be forwarned that any Binary file you copy to the finder who's load address happens to be $2000 will be recognized as an HGR file, even if it isn't. The reason I need to make this assumtion is that otherwise, NO files would be recognized as an HGR file, and you couldn't double click on them to open them. Icons in the finder are determined strictly by file type, whereas I need to know the file length as well to determine if it's really an HGR file. ADFS and a2pix does this extra check, but the Finder can not. And even then, it could be just a binary file who's length happens to be about $2000 bytes long.
• OS X: double clicking on an HGR file who's creator is ADFS will now reroute the file to a2pix. (it worked on OS 7-9 but not on X). On X we now use launch services, which should be very quick (ie: no delay like on 7-9)
• There's now an actual "Preferences" dialog (under the Edit menu) where you can say whether you always want to detokenize basic files when you're copying to the finder. (The 'option' key still works to reverse this setting) And you can also set how long to delay showing the progress dialog for lenghy operations.
• Implemented nifty memory tracking. Now, if you have logging on when you quit, it'll tell you if you lost any handles or pointers, and for a very cool bonus, it tells you exactly what kind of handle or pointer you lost! I did this cuz I ran out of memory when copying a disk, and didn't know why. Turns out I was leaking like a sponge when copying Basic files. It will also tell you if you try to dispose something that was not tracked during allocation!
• I've moved *everything* over to the new generalized copy (anything to anything) routines. Including the "copy to clipboard" function. You should not notice any difference, but to me it feels oooohh so much better.
• You'll now get an error dialog if you try to copy a file to the finder where one of that name already exists. Later you'll get the choice to replace it.
• In the future (ie: this doesn't work for previous versions) if you run a later version which has a later prefs file version, then run an earlier version, it'll now chuck the new prefs and replace them with prefs that work with that version. It used to only do that for newer versions, now it goes the other way too.
• Moved the "Enable Logging" and "Paint Backgrounds Red" into the prefs dialog. Both are for debug only and will be removed when ADFS reaches FC (Final Candidate)
• OS X: Modal dialogs are now really actually modal. Used to be, you could open a modal dialog, say, the copy dialog, then switch to the finder, then switch back by clicking on some window that was NOT the copy dialog, and it would bring it in front of the copy dialog!!
• OS X: The new "Preferences..." is under the "ADFS" menu, not the "Edit" menu
• Marquee select now works. With autoscroll. With accelleration. (ie: the farther outside the window bounds you drag, the faster it scrolls)


alpha 12: December 15, 2001

• The 'plst' resource is updated to include Copy ][+ ".img" files, even when they don't have the .img extension, and now also includes support for HGR files.
• Now, if the user holds shift to turn on logging at startup, this is reflected in the "Edit->Enable Logging" menu item, and is saved in the prefs.
• I've implemented a generalized "copy anything to anything" architecture. It is an API that will allow me to copy multiple [files / folders] [to / from / within] the clipboard, the finder, or a disk image or disk image folder, with the progress indicator (Copy Dialog). The scheme I've been using has been hand rolled for each source-dest pair, eg: special code for finder->image, totally separate code for image->finder, and yet another chunk of separate code for image->clipboard, etc, plus they didn't work for multiple selections.
• You can now create ProDOS "volumes of unusual size".
• Added new icon (type 'VDSK') for 3.5 inch floppies.
• Updated 'plst' to include all disk image icons.


alpha 11: December 11, 2001

Sorry Dudes, had a few bugs there.
• My CP/M sector order converter wouldn't convert correctly, so whenever I sniffed for CP/M it would leave the disk in a bad state, perhaps making the disk unreadable. (it could possibly have recovered, so you didn't notice)
• I was using a slightly undocumented sector order for CP/M, and I switched to the documented one, which seems to work too. I can't be sure since all I'm donig right now is reading the catalog. I don't know why I'm able to get a catalog out of it in either format, since the sectors are in totally different places. I'll know more when I can read files too.
• Used to allow you to set sector order of NIB images. Well, you can't. Seems like they're all in Copy ][+ order. Which, by the way, C2P order seems to be the same as converting to DOS twice, *or* converting to ProDOS twice(!). Therefore it is impossible to "know" what sector order it came from, you have to sniff it. Due to this, ADFS would recognize NIB images as having Copy][+ icons, which was actually correct, but I thought it was a bug. Well now we know. At least I was reading and writing them correctly.
• Fixed the Copy ][+ icon FREF, so your C2P images copied from the Apple II side should now have icons.
• Added 'plst' icon references for the important file types and extensions, so you'll get icons on OS X for your disk images.
• You can now convert between Raw<-->2img<-->DiskCopy, nib or not. DiskCopy doesn't allow NIB.
• Fixed a major bad bug WRT large ProDOS volumes: I was not reserving enough stack space for the volume bitmap. So you got errors like "Out of blocks on stack!"
• The progress dialog will now only show up after 1 second. If the operation doesn't take that long, it doesn't show up.
• Zeroing unused areas now gets a progress dialog (necessary for large ProDOS volumes)
• Calculating a Disk Copy checksum now gets a progress dialog (necessary for large ProDOS volumes)
• When you quit, it now properly dismounts each disk.


alpha 10: December 8, 2001

Small note:
68k folks using less than OS 8.6:

I'm presently using FSRefs to scan for FType files and IconRefs to draw icons. These things don't exist on system 7. Okay, i'll fix this first thing for alpha eleven. For now, you guys don't get FType files or icons.

• Fixed 68k startup error on FileTypes initialization.
• Fixed 68k crash drawing icons.
• Fixed font bizzarreness (if you see fonts change when you click around, let me know)
• Added support for reading Nibblized disks (whew!)
• Fixed a bad bug in the sector order sniffing code. Used to recognize DOS 3.3 disks in the wrong sector order. The first part of your catalog would look okay, but the file poitners would be shooting off into space, making file sizes look strange, sometimes cutting your catalog in half. If you ever tried to copy a file or write to the disk, you got hosed.
• We now allow you to drop or open any kind of file and we will sniff it with all the possible filters to determine what kind of file it is, even if it has no file extension or file type.
• And WOW!! Now there's support for writing them too!! Now you can nibblize / un-nibblize a disk, by choosing "Disk->Sector Order...", and now click the [ ]Nibblize box so it has the setting you want, press "OK" and BING! (btw: we have a machine that goes "BING!") Now your disk image is in it's new format! (converted in place, so if you need a copy in the old format, dupe it in the finder first) WARNING: sometimes, they're in NIB format because NIB is capable of encoding copy protected disks. Ergo: un-nibblizing it will destroy the disk. In that case it is unlikely ADFS will even be able to mount it in the first place. But you may be lucky: ADFS can detect a simple form of copy protection and it actually removes it, so un-nibblizing that will actually work fine! In other words, if ADFS can mount it, and the contents look fine in the catalog, then it is *probably* okay to un-nibblize it.
• The "Disk->New..." dialog is now aware of Nibblized disk images, and if nibblize is checked it will hide the sector order choice and pick it for you.
• No longer get the "No error: error -54" dialog when twirling folders on locked ProDOS volumes. BTW: did you know that ADFS remembers the states of those twirly arrows for both DOS 3.3 and ProDOS volumes between sessions?
• We will handle nibblized disks that have physically skewed sectors. DOS 3.3 and ProDOS create disks who's physical sectors are NOT skewed, ie: they are in sequential order. The skewing is done in software. However I have come across at least one disk image who's sectors are physically skewed.
• If you try to drop a file onto, or set the sector order of, or zero unused areas of, or delete a file on: a disk that is locked, you'll get a warning instead.
• Can now decode DiskCopy 4.2 header and calculate image checksum. I was never updating the checksum before, so if you opened and modified a DC image, the checksum would become invalid, and the next program to use it would tell you it could be corrupted, even when it wasn't.
• Can now create new 2img (nib or not) and DiskCopy 4.2 images.
• Prefs file is now cross compatible between 68k and Carbon. (DOH!)
• Added some quite robust logging, so if a tester is having a crasher problem the log file can be used to track exactly what was happening just before the crash. To turn on logging, choose "Edit->Enable Logging". It will remember it's state between runs, so be sure to turn it off when you're done. If you crash during startup before logging can start, then hold down the shift key to force logging to turn on first thing, then send me the log file.
• Now robustly mounts Pascal disks too (CP/M still lags)


alpha 9: November 29, 2001

• Fixed a crasher when you delete a file/dismount a disk
• We're now calling ExitToShell() at the end of the app, so you shouldn't get a hang on OS X or when there's an error during startup.
• fixed Copy dialog fonts on OS X
• fixed the "Time Remaining" calculation, used to show wacky times like "About 1 minute and 105 seconds". It still doesn't recalibrate, say if you drag the copy window around for a minute, it upps the time left but doesn't quite get it right, it then starts counting down by 2 seconds at a time. But at least the timer works and gives valid numbers.
• fixed a major bug in ProDOS volume bit map updater!! wow!
• now providing very detailed error reporting when initting the file types, to help resolve the startup failure on 68k.


alpha 8: November 28, 2001

• Upped the memory partition: Needs 2 MB, prefers 8 MB.
• New Feature: For ProDOS, according to File Type Notes $42, you can have multiple 'FType.xxx' files that describe file types. Thse can usually be found in the 'Icons' folder of the GS/OS finder. So now, if you have a folder in the app folder called 'FTypes' and copy those 'FType.xxx' files there (from the 'Icons' folder), then next time you start ADFS it will also recognize the new file types defined there, and you will be able to select them from the file type popup menu in the Get Info dialog. Duplicates are okay and are ignored. The one supplied with the application, 'FType.Apple', is ignored and you can throw it out, it's just there to show you where to put the other 'FType.xxx' files. You can safely throw out the whole folder if you don't use them at all.
• Now, the sector order as indicated by the file type is only taken as a suggestion. If it says it's DOS order and it's really ProDOS, we'll figure it out, and vice versa. Plus we'll update the finder icon and file type if it's wrong. You're out of luck with CP/M disks and Copy ][+, you better get it right :-). If you really want me to, I could detect them too.
• Wrote the "New Disk..." dialog and the "Sector Order..." dialog. Note that they both include a checkbox for whether to Nibblize the disk. Yes, i'm going to put in support for nibblized disks. To De-Nibblize a disk (!), just select the disk, choose Disk->Sector Order, and un-click "Nibblize".
• File->Move To Trash is now
-[DELETE].
• You can now create new DOS 3.3 and ProDOS 140K disk images, booting or non-booting, and you can decide their sector order. Larger ProDOS volumes, CP/M and Pascal and Nibblized not yet supported.
• Fixed a major bad bug in the DOS 3.3 volume bitmap updater, which may have corrupted your disk images. (you're working on backups right?)
• New feature in the Disk menu: "Zero Unused Areas" will wipe the empty areas of a disk (works for DOS 3.3 and ProDOS currently) (makes disks more compressable)
• added teaser to Disk menu: "Sector Edit..." which does nothing
• the new "Sector Order..." dialog actually works, so ADFS now eclipses the functionality of "ImageConverter".
• Cleaned up the "About..." dialog and the "Get Info" dialog on OS X (now uses nice fonts)


alpha 7: November 25, 2001

• First Carbon version. OS X yeah!
• Now handles INT basic detokenization.
• Numerous bug fixes!! (Was getting lucky with uninitialized variables)


alpha 6: November 19, 2001

• Okay, here's a cool trick. Say you have old HGR graphic files who's creator is 'pdos', which is what happens if you drag it from a ProDOS disk that you mount using the Mac's FST. It still gets an a2pix icon, since ADFS (who's signature is 'pdos') carries an icon for it. But when you d-click on it, it opens ADFS, not a2pix :-(. But the good news is: when ADFS gets a hold of it, it changes the file's creator to 'a2px' and then re-launches it!! So it actually does launch a2pix! And, the next time you d-click on it, it goes straight to a2pix, since it's creator has been updated. Nifty! (be patient, once you d-click the file, and ADFS comes to the front, it somehow takes the finder about a second or 2 to re-launch it, don't know why)
• The Copy progress dialog now has a twirly arrow, letting you hide/show the details of the progress. default is hidden.
• We now create a real prefs file, in the prefs folder, that is user editable (with resorcerer). We now remember the window positions of the Desktop window, the About box, and the Copy progress dialog. We now remember the state of the disclosure twirly arrow in the Copy Progress dialog. We now remember the column widths of the Desktop window, and new windows you open will spawn with the same widths. We also remember whether you have icon or list view, and newly spawned windows will get the same. Other things that make preffy sense will be saved in the future. If you ever get into a state where your windows don't show up? Trash your prefs.
• Now, when dragging the size of the sort columns, the handle no longer jumps out from under your mouse (was especially noticeable if your window's left edge was far from the left edge of the screen).
• we now use a totally new way to type ProDOS files, using the technique outlined in File Type Notes $42, the "File Type Names" files. Note: we don't support additional "FType" files, but really only cuz I don't know 1) if any exist or 2) where to find them. Got some? Send em my way. The one file I am using is called "FType.apple" and is found in the Icons folder on the root folder of the GS/OS that comes with Bernie. (it is stuffed in to the 'ftyp' resource, and is not actually an external file) (note: this has been fixed in a8)
• You can now choose "Get Info" on things, but the "preview" pane doesn't work yet. It works like OS X, in that as you click different file system objects, the one info window updates.
• can now choose a new file type/aux type from the popup. In ProDOS, it'll set the aux type automatically too, for DOS 3.3, you have to type it in, cuz there are no pre-defined aux types. (you can't change the type of a Forked file)
• you can type new codes into the file type and aux type fields. you can only type in hex (0x1234) style, ie you can't type 'BIN'... (press return to commit, esc or
-'.' to cancel)
• Twirly arrows are anti-aliased :-) yeah, they're slow now, I know, i'll fix it. and I know if you try to twirl on a locked disk (the disk image is locked) you get a -54 error, you can ignore it for now)
• Remebers position of info window in prefs file
• fixed: another uninitialized variable just like in A5
• fixed: added 'DOS3' as a recognized file type (Bernie DOS 3.3 disks)
• fixed: you can now d-click a disk icon to open the app (it's creator must be 'pdos') and it will no longer just launch and quit. It'll launch and then mount the disk.


alpha 5: November 10, 2001, 9pm

• Pretty much crashed when you click the menu bar or a command key (like -O). Thanks goes to Roger Johnstone for pointing that out. I was getting lucky with an uninitialized variable.


alpha 4: November 10, 2001, 1pm

• Got rid of the Directory menu, combined it with the View menu, looks more like OS 9
• fixed DOS 3.3: no longer hangs when copying a file onto a disk that has had a file deleted from it. Thanks goes to for Charles Helfenstein pointing that one out.
• fixed DOS 3.3: file types now set correctly when copying to a disk image (used to always have the binary bit set)
• now, when copying an HGR file to the finder, it sets the creator to a2pix so you can just double click it
• HGR files now have nice icons, even in the finder. (Please update your a2pix for new icons)


alpha 3: November 9, 2001

DOS 3.3 stuff

• now reports correct disk "Used" bytes. (counts VTOC bits)
• for files, now reports correct size of files, and correct "Used" (logical) size in bytes. To do this, it finds the "length" header for BAS and BIN files. For TXT files, it counts used sectors, up till the last one, at which point it counts used bytes of the last sector. Note it correctly counts the size of sparse text files.
• Basic and text files now have text document icons (ProDOS too)
• can now drag OUT of a DOS 3.3 disk into the finder (Basic->Text and high->low ASCII)
• fixed the fake copy dialog (opt- Disk->Open...)
• can now drag IN to a DOS 3.3 disk. Works for TEXT and BIN files. Probably works for BASIC files too but where ya goinna get 'em? (since we turn Basic into Text). INT basic no worky.
• can now delete files by selecting and hitting [delete], or choosing Move To Trash. Note: it does NOT move to trash, but deletes immediately.
• can now select a single text file or basic file and choose Edit->Copy. It'll copy the text of that file to the clipboard.
• ProDOS disk icons will now be correct for disks larger than a floppy.
• ProDOS file types will now show up correctly (oops!) (rather than 0xHH hex numbers)
• ProDOS: we now support the standard Bernie floppy disk format

Note: we're lacking a bit with INT basic, for now it does not detokenize


alpha 2: November 6, 2001

• can now copy one file at a time from finder onto ProDOS disk image (with text low-ascii->hi-ascii. sorry, does not tokenize basic)
• now can figure the size of forked files, and knows they are forked too (can not copy them yet)
• new about box in a modeless window (just like a2pix)
• new icon, including OS X huge icon
• file type is now set correctly when dragging from disk image to finder (using guidelines from Technical Note PT515)
• added some GS/OS icons (apps show as apps, and system files show as suitcases)
• file dates now read/set correctly (couldda got garbage before)
• new copy dialog shows progress while copying files back and forth
• sped up copying large files to ProDOS 140k images by about 300% (no longer flushing disk image after each write)
• can now dismount a disk by selecting it and choosing "Put Away" (or press [delete]) (works on multiple selection)
• can now delete files from a ProDOS disk by selecting it and choosing "Move To Trash" (or press [delete]) (works on multiple selection). Note: at present, the file is immediately deleted, not moved to to the trash. Be sure the disk isn't selected too, or it'll be dismounted instead.
• sped up deleting large files from disk based ProDOS (> 140K) images by about 5x (now cacheing the volume bitmap blocks)
• there's a new header item "Used" that is like "Size". Size reports the physical space used (including extents) for files, or reports the media size for disks, and Used reports the logical space used only by the contents for files, or reports the space physically taken up for disks
• sped up copying large files by like a billion percent (no longer open/write/flush/close per block, now only per file)
• copy progress dialog is now moveable modal, but not threaded
• got rid of mercutio menus (they're now using regular system menus)
• got rid of special menu. Paint background red is now under Edit menu.
• if you hold down option and choose "Disk->Open..." you get a test copy dialog
• about box: fixed A2 font plus it now shows version info

Note: ProDOS file types are preserved when you go ProDOS->Mac->ProDOS. However, mac file types are NOT (yet) preserved when you go Mac->ProDOS->Mac, unless it's text.


alpha 1: June 26, 2001

• 68k version.
• Mount and view all disk types and OSs.
• Drag single file at a time out of ProDOS disks to the finder, with translation. (Basic->Text, high->low ascii)
• View by index, or icon. Folders twirl or open their own window.