Lars Brinkhoff, editor - lars@nocrew.org /
https://github.com/larsbrinkhoff/
Paul McJones, assistant editor - paul@mcjones.org /
https://mcjones.org/paul/
Last updated 12 October 2025
The goal of this project is to preserve and present primary and secondary source materials (including specifications, source code, manuals, and papers discussing design and implementation) from the history of Emacs, including the TECO, Lisp Machine, Multics, Montgomery, Gosling, Zimmerman, GNU, and XEmacs versions. Comments, suggestions, and donations of additional materials are greatly appreciated.
Unless otherwise specified, all source code is in the repository https://github.com/larsbrinkhoff/emacs-history/ and URLs within this repository are displayed in a relative form, e.g., blob/sources/emacs24-25.dump instead of https://github.com/larsbrinkhoff/emacs-history/blob/sources/emacs24-25.dump.
These people have been instrumental in finding or preserving old Emacs software:
Rich Alderson, Bruce Baumgart, Dave Conroy, Dennis Boone, Noah Friedman,James Gosling, Hans Hübner, Al Kossow, der Mouse, Brian Reid, Alfred M. Szmidt, and Tom Van Vleck.
The very first Emacs was written in 1976. It was implemented in macros for the TECO editor running in the ITS operating system for the PDP-10 computers at the MIT AI Lab. It was created by Richard Stallman and Guy Steele from an amalgam of previous macro packages. It was later ported to TOPS-20.
See also: https://github.com/MITDDC/emacs-1976-1977.
"Based on AI EMACS; LOCK timestamp: 1988-03-02 or there abouts"
"This is for ITS (from the AI system), I think the one on MC is the same I can check if you really are curious, and this should be 162 but lack of version strings and what not make it interesting"
Daniel Weinreb and Mike McMahon wrote an Emacs clone for the MIT AI Lab Lisp Machines in 1978. It was called EINE, EINE is not Emacs. Later version were called ZWEI and Zmacs.
Actually add ZWEI from MIT System 99.32. [Lars Brinkhoff, commit d19378c1239987d795c2202cdf081da52717c5b5, 1 March 2019]
Sine was a language designed by Owen Theodore Anderson in 1978 for writing real-time editors; TVmacs was an Emacs-like editor written in Sine. The work was done in MIT's Architecture Machine Group, and ran on the MagicSix timesharing system on an Interdata 7/32 with segmentation hardware in 32 bit mode.
MagicSix Sine sources from Saildart.org/OTA.
[Lars Brinkhoff, commit 39d56ab3274d41eaf45c115b66e7b69f070a6d70, 17 November 2018]MagicSix Sine add blob/octal files from Saildart.org.
Add "_octal" version of these files, which provide encoded binary data from PDP-10 file system, to avoid some character mapping issues with the web/html versions.
Include convert-octal.pl to extract the original 7-bit ASCII from the octal encoding.
[Lars Brinkhoff, commit e8da09639abe737b58fa54ffca4b01921ef46412, 22 November 2018]
Bernard Greenberg wrote an Emacs clone in Multics Maclisp in 1978.
Prime Emacs was written by Bob Frankston at Software Arts circa 1979, for a Prime minicomputer. It was sold to Prime.
Ceruzzi: Did you have any discussion about Prime versus other vendors?
Bricklin: Yes. We looked at DEC and all. But the thing about Prime is it had a PL/I compiler, as I recall. Bob can get into details about that. It was very much like Multics. It was developed by a lot of ex-Multics people. So we were used to that. And Bob eventually ended up writing an Emacs for it, a full Emacs for it, which we sold back to Prime in return for some hardware and stuff, which we used as our mail system. Our mail system was really cool, which we used for everything. Bricklin & Frankston/Campbell-Kelly & Ceruzzi Interview Page 32 Ray Ozzie liked it and it re-inspired him to go back and build Notes, at least he’s written this, and inspired him to do Notes, remembering his experience with the Plato System
"I was working part-time at Interactive Data which was using CP/CMS, and I wanted a better editor. I used the QED I learned in 1966 on the SDS-940 for inspiration. There was also a qed (qedx) on Multics written by the soon-to-be Unix crew. So I wrote my own. When we got the Primes, I took that code and put a screen interface on it to turn it into an Emacs. I was especially proud of my support for the VT-100 screen support which made it quite usable at dial-up speeds (and better than the ITS/Multics versions in that regard). The program itself was written in PL/1, and my initial code predated Bernie’s Lisp version."
Montgomery Emacs was written in 1979 by Warren Montgomery at Bell Telephone Laboratories. It was initially for PDP-11 Unix.
"This is the version we were running on the 5th floor MIT V6 machine (CSR), which by that point have absorbed a few V7isms (e.g. some ioctl() stuff). So don't expect to be able to compile and run it, without a fair amount of work. (I vaguely recall that it needs I+D space, so maybe not on a /23 at all.) But at least the source is in C, so you can read it. I don't think there's an un-modified version online (i.e. the original Montgomery source), alas." [Chiapa, TUHS, 2 April 2021]
Written by James Gosling circa 1980 and originally distributed for free; later he sold it to UniPress, who distributed it as UniPress Emacs.
Message-ID:Newsgroups: fa.works Path: utzoo!duke!decvax!ucbvax!works@mit-ai X-Path: utzoo!duke!decvax!ucbvax!works@mit-ai From: works@mit-ai Date: Sun Jul 5 08:07:41 1981 Subject: Software tools - EMACS and UNIX >From WorkS-REQUEST@MIT-AI Sun Jul 5 07:59:49 1981 There are (at least) two editors entitled EMACS on the Berkeley VM/UNIX VAX system. The one by James Gosling of CMU seems to be favored. It has a LISP-like language for extension. It is missing features of various sorts, however. -- CSVAX.fateman at Berkeley A point of information: There exists an excellent, if not fully mature, EMACS for the VAX running Berkeley UNIX or VMS+EUNICE. The basic editing level is written entirely in C (zero lines of machine code), the macro level is an embedded lisp-like language called MLISP (which is INFINITELY more comprehensable than TECO macros!), and the top level is the usual EMACS double-bucky-coke-bottle command language. Inquiries sould go to GOSLING@CMUA, but I think he is on summer vacation or some such. -- Dave Dyer ------- https://groups.google.com/g/fa.works/c/3bpIe16bi1M/m/Ry41tEVr1ncJ / blob/sources/Usenet/fa.works/gosling-emacs.txt Message-ID:Newsgroups: fa.unix-wizards Path: utzoo!decvax!ucbvax!unix-wizards X-Path: utzoo!decvax!ucbvax!unix-wizards From: ucbvax!unix-wizards Date: Wed Sep 2 12:10:55 1981 Subject: Unix Emacs >From THOMAS@UTAH-20 Wed Sep 2 12:04:15 1981 There are several. If you have a VAX, probably the editor of choice is one written by James Gosling @ CMU-10A. Contact him for details (gosling@cmua). On an 11, the problem is more difficult. There a couple around, but at least one of them is an "unreleased" Bell Labs program. They all have some lossages. =S ------- https://groups.google.com/g/fa.unix-wizards/c/ZLvRTX5fiH8/m/7TFq9bYE3koJ / blob/sources/Usenet/fa.unix-wizards/gosling-emacs.txt
Brian Reid: "I found two versions. They are in reid.org/~brian/misc/gosling-emacs-1999.tar and reid.org/~brian/misc/gosling-emacs-2007.tarIn 1999 I updated it so it would work with gcc 2 In 2007 I paid some Russian kid to update it so that it would work with gcc 3 When gcc 4 came out it would no longer compile, and I just sort of walked away from it."
"I got the source from you in 1983. I did a little bit of work on it so it would run under 4.3BSD. It was then untouched until gcc 2.0 came out; I had to change every variable-argument function call.
So my 1999 version is identical to your 1983 version except for those two things."
About publishing the files:
Brian Reid: "Fine with me. I consider them to be James' property and not my own."
James Gosling: "It’s fine with me too. Archaeology is a good thing :-)"
"I got it from a prerelease of Eunice, obtained because one of the people behind Eunice personally knew some people at the lab I was then hanging out at. ('Then' is mid-'80s sometime.) Once I started using a real Unix (4.2c, then 4.3 shortly after that, then SunOS, then....) I ripped out the special-case Eunice code and have been maintaining (and slowly evolving) it over the years since then."
From GitHub user @neozeed:
This is apparently Gosling Emacs from 1984 tape. The decus tape label is :
UniPress Software Inc.
PRODUCT: EMACS SCREEN EDITOR
VAX/SUN UNIX 4.2 Source
(C)1983 tar S/N # 1054 7/84
[Lars Brinkhoff, commit 0c305ea8117c8eb1e2a461072abfdd6a3a93533f, 18 October 2017]
Developed from Montgomery Emacs by Steve Zimmerman. CCA Emacs was a commercial version of Zimmerman Emacs, sold by Computer Corporation of America.
Message-ID:Newsgroups: fa.unix-wizards Path: utzoo!decvax!ucbvax!unix-wizards X-Path: utzoo!decvax!ucbvax!unix-wizards From: ucbvax!unix-wizards Date: Thu Sep 3 06:02:48 1981 Subject: Unix EMACS >From z@CCA-UNIX Thu Sep 3 05:54:22 1981 I too have an EMACS which runs on VAXes under 4.1BSD. It differs from Gosling's EMACS in that the user interface is virtually identical to that of Twenex EMACS; almost all of the standard EMACS commands have been implemented, and in most cases they work exactly the same as on Twenex. It has such features as real control-meta commands, region filtering, text justifying, crash recovery, automatic backup file creation, Lisp mode commands for manipulating s-expressions, lists, and defuns, keyboard macros, a tutorial, and all the standard EMACS online documentation except the INFO subsystem, which will be coming later. It doesn't currently have a macro language, but I am about to add one; it will look much like the meta-Lisp in Gosling's EMACS. https://groups.google.com/g/fa.unix-wizards/c/XJymSOUDRbk/m/rlyicFJrbfsJ / blob/sources/Usenet/fa.unix-wizards/cca-emacs.txt
Written by Richard Stallman in 1984, initally incorporating parts of Gosling Emacs until version 13.8 and possibly 14.x.
Noah Friedman: "In 1993 I recovered a copy of the Emacs 16.56 sources from backup tapes at MIT because rms needed it in a court case with Unisys. I put it back up for ftp a couple of years later and it's relatively easy to find these days."
Lars Brinkhoff: "It seems this is not the official 16.57. There are no ChangeLogs entries."
Mike Haertel: "This tar file came from a nine track tape that was sent to members of the Unix Users of Minnesota.
I don't know if it's an original tar file made by RMS, but at least the timestamps of the files within look correct, except maybe for a few of the top level directories which are dated Oct 2, 1985."
Add 17.60 to the build.
This revealed some more BSD mods in their copy of 17.61.
[Lars Brinkhoff, commit 1acb2886ceaed8eecfc817cd01f63b281b562612, 19 October 2016.]
GNU Emacs for NeXT systems. This is a version of 18.55, plus RMS changes up until July 1990. This is interesting, because stock 18.55 was released in August 1989, and 18.56 in January 1991.
"Lugaru Software was started by two former Carnegie Mellon University students. We'd used TECO-based EMACS on the school's time-shared PDP-20 systems, but it was far too large to run under DOS.
The closest DOS equivalent we knew of at the time (1983) was MINCE, but it was built for DOS 1.0 and couldn't use directories (a feature introduced in DOS 2.0), only drive letters. You had to run it from the one directory with all the files you wanted to edit.
We started developing Epsilon in December 1983, and the first version (for DOS) came out in 1984. The following year, we introduced both a concurrent process feature (adding multitasking to DOS, so you could run a compiler in a buffer window while editing) and an extension language." [Steven Doerfler of Lugaru Software, Ltd.]
MicroEMACS was written by David G. Conroy in 1985.
Epoch was a set of patches to GNU Emacs 18 from the University of Illinois. It improved the GUI capabilities.
Lucid Emacs was developed by Lucid Inc. starting in 1991 as a fork of an early alpha version of GNU Emacs and leveraging Epoch. It was intended to serve as the basis for Lucid's Energize C++ development environment.
Afer Lucid Inc. went bankrupt in 1994, other deveopers renamed Lucid Emacs as XEmacs to avoid legal ambiguity over the Lucid trademark. [https://www.xemacs.org/Documentation/21.5/html/internals_3.html]