Welcome to the third and final iteration of the Classic Mac Networking Guide.

This guide will detail the steps and procedures required to network the former generation of Macintoshes to each other, and to modern computers and networks. Most of this guide was written with the "somewhat computer literate" user in mind, as to make it as accessible to the broadest span of computer users.

Mainly, this guide attempts to be very thorough and cover all the most pertinent options for networking and all the related steps to facilitate networking. It is hoped that this guide will be a useful reference source.

This Guide will be primarily focused on networking any Macintosh from the Macintosh 512K up to the last "Beige G3" series that came out just before the first-generation iMac, with either Ethernet or serial data methods like LocalTalk. Some areas of this guide will not be relevant based on hardware or software incompatibilities (i.e. a Plus won't run Mac OS 7.6.1). All the newer computers running Windows or Mac OS X 10.2+ already have networking support over Ethernet, WiFi or other protocols which can be adequately covered elsewhere on the Internet.

The preliminary steps to facilitate use of these older platforms may involve replacing PRAM batteries, dead hard drives, leaking electrolytic capacitors, shot diodes, and the like. These matters should be of first-order importance, as the results of dying electrolytic capacitors and exploding PRAM batteries can be catastrophic. The 68K MLA Forums should continue to be a useful source of helpful comrades to assist with hardware concerns or other technical issues.

Main Page:
Basic Requirements
  • Hardware
  • Software
  • Assorted Notes
AFP Ethernet Networks
  • Mac OS 6 to 9.2.2
  • Mac OS X
  • Microsoft Windows
  • Linux, iOS
  • Encountered Issues
File Transfer Protocol
Serial Data Interlinks
  • Terminal Transfer
  • Pseudo PPP Dialup
  • LocalTalk Networks
Internet and Email
  • DNS, Browsers
  • Internet Relay Chat
  • Email Clients
  • Web Hosting
Supplemental Networks
  • Telnet Networking
  • Secure Shell
  • Infrared Interface
More Info Page:
Installing System Software
  • Pre-System 6
  • System 6.0.8
  • System 7.0.1, 7.5.3
  • System 7.6 and up
Supplemental AppleShare
  • EasyShare
  • AppleShare 1.1, 2.0.1, 3, 4, IP 5 & 6
Working with Disk Images
  • Classic Mac OS
  • Mac OS X, Linux
  • Microsoft Windows
Data Encoding Methods
Emergency NADs
  • System 6, 7 and 7.5
Mac OS X's Web Server
Data Transfer Rates
Amiga / Apple II Networking
A Word about Emulators
Download Town
Good Networking Games
  • Bolo, Oxyd, etc.
External Links
Possible Questions

All images are thumbnails and can be opened in a new tab or window for a larger version. These pages are very simplistic HTML 4.01 Strict source and have no JavaScript, Flash, cookies or other elements like IFRAMEs, and should render fine with Chrome, Safari and Firefox. Internet Explorer may be somewhat sketchy because of issues with CSS interpretation (and making a custom CSS for every IE version is not worth it).

Special thanks go out to the following members at phreakout (hardware help in the beginning days); JDW (for more information, particularly concerning 10.4), kingchops and thatsteve for hardware images; mcdermd for web hosting and invaluable assistance in the early HTML days, a bank of hardware and software for testing; protocol7 for clues concerning the esoteric Netatalk configuration; Cory5412 for maintaining; and The Internet for providing various sources of software that is practically unobtainable otherwise.

A Macintosh SE/30, the best
Compact ever made

Should any links expire, contact the author for a locally saved version (all links have been saved, save for certain download links) of the first page only; or use the WayBack Machine at Legal: No warranty, guarantee of accuracy or completeness of any kind; both this page and the More Info page are for informational purposes only and the reader/user assumes all risk and responsibility, and the words and images herein are merely suggestions. We strived for accuracy and detail but we can only go so far in that regard. Privacy: This page and the More Info page do not collect any information about any individual user. Only the internal awstat feature of the server collects information, however this information is not shared with anyone. These two pages do not have any external tracking metrics of any kind.

To start things on a happy note, head here first. (Sooo true....)

Basic Requirements

First word

Because of the rapid hardware and software "advances" these days it is imperative that a couple of paragraphs about compatibility is presented.

The newer brands of computers, at the time of this writing specifically Apple computers, are making strides towards reducing backwards compatibility. For instance, the newer iMacs do not have onboard Ethernet (that is supplied via a USB > Ethernet adapter, or Thunderbolt > Ethernet) as far as hardware is concerned. In the software department, AFP is not going to be compatible most older machines by default. By the time you read this, the relevant versions of Mac OS X that are desirable for old hardware (like 10.2 Jaguar) are so old and obsolete that obtaining older versions of software for these operating systems can be quite a chore, unlike finding software for Windows 98 or something a bit more mainstream.

The Linux section should remain relevant for some time, but the author cannot guarantee this statement. For one, the Desktop Environment (DE) demonstrated is GNOME 2, which was the standard DE for Ubuntu and some Debian systems, and it is a nice looking DE for the times it was deployed. But GNOME 2 is depreciated and is only being carried on by the MATE project, and we don't know how long that will last. The point is that you may have to a bit of work to do in applying the principles here to your individual system. It is entirely possible to build a stripped down version of Linux that won't take up much space which will have all the important packages (Netatalk, uudeview, hfsutils, and so on) installed that is intended entirely for a VM, for legacy purposes at least.

The good news is that you won't have to do much research or experimentation on the classic Mac side -- that has already been sorted. These developments will probably mean that FTP over Ethernet, AFP over Ethernet inside a virtual machine (VM) like VirtualBox or its brothers, AFP over AppleTalk using an AFP bridge using a virtual machine with Netatalk installed, or worst case scenario, RS232 based file transfer and PPP passthrough techniques could be the only remaining methods (Mac OS X, particularly the older versions, can be somewhat dicey inside virtual machine programs, if it runs at all). So for all the documentation and illustration here, it could all be for naught, but at least it would be interesting from a historical perspective. (Someone is still out there fiddling with a working a DEC PDP-11 series or some VAX hardware, so...) The future is completely unknown from our point of view, so this word is warranted.


Most electronic hardware of an age in excess of ten years will start to show signs of age. The image to the right shows one example of an increasingly common failure point with old hardware like this -- leaking clock batteries and electrolytic capacitors which have failed and then promptly disgorge caustic and acidic compounds onto the motherboard. Owners of genuinely desirable hardware such as SE/30s with socketed CPU motherboards, Macintosh Portables, the Macintosh IIfx, Quadra 840AV, et cetera should establish these repairs without delay and with extra diligence and care. The SE/30 logic board as shown is a total write-off and it is unfortunate that the heart of the system, the motherboard, is the usual target for these catastrophes. (Image credit goes out to volvo242gt at Power supplies and analog boards (128K through the Classic II and Color Classic) are also vulnerable and it is only a matter of time before these incidents will increase in frequency and inevitably require due care and attention. Let's move on to the minimum hardware specifications to interact with modern networks:

SE/30 logic board with PRAM
battery and capacitor damage

  • Preferred: A Macintosh SE/30, IIsi, IIcx, IIci or higher in good working order, with a 80MiB hard drive or larger, working 1.44MB floppy drive, preferably 32MiB of memory for a 12-20MiB RAM Disk3, at least twenty floppy disks in good order, another Mac that can write floppy disks, Ethernet cross-over cable, Ethernet standard cable, and a RJ45 Ethernet expansion card4. A working CD drive is a bonus as well (or share it over the network); a Zip100 drive can be a useful gadget.
  • Platinum Deluxe: A CompactFlash internal storage option5 (requires IDE bus or PCMCIA slots), using a USB capable machine that can boot into OS 9 and install and copy applications directly onto the CF card. Desktop and laptop configurations of adapters may vary. SCSI to IDE adapters are very expensive (like the

Platinum Deluxe CF setup for a PowerBook with IDE or PCMCIA

ACARD models) or are hobbyist affairs (like the SCSI2SD project); for PCMCIA, the adapter is simply a pass-through device. PCMCIA SD card adapters may or may not work.

  • Excellent: Simple Ethereal bi-directional reliable cross-platform self-configuring secure wireless network.

1 The maximum memory in this model is 4MiB and is highly recommended. The hard drive is not a mandatory requirement but is a very good idea.
2 Preferably this Mac should boot into Classic OS and have an internal floppy drive, with at least 7.5.5 but OS 9 would be better, and capable of booting into 10.2.8 would be best. Strongly recommended. (It also has other uses, such as older color games) Nearly all Mac machine specs are here. If all you have is a Windows box or Linux unit, then the difficulty of interaction with the vintage computer increases considerably, particularly with Macs without 1.44MB drives.
3 8 Megabytes is plenty if a RAM disk is not a requirement under System 7+. 6.0.8 can only address 8MiB by default, although Optima or Maxima could change that. WWW browsers demand lots of memory with System 7. (6.0.8L can address up to 10MiB.)

Ethereal Wireless Service.
It's out there! :-) Image Source
4 Varies. SCSI to Ethernet, LocalTalk to Ethernet, NuBus Ethernet, PCI Ethernet, and other configurations. Different machines may have different hardware configurations.
5 UDMA and Fixed Disk Mode enabled cards, like the Transcend Industrial series are recommended.

A machine with maxed memory is a sagacious option. Although the SE/30 or similar machines like the IIsi can address up to 128MiB, 32MiB is sufficient for even the most strenuous uses in this platform. Other machines like the PM 7600 could probably benefit from maxed memory, but the SE and Plus will probably benefit the most, because 1 or 2MiB is a rather tight squeeze, but networking can be done irregardless.

Hardware Network Options

The network adapters in question will vary based on the machine in question and the method of interfacing. As this Guide pertains to Ethernet and serial data methods, the machine itself and the software supported, plus the desired method of connecting to other machines will dictate the hardware available.

Caution: The DB-19 floppy port on compatible Macs (68040 and PPC Macs don't have it) is not compatible with Apple II 5.25" disk drives and doing so can destroy the floppy controller chip. The DB-25 SCSI port is also likewise completely incompatible with RS232 DB-25 serial or DB-25 parallel hardware like printers. Just would like to throw that out there because it's not always mentioned. (If the SCSI port having 25 pins seems unusual, it is because it's not standard. The SCSI standard specifies one ground for each signal line, but the Apple implementation merely ties all the ground pins together, contrary to the standard.)

The Macintosh 512K and 512Ke only support LocalTalk or AFP bridges and early terminal emulation software: as mentioned earlier, the 128K or 128Ke lacks sufficient memory to handle networking via AFP; though the MacTerminal 1.1 application runs under System 1.1 and can run from 50bps up to 19200bps, so that should work -- but file transfer is interesting due to the limit of 400KiB disks (and the HD20 will not work with the 128K, barring hacks to format it to MFS (along with a hacked driver), but might work with the 128Ke). All other Macs up to the iMac support LocalTalk and thusly can handle either LocalTalk or serial data transfer methods involving VT100-style terminal emulators. Nearly all of them supported some kind of Ethernet option, although this can vary based on the platform: and Ethernet is vastly superior to the serial methods, in both speed and flexibility.


Machines that sported SCSI ports can use SCSI to Ethernet adapters; such as the Macintosh Portable, which lacks any such upgrade cards; generally speaking this SCSI route can be a "last resort" (or use an AFP bridge, or pseudo-PPP dialup). Other Macintoshes with PDS (Processor Direct Slot) or expansion slots like the SE, SE/30 and Classic series can use proprietary (unique to the specific machine model) cards for Ethernet ports. For machines with AAUI ports like the Quadra 660AV, PowerBook 5300 series and so forth, AAUI to RJ45 adapters are relatively inexpensive and work fine. For Macs that came with NuBus slots (like the Mac II series (except the stock IIsi), the Quadra 700, Quadra 950, et cetera) then NuBus cards with Ethernet is a practical option (try to get ones with RJ45 plugs rather than AUI or 10BASE-2). Not all NuBus cards are the same length, just like PCI cards: there are full-length 12-inch (30.5cm) and "half-length" 7-inch (17.8cm) versions. (Image shows a IIci cache card, Radius Rocket 33 with DSP daughter card and Farallon NIC.)

Warning: Always make sure the pins on the NuBus or PDS card which mate to the motherboard slot are not knackered before the card is inserted: they are difficult to repair or replace and are quite vulnerable.

Testing an AsanteFAST 10/100 NuBus card as shown nearby indicated that while the link will be over 100BASE-T, the limitations of the older machine hold it back to basically the same as a regular 10BASE-T card. See the More Info page, Data Transfer Rates section for speed tests. (Install NSI software first, then the 10/100 driver if you nab one of these. Although the software indicates that it requires System 7, it'll work in System 6 regardless. Use a Custom Install to install the driver.)

Mac IIci with NuBus Ethernet card and
an AsanteFAST 10/100 NuBus card

Certain Macs like the LC 575, 580, the Power Macintosh 6200/75 and the Performa 5300CD series have Communications Slots on the motherboard for CommSlot Ethernet cards. The LC series like the LCII and the Color Classic use the proprietary LC PDS bus which can use LC PDS Ethernet cards. (Some Ethernet cards for the LC line may not conform to the height standard of 12.9mm, and may run into interference issues. There's also a difference in the PDS slots, some have 96 pin Euro-DIN connectors and others are of the 114 pin type; the 96 pin variant is a 16-bit bus and the 114 pin is a 32-bit bus. The "extra" 18 pins are merely a "add-on" and 96 pin cards will work fine, though the 68040 class of machines emulate 68030 PDS instructions. The Designing Cards and Drivers for the Macintosh Family book describes this subject in more detail: a PDF is around on the web, hosted by

Shiva EtherPort expansion card for
the Macintosh SE (AUI, 10BASE-2)

PowerBook Duos can obtain Ethernet capabilities either through a Duo Dock equipped with an Ethernet option, an EtherDock (the 280 and 2300c are not supported), Asante NetDock, Asante Micro EN/SC, or the ultimate minidock, the Newer Technologies UltraDock 16sce. The eMachines EtherDock is pretty similar to the standard Apple MiniDock but has a RJ-45 plug in place of the RJ-11 modem. The problem with PowerBook Duos (and Macintosh Classic I and II) is that the networking cards or docks tend to be somewhat rare and can be somewhat expensive: but there is some relief with AFP bridges -- see the next subsection below.

Other PowerBooks like the 1400 series usually have at least one PCMCIA expansion slot available. These present a special concern in that they are not 32-bit CardBus slots. All CardBus PCMCIA cards are 32-bit; otherwise, PCMCIA cards are 16-bit only. 32-bit cards are not supported on any PowerBook except the models listed here: but don't worry, it's not possible to insert a CardBus card all the way into a 16-bit slot. The easiest way to identify a CardBus card from a 16-bit card is to look at the end of the card. All CardBus cards have a strip with raised indents on the front edge. Before you buy, make sure that the respective driver is available first. Try to hunt down a model which has drivers that go back to System 7.5 or 7.6, like the Farallon EtherMac PC Card: part number 595, 595a, 895; the first two have a red arrow above "Insert This Side Up" and the latter has a blue arrow. Just so everybody knows, not all these PCMCIA cards will have all the pins present on the Ethernet jack (so an AFP bridge may not work). Some are wired as crossover, too.

Otherwise, there are three nominal kinds of Ethernet adapters that came in the PCMCIA format. The first is a version with the XJACK connector that Megahertz (subsidiary of 3Com) pushed. It is decent but a gentle hand is probably a good idea because excess force could damage the retractable jack (and some versions are missing some pins on the RJ45 jack). This adapter variant would be ideal for PowerBooks except they are a gigantic flop for Mac users because the driver situation is a total mess. The second kind, which is the most common, has a tiny connector on the end of the PC card and requires the appropriate dongle, so make sure that comes with the unit. Like the 30-pin Apple docking connector as was used in the early span of iPhone, iPad and iPod units, it is prone to weakening with use. The last version has a built-in extension which has the RJ45 plug but this also makes it vulnerable to being whacked by accident and unintentional application of force.

PCMCIA Ethernet and WiFi cards

Most 10/100 cards are CardBus and thusly are only compatible with the later PowerBook G3 and G4 models -- which already have RJ45 Ethernet and some have AirPort cards already, though there are 10/100 16-bit cards. The PowerBook 500 series with the PCMCIA Rev. C "Card Cage" can use certain PCMCIA cards in 7.1.1, too.

At any rate, the fallback method for all PowerBooks with SCSI can use something like the Asante Micro EN/SC or AAUI adapters if they have AAUI onboard, like the 5300 series. A HDI-30 to DB-25 SCSI adapter may be required for certain SCSI to Ethernet adapters because PowerBooks don't come with ... Apple-sized DB-25 SCSI ports.

A PowerBook Duo mated to a UltraDock 16sce with Ethernet

A DaynaPort SCSI/Link-T Ethernet Adapter (courtesy kingchops at

Backside of a Plus with a HD20SC
and SCSI Ethernet adapter

A Farallon EtherMac 030 PDS card
for a SE/30 or IIsi

Notice how the Ethernet card pictured above (for the SE/30) has three ports: the first from the left is 10BASE-T in a 8P8C RJ-45 connector, the middle one is AUI, which is known as Attachment Unit Interface and can either be used for 10BASE-T or 10BASE-2 adapters, and finally 10BASE-2 in a BNC coax port. Some old NuBus cards and the like will only provide an AUI port, an additional dongle adapter is required to hook up with RJ45 based wiring, such as the Farallon StarConnector shown below. (The adapter might come with a driver disk -- the StarConnector is supposed to.) 10BASE-2 Ethernet waned after the increasing adoption of twisted-pair Ethernet; it is also known as ThinNet (and other names) and is simply Ethernet on coaxial cable with T connections for pass-through daisy chaining or vampire taps as needed. AUI was common on network interface cards (NIC) back then because the marketplace was chaotic with three or four competing Ethernet standards (and other standards like TokenRing) and it was not unusual for one place to have one interface (like 10BASE-5) and another might have something else (like 10BASE-2); an adapter converted the interface to coax, fiber, or twisted pair as necessary to the application. Eventually most places settled down on 10BASE-T and everybody lived happily thereafter. Warning: Do not plug in a Macintosh display connector into an AUI socket, or a AUI unit into the Macintosh display interface connector. They look the same (DB-15) but they are electrically incompatible and damage can result. Ofttimes there's a switch on the back of Farallon cards to toggle between Twisted Pair (TP) and ThickNet or ThinNet.

Certain SCSI to Ethernet adapters, like the Dayna Desktop EN/SC, will have major problems with proper operation unless something else is on the chain to terminate the SCSI bus properly. This adapter is not self-terminating so it will cause the Mac's SCSI bus to go haywire. Therefore, the SCSI chain should run like this: Mac -- Ethernet adapter -- SCSI device with internal termination or terminator on it. A useful SCSI device to have on hand is a Zip100 drive - it's not that big, it has a termination switch already on it, the drives and diskettes are usually very inexpensive and is a useful storage supplement - or can even be used as a primary boot device. SCSI CD-ROM drives are usually pretty slow (4x tops) and honestly it's better to just access it over the Ethernet network with CD/DVD drive sharing, although only a Mac can share HFS format CDs.

AAUI was featured on a number of machines, starting in the days of the Quadra 700 and is simply Apple's re-implementation of AUI into a smaller port (the cases of the NIH Syndrome were common back then, and still are today with Apple). The Quadra 610 DOS Compatible shown below has two adapters pictured: one is a simple RJ45 adapter and the other is a four-port hub meant for Workgroup purposes. For most individuals, an adapter alone should suffice. Fortunately 10BASE-T started showing up in later Macs and the AAUI connector was dropped. Incidentally enough IBM made some Ethernet cards that had AAUI, 10-BASE-T and 10BASE-2 on the same card for the PS/2 line. These had MCA bus connectors on full-length, full-height cards which look like ISA and PCI based cards. Otherwise, nobody really had intentions of adopting Apple's AAUI other than firms like Farallon which made AAUI adapters. (IBM called it "Mini AUI" rather than AAUI. Adapters were about 40-60$ USD, about the same price for PCI RJ45 cards, and a LC PDS card cost about 95$, based on a 1999 online ordering list from Memory was also shockingly expensive -- a 128MiB PC100 SDRAM 100MHz module cost about 700$ (1200$ for a 256MiB variant), and a 4MiB 30-pin 80ns SIMM still cost about 80$ in 1999, and double the price there for a 16MiB module. Back in the early '90s, 16MiB modules cost about 500$ each, compared to about 200$ for a 4MiB 70ns non-parity SIMM.)

Rear view of a SE/30 with Ethernet

A Farallon StarConnector AUI to Ethernet adapter

Quadra 610 DOS Compatible with AAUI
(courtesy mcdermd at

Classic II with Asante Desktop EN/SC
and LaCie CD-ROM drive

Some routers will not work with the 10BASE-T 10Mbps interface that these machines use (both a Farallon iPrint LT and a UltraDock 16sce were identified in a router control window as using 10Mbps half-duplex mode). This can be avoided by either using a 10Mbps switch between them, or using an Ethernet cross-over cable if only two computers are involved. However, a router can be advantageous due to its ability to permit all units to access the Internet, and the author observed greater stability with a router rather than a cross-over cable.

When installing the Ethernet card or dongle, ensure the machine is off to avoid any gotchas or electrical problems, and discharging any static electricity is very good idea (a casual jolt of 400 volts is enough to cook ICs). For a compact like the SE/30, remove the four screws on the back of the SE/30 using a long (15 to 20cm shaft length) T-15 Torx: a dedicated screwdriver works better than a hobble-job of adapters that may not fit the holes near the carry handle. Do not use a hex Allen driver on these Torx screws. Compacts can vary in their difficulty of opening the case, so you may have to remove all the screws, invert the unit over something like a couch or a bed and shake the rear cover off. Install the 030 PDS card and replace the cover. Most other machines should be just simple plug-in affairs aside from NuBus cards, which are pretty much the same thing as installing PCI cards.

Once the hardware has been installed, the Ethernet wiring should be fairly straightforward. A cross-over cable is required for direct computer to computer connections (much like a null modem cable) and AFP bridges, but a straight cable is required for a router or switch. Follow the directions from the modem (if the modem and router are integrated), router or switch for configuration if any are in use, as this Guide will assume that these hardware units have already been configured beforehand. The Mac Driver Museum, if it's still online, has a nice library of drivers for a variety of old Mac cards and hardware upgrades like accelerators. The MacGUI website might also have some variants as well.

Serial Port Options

The serial ports on the older Macs are divided into the Printer and the Modem port. Later Macs incorporated both into a "Modem/Printer Port" and the last generation of machines with this interface had GeoPorts which have an additional pin to supply 5v at 350mA max. LocalTalk hardware mainly consists of either mini-DIN-8 cables, LocalTalk splitter boxes, or better, PhoneNET hardware. More information concerning this subject is found in the LocalTalk Networks section. However, there were a variety of LocalTalk to Ethernet bridges produced "back in the day". These include models like the Asante series, the Farallon iPrint LT (the SL model is apparently only for StyleWriter printers) and other models such as Dayna products; the Farallon units work directly with PhoneNET so they are more desirable; whereas the Asante boxes require a Mini-DIN-8 cable. They are fairly common and are a good tool to have around, but they only work with AFP over AppleTalk (not AFP over TCP/IP) and will not work with terminal applications like MacTerminal or ZTerm, nor TCP/IP services like FTP or WWW protocols.

AsanteTalk AFP Bridge
(courtesy thatsteve at

The GeoPorts were originally intended to be used with GeoPort (Mini-DIN-9) compatible modems, but in actual practice these modems turned out to be so inferior that they were ditched en masse. The GeoPort "extra pin" draws power off the ADB power rail, just as a note: PowerBooks don't supply as much power to the ADB bus as the desktops do, and drawing more than 100mA is probably not a good idea. PhoneNET adapters do not use this pin, and do not support external clocking. Otherwise, most Macs have Mini-DIN-8 ports and are suitable enough for most purposes. The Macintosh 128K and the 512K/Ke are given DE-9 RS422 ports, these require a different adapter for PhoneNET and Apple official LocalTalk adapters, along with a different adapter for old RS232 DB-25 modems (as was used back in the day).

A Duo 230/100 to a Compaq E500
over an AFP bridge (Win 2K Server)

Other than the extra power supply pin, GeoPorts have the same identical pinout as a regular Mini-DIN-8 RS422 port found in every Mac from the Mac Plus forward (well, the chipset that controls the port is quite a bit different, but that's not a detail that is important right now) and can use all the same serial AFP bridges, PhoneNET adapters, et cetera that a normal Mini-DIN-8 port can use.

There are a couple of Ethernet bridges that communicate over the LocalTalk port which can route TCP/IP traffic, known as hardware MacIP routers. Sample models would be like the Cayman Systems GatorBox, Farallon StarRouter, the Shiva FastPath 5, the Farallon EtherWave Mac/PB adapter (some models are just AAUI to RJ45 adapters, so keep an eye out for that detail, and this unit will not work with OT), and a few other odd ones; some like the EtherWave Mac/PB adapter can also overclock the serial port. The GatorBox also requires pre-OpenTransport OSs to configure it, like System 7 or 7.1. Some hardware MacIP bridges may not work with System 6, or have other quirks.

For serial data transfer options involving terminals, this Guide will be tailored to connecting to newer computers because LocalTalk can work directly between the older Macs. For machines without RS232 ports, a proper USB to RS232 adapter is the first requirement. (Both the DE-9 ports on the 128K and 512K series, and the mini-DIN-8 ports on all other Macs are of the RS422 flavor.) Apparently some cheap junk RS232 adapters do not supply the proper +12V (logical 0) and -12V (logical 1, may vary depending on hardware arrangements) required by proper RS232 devices, may have inactive pins (like DCD) or counterfeit driver chips which won't work with certain hardware but for our purposes, they might work but no guarantees are offered. The cheap ones just convert USB into +5V/-5V hoping to capitalize on the wide signal-high and signal-low tolerance of RS232.

RS232 serial hardware

The next step is a straight DE-9 RS232 cable and a Mini-DIN-8 cable for a manually wired crossover DE-9 to mini-DIN-8 adapter. This subject will be expanded on in the Serial Data Interlinks section.

Typically the older desktop Macs had two serial ports, called "Printer" and "Modem", yet PowerBooks were usually assigned just one. The serial controller, of Zilog make on the older Macs, can support two serial ports off of one controller, basically PORT A and PORT B. In the PC world this would be mapped out to COM1 and COM2 by the BIOS, and reported in Windows or MS-DOS as the same, but in UNIX systems this may be mapped to something like /dev/ttyS0 and /dev/ttyS1. It's basically such so that a Mac user could have plugged his (typical 2400bps, depending on the timeframe and how much he could afford, the dialup provider also had to support the bitrate) modem into the Modem port, but connected to a LocalTalk network for simple communication with nearby Macs and compatible LocalTalk printers. Switching between the remote modem and the local area network then becomes just a matter of software. Functionally the Modem port appears to be identical to the Printer port, although the Printer port is assigned for LocalTalk purposes, unless it is turned off or manually switched to Modem when OpenTransport installed. There could be low-level hardware difference between the Printer and the Modem port, as Inside Macintosh explains, particularly relevant to the 128K and 512K series:

The printer port should be used for output-only connections to devices such as printers, or at low baud rates (300 baud or less). The modem port has no such restrictions. It may be used simultaneously with disk accesses without fear of hardware overrun errors, because whenever the Disk Driver must turn off interrupts for longer than 100 microseconds, it stores any data received via the modem port and later passes the data to the modem port's input driver. (Volume II, Chapter 9, page 246)

A IIci was tested at 57600bps with AppleTalk off and hardware handshaking enabled off the printer port with a ZModem transfer and worked fine. Later Macs like these shouldn't have any such concerns.

Wireless Access

There are a certain number of RJ-45 Ethernet to 802.11 WiFi bridges like the NetGear WNCE2001, or routers with custom firmware like "tomato" to enable a "Wireless Ethernet Bridge" feature, and these ought to work fine. Use a modern computer with a good browser to configure them because they have "bloated" configuration panels that are accessed via a browser, like most routers and modems are these days. Suppose it beats DIP switches and modem INIT strings, though.

For PowerBooks with PCMCIA cards, this feature hinges (apparently) on a small number of compatible cards and the whole process is best explained on this site intended for the 1400 and this other one here which seems likewise beneficial. AirPort cards were an option on some of the later PowerBooks, iBooks, and iMacs, and they only support 802.11b at 11Mbps data rate, and they only work with unencrypted, WEP, or WPA-TKIP networks. AirPort Extreme cards are required for the 802.11g (54Mbps) and WPA2 encryption, and they are not substitutable. Don't bother getting 802.11b CardBus cards: 802.11b can only handle 11Mbps, which is not even faster than USB 1.1 in high-speed mode. Instead, track down a 802.11b/g CardBus for Macs with CardBus, and for those with just PCMCIA 16-bit slots, a card which has drivers that will work with 7.5 or 7.6. Those can be hard to find. Cards compatible with OS X can be on shaky ground, as most drivers are kernel level, once they get unstable, they usually take the whole system down with them. It all depends on the driver.

A Lucent Technologies ORiNOCO Silver 802.11b card was examined and tested with a 1400cs in Mac OS 7.6.1. The notable points are: it requires a reboot if the WiFi Access Point is changed from one to another (it's entered into a text field, there's no list of accessible APs: make sure it gets entered correctly) and the control panel is rather crude in appearance. Encryption was not tested. As far as drivers go, the one named "WaveLAN Installer Disk" (download name is apt6041i.hqx) will be compatible with 7.5.2+ and either MacTCP or OpenTransport. Read the Read-Me file for instructions.

The other known drivers in circulation are the ORiNOCO 7.2 and 6.3 drivers. Version 7.2 won't work with 7.5.3, it will probably require 8.5 since it complains about the lack of "AppearenceLib" with OT on and "OTUtilityLib" with it off. Then in Mac OS 8.1 it says it can't find "ControlsLib" much for their spec sheet. On the other hand version 6.3 said it wants 8.5.1 or later. It's still a good card to have though, because it's on the Newton WiFi card list (assuming the custom driver) and because of its compatibility with 7.5.3, plus they're not that difficult to get.

Ad-hoc direct WiFi computer to computer networks can be functionally unreliable. Avoid using them to interface with these older systems.


The following list details the software specifications that was used with success for the remainder of this Guide. More information and tips relating to the install procedures can be found in the More Info section.

Note: The installation of AppleShare Client 3.7.4 inhibits the use of Classic Networking in 7.5.3-7.5.5, because while ASC 3.7.4 is installed, OT 1.1.2 or later must be installed for it to be active, and MacTCP doesn't "provide" OpenTransport services. If you wish to use MacTCP in 7.5.3+, then do not install AS 3.7.4. Also, there is an update to OT 1.3, which apparently fixes some "dead space" inside the resource files. This is OT 1.3.1 Update, but it works fine without it. ASC 3.7.4 and OT 1.3 are really only required to hook up to 10.3 and 10.4 - otherwise, the standard install is fine to work with Jaguar.

MacTCP incompatibility (7.5.3)

Depending on the specific software setup in question, the standard NSI installations may not work for that hardware. For instance, the Newer Technologies UltraDock products require proprietary software drivers, as do most Asante Ethernet cards for the SE and SE/30 platforms. However the NSI software should be installed before the driver software, regardless. Technically MacTCP isn't required for local EtherTalk communication but it's a really good idea to install it for WWW, FTP and other services. Additionally, it was found that the default install of EtherTalk software from System 7.0.1 worked with two separate Farallon NICs and an Asante NuBus card: but installing the latest drivers is still suggested.

1 MacTCP v.2.1 is cleaner looking and should be used instead, although this is not mandatory.
2 Certain Macs require machine-specific (gray) discs that are unique to a particular machine model, such as the iBook G3 800/900MHz and the iMac G4 700/800MHz computers. These have system extensions and drivers that are required to permit them to operate correctly, usually concerning Mac OS 9.2.2.

Assorted Notes

The first recommendation of this Guide is to download, back up the .iso, and burn a copy of the Legacy Recovery CD here or from another source. It is a 7.6.1 bootable CD and is chock full of useful disk images and software versions like the System 7.1 binary for the Macintosh TV. This package of MacTest Pro has some helpful Emergency bootable disks for troublesome systems.

The Legacy Recovery CD is immensely helpful aside from the fact that it has all the disk images stored as NDIF Read-Only Compressed format. Only Disk Copy 6.1.2 or higher can process them. Use an emulator to convert them to NDIF Read-Only or Disk Copy 4.2 format if required. Browse the Working with Disk Images section of the More Info page for more detailed text on this issue. There are other mirrors and sources for software, when this Guide references software available, it usually can be found at or the Macintosh Garden. At the present time, this dump of Apple's legacy downloads (just browse the contents by clicking the little [contents] link), max1zzz's mirror and this Australian mirror seem to be good to go. (The last one has FTP access, too. For Fetch 2.1.2, use for the Host, username can be left alone at anonymous, password field empty, directory would be /pub/apple.)

Some quick transfer rate data for networks (individual usage figures may vary) can be found in the More Info section here. More trivia: The SE/30 can push memory around at about 5MiB/sec (spec says 15.67MiB/s, compared to a IIfx, which specs 60.69MiB/s), which is part of the reason for RAM disks running faster, plus there is no SCSI bus to go through; and a standard SCSI hard drive of this vintage has a throughtput of about 3MiB/sec maximum (more around 2.5MiB/sec).

In the former days when cathode-ray tubes (CRT) were dominate, screensavers were commonly used to provide insurance against burn-in. Burn-in is a concept where an image that gets too much continuous exposure on the display becomes "highlighted" against the display. The effect was not as pronounced in the later Trinitrons and other monitors made in the late 1990s and early 2000s but by that time TFT displays were starting to get cheap enough that CRTs, with their bulk and power disadvantages, were regulated to the dumpster bins. Among the vulnerable classes are Compacts because their 1-bit displays spend a lot of time drawing a white menu bar. Bad cases will have visible "ghosting" when the unit is off and really bad examples will have ghosting artifacts visible when the unit is on. The damage is permanent and cannot be repaired. LCD displays do not need screensavers, although they were sometimes used for aesthetic purposes. This also dates back in the golden years of After Dark with numerous creative modules, some were games (like Lunatic Fringe), others were iconic (like Starry Night and Flying Toasters), some were artistic with geometric and arithmetically inspired graphics, and so on.

Good old Starry Night

Common screensaver utilities included After Dark, Flex, Pyro!, Basic Black and other programs. Some were simple and lightweight affairs meant to minimize space on disk. There are no known screensaver programs or DAs meant for the 128K series, so you'll just have to crank the brightness all the way down.

While we're discussing displays, passive matrix displays were often used on notebook computers. Commonly identified by their sluggish refresh rates, ghosting and weird lines projecting from objects. Contrast had to be adjusted on a semi-frequent basis (depending on the image on the display, color depth, the desktop background, environment, lighting, et cetera) but fortunately they usually had hardware based adjustment methods. Color passive matrix displays are even trickier to adjust the contrast to balance out the color elements to minimize artifacts but the panel on the 1400cs is noticeably better in grayscale than the Duo 230's. Not recommended for precision color work...Also the viewing angles, contrast ratios, color balance, et cetera were all rubbish by modern standards. Still, you won't see an equivalent of the 640x400 electro-luminescent yellow-on-black display of a Dynamac or the cool red gas plasma display of a Compaq Portable III (later Portable 386 as well) on a modern computer.

A rare Dynamac machine

Dynamac with a 10-Year Apple Award
(for Apple employees)

Electro-luminescent display
close-up view

A prototype Colby Systems Walkmac

Gas plasma display

This particular Dynamac is owned by Haplain at, as part of his collection. Few are known to exist, much less with the original box. It's based on a Macintosh Plus (not the rumored version based on a Macintosh SE) and features 4MiB of RAM and the original 40MiB hard drive, with a mouse just like it would have come from Dynamac Computer Products. Back in the day (around 1988), this unit as configured, would have cost over 6,490$, and that was with 1MiB of RAM and a 40MiB hard drive: adding more memory would have stacked the price tag even more. Memory was around 150$ per mebibyte back then. The Infoworld review (August 8th, 1988 publication, Volume 10 Issue 32) of this model doesn't say the memory capacity of the unit they tested. Another Chicago Tribune article says a Dynamac with 4MiB of RAM and a 40MiB hard drive could have been acquired for an eye-popping 8,000$, which could have been saved for a really nice upgraded SE/30 just six months later and which weighed just a little bit more. More of Haplain's personal collection can be found at his homepage. The clear backlit Macintosh Portable M5126 in his hands is certainly a thing of beauty, for sure.

Only 68000, 68020 and some 68030 processor equipped machines can boot System 6, practically the 512Ke is the lowest machine that can do so. There are no 68040 Macs that can boot System 6: although a 68030 host with a hot-shot 68040 accelerator like a Daystar Turbo 040 (especially if it is the 40MHz version with a 128KiB cache) will be "wicked fast": add plenty of RAM and run everything entirely in RAM for a new perspective on computing! System 6 is a good primary operating system for the older Macs like the Plus, with System 7.0.1 held in reserve for special cases; but 7.1 does offer additional benefits like a Scriptable Finder (v. 7.1.3, comes on the 7.1 Pro disks). For all other 68K Macs that can handle System 6, it is a good system to keep for special scenarios like handling 400KiB disks, and certain applications like Airborne! or Microsoft Works 2.0 which require System 6; otherwise, System 7.0.1 or 7.1 is a more useful primary operating system. Most of the later 68030s like the LCIII and the Duo 230 require System 7.0.1 or 7.1. Early PPC 601s usually want 7.1.2 minimum, but starting with the 603e they all wanted 7.5.3 minimum, as a general rule.

In Mac OS 7 thru 9.2.2, Program Linking is an option available in the Sharing Setup control panel (also known as File Sharing starting with Mac OS 8). Program Linking is for certain applications which can be linked over a network in certain ways. See this Apple KB for more on this. Generally, it is not required and is not needed to play network games, either. Remember that the application must be enabled as well in the File/Get Info menu (or File/Sharing...), and also should be compatible (i.e. SimpleText is not compatible, but WordPerfect 3.0 is).

There is a great library of Alexandria Type and Creator information within this software (best used with Mac OS 9 or early OS X like Jaguar). It must be stressed that the full database requires a purchase of a key, plus the Panorama DB software has to be registered as well. (Related version. Can be saved as a text file, then imported into a spreadsheet.) Creator Changer 2.8.4 or ResEdit with the "Get File/Folder Info..." can change these codes: Finder Info 1.1.1 and early versions of ResEdit like 1.3D1 can edit these in System 6 and some earlier systems. Creator Changer is not really necessary for the occasional tweak, and ResEdit has more utility. On the other hand Creator Changer (and a few others in its class) do let users store "kinds" so it can be faster, if that is important.

According to this site, MacTCP originally came with the Apple Internet Connection Kit (also known as the Macintosh TCP Connection Kit) and retailed for $50. It also included MacPPP for dialup and some other goodies.

TCDB database (10.2 Jaguar)

It could have been had for a little as $25 with the Internet Starter Kit...or by buying 7.5, which retailed for about $99 to $129 back in the day...and plucking it out of the System it is just a control panel...(7.5 did not include PPP though).

At Ease was an Apple product that was basically the Launcher control panel (System 7.5+) made into a Finder substitute. It would be easy to conclude that it was meant for setups like kiosk computers, library computers, and other reduced or simplified computing arrangements. There is a way to add a network share onto the list of applications/documents on inside At Ease, but the shares don't seem to be capable of browsing, but with proper permissions (and likely At Ease 2.0.x and up rather than At Ease 1.0) users can use the Open dialog inside applications to open documents inside remote servers.

According to the At Ease 2.0 documentation, file sharing is disabled under the At Ease environment, so other computers won't be able to access the At Ease enabled machine. The Chooser can be added to the Apple menu of course, but the remote share won't be navigable, so it's pretty much a waste of time. At Ease for Workgroups is supposed to have greater emphasis on multi-user situations with At Ease, and it is supposed to be slightly better in the remote share department, but the author couldn't quite figure out the process for actually navigating a remote share like the regular Finder.

At Ease 1.0 (2.0 and 3.0 similar)

Best that could be done (At Ease 1.0)

Launcher (7.6.1)

For System 6 and 7.0/7.1, try to avoid handling volumes that are larger than 2GiB (2,097,152KiB, 2048MiB) because HFS in these versions cannot address more than 2GiB volumes. 7.5 has support for 4GiB volumes, and 7.5.2 (immediately replaced by 7.5.3) supports up to 2TiB (see the External Links section for more on this).

Note that these older file systems used the "classical" interpretation of MB and KB where 1KB is 1024 bytes and 1MB is 1024KB (or 1024 x 1024 bytes), not the modern IEC-approved idea which says that 1KB is 1000 bytes and 1MB is 1000KB (or 1000 x 1000 bytes). The "modern" translation of the "classic" 1024 definition is the KiB, MiB, or GiB; this Guide will use the modern definition. (Obligatory comic here) The exception will be with 1.44MB floppies, because while they are actually 1,474,560 bytes, the math was calculated to mean 1474560 divided by 1024 and divided again by 1000 to produce a result of 1.44MB. So while this author would prefer to use 1.40MiB, convention will prevail for the sake of conformity. Plain and simple, 1KB is 1000 bytes, 1MB is 1000 KB, and 1GB is 1000MB; 1KiB is 1024 bytes, 1MiB is 1024KiB and 1GiB is 1024MiB.

A cheat for Windows 2K Server which seemed to have the most issues concerning this brick wall is to format an SD card or USB thumbdrive as NTFS (Windows XP can't do it, but Windows 2000 can, and only NTFS volumes can be shared with the SFM service: or use something like gParted in Linux) and put a share on that volume if it's less than 2GiB. Or, use Netatalk inside a VM. Certain Macs can create RAM disks through the Memory control panel, which then can be easily shared as long as it is 2MiB or greater in size. Jaguar can format a Flash volume, e.g. USB thumbdrive as HFS Standard but 10.3 Panther and above won't do it.

SharePoints is an addon to Mac OS X 10.1 thru 10.4 which allows the creation of additional share folders, just like in the old Finder of System 7 thru OS 9.2.2, where users could share any folder they desired. The addon can run as a program or as a .prefpane inside the System Preferences application. Folders can be easily configured for SMB (Windows, Linux) computers to access or AFP purposes. The images below give a sample of what it looks like under 10.2 Jaguar. An attempt was made to share a non-logical disk, a USB thumbdrive and a mounted disk image on the computer, without success.

Shares overview

Users and Public folders


AFP settings

SMB config

The name "Workstation" tends to be associated with "client" and in System 6 and earlier systems, two clients cannot communicate with each other. In such case, there must be a server (AppleShare Server 2+ or any System 7+ machine) to provide the files and the clients must use that as a central communication hub. AppleShare for clients was called AppleShare Workstation from version 1.0 up to 3.6.5, starting with version 3.7 it was renamed AppleShare Client but they are the same overall thing.

In the event that a program has frozen the computer, activating the programmer's interrupt (varies according to machine in question) and typing
G Finder can sometimes work. If Macsbug is installed, striking the interrupt switch calls up Macsbug. Typing es attempts to quit back to the Finder. Saving any important work and restarting the computer promptly is a highly recommended procedure because the memory is usually in a unstable fragmented state. An alternative technique is to use the ExitToShell trap. Some Macs do not have physical interrupt/reset buttons, like PowerBooks. Use the Command + Control + Power button reset (reboot) the machine: Command + Power is the same thing as the interrupt feature.

Gamba has prepared an interesting table here that describes some alternative applications that can mimic AFP networking. These avenues will not be explored as part of this Guide, except for EasyShare. JC Remote is very unstable and can only link up to another computer with JC Remote installed.

CheckNET is a utility developed by some Farallon developers to help diagnose AppleTalk networks, and it came as a DA for System 6 and a standalone program for System 7. It will report both EtherTalk (AFP over Ethernet) and LocalTalk traffic, but it has very limited usefulness. For instance, only a certain select few computers will be compatible with it, the rest will kick an error dialog saying that it can only query "Responder-compliant sockets". Responder was a system extension which would "respond" to diagnostic programs back in the former days. It's not necessary for regular network function and can be safely ignored and deleted. The nearby image shows what it looks like with Windows 2000 Server, Netatalk with Apple II services and a CD share, OS X 10.2.8 Jaguar and a Macintosh LC over LocalTalk. Of those systems, only the LC could provide any system information whatsoever, and a test with Mac OS 9 wouldn't respond to the system information query. Mac OS 9 does have a few additional entries, like "ARA - Personal...", "SharewayIP" and "Multi-User Cli...", but other than those it looks the same.

CheckNET with various systems connected (System 7.0.1)

The utility comes on on a Compact Pro self-extracting archive on a Farallon EN Installer disk in the Utilities folder. It could probably be useful for really big AppleTalk networks but it won't be applicable to smaller ones like what most folks are going to be using these days.

About AppleTalk zones. A zone is a method of dividing up servers into manageable areas, generally used with big networks. For instance, a newspaper company may have a number of zones, such as Management, Research, Printing Department, Public Relations and so on. Computers were assigned into a specific zone based on their intended purpose. Zones are created in two nominal ways: software or hardware. A *NIX system with Netatalk, Windows Server with Services for Macintosh or a few other server or routing software are examples of software configured zones. They can be created in hardware with routers like the Cayman Systems GatorBox. While obtaining proper reading material which adequately discusses the subject is hard to find, it is fortunate that most users will never have to approach the subject, especially these days because few will make an AppleTalk network big enough to warrant zoning. A computer network with more than twenty computers is probably eligible, though. In TCP parlance, a AppleTalk zone is the same principle as a large network with different subnets for a multitude of smaller networks.

It has come to light that Mac OS 8 and later will unbless older Systems like System 6 if they are mounted (like a floppy disk). Make sure to have an extra bootable floppy or lock the disk to insure against this occurrence. The principle of "blessing" is designating a folder as bootable, and this is usually indicated by a tiny image of a Compact Mac inside the folder icon. A folder must have certain minimal elements to be bootable, two being System and Finder. Opening the folder and then closing it should update it. For emergency purposes, a Disk Tools disk can help, or the 7.5 Network Access disk, a bootable CD, or in extreme cases, imaging the disk, blessing the System Folder in an emulator, then writing it back out again. The OS X terminal command bless is mainly for OS 9 situations: read the man page.

When a device has driver support for "Mac OS 8" that usually applies to Mac OS 8.6, because that is when USB support came into fruitation. Also when most people mention "Carbon" programs for Mac OS 8, that essentially suggests 8.6, although 8.1 can also run some Carbonized applications.

And one last thing. Avoid using composite memory modules in Macs. They are easily identified as far as 30-pin SIMMs go because a regular SIMM has eight chips per SIMM, nine if it is a parity RAM module which most Macs won't even use the parity function. A composite SIMM has typically two chips per SIMM or three if it is a parity module. Unexplained crashes, freezes and other unusual events, if they are not related to bad traces, dying hard drives, shot capacitors or other common hardware issues, could point to the RAM modules.

So let's get started.

Apple Filing Protocol Ethernet Networks

AFP is the default for Mac to Mac interconnection, and it went through quite a number of major versions, rendering some incompatible with others. The Chart, as we will call it, will be an attempt to showcase the various compatibility across various software versions. Start by picking a System Software version on the leftmost column and read the row across. The "connectible" OS is the one that the System can mount to its file system: for example, OS X 10.4 Tiger can mount Mac OS 9 or higher on its desktop; anything "lower" and it will not work. However the 10.4 Tiger platform can be mounted on a 7.5.3+ system if configured properly with TCP/IP services.

System Software Lowest connectible Mac OS via Apple Filing Protocol Highest connectible Mac OS via Apple Filing Protocol Windows 2000 Server with SFM; Linux (Netatalk) Other protocols compatible with all machines
System 3.3, Finder 5.4 (512K, 512Ke) up to System 5.1 (S4.3, F6.0) with AppleShare WS 1.1
EasyShare Demo
AppleShare File Server (ASFS)
2.0.1 (see note); System 7
9.2; 10.2, except 10.0 (see note): AFP bridge may be required
AppleShare IP 5 & 6: read only
Not compatible; AFP bridge required Terminal Software; SLIP; TOPS Terminal
System 6, 7.0, 7.1, 7.5.0-7.5.2
AppleShare WS 3.5 (see note below)
EasyShare Demo
ASFS 2.0.1
System 7
10.0 lacks EtherTalk drivers
10.1, 10.2
AFP bridge, Ethernet; AFP bridge, Ethernet, Ethernet>WiFi bridge LocalTalk; LocalTalk PC; SLIP; PPP; FTP; Telnet; SSH in System 7+; Terminal Software
System 7.5.3 to 7.6.1
ASC 3.7.4, OT 1.3 (7.5.3-7.5.5)
ASC 3.8.3, OT 1.3 (7.6.1)
EasyShare Demo
ASFS 2.0.1
System 7
10.4 AFP bridge, Ethernet; AFP bridge, Ethernet, WiFi LocalTalk; LocalTalk PC; PPP; OT/PPP; FTP; Telnet; SSH; Terminal Software; this Apple KB
Mac OS 8.1 to 8.6
ASC 3.8.3, OT 1.3 (8.1 only)
EasyShare Demo
ASFS 2.0.1
System 7
10.4; 10.5 can be accessed only by Guest account
Modified: 10.10
AFP bridge, Ethernet; AFP bridge, Ethernet, WiFi LocalTalk; LocalTalk PC; OT/PPP; FTP; Telnet; SSH; Terminal Software; this Apple KB
Mac OS 9.0, 9.1, 9.2 EasyShare Demo
ASFS 2.0.1
System 7
Default: 10.5
Modified: 10.10
AFP bridge, Ethernet; AFP bridge, Ethernet, WiFi LocalTalk; LocalTalk PC; OT/PPP; FTP; Telnet; SSH; Terminal Software; this Apple KB
OS X 10.1 Puma
OS X 10.2 Jaguar
OS X 10.3 Panther
10.1 and 10.2: System 7
10.3: System 7, with FSE 7.6.2
AppleShare Server 3, 4, IP 5 & 6
10.10 Ethernet; Ethernet, WiFi SMB; FTP; SSH; Terminal Software; Samba (Linux)
OS X 10.4 Tiger
OS X 10.5 Leopard
OS X 10.6 Snow Leopard
Mac OS 9.0
AppleShare Server IP 5 & 6
10.10 Ethernet; Ethernet, WiFi SMB; FTP; SSH; Terminal Software; Samba (Linux)
OS X 10.7 Lion
OS X 10.8 Mountain Lion
OS X 10.9 Mavericks
OS X 10.10 Yosemite
OS X 10.10 Not compatible, use SMB; Ethernet, WiFi SMB; SMB2 (10.9+); FTP; SSH; Terminal Software; Samba (Linux)

Here are some important notes for this chart:

Zip disks are good, if they work, and are reasonably fast. The only one the author got to play with had serious troubles formatting and using it, with system freezes and lockups with and without the Lido 7.56 driver. This sounds abnormal because many have spoken highly of the Zip drive peripheral. To sum up, if it works -- it is fantastic for a Plus. If not -- it can provide major headaches. Some form of preserving any valuable disks, such as with a disk image utility, is prudent. Use the Desktop Manager INIT for System 6 to stop it from needlessly rebuilding the Desktop File for those who have System 7 onboard with System 6. Always keep some recovery floppies on hand should things go haywire.

SneakerNet: 1.44MB, 800KiB,
SuperDISK LS-120, Zip100 and a...CD

System 6 through Mac OS 9.2.2 Setup

Classic Networking refers to the use of MacTCP for external communication over TCP networks. LocalTalk is independent of this, aside from MacIP routing which works differently than the other interfaces: the Network control panel (Classic Networking) or AppleTalk control panel (OpenTransport) is for selecting the interface for AFP to use and has nothing to do with TCP services except when AFP over TCP is used. LocalTalk could be used over the Printer port for instance, yet have TCP services going out through an Ethernet interface. Only with AppleShare IP, Mac OS 9 or OS X does the TCP/IP configuration become significant. MacTCP has no influence whatsoever on EtherTalk or LocalTalk traffic, and the same goes for OpenTransport -- until 8.x with AppleShare IP 5 or Mac OS 9 (with or without AppleShare IP 6).

System 7.5 can use either Classic Networking or Open Transport Networking through a switcher application called Network Software Selector. This application is proprietary to 7.5 and is not compatible with System 7.1 or below, or 7.6 and above. (The only way to switch to Classic Networking in 7.1 is to uninstall OT, or run two duplicate OSs, one with OT and the other without.) Open Transport gobbles more memory (about 760KiB in 7.5.5, which could pinch those running on 4MiB ceilings) and isn't required unless more powerful Internet requirements demand it, or hooking up to 10.4. System 7.6 and above have OT running full time and cannot use Classic Networking or MacTCP. Open Transport simplifies compatibility issues with modern Internet requirements. It is still possible to "go online" with a Plus and MacTCP but it is not very useful or pragmatic due to the memory limitations and the real performance drag. FTP still has a good presence though.

For historical purposes, copying MacTCP to a 7.6 OS (where OT was not installed from the Installer) in an attempt to run TCP services outside OpenTransport causes the operating system to immediately hide the control panel. This can be reversed by using ResEdit to unmark the Invisible flag. Then it turns out the OS changes the type to ???? from its proper designation of cdev (creator is ZTCP). Again this can be overridden with ResEdit but the System will promptly refuse to open the control panel and returns two error dialogs on the display (with a Duo 2300cTB); another experience produced two results: AppleShare wouldn't start because it complained about the OT deficiency, and Fetch 2.1.2 kicked an error saying it needs either KSP or MacTCP installed (even though MacTCP 2.1 was already installed and configured).


This subsection applies to System 6, System 7 and 7.5 with Classic Networking enabled (default after a fresh install of the OS). We'll set up this side first, and then we'll go into how we set up the other side(s).

For System 6, first head to the Chooser and turn on AppleTalk, then set a machine name in Chooser, then open the Control Panel DA. Open Network. Select EtherTalk. For SSW 7 and 7.5, enable AppleTalk in the Chooser, then open the Control Panels folder and bring up the Network control panel, set to EtherTalk. For both systems, open MacTCP.

For MacTCP 2.0.6, then under "Obtain Address" select Manually. Under "IP Address" set the Class to "C". LAN networks won't need anything for the DNS information, but for internet access, this information is required. (See the Internet section for more on this subject.) If you do know it, then put a period (full stop) under Domain, followed by the DNS address. For the example on the right, is the address of the DSL modem and is the address of the router, while is the desired Internal IP address in the same subnet as the router. Individual addresses and setups vary.

MacTCP 2.0.6 settings with active
Internet access (7.5.3)

Under "Routing Information" put in the router address, if you don't use one (cross-over cable) then just put the Internal IP address of the host computer. Technical users may want to give this link a read over for special situations where the Server (used with PPP) or Dynamically radio buttons are appropriate. (The EtherTalk mode in MacTCP appears to only work with LANs, while Ethernet works with both WANs and LANs. Some odd units like the Farallon EtherWave Mac/PB adapter or Ethernet PCMCIA PC cards may have a "Alternate Ethernet" icon. EtherTalk is AppleTalk packets over Ethernet. LocalTalk is AppleTalk over a serial port. AFP over TCP/IP is an arrangement where AppleTalk data is encapsulated inside TCP/IP packets.) It is a common mistake to associate the "Server" mode of MacTCP with "DHCP Server": this is not the case. Server mode is used with hardware MacIP routers like the GatorBox which assign the client a specified IP address from a pool of IP addresses, or with PPP which does a somewhat similar affair.

For MacTCP 2.1, select Manually, enter in in Subnet mask, enter in the DNS info if you have it on hand, and press Okay.

After that dialog box, enter in the Internal IP address in the small text box below the connection options. If you're on a LAN and want to hook up to another Mac or computer, then both must be in same subnet. (Subnet example: The node (last digit set) must be individually assigned to a different number. Two computers can't have the same internal IP address of, but rather set one to something like and the other to If the computers involved are going through a router, then they all must be on the same subnet as the router, lest they won't talk to each other. Should all this be still unclear, refer to this image which might clear things up.

MacTCP 2.1 under 7.5.3

MacTCP with System 6

System 7 using MacTCP

Users and Groups (System 7+)

Sharing "Transfer F" (System 7)

Accessing a CD volume in SSW6

To enable File Sharing in System 7, open Sharing Setup in the Control Panels folder, enter in a username, a password (recommended, even if it's just "123", some programs and clients don't work so hot without one), set your machine name, and turn on File Sharing. (File Sharing enables sharing of all volumes 2MiB and larger. This may prevent them from being removed or ejected, like Zip disks. Turn off File Sharing first. For OS X, just use lsof in the command line.) Next, open Users and Groups. If you want to add a new user or login for outside users, then head to the File menu and select New User or New Group as required (a group is just a pool of users). For Guests to connect (helps for greasing the wheels in a LAN) then open that profile and set the appropriate preferences. Head to the Finder. Select a folder or volume you wish to share on the network. Open the File menu, then Sharing... and configure it to the desired preferences.

System 6 connected to Mac OS 9.2.2
From here, head into the Chooser to hook up via AFP. Select the target machine name and press OK to commence login. If you want to login with full owner privileges, then enter the target computer's Owner username and password, then press Okay. If you login as a different user, then enter in those details and continue. Multiple volumes can be mounted at the same time with by using the Shift key to select multiple mountable volumes, or re-logging in again.

Under System 6 (and earlier systems with AS 1.1) user privileges can be seen with the Access Privileges desk accessory in the Apple menu. It is not present in System 7+ and only works when the computer is connected to another server. Other folder or volume permissions can be examined with the "View Another" button. (System 4.1, Finder 5.4 with AppleShare 1.1 shown, all others identical.)

Access Privileges

MacTCP and Systems earlier than 7.5.3 with an AppleShare version earlier than 3.7.4 do not have the "Server IP Address..." button in the Chooser (even 7.6.1 with OT 1.3 installed doesn't put it in, because the AppleShare extension included is version 3.6.4). AppleShare Client 3.7.4 requires OT 1.1.2 or later: the default install of OT in 7.5.3 is version 1.1. In AppleShare Client 3.7.4 and greater, hold the Option key whilst double-clicking a server to force an AppleTalk (EtherTalk, because it's AppleTalk over Ethernet) connection: the default in later servers and clients is AFP over TCP/IP.

Open Transport

Watch out for delayed File Sharing startup on 7.5.3 through 9.2.2. It can take five minutes or more to get File Sharing going.

Open Transport built into Mac OS 9 also included a special licensed limited edition of ShareWay IP Personal for tunneling AFP packets inside TCP/IP packets which can be activated from the File Sharing control panel.

Open Network Software Selector (7.5.3-7.5.5 only), and tick Using Open Transport Networking. Reboot the machine. (Classic Networking hides the TCP/IP and AppleTalk control panels when enabled, and replaces them with Network and MacTCP.)

Classic Networking (7.5.3)

Head to the Control Panels. From the AppleTalk control panel, choose Ethernet ("Alternate Ethernet" may be used in place of "Ethernet built-in" or just plain "Ethernet" for users of hardware like PCMCIA Ethernet cards for PowerBooks). Next, open the TCP/IP control panel and set TCP/IP to Ethernet, and Using DHCP Server. For a simple LAN file transfer, Manually works just as well and aids in connecting to from the client side (no hunting around for the IP address if it doesn't show up in the Chooser or Network "browser" in OS X).

Open Sharing Setup (also known as File Sharing in Mac OS 8 and above). Set machine and username, a password is recommended even if it's just "123". Start File Sharing. From the Finder, select the volume or folder you wish to share on the network, then head to the File menu, then Sharing...; on the newer systems, folder sharing is found under a tab in the Get Info window. The Guest login is enabled by finding the Guest user in the Users and Groups control panel and activating it by double-clicking on the user account. Otherwise, users login by entering the account details of a Registered User, which can either be the administrator or a custom profiled user which is created in the same control panel.

OpenTransport selection (7.5.5)

Now for all pre-OS X computers, they can mount each other on their respective desktops by using the Chooser (except System 6 and earlier computers, which have no file serving capabilities, only client access.)

Note: The Chooser does not permit passwords longer than eight characters unless the System version is 7.6 or higher with the Encrypted Password Transport method. In such a case, login as a Guest (if permitted) or temporarily change the password, or access from the other machine (if allowable). Sometimes the EPT method will be the only method of connection.

DHCP Server is used because it's the simplest, although it is not mandatory, though it is probably the better option for the broadest compatibility with Internet services. DHCP Server basically means the machine culls its IP address from a router or another computer. If you have difficulty making it all work, try setting things up manually, which works better for FTP and Windows, otherwise users have to hunt down the IP address when connecting as a client. As long as both computers are in the same subnet and have different nodes, they can work together -- and DHCP sometimes throws a curve ball by taking too long to assign IP addresses. If the Mac is "going online" to the Internet, then the Router Address field must be filled out with the address of the router or modem, otherwise it won't work.

Avoid relying too much on the TCP/IP control panel for internal network numbers. It might say "not available" or "will be supplied by server" but that doesn't mean it has no connection (see below, second image from left). Any IP address used by DHCP that starts with is a self-assigned IP address; therefore, if a router is being used, it means that it isn't connected to the router. Manual addressing can sometimes be better for those who know what they're doing.

Manual configuration

DHCP Server

Cleartext vs. Encrypted

Chooser view from client (Mac OS 9.2.2)

Under Mac OS 9 and higher, users can be allowed to connect over TCP/IP. Mac OS X uses the TCP/IP method, as previously the AFP data was straight over the AppleTalk protocol, but the TCP/IP method tunnels AFP packets inside the TCP/IP protocol instead. This setting is found in the File Sharing control panel. This setting can sometimes interfere with older System Software versions; in this case turn it off. Alternatively, try turning it off, mounting one computer, turning it back on, and mounting the other.

In Mac OS 8.5 and above, the Network Browser can be installed into the Applications folder. It's sort of a Chooser substitute.

Network Browser

File sharing locally and online Internet access simultaneously can be only done via special methods or by sharing the Internet connection over AFP in OS X.

Mac OS X Networking Setup and Establishment

For dual TCP/IP setups, ensure that the connection to the Internet has the Router Address field filled out, otherwise it won't be able to locate the router; because OS X can have a LAN on Ethernet for example, yet have WiFi out to the Internet. In this instance, leave the Router Address field blank in the Ethernet (if manually configured), and the DHCP setting in the WiFi configuration will automatically resolve the router address which has Internet access.

To share the Mac OS X's Internet connection over the network, enable Personal Web Sharing in the Sharing pane of System Preferences. Click the Internet tab. Set "Share your connection from: _____" to Airport, FireWire, Bluetooth or whatever is not Ethernet. Set "To computers using" to Ethernet. It is not possible to share an incoming Ethernet connection to an outgoing Ethernet connection: use a router for this instance.

Dual TCP/IP config (10.5)

Internet Sharing config (10.4)

10.4.11 Network pane with dual TCP/IP

Port 80 issue (7.6.1):
Fetch and Homer 0.94 can't
connect but Mosaic 2.0.1 can

Note that certain Mac OS versions will only accept Port 80 (http): it is not known at this time what the OS limitations are at this time, although 9.2.2 on an iMac G4 800MHz did not experience this issue (only HTTP, FTP and IRC ports were tested, others may slip through). Other computers running Ubuntu, OS X or Windows should work fine. Setting the host computer to manual addressing and the client to DHCP ought to work, though testing indicated that MacTCP can work as well. The client computers accessing the shared Internet will be assigned internal IP addresses as usual, but will share the external IP address with the host. For example, if the external IP address on the host Mac is, then the clients will also have this external address. (The image at top left shows a DNS address of, which is the address of the modem. The WiFi is enabled with DHCP and is going through a router with an address of For a manual client configuration, set the Internal IP address to one compatible with the host (i.e. a host of and a client of, set the subnet mask and the router address (gateway) and DNS server to whatever the host designates. Try using DHCP or a different computer to find out what the relevant settings are supposed to be for a manual configuration if you're using MacTCP (or use ifconfig from a Terminal window).

Mac OS X 10.1 Puma and 10.2 Jaguar

In the case of System 6 and 7, then go to NetInfo Manager (Utilities folder). Authenticate the user. Click config, then AppleFileServer. Scroll down until you see use_appletalk, and double-click the field next to it and change the value from 0 (false) to 1 (true). (Panther has this too, it may be needed for printers.) Save the changes with Command + S or from the Domain menu, then click the lock. Reboot the Mac. AppleTalk should have already been on prior to this, but this step enables a backwards-compatible version of AppleTalk for use with older computers.

(The remainder of this section pertains to 10.2, although 10.1 isn't that different) Next, open System Preferences. Click Network. Select "Show" to Built-in Ethernet. Set as either DHCP, or configure it manually with a compatible Internal IP address and a subnet mask of If a cross-over cable is used between this Mac and the vintage machine, then set both to have the same subnet, but different nodes (such as for one and for the other); if a router is used, then both will share the same subnet as the router designates but maintain different nodes. Then enable AppleTalk under the AppleTalk tab. Head to the Sharing pane. Turn on Personal File Sharing. Enabling the Personal Web Sharing permits Internet sharing, which also needs to be activated in the Internet tab. For Guests to connect, set the proper permissions under Get Info for the volume or folder to share.

Open the Go menu, and select Connect to Server...; the target machine should show up after a little bit (System 6 cannot be mounted to 10.2's desktop because it has no server element). Double click it or click Connect and login. Easy as cake layered on pie.

From the other side, open the Chooser on the classic Mac and mount the volume.

In System 6, it appears that all mountable folders and volumes may locked (read only) in some cases. The Public Folder (write only permissions) may be the sole mountable volume unless SharePoints is used to enable additional folders. For System 7 and above, any shared folder or volume is available as a network share. Guests will only be able to mount the Public Folder unless full permissions are granted for Guests (Everyone). Be advised of the 2GiB volume limitation under System 6 and 7 as noted earlier in the Notes.

In 10.2 and above, while connecting to a server, the Options button can set some additional toggles, as shown below for a host of OS X Tiger.

Network configuration pane

NetInfo Manager editor

Connect to Server from Go menu

OS X Drop Box mounted on System 6

Connection options prompt

Mac OS X 10.3 Panther and 10.4 Tiger

Open System Preferences. Click Network. Select "Using DHCP" protocol, alternatively, setup a manual configuration with a compatible Internal IP address and a subnet mask of Click the AppleTalk tab, and make it active. If AppleTalk cannot be enabled, then open Directory Access (Utilities folder) and enable it there, then go back and make it active: if it still cannot be active, then it is because AppleTalk can only be active on one interface at a time (i.e. WiFi or Ethernet, but not both).

For 10.4 Tiger only (10.3 does not need this step), click the Sharing pane. Disable Personal File Sharing. Open Terminal. Paste this into the command line:

sudo defaults write /Library/Preferences/ TCPQuantum -int 327680

Enter the administrator's password. If it is successful, nothing unusual should appear.

10.4.11 Network pane

Network pane using DHCP

Terminal TCP Quantum hack

Sharing pane

Go back to Sharing. Enable Personal File Sharing. Then find the Home folder (~/Public/Drop\ Box for the Unix nerds) and open the Public folder, then Drop Box. Right click it or press Command + I for Get Info. Look down to "Ownership and Permission" and make sure that these settings are in line with the desired properties. For read/write access, "Others" should be set to "Read and Write", or set it up as the intended application allows. Alternatively, create users with various permissions, logging in as a Registered User.

Open Chooser on the Mac, and click AppleShare. The host Mac should appear; if it does not, click the "Server IP Address..." button and enter in the Internal Ethernet address. Select it and click the OK button, then login and mount the volume.

Password dialogue box

Mounted Drop Box (Guest login)

Shared Internet access with AFP

Mounted CD volume

As stated in the Chart, 10.3 Panther can mount a System 7+ server, even over an AFP bridge. If the System version is 7.0.1 or 7.1, then upgrade the File Sharing Extension to the one from SSW 7.5.3, version number is 7.6.2. Or, use AppleShare Server 3 or 4. 7.5.3+ won't need any such modifications. In Tiger, Mac OS 9 must enable the check box in the File Sharing control panel which will permit clients to connect over TCP/IP, otherwise it won't work.

Mac OS X 10.5 Leopard and 10.6 Snow Leopard

Mac OS 9 must have the "Enable file sharing clients to connect over TCP/IP" check box ticked to work with these systems as a server. If the check box is dimmed out, then dig into the install CD for the path /Mac OS 9/CD Extras/File Sharing Extras/ShareWay IP 3.0/ShareWay Applications/ and drag the ShareWay IP Personal Background into the Extensions Folder of the hard drive and reboot. Or, install the regular program there, but it's a 10-day trial version. Keep in mind that ShareWay IP Personal Bgnd can cause problems when the system is coming up from sleep. (Sleep can be hairy on pre-OS X systems. Some INITs and CDEVs are fine, others get destabilized and can lock up the system. File Sharing can also lock up the Finder when waking up. The author would go out on a venture and say that after Jaguar was when sleeping became "safe".)

Begin by opening System Preferences. Click the Network control panel. If you want to use DHCP for your network settings, then under the "Configure:" selection, choose Using DHCP; conversely, to configure things manually, select "Manually" and enter a compatible Internal IP Address as discussed earlier, followed by a Subnet Mask of Click the Show All button or go back, and select the Sharing pane.

Then in the Services field, turn File Sharing on with the checkbox. Near the right area, click Options. Click the "Share files and folders using AFP" button. Click Done, then local access permissions can be tweaked in the field for this subject.

From the OS 9 system, set up the system as directed in the OpenTransport section earlier. Open File Sharing. Click the "Allow users to connect over TCP/IP" button. Open the Chooser. If the target computer does not appear in the AppleShare field, try entering the target address manually; then various directories or volumes depending on permissions are accessible.

To mount the OS 9 system on the OS X side, use the Connect to Server feature in the Go menu and use the internal IP address, like afp://, as it won't appear in the Network "browser" viewable from any root level volume window.

Network pane

Sharing windows

Enabling AFP, SMB or FTP

File Sharing: TCP/IP setting

Editing folder privileges (10.5)

Sharing to pre-OS 9 systems with 10.5 Leopard, specifically concerning 8.1 through 8.6, has to be executed differently, because these older Mac OS versions can't log in as a user. Once AFP File Sharing has been activated, get the properties for a desired folder to share with the Get Info (Cmd+I) command. There's a checkbox for "Shared Folder" in the General field. Enable it, then click the little drop-down arrow toggle for Sharing and Permissions. Authenticate as an administrator by clicking the little lock icon in the lower right corner, then change the privilege for Everyone (meaning Guest users) to Read & Write for full access, or Read Only, or as desired. Click the lock icon and close the window when you're finished. The Public Folder is probably convenient enough to remember and use as a general share directory but remember to change the permissions back to No Access if you're going onto an insecure network or sensitive LAN. The Sharing pane inside System Preferences, as shown, allows convenient access to these properties and there is a little + button to add a new share directory, which will bring a prompt dialog to select one. 10.6 Snow Leopard will not work in this fashion because the AFP protocols are incompatible.

Mac OS X 10.6 Snow Leopard, 10.7 Lion, 10.8 Mountain Lion, 10.9 Mavericks, and 10.10 Yosemite

To enable file sharing with legacy systems with these platforms we'll have to make a slight change to the underlying operating system's AFP server program. Don't worry, it will be distilled down to Novice level. All credit goes to the users here (the actual process is explained on page 3, and has some technical detail which Expert users will appreciate).

For this operation, the from 10.5 Leopard will have to be obtained. There are two ways of doing this: extracting it from a 10.5 install and then there is using a utility like Pacifist to extract it from the 10.5.8 Combo update from Apple. This section will go along the path of extracting it from a regular install. The procedure in twenty-five words or less is: Downgrade the by copying it from 10.5 Leopard to the 10.6 through 10.10 OS X operating system. In the future, there is a possibility that this method could still work, but at the time of release, 10.10 is current.

Open System Preferences. Turn off File Sharing on the left hand side. Open the Leopard volume in the Finder, then navigate to the System folder, then Library, and lastly CoreServices. Keep this window on hand, then open the same path on the Lion or Mountain Lion volume or platform (/System/Library/CoreServices). Drag the 10.7 or 10.8's AppleFileServer to the desktop which copies it, then right-click (or Control+click for one-button pointing devices) and choose "Compress AppleFileServer". Drag the result, back into the Lion's directory (specifically, /System/Library/CoreServices) in case the original needs to be restored. Administrator authentication will be required. Delete the AppleFileServer on the Lion's volume, then copy the Leopard AppleFileServer into the Lion's aforementioned path.

Both locations shown: 10.7.5 on
top, 10.5.6 on bottom (10.7.5 running)

Assuming the system has already been configured with the appropriate interface in the Network control panel (it's a lot like 10.5 and 10.6's), simply turn File Sharing back on and from there, the system is ready to be mounted on a older Mac client with Mac OS 8.1 or greater (8.0 was not tested because 8.0 is known for instability). Advanced users: Compressing into the Zip archive removes the ownership of the ... directory from its ownership by root. sudo chown root -hR could do the trick, but attempts by the author to verify the integrity of said command line entry were not exactly successful. (Linux folks: Mac OS X programs, like, are technically directories with various binary files inside. Most replies indicated preference for using Disk Utility's Repair Permissions widget. Another valid method is to just use tar with the preserve permissions argument. In testing, the feature worked fine without fixing the permissions.)

Caution: These systems do not like Classic Mac files with type/creator codes and stuff like icon data. In some cases it will say that a disk error has occurred just before it finishes copying the file. The easiest way to check this is to copy a small program like Disk Copy 4.2 into the target directory and see if it brings up the error dialog. In testing, Mac OS 8.1 would simply copy very slowly, about 200KiB/sec or less, whereas Mac OS 9, 9.1 and 9.2 would transfer at normal speed, then pop the error. It would be wise to use Stuffit, Compact Pro, MacBinary or BinHex style encoding for insurance reasons. (The testing indicated that raw programs like Disk Copy 6.3.3, Marine Aquarium 2, TomeViewer 1.3D3 and so on would cause this error, but .dmg, .bin, .sit, .hqx, .rtf and .txt files were fine.)

10.7 and 10.8 have a reduced set of enabled UAMs (User Authentication Modules, basically methods of authentication, such as cleartext, two way random number exchange, DHX, and so forth) which could preclude the mounting of certain older machines, such as older NAS units. Try reading this Apple KB on enabling less secure UAMs. As part of testing for this Guide, running through the procedure did not change any of the restrictions of servers (such as 7.5.5, 8.1, 7.0.1, et cetera) listed in the Chart: the procedure doesn't work with 10.5 or 10.6, yet 10.9 might apply because it works with the command to read the list of disabled UAMs.

Microsoft Windows

Windows Server 2000 and 2003 support the Services for Macintosh feature to share out AFP volumes to Mac client computers. There are some third-party Windows software available (like Novell's Netware) which can provide server features as well to other Windows versions, however these additional software suites are not examined as part of this Guide. In this demonstration, we'll set up 2000 Server up and prepare it to accessible to other Macs. At this present time, 2003 Server will not be explored because it is too expensive on the open market. The Server editions of Windows have many other useful features like Telnet server, WWW server, FTP server, DNS server services, and more.

During a fresh install of the Software, the Windows Components Wizard appears where optional elements can be installed or removed. (The image shown is post-install, because screenshots cannot be captured during the install process of Windows without hardware video capture tools or the use of virtual machines.) Scroll halfway down through the list until the "Other Network File and Print Services" component is shown. Tick the box. To install the FTP Server option, first find the "Internet Information Services (IIS)" component, click the Details button, then scroll until the FTP Server option is located. Tick the box and it should be taken care of. If any of these options were not installed the first time, they can be reinstalled afterwards by heading to the Start menu, then Programs, then Administrative Tools, then the Configure Your Server app. Hit the Advanced option on the left toolpane, then tick the Optional Components hyperlink, then the start the wizard. Alternatively, this wizard can be found in the Add/Remove Programs in the Control Panel, on the left pane.

System 7.6.1 to Windows 2K Server
with CD drive (Win98SE disc)

Installing components

Completing server setup

Configuring a shared folder

SFM service properties

The Configure Your Server app is started by default on a fresh install of the OS and some quick configuring is all that is necessary to configure some settings, then dismiss it. Windows 2000 Server has a host of features but we'll just demonstrate SFM over Ethernet. LocalTalk access is not supported unless a LocalTalk PC card is installed or a Ethernet to LocalTalk bridge is used.

To start the SFM service, from the Configure Your Server app (if it is lost, it's in the /Start/Programs/Administrative Tools area), click the File Server option on the left toolpane. Start the Shared Folder wizard. Browse for a folder to share, we'll use the My Documents folder to start off with. Name the share. Tick the "Apple Macintosh" client option, then fill in the Macintosh share name. Click Next. To simplify setup and because we are not worried about Internet malware (LAN only), you may select the "All users have full control" option, or the preferences may tweaked as needed. Click Finish.

From the Component Services app (Start/Programs/Administrative Tools/) the service may be stopped or started as the situation merits: shares can also be added or removed from that application. To configure Ethernet to be used, open the "Network and Dial-up Connections" applet. Double click Local Area Network. Scroll down in the little component area in the window until you find the Internet Protocol option at the bottom. Hit the Properties button. The "automatic" option is DHCP Server -- for manual setup, tick the "Use the following IP address", then fill it out -- for our example, and a subnet of was used (via a cross-over cable). If the machine is hooked to a router that goes out to the Internet, then fill out the router's internal address (like for the gateway.

Guest properties settings

Configuring TCP/IP

Viewing available shares

W2S SFM under 10.5.8

Because the Services for Macintosh is a file server feature only, it won't be able to access any Macs and mount them in the Network Connections area. To mount the Server on a Mac, first configure the Mac side as demonstrated earlier with the MacTCP and/or OpenTransport setup instructions (and the Ethernet cable is connected, with a straight cable for a router, or cross-over for direct computer-computer connection). Then head to the Chooser and mount the volume -- in OS X, open the Go menu and mount it from there. It is possible to share the CD drive if the volume is CDFS -- HFS disks will not work. (A note: the "shared folder" representing the CD drive may have to be removed and replaced with a new share if a different disk is inserted. OS X does not have this abnormality while sharing its CD drive.)

Shared folders

For a Guest user to connect, the shared folder must be in the root path of the hard drive (for instance, "D:/SharedF") as directories and files in the user folders cannot be made accessible to Guest user accounts: ensure the checkbox for Guest access in the folder properties is marked, lest it won't work. Also the Guest user account will have to be activated (see the image above, to the far left). Only NTFS based partitions or volumes can be shared, FAT32 is not accessible to SFM client users. For all users, the UAM volume is available to be mounted. This is a suite of networking software meant for AppleShare 3.6 and 3.8 intended for semi-secure password transport and login into 2000 Server. It won't work with AFP over TCP/IP. Logging in as a user or an administrator will mount the shared volume (Fun Folder in our case) and the machine name is broadcast over the network. In pre-OS X systems, the Chooser will work fine, however in OS X you must use the Connect to Server feature and enter in the IP address (such as afp:// because the advertising doesn't work under OS X. All read/write/access permissions are administered on the Server.

In Windows 2000 Server and possibly later versions of Windows Server, the Macfile utility, accessed from the command line (or Command Prompt) can perform some interesting functions, such as the forkize feature which can join a resource fork to a data fork to make a single file, while also setting the type and creator data. It's probably rarely used, but it's worth a mention. The command copy can also combine (known as concatenate; use copy /? or see the Windows Help documentation on the copy command; or here) one or more files together, but it's not the same thing as the Macfile utility.


For Linux, the Netatalk stack is used for file server services, and the afpfs-ng Terminal-driven stack is used as a client to access AFP shares. First the Netatalk portion will be discussed.

For users of older distros, the repository sources may have to be updated. In Ubuntu for instance, older releases have the repository sources at, and the Software Sources manager will not know of such a location (perhaps excepting newer distros at the time of this writing, like 12.10 Quantal), so the sources.list file will have to be manually updated to the new locations. To do this, type the next command into a Terminal window:

sudo gedit /etc/apt/sources.list

Editing the sources.list file

Comment out every single line as shown in the image (or delete them, same thing), and add the proper repository sources as shown, or directed. For example, 7.10 Gutsy would get the first line of the source to look like this:

deb gutsy main restricted universe multiverse

The whole list of archived repository data is located here for reference, so it's just a matter of editing the file to look similar to the previous image, so that the Software Sources will look like the image to the right, with proper pointers. Do take notice that as old releases, they will not receive any updates, security patches, fixes or any other maintenance.

9.10 with refreshed sources

The lower limit of this Netatalk package to work successfully is not known (concerning Ubuntu, like if it will work with 4.10 Warty), and depending on alternative distros like KDE or Slackware, this may or may not be a concern. If the Linux system has no repository support, then the difficulty of this work can quickly ratchet up to Expert Grade -- not for the average user. Actually, being forced to compile some old distro to use modern programs using nothing but source code and man pages could constitute cruel and unusual punishment...

Netatalk 2.1.6 Server

Owing to the perplexing complexity of the Linux platform, it can be considered reasonable that only two distros are demonstrated -- in this case, Ubuntu 10.04.4LTS "lucid" and 9.10 "karmic". (They'll look the same, because the 10.04 system has been back-themed to look like 9.10.) Refer to this site for Slackware specific information.

The Netatalk stack must be installed from source because using sudo apt-get install netatalk will not set the --enable-ddp flag which is required for systems not using AFP over TCP/IP, however this depends on the repository. Some will have it already enabled, but it isn't very hard to compile from source anyways. Netatalk 3.x dropped AppleTalk support (DDP) and will not work entirely in this manner of this section. The Netatalk service is a server only and cannot access any other AFP servers as a client. Specifically, Netatalk 3.x is designed for OS X 10.4+, not for older Mac clients and includes OS X specific features such as Time Machine support.

A Lenovo ThinkPad X200 using
Netatalk with a 512Ke (S3.3/F5.4)

Although this section prescribes the use of Netatalk 2.1.6, any version of 2.2 ought to work. In testing under Ubuntu 10.04.4LTS x64 however, 2.2.3 with Zeroconf enabled kicked an error on the client saying that it didn't have a recognizable logon sequence, 2.2.4 worked fine, but Zeroconf was not enabled, and 2.2.5 had a build error. Therefore, should 2.2.x not work on your platform, simply default back to 2.1.6.

The very first commands to be run are the following (the second one is more or less optional...depending on the case at hand)...

sudo apt-get update sudo apt-get upgrade

7.5.3 to Netatalk 2.1.6

Then the next step is to install each of the following libraries, from either source (common-man need not apply) or from the repositories for the distro in question:

libavahi-client-dev; libcups2-dev; libdb-dev; libssl-dev

On a Debian system as we have here (Ubuntu is based on Debian), we type:

sudo apt-get install libavahi-client-dev libcups2-dev libdb-dev libssl-dev

Multiple libraries can be installed with a single command, as shown. Avahi is an open-source implementation of Zeroconf (Rendezvous/Bonjour in Applespeak) and helps advertise computers over networks; libcups2 is part of the Common Unix Printer Service; libdb-dev is the Berkeley DB stack from Oracle for managing databases; and libssl is for SSL encrypted networking services. Next, we get to build Netatalk from source code.

Point a browser to this website. Click the version 2.1.6 directory. Download the netatalk-2.1.6-tar.gz file (the tar.bz2 can be used also, just a different Terminal command to unpack it). Open the Terminal application.

Use the cd command to navigate to the directory where the tarball (.tar.gz) was downloaded. For example, if the tarball was downloaded to the user's Downloads folder in the Home Directory, then type:

sudo apt-get command
cd ~/Downloads navigate to that directory. cd .. goes back one directory, if needed, and ls lists the contents (mostly... ls -al lists everything) of the folder in question (and clear clears the terminal). Once the download has been located, type the following:

tar -zxvf netatalk[tab key][enter key]

The tab key is an auto-completion helper, which DOS must have surely envied. The Enter key completes the command. If the .tar.bz2 was downloaded instead, then replace the "z" with a "j".

Newbie pointers:

Coming along? Good. Once the archive has decompressed, there should be a folder named "netatalk 2.1.6" in the source directory where the archive was located. Navigate to that directory by typing:

cd netatalk[tab key][enter]

Now let's get even more ornate by entering in the following for a Debian based distro; but read the next paragraph before completing the command:

Locating libssl (see note below)
./configure --enable-debian --sysconfdir=/etc --with-uams-path=/usr/lib/netatalk --with-ssl-dir=/usr/lib/

Notice! Triple-check the command matches as it is written here, as it generates a Makefile which tells the compiler how to build the stack. Any errors will appear just after the command is entered, usually like warning: --enable-ssl not understood. If it was configured incorrectly, redo it. Distros with install directories other than the kind used here may have to change the --with-uams-path and --with-ssl-dir paths: see the image above of how the /lib/ssl path may have to be located manually, which is a highly suggested step to make sure that the reference path is correct. The varieties of Linux inhibit a comprehensive list here other than Debian systems. Both Debian and Ubuntu systems get the --enable-debian flag. Other systems like SUSE get a different one -- see the netatalk manual page; or type ./configure --help to see what flags like --enable-suse to use. Here are some additional flags which may be needed depending on the case at hand:

Watch for errors just after the
(Shown with no errors)

Examine the Summary for anything strange, then enter the next two commands (these can be made "silent" so there is no output, see man make for details about the -s flag):

sudo make sudo make install

Enter the appropriate password as requested. Gasp in amazement at the nerdy printout. Once that is done, we have a couple of configuration files will need to be edited with a text editor. The first is /etc/default/netatalk, the second is AppleVolumes.default, the third is /etc/netatalk/afpd.conf and the last is atalkd.conf. First type the following command in Terminal:

sudo gedit /etc/default/netatalk

./configure result. Verify for any unusuals

(If the --enable-debian flag has not been used, then the path is /etc/netatalk/netatalk.conf) This is the configuration file that sets some key parameters. (If any blank documents show up instead of ones with text like as shown to the right, then the command or path is most likely incorrect. Don't save the document, quit and recheck the command.) Scroll down until near the bottom, and find ATALKD_RUN and change the no to a yes. (For Netatalk 2.2.x, remove the # in front of the line.) Save changes, then close and follow up with the next command is to edit the shared folders:

sudo gedit /etc/netatalk/AppleVolumes.default

All config files & start command

This file describes which local folders are shared. The default is ~/, or the Home directory (assuming only one user on the system). For this demonstration we'll add the Downloads folder (~/Downloads). To do this, scroll down to the bottom and note the little ~. Add a / after the ~, then add the line "Home Directory" to the right of it, separated by a space (although this step isn't really necessary, we're doing it for completeness). Finally, add the line ~/Downloads "Linux DownloadF", like below (have a look at the screenshot to the right if this is confusing):

~/ "Home Directory" ~/Downloads "Linux DownloadF"

Basically this makes two shares available: the user's Home folder and the Downloads folder. The ~/Downloads is the path of the share, and the "Linux DownloadF" is the name of the share that is shown to other clients. Obviously the individual user can choose how to set these shares up to share pretty much any folder, but the "Downloads" folder is used for demonstration purposes. Close the file, saving changes. (Note how in the previous image how the dual-partitioned-bootable-thumbdrive install is sharing the FAT32 partition with the /media/ path.) For extended deployment of Netatalk with a variety of shares, a better way is to set up some kind of path in /var/ with a variety of folders which will serve different purposes. An example would be something like the following:

~/ "Home Directory" /var/netatalk/Archive "OS X Archive Folder" /var/netatalk/Documents "Central Document Repository" /var/netatalk/VintageMac "Old Mac Storehouse"

Obviously the folders will have to be created with mkdir along with chmod and all that, but advanced users who are reading this should have no difficulties understanding what to do and how to do it.

To share the CD-ROM drive, adding the line /media/cdrom0 "CD Drive Share" ought to work: but first run this command cd /media/ && ls and see what the result is (like cdrom cdrom0 floppy floppy0; various systems may differ slightly) before adding it... if the system has a USB CD drive, then it won't work without a disc in it; in this case, you'll have to share the name of the volume, as shown below. In this case, this file will have to be manually changed and Netatalk restarted if a different disc is inserted:

/media/SimCopter "CD Drive Share" ~/ "Home Directory" ~/Downloads "Linux DownloadF"

Users with Mac OS System versions prior to 7.5.3 or Apple II computers running ProDOS may want to add a slight modification to avoid file system issues, such as the following examples:

~/ "Home Directory" ~/Downloads "Linux DownloadF" volsizelimit:63 /media/96B47E34B47E16C9 "Windows XP Partition" volsizelimit:2047

The volsizelimit:XX addition reports the size of the volume according to XX mebibytes (not the usual *NIX megabytes) for compatibility purposes. According to the documentation, limitsize is supposed to set the maximum reported volume size at 2GiB, but it doesn't seem to work (it might go on the line that starts with :DEFAULT: options: upriv,usedots, so perhaps like this: :DEFAULT: options: upriv,usedots,limitsize). Also it was noted that S3.3/F5.4 would bomb if the user's Home Directory was opened: simply share another directory like the ~/Documents folder.

Save the changes to the file, then close it. Now it's time to edit the afpd.conf file.

sudo gedit /etc/netatalk/afpd.conf

Head to the very bottom of the document (line 293). Place this text in its place:

- -transall -uamlist,, -nosavepassword

(UAMs means User Authentication Modules, part of AppleTalk user identification) The -nosavepassword flag forbids clients from storing the password on their systems for faster access or auto-mounting (and thusly a security hole; feel free to omit it for basic home LANs). Now, since the entire setup will be over Ethernet (although using the wireless port is perfectly possible), the primary interface "callsign" for the port must be discovered. On Ubuntu, the command is simply ifconfig, on Debian systems it is /sbin/ifconfig. Note the interfaces active: there are usually three on a modern computer, wlan0 (wireless interface), eth0 (Ethernet port), and lo (loopback interface for localhost at Sometimes the eth0 can be replaced by eth1 or en1 depending on the system (along with wlan1, et cetera). We tell Netatalk what interface for the service by editing one last configuration file, which is the atalkd.conf file:

sudo gedit /etc/netatalk/atalkd.conf

Scroll to the bottom and place the following at the bottom, replacing eth0 (that's a zero) with the appropriate networking identifier if it is not eth0:

eth0 -phase 2 -net 0-65534 -addr 65280.163

If you use WiFi instead of Ethernet, then the line might look like this:

wlan0 -phase 2 -net 0-65534 -addr 65280.163

To set up Netatalk with various zones, read this page for zone configuration. Don't bother with zones unless a really big network is in use.

Close and start Netatalk with the command below:

sudo /etc/init.d/netatalk start

Ensure that the atalkd cnid_metad afpd services are started. If not, there is a problem somewhere in the config files or the ./configure string was incorrect, most likely.

If any changes are applied to any of the configuration files while Netatalk was running, use the previous command but replace start with restart to update the changes. start can also be swapped for stop to terminate the Netatalk service. The service must be started each time the computer is booted, to establish this automatically, use this command (unconfirmed for this application, advanced users will probably just make a cron job):

sudo update-rc.d netatalk defaults

Now the server is available to clients (it cannot access other servers). To configure the Ethernet connection, open the System menu, then the Preferences submenu, followed by Network Connections (for GNOME 2 systems). Click the "Auto eth0" (or "Auto eth1") interface, then click Edit. From this window, click the IPv4 tab, then Address field can be edited to set up either a manual address (like, netmask, router address as required) or leave the default DHCP Server settings; if those don't work then check for a "Link-Local" setting (used for direct computer-computer connections, and "Link-Local" should be used for AFP bridges rather than manual addressing or DHCP) for cross-over setups without routers.

At this point, vintage machines should be able to detect the Netatalk service in the Chooser. Later Macs may or may not detect the machine in the Network "browser"; in this case, head back to the Linux system and use ifconfig (or /sbin/ifconfig) to find out the internal IP address: look for the address after inet or inet addr: in the eth0 or en0 interface (or eth1, en1, wlan0, wlan1, et cetera depending on which one is applicable), and enter that address in the Go menu > Connect to Server prompt. An example would be afp://

DHCP Server IP address discovery
(after the eth0 "inet addr:")

To permit Guest access, run something like sudo mkdir /media/GuestF, then run sudo chmod 777 /media/GuestF so that the folder permissions (which will be owned by root) will permit read/write/execute operations for everybody, otherwise it won't work (user directories or any path of the File System cannot be shared without editing permissions, which is not advisable). Add the share path to /etc/netatalk/AppleVolumes.default like as shown earlier (cheat: /media/GuestF "Guest Directory"). Then edit the afpd.conf file so that the line at the bottom looks like the following with the, tacked on:

- -transall -uamlist,,, -nosavepassword -setuplog "default log_info /var/log/afpd.log"

Finally, restart the service with sudo /etc/init.d/netatalk restart to apply the changes, if it was already running. Note: Only use Guest accounts for special purposes because of the fairly serious security weakness. Logging is useful during troublesome times: look to sudo gedit /etc/netatalk/afpd.conf for two examples, one being the standard log (shown in the previous code line) and the much more verbose debug log. The log feature can also be enabled during the ./configure step.

Thanks go out to protocol7 at for notes and tips regarding this setup. Another nod to this page here for supplemental hints.

afpfs-ng Client Access

This software is meant to access AFP servers from Linux systems. There are a couple of hard realities about this software: 1) it's still a beta, but runs like alpha software; 2) all the Ubuntu sources classify it in the "unstable release" category, with good reason; 3) it only works with AFP 3 servers, meaning OS X (OS 9 and earlier used AFP 1 or 2, depending on whether it was AFP over TCP/IP or not); 4) it only works from a command line despite a lovely teaser X11 image floating around; 5) has to be compiled from source for most distros, meaning there could be gotchas relating to the ./configure string, and finally 6) testing on OS X 10.2.8 machine (iMac G4 800MHz) failed to produce results worth posting here. The computer could be detected and shares listed, but no one share could be mounted.

Otherwise, for the more adventurous Linux types, feel free to head out and test it out, although many users have reported issues with the software. Because it only supports the AFP 3 (OS X) version of the protocol, this means that there are plenty of more established networking methods available such as FTP or SMB (Samba for *NIX allows SMB access and sharing).

iOS Netatalk Server

The Cydia version of Netatalk at the time of testing is 2.0.4-7, but it lacks the requisite EtherTalk code in the kernel, so it won't work on earlier systems, and the advertising feature doesn't work in pre-OS X platforms. Thus, the minimum OS to mount this share is 7.5.3 with OT 1.3 and ASC 3.7.4, and the maximum will most likely be OS X 10.10 Yosemite -- or install openSSH and use a GUI SSH client like FileZilla or Fugu to access the device. In Mac OS X, it will show up under the "Network Locations" area from the Go menu/Connect to Server feature. For the Classic OSs, the "Server IP Address..." button in the Chooser is the only way to mount the iOS share.

As this package can only be installed on jailbroken devices, this section will only cover the Netatalk element. Detailed tutorials elsewhere on the web can demonstrate how to jailbreak with software like redsn0w, limera1n and other utilities.

System 7.6.1 on the iOS device

Once the Cydia package manager is available, search for "Netatalk" with the search function. Install it, then restart Springboard (or "Respring"), assuming the useful SBSettings package is installed: if not, just reboot the unit. Next, if SBSettings is open, then the WiFi internal IP address should be visible from the drop-down menu. Alternatively, tap Settings, then either General or WiFi (depends on the iOS version, and device) to open the WiFi Networks panel. Hit the little blue (>) icon to obtain more information on the currently active WiFi network, and then the internal IP address should be shown in the "IP Address" field. At this present time it is not known whether this service will work over cellular data, although there are a few jailbreak programs that can fake WiFi access to cellular-denied apps.

Now for Classic OS systems and earlier, assuming they have already been configured as demonstrated in the earlier systems, the Netatalk share can be access either in the Chooser with the "Server IP Address" button, which can be used to connect to a non-standard AFP port, such as In OS X, use the "Connect to Server..." selection in the Go menu: the "Browse" button or Cmd + Shift + K will instantly bring up the Network Locations area in a new Finder window in later OS X versions like 10.4 and 10.5+. The root and home directories are available to be accessed once mounted. For users who have not changed the root and mobile passwords (highly recommended, install MobileTerminal to do so, instructions are on Cydia) the default passwords for both root and mobile are alpine. The mobile account cannot be logged into -- use the root account. (The device for this testing is an iPad 1 3G 32GB model on iOS 5.1.1, the last iOS version for this unit.)

Netatalk package in Cydia

Package components to be installed

SBSettings menu showing IP address

OS X 10.5.8 accessing the share

Encountered Issues

• System hangs before loading control panels.

This likely happens because AppleShare is unable to load correctly. Turn the machine off manually, hold down Shift while rebooting until "Extensions Disabled" appears. Head to the System folder and trash the AppleShare Prep and AppleTalk Prefs files. Reboot. This can also happen if the Installer is not used to install AppleShare, in which case the system will bomb. If the problem persists, reinstall AppleShare.

The extensions are usually loaded in a special sequence, usually alphabetically (although there are characters like "space" that come before the A thru Z), and barring any extension managers, A is usually first up -- in this case, AppleShare.

• All connections are good and settings are good, but the computer does not appear in Chooser.

Try entering the IPv4 address in the "Server IP Address..." (for instance, shown at right, Usually if a computer cannot be detected the "Server IP Address" method won't work. Only applies to 7.5.3 (and up) with AppleShare 3.7.4 or greater, (7.1 with OT 1.1.2 or 1.3 doesn't have this feature). If it still doesn't work, recheck the configuration on both sides, reboot all computers or try FTP.

Using the IPv4 Internal Address

• In OS X, the connection automatically terminates after about two hours.

No solution for this issue has been found yet. It could relate to the auto-disconnect feature in OS X, however the author still encounters this issue even when it is off. However, this did not happen when the author used a router as a gateway. There could be a hidden anomaly caused by using cross-over cables.

Unexpected connection termination

• The Chooser returns this dialogue box whether double-clicking on the server name or entering the Server IP Address.

Try rebooting the target computer. Attempt once again. If that fails, try disabling the built-in firewall and unchecking any boxes in the "Advanced..." prompt of the Firewall tab (OS X). (Disconnect from the web if security is an issue) Re-apply the TCP Quantum hack (10.4 only), the turn off AFP file sharing, then back on again. If that doesn't work, you might be forced to reinstall OSs or move on to FTP. (The author would also encounter this occasionally under 10.4.11 without a router.)

Connection failure

Also, it has been noted that while logging into a 10.4 system, with Guests disabled, the toggle radio button for Guests in the login screen in Chooser is active, but when a Guest login is attempted, the process fails. For Netatalk servers, make sure disable Firestarter/ufw/iptables software, or make sure it can get through (for advanced users).

• The Chooser or the system freezes for about two minutes if the cable is accidentally disconnected.

Use the AppleShare Client Setup Utility (AppleShare_Client_Setup.smi.bin) to reduce the default timeout from 120 seconds to something more reasonable. There is also "AppleShareSetup_1.0.1.sea.bin" for 7.0/7.1.

• The system complains that it cannot start File Sharing.

There are a number of reasons why this occurs. The dialog can be a source of intense frustration because it doesn't offer any clues as to the reason why. Try reading this Apple KB for ideas.

File Transfer Protocol

Although FTP client software has changed dramatically over the years, the networking protocol itself has actually changed very little since its introduction in the early 1970s. That is why it makes a such good choice for online and LAN cross-platform networking. There are two sides, a client and a server; the client needs a client application to access the server, and the server itself which likewise requires FTP server software to facilitate the connection (two clients can't talk to each other, neither can two servers). The client can PUT (transfer files from itself to the server) or GET (pull files from the server), depending on permissions. This entire section will presume the connection method is over Ethernet.

MacBinary (.bin) or BinHex (.hqx) encoding is essential protect resource forks when transferring files with FTP. The section here talks in detail about the methods to safely encode files with BinHex or MacBinary methods. Additionally, correct FTP encoding method (binary or ASCII) is important, which is dependent on the file(s). See this page for more on this. The image to the right was corrupted by reason of the wrong encoding technique, likely ASCII when it was supposed to be Binary. (Compare to what happens when a floppy starts going bad.)

For this section, we'll be operating under the assumption that the Ethernet network has already been configured and wired up (if not, then see the Client Access section below for some basic instructions). To begin, start by starting the Server software, then head to the client and start it up to initiate the file transfer process.

Server Software

The side-effects of improper
encoding... (converted to .png)

Both Mac OS X and some Microsoft Windows versions have built-in FTP server software. Third-party applications can bridge the gap for platforms that lack this easy option. But let's take a look at some of the server options available to us.

NetPresenz 4.1

NetPresenz is a FTP, WWW and Gopher server application which runs only under pre-OS X machines. It requires a minimum of System 7.0.1 for it to run. The following is a walkthrough to get it set up and connected over a Local Area Network (LAN). It can be found along with a variety of other FTP client and server applications here.

NetPresenz is a good program. There is plenty of documentation and it's pretty minimalist for slow computers. To set it up, first get MacTCP (or Open Transport) set up as described earlier in the AFP section. Make sure the target address is in the same subnet as the host computer and just ensure that one computer doesn't have the same node as another. Setting up IP addresses manually makes things easier because then you don't have to try to find out what the IP address is to connect to it.

Note: For Open Transport Networking, manually assign the IP address and subnet mask if those aren't already assigned from another computer; otherwise the server won't start, as it requires an IP address assignment to

NetPresenz Folder

function properly. DHCP settings are fine as long as it has been assigned an IP address already because it can't work without one.

Open NetPresenz Setup. It will ask about Internet Config. Internet Config was a tool back in the day to manage the preferences of all compatible Internet applications (e.g. browser, email client, NetPresenz, IRC clients et cetera) in one central application. It is not required to run NetPresenz and given that the likelihood of anybody using an original IIx to check email, chat, browse and all in one main computer is quite slim, so feel free to skip it.

The settings may vary on individual setup and configuration. If the computer is connected to the Internet and StuxNet Mk.2 isn't welcomed, then it is possible to set the max users to 1 and vary the permissions to suit the circumstances (although a trojan that bad could probably just tunnel its malware through the client).

Setup application config dialogue

This application should be also capable of setting up a Gopher or WWW server but that subject is not covered in this Guide. There are also other useful settings in the Security pane, such as forbidding PUT or GET commands.

Once the configuration settings are satisfactory, launch NetPresenz in the main folder to start the server. From the Setup application, the background mode can be on or off; on means the application runs in the background and the computer must be rebooted for it to quit. Off means that the server runs like an application and can be quit at any time, and it will show a nice FTP log of what is going on. Make sure a volume or folder within a volume is shared using the Get Info/Sharing menu (or File Sharing...).

Bottom line shows IP address

Notice in the last image, how the last line of NetPresenz starting up shows the IP address it is running on. This is useful for running with DHCP settings. Do be advised that this program, because it relies on the File Sharing and Users & Groups elements of the standard Mac OS, it won't work right with AppleShare Server installed; and it cannot "share a share", meaning share another network volume.

NCSA Telnet 2.7b4

This is a rather troubled child which sometimes can have rather sporadic reliability. The author noted spotty client access from other client computers, though for System 6 there aren't too many alternatives. It is very easy to set up and enable the server, although for System 7, NetPresenz is a much more reliable program. If it works -- great: if not, move on. Other internet denizens have reported similar results.

This program wants an IP address assignment before it will start up correctly. From that point, go to the Edit menu, then the Preferences sub-menu. Set up the user account in the "FTP Users" prompt first, by filling in the password and default directory. Finally, turn on the server in the "FTP Server" selection. All in all, pretty simple, but not renown for reliability. It's really meant for transferring files by Telnet: what happens is the remote computer calls up the FTP server on the computer with NCSA Telnet running. See the Telnet section for additional discussion about this feature.

Technically, NCSA Telnet 2.6 is supposed to be for System 6 and 2.7b4 is supposed to be more compatible with System 7. Version 2.5 has a SLIP feature which is described in the Serial Data Interlinks section because this feature only works over serial ports and requires a SLIP server which is not the same thing as a PPP server.


Rumpus is a FTP server produced by Maxum. The two versions we'll be discussing are 1.1 and 3.5.

Rumpus Pro 1.1 came out some time ago, but is still useful enough. Actually it's supposed expire on September 30th, 1997, barring a valid registration credentials, but if it is downloaded from the right source (Macintosh Garden), there should be a Rumpus Pro 1.1 [k] patch which makes it so it continues working in demo mode. Unlike version 3.5, it cannot share a non-logical volume.

It is nice and easy to get going. (Something for Linux to aspire to.) There are only three windows to worry about: Configuration, Monitor and Define Users, all from the File menu. Choose Configuration, and from the Basic tab, the FTP root directory can be changed and the Security tab determines how secure the server is supposed to be with some checkboxes and radio buttons. "Anonymous Login Only" means only Guests are allowed, the Users & Groups security mode borrows the same user and group profile information used by File Sharing, and "Built-In Security" means that the list of allowed logins will be configured inside the program through the Define Users window from the File menu. The remaining tabs in the Configuration window can be passed on for a basic home LAN. As long as the program is open, the FTP server is active and can be connected by any usual client.

Rumpus Pro 1.1

Rumpus 3.5 is the last version for Classic Mac OS, and it requires a PPC processor, System 7.5+ with OT, and at least 8MiB of RAM, according to the system requirements inscribed in the User's Guide. It is set to expire on June 30th, 2006. Because the standard version is supposed to cost $250 US it is a little hard to justify purchasing it. It is however on the professional class of FTP server software and has plenty of features and configuration options.

Compared to Rumpus 1.1 and NetPresenz 4.1, this one is clearly meant for full-blown server jobs. It adds the following: web admin, web server, puts the User management into high gear with more options (read: restrictions and limits), has folder sets, can block IPs, can manage suffixes (i.e. an incoming file with no type and creator but with .sit extension can get automatically mapped to SIT! and SITD) and finally some other settings like the FTP high port address range. It looks pretty much the same as version 1.1 in its overall UI, it will be slightly trickier to get going but in principle it does beat the stuffing out of configuring an FTP server entirely from the command-line.

The reason this software is mentioned here is because it can share a non-logical volume, like a mounted AFP volume, such as an EasyShare server running off an HFS floppy disk. But because it requires a proper registration process (it's still commercial software) and the included help documentation is easy to follow, there's not much more to say. Rumpus 3.5 does show the IP address of the server in the About Rumpus selection from the Apple menu -- version 1.1 will have to go to the TCP/IP control panel. Unless the ability to "share a share" is needed, and it is just a local LAN FTP network, NetPresenz 4.1 should be good enough.

Mac OS X's Built-in FTP Server

For OS X 10.2, 10.3 and 10.4, simply enable FTP Access under the Sharing pane in System Preferences. In OS X 10.5 and 10.6, head to the Sharing pane, then click the File Sharing checkbox, then click the Options button. Click the "Sharing files using FTP" button. 10.7 on upwards requires a slightly different process, instead being done all in Terminal, like so:

Open Terminal. Sudo permissions are required. First, to load the service daemon:

sudo launchctl load -w /System/Library/LaunchDaemons/ftp.plist

This starts FTP and you are ready to go. To stop the service, type:

sudo launchctl stop

To restart it again, type:

sudo launchctl start

Now to remove the daemon from service and remove it from the services running, type:

sudo launchctl unload /System/Library/LaunchDaemons/ftp.plist

Information for this procedure was gleaned from this link. In 10.4, only the first command entry works properly, for a note. A little more difficult than simply pressing a button in System Preferences, but that is the way it is. This was likely removed from the Sharing pane because FTP passwords are all sent in cleartext, excepting SFTP or FTP with encryption like TLS. One way to speed this up is to use an AppleScript executable and a GUI prompt; an alternative would use more powerful FTP servers, one free example would be FileZilla Server.

Microsoft Windows Built-in FTP Servers

The Server builds of Windows have an option for using a built-in FTP server. Windows 2000 Server will be demonstrated in this case. This option is also available under Windows 2000 Professional, and Advanced Server, as seen here; Windows XP has it as well, though Windows 98 Second Edition does not have this feature.

If the FTP Server is not installed by default when the OS was first installed, then head to the Control Panel, and then the Add/Remove Programs applet. From the left pane, click the "Add/Remove Windows Components" button. Find the Internet Information Services (IIS) option, double click it, then tick the FTP Server option. Then click OK and then follow up with Next to install it: the installation CD will most likely be required.

Terminal login (10.5)
To set up Ethernet for manual configuration, look to the Start menu, hit Settings, then "Network and Dial-up Connections". Double click Local Area Connection, then find the Internet Protocol option in the components area. Double click it, then tick the "Use the following IP address" radio button. Enter a suitable internal IP address (like, depending on router addresses and such), a netmask of, then the gateway (router) address if used, and the modem address (if used). Or, run the command ipconfig /all from the Command Prompt to find out what the internal IP address is if the automatic configuration (DHCP) is preferred.

Next, head to the Start menu, then Programs, then Administrative Tools, then Computer Management. Find the Services and Applications option under the left toolpane (or tree). Look for the Internet Information Services

Fetch 2.1.2 in use

submenu. Right click the "Default FTP Site", and from there it can initiated or terminated, or additional options can be seen with the Properties link. (The Server can also be started or stopped from the Component Services app in Administrative Tools, off the Start menu.)

Under Identification (shown in the second image below) leave it at [All Unassigned] for automatic configuration, or select an IP address from that drop-down menu for advanced users. For the third picture as shown below, changing the default FTP folder could be a good idea, since the address shown in the "Local Path" field is designated as / (meaning root directory, called a fake root since it's not the "real root directory") and it is not possible to explore any higher directories. For testing it was changed to the My Documents folder, which worked fine, and is a more convenient than a buried directory. Fetch 2.1.2 didn't list the directory contents unless the Write button was checked, for a note. Fetch 2.1.2 is a little ho-hum with the FTP server (like selecting the directory drop-down menu can change the way the list contents are shown) but works...okay...Windows XP users will be best suited by turning off the built-in firewall, advanced users will have to unblock the FTP Service program, unblock port 21 and figure out a way to unblock the high FTP port address range.

FTP Components

Setting up the server

More setup (see note)

Setting up Ethernet

Under Windows 7, the process is a little bit different. Start by opening the Control Panel, then click the Programs and Features element. On the left pane, click the "Turn Windows features on or off" link. Look for the Internet Information Services dropdown, then expand it. Click the FTP Server button. Then expand the Web Management Tools dropdown, and enable the IIS Management Console along with the IIS Management Scripts and Tools features. Click OK and let it do its thing.

Click the Start menu. Type IIS and then open the IIS Manager. Right click on the left pane and then select Add FTP Site. Add the name of the "site" under the "FTP site name" field, then add the directory to be shared (like C:\Users\glaze\Downloads) then click the Next button. In the IP Address field, type the address that is desired, or click the little drop down arrow to select from the local list of internal IP addresses (the example shows for this computer). Early Macs won't support SSL authentication so leave that turned off for local networks, then click the Next button.

Installing the FTP Server components

Adding a FTP site with the IIS Manager

Setting the IP Address

Configuring the Windows Firewall

The last window shows the authentication preferences on a basic level. If it is desired to enable anonymous logins (the username becomes anonymous and the password is usually just blank), then enable the checkbox, or tick the Basic button. From there, in the Authorization area, choose the desired access capabilities (for this example, Specified users was chosen and the user "glaze" was entered in the text field below). Then allow read or write capabilities with the appropiate checkboxes, then click the Finish button -- and the FTP server is active and ready to be used.

As Windows systems are typically (or are supposed to be) secured by Windows Defender or the built in firewall, the FTP server will have to be allowed to accept incoming connections. To do this, head to the Control Panel, and click Windows Firewall. Look to the left pane, then click the Advanced settings link. In the new window that opens up, look once again to the left pane, and click Inbound Rules. Scroll about a third of the way down until the FTP Server group comes into view. Enable the rule by activating it on the right Actions pane. Users with additional firewall, port blocking, antivirus and so on software may have additional steps to make.

To stop the FTP service, the IIS Manager has the capability on the right side. First select the name of the FTP "site" as was designated earlier, then stop the service with the Stop link on the right control pane. Don't forget to re-enable any firewall or anti-virus settings if they were changed or disabled.


Linux systems usually do not come with FTP servers built in. From Ubuntu's Software Center for example, there are few FTP servers listed, but most of them are geared towards power users who think Terminalese. ProFTPD is an example (has a reputation for security weaknesses), but there is a GUI module which ought to work fine called GAdmin-ProFTPD, but apparently it's only for GNOME and KDE. Pure-FTPD is another example which should have a GUI module available. Other distros may have other options but the wide variety and highly dynamic nature of Linux requires that this section be rather short on details. Power users will most likely know the best available option(s) for them, "the rest of us" are more or less regulated to the back seat in such departments.

In the mean time, personal testing did not produce satisfactory results. ProFTPD would not work except on the local host (using the GAdmin app); PureFTPD was too complicated and wouldn't start (from the PureAdmin GUI app). Apparently there is a frontend GUI for wu-ftpd floating around somewhere. FileZilla Server is not in circulation for Linux.

Clients and Client Access

For Classic systems, follow the network configuration settings found earlier for MacTCP or OpenTransport, as appropriate. For Mac OS X systems, find the appropriate configuration as demonstrated earlier for the setup of AFP networks. Note: The manual configuration is shown below for ease of connection establishment. Any Internet access capabilities may be unavailable via this method, depending on how the manual configuration is set up. It is perfectly possible to connect via FTP using DHCP; but it's harder to located the relevant IP address to hookup with the server.

For Windows based networks, start by opening My Network Places either on the desktop (if it's shown) or open My Computer and find it on the left pane under "Other Places". Click "View Network Connections" on the top left pane (Some Windows versions will have the My Network Places location on the desktop). Right click Local Area Connections, and select Properties (this is independent of wireless connections, if present).

Under the General tab, find Internet Protocol (TCP/IP). Select it, then click the Properties button. Select the Manual Configuration radio button. A shortcut to discover the IP address is to go to Start, then Run, type cmd to bring up the DOS prompt. Then type ipconfig /all which also works with DHCP.

Configuring Windows XP
For Linux, we'll demonstrate Ubuntu 10.04LTS as shown: begin by opening the System menu, select Preferences, then Network Connections. Under the Wired tab, "Auto eth0" should be selected. Click the Edit button on the right. (For those who don't know, "eth0" usually means the first ethernet port, some machines or cards have more than one port, so they would be numbered upwards from eth0.)

From the Edit window, select the IPv4 Settings tab, then from the Method field, select Manual from the drop-down menu. Edit the Address field with the appropriate Internal IP address. In the case shown, it is, as a router is being used and its address is Set the Netmask to, then click Apply.

Authenticate the changes, and then the connection should be active as seen from the top menu bar. Some Linux

Configuring eth0

distros may have a "Link-Local" setting in the network configuration area. This is for direct Ethernet computer to computer connections without a router.

Once the Ethernet hardware has been established and configured, and the server software started, the final step is to start the client. There are a variety of client connection programs, so let's take a look at a few examples.

Fetch 2.1.2

This client is a very nice and capable client because it fits onto a 800KiB floppy disk (compression required for a 400KiB disk), runs under System 6, is fairly reliable, has built-in encoding and decoding (MacBinary, .hqx, AppleDouble) on both ways, is reasonable on memory (figure a max of 600KiB on a color PPC machine, less for 1-bit displays) and is a FAT binary for both 680x0 and PowerPC processors (not bad for ~486KiB on disk). Once in awhile the BinHex 4.0 automatic decoder will cause problems. Turn it off in the Preferences dialog, under the Formats section if desired.

Start by opening the application. It will present a login dialogue box. Enter in the host or target computer's IP address, either internal for a LAN or external for a outside FTP server. Next, add the login details, and put the login directory or use / for the root directory, then press Okay to login.

The program includes some helpful documentation as well. As with nearly any FTP client, it can access external volumes on the target computer: in the image shown to the right, "7.6.1 Network" is a CD-R, "Disk Copy" is a branch of the same volume (appended disc), "Leopard" and "Tiger" are local partitions, and "STORAGED1" is an external FireWire hard drive.

Navigating remote volumes

Open Connection dialogue

System 7.0.1 to 10.5.8

GETing multiple files

PUTing a file on remote volume

To access a remote server, such as, then for the Host, enter, and for the user (assuming guest credentials) anonymous, leave the password field blank, then for the directory put /debian-cd, then press Okay.

Other clients include Transmit 1.6 (bombs on a SE/30), Fetch 3.0.3, and so forth. Some may be found around the internet, or here.

FileZilla Client

This client is available on a variety of platforms, including Linux, OS X, and Windows. They're all identical for the most part. It also can access SFTP and SSH servers.

Download FileZilla Client (alternate downloads). Install and open it. (There is also Wiki documentation here.) Under Host, fill in the target IP address of the host, username and password, and port if not 21.

To transfer files, navigate in each pane to the respective directories: the left directory in this case is the local computer (client) and the right pane is the server. Drag files from one pane and drop files in the other pane to copy.

FileZilla Client under Windows XP

Using a Web Browser

Type (for instance) ftp://snowball@ in the address bar. Enter in the password. It is read only. The syntax is:

ftp://[username:password]@[IP address][:port]. An example of this with a non-standard port would be something like: ftp://rachelsmac@ If the system requires a password, it will be prompted for: the example shows the case of either a blank (none, or "null" in computer speak) or a prompt style method. The "port" is only required if the port is non-standard, i.e. other than port 21.

Using Terminal

The hard-boiled geeky method. OS X earlier than 10.4 may require the BSD Subsystem to be installed. Anyways, open Terminal and if your host IP address is, then type:


Some basic Terminal commands for newbies:

  • ftp Begins the FTP client. Basic elementary grade syntax: ftp [target IP address]. It is also possible to attach the username and password, along with the port, for faster entry or so that the password isn't typed in the blind, like this: ftp snowball:sbedXZF@ (Port 21 is assumed by default.)
  • help Shows a list of commands permitted.
  • ls Lists the present directory contents on the target (server) machine.
  • pwd Prints the working directory on the target machine: in other words, "where you are" in the directory tree.
  • cd Changes the working directory on the remote (server) machine.
  • exit Closes the FTP terminal session. disconnect retains the ftp> prompt.
  • put Uploads a local file to a remote machine. Use quotes for files with spaces or weird characters (if supported!), such as the following: put "Bolo 0.99.7 Folder.sit.bin".

Terminal file transfer
on a remote server

It is possible (if an FTP server is active) to browse the local machine by using the IP address of, for either fun or practice before the big game. FTP commands were originally made to be really short, with most common functions using only three characters, like put. There are many other commands like mget which is for grabbing multiple files at once. More examples can be found like this MAN page and another here (latter with mostly emphasis on Windows machines).

All in all, having FTP client access in Terminal is a neat feature, and works well enough for simple, short file exchanges in both Linux and OS X. A client application is a better idea for sustained access, though. Windows also has command-line FTP access in the Command Prompt. One notable difference is that something like !ls or !pwd doesn't work. Just type ! alone which escapes out of the FTP program into a shell: type exit to go back to the ftp> prompt and program.

Mac OS X's Go Menu feature

Head to the Go menu, then Connect to Server... (or press Cmd + K) and type (or whatever the target computer's IP address is). Mac OS X will mount it as a network volume. Authentication is required if Guests are not permitted access (Anonymous users in the context of FTP) to connect. This is read only, and doesn't seem to always allow all parts of a file to copy correctly. To login as user snowball with an IP address for instance, type: ftp://snowball@ then enter the password for the account. The volume will be mounted on the Desktop as a network volume. If the port is not 21 but something else like 2100, then type: ftp://snowball@

The Go Menu method login prompt

Serial Data Interlinks

Terminal Data Transfer via RS232

In this section, we'll talk about interconnecting Macs to Macs and PCs via RS232 based hardware, and VT100 style terminal emulators. It's a fairly universal, yet antiquated (and thus slow, in fact slower than LocalTalk) setup.

Basic principles

Serial file transfer methods date back to the origin of computer communication protocols. The methods, interfaces, protocols, platforms and so forth have all morphed or transformed to varying degrees but the overall principle isn't that unique or different between methods. Technically AppleTalk over LocalTalk is a serial data transfer method, as it uses (typically) only two wires to do this, however LocalTalk is proprietary to pre-iMac machines (with a LocalTalk or GeoPort connection) and special hardware like LocalTalk PC cards. This section may get a little technical but we'll do our best to make it understandable by "the common man". For this section we'll try to stick to DE-9 (often incorrectly stated as DB-9) RS232 ports. The DB-25 RS232 protocol is completely incompatible with the SCSI port and hooking up a DB-25 serial or parallel device will most likely destroy the SCSI driver chip.

RS232 serial hardware

The image to the near right shows a RS232 DE9 female to RS422 Mini-DIN-8 male cable, a RS232 female to female null modem cable, a USB FTDI based RS232 adapter, and a Compaq E500 with native RS232 COM1/ttyS0 serial port. The USB adapter is nice because it has power, transmit (TX) and receive (RX) LEDs which are useful when things start misbehaving or for diagnostic purposes; it was purchased from Adafruit.

As far as the PC world goes, not all newer machines, especially laptops, have RS232 ports. No regular Macintosh has a RS232 serial port (although accessory cards could count, like this one) aside from Xserves. Thusly, an adapter is a first level requirement. There is a Keyspan USB adapter which provides a pair of RS422 mini-DIN-8 ports. If this adapter is in your toolbox, then all that is required is the driver for the USB machine and a mini-DIN-8 cable (they are cross-over by default; watch out for old ImageWriter cables though, some of them are said to be straight through or missing the RxD line). These are still around in various places, oddly enough. This section will be applicable to the Keyspan adapter, but the RS232 adapter is more flexible to other applications involving other computers, accessories, or electronic hardware.

The two main heavyweights in the USB -> RS232 adapter world are FTDI and Prolific. Prolific PL2303 and FTDI FT232 chipsets are fairly common and should work fine. Driver support is an interesting element for OS 8 and 9 systems because the drivers are usually so far out of date that it may not work with the chipset in the adapter: the test FTDI adapter worked, amazingly enough, with the Mac OS 8/9 FTDI driver.

Two more prospective links of interest are these: one, and two (Lisa linking).

Hardware elements

There are two nominal interface elements to this section, the first being probably the better of the two, that is, RS232. The Keyspan adapter then warrants its own section. Additional information pertaining to technical details of serial communications can be found in this extensive article which has a focus on the *NIX platforms but is equally applicable for other systems.

RS232 interfacing

There are two principle kinds of RS232 cables: the first is a standard straight cable, where Pin 1 on one end leads to Pin 1 on the opposing end, Pin 2 to Pin 2 and so on. The other is a null modem female to female cable, for computer to computer interconnects, where the TX and RX lines are crossed, along with the CTS and RTS wires.

A basic description of the pin functions can be found here. Because we'll be making our own adapter cable, it is best done with a straight RS232 cable. For testing/hacking/evaluation purposes (especially concerning hardware handshake (HSK or CTS/RTS) functions), one method is to use screw terminals and prototyping board to allow on-the-fly configuration, or DE-9 breakout boards. Microsoft has compiled a useful KB article which also describes 4-bit parallel direct connection cables. DB25 serial ports will need to be wired up differently than DE9 serial ports because they have completely different pinouts. There's also such a thing as three-wire RS232 cables, which have just GND, TxD and RxD. We'll be going for a 5-wire RS232 cable because CTS and RTS hardware handshaking is a very beneficial thing.

To make a mini-DIN-8 to RS232 adapter cable, first obtain a mini-DIN-8 printer cable. Next cut the cable to the desired length, leaving two male plugs separated. Remove the cable sheathing, about 20mm worth, leaving the inner wires exposed. Then, prepare the wires for soldering by stripping

off a small amount, about 10mm worth of wire is plenty. The next step is to plot out what wires go to what pin on the female plug with a digital multimeter, preferably with the continuity beep.

The same process will have to be repeated for the RS232 cable as well. (An alternative is to use a RS232 crimp connector box, which is an enclosed unit, but then a special crimping tool and DE-9 die is required.) A chart that maps the pins to the colors is a good first step; the next step is to connect the correct wires to the correct pins on to RS232 cable end (use the colors to help match things up, such as red on the mini-DIN-8 end goes to green on the RS232 side, and so on: the colors can vary by cable manufacturer). The wires are configured like image to the right. Pins not listed are not connected.

Wiring arrangements

(Sources 1 and 2 were used for the preceding image. This one also offers clues.) Verify that the proper wiring layout has been made with a DMM with the continuity beep function. (Pro tip: Use a male-male gender changer to help test out the pins on the female DE9 end.) A good idea is to slip a piece of heatshrink tubing onto the cabling beforehand, so that a solid seal is possible (use a larger size than you might first think, because of the bulge near the junction).

Make sure to join the respective shielding to one another (shown on the right with the bare stranded wire pointing upwards towards the 12 o'clock orientation), foil to foil (if featured) and/or braided strands together. Solder the junctions for optimum reliability, isolate them from each other with good electrical tape (or liquid electrical sealant). Use foil or better, aluminum tape around the junction to prevent EMF interference.

Stripped ends of the RS232 cable

In certain markets like Amazon, it is possible to buy Mini-DIN-8 adapters, such as the PalmOne mini-DIN-8 to RS232 adapter. They can be hard to find though. Make certain that they are wired up correctly. In the second image above, look in the "Additional Information" area for a conventional RS232 to Mini-DIN-8 general-purpose adapter. If the one that is purchased matches that configuration, or is pretty close to it (the CTS and RTS lines are important, DTR, DSR and GPi are not that critical), then all that is required is just a null-modem RS232 cable, and the job is done.

Keyspan USB twin-port RS422 adapter

This device warrants additional mention because for some reason it is a bit more popular than it probably should be. It does work with just a conventional mini-DIN-8 cable (which is cross-over by default) which is certainly convenient, at least for devices that have mini-DIN-8 ports or mini-DIN-9 GeoPorts (like the eMate 300, shown below with a straight mini-DIN-8 to DE9 cable and a null-modem cable).

First, LocalTalk will not work on this device. Secondly, if the drivers for OS X are installed, it won't work under Classic Emulation mode, neither is it compatible with virtual machines like VirtualPC. Thirdly, and most importantly, each device is somewhat different: there's a USA-28, a USA-28X model A and B, plus the USA-28XG, and the appropriate driver will have to support the specific model in question, mainly for OS 8 and 9. (Other locales or regions may differ slightly. The details are somewhat vague.) Despite the illustration on the splash screen for the installer, running both serial ports at the same time may result in packet losses: in our test case, HyperTerminal on a Compaq E500 got tricked into Minitel mode and a file transfer through ZTerm 1.2 had to be restarted twice. The Macintosh LC using pseudo-PPP dialup off the other port at the same time, using Fetch to pull a file off the host iMac G4 suffered a reduced speed rate (about 1800-1900 bytes/sec versus a usual 2500-2850 bytes/sec at 38400bps). In case you're wondering it's not possible to have one computer "talk" to another from, say, Port 1 through to Port 2 without going through a host machine.

Keyspan adapter with mini-DIN-8 adapter
and null-modem RS232 cable


Using both ports simultaneously

In Mac OS 9, the unit works fine enough. One port was called P#2USA28X11 and the other was named Printer Port USB in ZTerm: the latter wouldn't work with ZTerm and it's probably best to not use it. Under OS X, the ports are named /dev/tty.USA28X182P1.1 and /dev/tty.USA28X182P2.2 for a USA-28X model. /dev/tty.KeySerial1 is an alias which corresponds to /dev/tty.USA28X182P1.1 in version 2.1 and higher driver software. In Linux the device itself was registered without difficulty as /dev/ttyUSB0 and /dev/tty.USB1. Windows, on the other hand, simply lacks official driver support, although there is a webpage found with an easy Google search which claims to have drivers -- although it does look a little bit suspicious.

In regards to Mac OS 8.6 and 9, the USA-28 should be be fine with version 2.1 software, the USA-28X works with version 1.9, and the USA-28XG should only use version 2.1b4.

As for preference, it's not that hard to rig up a RS232 adapter cable if you have something like a Newton or eMate. As some RS232 adapters, like the one the author used come with TX and RX LEDs, plus there is a lot more RS232 hardware out there versus RS422, it would be better to choose the RS232 adapter if you are undecided on which one to get. Also mini-DIN-8 cables have thinner pins than the ones used on DE-9 type ports and are prone to breakage, although it's probably advantageous that the cable be damaged rather than the native RS232 port on a PC box: but if that is a concern, then a slimline male to female adapter can always be used. Still, the Keyspan adapter has its place, if only a niche.

Software applications

Certain Linux kernels have built-in support for USB->RS232 adapters. The test FTDI-based adapter was already supported in the Ubuntu (Debian systems should be fine as well) system so no drivers were required to be installed; PL2303 based units should be prebuilt into 2.4.31+ kernels: as most modern Linux distros have a 2.6+ kernel, that is usually not a concern. Mac OS X and Windows systems will most likely need to install the drivers separately. There are some ancient versions of driver extensions for Mac OS 8/9 systems offered by FTDI and Prolific, but compatibility with modern chipsets may be sporadic.

HyperTerminal is a decent terminal application that is offered in Windows 95 all the way up to Windows XP. It is not included in Vista on up but it is available as a separate program; or download HyperTerminal 6.3, the last free version. There is a way to copy the program and relevant data files to a newer system. Another program is Le Putty which tacks on ZModem capabilities to the traditional SSH utility putty.

Classic Macs generally default to either MacTerminal or ZTerm 0.9, although there are 1.0.1 and 1.1b7 binaries as well. Although ZTerm 0.9 will run on a 512Ke, it could be on shaky ground in regards to memory. In OS X, ZTerm 1.2 is not exactly well-liked, but for the purposes here we're only using it for file transfers with the ZModem protocol. goSerial is an alternative but for some reason file transfers didn't work -- this is most likely because the lrzsz code is not installed by default. Which brings us neatly to the alternative for OS X -- installing lrzsz from source code and using it from the command line. But first the OS X port of the source code must be installed -- this requires Fink or MacPorts to be installed in the first place, and those porting applications only work for 10.4+ and most likely require Xcode to be installed... For just a couple of file transfers, putting up with ZTerm 1.2 is probably preferable.

Linux programs are limited, but are out there. For a Debian-based distro, the first task is to install lrzsz by using sudo apt-get install lrzsz, then run sudo apt-get install minicom to install a basic terminal-only shell program. A GUI alternative is cutecom, which is started from the command-line by simply typing (in a case of Ubuntu) cutecom, and it is also installed by running sudo apt-get install cutecom. For some obscure reason this program lacks the ability to receive files. Advanced users could experiment with the screen GNU utilty which has an experimental ZModem feature.

Since file transfers via this method are under either Binary or ASCII, using an encoder like BinHex, uuencode or something in that class is a solid idea. See the section here for more information on this subject.

In Mac OS X, inserting a serial adapter can generate a prompt dialog which basically asks if you'd like to set it up as a network interface, so it can be counted as a connection interface to the Internet, like as shown. For all the examples of the use of serial adapters in this Guide, this configuration is not necessary since it is meant for using PPP over serial ports, USB based broadband modems or USB WiFi bridges. As for PPP, most folks using that these days will be using PPPoE instead.

Network interfaces (10.4)


The first thing to note about this particular method is that it is very much old-fashioned (Zeroconf? What is that?) and in fact is a partial hackjob because it really wasn't originally meant to be done. Oh well.

Both computers involved must have the serial communications parameters set to identical settings. Here is a general list of the critical parameters:

As mentioned earlier, both systems must be set identically or it will not work. The bitrates, data bits, parity bits, stop bits and flow control are the critical parameters for initial linking. A good starting configuration would be a bitrate of 19200bps, 8 data bits, no parity bits, one stop bit (often abbreviated as 8N1) and XOn/XOff. Try typing random keys on one computer's keyboard and look at the terminal screen of the other: if one types h on one end and gets something like J#c on the other (they are supposed to match up), then either the wires are configured incorrectly or the terminals are set up wrong.

Older Macs with both Printer and Modem ports should use the Modem port, although the Printer port can be used also. In the latter case AppleTalk will have to be turned off or set to another interface, else the port will not be permitted to open. Turning off AppleTalk in the same fashion should also enable the serial port and CPU to handle a higher bitrate.

Now we get to the software element, specifically the protocol:

So in review, first hook the units up with a null modem cable, fire up the terminal program on each end, set the bitrate, the data bits, the stop bits, the parity bits, the flow control, choose the protocol in question, and then it's off to the high road. Let's have a look at how each terminal program does this.


From the Start Menu, point to Programs > Accessories > Communications > HyperTerminal. Then the terminal emulator will ask to create a new connection. Pick a name, an icon doesn't matter, then press OK. Ignore the modem dialing parameters and head straight to the "Connect using:" field, then pick either COM1 (first RS232 port, typically) or if equipped, the USB>RS232 adapter found at another COM port, usually COM3 or COM4, but can sometimes be COM5 (if it doesn't show up, then the driver is not installed). Then click OK to move on to the final settings dialog: set the bits per second, leave the data bits at 8, the parity at None, the stop bits at 1, and set the flow control. Finally click Ok to dismiss the prompt, then either click the little phone icon (third from the left, just to the right of the Open button) or from the Call menu, choose Call. The connection is now active on this side. In most cases the program will "call" automatically after the Ok button is pressed, but should these parameters need to be readjusted, you must first hang up, then go to the File menu, and choose Properties. When the configuration is done then Call must be executed once again.

HyperTerminal in use (Win 2K Pro)

Assuming the other side has been set up likewise, pressing random keys like f z k y p should show up on the other computer's terminal screen. (Instant messaging?) To send a file to the other computer, either click the Send button or choose "Send file..." from the Transfer menu, which will prompt for a file to send; use "Send Text File..." for ASCII text files like BinHex. But first make sure the other computer is ready to receive it by putting it in Receive mode -- don't rely on it to automatically put itself into Receive mode. The default method to send the file is ZModem with Crash Recovery and is fine as long as the client is using ZModem too. If not, then use XModem. To receive a file, choose "Receive file..." from the Transfer menu (or click the Receive button) which will bring up a prompt to choose the receive protocol, and the output directory for the file to be saved to.

If an error is returned indicating that the port cannot be opened, then either crank down the speed, make sure the correct COM port is selected, try disabling and re-enabling the COM port in the Device Manager, or make sure it's not in use by something else (COM ports cannot be shared by multiple programs at once in this case).


Download the program for the platforms desired (ZTerm 0.9 can be found at other places like Both OS X and the "classic" versions are identical in setup). ZTerm may be unstable in System versions earlier than 4.1 but did start up in System 3.3/Finder 5.4; use another program like MacTerminal 2.3 or earlier. Just once in awhile, ZTerm would bounce an error saying that the CTS signal is not active, and that it will now disable hardware HSK. Some Internet digging produced nothing concerning this error: a workaround is to go into Modem Preferences and change the serial port from Modem, to Printer, then back to Modem. This may not work so well if only one serial port is available: another workaround was found by simply opening Aladdin SITcomm (MacTerminal 3.0 can fit the bill too) and open a connection, then close and reopen ZTerm which probably "resets" the port. It could also be because it expects the other side to be active first, so set up the other computer first and get it active.

Start the program up and look to the Settings menu, then the "Connection..." entry (or press Cmd + E). For now, leave the phone number, pre-dialing init field (used for dialing out of local phone nets, like *99 to dial outside lines), the account and password fields blank.

Set the data rate, then the data bits to 8, parity to None, the stop bits should already be 1, and the flow control as appropiate, then click OK. (Local Echo just mirrors the key input onto the local terminal, as the remote would see it.) Go back to the Settings menu and choose "Modem Preferences..." and change the serial port to the one in use by the Modem or Printer port, or the USB->RS232 adapter. (The Communications Toolbox in System 6 is not needed for this program to operate correctly, and reports have indicated serious drag from using the Toolbox. Apple says the Communications Toolbox is built into System 7.) The last dialog box that might need adjustment is the "Transfer Options", set both the Send and Receive methods to ZModem, or as needed. From the Dial menu, choose the Local option. The connection is now active, at least on this side.

ZTerm .9 initial setup

To receive a file, look to the File menu, and find the Receive Files selection, and choose ZModem. To send files, first make the other connection ready to receive it (use test characters to see if it is), then choose the "Send ZModem..." or press Cmd + S from the File menu. In the File menu, the Transfer Convert submenu has options for Smart MacBinary, Always MacBinary, Binary Data and Text. Choose the right one based on the case in question.

Smart MacBinary will automatically encode incoming Macintosh type files into the MacBinary II format if it is needed, Always MacBinary will encode regardless of whether it needs it or not, Binary Data is for files with binary format or binary-only files like PackIt archives and files already encoded in MacBinary (though Smart MacBinary will avoid the case of double-encoding), and Text is for BinHex 4.0 files and other plain ASCII text documents. As with HyperTerminal, the connection can be checked by entering in characters from one computer and looking at the terminal screen of the other.

ZTerm 1.2 OS X (composite image)

Make sure to avoid sending a file to a directory which already has a file of the same name: in a test case, both computers locked up (ZTerm .9 to ZTerm 1.2).


Assuming minicom is the terminal of choice and any drivers required have been taken care of, run the following:

dmesg | grep tty

The active serial ports should be listed. Note the one that is desired for the program below: ttyS0 is usually equivalent to COM1 and so on. Let's get to work old-fashioned style.

From the Terminal program, type minicom -s to get started with a setup prompt. (In order for any settings to "stick" in the future, run sudo minicom -s instead to save the default profile file.) The "Filenames and Paths" entry should be highlighted: press Enter to edit it. Use the A B C et cetera keys to edit each field: set the upload and download directories to suit, or just use ~/ for both. The Esc key goes back after you're satisfied. Next, go to the Serial Port Setup, and change (if needed) the serial port: if just one USB > RS232 device is active (and as identified earlier with the dmesg command), then it probably is /dev/ttyUSB0. If needed, change the port speed with the prompt (use the A and B keys to go back and forth) so that it matches up with the desired bitrate. Match up the data bits, stop bits, parity bits and flow control as needed.

minicom receiving a file

Once the settings have been configured, choose "Exit" and the modem/hardware initialization process begins immediately.

To bring up the semi-interactive window, press Control + A, then Z. From here, the S key starts the file sending (relates to the directory set earlier, but the Goto can change the directory): use the space bar to mark the files to send (ZModem can send files sequentially); while the R key puts it in Receive mode. To navigate with the rather unintuitive and annoying directory changer, the [Goto] button is almost like the regular *NIX cd command except that it can only move up or down one directory at a time (or a full path, sort of); pay close attention to the directory contents since there is no feedback to indicate a bad directory. The [Prev] button is basically like the usual cd .. command. Try to place files in easy to navigate locations, like ~/Desktop/temp rather than some buried location somewhere which is difficult to navigate to. Use the up and down arrow keys to scroll up or down, the left and right arrow keys move the cursor around to select buttons and Space bar to mark files. Before sending a file make sure the other computer is in Receive mode. The ZModem file transfer will transfer binary files: select ASCII from the Send mode to send BinHex type text files and other plain text documents into the other computer's terminal window.

Minicom is a great throw-back to the olden days but it's not something that is exactly easy to use right off the bat and the directory navigator is rubbish. The best way to learn how to use it is to use it -- after enough tomfoolery, the lightbulbs will go off. Otherwise, to send files only, use cutecom, which is run straight off the Terminal with $ cutecom. This is much easier to use but testing (and Google searches) failed to indicate why Receive mode simply doesn't exist.

As usual, there's always another way. Here's how to set up stty to 9600, 8N1 with a local connection (ignores the DCD line) and send a BinHex 4.0 file through the wires, assuming the use of a built-in serial port (just change it to ttyUSB0 or as the case dictates):

stty -F /dev/ttyS0 9600 cs8 -parenb -cstopb clocal cat ~/Desktop/SSW201NAD.image.hqx > /dev/ttyS0

If stty has been set to something else prior, use stty -F /dev/ttyS0 sane first to set it to the defaults. It is prudent to make sure the BinHex file has CR+LF line endings. The other terminal will have to set likewise otherwise there will be nothing but a solid stream of gibberish: or change the stty command to different parameters to match the desired setup. Example for 57600 8N1 Hardware HSK using a USB adapter (clocal disables modem control lines. Some systems require this for direct serial connections, like as used here):

stty -F /dev/ttyUSB0 57600 cs8 -parenb -cstopb crtscts clocal

By the way, this doesn't work with Mac OS X. Scroll down to the Serial Console section for an example of how to do the same thing in OS X.


Generally speaking, ZTerm is a better overall terminal app to use, but MacTerminal can do okay. There are a number of differences between them.

The first is MacTerminal 1.1. This comes on a 400KiB MFS disk with System 1.1, Finder 1.1g (System Software 0.1) and was meant for the 128K and 512K: it won't work right with System 6 so the highest OS for it is System 5.1, which would be better off with MacTerminal 2.2. MacTerminal does not support ZModem -- use XModem instead. If you don't like either of those terminal applications, then the old archives may be of interest. Red Ryder is interesting because it has little buttons for Control+C, Control+S and Control+Q, so that's good for the 128K and 512K boxes. It is however, limited to 9600bps...White Knight was its successor.

MacTerminal 1.1 receiving over XModem
MT 2.2 and 2.3.1 look the same

MacTerminal 1.1 using XModem

MacTerminal 3.0

Then came the MacTerminal 2.x series. Apple says that 2.0 and 2.1 have some incompatibilities with System 4.1, Finder 5.5 (also known as System Software 2.0.1) but MacTerminal 2.2 should be fine. MacTerminal 2.3 won't run on a 128K because of the memory crunch and MacTerminal 3.0 requires at least System 6.0.4, a Macintosh Plus or higher, at least two floppy disk drives, and 1MiB or more of RAM (according to a old comp.sys.mac.comm USENET posting. Apparently it was retailed at US $125) but 2MiB is better -- considering that 1MiB 30-pin SIMMs are so cheap these days, 4MiB is the way to go. Under System 6, the Communications Toolbox will have to be installed. MacTerminal does not feature CTS/RTS handshaking until MacTerminal 3.0, so XOn/XOff will have to be used instead.

Let's start with MacTerminal 1.1. This goes a lot easier if a second FDD is installed, or better, a hard drive. The program itself is easy enough to use without considerable difficulties other than its inherent limitations. From the Settings menu, choose Compatibility. Set the bit rate to the max (19200bps), the data bits should be defaulted to 8, no parity bits and one stop bit. Turn on XOn/Xoff handshaking, set the connection to "Another computer" and finally select the port that you're using for this activity, which ought to be the Modem port. Next, go to the Settings menu again and choose File Transfer. From here, there are only two choices: Text is for dumping ASCII text files into the other computer's terminal window for the other computer to save to a text file and then there's XModem. On the other computer, set to identical bitrate and handshaking details, and for receiving files, choose XModem. Because XModem doesn't send the filename along with the datastream, it will have to be manually entered on the receiving end. Only ZModem has automatic receiving mode so the recipient will have to first put the computer into Receive mode. MacTerminal 1.1 does not work with the Control or Esc key on ADB keyboards, and it was not made with arrow key support in mind, either. MacTerminal 2.2 is necessary for that. Using a Macintosh Plus keyboard with an older 128K or 512K series machine is a good idea. Users who wish to use MacTerminal 1.1 for extended intervals should find these hacks to be insightful. The only other key sequences regarding MacTerminal 1.1 was found here and in case of future changes, they have been preserved below. It was noted that Command + period stopped file transfers and text uploads.

The only way for MacTerminal 1.1 to receive a BinHex file is for the other computer to send it as an ASCII text file. Review the notes on this procedure further up. As MacTerminal 1.1 will usually be used on the really old 128K and 512K series of Macs, it's probably better to use PackIt encoding which is just a binary file which will work better because it can be easily sent around with XModem. A second floppy drive is a necessity when working with MacTerminal 1.1 without a hard drive. Configuring the whole set up and saving the profile can help speed things up in the future: and copying the session document to another volume, then starting up MacTerminal by opening the session document registers the other volume as the default for saving data. 512K and 512Ke Macs really benefit from 800KiB MFS disks in this practice.

Special MacTerminal keys:
  • Use Command for Control
  • Command + Backspace for Rubout
  • Command + Space for Break
  • Command + S to pause output to screen
  • Command + Q to continue output to screen
  • ~ (tilde) becomes Escape (Esc)
  • Command + ` for ` (back quote)
  • Command + Shift + ~ to insert a ~ (tilde)

By the way, the proper way to shut down the computer in pre-System 2.0 Systems is to close all programs, eject all disks (use the Eject command from the File menu or Command + E) and then just flip the switch on the back of the unit. It wasn't until System 2.0 that the Shut Down command was added to do all this automatically. Restart was added later in System 4.0.

MacTerminal 2.2 and 2.3.1 follow the exact same configuration details, the only practical difference for our purposes here is the addition of the MacBinary, XModem Text and MacTerminal 1.1 modes. MacBinary will auto-encode Macintosh files, XModem Text is for sending BinHex and other ASCII files through XModem and MacTerminal 1.1 is for fiddling with MacTerminal 1.1 clients. There could be some technical advantages to setting MacTerminal 1.1 mode between two computers running MacTerminal 1.1 but the manual is lacking so it's probably better to stick to straight conventional XModem. Sometimes XModem won't start the file transfer process right away so just be patient.

MacTerminal 3.0 upends everything and is drastically different than all the other terminal emulators here, and the advantages are: a bitrate of 38400 and 57600bps; CTS/RTS handshaking; and some "Tools" can be useful (like the Aladdin ZModem Tool) but otherwise they're a waste of time. For starters, System 6 will need the Communications Toolbox to be installed, then all the "Tools" (Serial Tool, VT320 Tool, XModem Tool, ...) will have to be dumped into a folder called "Communications Folder" which goes in the System Folder. In System 7, just toss all those "Tools" into the Extensions folder. Simply copy the contents of the MacTerminal disk to the desired destination to "install" it.

Now, once the program is open, go to the Settings menu and choose Connection. Select "Serial Tool" from the very first drop-down menu. Set the bitrate as per the prescription, and the same goes for the data bits, parity bits, stop bits and flow control. Although the selection "DTR & CTS" implies a modem, it does translate to RS232 vernacular as "RTS & CTS". (See the manual which has been uploaded here in the Download Town, page 288 of 436. Also, this link should help clear things up.) Select the port to use, then click OK and choose "Open Connection" from the Session menu, and it is now active.

To send a file via XModem, the Settings menu has a preferences dialog for the File Transfer settings. The first drop-down menu has options for either Text Tool or XModem Tool, by default. Use the Text Tool to send a plain ASCII text file into another computer's terminal window, like a BinHex 4.0 document or some other standard .txt file, and the XModem Tool for everything else Binary in nature. The XModem Tool has two principle methods of usefulness here, selected in the Method area: the MacBinary for automatic MacBinary management and Straight XModem for files already encoded in Binary or other plain binary files like Stuffit .sit archives and PackIt archives. The XModem Text is for sending ASCII text files inside the XModem protocol: but first test it to make sure the recipient can understand it because XModem is usually presumed to be Binary only. Finally, sending and receiving files is conducted from the appropriate selection in the Session menu.

As to whether MacTerminal is any better than ZTerm, the author would like to answer with ... No. ZTerm doesn't need the Communications Toolbox,

is easier to use, has obvious benefits with ZModem and can also go up to 57600bps. It also takes up less space on disk, as the addition of the Communications Tools tacks on another 621KiB on disk for MacTerminal 3.0. Although it is possible to install Aladdin SITcomm (Macintosh Garden has it), which looks a lot like a modified version of MacTerminal 3.0, with bonus features like a ZModem Tool and a built-in encoding/decoding module (just like what someone might find inside Stuffit Deluxe 4) and a few other enhancements. Then it is simple to extract the Aladdin ZModem Tool and plop it into a MacTerminal 3.0 folder and it will work, even if it is unstable; but it's even easier to just use ZTerm - and ZTerm only eats up roughly 200KiB on disk versus a full install of SITcomm which is 2445KiB according to the installer. Even ZTerm 1.1b7 is only about 330KiB for the stuff it needs to work, and that can hit 230400bps. (By the way, the serial for the SITcomm software is in the format of SN ##### where # can be any numeric digit.)

Aladdin SITcomm using XModem

Pseudo PPP Dialup Networks

The first idea and motivation for this section came from this thread which describes a deceptively simple operation to create a fake PPP dialup

network which is routed through an Ethernet network. Actually it isn't that difficult, but whether it works or not is another matter. For a start, testing in 10.5 didn't work, but 10.4 did (which was probably what the previous poster used). In Ubuntu, 9.10 "karmic" worked fine after a little diagnosis, but 10.04LTS "lucid" did not. For this section, the technique will be presented and demonstrated regardless, as if it works, can be kind of useful -- and slow. Not all Linux distros may be compatible but it may be worth a shot: there may be oddities related to the distro in use (like Mandrake) but such matters are outside the scope of this section. Both Ethernet wired and WiFi protocols are acceptable for the host to forward to the PPP peer.

The first requirement is a computer with a regular RS232 port or USB->RS232 adapter as discussed earlier in the previous section, plus the Mini-DIN-8 to RS232 adapter cable. Any drivers required for the adapter should be installed prior to further steps in this section. Because this setup requires MacTCP for it to function correctly, it will not work any system software version earlier than System 6.

A Macintosh Portable (M5120)
using pseudo-PPP dialup and FTP

Server configuration

The server must be configured and ready to go before the client (peer) can connect to it. It is possible to delay the pppd command until just before the client is set up, if need be. There could be a way to make this whole shebang work with Microsoft Windows or other systems but such avenues will not be explored at this time. Begin by preparing the host computer with an Ethernet connection to the Internet (preferable) or wireless: suitable instructions for doing this have been explained in previous sections. The pppd daemon will automatically determine the proper interface (wireless or wired) to use; and monitoring the system log for hiccups is a solid idea: for OS X, the command tail -f /var/log/system.log will show the last ten entries and update with any new entries; for Linux, try using tail -f /var/log/messages.

Mac OS X

For Mac OS X, open Terminal and type the following to enable IP forwarding:

sudo sysctl -w net.inet.ip.forwarding=1

Now we have to identify what the exact name of the serial port to use for this operation:

ls /dev/tty.*

Mac OS X 10.4 procedure

Most Macs that will be using this connection method will be using USB to RS232 adapters. If you use a Keyspan RS422 Mini-DIN-8 adapter, then look for tty.KeySerial1, or try using either the tty.USA28X191P1.1 or tty.USA28X191P2.2 devices: the first two correspond to the #1 serial port and the latter is in respect to the #2 serial port. The author's FTDI USB adapter was mapped to tty.usbserial-A601FT6I, so the next command may have to be changed to suit the circumstances:

sudo /usr/sbin/pppd 38400 tty.usbserial-A601FT6I local persist passive crtscts maxfail 0 proxyarp connect-delay 5000

Here's a breakdown of the commands: sudo allows temporary root user permissions for the command; pppd is the name of the PPP daemon responsible for this task; 38400 is the bitrate for this protocol piping, using standard serial speeds (like 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, and so on: most if not all top out at 115200bps); tty.usbserial-A601FT6I is the name of the serial port; local makes the daemon skip the modem control lines (ignores Carrier Detect and fixes the state of the DTR signal); persist if the connection is terminated, try to reopen it; passive if the client is not there, wait until it receives an LCP packet instead of just dropping out; crtscts use hardware CTS and RTS flow control; maxfail 0 means there is no limit to the maximum connection failures; proxyarp tells the daemon to map the client to make it look like it's on the local Ethernet network; connect-delay 5000 this tells the daemon to wait five seconds before listening to a return LCP packet; is an example of the internal IP address of the host machine and is the desired internal IP address of the client (classic Mac, also known as the peer). Because MacTCP will be set up in the Server mode (and OT/PPP can be set likewise) then simply set the peer IP address to an IP address with the same subnet (in this example, it is 1) along with a proper node.

Use ifconfig from the command line to locate the internal IP address to use for the first set of IP addresses; the last set can be set to suit with a proper matching subnet as the host.

In testing, Mac OS X 10.4 worked fine without the connect-delay 5000 tag. Users who use this method full-time can experiment with the 5 second delay to reduce it if need be: it's a signal to the PPP daemon to wait five seconds before reading the return LCP packet(s) used to initiate the connection because the newer machine can negotiate a whole lot quicker than the older box. 38400bps was used on a LCII which was the testbed for this section, higher bitrates can also be explored but there is an increased risk of errors which will mandate the computers to resend packets. Use sudo killall pppd to terminate the daemon.


Linux uses a slightly different method (may have to change gedit to the text editor in use):

sudo gedit /etc/sysctl.conf

There is a little # which has commented out (programmer-ese meaning not used) the line in front of the net.ipv4.ip_forward=1 line. Remove the pound sign, then save changes and close the document. Next, we have to identify the appropriate serial port:

dmesg | grep tty

Ubuntu 9.10 complete operation

This last command is to identify where the RS232 port (typically /dev/ttyS0 for machines with built-in RS232 ports, equivalent to COM1 in Windows), or USB to RS232 adapter is located as indicated by the software. A Keyspan RS422 adapter was listed as ttyUSB0 and ttyUSB1 on our test machine -- make sure to verify on your own computer.

Now, enter in the following command to begin the process, changing ttyS0 to the appropriate port identified earlier and the bitrate 38400 as desired (but start with 38400, slower machines like a Plus might have to use 19200), and changing the IP addresses as necessary: for Linux (Debian based distros, other variants may differ) the /sbin/ifconfig command from a command prompt and look for the en0, en1, eth0 or eth1 interface will show the proper internal IP address, as appropriate:

sudo pppd 38400 ttyS0 local persist passive crtscts maxfail 0 proxyarp connect-delay 5000

Classic Mac setup

For Macs with 7.5.x or higher, FreePPP is based on MacPPP 2.2.1, and can be used in place of it, it also has an allocation for OpenTransport/PPP. Later Mac OSs with Remote Access software have this built-in, and also have a rather unique feature called AppleTalk over PPP. Otherwise, use MacPPP 2.0.1; the remainder of this section will default to MacPPP. There are other versions of MacPPP, like 2.1.1SD which have a number of minor changes here and there but is otherwise pretty much the same thing. (2.1.1cm4 is rather elusive...) MacPPP 2.5 requires 7.1 or later.

In System 6, MacPPP is pretty much a no-frills CDEV which works fine. Copy the Config PPP cdev and the PPP init into the System Folder and reboot. Open the Control Panel, choose MacTCP, then select the PPP mode. Click the "More..." button and change the type to "Server". (MacTCP 2.1 is recommended for all cases.) Select the Class to C in MacTCP 2.0.6, MacTCP 2.1 does not have this setting. Fill in the DNS fields as appropriate, mirroring that of the host computer -- it is pretty much identical to the MacTCP configuration as shown earlier in the AFP Ethernet section. Be advised that earlier systems like System 5.1 will not work with this technique because MacPPP requires MacTCP, which only works in System 6 up to 7.5.5.

Open the Config PPP panel, and from the main window choose the port you'd like, and then click the "Config..." button. Set the bitrate to the desired rate (later "versions" of MacPPP like 2.1.1SD had updated the bit rates to include 115200bps and 230400bps, but this usually required machines with "fast serial ports" -- usually machines with 68040 or PPC CPUs), set the flow control to "CTS & RTS (DTR)", then close the window. Click the "Open" button to initiate the connection.

System 7 is fairly close as far as the procedures go. The MacPPP control panel goes in the Control Panels folder and the PPP init goes in the Extensions folder. Reboot, then open the MacTCP control panel. Select the PPP icon,

MacPPP 2.0.1 config prompt

then click the "More..." button and change the type to Server, if MacTCP 2.0.6 is used, then change the Class to "C", then fill in the DNS info. Close the window and open the Config PPP cdev, and repeat the instructions in the previous paragraph. When the connection is open, use the "Stats..." button to check that the IP address fields of the local and remote computers have been properly established.

Before we move on there are a couple of quirks to point out about MacPPP. If the boot folder is not in the root directory of the startup volume (i.e. located in /MacHDD/Documents/System Folder/ versus /MacHDD/System Folder as usual) then it will either not work right (System 7) or toss an error saying it can't find the preferences file (System 6): it doesn't like boot folders that are not named "System Folder". In System 7, it has a terrible bug relating to the memory, tossing up an error saying that it doesn't have enough memory to run. The way around this is reboot with the MacTCP choice set to some selection other than PPP, then turn on PPP after the reboot so it won't have a chance to complain. In System 7, MacPPP doesn't seem to redraw the "connection active" area of the window so putting another window in front of it and then bringing the MacPPP window back to the front should force it to redraw it. During the connection establishment phase, the connection should not take longer than a second or two -- if it does, there's a problem somewhere. Try to use "Soft Close" for terminating the connection.

Mosaic 2.0.1 via pseudo PPP

The client computer (the classic Mac) should now be able to access local FTP servers, remote WWW servers, and so forth as if it was on a regular modem connection or (slower) Ethernet interface. (The previous image shows a full online connection made possible with no keyboard on the client computer, so it is possible, but Macs are typically helpless without cursor control.)

Serial Line Internet Protocol

SLIP was the predecessor to Point to Point Protocol (PPP) and it is very simplistic, suitable for use on microcontrollers these days but was not unusual back the early 1990s to be found on a personal computer (Even PLIP was possible). Because this protocol will apply in particular to the 512K and 512Ke only, it will be somewhat shorter than some of the other sections. The Mac Plus should use PPP instead.

MacSLIP, which was commercial software, could not be found through some thorough Internet dredging. If, however, this software is available to you, feel free to use it, as it was fairly common in the days of SLIP. This section will focus on NCSA Telnet 2.5, which has a connection option for SLIP, and InterSLIP. MacTCP is required for all cases here: MacPPP or other PPP software must be removed first because they will conflict with each other.

InterSLIP is really very easy to use. The installer comes with some help documentation that explains in clear terms how to get it started and out the door. A SLIP server element will be required: generally speaking, this means a newer computer will fill this role. Because it requires MacTCP, it stands a good chance of not working out nicely with a 512Ke, definitely won't work on a 512K, but is best left to higher systems. By the way, there is a posting on old USENET doesn't which says that hardware HSK doesn't work with InterSLIP. It won't matter for the 512Ke because hardware HSK wasn't possible until the Mac Plus.

The only other program that will be mentioned here is NCSA Telnet 2.5. It has a built-in SLIP mode which was promptly removed in 2.6 and 2.7. This mode, once all configured and all the nerdy details worked out, does allow for a FTP server to be established. Because it requires familiarity with a *NIX based system, it is not recommended for the common man to use. It can be easily found at the NCSA Archives FTP server.

Serial Console

The basic premise of this method is just like a Telnet session but over a serial port. Most Linux machines, if they are using GRUB (GRand Unified Bootloader) can have an option to provide a shell prompt right away, piped over the serial port. Mac OS X can do this as well, although that procedure tends to incline strongly towards advanced users. Certain Windows Server versions can perform a similar operation from the Emergency Management Services module. Otherwise third-party programs will have to fill in the void, because Windows doesn't have a command line backend like *NIX systems do. So this section will default to OS X and Linux; and the client can be nearly anything that has support for VT100, so as far as old Macs go, a 128K can do just fine, aside from the keyboard issues.

In each example below, there are ways of increasing the bitrate and turning on hardware handshaking. For the Macs that will use this interface, particularly for file transfer purposes, doing so is a good idea. Otherwise, 19200bps is fine for all cases.

One method of switching an unused Linux box into overdrive is to procure access to two serial ports on the same machine. Make one serial port dedicated to a serial console, and the other as a pseudo-PPP dialup port. In this fashion, conventional Internet access is possible with Fetch, IRC or a web browser, yet simply calling up a terminal program also allows the server to be called up. But of course then one can simply run a Telnet server and only need one port...


Let's start with a Debian distro, in this situation Ubuntu will be assumed. Assuming Karmic Koala (9.10) or higher, open the Terminal program and enter the following:

sudo gedit /etc/init/ttyS0.conf

If, however, a USB to RS232 or the Keyspan RS422 adapter is being used, simply change ttyS0 to ttyUSB0 so that the filename is ttyUSB0.conf. In the text document that opens, enter the following text (change to ttyUSB0 if needed):

512Ke with MacTerminal 2.2 using Lynx over a serial console
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 19200 ttyS0 vt102

Another method is to simply change this slightly so every time the USB adapter is plugged in, getty will start the service. Refer to the linked HowTo if you have an older version of Ubuntu or for instructions on how to pipe GRUB to the serial port, which basically presents the usual GRUB OS selection screen to the serial terminal. Users who do that will want to have a Live CD or bootable Linux thumbdrive which can restore GRUB if an error is made: also keep the instructions for repairing GRUB on hand. It's not necessary for the purposes demonstrated here. Change the bitrate from 19200 to as desired: the 128K and 512K series should probably use 9600bps. Turn off AppleTalk for better performance on the 512K and up if it is not needed: the bitrate can be pushed a little bit higher but there won't be much of a speed difference past 38400bps because it's all text based which doesn't take much time to send through the wires. Lastly, to start the service, run the following:

sudo start ttyS0

Or, if you used a USB adapter, use sudo start ttyUSB0. Replace start with stop to extinguish the operation. Hopefully the lrzsz package is installed: file transfers can be piped through this interface. If hardware handshaking is desired, then change the last line of the configuration file to look like this (feel free to change the bitrate to a different speed):

exec /sbin/getty -h -L 57600 ttyS0 vt102

Mac OS X

According to a certain author, the operation has increased in difficulty since OS X 10.6, so there may be more work to do concerning this subject on your end.

A good primary source for this section is this useful page. Of note, the nerd-approved method is to use vi or Emacs to edit the text files, but pico is less intimidating for folks who don't frequent the command line much. Use it like sudo pico /etc/ttys; because of the tiny window size, it can feel cramped. Use either the mouse to select text, or use Control + Shift + ^ to switch in and out of "text selection mode" using the arrow keys to move the selection cursor, then cut the text and paste it again: it doesn't have a "copy" feature at all. It is possible to review the changes afterwards with the following:

cd /Applications && open /etc/profile /etc/gettytab /etc/ttys

Regarding the lack of additional information concerning this method, the reason is that all attempts by the author in 10.2, 10.3 and 10.4 were failures. Even this link which is like a "testing phase 1" to see if it will work at all, failed. The RS232 adapter was the same one used earlier and text could be sent out through the serial port to the other computer's terminal screen but nothing else was possible. Refer to the adjacent image for some clues concerning this feature.

10.2 Jaguar with all configuration
files shown for reference

At the last minute, a revelation was made concerning an alternate method: Prepare the client, say with 19200 8N1 None like what we'll use here. The assumption is that the path of the serial port is already known, discovered via ls /dev/tty.*. Open Terminal, and enter the following; if you're using a different bitrate, change the 19200 and std.19200 to something else (and of course changing the serial port name to your case):

screen /dev/tty.usbserial-A601FT6I 19200

Press Enter, then Control + A which is an escape sequence. A prompt will appear in the bottom left corner of the terminal window. Press Shift + ; (a colon : ) which brings up a command prompt. Type the next line in (again, modify to suit):

exec ::: /usr/libexec/getty std.19200

Starting getty with std.19200
gettytab (10.2 Jaguar)

Lastly, press Enter and the client should have a logon prompt produced in the terminal program. Note that the password of the user credentials is passed straight to the host computer (because the screen window is mirrored) and presented in plain view, so keep that in mind. The std.19200 corresponds to one of the "Fixed Speed Entries" in the /etc/gettytab configuration file, it's just another one of pre-defined profiles. The terminal window will show everything the client enters in, except with a bonus feature: character doubling, meaning that if the client enters ls -Al | more then the host terminal window will look like llss --AAll || mmoorree. Just minimize the window to keep it out of the way, although closing it may or may not be preferable because screen and login are still active. If the login is incorrect, then the getty must be started again. Use Control + A, then Shift + / (a ? character) to see the list of commands, and Control + A, then Control + \ to quit screen.

To send a text file out via a serial port in OS X, because it is a well-known problem that the stty and cat technique used by Linux doesn't work, just bring up the command prompt as earlier. But instead of starting getty, use a line like this instead:

exec ::: cat ~/Desktop/Apple_CD-ROM_5.4.img.hqx

Do be advised that the line that this command is being entered cannot exceed 80 characters (the width of the window), further characters past column 80 are disregarded. Gratitude goes to mcdermd for this method with screen for the serial console.

Client access

After the "server" has been set up and is ready to go with the wires all rigged up, set up the terminal program like as described earlier. There is no support for XOn/XOff and hardware handshaking is not used unless it has been enabled: leave it off on the client unless the server has it on. Since the server has been set up first, it is likely that the client terminal program had to be configured with the appropiate bitrate and serial port settings after the host system has already sent a logon prompt. Just press Return a couple of times to get a new login prompt.

Then the operation works just like a Telnet session. After logging in, a shell prompt is produced. Here, the usual terminal command lines and so forth are usable, and certain programs like vi, eMacs, nano or Lynx can be used. Macs like the 128K which don't have keyboards with arrow keys will probably benefit better from a custom keybinding map in Lynx: also it might be a good idea to print out a list of all the keystrokes because by default it uses the entire keyboard (press "k" to get a list of all the keybindings).

It is possible send files through the lines via XModem, YModem (don't bother) or ZModem. Expert users could try using cat to pipe text to the terminal but we'll pass on that for now. It may be better to wrap a BinHex file in MacBinary encoding (or PackIt for the earlier 128/512K series) rather than flirt with ASCII uploading. For now, here are some examples of sending files through this method via XModem:

rz -X Terminal.image.bin sz -X SSW201NAD.image.bin

Using ZTerm 1.2 with a serial
console (Linux host) and sz/rz

Here's how the syntax works: rz activates the rz program (Receive ZModem), -X puts it into XModem mode and the file name (such as Terminal.image.bin for here) of the incoming file. XModem doesn't send the filename with the datastream like ZModem does so the recipient must name the file. By default the directory where the incoming data is dropped (or where it looks for the file to send) is the same as the working folder, so if the current directory (use pwd to show it) is /home/frost/Desktop/MacDrop, then it will be deposited there. Swap rz for sz and provide the name of the file to upload, like as used here, SSW201NAD.image.bin is uploaded and the recipient will have to provide a name for it (first enter the command then put the terminal program (ZTerm, MacTerminal, ...) in to XModem Receive). If you use ZModem, then all is required to put it in receive mode is to just type rz: to upload, something like sz SSW201NAD.image.bin does the trick. To get help on the programs, type sz --help for the sz program and rz --help for the rz program. There aren't any freebie examples in either help printouts, so that's why some examples are provided here. OS X doesn't have the lrzsz package installed, so this method won't work. Install MacPorts, then install the ported version of lrzsz.

LocalTalk Networks

The simplest network for interfacing Classic Macs is LocalTalk, although it is a bit lacking in areas, mainly the fact that it is "aged" and secondly (like the previous section) is slow. While it did do its purpose just fine in its time, the reality is that Ethernet is much more useful.

LocalTalk networks are very spartan. They consist of the interface devices such as computers, printers, and so on; then there are LocalTalk hubs, routers, cabling and so forth. The simplest LocalTalk network is simply a serial mini-DIN-8 cable from the printer port of one Mac to the printer port of the other. Beyond this, a LocalTalk splitter is required, which permits daisy-chaining the devices together. LocalTalk splitters are self-terminating. One benefit of a conventional LocalTalk (not PhoneNET) configuration is that external clocks can be used to crank up the bitrate.

Sometime in the mid or late 1980s an individual had an idea: why can't we just use standard (in the US) telephone RJ-11 wire? LocalTalk is simply a serial protocol not unlike many other networking protocols. The individual's name was Reese Jones, and he formed Farallon to market his concept. The product was successful and there were a good handful of clones as well, plus an amateur twist or two on the concept. Apparently, even Apple thought it was a pretty good idea, as it was recognized that the mini-DIN-8 LocalTalk cables as so forth were pretty silly and expensive, could not run cables as far as PhoneNET could, and PhoneNET could be integrated in the existing phone interlink wiring in the building. Generally when people talk about rigging up a LocalTalk network they usually mean a PhoneNET network. It didn't help that LocalTalk adapters were about double the price of PhoneNET adapters, and then there was the question of dealing with the cables which weren't cheap to begin with. (According to Mac SECRETS 2nd Edition, Apple used PhoneNET in their internal networks.)

PhoneNET itself itself is just converting RS422 full duplex to RS485 half duplex. Internally, the yellow and black wires, assuming a standard color arrangement, are merely differential pairs and are interchangeable with each other: meaning that it's not like a cross-over arrangement. This has to do because of the way that RXD+ and RXD- are tied together in one pair, and TXD+ and TXD- are wired together in the other pair. It is fully reversible and the wires could even be crossed over, as in yellow > black and black > yellow and it will still work. Idiot proof if there was ever an example of such.

There are different models of PhoneNET splitters and adapters. There are mini-DIN-8 to 4-pin RJ11 adapters and splitters; and DE-9 to RJ-11 splitters, used for the Macintosh 128K to the 512Ke, which used DE-9 ports instead of mini-DIN-8 for printer and modem connections, though the 128K can't use AppleTalk networks. Some internal networks, like the University of Melbourne, ran asynchronous networks with RS232-type wiring, and this required special software to allow AppleTalk data through by means of a translator. One such candidate, which wasn't tested, is called Atalk 1.0. A copy can be found at Mac GUI. Other than that, the regular DE9 interface used on most PCs is technically capable of using LocalTalk traffic, but without any kernel modules or the proper drivers, it will not work with LocalTalk at all. Use an AFP bridge instead.

Regarding overclocking, the maximum a conventional "fast serial port" can be clocked is 921600bps, a GeoPort tops out at 2Mbps. While overclocking hardware for LocalTalk is sometimes brought up on various forums or email groups, the reality is almost nobody has one of these units. In the author's three years of involvement in this hobby, not one single unit besides the Farallon EtherWave Mac/PB adapter has shown up anywhere with overclocking capabilities. Part of the reason is that most places used PhoneNET because it was cheaper, worked well enough and could be integrated into existing wiring depending on the setup. But to use LocalTalk with an external clock, the Apple LocalTalk hardware has to be used: it is a Mini-DIN-3 arrangement. One pin is RxD, the other is TxD and the other is for the GPi pin on the Mac. Because LocalTalk hardware was at least twice the cost of PhoneNET hardware, and the word is that each external clock hardware unit was incompatible across manufacturer to manufacturer, plus most places if they needed speed simply skipped LocalTalk entirely for Ethernet, means that getting external clockers is going to be quite an exercise. According to the Apple Service Source 2.5, the GPi pin is not connected on a Macintosh Plus, LC or IIsi.

LocalTalk networks are simple to set up. Aside from a hub, repeater, router or the like, no special software installation is required. Plug the adapters into the respective ports, set up the wiring, and install terminators if necessary. If you don't have any terminators, they can be made with a blank RJ-11 plug (6P4C type, meaning 6 pins, 4 connections), a 1/4W 120ohm resistor and a special crimping tool to crimp the wires into the jack. The resistor connects the outer pins together (which are used by LocalTalk) and they are the "unused" wires on a standard telephone single line setup (the two inner ones are used in a standard single line phone setup), making it easy to rig up LocalTalk and a telephone without too much work. When wiring up the network, note that LocalTalk is not a "ring" or "loop" topology, but a daisy-chain with terminators to close the chain. Using a ring topology without a hub is not advisable.

The preferred port to use for LocalTalk is the printer port, but the modem port can be used also if the computer has OpenTransport active and installed. The involved computers should be off when all the wiring and connectors are rigged up. In the case of a simple network of two machines, then hook up the adapters to both printer ports. Once the computers involved have been connected correctly, the next step is to configure them. A PowerBook Duo with the built-in serial port tends to use Modem, but one computer can be using Modem and the other one can use Printer and they'll still get along fine. Only Macs that need to share out data need to turn on file sharing -- clients don't need to turn on their respective file sharing services to access other machines. Adjusting the color depth, turning off background processes, quitting unused applications and so forth can speed up LocalTalk.

LocalTalk works well mainly for simple and casual networks. For additional flexibility, Ethernet should be seriously looked at. More information can be found with this PhoneNET manual for useful tips about setting up daisy-chain networks, proper termination at wall connectors, and more. German readers will appreciate this source.

PowerBook Duo with various PhoneNET kit: two splitters and an adapter

Components for constructing a terminator

A terminator

Male end of plug

System 6 Setup

Open the Control Panel DA, then select the Network preference pane. If Ethernet is not installed, then LocalTalk is the default option. Otherwise, select LocalTalk. Close and open the Chooser. If AppleTalk is on, then you are ready to go. Select the target machine, enter in the login credentials, select the shares permissible, and they should appear on the desktop. Like the Ethernet based AFP networks, System 6 lacks any file sharing services and itself cannot be mounted on a client computer: it only has client access itself. A System 7+ Mac, Netatalk 2.1.6 compatible server, Windows SFM enabled setup or some other oddities like the LocalTalk PC setups can serve files to this system.

System 7 and 7.5 with Classic Networking

Open the Control Panels. Open Network. Select LocalTalk, if Ethernet was already selected. Close and open Sharing Setup, enter in your username, a password (something is usually better than nothing), and a machine name. Start File Sharing, wait for it to start up, then go to the Finder and select the volume that the prospective clients should be able to access. From the File menu, find the Sharing... selection and enable sharing as desired. Other machines can then open the Chooser, select the machine of choice, login, and the volumes or shares that are selected will appear on the desktop. Guest access will require enabling the Guest user in the Users & Groups control panel and allowing "Everyone" boxes to be marked in the folder sharing preferences.

System 7.1 and 7.5 with OT, 7.6 or higher

Open the AppleTalk control panel. Select the either the Modem or the Printer port depending on which one is chosen. Open File Sharing (can also be known as Sharing Setup). (Note: the MacIP selection in TCP/IP is for hardware MacIP bridges or using software routers like IPNetRouter. It is not important for LocalTalk only file transferring.) Start File Sharing, wait for it to fire up, then go to the Finder and select the volume that the prospective clients should be able to access. From the File menu, find the Sharing... selection (later Macs get it from a Get Info tab) and enable sharing as desired. Other machines can then open the Chooser, select the machine of choice, login, and the volumes or shares that are selected will appear on the desktop.

Macs without serial ports

The iMac G3 and higher do not have serial mini-DIN 8 or DE-9 RS422 ports. A USB to RS422 adapter will not work because the LocalTalk protocol won't work over USB. OS X does not support LocalTalk either, so 9.2.2 is going to be last system version to support LocalTalk off serial ports (if they are the computer, such as the "Beige G3" series, though the serial ports are still accessible within OS X). An AFP bridge is the only hardware device that will allow these computers to access LocalTalk networks. Macs running a compatible Linux distro can use the Netatalk stack to serve as a file server. Also in case this has not been inferred earlier, the regular DE-9 or DB-25 serial ports on PCs is totally incapable of working with LocalTalk traffic. Use a LocalTalk PC card (usually were ISA bus) or an AFP bridge.

Using AFP bridges

Sometimes these are also called LocalTalk to Ethernet bridges, but the author prefers the title of AFP bridge because all but a few can only bridge AFP data (that is, AppleShare via the Chooser or other AppleTalk data, not TCP data like FTP or HTTP traffic).

Basic bridges

An AFP LocalTalk to Ethernet bridge is a very useful tool in the toolbox. These bridges allow LocalTalk-only machines to access Ethernet networks, but they only work with AFP over AppleTalk. The maximum compatible system for these bridges is OS X 10.2.8, though they do work fine with Netatalk (Linux) and Windows Server's SFM services. The limitation of course is the slow transfer rate of these units, because LocalTalk is capped at 230Kbps. Some users have noted that the AsanteTalk adapters can be somewhat quirky: try reading some official documentation on those.

10.3 Panther will work over an AFP bridge but only when it is connecting as a client (to a 7.0/7.1/7.5+ server), not when it is a server.

A Ethernet cross-over cable is the proper cable to use with these boxes, although this is applicable to one model at hand for testing (Farallon iPrint LT). The cabling is pretty simple to route up and connect so there won't be much elaboration here. For software configuration, the Ethernet side gets configured as shown earlier in the AFP Ethernet Networks section, and the LocalTalk side is configured as shown in this section. Only real bridges like the Cayman Systems GatorBox will do TCP/IP routing. (Viewing a system check page for a router with a Farallon iPrint LT showed it only uses half-duplex.) A basic bridge like the Asante boxes cannot route TCP/IP traffic (or use OS X's shared Internet feature).

An AFP bridge in operation
(Farallon iPrint LT)

Example bridges include the Farallon iPrint LT, Asante AsanteTalk series, Dayna EtherPrint, and others. The Farallon and the Asante models are the most common.

Farallon EtherWave Mac/PB adapter

As it turns out, this is a rather peculiar adapter, in more ways than one. They are not that common, but they tend to get passed around from enthusiast to enthusiast, or from those who have absolutely no idea what it is to those who know exactly what it is for. Slang terms include "the stingray" and "manta ray" because of the way it looks. It is a useful adapter, but is not without its downsides. There's another one called the EtherWave Printer Adapter which is kind of the same thing, it has "Printer Compatibility Mode" pre-enabled but can do the same TCP routing. Also "EtherWave" was used by a number of Farallon networking products. Should you spy one, buy it without a second thought.

Let's start with the power. There was a model where it was designed to run off ADB power, namely the PN840-ADB. This is a very bad idea, because PowerBooks can't supply that much power to the ADB bus, so it's running in the red zone. Actually there was a EtherWave networking card that did a similar thing as this adapter does, where it could be daisy-chained to other like adapters, up to a limit. There are about three models which fall under the classification of this section, all identified via part numbers, which is strange because the part numbers aren't printed on the devices (at least the ones used didn't). PN842 is probably the most common and runs off a wall power adapter (2.5mm plug, 12V DC, 500 to 800mA, usual center terminal positive) and is one of the models used in this section. PN840-ADB is similar but has a ADB Mini-DIN-4 type plug to leech power off the ADB bus. There is the EtherMac Multi Adapter (PN558C, and PN848) but other than being listed on the old Farallon website, there is a great dearth of information about it. The EtherMac Printer Adapter (PN552C) and PB550C-ADB all help to contribute to a general state of confusion. These part numbers are based on the archived pages of Farallon's website on there is a chance of some inaccuracy in the exact part numbers.

Interestingly, the Printer Adapter has the power input as part of the Mini-DIN-8 cable, rather than a jack in the body of the adapter itself. A generic straight Ethernet cable was used for this section, although a cross-over cable worked too.

PowerBook 170 using a EtherWave Mac/PB adapter with TCP services (7.1)

Network and MacTCP control panels

Adapter Setup Utility
(System, PowerBook 170)

Farallon EN Diagnostic Utility

Benefits: overclocking capability, daisy-chaining, TCP/IP routing, and pass-through secondary port. At the very least, it operates like a conventional LocalTalk to EtherTalk bridge but with two Ethernet jacks instead of the usual single port. The second port allows traffic from one Ethernet interface to the other, while both are accessible at the same time to the computer using the serial interface. Actually it will pass Ethernet traffic through both

ports even if the serial cord is disconnected.

And now for the let-downs: It is not compatible with OpenTransport at all, except in AFP bridge mode without the EtherTalk Alternative or PB Adapter driver enabled. One model that was procured for this section didn't work on a IIci, neither under System 6, didn't work on a 1400cs and had to be frequently power cycled. The other worked (EtherWave Printer Adapter) perfectly fine. The driver situation is kind of wonky because it doesn't play nice with other NIC drivers on the system. The best way to make sure it works is on a fresh install of the OS where no other Ethernet/NIC drivers have been installed. Also the Diagnostic Utility can't do anything with this adapter. About OpenTransport: The ReadMe says that if one removes the "PB Adapter" extension from the Extensions folder, it will work. But that's not true, at all. Also you can't use the "PB Adapter" driver if the PowerBook is a IRTalk or

EtherTalk Alternative driver and
TCP services (1400cs, 7.5.3)

IrDA compatible device: the ReadMe says to use the EtherTalk Alternative driver which did work on the Printer Adapter (to a certain extent) but not with the Mac/PB adapter. It is not recommended to flirt with OpenTransport with one of these things. Attempting to install the software under 7.1 with OT 1.3 made it such that the Installer couldn't detect the adapter. Try the "EtherTalk for Farallon Macintosh Adapters" and "EN Driver for Farallon Macintosh Adapters" along with "EtherTalk Update" choices for those looking to experiment with OpenTransport or for installing the software without the hardware detection process of the Installer.

Installation and setup is very easy. Assuming a fresh OS, just install the Farallon EN Installer 2.2.1 or 2.2.2 software. It will automatically detect the device when it's plugged into the Printer port and install the proper software, as long as the Printer Compatibility Mode checkbox is not ticked. After the computer reboots, go into the Network control pane (System 6) or Network control panel (System 7+). "LocalTalk Built In" makes the device act like a regular non-TCP capable AFP bridge: just plain EtherTalk traffic, capped at the usual 230.4Kbps. "PB Adapter" is where the real juice comes out and "EtherTalk Alternative" is for machines that have trouble with the PB Adapter mode. Overclocking and TCP routing enabled for the win. Finally go into the MacTCP control panel (version 2.1 strongly suggested, version 2.0.6 for some reason didn't work) and configure it like as shown earlier in the Apple Filing Protocol Ethernet Networks section for MacTCP.

Other fun tidbits: Under 7.5.3 on a PB1400cs under Classic Networking, uploading via AFP would stall or even lock up the computer (bomb with error code 10), and this occurred with both Linux, Windows 2000 Server and Mac OS 9. Downloading a file was fine: a record of 80.1KiB/sec was captured (0.641Mbps) with Windows 2000 Server using Services for Macintosh: TCP services behaved normally, mostly. (Fetch 2.1.2 transferred a 754KiB file in 21.3 seconds, for a rate of 35.4KiB/sec or 0.283Mbps. Uploading took 2:09.5 seconds and includes seven "soft resets".) Perhaps it is confused by the Modem/Printer port that a lot of the later model PowerBooks started using. Surely, it wouldn't be the first hardware or software device to go nuts about the combination serial port. It would be a perfect adapter for a PowerBook Duo because without a dock, pseudo-PPP dialup or something unusual like a direct modem connection, Duos are stranded. The PowerBook Duo 2300c would be left in the dark because it cannot run 7.1. Worst case scenario, it behaves just like a regular AFP bridge when the Network control panel has been set to LocalTalk Built-In. Shame that there aren't that many of these going around -- perhaps they didn't sell all that well. See the Data Transfer Rates section of the More Info page for a speed test on this device in overclocked mode with a proper upload and download attempt. Keep an eye on the #3 LED because if it turns red, or flashes red, it's time for another power-cycle. Wait about 10 seconds before restoring power. This can also happen if the unit isn't supplied with a proper voltage power supply.

When the Printer Compatibility Mode is enabled in the Adapter Setup program, the unit disables TCP routing and will only function as a AFP bridge. When the unit is configured with the PB Adapter or EtherTalk Alternative driver, and then moved to another computer without the driver active, the unit may not respond or function as a AFP bridge. Open the Adapter Setup program and enable the Printer Compatibility Mode, then power cycle the unit.

It seems that the maximum speed rate depends on the hardware, or if it works at all. Because I/O Serial and DMA based serial ports function differently than the "traditional" interrupt based serial port, there are quite a lot of Macs for which this adapter would be suitable, but because of hardware reasons it is not appropriate for the job. Both a IIci and a Quadra 700, 68030 and 68040 respectively, attained a similar speed rating (it didn't work with a Rocket 33. Accelerators which don't change the processor generation usually function with fewer hardware issues). Macs with GeoPorts will not work: a trial run was conducted with a 7100/66 and nothing worked with EtherTalk Alternative or PB Adapter. The 80.1KiB/sec bitrate that the 1400cs produced is enviable, yet this device does have a number of shortcomings, as this subsection has discussed. Still, when it works, if it does, it is a neat little device.

This subsection was made possible in part through the kind loan offered by mbaran at

Cayman Systems GatorBox

Of the hardware MacIP bridges, the GatorBox is the most well known, along with the Shiva FastPath 5. The Farallon StarRouter is a little less common. Because a FastPath box is not on hand for investigation, it is hoped that this page plus this link will satisfy any inquiries.

Back in the heyday of the GatorBox, the MSRP is slapped down at 2795$ US. Want GatorShare to bridge between AFP and NFS for your UNIX system? No problem -- just hand over another 1995$. Still, the GatorBox was somewhat popular, because it allowed multiple computers to share one connection to the Internet, being pretty infantile at that time. Individual Network Interface Cards for each machine, for an establishment like a workplace, school, institution, research center, government office or something along those lines would have been cost prohibitive.

Basic details

Principally, there are two nominal variants of the GatorBox out there. The first is the one which will be discussed here, model 10100. The other is the GatorBox CS. They use different versions of GatorSystem and GatorInstaller, among other things, such as power. The original model takes a 16VAC input, 1 Amp current with a 2.5mm barrel jack plug. Obtain a proper AC to AC wall adapter first, then you may need a 2.1mm female to 2.5mm male adapter to finish off the power supply problem. The GatorBox CS merely accepts a standard "386A" style power cord.

There are four connections on the back of a GatorBox. They are namely, LocalTalk, Serial, BNC 10BASE-2, AUI and and power. The LocalTalk port is used to initially configure the unit, Serial is for some kind of backdoor and AUI just needs a 10BASE-T transceiver slapped on it. As for indicators, the CS has power, LocalTalk and Ethernet lights on the front, but the original one just has one green LED for power and one multifunction cryptic network activity red LED. Initial setup merely consists of plugging a PhoneNET adapter or AppleTalk adapter into the LocalTalk port, attaching a 10BASE-T transceiver and plugging in the power. The Serial port will be discussed later. As part of the hardware phase, most GatorBoxes are over twenty years old now and will need a capacitor replacement operation and a new PRAM battery. Unlike Macs where they can be easily diagnosed by a number of telltale signs, GatorBoxes are more like "black boxes" and it can be difficult to diagnose hardware issues. Also because GatorBoxes are somewhat valuable, these operations should be conducted without delay to prevent or limit the scope of damage.

Starting up the GatorBox

Assuming that the GatorBox is running off a plain slate, start by running GatorInstaller for GatorBox CS owners and GatorKeeper for original GatorBoxes. Users with the GatorBox CS can now divert to this page for the respective instructions, as the remainder of this section will be devoted exclusively to the original Model 10100 GatorBox. There are quite a few similarities, however.

The innards of an original GatorBox

Backside of a GatorBox

A Color Classic Mystic using a
GatorBox (Mac OS 8.1)

Rocket with RocketShare using
FTP service via the GatorBox

GatorBox CS inside (credit: nex at forums)

GatorBox profile viewed from CheckNET

Incompatible system, or hardware issues

Telnetting into a GatorBox

While we're still at the setup phase, here are some important points: An AFP bridge cannot be used to contact the GatorBox in lieu of using serial ports with GatorKeeper, and calling it up through Ethernet won't work either (there is a TFTP extension for older Macs to upload the config to the GatorBox over Ethernet, but this was not tested). Macs with OpenTransport enabled can contact the GatorBox, but cannot upload configuration data to it. The word goes that OT doesn't work entirely but a IIci with 7.1 and OT 1.3 did work (but not 7.5.3) to upload data to the GatorBox and get it set up. The ideal System version is System 6 through 7.1. 7.5 will do the job as long as it is set to Classic Networking. Another interesting tidbit is that a 1400cs could not work with the GatorBox at all to get it started, so it's probably safe to say that a 680x0 processor machine is a requirement.

Let's start by making a typical setup that should handle up to 8 Macs with a LocalTalk bridge and TCP/IP forwarding. Because LocalTalk doesn't work very well with more than 6 or 8 computers (it's very "chatty"), this scenario should be applicable to most users' future needs. Assuming that the GatorBox has power, an AUI transceiver, PhoneNET already wired up and the power switch flipped, let's look at the software front. Begin by loading the GatorBox Configuration and GatorShare Application disks. The Network Applications disk just has a modified version of NCSA Telnet 2.4 which isn't needed for what we're doing here. GatorShare is the software stack that gets uploaded to the GatorBox each time it boots up, because unlike the GatorBox CS with Flash memory, the GatorBox has to load it all into RAM before it is usable.

Copy the GatorKeeper program to a folder on a hard drive or other suitable volume. Copy the GatorShare document too (because GatorSystem, the base software that comes with a GatorBox, is not used. GatorShare adds on to it). GatorPrint, DECnet and the AFP to NFS bridging feature of GatorShare are not discussed in this section. Start up the GatorKeeper application, which if it has not been run before, will ask to create some configuration files. Let it do its thing, and afterwards the main GatorBox window is drawn up, which shows all the GatorBoxes in the current zone. Most users reading this won't have zones, but because this unit can create zones, it warrants some coverage of that which will be done later. In our example here, the unit named "GatorBox06505" which is the default name (syntax: GatorBox##### with # being part of the serial number). GatorBoxes can be renamed, or just left as-is. Examining this window, a GatorBox with a dimmed icon means it's not accessible at the present moment. If nothing shows up when your GatorBox is turned on and connected, then there's a problem with the GatorBox. Powering up a GatorBox after the GatorKeeper program is started means that there is about a one to two minute delay before it comes online.

Main GatorKeeper window

Diagnostics window

Statistics pg.1, status

Statistics pg.2, unit info

Select the GatorBox profile. Head to the Special menu and select "Status...". The selected GatorBox will have an icon that is associated with a particular status column (which sometimes doesn't auto-refresh):

Keep this window open to keep an awareness of what is going on. The Diagnostics window has a lower-level view of what is happening, the Info window is for general information about the unit and the Statistics window gives the viewer an idea of how much load and traffic the box gets. An astute observer would probably look at some of the manual documentation and the Statistics window and thus conclude that the GatorBox is running some kind of a UNIX type operating system.

Go back to the main GatorBoxes window. Double-click the GatorBox profile, in our case here it is GatorBox06505. For now, all that will be demonstrated is the AFP bridge and TCP/IP routing feature. To start the AFP bridge feature, double click the AppleTalk Routing entry. Enable the AppleTalk routing by clicking the On button in the dialog box. Under "LocalTalk Network" choose Soft Seed Port. Now the GatorBox must have at least one zone, so we're going to have to create one. For the Number field, just pick any five digit number that doesn't get too high, like 42281. (The User's Guide says a number from 1 to 65366. The author used 32767 in honor of the famous 32768 bug.) Next, pick a zone name. Look a little further down for the EtherTalk Phase 2 area. Enable it by clicking the check box. Select Soft Seed Port, and for the Network Range, put 1 for the first field and 8 for the second one. Click the Zone List button. Remember the name of the zone you entered earlier? Type the same name in the text entry field, then click the Add button. More zones can be added from here but only one is sufficient. Click OK, then OK to close the AppleTalk Routing dialog. Let's move on to MacIP routing.

AppleTalk Routing

Creating the first zone

TCP/IP bridging dialog

MacIP options

Extra options for MacIP

Double click the TCP/IP entry. Here, it gets a little more interesting. Turn on the TCP/IP radio button to begin. Assuming you're using a router, which has been assigned an IP address of and assigns IP numbers to a number ranging to, pick a number that hasn't been assigned to another client hooked up to the router. For now, we'll choose The "IP address" field is for the IP address of the GatorBox itself. (This is how a user can telnet into the GatorBox, among other things.) For the Broadcast Address field, just put (refer to the Network Reference manual, page 3-6 for clarification). Click the "Default Gateway address" button, and put the IP address of the router, which based on the presumed scenario is Then click the "Subnet mask" checkbox, and put in

Since most people doing this will be using twisted pair Ethernet, click the Transceiver Ethernet (in which case the AUI port is used, obviously for a AUI to 10BASE-T adapter) radio button at the bottom. Conversely, users who have 10BASE-2 coax wired up as Ethernet would leave it at Thin Wire Ethernet which points the GatorBox to the 10BASE-2 coax jack on the back. Now click the "MacIP Options..." button. Unlike IPNetRouter the nodes which the GatorBox is routing don't have to live on a different subnet. So we won't use the "IP Subnet" selection, instead choose "KIP Style forwarding". (Kinetics Internet Protocol was eventually repackaged as MacIP.) For the "First IP address in range" field, this is the starting address reservation that the GatorBox will preserve for clients. Let's put in, leave the static addressing set to 0 and put 8 for the dynamic addressing entry box. Click the "More..." button and put for the DNS server address. If the radio button selection is not "NBP (KIP) Style ARP" then change it so it is. Enable the last checkbox at the bottom, then OK through the two dialogs and then finally go to the Special menu and choose "Download & Restart..." from the Special menu to upload the new configuration data to the GatorBox.

Users who don't run a router, but instead use a cross-over Ethernet cable to connect directly to another computer won't need the "Default Gateway address" filled out. It's still better to run a router, even if it only has two computers attached to it, for purposes of future expansion and stability.


When a GatorBox is rebooted, it is not unusual for a message on the client computers to come up saying the AppleTalk network has been disconnected. This is because of the fact that the GatorBox assigns a working zone, or zones. Normally in the progression of this Guide there has not been any zones involved, so the zone was more or less "null" or just "*" meaning anything.

For all computers with MacTCP in service, the Network control panel should have already been set to LocalTalk. As mentioned much earlier, the Network control panel just determines what interface AFP should use, otherwise it has no influence on TCP traffic. Back to MacTCP, set the mode to LocalTalk. The zone which the GatorBox is using should be shown just below the icon. See below for more coverage about multiple zones. Click the "More..." button. There are two ways of going about this: manual addressing and automatic. Automatic is the easiest and works -- just set the mode to Server, put a full stop (a period ".") and then the address of the router (not the GatorBox) under the Domain Name Server area.

Back when we set up the GatorBox, we chose dynamic addresses rather than static ones. Dynamic means that clients choose from a pool of available IP addresses, and static means that clients pick one reserved for them. Smaller networks are fine with dynamic addressing because as soon as one address is no longer in use by one computer, it can be reassigned to another. How does this relate to MacTCP? Well, manual addressing in MacTCP is probably the better configuration for static addressing. From within MacTCP, for 2.0.6, change the Class to C. Put the GatorBox's address (in this example, in the Gateway Address. To grease the rails, put the address of the router in one of the Domain Name Server fields. When finished, enter the address for the computer in use in the main MacTCP window. Since MacTCP 2.1 is desirable for a number of reasons, it should be used instead of earlier MacTCP builds unless authenticity is a priority. Refer to the image gallery for how it should be set up, assuming identical parameters as used here.

MacTCP Server mode

MacTCP Manual mode

OpenTransport automatic state

OpenTransport manual profile

IP address conflict

OpenTransport clients are similar. The automatic method is just MacIP Server from the TCP/IP control panel. Nice and easy. Otherwise, use MacIP Manually. Assign the Mac an IP address that is within the reserved block that the GatorBox sets aside, like as used here, Put the address of the GatorBox in the Router Address field and then the address of the router in the last block.

Other features and information

There is a RS422 serial port which sits next to the LocalTalk Mini-DIN-8 plug on the back of GatorBoxes. Apparently a user is supposed to hook up a cable and use a terminal program like MacTerminal or the many equivalents, set it up for 9600 8N1 and access some special features of the GatorBox. All attempts by the author to investigate this feature failed. It could be that the serial port was intended for Cayman internal diagnostic or testing purposes, as the Setting up your GatorBox booklet explains (emphasis as per the original):

Serial port -- The serial (DIN-8) port is used by Cayman Engineering to run diagnostics on the GatorBox hardware. The serial port is not intended for end-user use. Specifically, the serial port cannot be used to connect the GatorBox to a modem, printer, or serial device.

The GatorBox CS has a switch on the back of the unit to enable a TEST mode. The point about a terminal login to this interface probably applies only to the CS model, which is what the source omitted which spoke of accessing the device via a 9600 8N1 terminal.

EtherTalk Phase 1 networks are present with Macintosh II computers using the EtherTalk 1.2 driver, the Apple IIGS and possibly a few other older network drivers. EtherTalk Phase 2 improved the routing capabilities of EtherTalk traffic, added zones, support for more nodes (computers or devices like the GatorBox) on one network, and a few other things. Because the GatorBox can route Phase 1 traffic, it is handy for certain cases and is a valuable tool for such purposes because not a lot of gateways will like the Phase 1 protocol. Read the GatorBox User's Guide and the Network Reference for further details.

The GatorBox diskettes included a modified version of NCSA Telnet 2.4. This was made to Telnet into the GatorBox, and was not tested here. The telnet access attempts included Nifty Telnet (couldn't work right) and the Terminal within OS X 10.4. TFTP likewise was not tested because a compatible Mac is required to set up the GatorBox first, which in turn would probably be the machine which would be a bridge client -- rendering TFTP unnecessary in the first place.

Do not hook up an AFP bridge on the LocalTalk network attached to the GatorBox. Testing proved that the AFP bridge went into a soft-reset loop and the GatorBox went wild, enough that the unit has to be powered down and configuration information reuploaded to it.

More about the AppleTalk zones

AppleTalk zones are a subject of some interest here mainly because nobody really talks about them elsewhere on the Internet. The GatorBox makes creating zones really easy but for users with less than 12 active connected Macs on one network, it's rather pointless and in fact can make things a moderate hassle.

First, assuming a GatorBox as shown earlier, it has to be in at least one zone. Usually when the GatorBox is rebooted it causes all the nodes to pop up a dialog saying the network has gone down, and then back up again. This default zone in the EtherTalk Phase 2 configuration, and the TCP/IP routing window are of interest. All the LocalTalk nodes are stuck with the zone defined in the AppleTalk Router dialog under the "Zone Name" field and cannot change themselves to some other zone. The only time a user can change which zone he is associated with is when his node is on the EtherTalk side, that is, not attached to the GatorBox's LocalTalk network. This occurs because the Ethernet side is not stuck in the GatorBox's primary area of control.

Practically, zones make sense for a network with a different topology than most home or hobbyist users will be found using these days. Such a description would be something like one LocalTalk network of "Ground Floor" with a GatorBox, which has Ethernet hooked up to a gateway, which also has another GatorBox on it with Ethernet going to it for "First Floor" whereby the Ethernet would be hooked up to the T1 connection or something like that. In this manner the Ground Floor would be in one zone and the First Floor would be in another zone. Printers and file servers can both be divided accordingly into the appropriate zone based on the design of the network and the network administrator.

GatorBox with four zones

Chooser and MacTCP with multiple zones

List of zones...

...but only one with MacIP

New zone dialog

Changing zone

OpenTransport zone choices

Zone config blocked

Back to the GatorBox, it seems that only one zone can be used for MacIP routing, selected by the "Default Zone" in the Zone List dialog. Otherwise, AFP data can go in between zones without too much conflict. In MacTCP and the TCP/IP control panel when OpenTransport is installed, the user has to choose the right zone that MacIP routing is active on. Otherwise, to choose which zone the computer should settle down into, that is done in then Network control panel for classic networking and the AppleTalk control panel for OpenTransport enabled systems. Nothing too remarkable.

Using the LocalTalk Bridge Software

This is a control panel (CDEV) that is unofficially supported but was distributed by Apple. It requires System 7.1 or later for it to run along with a 68020 or higher, with at least one interface to share through the LocalTalk port: it can be either Ethernet, WiFi or IRTalk. The ReadMe is actually quite comprehensive and should cover most questions about the software.

Once it has been downloaded, mount the image and copy the control panel to your System Folder. Use the radio button to turn the software on. After restarting, open the control panel once again. The network privacy option simply blocks non-LocalTalk machines (Ethernet) from accessing the LocalTalk side when it is enabled but still allows the LocalTalk side to contact the non-LocalTalk side (Ethernet).

The bridge software still restricts the LocalTalk machine to its normal limitations on the maximum OS supported. This means that a Plus won't be able to connect to a 10.6 Snow Leopard (It's just basically behaving like a software version of an AFP bridge); rather, it is limited to OS X 10.2.8. But one option in such a case is use one Mac as a bridge to mount Snow Leopard, then the Plus could mount the bridge Mac. Attempting to mount a higher machine, such as 10.6, by using the Server IP Address button in the Chooser will not work on the client machine: only on the bridge box. This control panel has no ability to route TCP traffic whatsoever: only AFP data.

Apple Internet Router 3

This is an interesting software suite that routes dialup or Ethernet traffic to LocalTalk ports, for a sort of pseudo-shared-dialup configuration. The software installs software intended for 7.0/7.1 systems and applying it onto a System 7.5 OS will not work and will bomb the system. Thusly, 7.0/7.1 is the desired System in this case. The Installer comes on three 800KiB disks and another folder to install the TCP routing software. This is the sort of software that requires a manual to configure it, and there is also this page which is like a product description page.


This is an application software stack that interleaves a number of enhancements to OpenTransport systems, allowing them to share Ethernet TCP/IP traffic out to the LocalTalk ports (there's also an OS X version: reports indicate that it does not support AFP over AppleTalk). It is basically the same concept as a hardware MacIP bridge such as Shiva FastPath 5 or a GatorBox. There was a promotion for this product awhile back at, using the WayBack Machine to look up the archived page versions could be useful, if slightly unethical...although the software apparently can't be purchased anymore... Client systems won't be able to access AFP servers through IPNetRouter and also MacIP doesn't work in OS 9 as a client so 8.6 will be the last system version to use MacIP though the TCP/IP control panel. (Or not, as with this Pismo. Considering that the Pismo doesn't have a RS422 port, it's probably safe to say no. Other machines -- perhaps.) It will not play along nicely with LocalTalk Bridge, at least in basic testing, because LocalTalk bridge kicks an error saying the serial port is already in use. Another product is IPNetMonitor, which has the usual lookup, whois, traceroute utilities. It produced an error saying something concerning "ICAp;InternetConfigLib", so that's probably a clue to install Internet Config...

Once again, IPNetRouter doesn't forward AFP file sharing, such as if a PowerMac G3 is running IPNetRouter to two clients with System 7, and another Mac with OS 9 is on the same router, the Mac OS 9 computer won't be visible to the System 7 clients. Quitting the program turns off the routing suite.

A PowerBook 1400cs (7.6.1) providing MacIP routing to a PowerBook 170

Suggested MacTCP settings for MacTCP 2.1

Using OpenTransport on the client

IPNetRouter example configuration

Download the software. Enter in the registration details when the opportunity presents itself: it will quit without the proper information. The computer will have to also be online because the program must authenticate the registration information with SustWorks' servers. Then the main Interfaces window is drawn up. This window is used for setting up the interfaces to use.

Assuming the bridge machine has Ethernet or WiFi and the goal is to route the traffic to LocalTalk (which also works over PhoneNET), modeled in the second image on the online help page, it's not that difficult. Make sure that no other program, like LocalTalk Bridge or ZTerm is using the Printer port or Printer/Modem on Macs that only have one. In a completely odd twist, the author noted that a standard direct printer cable (RS422 male to male, cross over) did not work with IPNetRouter, yet PhoneNET did. None of the tutorials on setting up IPNetRouter elsewhere (used for reference) mentioned this, so it could be just a local anomaly (the cable works just fine with LocalTalk between two machines) or a real issue. PhoneNET is way better anyways, since it permits painless daisy-chaining, but it would have been nice to know about it beforehand...

Make sure that the TCP/IP control panel is already set up with a proper manual or DHCP Server configuration and that the AppleTalk control panel is set for either Printer or Printer/Modem (for Macs with only one serial port). Back to IPNetRouter, when it starts up it usually locates a Ethernet interface to use. If DHCP Server is selected in the TCP/IP control panel and the relevant IP addresses haven't been assigned yet, it could have trouble getting started. Use manual addressing if DCHP Server isn't working right. It tries to automatically fill in the Ethernet interface fields for the IP Address and Subnet Mask.

If the Ethernet or wireless interface was not automatically discovered, then click the first field, look down at the Configure Interface area and select Ethernet. If DHCP Server is in use it might fill out the fields; if not then it must be discovered somehow (it's not always shown in the TCP/IP control panel, even if Internet access is active), one way is to fire up NetPresenz and look at the log. Put in the subnet mask, turn on IP Masquerading then click Add, which also works like a "update" button if something is changed. Make sure the "Bring Up" checkbox is enabled. IP Masquerading is required, otherwise the routing function won't work.

Now for the ddp0 interface, which is for LocalTalk. Select the second field, and then from the Configure Interface area, select ddp0 from the selection menu nearby. Pick an IP address that is not in the same subnet as the previous interface: if is the assigned IP for the bridge computer, pick for the ddp0 assigned IP. As before, put in the subnet mask, make sure the Bring Up checkbox has an X inside it, then click Add. There are quite a few ways to configure IPNetRouter to do many different things (port mapping, DHCP server, ...) but the previous example is probably going to be the most likely one people might use this software for these days.

Finally, assuming that the PhoneNET or AppleTalk cables have already been wired up (use the Printer port for client machines), go into MacTCP. Set the "Obtain Address" to Manually, the Class to C (for 2.0.6 and earlier), the Router Address or Gateway Address to (for example), fill in the DNS fields with proper DNS IP addresses, and then set the subnet mask for if MacTCP 2.1 is used. Close the dialog box, click the LocalTalk interface, which is the MacIP driver through the printer port. Set the IP address field at the bottom to For the TCP/IP control panel on OpenTransport systems, set the "Connect via:" drop down menu to "AppleTalk (MacIP)". Set the IP address field to, the Router Address to (this last one is the IPNetRouter assigned IP) and put the DNS information in the "Name server addr." box. A reboot may be required for any client systems after the setup is complete. The system should now be ready, to access FTP servers, WWW servers, IRC or any normal TCP service. It's perfectly possible to string five old Macs on a single PhoneNET computer and have IPNetRouter serve them all at the same time, as long as they are assigned different nodes (i.e.,, for a three computer arrangement). It was observed in the author's case that MacTCP 2.0.6 was unreliable, even over a local LAN network: use MacTCP 2.1 instead. Sometimes IPNetRouter has a hard time initializing the ddp0 interface: try rebooting or starting a new configuration file.

Direct Modem Connections

This is a rather obtuse and probably rarely used method, but since its an option, it might be suitable on a PowerBook Duo if it has an optional 14.4Kbps modem and the serial port is blown. The whole idea of this method is to link two modems directly without going through an ISP. There will be a speed drop compared to using a direct serial cable, in this case a null modem cable.

For starters, the maximum throughput possible with analog modems is going to be 33.6Kbps, because of the limitations of the hardware. Digital 56Kbps modems will be a little bit higher but not by much. Like Ethernet auto-negotiation, the modems will agree on the best method: if one modem is a digital 64Kbps modem, yet the other is a basic V.32 model, then they will default to the V.32 protocol. A lot of newer computer don't have built in modems any more because in general, computers are connected via Ethernet or WiFi protocols. Not only are they significantly faster, particularly when the cards with 1000BASE-T and 802.11ac written on them are pulled out, they are far more flexible. Generally speaking, those users still stuck on dialup (remote areas) with newer computer hardware will likely be using USB to RJ-11 modems or something like PPPoE (PPP over Ethernet). This Guide will assume that built in modems are being used and all requisite software has already been sorted.

Some modems will work directly between each other with just a passive straight RJ-11 cable between them. This may not always be the case though, especially with older modems. If that doesn't work, then a line simulator must be constructed to fool the modems into thinking that a regular phone line is present, as all US hardwired old-fashioned "land lines" had power available on the wires (it's so that telephones could call out if the power was lost). To construct one, follow the instructions provided in the Jag's House link tucked inside the previous URL.

This section won't be that elaborate because all the terminal programs have been discussed earlier. The first trial run using an iMac G4 800MHz dialing up a Compaq E500 was interesting because an attempt at using the homemade line simulator didn't work (the modems couldn't dial each other). Instead a straight regular RJ11 cable between them worked just fine. When HyperTerminal is fired up using a built-in modem, just cancel out of the dialing window and go straight to the terminal window to enter the AT commands. ZTerm doesn't need to "dial" any numbers, either. Simply go right to the terminal window and enter the requisite AT commands. The modems should dial each other, and afterwards, they're on-line.

Internet and Email

Domain Name Server

In the old days, a configuration file called a Hosts file was kept on hand that held the DNS information locally, and it was either downloaded or compiled manually. That was fine when only a couple thousand sites are up, but when the Internet ballooned, it was no longer feasible to maintain such a list. MacTCP can maintain a hosts file, and Open Transport with the Advanced Mode selected from the Edit menu allows manual configuration. With System 7.1 and higher set up with OpenTransport DHCP, DNS information is handled automatically through the router, so no local adjustments or tweaks are necessary.

MacTCP requires DNS server information because it is incapable of looking that information itself. Basically a DNS server takes something like and looks that domain name up in a huge list to see what IP Address should the client computer connect to (although it's a lot more complicated than that). In the USA, for instance, it's at the time of this writing (and has since moved...), and one can either type or type into the browser address bar. One is just easier to remember ... promote ... and market. (Imagine seeing "" on advertising billboards. So geekish.)

To find out the DNS servers on an OS X box, open System Preferences. Click Network. Select the service (AirPort, Ethernet, Bluetooth, FireWire) and select Configure (this is under 10.4 Tiger). Click the TCP/IP tab. If nothing shows up under "DNS Servers" (unless a different DNS is configured) then head to Terminal and type this:

cat /etc/resolv.conf

Here is one example of the resulting printout:

$ cat /etc/resolv.conf domain domain.act.dsltmp nameserver nameserver

In the case shown above, "" is the router address (internal), and "" is the DNS. Usually the router obtains this information from the ISP. Here's another one with a different ISP:

Last login: Tue Aug 14 20:23:49 on console Welcome to Darwin! icecubeW0A:~ icecube$ cat /etc/resolv.conf domain nameserver nameserver nameserver icecubeW0A:~ icecube$

An even easier method than looking up the OS X DNS servers is to simply use Google's public DNS servers. They are easy to remember: and If the server address can't be determined from the resolv.conf file, then just use the router address. The router has to lookup the DNS anyways through the ISP.

To find out the Ethernet MAC address under MacTCP, turn off Caps Lock if it is on, then hold down the Option (alt) and click the "Ethernet" icon in MacTCP's main window. The address should appear just below the Ethernet icon, like "0020A51500C5". For OpenTransport systems, open the TCP/IP control panel, then from the File menu, choose the Get Info selection; or switch the user mode to Advanced (or Administrator) and click the Info button in the lower-left of the main TCP/IP window.

Web Browsers

One major problem with all these older browsers, except iCab and Internet Explorer 4.01 is the dearth of web pages that are still out there that will render properly. A good idea is to find out first on a more modern computer what the page looks like: HTML 3.2 formatted pages will still be okay: otherwise, it's a shot in the dark.

MacWWW (Samba)

The best and pretty much only browser for System 6, it is well reputed for crashes and bombs. It's about the only one that can remotely work: no rich content (practically just a HTML source viewer), corrupted web pages and hangs are normal on modern pages. Also it can get into the habit of self-corrupting, so keep a backup of the program on the computer. It behaves differently in System 6 versus System 7, too. In System 6, it nags incessantly for a printer and assumes that is still active. There aren't any settings to configure. In System 7 it will not start up unless some kind of server is accessed immediately through the dialog that opens right after the program is started. Because there are a huge number of sites that don't work very well at all with it, it's probably best to scrap it and use Mosaic instead within System 7 (which also suffers from the same compatibility syndrome). Use "Open Doc ID" from the Navigate menu to open a URL. It's not really a good browser to use, although it's probably better than nothing.

MacWWW on a local web server


For System 7.5, the best is iCab Pre-2.9.9b (or Pre-2.99a for PPC), but it is heavily loaded, bombs when trying to set the colors for the background on a SE/30, the dialogue box for Preferences is too large for a 512x342px display, and is slow. Despite this, it does, for the most part work, as seen below. It also has a generous thirst for memory: four megabytes is not unusual. Hiding the navigation bar to free up more space (one can't really be in a hurry to go back one page) is a good idea. It can handle .png images, but it is not ideal (any sort of compression requires CPU work, which is limited in this case). iCab only runs under System 7.5 or higher: for 7.0/7.1, use the Pre-2.97 binary (has a expiration date built-in, just backdate the computer's date). The download links are still maintained. It also has a nice download manager feature, providing the exact URLs are on hand.

It is really meant for a Blackbird (IIfx) or higher, even better on a fast '040 such as a 40MHz 840AV, or a PPC, and even then it's still sluggish. Mobile websites (e.g.: are stripped down for handheld and mobile devices such as tablets, PSPs, the lot and will render easier. These days with heavy JavaScript and Flash coding liberally sprayed over most websites will really bog down the computer. Obviously Flash is out of the game at this point, but the machine power is still limited from the start.

For the most part, this setup should only be used to show off Internet access to friends and doubters, since it's too slow to practically work (figure 3 minutes to send an email shown below, or about 90 seconds to load a page).

.jpg rendering (~5min on a SE/30)

JavaScript can be disabled through the menu or through Preferences, and the User Agent can be tweaked as well, it may be smart to change it to that of a mobile device like a iPhone OS device. At the present time, an increasing number of websites are moving to SSL encryption and device responsive design, where "intelligent" rendering based on device identification values determines the web site displayed. So in the future, browsing could become prohibitive except for a small number of old HTML 3.2 or HTML 4.0 websites coded mainly by hand.

As a side note, in the images below, compare the difference between 640x480 (4:3) and 512x342 (3:2) in terms of the vertical real estate. 512x384 is 4:3, used in some of the VRAM-limited Macs like the early LC series. Since the mid 2000s there has been a major push away (laptops in particular) from 4:3 aspect ratio LCDs, including tall screens like 1400x1050 (i.e. ThinkPad X61 Tablet). Most computers (and mobile devices) these days are widescreen with 16:9 or 16:10 aspect ratios. The Apple iPod Touch (1st to 4th gen) and iPhone (2G to 4S) have a 3:2 resolution, and along with the XGA based resolution of the iPad series mobile devices, make them workable in both portrait and landscape, unlike the lot of 16:9 tablets.

Yahoo! Mobile

iCab sending an email

More space with no nav bars (iCab)

User Agent config in iCab

JavaScript config in iCab

Netscape 2.02

JavaScript funzies (Netscape 2.02)

Internet Explorer 4.01

Other browsers

The browser that really got the cart going was NCSA Mosaic. The Macintosh port requires System 7 or higher. Mosaic 1.0.3 looks a bit like 2.0.1 but isn't quite as polished. 3.0b4 requires Internet Config to be installed for it to operate. None of these browsers will work with JavaScript, but they are lightweight and if basic HTML pages with few or no images are present, they work fine. 2.0.1 is recommended since it renders pretty much the same as 3.0b4 and is a lightweight download. The application only uses about 2MiB on disk for the 68K (PPC is a bit bigger) version; while we're on the subject of disk space, disabling the web cache is a good idea otherwise every page is saved to disk, figure about 16KiB each. (Back in the old days, slow connections with pay-per-minute access made caching imperative, depending on free disk space; there's also a "preview" function to get an idea where the intended URL heads to, for precisely this reason.)

Mosaic 2.0.1 with local LAN website

Another lightweight fellow is MacLynx. This one follows the old-school page navigation sans pointer control. This one also requires System 7 or above. Very minimalist web rendering, no images whatsoever, and knowledge of all the pertinent key commands is a must. This page should be able to bring new users up to speed, or the included documentation.

Netscape 2.02 is another candidate, which has issues with JavaScript; nonetheless if it is a simple text website with few graphics, it is faster than iCab. You are free to explore this route and experiment, but don't be surprised if something doesn't work very well, simply because the modern HTML and page design has changed so drastically. Additionally, very few websites (gopher proxies can work okay) are designed with simplicity in mind.

Other prospects include Netscape Navigator 3.04 and Internet Explorer 4.01 (68k, and FAT). Internet Explorer 4.01 installer includes Outlook Express, a Personal Web Server with an FTP plugin, and so forth -- it also takes up about 24MiB on disk. NN 3.04 could not load Google correctly without displaying a barrage of JavaScript error dialogues, and attempts were made to try find out a way to disable it, without success. IE 4.01 seemed be okay, but it took about a minute and fifteen seconds to load Google (plain including time to display an error dialogue. The time for iCab to load Google was just under 20 seconds (SE/30, 32MiB RAM). Another candidate is MacWeb, and there is a bit of juggling to do with the versions.

The website Loband is handy web fat stripper for these older browsers. Internet Explorer should have native built-in support for Gopher.

NCSA Mosaic 2.0.1 (1.0.3 similar)

Ideal webpage (Mosaic 2.0.1)

NCSA Mosaic 3.0b4

MacLynx with a Google search

Internet Relay Chat

IRC was developed a long time ago and is still used to this day as a instant messaging service. For this demonstration we'll try out a channel under a Freenode server with Homer 0.94. Homer is a fairly moderately sized application at 1.6MiB and appears to work fine with grayscale graphics, although the specs say it can work with MacTCP and System 7.0, so it should work fine on a 512x342 1-bit display and it seems to work with System 6. (It's available from the Macintosh Garden.) There are also mIRC and Ircle 3.0.2 as options if Homer isn't to your liking, this site explains some alternatives (there are not many). Ircle is a shareware option that expires after 30 days -- it appears the license scheme is still running now. Basic setup procedures can be found here.

Let's try connecting to to the ##arduino channel. Freenode uses NickServ to register nicknames, so registration must be done first; doing this on a more modern computer would be a good idea, such a Colloquy on OS X (or the web client at, as there is some email authentication required. First, open the application, and a connection dialog is presented. In our example, type for the Server Address. Homer doesn't seem to "click" right with NickServ so the User ID and User Name can be filled with anything. For the nickname, enter that in as well, and set the port to 6667 (Freenode does have a few other ports available for IRC). Click Connect.

Next, type /msg NickServ identify nickname password, replacing nickname for your nickname, and password for the password. Hit Enter, then once it acknowledges the identity, one can join a channel by typing /join #channel, replacing #channel as appropriate. In this demonstration ##arduino was used, other channels like #win32, #bash, #android, #debian, and so on are possible as well. If everything ticks, the chat room is live.

It is a good idea to set the font size to 9 (unless size 7 is sufficient) and shuffle the windows around until a workable arrangement is found. It should be happy with 640x480, so as the demonstration was with 640x400, a little working around to find an ideal placement for everything was needed. If WindowShade is installed, the Console window can be collapsed, keeping it handy in case a few more tasks need to be done. Homer will not work with all chat servers, like Undernet servers, but if it's just a Freenode server, it is sufficient. Otherwise, Ircle 3.0.2 or the like should manage instead. To start a private chat with someone, use /query username message, replacing username with the target username, and message with a starting message like "Hello?", although it can be blank. /msg can be substituted in place of /query.

Connection dialog

NickServ login

Joining a chatroom

Chat room is now live

Email Clients

An email client requires SMTP, POP3 or IMAP protocols to work correctly. If a personal email address is established through an ISP and a client like Outlook, OS X Mail, or the like, then these protocols are already present. Free Yahoo! mail does not include POP3 protocols (mobile devices have special servers for them), however there are other free email services (like, gmail, etc) which offer those connection protocols. The hard part these days is that SMTP or SSL authentication is established by modern email systems, which wasn't established in the 68k days with the same degree of intensity as these days.

One way is to use certain software widget on a bridge Mac that relays the email traffic to the vintage machine and back out again, but that isn't a complete solution. More pertinent information is available here. There is a prospective client that may work under System 7.5 and may require Open Transport to work.

This section will not be updated further unless new discoveries surface — the author has experimented with a number of different clients and could not get them to work in a reasonable period of time. At this point in history it appears that the lid has been shut on this case, although if you did setup your own email server there is a possibility it could be blacklisted for different reasons. At this time, accessing email accounts through a browser is probably the only workable option.

For hosting a personal email server, a starting square could be Apple's Internet Mail Server (AIMS) or Eudora Internet Mail Server. Both are nearly identical as the latter was bought by the former.

Web Hosting

It is still very possible to host HTML webpages with these computers. (Even a C64 can do it. Server has spotty access times.) The WWW server in NetPresenz might work, or search around the web for other applications. Here is a webpage allegedly hosted by a Mac Plus with topped off memory. The ideal machine for HTML hosting is a SE/30 because it has a fast 16MHz CPU, has separate video driver circuitry (rather than interleaving the video with the CPU, as with earlier machines: the 128K and 512K series spend half the CPU cycles on redrawing the screen, while the SE spends a quarter), enough memory to host entire webpage and everything else aside from the System on a RAM disk, a compact footprint and...well, not many disadvantages (aside from Diimo 50MHz '030 accelerators being in short supply, along with socketed CPU boards).

At any rate, one popular software suite was WebSTAR 2.0, which was basically a rebranding of MacHTTP. AppleShare IP also has a WWW server feature. Expect slow transfer rates, primarily by reason of the slow network cards, the computer itself, and the storage. Web hosting is usually best left to a computer with at least a 300MHz CPU, decent ATA100 hard drive bus, and 100Mbps rated Ethernet, although this depends on the complexity of the webpage. Simpler HTML pages with few or no images are better.

Supplemental Networking Methods

The networking techniques shown below are considered obscure or rarely used, but let's have a look at them for curiosity purposes, or for historical reasons. Telnet is still used today but it has been largely eclipsed by Secure Shell (SSH) which is much more robust on the security front.


Telnet is a TCP based feature which allows remote computers to be administered from a local machine. An example would be to control a *NIX workstation at a workplace from home through the Internet, to a certain point. SSH is the encrypted variant which works in a fairly similar fashion to unencrypted (and rather dangerous) Telnet service. Like FTP, a server element is required -- two Telnet/SSH clients cannot communicate with each other.

Nifty Telnet with active Telnet session

The Telnet protocol is a plain-text service and can be easily hijacked by malicious users or malware. Do not run this service on public, unsecured or untrusted networks.

Connect all computers via Ethernet or one to another via pseudo-PPP dialup. As these methods have already been explained earlier, refer to the AFP Ethernet section for instructions on setting up MacTCP or OpenTransport with Ethernet, or the Pseudo-PPP Dialup section for the procedure. Next, we'll discuss the programs, then how to get them all set up. The prevailing assumption is that the vintage Mac will be a client connecting to a newer machine running a server. There are no known Telnet or SSH server programs for Classic Mac OS.


There are going to be some lesser-known outcasts which may be better or worse than the examples suggested here, but we're going with commonly used versions. A common Telnet client for Mac OS Classic is the NCSA Telnet series. Version 2.5 can use SLIP but then the server has to provide a proper SLIP connection. Otherwise, simply use version 2.7b4. Version 2.6 is suggested for System 6 but your mileage may vary - 2.7b4 worked fine.

The known SSH clients in common circulation are MacSSH 68K and PPC or NiftyTelnet 1.1 SSH r3. Both will do conventional Telnet however neither will work inside System 6. System 7 is required for NiftyTelnet and MacSSH won't work under anything less than 7.5.

Server setup

Microsoft Windows

Right off the bat, this section will suggest the use of the built-in server. Only Windows 2000 and higher have a built-in server, so let's start with Windows 2000. Because the default authentication mode is NTLM, which none of our clients can understand, the plaintext authentication mode must be enabled. Users who wish to do this full-time should enable a special user account just for Telnet purposes rather than logging in as the primary user, being the root user (Administrator in Windows terminology).

To enable the plain-text authentication, open the Command Prompt. Type tlntadmn. Select the 3rd entry by typing 3, then press the Enter key. We need to change the NTLM mode, so then press 7, then Enter. It will ask if the value should be changed, which it will be, so type a y, then it will prompt what value to change the option to. Change to zero by entering 0, then hit Enter and confirm. Afterwards choose "Exit this menu", then "Quit this application". Type exit to quit the Command Prompt. (This tutorial was used for this section. The page has expired at time of this release.)

Now to actually start the service, open the Start menu, then Administrative Tools, then Computer Management. If Administrative Tools is not visible, then turn it on by right-clicking the task bar, select Properties, then click the Advanced tab. Look for the "Display Administrative Tools" check box, enable it, then click Apply. From the Computer Management window, expand the the Services and Applications tree. Click the Services entry. Then find the Telnet service in the nearby list of services, and double-click it. Change the "Startup type" from Disabled to Manual. Start the service by clicking the Start button. If you are using DHCP, you'll need to know what the IP address of the server is. Using the Command Prompt, type ipconfig or if it still doesn't show up, ipconfig /all.

And now for Windows XP, the old warhorse. Open the Command Prompt. To enable plaintext authentication, type:

tlntadmn config sec -ntlm +passwd

To revert to the original model, just use this: tlntadmn config sec +ntlm -passwd. Start the service like as described with Windows 2000. Next, for basic users only on LANs without outside Internet access, disable the built in firewall. (Advanced users know how to let Port 23 through). Start the Telnet Server from within Computer Management, just like Windows 2000.

Windows Vista and 7 do not install the Telnet Server element by default. To do this, open the Start menu, and type Turn Win and select "Turn Windows features on or off". In the dialog that opens, select Telnet Server, then press OK to allow it to install. Follow the instructions in this article to enable the plaintext authentication (it's just like Windows XP). Then someone has to be added to the TelnetClients group as by default nobody can login. (Just enter a valid username in the text box, the click "Check Names", as shown. This article could also be relevant.) Lastly, activate the server as described here (just type Component Services in the Start menu to find it. Under the Log On tab, the radio button for Local System account may have to selected as active). Also, the firewall will

Adding a user to the TelnetClients
group (Windows 7 x86)

have to be either turned off, or the Telnet service will have be permitted through. (As part of testing, this platform behaved somewhat strangely on client systems. Backspace on a Linux system didn't work with this server, same with NCSA Telnet 2.7b4.)

Mac OS X and *NIX

Obviously the many deviations of Linux mean that only one will be discussed. Power users using other systems like FreeBSD can work through the proper channels to get their Telnet server going. As for Ubuntu, to get the Telnet server installed and started, type the following:

sudo apt-get install telnetd sudo /etc/init.d/openbsd-inetd restart

Use ifconfig from the command line to find out what the Internal IP Address is, depending on what interface is in use (Ethernet or WiFi). Like with Mac OS X, any firewalls or port blockers will have to be either disabled or permit Port 23 through. To turn the Telnet server off, the configuration file can be edited with sudo gedit /etc/inetd.conf and put a # in front of the line that starts with telnet, then stop the service (assuming nothing else is using openbsd-inetd) with sudo /etc/init.d/openbsd-inetd stop.

As for Mac OS X, if the BSD Subsystem is not installed, it will have to be installed for the Telnet daemon to be present (the BSD Subsystem is installed automatically with 10.4+, but optional with 10.0 through 10.3). Afterwards, follow the instructions in this KB article. Then, disable the firewall and any other such software (for now), and the service is ready. For Panther and above, enter this into the command line:

sudo /sbin/service telnet start

Replace start with stop to end the service, and for proper restoration, reapply the # characters that were removed in the /etc/inetd.conf file.

Establishing the connection

This subsection focuses on getting the Mac client programs going. Other clients such as Mac OS X do have additional parameters that can be set from the command line, such as configuring the terminal mode, escape key and other things. Use man telnet or for the Windows version, try this article. As most newer computers can use SSH, it should be used over Telnet except for a small number of cases where Telnet is the only option. For the old Mac, only the TCP/IP control panel (with OT) or MacTCP needs to be configured, the AppleTalk (with OT) or Network control panel is not needed.

NCSA Telnet

This one is really basic. After the program is open, choose Open Connection from the File menu. Enter the IP address of the target machine, such as For running multiple Telnet sessions, enter a name for the window so it is easier to identify which computer is associated to a particular window. NCSA Telnet 2.6 has a checkbox for "FTP session": this is basically the same thing as going to an FTP prompt, like what someone might use in a command line with ftp <IP address or domain name>, such as ftp (as shown earlier in the File Transfer Protocol section). But the server has to have an FTP server running otherwise it won't work... The Send FTP Command from the Network menu makes the host server login to NCSA's FTP server, assuming it is on. Anyways, click Connect or just press the Enter key, and the connection is active. Log in as Administrator on Windows systems -- hopefully that account was enabled in the system installation process -- otherwise, you'll have to make another account because if there is only one, it is "already logged in".

To clarify on the Send FTP Command function, let's say a IIvi is running NCSA Telnet 2.7b4. The IIvi logs into a Pentium 4 machine with Linux on it. When the IIvi user selects the Send FTP Command, this makes the Pentium 4 computer log into the IIvi's FTP server: and it's the only way to send files with NCSA Telnet, as there is no rcp function.

Change the Delete key to Backspace from the Session menu to restore the conventional backspace: the default is Delete, which is a forward delete. Use Close Connection to terminate the interaction rather than quitting the application directly.

Nifty Telnet SSH 1.1 r3

The integrated SSH functionality of this program should make it more desirable for security reasons. At 736KiB on disk versus 302KiB for NCSA

Telnet 2.7b4, it's still reasonable though. It does require System 7 and a 68020 or greater.

After the program has been opened, a New Connection window is presented. This window also shows the "shortcuts" or being translated, "pre-configured sessions". For the first time, it's a good idea to set up a new shortcut. Don't worry it won't take long. Click the New button. Provide a name for the shortcut in the first field, such as Mac OS X Leopard Machine. The Host Name can be either the IP address, if DNS is in use, the domain name. In the Protocol drop-down menu, choose Telnet. Click the checkbox for "Delete Key Sends Backspace" and change the colors of the text and background to something more reasonable than the horrid defaults. If nothing else needs to be changed, press the Enter key to conclude and then click Connect to link with the newly created session.

Shortcut editing window


If you only have 8MiB of RAM, it won't work: because 7.1 with OT on uses about 3700KiB, leaving about 4MiB allocated for programs. Opening a SSH-3DES connection causes it to quit owing to insufficient memory.

The program presents an Open Connection window after it has loaded. Enter the IP address or domain name and then press Enter to connect. It is a lot like NCSA Telnet software, as it retains much of the same outside appearance other than some obvious changes concerning the Session menu and the SSH additions. It retains the FTP server feature. It is claimed to require System 7.5.1 and 32MiB of RAM minimum, but considering the Get Info window asks for 6MiB, that's kind of questionable but if the host system has only 8MiB, then there is a very good chance it won't work. It does however, support SSHv2, which Nifty Telnet does not.

Command line from a *NIX or Windows computer

Both the Windows platform and the *NIX systems have their own telnet command which does allow for some degree of customization, such as whether to use an ANSI or VT100 shell. Some don't include a telnet client by default, so it will have to be installed first. A popular program is PuTTY for Windows, there are *NIX ports. Because the focus of this Guide is not on connecting newer computers to newer computers, no further explanation will be presented. Also the newer machines have no problem running SSH which should be used instead. Sometimes the username has to be appended, like telnet igloo@

Using Telnet

Now that you're in, the cold world of the command-line interface is readily visible to those unfamiliar with command lines. Expert users, however, could ask for nothing more than a steady blinking cursor awaiting commands. But what commands? How are they used? Well, in a normal fashion, new users are just pointed to "man pages" which are usually intimidating for new computer users and short on examples. But let's have a look at the most likely used commands for each operating system, and how to use them.

Microsoft Disk Operating System

This old fellow has been around for over 30 years, and its command line is somewhat similar to the *NIX CLI, but there are some differences. Users who expect to conduct some "critical operations" which could cause problems may want to read the instructions for the command first to make sure it's being done right. The MS-DOS autocomplete feature is turned off by default in 2000, but it can turned on (won't work for 98).


Each *NIX and Linux distro can have slight differences between them, for instance BSD functions a little bit different than Debian does but in truth they're generally similar in the command line. There won't be much description via examples because suitable links will be provided that do.

But there is more. Telnet has a special "mode" which is activated by an escape key, which is usually defined as Control + ] (right bracket). This brings up a special telnet> prompt. (This is how NSA Telnet has the "Send Are you there?" command: it basically does this: Control + ], then types send ayt, then the Enter key to leave the telnet> mode.) Inside the telnet> "mode", enter ? to see what commands are possible like status, or to invoke a sub-shell with !. What this does is temporarily side-step out of the telnet session and call up the local shell, such as the following case: A user named Dave on Computer A has telneted to a remote computer, logged in as veronika on Computer B. By typing Control + ], then !, he is now out of the shell on Computer B and is back on Computer A. Type exit to leave the sub-shell and return to the other computer in the telnet session.

Telnet command mode

The only problem with all this that was just described is that none of the telnet clients (MacSSH, NiftyTelnet and NCSA Telnet) can actually enter this "mode". NCSA Telnet can only do part of them from the Network menu, or the ones listed in the Set Keys dialog from the Session menu. NiftyTelnet has none of these listed, not even in the Apple Guide "documentation" and MacSSH is just like NCSA Telnet.

The escape character sequence has an equivalent with rlogin, which is a tilde (~), or Shift + `. But with rlogin, it has to be with a newline: this is fancy computer speak for a virgin line that hasn't had any text entered into it previously. Say that Dave enters in sudo apt-get inst to install a package onto a Debian Server computer, but decides not to do it, and backspaces all the text out. It's not a "virgin line" anymore, so just press Enter to get a new one, and now it's possible to enter a tilde for the special escape mode. There's no indication that you're in "the mode", but if you type a ? then a list of possible commands to enter in the mode are presented.

About rcp and scp

A command-line tool for sending files or directories is rcp. But because it sends everything in the clear, it has been supplanted by scp which leans on SSH for its functionality. Both commands are used for copying files between two computers remotely. But there is a catch: Windows 7 doesn't have it (so likely Vista too, and it doesn't have scp either), neither does Ubuntu 9.10, which instead rcp is a symbolic link to scp. Only Windows 2000 and XP feature it along the Windows line (ME might have it). Mac OS X has it but it's not clear which versions have it and which ones don't. rcp and scp are not technically invoked as part of the telnet or SSH process: rather, they are called up as separate programs, like how someone might use wget, curl or ftp from a command line. The frameworks which rcp depends on will vary from operating system to operating system, so there is not a concrete list of what it needs to work (because there is no RFC standard for rcp, so the implementation varies from OS to OS). NiftyTelnet has a nice scp mode but that will be explained in the SSH section below. Otherwise, the only way to transfer files from within Telnet is via FTP.

Using command line programs

Any command-line terminal program like emacs, vi, nano, lynx, or even games like nInvaders can be started. As for Lynx, it would be a good idea for users who want to make a regular habit of using it on a Classic Macintosh, especially those without arrow key keyboards to create a whole new keybinding map and read the manual throughly. Plenty of practice, probably on a newer machine with color enabled, is prudent for putting the Lynx learning curve on the fast-track. Although it is possible to navigate Lynx without arrow keys or Control keys, it does get a bit harder to use. There are ways of piping X11 over this interface but it's best left to advanced users.

Secure Shell

SSH borrows a good deal of its principle operation from Telnet, and other than the fact that it is encrypted and some changes here and there, it's fairly close in its operating procedures and principles. The only known candidates are MacSSH and Nifty Telnet 1.1 r3. Like Telnet, a SSH server element must be active or the whole shebang will not work, and also like the Telnet an Ethernet or pseudo-PPP dialup connection is assumed to be already established, having been explained earlier in the AFP Ethernet Networks section.

Establishing the server

In Mac OS X, this is beyond easy: Just open System Preferences, click the Sharing icon and enable Remote Access: if the BSD Subsystem isn't installed, then it must be because without it, the openSSH suite isn't installed. Windows operating systems also have it easy, but easy as in easy to describe: Third-party programs are required. As for Linux, only Debian systems will be discussed because it is beyond the scope of this Guide to discuss Linux SSH servers in detail. Other systems like iOS also have SSH server programs or daemons (jailbreak required for proper iOS root file system access).

To install the server or the client, the instructions here will be relevant to any recent (2005-ish) or newer Debian distribution. Because SSH is fairly popular in the *NIX world it shouldn't be hard to obtain good instructions relevant to your particular distro. After the stack has been installed, and operating under the assumption that the default configuration is acceptable, just type sudo /etc/init.d/ssh start to get it going. Replace start with stop to terminate it. Because SSHv1 is weak on the security front, most places disable it and use SSHv2 instead. On a Linux distro however, SSHv1 must be used otherwise Nifty Telnet won't connect to it because Nifty Telnet SSH doesn't handle SSHv2: only MacSSH does. Read this page for the procedure, and they also describe how easy it is to crack SSHv1. Use caution on untrusted, insecure or sensitive networks when using SSHv1. (Incidentally, the best tutorial on scp the author found was this one. MacSSH cannot perform scp operations.)

Client connection and scp

Users who want to login without entering any credentials will have to set up the public and private key pairs and then exchange them. This case mostly describes full-time use of SSH, as like Telnet the target (host, server) machine will require login credentials but with the public/private key pair it will login automatically. Both Nifty Telnet and MacSSH advise how to do this in their documentation (ReadMe SSH support, QuickStart respectively). While MacSSH does have a lot more options and switches to play with, it wants 6MiB of RAM versus Nifty Telnet which specifies just 1MiB.

Nifty Telnet isn't that hard to use. Starting from the New Connection window from the File menu, click Edit, assuming this is a new connection. Add a name for the Shortcut in the Shortcut Name field for future reference, the IP address of the server (or hostname assuming DNS is working right), and for the Protocol, choose SSH - 3DES. Tick the Delete Key Sends Backspace checkbox, and everything else should be fine as default, aside from the terminal colors. Click OK and then Connect from the New Connection window. When a user logs into the remote SSH server, a dialog box will show up asking for login credentials. It is not unusual for it to take about a minute to establish the connection.

MacSSH being a spin off of the NCSA Telnet breed works differently. Start with the Favorites menu, then select "Edit Favorites...". It is probably better to create a new favorite rather than edit the default one, so click the New button. Enter the name of the shortcut, the host name (or IP address), set the port to 22 (SSH), then click the Security tab. Choose ssh2 from the Protocol drop-down menu, then fill in the Username field but not the password. Under the SSH2 tab, select 3DES for the Encryption method, turn off zlib compression and everything else should be okay as is. Click the OK button, close the Edit Favorites window and finally choose the server shortcut from the Favorites menu.

And now for scp. Scp means Secure Copy and it uses the SSH frameworks for authentication and some other matters. Normal terminals can use it to send files around in an encrypted (like SFTP) fashion with some rather confusing command line entries. Nifty Telnet has a little GUI window but there is no remote directory browser. So unless the user knows the target file location off their head it's a bit of a guessing game. Instead, open a SSH session, navigate to the source file location, then type pwd to get the full directory path and use that for reference (the terminal window and the scp window are draggable, so that is good); it will ask again for login credentials so for full-time use of this program, set up a private/public key authentication method. It is slower than AFP and FTP but it's encrypted so there is some overhead work to get done. MacSSH has no scp file transfer utility so FTP is the only way to send files around: the Upload feature in the File menu just dumps the raw file into the command line -- not a good idea for binary files.

scp Receive mode (see the Text mode)

Progress dialog (same for sending)

scp Send mode (note Binary mode)

Infrared Interface File Transfer

In the mid-1990s to early 2000s, this wireless interface was not at all uncommon in a world where wireless networks as commonly used today, such as Bluetooth, WiFi, Qi wireless charging and so forth were mainly a pipe dream. As one might expect, this meant that it was also shockingly slow by modern standards -- typically, they maxed out at 4Mbps for Fast IrDA (and 115200bps for Serial IrDA, like as used by the Palm handhelds) -- but, they weren't wired connections! In some cases, this interface is still found today in somewhat uncommon hardware or other equipment like certain industrial kit. There are a couple implementations of the protocol (like IrCOMM), not including proprietary ones. All in all, this protocol is pretty much dead, having been eclipsed by other methods like Bluetooth.

Palm OS devices like the popular III and Palm V series made use of this interface as one of the two possible methods to sync the devices to a computer, or to pass small amounts of data to each other, such as a Memo Pad document, business card, an application (it was called "Beaming"); there were even a couple of games like IRBattleship, IR Pong, and IRChess that permitted two players using IrDA.

In other platforms, the IrDA interface was built into computers directly such as the PowerBook G3 series, iMac G3 233MHz (Rev. A and B) and other systems like the IBM ThinkPad 600X, A31p, Compaq Armada M300 and so on. For other platforms that did not have it built in, USB to IrDA adapters, RS232 to IrDA and sometimes Macintosh compatible IrDA adapters like the Farallon AirDock are all candidates. The newer class of machines like the Mac

A Palm IIIc syncing via IrDA

Mini series have IrDA too but that is for controlling it as a home media server with a remote and thus is one-way only. In this case, the user will have to procure a USB IrDA adapter: but first check if there are any (stable!) Mac OS or Mac OS X drivers for the unit in question.

Driver support for external adapters and built in units will have to be procured first. All the Macs that had built in infrared ports have drivers that are installed along with the proper OS for that computer (sometimes a gray machine-specific CD). Needless to say, IrDA works best across portable or handheld devices, rather than trying something impractical like backing up a hard drive across two iMac G3 233MHz machines over IrDA.

Mac specific information

Primary importance goes to the fact that some Macs have IRTalk, others have IRTalk and IrDA, and the last sort have just IrDA. There are a number of problems with the infrared interface on Macs: first and foremost, it doesn't play nice with PCs.

IRTalk is just AppleTalk over Infrared, just like TokenTalk is AppleTalk over TokenRing, EtherTalk is AppleTalk over Ethernet and LocalTalk is simply AppleTalk over the serial port(s). The IRTalk protocol is foreign to the PC world and will be wholly incompatible. The Apple IR File Exchange program is for IRTalk purposes, it appears: trying to use the program on a PowerBook Pismo (with 9.0.4) didn't work very well because it wanted the Infrared control panel to set the mode to IRTalk. That won't work at all because the Pismo doesn't have any driver support for IRTalk at all. IRTalk is supposed to handle a bitrate of 230400bps but that means nothing because only Apple uses IRTalk (although the Farallon AirDock probably does also, but those aren't common).

Then using the same Pismo to try to exchange data with a Compaq E500 was met with failure. Here's what happened: After a short interval, connection was momentarily commenced. Then the Found New Hardware wizard woke up and wanted to install software for something named "Macintosh". There are no such drivers for that "device". Because the 1400cs which was also on hand only spoke IRTalk, it wouldn't even start to dance with the E500, so that was a dead end. By the way, ZTerm won't be able to recognize the IR interface to send data through. There are other programs that can use it though, like Palm Desktop.

For your convenience, the following links have been provided for reference should you decide to experiment with this method. OS X does have some infrastructure available for the infrared interface but Apple was looking at Bluetooth by then. Expect a bumpy road. The relevant settings are in the Network control pane of System Preferences, on compatible PowerBooks.

PowerBook G3 Series: Infrared Port
Macintosh Infrared: Is It IrDA Compatible?
iMac: Infrared Communications
iMac: Sharing Files Via IrDA
IRTalk and IrDA information


The author has invested a great deal of time into this Guide, and appreciates the help and information provided by various members, as listed earlier in the Introduction. In terms of distribution of this guide, the author only requests that the original source link be provided. Both this page and the More Info page are released into the public domain. All the images, text and content is free to be used for any non-nefarious purpose. The author would also like to thank Bryant Smith for the web template. Header image sourced from here (Caution: Site has loads of ads and "suspiciousware"). Font used for header text can be sourced via this link which is a nice reconstruction of the DEC VT220 terminal font (albeit in a raster format, and looks better on Windows than *NIX and OS X). The image for the More Info page header was yanked from here.