Friday, May 29, 2020

How I Set Up a Home AppleTalk Network in 2020

The Introduction

I made additional changes to my home Network to reduce Ethernet cables and allow more flexible computer locations in July.  See this blog post for further information.

I recently had reason to set up a local area network in my home using AppleTalk to connect an Apple IIGS to a Power Macintosh 5400/120 (PM5400). I decided to also network the PM5400 to a G3 B&W Macintosh. None of the three computers involved had built-in Wifi, but two of them - the two Macintoshes - have built-in Ethernet ports, and two of them - the Apple IIGS and PM5400 - have built-in serial ports that can be used for networking.  All of them are running operating systems that support AppleTalk.  None of them needed to be connected to the internet. It had been over 15 years since I last used AppleTalk so I had some relearning to do. This blog post documents what I learned getting this vintage network set up.

Note that this solution does not use an AppleShare server, and instead utilized the Personal File Sharing capabilities released with Mac OS 7. This particular solution will not allow you to remote boot your IIGS from an AppleShare server, although I understand that that can be done with the commercial product AppleShare v3 installed on the Mac (the remote boot functionality was removed in AppleShare v4.)

The Computers and Goals

Apple IIGS ROM 01 running GS/OS 6.0.1. The IIGS has built-in support for AppleTalk and the network can be connected to one of two serial ports - the modem port and the printer port. The ROM 01 IIGS has some differences from the later ROM 03 IIGS when it comes to AppleTalk. Ideally I wanted to be able to transfer files to the IIGS over the AppleTalk network from folders on the PM5400. Alternative mediums for transferring files are the 3.5" 800K DS/DD drive, the 5.25" 140K floppy drive, a USB stick attached to a BOOTi device, and an SD card attached to a FloppyEmu device. Of these the only medium in common with the PM5400 is the 3.5" 800K DS/DD floppy drive. GS/OS includes an HFS File System Translator (FST) so that Macintosh formatted HFS disks can be used.

Power Macintosh 5400/120 (PM5400) capable of running both Mac OS 7.6.1 and Mac OS 9.1. The PM5400 has an internal CD-ROM drive and an internal Apple 3.5" drive capable of reading/writing both DS/HD 1.44 MB and DS/DD 800K disks. It also has a SCSI port with attached Iomega 100 MB Zip drive. (Note, everything discussed could be done using System 7, 8, or 9 on the PM5400. There is one exception and that is that running Mac OS 9 will make it slightly easier to transfer files from the internet later.)

G3 B&W Macintosh running Mac OS 9.2. The G3 has an Ethernet port but no serial port. It has USB ports and a DVD drive capable of burning CD's, can read and write DS/HD 1.44 MB disks, and can use an Iomega Zip drive. The G3 is also able to dual boot into MacOS X 10.4 "Tiger" which is significant only when it comes to transferring files from the internet later.

The vintage network is not going to be connected to the internet. Getting software from the internet distributed to the computers on my vintage network using nothing but net is discussed in a later section.

The Macintosh ProDOS File System extension is installed on both the PM5400 and G3 so that Apple II ProDOS formatted disks can be used, but it is not required for the networking to work.

  IIGSPM 5400 G3 B&W 
 USB thumb drive Y (via BOOTi card)  Y
 SD card Y (via FloppyEmu)  Y (via USB adapter)
 Zip 100MB (SCSI)  Y Y
 Zip 250MB (USB)   Y
 CD drive  Y Y
 3.5" DS/DD 800K Y Y 
 3.5" DS/HD 1.44MB  Y Y (via USB)
 5.25" 140K floppy Y  
 Ethernet port  Y Y
 Serial port Y Y 

While each computer has several means of loading files onto it using physical media, a network makes file transfers very simple and removes the need to find common media.

In addition I wanted to be able to play the game HyperBattleship! using the two Macintoshes. This is a free game Claris Corporation released with Mac OS System 7 as a demonstration of Apple Events. While this game as originally released was not fully compatible with Mac OS 9, I subsequently released a modified version of it that can be used with Mac OS 9. (More on HyperBattleship later.)

Equipment and Software Required

To connect the Apple IIGS and PM5400 serial ports I used 2 Farallon PhoneNet Plus adapters, (Farallon manual here) a length of modular phone extension cable with RJ11 plugs, and 2 PhoneNet RJ11 terminating resistors. The photo below shows a Farallon PhoneNet Plus with a terminating resistor in one of its RJ11 sockets. The rule to remember with PhoneNet Plus adapters is that each socket must be filled by either a terminating resistor or a wire to another PhoneNet Plus adapter. (See the Q&A section at the end for more on terminating resistors.)


Important to note is that in the 1980's standard practice (in the US anyway) was to use phone lines with 4 wires = green, red, yellow, and black. A phone device requires only two of the four wires and typically residential phones only use the green and red pair. The Farallon PhoneNet Plus adapters utilize the typically unused black and yellow pair, which provides the added bonus that AppleTalk networks can be run through your existing home phone wiring (caveat - some homes may have been wired in a way that is incompatible with AppleTalk, so take care using existing phone jacks). However, if you purchase a length of phone cable today for use with the PhoneNet adapters you need to make sure that it has all 4 wires, because current practice is to save copper by only including the green-red pair.

To connect the PM5400 to the G3 B&W I connected each to an Ethernet hub (actually an Apple Airport Extreme Base Station, but any Ethernet hub should do) with standard Ethernet cables. Theoretically connecting the computers directly with either one Ethernet cable or one Ethernet cross-over cable should have worked, but I was unable to get it working without the hub. Using a hub also allows for connecting others computers via Ethernet to the vintage network.

No software needed to be purchased and all software utilized were developed and released by Apple for free use. The IIGS runs the GS/OS 6.0.1 operating system with the HFS FST installed and the AppleShare services installed off of the GS/OS 6.0.1 Installer disk. The Macs have standard installations of MacOS 7 and 9. The only additional extension required is the unsupported Macintosh LocalTalk Bridge control panel which is installed only on the PM5400 as it is responsible for bridging Ethernet and AppleTalk. The LocalTalk Bridge control panel requires a 68020 processor or faster, System 7 - 9, and a Mac with both an Ethernet port and a serial port. GS/OS can be downloaded from here and the LocalTalk Bridge control panel can be found here.

