Lotus 1-2-3

Lotus 1-2-3 is a discontinued spreadsheet program from Lotus Software (later part of IBM). It was the first killer application of the IBM PC, was hugely popular in the 1980s, and significantly contributed to the success of IBM PC-compatibles in the business market.

The first spreadsheet, VisiCalc, had helped launch the Apple II as one of the earliest personal computers in business use. With IBM's entry into the market, VisiCalc was slow to respond, and when they did, they launched what was essentially a straight port of their existing system despite the greatly expanded hardware capabilities. Lotus's solution was marketed as a three-in-one integrated solution: it handled spreadsheet calculations, database functionality, and graphical charts, hence the name "1-2-3", though how much database capability the product actually had was debatable, given the sparse memory left over after launching 1-2-3. It quickly overtook VisiCalc, as well as Multiplan and SuperCalc, the two VisiCalc competitors.

Lotus 1-2-3 was the state-of-the-art spreadsheet and the standard throughout the 1980s and into the early 1990s, part of an unofficial set of three stand-alone office automation products that included dBase and WordPerfect, to build a complete business platform. Lotus Software had their own word processor named Lotus Manuscript, which was to some extent acclaimed in academia, but did not catch the interest of the business, nor the consumer market. With the acceptance of Windows 3.0 in 1990, the market for desktop software grew even more. None of the major spreadsheet developers had seriously considered the graphical user interface (GUI) to supplement their DOS offerings, and so they responded slowly to Microsoft's own GUI-based products Excel and Word. Lotus was surpassed by Microsoft in the early 1990s, and never recovered. IBM purchased Lotus in 1995, and continued to sell Lotus offerings, only officially ending sales in 2013.

VisiCalc
VisiCalc was launched in 1979 on the Apple II and immediately became a best-seller. Compared to earlier programs, VisiCalc allowed one to easily construct free-form calculation systems for practically any purpose, the limitations being primarily related to the memory and speed of the computer. The application was so compelling that there were numerous stories of people buying Apple II machines to run the program (see article Killer application). VisiCalc's runaway success on the Apple led to direct bug compatible ports to other platforms, including the Atari 8-bit computers, Commodore PET and many others. This included the IBM PC when it launched in 1981, where it quickly became another best-seller, with an estimated 300,000 sales in the first six months on the market.

There were well-known problems with VisiCalc, and several competitors appeared to address some of these issues. One early example was 1980's SuperCalc, which solved the problem of circular references, while a slightly later example was Microsoft Multiplan from 1981, which offered larger sheets and other improvements. In spite of these, and others, VisiCalc continued to outsell them all.

Beginnings
The Lotus Development Corporation was founded by Mitchell Kapor, a friend of the developers of VisiCalc. 1-2-3 was originally written by Jonathan Sachs, who had written two spreadsheet programs previously while working at Concentric Data Systems, Inc. To aid its growth both in the UK and possibly elsewhere, Lotus 1-2-3 became the very first computer software to use television consumer advertising.

Kapor was primarily a marketing guru. His ability to develop his product to appeal to non-technical users was one secret to its rapid success. Unlike many technologists, Kapor relied on focus group feedback to make his user instructions more user-friendly. One example: the instructions that came with the floppy disc read: "Remove the protective cover and insert disc into computer." A few focus group participants tried to rip-off the stiff plastic envelope of disc carrier. Kapor's recognition that techno-speak instructions needed to be translated to normative English was a strong contributor to the product's popularity.

Lotus 1-2-3 was released on 26 January 1983, and immediately overtook Visicalc in sales. Unlike Microsoft Multiplan, it stayed very close to the model of VisiCalc, including the "A1" letter and number cell notation, and slash-menu structure. It was cleanly programmed, relatively bug-free, gained speed from being written completely in x86 assembly language (this remained the case for all DOS versions until 3.0, when Lotus switched to C ) and wrote directly to video memory rather than use the slow DOS and/or BIOS text output functions.

Among other novelties that Lotus introduced was a graph maker that could display several forms of graphs (including pie charts, bar graphics, or line charts) but required the user to have a graphics card. At this early stage, the only video boards available for the PC were IBM's Color Graphics Adapter and Monochrome Display and Printer Adapter, the latter not supporting any graphics. However, because the two video boards used different RAM and port addresses, both could be installed in the same machine and so Lotus took advantage of this by supporting a "split" screen mode whereby the user could display the worksheet portion of 1-2-3 on the sharper monochrome video and the graphics on the CGA display.

