Tuesday, February 24, 2009
The SheepShaver Chronicles, Part 10
Blog Entry #137
A newer version of SheepShaver
Per the comment made by "Anonymous" on Part 1 of this series, I have downloaded a more recent version of SheepShaver built by E-Maculation.com moderator Ronald P. Regensburg. The new SheepShaver download package includes, inter alia:
(1-2) Two SheepShaver executables: SheepShaver(H) UB 21-07-2008 and SheepShaver(S) UB 21-07-2008;
(3) A Manual.html manual with relevant screen shots for setting up the new SheepShaver version(s);
(4) A Delete Prefs File application that will clear the current SheepShaver settings (equivalent to executing
$ rm .sheepshaver_prefs(vide infra) with Terminal); and
(5) A keycodes file for non-U.S. keyboard layouts.
The "1. The SheepShaver application" subsection of the Manual.html file addresses the relatively minor difference between the SheepShaver executables, which relates to their differing cursor implementations.
If you have already
(a) downloaded the 'official' SheepShaver application,
(b) set it up with the SheepShaverGUI editor, and
(c) successfully booted it so that the SheepShaverGUI settings take hold,
then either of the new SheepShaver applications can be launched right away; no further configuration is necessary. And having given these applications a test drive, I can report that they feature an all-important improvement vis-à-vis the official SheepShaver application: their Unix disk interfaces do a much better job of recognizing executables and folders that previously didn't show up at all, and also alias files, which were previously seen as generic documents, in the OS X environment. In fact, the new Unix interfaces seem to recognize pretty much everything except for the following subdirectories and files in my root directory: /bin/, /cores/, /Desktop Folder/, /mach_kernel, /mach_kernel.ctfsys, /Network/, /private/, /sbin/, /Trash/, /usr/, and /Volumes/.
Strangely, after installing and running the new SheepShaver applications, the official SheepShaver application no longer shows a Unix disk on its desktop (while still showing it in the Apple System Profiler).
Mounting an external Classic Mac hard disk in the SheepShaver environment
In previous parts of this series I have discussed the creation and use of Disk Utility volumes for bringing materials from the hard disk of my defunct G3 iMac and from floppy disks into the SheepShaver environment. We saw in Blog Entry #134 that SheepShaver will not mount floppy disk volumes directly. On the other hand, I find that the 'partition analysis' that we applied to multisession data CDs in Blog Entry #133 can also be applied to my G3 iMac's hard disk to bring the disk's root volume, Computhrash III, into the SheepShaver environment. (I'm not sure that 'root volume' is the right term for a Classic Mac hard disk volume, but I'm going to use it anyway.)
My G3 iMac's hard disk interfaces with my Intel Mac via the latter's FireWire 400 port; Terminal
$ dfexecution shows the disk to be assigned in the /dev/ directory to disk1 or disk2 or disk3 etc., depending to an extent on whether other volumes are mounted on the OS X desktop - today it happens to be disk1. Terminal
$ diskutil list disk1execution gives:
Recall that for a multisession data CD, SheepShaver can mount the not-mounted-by-default CD volumes via acting on the corresponding session partitions with the type name "Apple_partition_scheme". Analogously, SheepShaver mounts the Computhrash III volume upon adding /dev/disk1 to the SheepShaverGUI Volumes menu.
$ diskutil list disk1 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *37.3 Gi disk1 1: Apple_partition_map 31.5 Ki disk1s1 2: Apple_Driver43 27.0 Ki disk1s2 3: Apple_Driver43 37.0 Ki disk1s3 4: Apple_Driver_ATA 27.0 Ki disk1s4 5: Apple_Driver_ATA 37.0 Ki disk1s5 6: Apple_FWDriver 100.0 Ki disk1s6 7: Apple_Driver_IOKit 256.0 Ki disk1s7 8: Apple_Patches 256.0 Ki disk1s8 9: Apple_HFS Computhrash III 37.3 Gi disk1s9
"SheepShaverGUI?? What about the new SheepShaver builds?" you are of course thinking. Good questions. Let's say that I launch either of the new SheepShaver applications and then choose the SheepShaver menu's Preferences... command, which opens the window below:
Clicking the Setup tab's Add... button drops down a dialog pane with an Aqua GUI interface, not with the Unix-type interface of the SheepShaverGUI Add Volume window; the GUI-hidden root volume directories, including the /dev/ directory, are not visible and thus cannot be accessed in the Add... dialog pane.
However, adding /dev/disk1 to the SheepShaverGUI Volumes menu and then booting the official SheepShaver application will add the line
to the .sheepshaver_prefs preferences file that is created in my OS X home folder as soon as I open either the SheepShaverGUI editor or SheepShaver itself. The official and new SheepShaver applications write to and read the same .sheepshaver_prefs file, and the disk /dev/disk1 line will effectively add /dev/disk1 to the Volumes menu of the Setup tab of the new SheepShaver Preferences... window; consequently, the new SheepShaver applications will now mount the Computhrash III volume.
Equivalently and preferably, the disk /dev/disk1 line can be manually added to the .sheepshaver_prefs file with a text editor* (I prefer nano in this regard; I'm not enough of a Unix geek to use Vim - not yet, anyway), and thus it's not necessary to use the SheepShaverGUI editor to add /dev/ partitions to the new SheepShaver Volumes menu after all, as you might have suspected.
*If desired, the .sheepshaver_prefs file can be visibilized on the OS X desktop (e.g.,
$ mv .sheepshaver_prefs Desktop/visibleSSprefs) and then edited with TextEdit, but you'll have to move the visible file back to your home folder and change its name back to .sheepshaver_prefs if you want SheepShaver to act on it.
Obtaining Classic Mac system software
When I began my 'SheepShaver adventure', I had on hand my G3 iMac's Software Install and Software Restore CDs. But if you don't have any Classic Mac system software lying around, where do you get it?
You may know that Mac OS 7.5.3 with an upgrade to OS 7.5.5 can be downloaded for free directly from Apple - go to the "System Software Downloads" section on this page for the goods. Even more conveniently, E-Maculation.com offers an OS 7.5.5 starterdisk.zip "starter disk" for SheepShaver here. (A tip of the hat to Jonathan Hoyle for bringing this file, which is not linked to on E-Maculation.com's All Downloads page, to my attention.) When unzipped, the starterdisk.zip file gives a Starterdisk.hfv raw disk image that holds an OS 7.5.5 System Folder, SimpleText, and an Aladdin Expander 5.5 installer.
For the purpose of booting, OS 7.5.x - more generally, OSs prior to OS 8.5 - cannot be paired with New World ROM files; you'll need an Old World ROM file for these guys. Redundant Robot can help you out here too - I can confirm that Slack12's mac_oldworld_rom4mb.rom file works with the Starterdisk.hfv disk image.
But perhaps you would prefer to not go so far back in the past - can't say that I blame you. If you want Classic system software in the OS 8.0-9.0.4 range and can't find anyone to cop it from, you're going to have to pay for it. Fortunately, Low End Mac maintains a Best Classic Mac OS Deals page. I see that Beta Macs is currently selling for $20 an OS 9.0 CD, which I'd grab myself if I were starting from scratch.
In any case, whether you are or are not in the market for a Classic Mac OS, I encourage you to sign Steve Godun's petition that calls for Apple to offer OS 8.1 and OS 8.5.1 as free downloads.
New World ROM downloads from Apple
Other people mention these resources (but don't always link to them) so maybe I should too:
(1) The iMac Update 1.1 gives (after decompression) an iMac Update volume containing an iMac Update Tome file that holds Mac OS ROM 1.2.1, which can be extracted by TomeViewer in a Classic environment.
(2) The Mac OS ROM Update 1.0 gives (after decompression) a Mac OS ROM Update volume containing a Mac OS ROM Update Tome file that holds Mac OS ROM 1.6, which can be extracted by TomeViewer in a Classic environment.
Again, these ROM files are pairable with operating systems in the OS 8.5-9.0.4 range.
(As noted above, earlier OSs require an Old World ROM file, whereas later OSs are not compatible with SheepShaver.)
All in all, I'm really glad that I took up SheepShaver. Together with OpenOffice, SheepShaver has enabled me to salvage almost all of the Classic application data files on my G3 iMac's hard disk. Perhaps no less importantly, SheepShaver spurred me to begin learning Unix and introduced me to AirPort. (The Liquid Audio playback is a bit of a bummer, but you can't win them all.)
Tuesday, February 10, 2009
The SheepShaver Chronicles, Part 9
Blog Entry #136
Now that we know how to connect to the Internet in the SheepShaver environment, what about email, huh?
Webmail and Outlook Express
I have Webmail accounts with Google (Gmail), Excite, and EarthLink.
The Software Restore iMac HD.img installation that we carried out in Blog Entry #131 placed Internet Explorer 4.5 and Netscape Communicator 4.61 on the Classic HD disk - they're in the /Internet/Internet Applications/ directory; more recently I have installed iCab 3.0.5 on the Classic HD disk.
In the emulated environment:
• I can access my Gmail account when using Netscape or iCab without incident. When using IE, my Google sign-in is unsuccessful, throwing an error that reads,
The identity certificate uses an unknown signature algorithm.
• None of the browsers is at all compatible with Excite Email, which has been a notoriously difficult service since its "upgrade" last year.
• As for accessing my EarthLink account, none of the browsers is completely satisfactory. iCab does the best job but, even with an AirPort connection, has trouble loading messages that contain images. Netscape hangs (no errors are thrown) when trying to load http://my.earthlink.net/. IE has major problems rendering my "myEarthLink" pages but I can still get to my Webmail account with it; however, 100-150 pixels' worth of message content runs past the right edge of the browser window (regardless of the window's size) in most cases and a horizontal scrollbar is not provided.
I prefer the use of email clients to Webmail services because I like to be able to read and work with email messages when I am offline. The iMac HD.img installation also placed Outlook Express 4.5 on the Classic HD disk, again in the /Internet/Internet Applications/ directory. Setting up Outlook Express is not as trivial as is setting up OS X's Mail but it's still pretty simple, only taking a minute or so if you have at the ready the necessary information: the Account name/Email address, the Account ID (i.e., your ISP username), the POP server for receiving mail (e.g., pop.earthlink.net), the SMTP server for sending mail (e.g., smtpauth.earthlink.net), etc.
At least on my computer, Outlook Express 4.5 in the emulated environment only displays the textual parts of email messages - all images are stripped out (maybe this happens in a non-emulation environment as well, can't remember).
Netscape Communicator's Messenger also qualifies as an email client, but in order to access Messenger's messages offline it is first necessary to choke off a Netscape attempt to connect to the Internet, and thus I find Messenger a bit of a nuisance to use.
Rescuing Outlook Express email messages
When my G3 iMac died last September, its Outlook Express 5.0.6 program held about 30 messages in various folders: "Inbox", "Sent Items", etc. Now, my life would have gone on had I lost those messages, but SheepShaver has enabled me to rescue them all, as follows:
(1) I first bring the G3 iMac Outlook Express 5.0.6 folder into the SheepShaver environment and copy it to the Classic HD disk. (Outlook Express 4.5 will in fact read text-only Outlook Express 5.0.6 messages but, as noted above, is not suitable for messages with images.)
(2) Outlook Express 5.0.6 respectively stores its incoming and outgoing messages in Messages and Database files that are located in the root volume's
/Documents/Microsoft User Data/Identities/Main Identity/
directory. (You can verify this by 'reading' these files with TextEdit or with Terminal via the cat command.) Accordingly:
(a) I create a new Documents folder on the Classic HD disk.
(b) I bring the G3 iMac Microsoft User Data folder into the SheepShaver environment and place it in the Classic HD Documents folder. (The G3 iMac Documents folder contains a bunch of other stuff in addition to the Microsoft User Data folder that I didn't want to bring along.)
I launch Outlook Express 5.0.6: after about 25 system components are installed...ta-da! - all of my old messages are waiting for me. And Outlook Express 5.0.6 displays these messages in the emulated environment very nicely. To see message images requires connection to the Web, but we've solved that problem.
Besides the Messages/Database messages, I have on my G3 iMac's hard disk a small collection of Outlook Express email messages that I had saved as separate files for one reason or another; for example, I saved in the EarthLink TotalAccessTM folder a "See what we've added to EarthLink Toolbar -- and it's FREE!" message. (EarthLink has been shamefully slack vis-à-vis porting its security software to the Mac platform, but that's another topic for another time.) If I bring these files into the SheepShaver environment and then drag/drop them into the Outlook Express 5.0.6 "Inbox" folder, I can open and read them too.
BTW, you can still download Outlook Express 5.0.6 directly from Microsoft here.
We'll wrap up our SheepShaver series with some concluding remarks and by tidying up a few loose ends in the following entry.
Monday, February 02, 2009
The SheepShaver Chronicles, Part 8
Blog Entry #135
SheepShaver and the Internet
Connecting to the Internet in the SheepShaver environment was admittedly not one of my original SheepShaver goals. "Why bother, when the SheepShaver Internet experience is guaranteed to be vastly inferior to what you have with your Intel Mac?" you might legitimately ask. OK, then: let's just say that I decided to see if I could patch in to the Web in the SheepShaver environment because...because it is there, that's why. Sir Edmund Hillary would have understood.
If you access the Internet via an Ethernet DSL connection, then setting up a connection to the Internet in the SheepShaver environment is straightforward:
(1) In the SheepShaverGUI Serial/Network tab, set the "Ethernet Interface" field to slirp.
(2) In the emulated environment, set the TCP/IP control panel's "Connect via" menu to Ethernet built-in (or just Ethernet, depending on the OS) and its "Configure" menu to Using DHCP Server.
That's it! You can now in the emulated environment open a browser and (attempt to) start surfing.
But I don't access the Internet via an Ethernet DSL connection: I'm a dinosaur with an EarthLink dial-up account. And my Apple USB Modem
requires...Mac OS X v10.4.3 or later- pretty far removed from the OS 8.6 of my SheepShaver environment. I should be sunk, right? Not at all, friends and neighbors. Read on...
Connecting via PPP
According to Gwenolé Beauchesne's SheepShaver portal,
SheepShaver supports Internet and LAN networking via Ethernet and PPP with all Open Transport compatible MacOS applications.The Setting Up SheepShaver page of the portal's Help Center contains a relevant Linux ⇒ Serial/Network section that in part reads,
You can select to which devices the MacOS modem and printer ports are redirected. You can assign them to any serial ports you have (/dev/ttyS*), or even to parallel ports (/dev/lp*).
Time to go trawling through the Leopard Unix /dev/ directory; therein I see seventeen ttys* files (but no ttyS* files - Darwin evidently lowercases the S) and no lp* files. Per this screen shot, I open SheepShaverGUI and type /dev/ttys0 into the Serial/Network tab's "Modem Port" field. Upon clicking the Start button, SheepShaver stalls and does not boot.
My /dev/ directory contains 116 other tty* (terminal) files, including a tty.usbmodem file - might this file be more appropriate? Nope - a /dev/tty.usbmodem modem port setting again causes the SheepShaver boot to hang.
When I am online, Terminal ps -a execution shows that the "controlling terminal" for my modem connection process is cu.usbmodem, which also has a corresponding file in the /dev/ directory:
SheepShaver boots uneventfully with a /dev/cu.usbmodem modem port setting. We're on our way!
$ ps -ac PID TTY TIME CMD 1736 cu.usbmodem 0:00.03 pppd 1748 ttys000 0:00.01 login 1749 ttys000 0:00.01 -bash 1758 ttys000 0:00.00 ps $ ls -l /dev/cu.usbmodem crw-r--r-- 1 root wheel 9, 1 Feb 4 15:39 /dev/cu.usbmodem
In the name of completeness, I should mention at this point that an initial attempt to "retrieve" my EarthLink account via EarthLink's Registration & Utilities 2.1.3 program, which is present in the Classic HD disk's /Internet/Internet Applications/EarthLink TotalAccessTM/ directory, was unsuccessful.
Our next task is to configure the following system control panels in the emulated environment:
(1) Remote Access
(1) I respectively populate the Remote Access control panel's "Name", "Password", and "Number" fields with the values of the "Account Name", "Password", and "Telephone Number" fields in the External Modem subpane of the OS X System Preferences Network pane.
(2) (a) I set the TCP/IP control panel's "Connect via" menu to PPP and its "Configure" menu to Using PPP Server.
(b) While online* in the OS X environment, I obtain name server addresses for the TCP/IP control panel from the DNS tab of the External Modem subpane of the System Preferences Network pane, which is accessed by clicking the subpane's Advanced... button. (*The DNS tab's "DNS Servers" field is blank when I am offline.)
(3) My Apple USB Modem is a v.92 modem and its operation is presumably directed by the Apple External 56K Modem (v.92) script located at:
/Library/Modem Scripts/Apple External 56K Modem (v.92)
the Modem Scripts folder also contains an Apple Internal 56K Modem (v.92) script and an Apple Modems.ccl/Contents/Resources/Apple Modem (v.92) script; a Terminal diff3 comparison shows the three scripts to be identical. These same script files can also be found in the /System/Library/Modem Scripts/ directory. According to the "File-System Domains" article in the Apple Developer Connection's "Introduction to the File System Overview" document, OS X reaches for the local-domain /Library/ script file (whichever one it is) before it would reach for the system-domain /System/Library/ script file.
I bring the Apple External 56K Modem (v.92) file into the SheepShaver environment and plant it in OS 8.6's /System Folder/Extensions/Modem Scripts/ directory. Unfortunately, OS 8.6 does not see the v.92 file as a modem script but as a generic document, and thus the file is not added to the Modem control panel's "Modem" menu. Even if the v.92 file had been recognized as a modem script, however, it's not clear that OS 8.6 would know what to do with it. My G3 iMac was equipped with a v.90 internal 56K modem, so I run a Terminal diff comparison between the OS 8.6 and Leopard versions of the Apple Internal 56K Modem (v.90) script: there's a vast difference between the two.
Figuring that I have nothing to lose, I decide to see if any of OS 8.6's '56K' modem scripts will work with my modern-day modem. To my utter surprise, no fewer than five of these scripts allow me to connect to the Internet in the emulated environment:
• 3Com Impact ISDN 56K
• 3Com Impact ISDN 56K MLPPP
• Farallon Netopia 56K
• Farallon Netopia 56K MLPPP
• Supra 336v+/336e/56e
Noteworthily, OS 8.6's Apple 56K modem scripts - Apple Internal 56K Modem (v.34), Apple Internal 56K Modem (v.90), and Apple/GV 56k - do not work with my modem; upon clicking the Remote Access Connect button, these scripts (and most of the other OS 8.6 56K modem scripts) throw the following error:
Neither the System Preferences Network pane nor Terminal in the OS X environment registers my SheepShaver Internet connection, but when I pick up my phone receiver, there's no question that, yes, I am connected.
Connecting via AirPort
My Intel Mac's AirPort Extreme card also allows me to connect to the Internet in the SheepShaver environment. After I turn AirPort on in the System Preferences Network pane and then connect to a network, the SheepShaver connection setup is the same as that described for an Ethernet DSL connection at the outset of the post (set the SheepShaverGUI "Ethernet Interface" to slirp, etc.). At least on my computer, the order of operations here is important: connection in the emulated environment is unsuccessful if I first launch SheepShaver and then establish my AirPort connection.
The AirPort bit rate is considerably higher than that of an analog modem, and therefore AirPort connectivity is clearly the way to go for a dial-up user such as myself.
Now, if for some perverse reason you really do want to surf the Web in the SheepShaver environment, which browser should you use? Low End Mac's Tommy Thomas addresses this question in another context in his "Making the Case for a Truly Modern, Up-to-date Browser for Mac OS 9" article. With some reservations, Tommy has good things to say about the use of the iCab and Mozilla browsers in the Classic environment. In lieu of making any recommendations myself, I will add that my own benchmark for assessing whether a given browser is up to scratch is how well it handles the Christian Science Monitor's home page - I can confirm that both IE 5.1.6 and Netscape 7.02 have 'immense difficulties' with this page, and iCab 3.0.5 also has some trouble with it - if you can find a Classic-era browser that flawlessly renders http://www.csmonitor.com/, then you've definitely got a winner on your hands.
In the next post, I'll continue the SheepShaver/Internet theme with a look at how I used SheepShaver to 'rescue' Outlook Express email messages that I thought were gone for good.