I know of a couple other Macintosh Portable prototypes out there in collector's hands, though if you've got a Mac Portable yourself of any age, they all hail from that unpleasant turn-of-the-decade era where virtually all period Apple hardware will require new capacitors (everything in this one has been completely replaced). The Portable was not officially released until September 1989 simultaneously with the Macintosh IIci, where the base 1MB/floppy configuration started at $5799, or $6499 with one of those loathsome Conner hard disks (approximately $14,400 and $16,150 respectively in 2024 dollars). That puts this serial-less unit's manufacture likely somewhere around spring '89.
In architectural terms Apple described the Portable as an evolved Macintosh SE. Though high performance and with some innovative features, the Portable's biggest drawbacks — literally — were its size and its heavy lead-acid battery, and it sold barely a fifth of what it was expected to. Apple cancelled it in October 1991.
Naturally, being a pre-production prototype it's also not a backlit model — that of course came later — but the 640x400 screen remains excellent, an early example of an active matrix LCD that Apple boasted had an individual transistor for every pixel and one of the best displays on any portable machine from the period. (Sometime in the near future I'll dig out my Data General One, a fine example of the opposite extreme.) It has an Androda 7MB expansion card to give it 8MB of RAM, just shy of the 9MB maximum it was capable of addressing, though no card sold for the Portable back in the day could achieve this and even the 9MB RAM cap is problematic. This is possibly due to the lowest motherboard 1MB being shared between ROM and RAM (ROM overlays it at reset to allow the machine to start even with RAM in a non-deterministic state), as well as at least one ROM bug that makes heavily expanded units sluggish when exiting sleep. On the Portable, which is all about being able to sleep on demand, the phenomenon becomes most obnoxious with "large" amounts of RAM like this. We'll switch at this point to screengrabs instead of photos. Neither are ideal for our purposes, but although the Portable does have an external video-out port, that port don't hunt. Despite being a DE-15 VGA-style connector instead of the expected classic Mac DA-15, you'll actually damage it plugging in a VGA display; the lines it exposes are more or less the same as the LCD drive lines and require conversion. No presentation module came with this unit and despite Apple's promises and various rumours, there is no clear evidence any such adapter was ever produced for sale by anyone. We can't get every snapshot since the old Shift-Command-3 salute only runs when apps yield to the system, but it's better than trying to hover over the screen with my Pixel 7 Pro. (System 6 takes screenshots in MacPaint 576x720 format, which I have obviously reformatted and rotated.) The specific version of classic Mac OS this machine is running is also unusual: it's a beta 12 release of System 6.0.6 (with a beta 6.1.6 Finder), which came out simultaneously with 6.0.5 in March 1990 for early Macintosh Classic, IIsi and LC machines, but was pulled from release and replaced with 6.0.7 in September. The problems were discovered so late in production that it even forced Apple to yank and reissue the system disk packs shipped with the computers, slapping "6.0.7" stickers on the label.6.0.6 had two major problems, one where AppleTalk was sometimes not detected when present due to a bug in Gestalt, causing connectivity issues with servers and printers, and another with timing problems between the LC and IIsi and the ADB Apple Keyboard II, where the keyboard would intermittently freeze up until the mouse was moved. However, neither of those problems have manifested on this Portable so far, and 6.0.6 additionally fixed issues with the Portable's modem and reading 800K floppy disks, so you really should run at least 6.0.7 or 6.0.8 (it originally shipped with 6.0.4, also the same as the IIci).
The machine was clearly used for both business and pleasure, at least through 1991 which was the latest file I could cursorily find. A fair bit is personal and not generally interesting (and as such I've redacted or put off-screen a few things in these grabs), but it's proof it clearly got substantial use, and why not? Slung on a desk, it was a perfectly cromulent Macintosh with a 16MHz 68000, double that of the Plus, with a big sharp screen, a high quality keyboard and a nice trackball. You definitely wouldn't be using it on your lap, but you could certainly lug it to and from work.That said, I'm not exactly certain where "work" in fact was located. Interestingly, one application on the hard disk suggests Cleveland, Ohio, of all places,
... and when we get to AppleLink we get a definite match on this location. I know the prior user was an Apple district manager from other credentials on the disk and a little bit of Googling. For obvious reasons I won't show those. A related point is its network configuration: the Macintosh network volume mounted in these shots is my little NetBSD Macintosh IIci (for moving the grabs off), but it doesn't seem like it was ever connected to a network before because the username was originally blank in the Chooser. After all, it would be odd that other personal stuff and credentials weren't removed while the AppleTalk username specifically had been, so more likely it was never populated in the first place.Other relics persist on the hard disk. For example, the HyperCard stacks introducing users to the Macintosh Portable are also still here, though they seem to be slightly earlier versions than what got shipped with production models and have different wording, and the Tour of the Macintosh Portable app isn't present. This unit may have predated it.
The Inside the Macintosh Portable stack has a brief advertising animation before moving to this comprehensive map. I picked two grabs out of it for example's sake, including the active matrix display (again, as you saw, it's really good especially for 1989) and its CMOS 68HC000 CPU, which was designed by Hitachi and introduced jointly with Motorola in 1985. Besides reducing power consumption from 1.35W down to about 300mW, it ran at 16MHz in the Portable compared to its usual Mac speed of around 8MHz (and the part could run as high as 20MHz). Despite the Portable's substantial development delays it was nevertheless one of the earliest computers to use it, along with the original PowerBook 100 which in nearly every respect is a miniaturized Portable. The other HyperCard stack on the disk, again slightly different from the production machines' release, is the Product Sampler. There were a lot of products advertised. Spoiler alert: the Portable's underwhelming market performance mostly sealed their fates. For example, this (and a similar image in the Inside stack) are the only pictures I could find of the video adapter. I don't know if this is a mockup or a prototype. There are a couple switches along with a Mac DA-15 monitor jack and an RCA jack, presumably for composite output. This device doesn't seem related at all to the separate and duly sold Apple Presentation System which was made by Focus and rebadged by Apple. One other gotcha with the Portable, besides the weight, the huge lead acid battery wired in series and (nowadays) the capacitor issue, was its prodigious need for sleep. If you check the box to Stay awake when plugged in ... ... a verbose dialogue box warns you not to leave it on for more than 24 hours at a stretch or the display will start to act strangely, not unlike teenagers and college students. Fortunately, as with them, this effect appears to have been temporary. That said, it's the work stuff that we're here for. This machine unsurprisingly has a full complement of office applications, including Aldus PageMaker and Aldus Persuasion (pre-Adobe), MacWrite II, MacDraw, HyperCard, and early versions of Microsoft Word, Excel, PowerPoint and Works. But what also caught my eye going through the applications folder was a suite named POS•IM. The name alone implies this is a point-of-sale system, divided into applications for accounts receivable, inventory and sales. I won't show any real customer records here and I don't know how widely deployed this was within the Apple sales channel at that time, but it probably wouldn't have been installed at all if there weren't some expectation it would be used. The apps were produced by a Utah company called AnaMatrix. I can't find much information on this company and the suite appears to have been its only product. In MacUser February 1990, it listed for $2500 single-user and $4000 multiuser (in 2024 about $5800 and $9300 respectively), though it was called "POS/IM" with a slash instead of the interpunct. This installation is the single-user standalone release, starting here with the accounts receivable application. We'll use this record "Bill Jones" since it's almost certainly an example (for one thing, that street address doesn't exist in the real Riverton, UT, and the zip code 87444 isn't currently valid). Each record tied back to an invoice. The items in those invoices were enumerated in the Inventory•Analyzer application. The inventory application tracked nearly every single SKU Apple manufactured or sold at that time, even T-shirts and pens, though I think at least one of these is phony. This is what I suspect is the phony entry, for an XL Apple T-shirt in blue, made by "Ned the Knitter" and sold for $17.95. The reason I suspect this is a demo row is because this exact item appears in AnaMatrix's few promotional screenshots of the time, like this one in that same issue of MacUser: So go ahead and have an Apple Pen instead ($10). Or an "SE/20" [sic], obviously meaning an SE/30 (M5086/A), retailing at $3798. Or get out your wallet and spring for the big one. The most expensive unit I could find in the Apple price list was this Macintosh II with a 40MB hard disk for $5498 (M7003/A); in 2024 that would be nearly $15,000. This also suggests the price list here wasn't particularly current since it didn't include the IIx (September 1988), but it does have the SE (March 1987, with the II), dating it likely to the same year. The actual invoices themselves were in the third application, Sales•Point. Parenthetically, a separate menu option for "Transfer" allowed you to jump between the three apps in the suite if you didn't have enough memory to run them simultaneously in MultiFinder, or didn't use MultiFinder at all (which would give you all the machine's available RAM minus the operating system, as these about boxes show). Here's that invoice "Bill Jones" bought: an ImageWriter II (A9M0320, $595) and a Macintosh SE with an Extended Keyboard (M5085/A, $2998); the other SE SKU would be for the smaller Apple Keyboard. You could also run a sales report, but only two came up, "Bill Jones"' big cash splash included (I'm not sure if there were archives maintained off-machine).That covers billing, inventory and sales, so how about advertising? For this next part we're going to spend some time with its copy of Aldus Persuasion 1.0. Interestingly, PowerPoint beat Persuasion to the Macintosh by about a year (1987 vs 1988), but Persuasion was for a time considered the superior product due to its interface, graphing capabilities and popular outline mode.
Two Aldus Persuasion 1.0 presentations stand out in particular (this is the copy which I've mounted on my Mystic Colour Classic for reasons I'll relate in a moment), both of which were official Apple marketing material at the time. The first is Apple's then-current product line, and the second is an early glimpse at the upcoming System 7. Neither file was apparently Apple-internal or confidential and both seem to have been regularly presented to potential customers and users. The Macintosh Product Overview slides have a collective creation and modification date of October 8, 1989, consistent with the 1989 copyright the presentation displays. However, its actual origination can be no later than March 1989 due to the models that it completely lacks. No unreleased or upcoming computers are demonstrated or referenced in this presentation, dividing the existing models simply into two small "Compact" and "Modular" families. This appears to have been the manifestation of Macintosh manager Jean-Louis Gassée's "high-right" goal which tried to sell high-margin, high-performance machines at the expense of the "low-left" budget market. Unfortunately for Apple, the strategy permitted cheaper XT-class PCs to proliferate in Apple's relative absence while failing to compete effectively with Unix workstations at the top. In December 1989 Apple's stock tanked 20 percent after a dismal holiday sales season and Gassée departed a month later, but this presentation doesn't reflect the subsequent product shakeup that birthed the deliberately low-end Mac Classic and LC. The long-running Macintosh Plus was still in Apple's sales list but got one measly slide, strongly suggesting it was on its way out. The 2MB and 4MB versions were also completely absent from the presentation so as not to compete with the SE. Instead, the presenter talked up the SE and especially the SE/30, putting them head to head and otherwise ignoring the Plus completely. "Memory Management" refers to the Motorola 68851 MMU, available as an option for the 68020 (but not the 68000), which was built-in to the SE/30's 68030 and also slightly faster. The SE/30 came out in January 1989, so the presentation can't be any older than that. The Modular family, however, only lists two members: the II and the IIx. This is where the maximum late date of March 1989 comes in, being when the IIcx was first introduced, the first three-slot II and the next one in the series. Since it doesn't appear here, the presentation can't be any (or at least much) later than the IIcx's formal introduction. Still, the SE/30 and the IIx were indisputably the stars of this show, and the most obvious members of the "high-right" family at that time (early 1989). Other than the slots and form factor, the two systems were very similar, with the same CPU (with FPU and MMU), same clock speed and same RAM ceiling.The Macintosh Product Overview slideshow was entirely 1-bit black and white, so I rendered it out to PICTs from the Portable itself for the most authentic result. However, the System 7 presentation has colour elements and the Portable doesn't support Color QuickDraw. For this section we'll go back to the Color Classic to render this slide deck, which I've tweaked slightly due to minor differences in font rendering. (I'm not sure how this particular presentation would have even displayed properly on the Portable.)
This presentation has a modification and creation date of February 3, 1991. Recall that around March 1988 Apple technical staff made the first cut of what was planned for System 7 as Blue, with the remainder becoming Pink (and later Taligent) and Red. This particular presentation is oriented around Blue's modest goals ("System 6, corrected," as Wikipedia puts it) and doesn't even mention Pink. However, the presentation shows a few more primitive or speculative features than what emerged with System 7.0 in May 1991, one technology in particular (we'll discuss) can't have appeared under that name any later than May 1990, and several 1990 models don't appear in the support matrix, putting an upper bound of around March 1990 on when the deck could have been made or updated. The presentation itself carries a 1989 copyright on the final slide. Assuming this wasn't just a mockup screenshot, the Finder and general user interface had a number of noticeable differences from the released version of 7.0. The menu bar has slightly different options in slightly different order; this earlier version used Color instead of Label, and the Special menu came before it. System 7's help icon was also part of the "menu mass" like Mac OS 8, just with a help diamond, instead of being an icon off to the side as with Balloon Help.Individual Finder windows also appeared differently: the window title bar is fatter and the detail row is slightly skewed down, not vertically centred. There are also different icons, including a schematic of the desktop for the Finder instead of the stylised compact Mac icon used in System 6 and (with revisions) 7.0, and the Startup Items folder is just called the Startup Folder with what looks like a placeholder graphic. As with the final release, the System file remains a suitcase.
System 7 was additionally the début of TrueType, Apple's outline font technology and still the dominant font format on most PCs and Macs (especially given that OpenType is more or less a superset), but the actual name TrueType appears nowhere in this presentation, nor do its known codenames Royal and Bass. That doesn't mean Apple wasn't proud of it. Indeed, it was such a big advance over font handling in System 6 that TrueType was subsequently backported to it, and Apple granted a license to Microsoft for free to ensure TrueType's success. Ironically this was one of the slides I had to tweak on the Color Classic because the font size of the blurb on the right came out too large. System 7 also made MultiFinder mandatory. This screenshot cannot be contemporary with the Finder screenshot above because the small icon for the Finder is still System 6's; that makes this screenshot almost certainly older, which also explains why the MultiFinder application list is still in the Apple menu. On the other hand, no desk accessories are shown in the Apple menu either like one would expect with System 6 MultiFinder, so this is probably truly an early System 7 build assuming it's also not a mockup shot. Newly introduced was a varied class of technologies related to message passing between applications, which is foundational for higher-level features like scripting and embedding. Apple subsumed these various features under the umbrella of the Inter-Application Communications Architecture, or the IAC. These messages could be passed between applications on the local machine or over a network, using AppleTalk as the transport. Today we call those messages Apple events, and the fundamental technology remains part of modern macOS today. However, one of the IAC features that didn't succeed was the Editions Manager, later redacted to the Edition Manager and surfaced to the user as "Publish and Subscribe." In this scheme an application could "publish" part or all of a file that another application could "subscribe" to (more precisely, a document could have sections in it called "publishers" connected to "subscriber" sections in other documents). If this sounds like Microsoft's Object Linking and Embedding (OLE), it's deliberate, as Publish and Subscribe was supposed to be the OLE killer with non-rectangular regions and update notifications that could even go over a network — because the notifications were just Apple events. This has nothing to do with OpenDoc, by the way, which was Apple's second failed attempt at an OLE-like technology and uses a completely different internal architecture.The Edition Manager ended up being complicated for developers and obnoxious for users. Since publication occurred at the section level, compliant applications had to define what sections existed in a document, and for those sections that were published write their contents (termed editions) to an escrow-like repository called an edition container. On the user end, this felt like doing a special "cut and paste" from a source into a client document to create a new section and link it. When the Edition Manager saw updates happen, it would fire off Apple events to signal subscribers to read that data from the edition container into their own sections; conversely, when the Edition Manager saw a subscriber try to read or scroll a section, it would fire off other Apple events to publishers to remind them to update.
None of this work was automatically done by the individual applications, though, so it wasn't unusual for publishers to fail to update their editions or subscribers to fail to retrieve them, or sometimes for the link to just break completely. I personally remember screaming at CricketGraph in 1996 trying to get charts in my undergraduate cognitive science paper within Microsoft Word to actually show anything, but to this day I still have no idea whose fault that was (except that it wasn't mine, dammit). Since the feature was rickety even in those applications that tried to support it and the level of developer headache was high, it ended up little used, and when OpenDoc eclipsed P&S and then fizzled itself, the Edition Manager was "edited out" (heh heh) of Rhapsody and never implemented for Carbon.
But the part of the IAC that allowed applications to send events to other applications and manipulate them became a lasting feature. This is the basic functionality that AppleScript still uses, which is pretty much all about sending events to apps, and was the basis for the Program-to-Program Communications Toolbox (PPC Toolbox, unrelated to PowerPC, which didn't exist at this point) that underlaid program linking in System 7 as well. Program linking, in this case, specifically refers to allowing programs on remote Macs to send events to programs on yours. This was how you could remotely manipulate server programs running on other Macs, and was ported to AIX for the Apple Network Server so that "symbiotic applications" could use the ANS for backend processing: the ANS looked like just another remote Mac you could send events to via AppleTalk, which the application on the local Mac could task with jobs and then asynchronously display their results. In Mac OS 9 TCP/IP became a supported transport for network Apple events and this capability remains part of modern macOS as well. On the other hand, for sheer obscurity you couldn't beat CL/1. CL/1 was short for "Connection Language One" and originally developed by Network Innovations (unrelated to the current business bearing the name), a small company founded in 1984 and also based in Cupertino. Based around SQL but adding control structures for cursors, program logic and looping, CL/1 was intended for writing desktop-to-host applications to query remote databases on mainframes and large systems, transforming CL/1 programs into various SQL subqueries which were collected and returned. Unlike the later ODBC, most of this processing happened on the server, reducing network bandwidth but increasing server load and requiring an "adapter" program specific to the database engine in use. However, this also meant that client applications could be straightforward, simply shipping CL/1 programs to the remote server for execution and not requiring local processing other than the data that came back.As both a practical demonstration and a sellable product, the company's first CL/1-based package, appropriately called Mac-to-VAX, allowed Mac applications to remotely access databases, files and applications on a DEC VAX server. Released in January 1988, CL/1 could use AppleTalk, DECnet, X.25, IBM 3270 and Apple’s implementation of IBM APPC/LU6.2 as transports. Apple was immediately attracted to the technology, seeing it as both advantageous for the Mac and as a possible standard they could control, and acquired the company in March as a subsidiary (its first acquisition of another technology company, as it happens).
The name CL/1 didn't last very long after the merger and the last reference I can find to it in industry sources is around May 1990 when its new name, Data Access Language (DAL), started appearing. Apple also scotched Network Innovations' originally planned ports to PC in 1990, determining to make DAL at least initially an Apple-exclusive technology. That said, while this slide implies Apple intended to include some portion of DAL-née-CL/1 with System 7, only the Data Access Manager (DAM) API became a built-in part of the operating system; the extension(s) implementing DAL proper for a given platform seem to have been a separate install and aren't on any of my System 7 disk sets. This is important to distinguish because the DAM just moves prefabricated DAL queries and replies back and forth and doesn't implement DAL itself. Post-System 7, DAL suffered from the intermittent attention span 1990s Apple exhibited with many of its projects. Its most impressive application was as an extension for HyperCard, where it facilitated some remarkable live demos and some of the earliest data-driven fat clients with full GUIs, causing a scramble by database vendors — notably Oracle — to implement their own toolkits. (This toolkit started as Format Verlag's Plus, became Oracle Card after Oracle's acquisition, and later became Oracle Media Objects, best known for the Mac version that ran on the Apple Interactive Television Box prototype.) While the client side remained Apple-specific, the server side became impressively cross-platform, growing to support IBM (VM/CMS, MVS/TSO, MVS/VTAM, DOS/VSE), DEC (VMS, Ultrix), SVR4, DG/UX, HP-UX, AIX, SunOS, Stratus AOS/VS II and Tandem Guardian C-30, running databases such as SQL/DS, IBM DB2, Teradata DBC/1012, CA-Datacom, CA-IDMS, Ingres, Informix (the database I had my first job out of college on), Oracle, Sybase, DEC Rdb, CA-DB, INFOS II, DG/SQL and Tandem NonStop/SQL. Apple also expanded the network transport options to include TCP/IP with the growing reach of the Internet.Unfortunately for Apple, development for all these server permutations was expensive, reflected in very high prices for the adapter component, and the adapters also tended to incur performance problems largely from the overhead of translating and running DAL queries which were difficult to cache. While the concept of shared query documents in the Data Access Manager was at least in part intended to reduce this impact, few client applications ended up having much DAL code in common. Although EveryWare's ButlerSQL tried to rectify the translation issue by using DAL as its native language, the most notable of the few that attempted to do so, it ran on the classic Mac OS and its performance was instead limited by Mac OS's poor multitasking and throughput. (Apple was well aware of this problem.) Developers also complained about DAL's lack of BLOB and cross-platform support, neither of which Apple did much to address. Apple did license DAL to Blyth Software to develop a Windows client but it got little traction or interest.
Meanwhile, ODBC grew dominant both due to DAL's technical stagnation and ODBC's greater throughput, especially as network bandwidth was dramatically increasing. Apple licensed DAL to Independence Technologies (ITI) in February 1994, who intended to release DAL 2.0 supporting blobs and to take over Windows development, while Apple maintained control of DAM in Mac OS. ITI got bought itself in 1995 by BEA Systems and sold again to UniPrise in 1996, but the promised update never emerged before UniPrise went out of business in 1998. The Data Access Manager, like the Edition Manager, faded from disuse and was never ported to Rhapsody or Carbon, and ODBC became the primary database access method even in the classic Mac OS. However, the TCP port used by DAL — port 172 — remains as cl/1 in /etc/services to this day.
The other piece enabling us to more precisely date this presentation is its model support list: the latest models shown are the Macintosh IIci and the Portable itself, which both came out in September 1989. The next model in the chronology would have been the IIfx in March 1990, which doesn't appear here, so the presentation can't be later than that. Notice that the original Macintosh 128K, 512K and 512Ke are listed as "supported" — but only if you effectively make them into Macintosh Pluses first. All this was an "alpha" view of the operating system. The mention of developer seeding is prominent and intentional; Apple remembered the incompatibilities that resulted from failing to widely disseminate System 6 to developers and was determined not to make the same mistake. This slide anticipated customer availability in "Summer 1990" but System 7.0 was not released until May 1991.So let's say we're out in the field with these presentations, doing our thing, selling our wares, hyping our master. How did we call back to the mothership?
One of the online services on this Portable was the Macintosh client for Prodigy, the famous graphical service that used modified NAPLPS graphics as its user interface. However, I didn't find any screens in its cache, suggesting it got hardly any use. Additionally, while Prodigy used Tymnet's X.25 dial-in network for its nationwide access, neither of these numbers appears in the 1990 Tymnet dial-in number list. The main telephone number lacks an area code, though area code 614 was one of Ohio's original four area codes in the North American Numbering Plan encompassing Columbus and most of the state's southeast quadrant (Cleveland, for the record, was area code 216). 614 didn't split until 1998 when most of it became new area code 740.These screenshots were done on the Mystic Color Classic in anticipation of being able to render out some of its STAGE.DAT contents, but there appears to be much less interest and support in the Prodigy retro-community for the Mac client, and I wasn't able to get anything recognizeable out of it. (The different endianness may be only one of many reasons why.) The low interest is somewhat understandable since the Mac client wasn't used much, and the Prodigy interface wasn't very Mac-like nor very popular with Macintosh users. Since it doesn't look like this person used it much either, we won't do anything further with it in this article.
But what our district manager did appear to use is AppleLink, and that's where we'll spend the remainder of our time.AppleLink was a client-server service for Apple employees and dealers, and later developers, established in 1985 running over the General Electric Information Services (GEIS) nationwide Mark III network. It is distinct from the later consumer-oriented but technically unrelated AppleLink Personal Edition, which later turned into America Online; we'll talk more about that and eWorld, AppleLink's intended successor, at the end.
AppleLink's front-end was a fat GUI client to show remote resources as folders and files, and send and receive both public (i.e., bulletin-board) and private messages. This screenshot of a typical session in System 7 is from Apple Confidential. The front end allows you to work offline, which is handy since of course there's no AppleLink server to connect to anymore, along with an extensive built-in help library to reference regardless of connection status. Unfortunately relatively few tasks could be completed without a network connection. There wasn't any mail in the outbasket (darn), but we can fake some, and you could write messages for transmission later. There was no other mail on the system I could find. E-mail — at least within the network itself — became one of the most well-known features of AppleLink, including the first E-mail message sent from space. These are pictures of mission specialists James C. Adamson and Shannon Lucid with an original non-backlit Macintosh Portable on NASA Space Shuttle Mission STS-43, Atlantis' ninth mission from August 2 to August 11, 1991. It had been lightly modified with a circuit breaker on the battery charging system for safety but was otherwise stock except for some bushings under the trackball to take up slack.The Portable was ostensibly transported into space for the purposes of Development Test Objective (DTO) 1208, Space Station Cursor Control Device Evaluation II and Advanced Applications, which tested the in-flight ergonomics of the Portable's onboard trackball, a 2-inch external ADB trackball, an ADB optical mouse and a modified aircraft control stick with a thumb ball hat. While most of the Space Shuttle laptops were PCs such as ThinkPads (with the notable exception of the SPARC-based Solbourne PILOT), the Portable was selected for this objective because it had a larger variety of commercially available input devices. The Portable was also used to record data from the Lower Body Negative Pressure experiment (LBNP, DSO 478), in which the astronauts evaluated use of the LBNP unit for drawing body fluids down to their legs to reverse counterflow under weightlessness, as well as shuttle flight path tracking using a custom application called MacSPoC ("SPoC" being short for "Shuttle Portable Computer") and acting as an alarm clock and scheduler. This latter function was assisted by a Seiko WristMac "databank" watch which downloaded reminders from the Portable to its 2K memory.
It's not clear whose idea the "space E-mail" was, but it was publicized by Apple as early as July 1991 as a means for astronauts to communicate with family and exchange files and data. The Earthbound side was GEIS's regular packet-switched network (more about that in a moment) fed into a ROLM telephone switch, terminating in a data linkup to a ground-based Mac Portable via the printer port at the Johnson Space Center in Houston, Texas. Apple wrote a "forwarder" which took those packets and sent them back out through the modem port to an actual modem whose signal was then digitized, bounced off a commercial satellite to the White Sands (New Mexico) Tracking and Data Relay Satellite System, and finally sent to a TDRSS satellite geosynchronous with Shuttle Atlantis. On the Shuttle side, the spacecraft received the signal as digital data and fed it as an analogue signal into an onboard modem connected to the Mac Portable. The same convoluted process in reverse handled injecting packets from the spacebound Mac Portable back into the GEIS network. From the point of view of the Mark III, this was just another packet-switched remote node, albeit one with an incredible amount of latency. Latency wasn't something that the stock AppleLink client handled well, however, so a modified version of AppleLink 6.0.2 went up with the Portable that had been tweaked to tolerate transmission delays.
The connection took several tries but Adamson and Lucid were able to successfully sent the first E-mail from space on August 9, to shuttle communicator Marcia Ivins at the JSC. The exact message contents vary between sources, but in general the message read, in its entirety,
where "cry" or "cryo" refers to cryogenics (in this case, liquid oxygen for breathing), and "CS" or "RCS" refers to the Reaction Control System, i.e., fuel for thruster manoeuvres. The shuttle was able to receive E-mail as well but this address was kept secret from the public (and various obvious honeypots also set up) to prevent the astronauts from being deluged.
That brings us to attempting to log in ourselves, and for that we should talk briefly about the backend this time. GEIS' roots extend to the 1962 Dartmouth Time Sharing System (DTSS), a proposal by Dartmouth College professors John Kemeny and Thomas Kurtz to develop a free, open timesharing system for students. Kemeny and Kurtz established a partnership with General Electric in 1963 and got funding from the National Science Foundation to deploy a 1961 GE-225 mainframe for processing, a 20-bit system with a typical eight kilowords of core memory, paired with an 18-bit GE DATANET-30 ("DN-30") connected via DMA functioning as a terminal server. The DN-30 was itself a full general purpose computer but in this application it was fully dedicated to the task of scheduling jobs on the mainframe and servicing terminals, of which it could support up to 128. This double-system concept was considered unusual and even wasteful for the time, but by the autumn of 1964 the system was operating twenty terminals serving hundreds of users and upgraded seamlessly to a larger GE-235 with triple the memory speed. This first incarnation of DTSS was the system Kemeny and Kurtz developed BASIC on in 1963.
Kemeny and Kurtz had initially wanted GE to enter into a research arrangement, but GE declined their proposal, and the original partnership was structed purely as a commercial sale. However, as DTSS grew successful GE became impressed with the flexibility of the architecture and decided to take a more active role in its development. Explicitly combining the GE-235 and DN-30 as the GE-265, GE started advertising timesharing services on their own systems in 1965 and building out a national network to allow access over dedicated lines.At the same time GE had developed a new 36-bit mainframe architecture supporting up to four CPUs and as much as 4MW of memory as a way to reduce their own dependence on IBM. The GE 600 series started with the GE-635 in 1963 (the above picture is a GE-645, a larger version with hardware support for Multics and virtual memory) which ran GE's GECOS "GE Comprehensive Operating Supervisor" batch processing system. By 1967 DTSS had been ported to the GE-635/DN-30 and GE adopted it as their "Mark II" network, retroactively dubbing their original GE-265 implementation as "Mark I." By 1968 GE controlled somewhere between a third and forty percent of the timesharing market, serving tens of thousands of users, and the timesharing unit became its own division in 1969.
In 1970 GE decided to exit the computing hardware business and offloaded the GE 600 series to Honeywell, who renamed it the Honeywell 6000 family. The Honeywell 6000s still used the same basic architecture and still ran GECOS, merely renaming it to GCOS ("General Comprehensive Operating System"), and GE started using their hardware instead. However, GE retained their profitable timesharing service, now transitioning to Honeywell hardware, developing a means for Mark II systems to submit batch jobs to GCOS in a seamless and nearly interactive fashion. This became the Mark III network in 1972.
GE's dominance of commercial timesharing grew even stronger in the 1970s with its high availability, facilitated by specialized clustering hardware allowing users to be spread over up to six mainframes and have the same view of the Mark II machines' filesystem, and three redundant international data centers equally accessible from anywhere in the world. GE also evolved their remote access operations into a packet-switched, telephone-accessible extended X.25 international network that was included with their services. In 1979 GE spun off their services division into the joint venture GEISCO (GE Information Services Company) with Honeywell but bought back Honeywell's portion in 1982, later renaming it to General Electric Information Services (GEIS). By the mid-1980s the Mark III network had local access numbers in over 750 cities and 31 countries, handling as many as five thousand simultaneous users. GE eventually added other network types such as IBM SNA and by the 1990s had four worldwide networks running on the same backbone.
In 1984 the original Macintosh was a hit for Apple but came with new costs of its own as the expense of maintaining its traditional dealer network was skyrocketing. Interminable games of "telephone tag" had already been a problem during the Apple II days and Apple was spending half a million dollars a year — in 1984 dollars — just to print price lists. Apple management reasoned that while setting up an electronic dealer network would itself be pricey, it would enable them to contain many of their distribution expenses, facilitate better communication, and allow them to outsource their existing timesharing system used for staff E-mail. Head of support John Ebbs, formerly a senior executive at General Electric, suggested his former company could help develop a useful service that could also show off the Mac at the same time.Apple approached GEISCO in 1984, making a key requirement to use the Macintosh's graphical interface instead of the text-based terminal access GEISCO currently afforded users. For this GE engineers developed a GCOS backend called EF3 ("Error-Free") which the Macintosh client would act as an asynchronous interface for, and Apple contracted with Central Coast Software to write the front end, who developed it in Pascal. To encourage dealer adoption Apple subsidized the network somewhat by giving them a free hour of connect time per month and $15 an hour (in 2024 about $43) thereafter, though this rate was higher outside the United States. Unlike services such as The Source, Apple's service didn't run on leftover after-hours capacity and dealers were unlikely to connect when their shops were closed, so the rate didn't vary on the time of day. The first release and availability of the new AppleLink network was in fall 1985.
The AppleLink client version on this Macintosh Portable is 5.1. The original AppleLink 1.0 client for the first generation Macintosh was quickly upgraded for the Macintosh Plus in 1986 and I have one of these floppies with "Macintosh Plus Version" prominently stamped on it. Versions through at least 6.1 are known, with additional work done on the client by Bear River Associates, then in Berkeley and still in business in Oakland. Later versions of the client upgrade to GE's later EFX "Error-Free eXtended" protocol which replaced EF3.We know our Apple district manager used this because their credentials are in the dialogue box (which I've suppressed). I haven't suppressed the rest, though, because they're germane to understanding how the Mark III network operated. And where we can learn the most about it is from a much more famous online service that used it too: GEnie.
Separate from its work on AppleLink and related products we'll discuss at the end, GEIS had noted the rise of nascent consumer-oriented online services like The Source (then owned by Reader's Digest in partnership with Control Data Corporation) and CompuServe (a subsidiary of H&R Block), and decided they could compete in the same market — but with less overhead and presumably more profitably, because they already had their own nationwide local access network, their own hardware and their own data centres. The job was tasked to Bill Louden, CompuServe's former director of communications and one of history's candidates for coining the term "email," who transplanted facsimiles of CompuServe's most popular features to the new platform along with new content while carefully concealing its GCOS underpinnings. Reportedly the name "GEnie" came from Louden's wife after a $50,000 consultant disastrously proposed calling it "Albert" (Einstein), to which they added the backronym "General Electric Network for Information Exchange."The new GEnie service launched in October 1985 with both 300bps and 1200bps access. Criticially, although GEnie did have on-peak and off-peak rates at a startling differential (launching at $35/hr prime-time 8am-6pm on weekdays but $5/hr otherwise, or in 2024 dollars about $100/hr and $14/hr respectively), GEnie undercut CompuServe by not charging a premium for 1200 baud connections, offsetting any additional cost from higher speed users against its excess unused computing time. Eventually 2400bps access was added as well, also at the same "flat" rates.
A typical user would dial their local access number (8N1, local echo-half duplex preferred) and after successful connection send a series of H characters to get the network gateway's attention (contemporary sources said HHH and press RETURN, but really any sequence of at least two would be enough). The local gateway would then open an X.25 link to one of GE's datacentres, which responded with a famously terse login prompt. The initial dance looked a little like this (bold is what we type):
ATDT5551234 CONNECT 1200 HHH U#=
Signons to the Mark III network were of the general form XXX#####, X being a letter and # a number. The signons for creating a GEnie account (credit card required) often literally started with X, such as XJM11878 or XTX99437 — these were real signons that were in use at various times. It was then followed by a comma and the password, which was frequently GENIE or some such for the signup logins. If the login was accepted, they would proceed to the main menu, which in 1986 looked like this (from the manual):
U#=XXX12345,PASSWORD ** Thank you for choosing GEnie ** The Consumer Information Service from General Electric Copyright (C), 1986 GEnie Logon at: 21:41 EST on: 861106 Last Access at: 18:39 EST on: 861109 * NEW: X-10 Powerhouse RoundTable * Type "XTEN" to access. No letters waiting. GEnie TOP Page 1 General Electric Information Services 1. What's New on GEnie 2. GE Mail and GEnie Editor's Desk 3. News and References 4. GEnie LiveWire CB Simulator 5. National Real-Time Conference 6. RoundTables: User Groups & Clubs 7. Shop N' Swap Shopping Services 8. Travel Services 9. GEnie Game Room 10. User Settings & Information 11. Logoff Enter #, <P>revious, or <H>elp?
The menus provided a guided way to access GEnie services, but under the hood everything was organized into numerical pages using the ubiquitous MOVE (M for short) command. The main "top" menu was always on page 1. While less-opaque word mnemonics also existed for many services (printed at the top centre, so the top menu's mnemonic was TOP), if you knew the number for a particular area or application, you could jump straight to it. Many users used GEnie exclusively for games such as Kesmai's Air Warrior and Simutronics' GemStone, which offered massively multiplayer experiences decades before modern MMOs, and had scripts in their terminal programs or clients to check messages and then start their favourite game immediately. (Like GEnie's competitors, popular services like these often had surcharges, which could sometimes be sizeable.) GemStone III, for example, was 1335, E-mail was on 200, and the LiveWire "CB Simulator" chat system was on 400.
In fact, the login sequence itself could even facilitate doing so immediately upon signon, saving valuable connect time. If you logged in as, say, XTX12345,password,625;1 — remember this format, it will be relevant later — which followed the login and password with another comma, the page number, a semicolon, and an item number, this would immediately move to page 625 (this was the Commodore 8-bit "Flagship" RoundTable, GEnie jargon for a bulletin board) and select option 1 from its menu (in this case showing you a list of categories). The Commodore 8-bit community was especially concentrated on GEnie during its final years after the shutdown of QuantumLink in 1993, featuring a large filebase and roundtable roster, and login scripts like this one for DesTerm 128 relied precisely on this capability (warning: PETSCII). On the Apple side, a separate GEnie roundtable for Macintosh users existed outside of AppleLink on page 605. Fortunately for user-to-user communication services like these, most of the system used friendlier alias names for accounts and generally relegated the network login to authentication and billing.
With GEnie's operation as context, we should be able to see all the pieces in the setup dialogue necessary to start reverse-engineering the AppleLink signon process. The phone number has no area code, but the number 362-8350 appears as a number for Cleveland, Ohio in what was then area code 216 from the 1985 AppleLink Getting Started Manual (for the record, Apple's own exchange in Cupertino generally has numbers like 408-996-XXXX). The numbers Apple provided were the same as the GEIS national local access numbers for the era. This Portable is fitted with an Apple internal 1200bps modem which was what this system was originally configured to call out through. However, you can also route the call via (using the Portable CDEV) the modem port or (this screen) the printer port to an external modem or other serial link.As for the signon, we can see a Mark III login of the standard format in this window, here called the "System number." Knowing what we know about GEnie, that means the signon to access (at least this instance of) AppleLink was NJL37300 and the password was Apple (note the comma between them), but this clearly couldn't be an individual user's identifier. The AppleLink ID is populated (I've only censored it), so it must transmit it somehow.
The way we find out is by looking at AppleLink's CCL scripts. CCL stands for Communications Control Language, a simple domain-specific scripting language that originated with the AppleLink client as a means of adding and adjusting connection methods without having to constantly update the main application. They work essentially by emitting strings, or, for control flow, branching on a matched string to a specified numeric label, along with a small set of register variables and special keywords to manipulate the serial port. CCL outlasted its original purpose: an updated form became the modem scripting language for Apple Remote Access, was updated again for Mac OS X through 10.4 Tiger to remove its dependency on string resources, and was updated a final time in 10.5 Leopard to support strings in property lists. While most people no longer use modems and Macs haven't included them in years, the infrastructure remains supported in modern macOS for things like external USB modems and serial ports, and you can still find your Mac's available CCLs in /Library/Modem Scripts.
It will be easiest for us to spoof AppleLink by pretending to be a regular Hayes-compatible modem, and AppleLink has a CCL for that called USAModem.CCL. Happily, these scripts are regular MacRoman and readable with a text editor. Here are some extracts.
-LABEL 1 DsplyMsg Signalling the modem... MatchStr 1 2 OK MatchStr 2 45 CARRIER Xmit ATS0=0E0X4V1\13 Wait 180 IncVar 1 IfVar 1 3 47 Jump 1
The string "Signalling the modem" emitted by the keyword DsplyMsg is the current connection status, and is displayed within the connection dialogue box like so:
This segment then goes on to set the strings it intends to respond to. The MatchStr keyword takes three arguments, a string slot (only a fixed number of strings can be searched for at once), a label to branch to if the string is matched, and then the string itself. Matching occurs automatically as text is received and matches do not (indeed usually don't) need to match the entire received string. It next sends an AT command ATS0=0E0X4V1 followed by a carriage return, which sets modem register 0 to 0 (never auto-answer), turns off echo, turns on busy signal and dial tone detection, and requests verbose English responses. If the pause of 180 tenths of a second expires without a matching string being received, it increments a variable and tries again, branching after three tries to label 47 which aborts with a timeout error. We'll assume the modem replied with OK, which will move us to label 2.
-LABEL 2 DsplyPic 1 SetVar 1 0 ! -LABEL 3 DsplyMsg Dialing ~FONE... MatchStr 1 48 CARRIER MatchStr 2 4 CON MatchStr 3 4 ECT MatchStr 4 5 BUSY Pause 30 Xmit ATD~TONE~FONE\13 Wait 400 DsplyMsg Waiting for connection... Wait 1800 DsplyMsg No connection. Trying again... IncVar 1 IfVar 1 3 49 JSR 20 Pause 60 Flush Jump 3
(Comment lines start with !, or could be appended with whitespace after a valid statement.) The DsplyPic keyword lights up one of the icons in the connection dialogue, in this case the first one, and then the next string is shown, which interpolates the built-in variable FONE to show the user the telephone number:
The dial string is then constructed from the Hayes ATD command, whether tone or pulse dialing in the built-in variable TONE, and then the phone number. If it successfully gets any unambiguous part of the string CONNECT, it will assume success and move on to label 4. Strings like BUSY and CARRIER (as in NO CARRIER) branch to their own handlers. If the connection doesn't go through and isn't otherwise handled, the JSR 20 calls a subroutine at label 20 which tries to hang up and reset the modem before dialing again.
-LABEL 4 MatchStr 2 30 U# DsplyMsg Requesting network attention... DsplyPic 2 Wait 50 ChrDelay 50 Xmit HH ChrDelay 2 Wait 300 IncVar 2 IfVar 2 3 51 DsplyMsg The network is not responding. Trying again... JSR 20 Pause 60 Flush DsplyPic 0 Jump 1
!============================================================================== ! Network Connect Sequence ! ! DO NOT CHANGE THE INFORMATION IN THIS SECTION. ! DOING SO WILL PREVENT THE PROPER COMPLETION OF THE CONNECTION. !============================================================================== ! -LABEL 30 -- Box 3 (Establishing connection) DsplyMsg Connection established. DsplyPic 3 SetTries 0 -- for REENTER MatchStr 1 36 SYSTEM REA MatchStr 2 59 BAD VERSION MatchStr 3 53 VALIDATION FAU MatchStr 4 57 OUT OF MatchStr 5 56 INVALID QUIKCOMM MatchStr 6 54 VICE INTERRUPTED MatchStr 7 54 STEM UNAVAIL MatchStr 8 50 NO CARRIER MatchStr 9 60 FATAL MatchStr 10 54 STEM IS UNAVAIL MatchStr 11 37 REENTER DsplyMsg Logging on... Xmit ~CODE,~USER,!~USER,~PASS;~VERS;MAC;EFX;~DATE\13 DsplyPic 4 DsplyMsg Requesting access... SetVar 1 0
-LABEL 36 -- Boxes 5 and 6 (entering system) DsplyPic 5 DsplyMsg Access granted. EFX_ON Turn on Mac error protocol DsplyPic 6 DsplyMsg Waiting for AppleLink Services... ChrDelay 0 Exit 0 We're in
This starts the client's EFX handler and then exits back into the application with return code 0, indicating success. The failure labels all return with -1.
Now that we know what the connection script is looking for, we can type the responses it's expecting back to it. To avoid any potential conflicts with the internal modem, I'll configure AppleLink to communicate via the printer port to a null modem connected with my Raptor Talos II. (Impressively, this client version supports up to 19.2kbps, which would have been quite something in 1991. Those speeds may have been intended for direct serial connections.) You'll note the script is explicitly terminating everything it sends with a carriage return, so for display purposes we'll have picocom translate those to line feeds. Again, bold is what I typed back.
% picocom -q -c --imap crcrlf -b 1200 /dev/ttyUSB0 ATS0=0E0X4V1 OK ATDT3628350 CONNECT HHU#NJL37300,Apple,censore.d,!censore.d,password;5.1.1;MAC;EFX;BH900813 SYSTEM READY
I'm not sure why the exact same user string is sent twice except with an exclamation point, but the rest includes the client version and presumably an encoded date of revision instead of today's date. This seems to be everything the mainframe would need to fire up EFX and start communicating with the client.
Indeed, all of the preceding screenshots were generated with that very sequence, demonstrating the client will accept our responses. But unfortunately I don't know anything about EFX, so we can't currently fake anything further. I don't see any activity on the serial port despite this message and we inevitably time out. That then gives us this message ... ... and then this final message before the client gives up completely, which I suspect our intrepid astronauts on Space Shuttle Atlantis also got a few times, though for a completely different reason.Let's finish the AppleLink story before we close. By the end of 1985 AppleLink was a roaring success, at least in user terms, handling over 4,000 calls a day. This demonstrated to GE the concept could have some utility to other corporations besides Apple, and in December 1985 GE decided to use the same technology as AppleLink in their own product, Businesstalk. Businesstalk was envisioned for any company with a large dealer network, not just computer companies, many of which would have been battling the same problems and expenses. The client was also Mac-specific and built with the same codebase, at least initially, but GEISCO's charges were heftier at $35/hr prime time and $18/hr off, presumably with the assumption that (like Apple) interested companies would partially subsidize the rate. To GE's dismay few seemed interested, so in February 1986 GE relaunched Businesstalk as Dealertalk, using the same Mac client but instead at an introductory price of $9900 that included a site license, 15 days of training and 100 hours of free connect time. The price was intended to stoke interest since GE threatened it would rise to $20,000 after July 31. It was similarly unsuccessful.
In December 1986 GE tried once more under the BusinessTalk name again (but note the camel case), unveiling a PC client alongside the Mac version and marketing the service more as a corporate private bulletin board. It was still $20,000 and the rate crept up to $36/hour, but there was no limit on the number of clients that could connect. Possibly it was the unlimited number of machines or maybe eliminating the requirement to buy Macintoshes, but either way the third time was finally a charm. By 1989 (the screenshot is from Infoworld showing the MS-DOS version of BusinessTalk 5.0; compare similarities with the AppleLink shot) users could communicate with other corporate E-mail systems like Wang Office, DEC All-in-1 and IBM DISOSS and could even send messages by fax. While it was still $20,000 to start, GE had enough business that the connect rates were a more modest $23/hr prime and $15/hr off by then, and Business Talk became used by diverse companies such as financial company Charles Schwab to form SchwabLink. Despite being notionally separate universes, Business Talk instances and AppleLink nevertheless all ran on the same platform, and messages could be sent and received between each other as well. (These later software clients likely used a form of EFX also, so it may be possible to figure out how it worked from them, but probably even fewer examples of those still survive.)Meanwhile, although allegedly saving them more than they spent, Apple was chafing under the substantial amount of money they paid GE to keep AppleLink operational. As more dealers and developers joined the system, the more expensive it got (Apple Confidential cited a ballpark fee of $30 million annually), and GE was unwilling to renegotiate. It even got bad enough that Apple later sold CD-ROMs with AppleLink content on them as a cheaper "offline" version to dampen interest.
In 1987 Apple approached Steve Case, then running Quantum Computer Services and the very successful QuantumLink online service for the Commodore 64, to develop a cheaper alternative to which AppleLink content could eventually be transferred. AppleLink Personal Edition ran atop Quantum's Stratus-based platform via Telenet and débuted first on the Apple II in May 1988, but Apple and Quantum squabbled over the future direction of the service and users complained about missing features that the "real" AppleLink had. (In addition, some of GE's code and protocols were allegedly used without permission, further souring the relationship.) Apple eventually paid off Quantum to get out of the contract and the Mac version as such was never released. Instead, Quantum used that money to finish the Mac client without the Apple branding but using the same underlying infrastructure, and in 1991 that client became part of Quantum's new America Online.
Although Apple had managed to cut AppleLink costs somewhat in the meantime, continued high expenditures eventually caused the company to open a new request for proposals, and in 1992 they went back to Quantum again which was now also called America Online. In return for Apple paying AOL royalties, Apple would receive a stake in the company and layer an AppleLink replacement on top of AOL's infrastructure that would additionally be offered to consumers. Due to Apple corporate turmoil the new online service, christened eWorld, didn't launch until June 1994 and ended up directly competing with other new and established ones like AOL itself, Delphi, CompuServe, Prodigy and, yes, GEnie. Apple had priced its hourly rates high to temper demand, but that ended up working too well, and they failed to even include it consistently with new Macs they sold. Apple eventually forced the issue by moving employees from AppleLink to eWorld to beef up traffic and, after Gil Amelio cancelled eWorld in March 1996, started migrating to Web-based intranet alternatives rather than move people back. AppleLink was finally shut down on March 31, 1997. As it happens, a similar process happened with GEIS. In April 1992 GE announced plans for BusinessTalk 2000, a repackaging of the service adding a Windows client to its Mac and DOS support, X.400 and X.500 message exchange, more online databases for access, and single seats starting as low as $279 (the site license increased to $30,000). By then, however, the growing Internet had started to erode customer interest in proprietary network products, especially GEIS' core Electronic Data Interchange services. GEnie, though still successful, suffered from a lack of expansion because it was only ever intended to use up excess computing capacity and GEIS' weakening revenue couldn't justify additional hardware. GEIS sold it off in 1996 as other clients started moving away from GE's proprietary services to Web-based alternatives (the screenshot above of the historical GEIS website comes from this remembrance). Both GEnie (under new owners Yovelle and later telecom IDT) and the Mark III network eventually succumbed to Y2K, as the GCOS version in use didn't handle it and it would have been too costly to move them to new platforms, and both shut down in December 1999. The majority of GEIS was reorganized as GXS (GE Global Exchange Services) in 2000, spun off in 2002, and subsequently bought out by OpenText in 2014.
No comments:
Post a Comment
Comments are subject to moderation. Be nice.