The initial release of 1-2-3 supported only three video setups: CGA, MDA (in which case the graph maker was not available) or dual-monitor mode. However, a few months later support was added for Hercules Computer Technology's Hercules Graphics Adapter which was a clone of the MDA that allowed bitmap mode. The ability to have high-resolution text and graphics capabilities (at the expense of color) proved extremely popular and Lotus 1-2-3 is credited with popularizing the Hercules graphics card.

Subsequent releases of Lotus 1-2-3 supported more video standards as time went on, including EGA, AT&T/Olivetti, and VGA. Significantly, support for the PCjr/Tandy modes was never added and users of those machines were limited to CGA graphics.

The early versions of 1-2-3 also had a key disk copy protection. While the program was hard disk installable, the user had to insert the original floppy disk when starting 1-2-3 up. This protection scheme was easily cracked and a minor inconvenience for home users, but proved a serious nuisance in an office setting. Starting with Release 3.0, Lotus no longer used copy protection. However, it was then necessary to "initialize" the System disk with one's name and company name so as to customize the copy of the program. Release 2.2 and higher had this requirement. This was an irreversible process unless one had made an exact copy of the original disk so as to be able to change names to transfer the program to someone else.

The reliance on the specific hardware of the IBM PC led to 1-2-3 being utilized as one of the two stress test applications, along with Microsoft Flight Simulator, for true 100% compatibility when PC clones appeared in the early 1980s. 1-2-3 required two disk drives and at least 192K of memory, which made it incompatible with the IBM PCjr; Lotus produced a version for the PCjr that was on two cartridges but otherwise identical.

By early 1984 the software was a killer app for the IBM PC and compatibles, while hurting sales of computers that could not run it. "They're looking for 1-2-3. Boy, are they looking for 1-2-3!" InfoWorld wrote. Noting that computer purchasers did not want PC compatibility as much as compatibility with certain PC software, the magazine suggested "let's tell it like it is. Let's not say 'PC compatible,' or even 'MS-DOS compatible.' Instead, let's say '1-2-3 compatible. PC clones' advertising did often prominently state that they were compatible with 1-2-3. An Apple II software company promised that its spreadsheet had "the power of 1-2-3". Because spreadsheets use large amounts of memory, 1‐2‐3 helped popularize greater RAM capacities in PCs, and especially the advent of expanded memory, which allowed greater than 640k to be accessed.

Rivals
Lotus 1-2-3 inspired imitators, the first of which was Mosaic Software's "The Twin", written in the fall of 1985 largely in the C programming language, followed by VP-Planner, which was backed by Adam Osborne. These were able to not only read 1-2-3 files, but also execute many or most macro programs by incorporating the same command structure. Copyright law had first been understood to only cover the source code of a program. After the success of lawsuits which claimed that the very "look and feel" of a program were covered, Lotus sought to ban any program which had a compatible command and menu structure. Program commands had not been considered to be covered before, but the commands of 1-2-3 were embedded in the words of the menu displayed on the screen. 1-2-3 won its three-year long court battle against Paperback Software International and Mosaic Software Inc. in 1990. However, when it sued Borland over its Quattro Pro spreadsheet in Lotus v. Borland, a six-year battle that ended at the Supreme Court in 1996, the final ruling appeared to support narrowing the applicability of copyright law to software; this is because the lower court's decision that it was not a copyright violation to merely have a compatible command menu or language was upheld, but only via stalemate. In 1995, the First Circuit found that command menus are an uncopyrightable "method of operation" under section 102(b) of the Copyright Act. The 1-2-3 menu structure (example, slash File Erase) was itself an advanced version of single letter menus introduced in VisiCalc. When the case came before the Supreme Court, the justices would end up deadlocked 4–4. This meant that Borland had emerged victorious, but the extent to which copyright law would be applicable to computer software went unaddressed and undefined.