If you also use ProDOS disks to transfer files to your Macintosh, as I have at times, then you should consider downloading the ProDOS File System extension from here, though it is not needed for the networking. This Macintosh extension works on System 7 - 9, and allows ProDOS formatted DS/DD 800k disks to be used with your Mac's 800K or 1.4 MB floppy drive.

The Network Topography

While ideally there would be one AppleTalk network, that wasn't possible due to the lack of a common port to utilize across all three machines. So there are two AppleTalk networks bridged by the LocalTalk Bridge control panel installed on the PM5400. This bridging allows the IIGS to mount folders on both the PM5400 and the G3 at the same time.

1. Apple IIGS connected via Farallon PhoneNet Plus adapters to PowerMac 5400 using the serial printer ports.

2. PowerMac 5400 connected to an Ethernet hub (Airport Extreme) via the Ethernet port and the G3 B&W connected to the same Ethernet hub from its Ethernet port.

Network diagram
Network diagram


Configuring the IIGS

Plug a Farallon PhoneNet adapter into the printer port. Fill one RJ11 port on the adapter with a terminating resistor. In the other port plug in one length of modular 4-wire phone cable. The other end of the cable should be plugged into a second Farallon PhoneNet Adapter that is plugged into the printer port on the PM5400. That PhoneNet Adapter should also have a terminating resistor plugged into its second RJ11 port.

The IIGS is running System 6.0.1, which is the final official Apple IIGS system software release. At the time of this writing the last unofficial (ie. community) release is 6.0.4 which includes some changes that affect AppleTalk, but nothing that should create issues if I should upgrade to 6.0.4 in the future.

From the GS/OS Installer disk run the AppleShare installation script.  This will install a number of CDevs, Inits, NDAs, and FSTs that are required for the IIGS to access Macs over AppleTalk.

When you reboot after the installation completes you will be asked for the network name of the computer. If you wish you can leave it blank and set it later in the AppleTalk CDev.

In the Control Panel (CDA or NDA) set Slot 7 to Built-in AppleTalk

On a ROM 03 IIGS you do not need to make any additional slot changes for AppleTalk, but on a ROM 01 IIGS you have to set slot 1 to My Card if you are going to use the printer port for AppleTalk, or set slot 2 to My Card if you are going to use the modem port for AppleTalk. I chose to use the printer port and so set Slot 1 to My Card (this is required even though there is no physical card in slot 1).



Configuring the Macintoshes

On the PM5400 plug a Farallon PhoneNet adapter into the printer port. Fill one RJ11 port on the adapter with a terminating resistor. In the other port plug in one length of modular 4-wire phone cable. The other end of the cable should be plugged into a second Farallon PhoneNet Adapter that is plugged into the printer port on the IIGS. That PhoneNet Adapter should also have a terminating resistor plugged into its second RJ11 port. (See the Q&A section for more about the use of terminating resistors.)

On both the PM5400 and the G3 plug an Ethernet cable into the Ethernet port and the other end into a powered Ethernet hub.

Install the LocalTalk Bridge control panel into the System Folder:Extensions folder. It will automatically turn on the next time the operating system is booted.

In the AppleTalk control panel set the Connection to Ethernet. (Incidentally, if all I wanted to do was connect my IIGS to the PM5400 without the G3 being in the mix then I would not use the LocalTalk Bridge control panel and would set the AppleTalk control panel to Printer because the PhoneNet Plus adapter is plugged into the Printer serial port.)



Create the folder that you want to share with the IIGS.

For System 7:

(Note: I decided to use individual accounts for access, but you can also turn on the Guest functionality if you do not want to create accounts)

To allow connections from the Apple IIGS:

- In the Users & Groups control panel create the new IIGS user using File > New User. This user name should match what you intend to use as the computer name on the IIGS.
- Double-click the new user and check the "Allow user to connect" checkbox. Passwords are optional. On a private home network passwords for AppleTalk are not necessary.

To allow connections from the G3 B&W:

- In the Users & Groups control panel and create the new G3 user using File > New User. This user name should match what you intend to use as the computer name on the G3.
- Double-click the new user and check the "Allow user to connect" checkbox. Passwords are optional. On a private home network passwords for AppleTalk are not necessary. Because I will be playing HyperBattleship! with this user, I also checked the "Allow user to link to programs on this Macintosh".


Reboot the computer.

With the AppleTalk control panel or from the control strip turn on AppleTalk.

Open the Sharing Setup control panel and set an owner name and Macintosh name. Macintosh name is what will be displayed on the IIGS when you try to connect to a Mac folder.  Turn on File Sharing. In my case, because I wanted to play HyperBattleship! I also turned on Program Linking which it needs.

In Finder select the folder that you created for sharing and go to File > Sharing...  Check the "Share this item and its contents" checkbox. Check all of the permissions for any user who will be accessing it or more simply just use everyone. When you close the dialog, when asked click the Save button to save permissions. The folder icon should change to indicate that it is now being shared.

For System 9 (both the PM5400 and the G3):

(Note: I decided to use individual accounts for access, but you can also turn on the Guest functionality if you do not want to create accounts)
In the File Sharing control panel Start/Stop tab set the Owner name, password, and computer name. Check "Enable File Sharing clients to connect over TCP/IP" and start File Sharing. Because I need Program Linking to play HyperBattleship! I also checked the "Enable Program Linking clients to connect over TCP/IP" and started Program Linking.

To allow connections from the Apple IIGS:

- In the File Sharing control panel Users & Groups tab create the new IIGS user by clicking "New User". Under Identity set the user name to match what you intend to use as the computer name on the IIGS. Passwords are optional. On a private home network passwords for AppleTalk are not necessary. Under Sharing check "Allow user to connect to this computer".

To allow connections from the other Macintosh:

On the PM5400:
- In the File Sharing control panel Users & Groups tab create the new G3 user by clicking "New User". Under Identity set the user name to match what you intend to use as the computer name on the G3. Passwords are optional. On a private home network passwords for AppleTalk are not necessary. Under Sharing check "Allow user to connect to this computer". Because I will be playing HyperBattleship! with this user, I also checked the "Allow user to link to programs on this Macintosh".

On the G3:
- In the File Sharing control panel Users & Groups tab create the new PM5400 user by clicking "New User". Under Identity set the user name to match what you intend to use as the computer name on the PM5400. Passwords are optional. On a private home network passwords for AppleTalk are not necessary. Under Sharing check "Allow user to connect to this computer". Because I will be playing HyperBattleship! with this user, I also checked the "Allow user to link to programs on this Macintosh".


