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. |
• 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.
• 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 (!)
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)
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.
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:
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.
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!
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
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.
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!)
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.
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)
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
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)
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?
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
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!
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
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
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!!
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.
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
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 exactly one non-disk selected, it is created in the same folder as the selection
- If you have a disk selected: no go
- If you have more than one item selected: no go
If you have a folder window front most then:
- If you have exactly one non-disk selected, it is created in the same folder as the selection
- If you have more than one item selected: it is created in the folder window
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.
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':
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.
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.
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)
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
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.
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.