Decline
Microsoft's early spreadsheet Multiplan eventually gave way to Excel, which debuted on the Macintosh in 1985. It arrived on PCs with the release of Windows 2.x in 1987, but as Windows was not yet popular, it posed no serious threat to Lotus's stranglehold on spreadsheet sales. However, Lotus suffered technical setbacks in this period. Version 3 of Lotus 1-2-3, fully converted from its original macro assembler to the more portable C language, was delayed by more than a year as the totally new 1-2-3 had to be made portable across platforms and fully compatible with existing macro sets and file formats. The inability to fit the larger code size of compiled C into lower-powered machines forced the company to split its spreadsheet offerings, with 1-2-3 release 3 only for higher-end machines, and a new version 2.2, based on the 2.01 assembler code base, available for PCs without extended memory. By the time these versions were released in 1989, Microsoft had eroded much of Lotus's market share.

During the early 1990s, Windows grew in popularity, and along with it, Excel, which gradually displaced Lotus from its leading position. A planned total revamp of 1-2-3 for Windows fell apart, and all that the company could manage was a Windows adaptation of their existing spreadsheet with no changes except using a graphical interface. Additionally, several versions of 1-2-3 had different features and slightly different interfaces.

Lotus 1-2-3's intended successor, Lotus Symphony, was Lotus's entry into the anticipated "integrated software" market. It intended to expand the rudimentary all-in-one 1-2-3 into a fully-fledged spreadsheet, graph, database and word processor for DOS, but none of the integrated packages ever really succeeded. Lotus 1-2-3 migrated to the Windows platform, as part of Lotus SmartSuite.

IBM's continued development and marketing of Lotus SmartSuite and OS/2 during the 1990s placed it in direct competition with Microsoft Office and Microsoft Windows, respectively. As a result, Microsoft "punished the IBM PC Company with higher prices, a late license for Windows 95, and the withholding of technical and marketing support." Microsoft did not grant IBM the OEM rights for Windows 95 until 15 minutes prior to the release of Windows 95 on 24 August 1995. Because of this uncertainty, IBM machines were sold without Windows 95, while Compaq, HP, and other companies sold machines with Windows 95 from day one.

On 11 June 2013, IBM announced it would withdraw the Lotus brand: IBM Lotus 1-2-3 Millennium Edition V9.x, IBM Lotus SmartSuite 9.x V9.8.0, and Organizer V6.1.0. IBM stated, "Customers will no longer be able to receive support for these offerings after 30 September 2014. No service extensions will be offered. There will be no replacement programs."

User features
The name "1-2-3" stemmed from the product's integration of three main capabilities: along with its core spreadsheet functionality, 1-2-3 also offered integral charting/graphing and rudimentary database operations.

Data features included sorting data in any defined rectangle, by order of information in one or two columns in the rectangular area. Justifying text in a range into paragraphs allowed it to be used as a primitive word processor.

It had keyboard-driven pop-up menus as well as one-key commands, making it fast to operate. It was also user-friendly, introducing an early instance of context-sensitive help accessed by the F1 key.

Macros in version one and add-ins (introduced in version 2.0) contributed much to 1-2-3's popularity, allowing dozens of outside vendors to sell macro packages and add-ins ranging from dedicated financial worksheets like F9 to full-fledged word processors. In the single-tasking MS-DOS, 1-2-3 was sometimes used as a complete office suite. All major graphics standards were supported; initially CGA and Hercules, and later EGA, AT&T, and VGA. Early versions used the filename extension "WKS". In version 2.0, the extension changed first to "WK1", then "WK2". This later became "WK3" for version 3.0 and "WK4" for version 4.0.

Version 2 introduced macros with syntax and commands similar in complexity to an advanced BASIC interpreter, as well as string variable expressions. Later versions supported multiple worksheets and were written in C. The charting/graphing routines were written in Forth by Jeremy Sagan (son of Carl Sagan) and the printing routines by Paul Funk (founder of Funk Software).

