August 18, 2012

Converting Excel 1.0 Files On OS X (or some other OS)


  1. Download SheepShaver
  2. Download "New World PPC ROM" from redundantrobot.com
  3. Extract the zip. This should produce newworld86.rom. Rename this file to ROM and put it in the same directory as SheepShaver.app
  4. At this point SheepShaver.app should run, showing you a folder with a blinking ? inside it
  5. Download "Mac OS 9 Boot Image (120 megs)", again from redundantrobot.com
  6. Unzip the downloaded file. This should produce OS9.img
  7. Access SheepShaver's Preferences, and add OS9.img to Volumes. Hit Save and restart SheepShaver
  8. SheepShaver should now boot into OS9. Ignore the warning about virtual memory
  9. On the desktop, there should be a Unix drive. This is your Mac's system volume. All your files can be accessed through this.
  10. Download Excel for Mac archive from Macintosh Garden
  11. Unzip, this should produce Microsoft Excel folder, inside you will find 5 versions of Excel
  12. Navigate to this folder OS9, and enter Excel 4.0 Folder
  13. Run Excel, and navigate to your Excel 1.0 files.
  14. Open each file, then save it again using Normal Format which is just Excel 3.0. Probably a good idea to add xls to avoid overwriting the original.
  15. Open the converted Excel 3.0 file in modern Excel. Microsoft Excel for Mac 2011 is capable of opening Excel 3.0 files.
At step 14 you might run into a problem I faced: Excel simply won't see any of the Excel 1.0 files! The problem is that Excel is using extended file attributes to determine which files it can open. On less sophisticated systems this is done via file extensions.

To see this, if you copy COMMANDS file out of Excel 1.03's sample directory (you have to convert the image first using Disk Utility), and run xattr on it, you will see this:

$ xattr COMMANDS 
com.apple.FinderInfo

Content of com.apple.FinderInfo is:

$ xattr -px com.apple.FinderInfo COMMANDS
58 4C 50 47 58 43 45 4C 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

This is the magic you need. Suppose you had a Excel 1.0 file called foo, you add this extended file attribute as follows:

$ xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo COMMANDS)" foo

After doing this foo should show up in Excel inside ShavedSheep.

If all this sounds like too much for you, send me an email at freespace _at_ gmail.com with subject of "Excel 1.0 Conversion".

Update

An alternative to using Sheep Shaver and OS 9 is to use Mini vMac and System 6. This will let you run Excel 1.0.
  1. Download Mini vMac
  2. Download "Mac Classic ROM" from redundantrobot.com. Extracting the zip produces vmac.rom which is incidentally the exact filename Mini vMac expects
  3. Follow these instructions to get System 6.0.8 running
  4. Drag-n-drop the Excel 1.0 program img file (see above) directly into Mini vMac. You will now have access to Excel 1.0
  5. To get a read/writable disk, create a dmg in Disk Utility. Drag-n-drop this into Mini vMac and you will be asked to initalize and format it. Do so, and then drag-n-drop Excel into this new read-writable disk.
  6. Do your conversion, shutdown Mini vMac
  7. Open the dmg, and it should mount, despite having been initalized and formatted by System 6.0.8 -- backward compatibility for the win
Mini vMac is not as powerful as Sheep Shaver, and System 6.0.8 is as much as it can handle. It is however much smaller and easier to use than Sheep Shaver, and for the purpose of converting Excel 1.0 to a more manageable format is more than sufficient.

Note that you might need to do the xattr trick above.

Cheers,
Steve

2 comments:

Nick said...

Yay for Steve! I'm currently working on a Windows native converter (with his help), I'll post this on my blog if/when it gets done :-D

Robert said...

Just ran across this post and have to say many thanks. I just opened a dozen Mac Excel 1.0 files that I thought I'd never be able to get the data out of.