Modula and Lilith

rb82-4-003In 1982 I wrote an article in the dutch magazine Radio Bulletin about Modula and the Lilith computer.

The Personal Computer Lilith

Professor Wirth not only designed languages, he also designed hardware, combining the strengths of his programming languages with a wellsuited platform. The first computer is called Lilith, of which about 100 were built around 1980. They were in use at the ETH for about ten years and then replaced by the more powerfull Ceres workstation.

From the ETH historical website

The Lilith was one of the first computer workstations worldwide with a high-resolution graphical display and a mouse.

Medien und Informatik Carl-August Zehnder (links) und Niklaus Wirth 16.10.2006 Bild Christian Beutler

Carl-August Zehnder (links) und Niklaus Wirth

The first prototype was developed by Niklaus Wirth and his group between 1978 and 1980 with Richard Ohran as the hardware specialist. Lilith was strongly influenced by the Alto computer developed at Xerox’ Palo Alto Research Lab in California, with which Niklaus Wirth had been working during his sabbatical in 1976/77. He was impressed by the system, but unfortunately the Alto computers were not for sale. On his departure day, though, he was presented with a computer mouse he liked so much as an input device.

The whole system software of the Lilith was written in Modula-2, a structured programming language which Wirth has developed at the same time. The programs were compiled into low-level M-Code instructions which could be executed by the hardware. The user interface was designed with windows, icons and pop-up menus. Compared with the character based systems available at that time, these were revolutionary metaphors in the interaction with a computer.

 1981_lilith_EN  1981_lilith-arbeitsplatz_EN  1981_lilith-windows_EN
First generation of the Lilith workstation, 1981. Lilith in use, 1981. Debugger with windowing technique, 1981.

The main goal in the construction of the Lilith Workstation was its application in the educative field. Additionally, it was also used for administrative work at the institute. As a matter of fact, the Lilith soon also became a basis for various other research projects. An attempt to commercialise the Lilith computer was undertaken in 1982 but was given up after a short time, eventhough the Lilith already at that time had all the characteristics which would distinguish the much more successful Macintosh, presented in 1985.
The idea of naming the computer “Lilith” Wirth was given by a friend who told him about a men seducing daemon bearing that name. Members of Wirth’s group would be working at nighttime and over the weekend for the Lilith project and were literally seduced.

The Lilith proved itself during the 1980s in the daily business as well as for educational application. However, the growing requirements did not simply leave it unaffected, and thus the workstation development at the institute was continued over the years. The research interests were not in processor architecture anymore, but rather in the integration of modern hardware technology. Together with Hans Eberle and later with Beat Heeb, Wirth began developing the Ceres series in 1984, presenting the first genuine 32-Bit computer a couple of years later. In 1990, the second revision of the system was finished and 100 Ceres-3 machines were produced in Switzerland which were used for the equipment of computer labs. Parallel to the development of the Ceres computers, the change from Modula-2 to Oberon as the language used in programming courses and from Medos to Oberon as the operating system was effected.

 1985_ceres-1_EN  1985_ceres-1-tower_EN  1990_ceres-3_EN
Ceres-1, ca. 1985.  Ceres-1 Tower, 1985. Ceres-3 workstation, 1990.

ETH Report Nr 40 – The Personal Computer Lilith. Apr 1981. N. Wirth “The Yellow Report”
ETH Report Nr 40 (PDF file 1.5 MB)

The Modula-2 Handbook – A Guide for Modula-2 Users and Programmers. Modula Research Institute, November 1983
The Modula-2 Handbook (PDF file 1.8 MB)

Programs and Source Code (with thanks to

The M2M-PC System – v1.35 for MS-DOS. Modula Research Institute. Feb 1984
M2M-PC v1.35 for MS-DOS (Zip file 120 KB)

The Lilith executes M-code, a pseudo-code similar to the P-code of the Pascal compilers also designed by N. Wirth. The M2M-PC System is an M-code interpreter for the IBM-PC running DOS 2.0 developed by the Modula Research Institute allowing the Lilith Modula-2 compiler and its output to be executed on the IBM-PC.

The system was originally designed to run on a system with two floppy disk drives but we have successfully run it under cmd.exe on a Windows XP system. Refer to the Modula-2 Handbook above for instructions on how to use the system.

MODULA a language for modular multiprogramming, Wirth, 1976

M2M Compiler Sources. Modula Research Institute. Oct 1983

M2M Compiler Sources (Zip file 180 KB)

The first Modula-2 compiler was completed in 1979 and ran on the DEC PDP-11. This is the source code of the PC version of the second Modula-2 compiler. It generates M-code for the Lilith and can be compiled and run using the M2M-PC System. The following text document files are included with the sources:

  • Overview of the Modula-2 Compiler M2M
  • Files on Tape for M2M Compiler
  • The M-code interpreter (Appendix 1 of the Yellow Report)This appendix includes a table of the M-Code instructions and the Modula-2 source of the M-Code intepreter providing a high-level definition of the Lilith computer’s instruction set and architecture

The Personal Computer Lilith_1981
Read here the official report written by Wirth.