Real Mode (8088+)
These editions of 1-2-3 for DOS were primarily written in x86 assembly language.
 * Release 1 was the first release for DOS-based PCs. Introduced in January 1983.
 * Release 1A in April 1983 Officially supported ASCII, unofficially supported the IBM extended character set (but not LICS).
 * Release 2 brought add-in support, better memory management and expanded memory support, supported x87 math coprocessors, and introduced support for the Lotus International Character Set (LICS).   Introduced in September 1985. The Japanese version Lotus 1-2-3 Release 2J for NEC PC-98 computers was released on 1986-09-05.
 * Release 2.01 in July 1986. Introduced an option to switch between LICS and the IBM extended character set.
 * The Japanese version Lotus 1-2-3 Release 2.1J for NEC PC-98 computers was released in October 1987. A version Lotus 1-2-3 Release 2.1J+ followed in February 1989.
 * Release 2.2 brought improved speed, automated macro tools, and presentation-quality graphics. Introduced in 1989. The Japanese version Lotus 1-2-3 Release 2.2J was released in February 1990.
 * Release 2.3 brought WYSIWYG editing to the 2.x line. Introduced in 1991. The Japanese version Lotus 1-2-3 Release 2.3J was released in September 1991.
 * Release 2.4 added icons and additional tools, and was the last release supporting 2D (only) spreadsheets. Introduced in 1992. The Japanese version Lotus 1-2-3 Release 2.4J was released in September 1993.
 * In July 1995, Lotus released Lotus 1-2-3 Release 2.5J for DOS.

Protected Mode (80286+)
These editions of 1-2-3 for DOS were primarily written in C.
 * Release 3 introduced the concept of 3D spreadsheets, utilized extended memory, supported having multiple files open simultaneously, and required an 80286-based PC or higher. It also introduced support for the Lotus Multi-Byte Character Set (LMBCS). Introduced in March 1989.  The test was performed with 16 MHz system with the 387SX-16 math coprocessor using the mortgage payment schedule file resulting 33 seconds without math coprocessor and 10 seconds with it.
 * Releases 3.1 and 3.1+ added WYSIWYG capabilities, the ability to swap to disk allowing for larger files (up to 64 MB), and could be run as a DOS program under Windows 3.0 and OS/2. Introduced in 1990.
 * Release 3.4 added icons, improved performance, and enhanced graph capabilities, making it functionally similar to Release 2.4. Introduced in 1992.
 * Lotus 1-2-3 for Home, 1992
 * Release 4 was the last release for DOS. More an upgrade to Release 3.4 than in line with Release 3 for Windows, it contains an improved interface and new features, including Version Manager, a spell checker, context-sensitive help, and cell comments. Introduced in May 1994.

OS/2

 * Lotus 1-2-3/G Release 1. OS/2 text mode application introduced support for the Lotus Multi-Byte Character Set (LMBCS) together with the Release 3.0 for DOS in summer 1989.
 * Release 1.1. Introduced in 1991.
 * Release 2. Introduced in 1992.
 * Release 2.1. Introduced in 1994.

Win16 (Windows 3.x)

 * Lotus 1-2-3/W Release 1 was the first release for Windows, requiring Windows 3.0 or higher, was 16-bit, and was functionally equivalent to Release 3.x for DOS. Introduced in 1991. The Japanese version Lotus 1-2-3/Windows R1.0J was released on 1991-11-15.
 * The version Lotus 1-2-3/Windows R1.1J was released on 1992-6-2.
 * Release 4 was an extensive improvement that added groupware capabilities, improved integration with Lotus Notes, advanced graphics, context-sensitive menus and icons, and in-cell editing. Introduced in June 1993. A Japanese Lotus 1-2-3/Windows Release 4J was released 1993-07-16.
 * Release 5 added additional groupware capabilities, chart maps, and improved database access. This was the last 16-bit version for Windows 3.1x, and was available as part of SmartSuite 3.1, 4, and 4.5. Introduced in mid-1994. The Japanese version Lotus 1-2-3/Windows Release 5J was released on 1994-09-22.

Win32 (Windows 9x/NT)

 * The 97 Edition was the first 32-bit version, requiring Windows 95 or Windows NT 4.0, and had a changed interface and support for LotusScript. Introduced in 1997. The Japanese-language version Lotus 1-2-3 97J was released on 1997-04-11.
 * The Japanese-language Lotus 1-2-3 98J was released on 1998-06-05, followed by Lotus 1-2-3 2000J on 1999-07-02, and by Lotus 1-2-3 2001J on 2001-07-27.


 * The Millennium Edition (version 9.8) contained new functions, improved Y2K support, Internet support, and better Excel compatibility. This is the last version of 1-2-3 for any platform, and has received maintenance releases through Fixpack 2. Introduced in 2002.