Reboot the computer.

With the AppleTalk control panel or from the control strip turn on AppleTalk.

Open the Sharing Setup control panel and set an owner name and Macintosh name. Macintosh name is what will be displayed on the IIGS when you try to connect to a Mac folder.  Turn on File Sharing. In my case, because I wanted to play HyperBattleship! I also turned on Program Linking which it needs.

In Finder select the folder that you created for sharing and go to File > Sharing...  Check the "Share this item and its contents" checkbox. Check all of the permissions for any user who will be accessing it or more simply just use everyone. When you close the dialog, when asked click the Save button to save permissions. The folder icon should change to indicate that it is now being shared.

Verifying the New AppleTalk Network is Set Up Correctly

On the IIGS open the AppleShare Control Panel and under "Select a file server" you should see the names of the two Macintosh computers. If you do not then make sure that AppleTalk is on on the computers and Ethernet is selected and make sure the Ethernet hub is turned on. Also, if you have an accelerator card like the ZipGS or Transwarp GS in your IIGS, verify that they are configured to be compatible with AppleTalk.



Select one and click OK to initiate the AppleTalk connection. If the user is set up correctly you will be asked what items you want and should see the name of the shared folder you created.  If you do not, then verify that the shared folders permissions are set to allow read/write permissions from the IIGS, and that File Sharing is turned on.



If you select the shared folder and click OK it should be mounted on your desktop. You can simplify the steps of mounting the shared folder by creating an alias to the mounted folder.  Just select the mounted folder icon on the desktop and either type Apple-M or select Make Alias... from the Finder's Extras menu. Once the alias is created just double-clicking on it will mount the folder. (The Easy Mount init adds this ability to the Finder Extras menu and is one of the files installed when you install AppleShare from the System 6.0.1 Installer disk.)


On either Mac open the Chooser from the Apple menu and click the AppleShare icon. Under "Select a file server" you should see the name of the other Macintosh.  If you do not then make sure that AppleTalk is on on the computers and Ethernet is selected and make sure the Ethernet hub is turned on.


Select the computer in the list and click OK to initiate the AppleTalk connection.  If the user is set up correctly you will be able to select the shared folder to mount and it should then mount on your desktop. You can simplify the steps of mounting the shared folder by creating an alias to the mounted folder.  Just select the mounted folder icon on the desktop and either type ⌘-M or select Make Alias from the File menu. Once the alias is created just double-clicking on it will mount the folder.

HyperBattleship! for Mac OS 9

HyperBattleship! v2.1 was freely released by Claris Corporation when Apple released Mac OS System 7. It is a Macintosh HyperCard implementation of the Milton Bradley tabletop two-player game Battleship. The stack demonstrates the Apple Event capabilities introduced in System 7 and allows the opponents to play on separate computers on the AppleTalk network. The original version can be found on archive.org here.

HyperBattleship! for OS9 is HyperBattleship! v2.1 with the addition of a single background button needed to allow Mac OS9 machines to properly play the game. I released this in March 2002. It is fully compatible with Mac OS 7 and 8.


The OS9 incompatibility with HyperBattleship! v2.1 is evident when a machine running OS9 is contacted from another machine in order to initiate a game. What appears to be a HyperCard bug (observed in HyperCard 2.2 through 2.4) prevents the send command issued by the OS9 machine from prompting the login dialog.  Without the login dialog any communications initiated by the OS9 will fail because the OS9 machine is not properly linked to the other machine and therefore the game cannot be played.

The solution takes advantage of an oddity that the identical send command issued from the message box rather than from within the script will properly initiate the login dialog. So a background button added to the game card allows the forcing of a link from the OS9 machine to the opponent machine by populating the message box with the appropriate command.  After the link is forced communications from the OS9 machine will work properly.  Note that the machine that first initiates contact does not need to force a link, even if it is running OS9, only an OS9 machine that has been requested to play needs to force a link before later responding affirmatively to a second request. Also, in order to send a message from the msg box the HyperCard userlevel must be set to 5, which is normally not the case with HyperCard Player. I recommend using HyperCard 2.4 is using OS 9.

So if you are running OS9 when you are contacted to play a game you should first respond negatively.  Then use the force link button to connect to the requestor's machine.  Then notify the requestor to repeat the proposal to play and this time answer affirmatively to proceed normally.

To download HyperBattleship! for OS9,  go to my blog here and then go to All Macintosh Software

Connecting to the Internet

While there are undoubtedly ways to connect the vintage AppleTalk network, I prefer to keep the vintage network off of the internet for the most part. There is still the need to be able to download software from the internet and ideally using only the network deliver the software to the G3, PM 5400, and IIGS when desired. Doing so requires temporarily connecting a more modern computer that is on my primary network to the vintage computer network.
Network diagram

To facilitate downloading programs for use on the IIGS, PM5400, and G3, there is a 2010 Mac Mini running MacOS X 10.13.6 "High Sierra" that is connected to my primary network via WiFi and is also connected to the new vintage network hub by Ethernet cable. Internet sourced content can then be delivered to the IIGS in three simple steps using nothing but net.

1. Mac Mini to G3 MacOS X 10.4 using Ethernet through the hub
2. G3 MacOS X 10.4 to PM5400 Mac OS 9 using Ethernet through the hub (this requires Mac OS 9 on the target computer.) (Note: 10.4 can do this over AppleTalk, but I am not certain about later versions.)
3. PM5400 Mac OS 9 to IIGS using AppleTalk

An alternative path not dependent on Mac OS 9 on the bridge PM5400 would be:
1. Mac Mini to G3 MacOS X 10.4 using Ethernet through the hub.
2. Reboot G3 to Mac OS 9.
3. G3 Mac OS 9 to PM5400 (Mac OS 7, 8, or 9) via AppleTalk
4. PM5400 (Mac OS 7, 8, or 9) to IIGS using AppleTalk

Transferring files from the Mac Mini to the G3

The Mac Mini is configured with MacOS X 10.13.6 "High Sierra". Newer versions of MacOS X may also work.

The Mac Mini is connected to my primary network via WiFi and is connected to the vintage network with an Ethernet cable from its Ethernet port to the same Ethernet hub being used for the G3 and PM5400.

While MacOS X 10.13 is not able to connect directly to Mac OS 9, it can connect directly to the G3 running MacOS X 10.4.

