Class Lilith

  extended by ch.claudio.lilith.Lilith

public class Lilith
extends java.lang.Object

An emulator for the Lilith workstation which was developed in the late 1970s at the ETH by a team led by Niklaus Wirth.

Note: This emulator does not try to reproduce the exakt timing of the Lilith. Not only might it be faster or slower depending on your hardware but also the execution time ratio of two instructions will be different than on the Lilith, i.e. where on a real Lilith instruction A might take the same time as instruction B this emulator might hav instrucion A be faster or slower than B.

TODO: Emulate the microinstructions or adjust macroinstruction timing according to their implementation via microinstructions. The original Lilith had variable time clock. The basic clock cycle for a microinstruction was 150ns. It was stretched to 225ns when instruction decoding was necessary and could be halted if the multi-ported memory had to serve other requests[1, chapter 5.6]. It is guessed that on average the Lilith would execute somewhere between 0.7 to 1.3 millions instructions per second[1, chapter 6.6].

According to [2] the average rotational positioning time of the drive was 8.33 ms (corresponding to 3600 rpm) and the average head positioning time about 65 ms. The sector transfer time is 0.333ms which means - if my calculations are right - that data is transferred at 6'144'000 bit/s or 768'000 byte/s.

  1. Diss. ETH No. 7646: "Lilith: A Workstation Computer for Modula-2" by Rischard Stanley Ohran, Zürich 1984
  2. Diss. ETH No. 7346: "Medos-2; A Modula-2 Oriented Operating System for the Personal Computer Lilith" by Svend Erik Knudsen, Zürich 1983

Claudio Nieder

Copyright (C) 2006 Claudio Nieder <>, CH-8610 Uster

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Constructor Summary
Method Summary
static void main(java.lang.String[] args)
          Print license.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public Lilith()
Method Detail


public static void main(java.lang.String[] args)
Print license.

args - ignored