Other operating systems

 * DeskMate – Introduced in 1989, "Lotus Spreadsheet for DeskMate", which was not officially called "1-2-3", supported 1-2-3 version 2.x files, and used windows, on-screen symbols, pull-down menus, dialog boxes and other graphical tools, similar to Microsoft Windows. However, it did not support add-ins, macros, or expanded memory.
 * Unix – A single version for Unix System V/386 was released in 1990. It was certified for SCO Xenix 2.3 and SCO Unix 3.2.0, but also expected to work on AT&T's plain System V and on ISC's 386/ix.
 * Linux – In 2022, Lotus 1-2-3 for Unix System V/386 was adapted to GNU/Linux by Tavis Ormandy.
 * SunOS / Solaris – At least three releases for SPARC-based systems were published. Release 1.1 supported both SunView and the OpenWindows / OPEN LOOK windowing systems. It also featured real-time update support. Introduced in 1991. Release 1.2 supported "Classic" in xterm, "Classic" in X Window, OPEN LOOK, and OSF/Motif.
 * Based on the Solaris version, other UNIX ports were developed at Lotus's offices in Dublin. The included 1-2-3 HP-UX running on the HP 9000 hardware (series 300/400 and 700), AIX running on RS/6000 workstations, DECstations, the 88000 processor, and more versions of UNIX running on Intel PCs. All these versions supported the X11 window system.
 * OpenVMS – A character cell terminal version of Lotus 1-2-3 was available on OpenVMS.
 * HP MS-DOS palmtop PCs – A joint collaboration between Hewlett-Packard and Lotus, the HP 95LX, HP 100LX, HP 200LX and HP OmniGo 700LX (1991–1994) had ports of Lotus 1-2-3 R2.2 and R2.4 embedded in ROM.
 * Apple Macintosh – Lotus's first truly WYSIWYG spreadsheet, taking full advantage of the Mac OS, had two releases: Release 1.0 debuted in 1991 and Release 1.1 was introduced the following year. Lotus 1-2-3 for Macintosh 1.0 received a 4 mice rating (out of 5) in the March 1992 issue of MacUser, praising it for being the first spreadsheet on Macintosh to include in-cell editing instead of using the formula bar found in competing products, as well as other interface refinements. The user interface provided Macintosh users the advanced charting capabilities of the PC version with a Macintosh user interface, while also offering a "classic" keyboard driven user interface familiar to the users of the DOS version, giving it a $4 1⁄2$ mice rating (out of 5).
 * In 1987, Lotus announced a mainframe version of Lotus 1-2-3, Lotus 1-2-3/M; 1-2-3/M was designed for use with IBM 3270 terminals and ran under both VM/CMS and MVS operating systems.  Lotus 1-2-3/M was jointly developed by IBM and Lotus, and exclusively sold by IBM.

File formats
Lotus 1-2-3 file formats use various filename extensions including 123, wks, wk1, wk2, wk3, wk4, some of these may open in the desktop applications of Collabora Online, LibreOffice and Apache OpenOffice, these can then be saved into the OpenDocument format or other file formats.

Reception
After previewing 1-2-3 on the IBM PC in 1982, BYTE called it "modestly revolutionary" for elegantly combining spreadsheet, database, and graphing functions. It praised the application's speed and ease of use, stating that with the built-in help screens and tutorial, "1-2-3 is one of the few pieces of software that can literally be used by anybody. You can buy 1-2-3 and [an IBM PC] and be running the two together the same day". PC Magazine in 1983 called 1-2-3 "a powerful and impressive program ... as a spreadsheet, it's excellent", and attributed its very fast performance to being written in assembly language.

Bugs
Lotus 1-2-3 assumes that 1900 is a leap year. This is incorrect as while 1900 is a year that is divisible by four, years divisible by 100 are not counted as leap years unless divisible by 400. This bug persists today as its competitor, Microsoft Excel, still incorporates the bug to ensure compatibility with legacy Lotus 1-2-3 spreadsheets.