On the G3 in MacOS X 10.4 I have the following configured:
- In the Network preference pane, in the AppleTalk tab, "Make AppleTalk Active" is checked
- In the Sharing preference pane the computer name is set to "G3" and Personal File Sharing is turned on.

To transfer a file from the Mac Mini to the G3 I use the following steps:
1. Browse the Network using the Go > Network menu item
2. Click on G3 and connect as guest. This allows files to be dropped into the public Drop Box on my G3 user account.
3. Drag any files to transfer to the Drop Box folder.

(Configuration note: Because the Mac Mini is connected to both my primary network via WiFi and the vintage network via Ethernet, the WiFi connection is set in the Network Preference Pane to be used first and the Ethernet second. When in the reverse order access to the internet becomes non-functional.)

On the G3 the files will appear in the user Public/Drop Box folder.

Transferring files from the G3 running MacOS X 10.4 to the PM5400

1. Connect the G3 to the PM5400 running Mac OS 9 from the Go > Network menu item

2. Connect using the "G3" user name that has permissions on the PM5400

3. Select the shared folder on the PM5400 to be mounted

4. Once mounted the PM5400 folder will appear in the sidebar and the files can be copied from the Drop Box folder into it.

Questions

Q: Will this work with System 6 or earlier Macs?
A: No. Personal File Sharing was not added until System 7 of Mac OS.

Q: Will this work with an OS X (mac OS) computer?
A: An OS X computer that supports AppleTalk could be connected to the Ethernet hub (by Ethernet cable or WiFi) and it should work. However I have read that Apple dropped AppleTalk support in Mac OS X versions later than 10.2.8. Also the Mac OS X computer cannot run the LocalTalk Bridge control panel so it cannot serve as the AppleTalk/Ethernet bridge.

Q: Are the Farallon PhoneNet Plus Terminating Resistors really necessary?
A: The Farallon PhoneNet Plus manual says they are.  I am not an electrician and do not know if you risk harm done to the PhoneNet Plus adapters or the computers if you use the network without them.  The PhoneNet manual troubleshooting section implies that missing terminators can cause performance problems on the network.  My limited testing with just two computers connected to each other did not show any problems.

Q: How fast is an AppleTalk network for file transfers?
A: An AppleTalk network runs at 230.4 kps, which is pretty speedy for 1990 at an ideal 1 MB/minute. Copying files from my IIGS to the PM5400 typically performs at 2 minutes or less per MB.

Q: Why? Just why?
A: Because physical devices like 30 year old floppy drives will fail and without alternatives you may be unable to move files to and from your old computers, essentially freezing them in time.

Q: Is there any other way to accomplish this?
A: Probably.  There is an Ethernet card for the IIGS being sold currently (Uthernet II) and perhaps it would allow me to connect my IIGS to an Ethernet hub and eliminate the need for the Farallon PhoneNet Plus adapters and PM5400 to act like a bridge. There are also new ways to move files to a IIGS by using devices such as the FloppyEmu and BOOTi card which use SD and USB thumb drives, respectively.

Q: Will this work using emulators like Sheepshaver and KEGS?
A: I haven't tried using AppleTalk on emulators, though it would be an interesting thing to experiment with. From what I have read online additional 3rd party software may be required. I doubt I will pursue this myself.

Q: Why do your Mac dialog boxes look so cool?
A: On Mac OS 7-9 I use Kaleidoscope (available on Macintosh Garden here) along with my own "Corwin of Amber" scheme inspired by Roger Zelazny's Amber novels. The "Corwin of Amber" scheme is available on my blog under All Macintosh Software. Click here and go to All Macintosh Software.

Q: Where can I get the version of HyperBattleship! that works on OS9
A: Click here and go to All Macintosh Software
 

Sunday, May 10, 2020

"Copland" Inspired Apple IIGS Icons 2020

Having recently joined a few different vintage computing groups on Facebook, I found myself inspired to unbox my Apple IIGS and do some creative work with its Finder icons.  Creating icons for GS/OS is something I began doing in the mid-1990's. I created replacement icons for the Finder trashcan that were inspired by the Marvel superhero Ghost Rider and also created an entire set of replacement icons in a 3D style based on a picture spread in an Apple II magazine purporting to be of the upcoming release of the "Copland" version of the Mac OS 8 operating system. I thought it would be fitting if IIGS desktops had that look before Copland actually debuted (ironically Copland was abandoned and replaced by Rhapsody).

Here are some images from a July 1995 issue of MacUser showing some of Copland's 3-D icons:


Here is what an IIGS desktop using my icons looks like:

A display of a IIGS desktop using my Copland inspired icons

My 2020 additions include an "Apple II Forever" banner replacing the icons of Start.GS.OS and GS.OS, new icons for Finder, default device drivers, and a 3.5 drive icon. By coincidence I was on a video call the very day I completed these icons and Apple founder Steve Wozniak unexpectedly participated in the call. I used an image of my GS/OS desktop as my backdrop and can only hope that he saw them. (The two day conference sessions were recorded and will be posted at http://wwnc.online/presentations.html.)

In the IIGS section of my public Google Drive space I have a 2mg disk image of the 2020 icons that can be mounted on a IIGS emulator. There are also downloadable IIGS hard drive disk images with GS/OS 6.0.1 and my icons already installed.

Here are some pictures of the icons:




My Finder related icons with magnifying glasses, Apple II Forever, BASIC.LAUNCHER, and Finder icon inspired by the Apple standard icon.

My 1995 Copland inspired icons for many GS/OS folders


My Copland inspired icons for some common IIGS folders

Less common folders in the Copland inspired theme

My AppleDisk5.25, active/inactive SCSI, and AppleDisk3.5 driver icons

My trash can and disk drive icons installed in the Finder.Icns file

Many standard filetype icons with inactive versions

Copland inspired versions of folders typically found when attached to a Mac OS 8 fileserver

The desktop from my downloadable generic IIGS hard drive images

 

Saturday, May 2, 2020

How to Use Apple's iCloud Drive service for Cold Storage

What iCloud Drive Is and What It Is Not


Apple’s iCloud Drive service is designed to allow syncing of content from one or more devices - iOS, Mac, and Windows - to Apple owned storage over the internet and facilitate sharing of that content between devices with approved Apple IDs.  Applications such as Apple’s Notes, which exists on iOS devices and is included with MacOS (formerly called Mac OSX) work well with iCloud, allowing authoring and editing of the same notes across devices sharing the same Apple ID.

Documents can be stored in iCloud by application, as is done with the Notes and Photos apps. In addition though a person can purchase additional space in iCloud - either 200 GB or 2 TB - for a monthly fee and this purchased space is referred to as iCloud Drive and it can be accessed and managed through the web site https://www.icloud.com/iclouddrive/. If you turn on the Documents & Desktop feature in iCloud, the entire user Documents and Desktop folders will be uploaded to iCloud Drive and relocated on the local machine to a hidden folder within the user’s Home folder:

/Library/Mobile Documents/com~apple~CloudDocs

Because the data remains upon the local drive in the Mobile Documents folder, using iCloud Drive does not free up any space on the local hard drive.

Content that is synced with the iCloud Drive service is not only stored in iCloud and on the local hard drive of the original source, but is also synced to each authorized device. Because storage capacity on devices vary, Apple allows an optimization feature to be used so that older documents are retained only in iCloud and can be downloaded upon request to a client device, but users have no control over the algorithm that is used. Any data files that are manually uploaded to iCloud Drive using the www.icloud.com/iclouddrive/ website are also automatically pushed to each device that has the iCloud Drive service turned on.  This can become a problem for computers that lack the storage capacity on their internal drive.

The Need for Cold Cloud Storage


While Apple does not provide a means of marking content in iCloud Drive so that it is retained in iCloud Drive only, there are several reasons why this is a desirable feature.

MacOS expects home folders to be stored on the Mac internal drive. Home folders can be relocated to an external drive, but then the Time Machine service would not be able to back them up. Photo, music, and video libraries can take up an enormous amount of space, and unless these are also on the internal drive they cannot be backed up by Time Machine. Also, the BootCamp functionality requires partitioning the internal drive to create a Windows partition and because the partition size cannot be changed once created, it makes sense to create a larger partition than you expect to need, leaving less space on the internal drive for MacOS.

An external drive can be used to solve the problem of a large video library consuming a large amount of space, but once those videos are moved to the external drive they will be unable to be backed up by Time Machine so the loss of the external drive would mean the loss of the content.  For this reason it is essential that content put onto an external drive be backed up in some other way. Uploading these files to iCloud Drive would result in the files being pushed to the internal drive Mobile Documents folder, consuming all the internal space that was gained by moving the files to the external drive in the first place and is therefore not a viable solution. If your Photo library is larger than 200 GB then you will require the 2 TB iCloud Drive space. If you cannot upload additional content to that space due to limited local internal drive space, then much of that 2 TB may go unused.

Unfortunately Apple has positioned iCloud Drive as a sync and sharing file service, not a cold backup service and they have not provided a means to mark content in iCloud Drive to be retained in iCloud Drive only.

How to Achieve Cold Storage Using iCloud Drive


The following method to utilize iCloud Drive space for cold storage has been tested on Mac OS X 10.14.6 and is not supported by Apple. The author recommends that you utilize this method only for content that you retain a local copy of on an external drive or other local storage. This method utilizes the Unix underpinnings of Mac OS X and is therefore likely to continue to work unless Apple takes specific steps to disable it. Note that this method does not interfere with any other uses of iCloud Drive such as for Photo and Notes sync and the Documents & Desktop feature.

This solution works only with Mac OS X clients, so if you have iOS or Windows iCloud Drive clients enabled this solution is probably not for you.

Requirements

This method has the following requirements:

- More than one account on your Macintosh, preferably an admin account and your user account (the user account need not but can have admin privileges).

- Access to your iCloud Drive space via the web site https://www.icloud.com/iclouddrive/

- The administrator password (needed only if your own account does not have admin privileges)

- Access to the Terminal utility

- Access to all Macintoshes on which you have enabled iCloud Drive for your Apple ID

Steps to create a folder in iCloud Drive that can be used for cold storage


1. Access your iCloud Drive space at https://www.icloud.com/iclouddrive/

2. Create and name a new folder in iCloud Drive to be used for cold storage by clicking the website folder+ icon. You could create multiple folders if you like but it will reduce steps if you use subfolders within that one rather than creating multiple folders. In my case I created a single new folder named “Cloud-only”. Devices that the user is logged into and have iCloud Drive turned on will automatically have a corresponding folder created in their Library/Mobile Documents/com~apple~CloudDocs folder with the name of the new folder created in iCloud Drive.

3. On the Mac start the Terminal utility that is in the Applications Utilities folder.

4. Type “cd ~/Library/Mobile\ Documents/com~apple~CloudDocsand return (without the quotes)

5. Type “ls -lart” and return to list the contents of the com~apple~CloudDocs folder. This list should contain the name of the folder that had been created in iCloud Drive.

In my case the directory listing looks like this (bold added for emphasis):

bbellina$ ls -lart
total 16
drwxr-xr-x@ 51 bbellina  staff  1632 Apr 11 12:28 ..
-rw-r--r--@  1 bbellina  staff  6148 Apr 28 00:10 .DS_Store
drwxr-xr-x  12 bbellina  staff   384 Apr 28 13:45 .Trash
drwxr-xr-x   2 bbellina  staff    64 Apr 28 13:45 Cloud-only
drwxr-xr-x   5 bbellina  staff   160 Apr 28 13:45 .

 6. The trick to this technique is to alter the folder on the Mac so that attempts to push content into the folder by the iCloud Drive service using your account will fail. To do this you change the owner of the folder from your own account to another account on the Mac that is not used with iCloud Drive.  In my case I changed the owner to my administrator account "TheAdmin".  Type the following command, replacing "TheAdmin" with the account you choose and "Cloud-only" with the name of the folder you created in iCloud Drive:

sudo chown TheAdmin Cloud-only/

7. You will be prompted for a password and you should enter your administrator password. If your user account has admin privileges then your own password should suffice.

Password:

8. After this retype the ls -lart command to verify that the change was made. It should look something like this. Note that the Cloud-only folder is now owned by the theadmin account rather than bbellina:

bbellina$ ls -lart
total 24
drwxr-xr-x@ 51 bbellina  staff  1632 Apr 11 12:28 ..
drwxr-xr-x   5 bbellina  staff   160 Apr 28 13:45 .
-rw-r--r--@  1 bbellina  staff  8196 Apr 28 13:58 .DS_Store
drwxr-xr-x  14 bbellina  staff   448 Apr 28 15:23 .Trash
drwxr-xr-x   2 theadmin  staff    64 Apr 28 15:23 Cloud-only


9. Close the Terminal

With the owner of the folder changed, the iCloud Drive service will be unable to push updates to the folder therefore any content that you upload to the folder using the iCloud drive website will be unable to be pushed to your Mac.  If there are other Macs using the same Apple ID and iCloud Drive then you should change the owner of the folder on those Macs as well before uploading any content to the folder in iCloud Drive.

Conclusion

Since implementing this I have successfully uploaded over 50 GB of content into subfolders within my Cloud-only folder and none of the files have been pushed to my Mac’s internal drive. The files can still be downloaded at any time to my Mac by going to the iCloud website and selecting them for download.

A few current limitations in iCloud Drive to keep in mind. These may be changed in the future.

- There does not seem to be a way to rename folders using the iCloud Drive website

- A file uploaded to iCloud Drive cannot be larger than 10 GB

- The iCloud Drive web interface does not allow drag and drop upload for a folder, only files.

- Most importantly, do not rely entirely on iCloud Drive to be your master location for these files. I have already had situations in which all of the files have been removed and must be re-uploaded. iCloud Drive should NEVER be your sole storage solution.

- [Update 5/8/20] iCloud Drive cannot handle packages like the OS X Installers. A solution is to compress such packages and upload the resulting zip.

- [Update 5/24/20] This has been verified to work with macOS 10.13, 10.14, and 10.15

- [Update 5/24/20] [See above warning about iCloud Drive never being your sole location for storage. It is possible for this procedure to delete all of the files in your cold storage folder in iCloud Drive. It happened to me.] If iCloud Drive has already started downloading content from your Cloud storage only folder to your Mac (this can happen on a new Mac or when using Mac Recovery to reinstall the OS) you should delete that content from the Mac before using the chown command.  To do so disconnect from the internet to stop the download and then in Terminal cd into the directory with the content to delete and then issue the command "rm -R -i *" (without the quotes). Because of the -i option you will be asked to confirm each delete. If you are certain you are in the correct directory you can leave off the -i and it will delete everything without asking for confirmation.  Note that -R tells the rm command to remove all directories in the directory as well as files.

B. Bellina
5/1/20

Wednesday, December 25, 2019

All I Want For Christmas is a Reliable Computer

I believe that the personal computer industry as a whole has failed miserably and it is time for someone to hit the reboot button.  No company is more responsible for this than Apple. Everyone always knew Microsoft Windows was garbage and over the years it has only gained in bloated complexity and has never had reliability in basic functionality, but no one with an ounce of gray matter ever thought it would be different. Apple was different though. Apple was in a position to make a computer + OS ecosystem that just worked and worked well - something people could trust.  But it seems that in the last decade they have only proven that their reach exceeds their grasp.

Why are we still in an age where rebooting devices remains the number one way to solve problems? Have the software developers gained any maturity in design over the last 40 years? It appears not. It is a growing frustration for me that something that could be such an aid has been implemented in ways that cause basic functionality to fail at the worst times possible and therefore people remain afraid of computer technology. And rightfully so. Why do I even need to know how to reboot my iPhone, iPad, Apple TV, Apple router, etc.?  Because they suck of course.

Sure I can use my iPhone and Apple Pay to pay for goods. Theoretically removing the need to carry a wallet with credit cards and cash. But that is not possible because you don't know when it will fail to work, and so still have to carry a credit card and cash as backup. Because they suck of course.

I can use my iPhone as a remote for my Apple TV, this removing the need for keeping a battery in the Apple TV remote or find it when needed. In fact, Apple went so far as to include the remote in iOS and it is accessible with just a simple swipe up.  Great. Except completely useless when the iOS built-in remote cannot communicate with the Apple TV despite being on the same Wifi network. Perhaps forgivable, except that not only does the real remote work, but also the remote app on the iPhone also works - just not the built in iOS remote function. Because they suck of course.

How about this wonderful "purgeable storage" concept in Mac OS which reserves vast amount for disk space and interferes with downloading application updates from the App store. Apple Apps store. Apple's application (Xcode in this case). Completely Apple's ecosystem. They want you to apply updates but break the means to do so and provide no way to reclaim the space. Why would you do that?  Because they suck of course.

They encourage the use of iCloud, which I do for Notes, but there can be unexplainable delays of 5-10 minutes between a note being created on one Apple device such as my iPhone and it showing up on my iPad. They encourage multiple devices and the use of Cloud services but make them untrustworthy.  Because they suck of course.

For years there have been intermittent problems streaming from Apple when other network services like Netflix work fine. Drag and drop has always been buggy, whether in selection of text or dragging images. There is just no reliability of service any longer in any aspect of their business. Do they not understand how untrustworthy their services have become?  How long must the beachball spin like this before hitting opt-cmd-escape? I had to stop recommending Apple to people years ago and now I look forward to the day when I no longer rely upon them.  But sadly on this Christmas day there remain no better alternative.

Maybe next Christmas, Santa.


Saturday, September 8, 2018

Newton MessagePad iPad Quest

This blog post documents my quest to get Newton OS 2.1 (717006 ROM) to run on a 2018 iPad Pro with Apple Pencil.

Newton MessagePad 2100
I began this quest a week ago. I own three Newton MessagePads and recently purchased an iPad Pro with the Apple Pencil. I had experimented with Einstein, the free Newton emulator, several years ago and had been able to get it to run on my Mac but without a stylus the experience was lacking. Since then the Einstein project had included iOS compatibility, so I was hoping I could get Einstein running on my iPad.

unna.dillernet.com website
First I downloaded the latest Einstein software (v. 2017.1.0) which includes an iOS version from github.com/pguyot/Einstein. After a few hours I was able to get it working on Mac OS X using the debugger images I had downloaded from the United Network of Newton Archives (UNNA) site at www.unna.org or unna.dillernet.com several years ago. While most of the UNNA direct URLs no longer work, the Archive icon on the unna.dillernet.com site still works and allows software to be browsed and downloaded.  There is also a torrent posted there that contains all of the software as of 2006.

Because Einstein cannot be made available from the Apple App store, you must build it onto your iOS device yourself. To do that you need the following:

  • Able to connect iOS device to Mac running Xcode using appropriate cable. For me I connected my iPad Pro with an Apple USB/Lightning cable which comes with the iPad Pro for charging.
  • Current version of the free Apple Xcode software for Mac OS X. This can be downloaded from the App store. I used 9.4.1.
  • An Apple ID set up as a developer account.  To build and install applications for your personal use you just need a free personal developer account. This prevents releasing your apps to the store, but is sufficient for installing an app onto your own iPhone or iPad.  Getting my Apple ID to be set up as a personal developer account required going to the Preferences Account pane in Xcode.

Though successful at getting Einstein to run on my Mac and getting a successful build on the iPad Pro, I was unable to get it to actually run on the iPad Pro. The screen would display and the chime would occur but then it would lock up. After trying a number of things with no success I resolved to dump an official ROM from my used Newton MessagePad 2100 and try to use that rather than the debugger files that I had found on the UNNA site.

First I had to locate my MP 2100 and make sure it still booted up. Instructions for dumping a ROM are available here: https://github.com/pguyot/Einstein/wiki/Dumping-The-Rom

Dumping the ROM requires installing software packages on the Newton. For Newton OS 2.x devices the software of choice is the Newton Connection Utilities 1.0 (released in 1997) which is included on the MP 2100 CD-ROM. The older Newton Connection Kit software is for Newton OS 1.x. Since the Newton Connection Utilities only runs on Mac OS versions prior to Mac OS X, it is necessary to use an older Macintosh capable of running Mac OS 9 or earlier. (Note that the NCU can be downloaded from the unna.dillernet.com Archive from folder /apple/connection_utils/ForMac/NewtonConnectionUtilities but it is compressed with Stuffit and will need to be decompressed to use. Alternatively you can download a WinZipped ISO image of the MP 2100 CD-ROM from folder /apple/software/2100CDROM, which also includes NCU 1.0.)

Having a Compaq WL110 Wireless LAN PC Card for my MP 2100 I thought I could install packages to the Newton from the Macintosh over my wireless network and not require any cables. Unfortunately when inserting the Compaq card in the MP 2100 I received the error "Newton cannot recognize this type of card". Maybe the previous owner had removed necessary software from the Newton before selling it to me.

Older Newtons than the MP 2000 used a serial cable to connect the Newton to the Mac and the Newton Connection Kit software for Mac includes a serial cable. Fortunately I had that so I thought connecting my MP 2100 would not be a significant problem. Unfortunately I ran into two roadblocks with using the cable.  First, with the MP 2000 and MP 2100 Apple eliminated the standard serial port and replaced it with a unique multi-purpose port called the InterConnect port. In order to use this port with a serial cable you need a special adapter. The original owner of my MP 2100 hadn't sent me one of those.  So I ordered one on eBay which cost me $55 and arrived a week later. The second roadblock is that the older Macintosh I planned to use is a PowerMac G3 Blue and White and it also does not have a standard serial port, so connecting with the cable to the G3 B&W wasn't possible anyway.  So I had to dig out another Mac, a venerable all-in-one Power Macintosh 5400/120. This PowerMac has a standard serial port and a CD drive with a built-in tray and a 3.5" floppy disk drive and is running Mac OS 9.1. What it lacks is USB ports, so I had to also locate an ADB keyboard and mouse.  At first the 5400/120 refused to boot, giving me the no boot disk icon with the flashing question mark.  Knowing that sometimes hard drives that haven't been used in a long while can require a few attempts to get them going I powered off the Mac and started it again, and again, and then again.  The fourth time the hard drive finally spun up and I found myself looking successfully at the Mac OS 9.1 desktop.

The next step was to install the Newton Connection Utilities software onto the PowerMac 5400/120 from the MP 2100 CD-ROM. Fortunately the CD-ROM drive in the PM 5400/120 is a tray and so I didn't have to locate a CD-ROM cartridge. The software installed correctly but then required a reboot. Fortunately the hard drive spun up successfully again. At this point I figured that I would be able to connect the MP 2100 to the PowerMac 5400/120 to install packages onto the Newton, so I turned my attention to acquiring what I would need to install on the PowerMac and Newton in order to dump the Newton ROM.

According to the directions on the Einstein site I would need either Newtsbug or Hammer, both of which are debuggers that are included as part of the Lantern DDK. I checked the UNNA site at unna.dillernet.com and clicked on the Archive icon which allows browsing the software that they have to download.  Inside folder /apple/development/DDKs I found the compressed file FullLanternDDK.sit (the sit suffix indicates compressed with the StuffIt compression utility). I was able to download it to my MacMini and decompress it while running Mac OS X.

Now the problem was how to get the application from my MacMini to my PowerMac 5400/120. I could burn the files needed to a CD-ROM using an external USB DVD-ROM drive but I only had blank DVD-ROM discs and the PowerMac 5400/120 only has a CD-ROM drive. Connecting a 3.5" floppy disk drive to the MacMini would also not work and even if it had the 1.44 MB storage would make copying the 50 MB files impossible.  Using a USB flash also won't work because the PowerMac 5400/120 has no USB ports.

I thought that uploading the files to Google drive might work, but the version of Netscape Communicator on the PowerMac 5400/1200 is too old to access any https sites. The PowerMac 5400/120 has an Ethernet port but attempts to access a network drive attached to my router also proved unsuccessful. Stymied at every turn it seemed.

The next technology I tried is an Iomega Zip drive. I have both USB and SCSI versions of the external Zip drives so my thinking was to connect a USB drive to my MacMini, copy the files onto a Zip disk, and then read them off of a SCSI attached Zip drive on the PowerMac 5400/120. Connecting a USB Zip drive to the MacMini worked but for some reason I could not write to a blank Mac OS Standard formatted Zip disk while in Mac OS X 10.13.

I decided to attempt using the G3 B&W which runs both Mac OS X 10.4 and Mac OS 9.2 as a go-between between the MacMini and the PowerMac to transfer the files. First I would copy the files to a USB flash drive, then power up my G3 B&W in Mac OS 9.2 and copy the files from the flash drive to it.  Then connect the USB Zip drive to the G3 B&W and try to write the files to the Zip disk. And finally try to read and copy the files using a SCSI Zip drive on the PowerMac 5400/120.

Copying the files to a flash drive was not a problem but the G3 B&W couldn't read the flash drive in OS 9.2 and it locked up the computer trying.  I rebooted into Mac OS X 10.4.11 and tried again.  This time the flash drive could be read and I was able to copy the files to the documents folder. I then ejected the flash drive and hooked up the USB Zip drive.  I was able to copy the files to the Zip disk, but I had to be selective because the Zip disk only holds 100 MB and I had 148 MB of files I had wanted to copy.  I decided to copy only the Lantern DDK which is about 50 MB. Unfortunately the SCSI Zip disk drive not only would not mount the disk on the desktop but also would not allow me to eject the disk. To manually force eject the disk I had to find a paperclip, straighten one end of it, and insert it into a tiny hole at the back of the drive.  I tried several disks and found that none of them mounted, including the Zip Tools disk.  Fortunately I have two SCSI Zip drives, so I disconnected the drive and connected the second Zip drive (same SCSI cable and power supply though).  This did not solve the mounting problem.  Finally I decided to try the other Zip power supply and moments later the Zip Tools disk appeared successfully on my PowerMac 5400/120 desktop.  I experimented a little more to make sure it wasn't a fluke and that the power supply was really to blame.  It turns out that both drives work fine, but one of the power supplies had somehow gone bad while sitting in its box in my closet.

12 hours after starting this process this morning, I finally had been able to get the Lantern DDK onto a PowerMac that I could use to connect to the MP 2100. The next step would be to see how to connect the MP 2100 using the serial cable and start up Newton Connection Utilities. I connected the serial cable to the InterConnect port adapter and the other end to the modem serial port on the PowerMac and then plugged the adapter into the Newton InterConnect port.  I downloaded and read the instructions for the Newton Connection Utilities and it indicated that you have to go into Preferences in the program and indicate which port you are going to use, so I selected the modem port in Preferences.  Then on the Newton I went to Extras > Dock and initiated a serial connection.  Success.  Next step to install the Debugger Connection package from the Lantern DDK Hammer folder.

I was able to install the package by selecting install package on the Newton. It took a bit for the file list to be sent over from the Mac but then I was able to navigate to the Hammer folder and select the Debugger Connection package. Then I exited Newton Connection Utilities.

I then started the Hammer application on the PowerMac 5400/120 and I was presented with a standard open file dialog. According to the Einstein directions you navigate to the appropriate debugging image based on the Newton you are using.  The directions say "choose the debugging image corresponding to your Newton (Senior CirrusNoDebug image, Senior DCirrusNoDebug image or Newt KNoDebug image for the MP2x00 US, MP2100 or eMate 300 respectively)."  I am using a MP 2100 but unfortunately there was no Senior DCirrusNoDebug image in the folders included with Hammer. I did find though that in the UNNA Archive folder developer/Debugger_Images there is a compressed Stuffit file MP2100_D.sit. This file when unstuffed has a file named "Senior DCirrusNoDebug image" so that is the file I first tried to use. Then once Hammer told me to connect to the Newton device I opened the Extras drawer on the Newton and tapped the Debugger Connection package and selected "connect". Unfortunately Hammer then reported that the ROM didn't match the image. I exited out of Hammer, rebooted the Newton and started Hammer again but this time selected the "Senior CirrusNoDebug image" and after waiting a minute and not getting any error from Hammer decided to soldier on. I went to the File menu and select the "Save Memory..." option and then save 0 to 00800000.  I saved that as "MP2100.rom". The Mac cursor changed to the wristwatch icon and I assumed it was working, so I left the Newton as is and waited and waited and waited some more. Unfortunately the instructions on Einstein only indicate that over a serial connection this takes a long time, but it doesn't give any indication just how long it could be.

After an hour of watching I decided to call it a night and check it in the morning.  While your own mileage may vary it took over 5 hours for the memory save to complete. When it completed the PowerMac cursor returned to the normal pointer.  I exited Hammer and moved my new ROM named MP2100.rom from the PowerMac to a Zip disk and then to a flash drive and then to my MacMini that runs Xcode. The end was in sight.

I copied my new rom file into the ~/Library/Application Support/Einstein Platform folder used by Einstein and changed Einstein's preferences to use the rom. I then started up Einstein and it booted fine, verifying that the new rom was functional.

I started up Xcode and plugged in my iPad via the Lightning cable, which then automatically started up iTunes (which would be needed anyway).  I deleted the existing version of Einstein from my iPad and then in Xcode opened the project, made sure that my iPad was the target and issued the Run command. The application was built successfully on the Newton but couldn't be run because my iPad wasn't set up to trust my developer account.  So on the iPad I went into System Preferences > General > Device Management, selected my developer Apple ID and clicked the "Trust" button.  I also went over to iTunes and with my iPad selected went into File Sharing and selected iOSEinstein.  I then copied my MP2100.rom file to the desktop and renamed that version 717006.rom (which the Einstein instructions say it must be named), and then dragged it to the iTunes iOSEinstein Documents list to add it there.

[Update: Using a free developer account to install the software does work, but the installation will stop working after 7 days, requiring a rebuild. The packages installed should be retained across rebuilds though so this is more annoyance than anything else.]

Then I returned to Xcode and issued the Run command again.  This time the application Einstein started up on the iPad and I heard the familiar Newton chime and then this screen...



Unfortunately that is as far as it went.  This is actually the exact same issue I had a week and $55 ago. I learned a few things along the way but the destination did not turn out to be what I had hoped. If any of you have been successful at getting Einstein to run on an iPad Pro please send me a note.  I'd love to know your story.

To sum up, here are the important lessons I learned along this quest:

  • The emergency force eject hole on Zip drives is in the back, not the front.
  • Unlike earlier Newtons the MP 2000 and 2100 have a custom Apple InterConnect port that requires a small adapter to allow it to be used with standard serial cables. (Thanks, you clever Apple engineers.)
  • An Iomega Zip drive power supply can go bad for no reason other than age. But the drive mechanisms and disks themselves are highly reliable, even after 20+ years.
  • CD-ROM drives cannot read DVD-ROM disks . (Yes, I already knew that, but I tried it anyway.)
  • I have a very hard time getting rid of computer stuff. (Even when I know things are broken.)
12/25/19 Update: SUCCESS! Following directions provided in a comment below I have been able to get it working.  Further explanation of the issue is here: https://github.com/pguyot/Einstein/issues/53

12/27/19 Update: Installation of Newton packages using iTunes couldn't be easier, as it follows the same method as installing the ROM. Just connect the iPad and in iTunes select the device and File Sharing and iOSEinstein, and then just drag any Newton pkg files desired into the iTunes window. So far it seems to be working flawlessly with the exception of the Newton clock which is not handling the 21st century well.