The Analytical Engine

Java Applet Emulator


Due to security and compatibility problems, fewer and fewer modern Web browsers support Java applets. Most users should use the Web Emulator instead. It is completely compatible with the Java emulator described here.

The document explains the operation of an Analytical Engine emulator which runs within your Web browser as a Java applet. As long as your browser supports Java, you can run Analytical Engine simulations with no additional software.

Main Window

Analyst's Program Panel

This panel allows the analyst to submit chains of cards to the attendant for processing by the Engine, and allows the cards to be easily modified. You can either type the cards into the text area or, more conveniently, load them by entering an Internet URL or file name on your local machine in the field to the right of the “Load” button, and then pressing that button. (If your browser does not permit Java applets to read files on your machine [many do not, for well-justified security reasons], you won't be able to load cards from a file. But you still should be able to edit the cards with another application, then copy and paste them into the text area in the panel.)

Once the cards are loaded, or after you've modified them by editing the text area, press the “Submit” button to deliver them to the attendant to mount on the machine. The attendant checks your cards for obvious errors, processes any Attendant Request cards present in your submission and, if all is well, places the cards in the Card Reader. If the attendant espies one or more errors, a description thereof will be written in in the Attendant's Log panel and the card chain not mounted.

Usually annotations, both by the analyst and added by the attendant in the process of preparing the cards for the machine, are preserved in the cards mounted on the machine. To discard all annotations, uncheck the “Keep comments” box before submitting the cards. The “Clear” button erases the text area; use this to discard existing cards before pasting new cards from your text editor.

In order to prevent a rogue Java applet from destroying files on your computer, Java applets are not (or at least should not) be allowed to write files on your computer. As a result, there is no way to save the cards from the text area into a file. You can work around this restriction either by editing with a different application, then clearing and pasting the cards into the program text area for each run or by copying the cards in the text area to the clipboard, then pasting into another application from which you save them to a file.

Important: Modifying the contents of the Analyst's Program text area does not automatically update the cards loaded on the Card Reader. After editing the program cards, you must press the “Submit” button to deliver them to the attendant for examination and mounting on the Engine.

Printer Panel

The Printer panel shows all items written on the Printing Apparatus by “P” cards, as modified and expanded by various Attendant Request cards pertaining to the presentation of numbers and addition of annotations to the results. The Printer panel appends results from successive runs of the Engine to a continuous scroll; to clear the scroll, press “Erase”.

Attendant's Log Panel

The Attendant's Log shows messages from the Attendant to the analyst. If an error is found in a chain of cards submitted from the Analyst's Program panel, it will be reported here. If a trace of the computation is requested, the attendant writes the trace information here. To clear the Attendant's Log panel, press the “Erase” button.


This panel controls the operation of the Engine. To clear the Mill and Store to their start-up conditions, press the “Reset” button. After a calculation is successfully submitted, you can cause the Engine to process it by pressing the “Start” button; while a calculation is in progress, the legend on the “Start” button changes to “Stop” and can be used to halt the Engine at any point. The “Step” button amounts to one turn of the crank—the Engine processes the card currently in the reader, advances to the next card, and halts. “Step” is useful in conjunction with the Annunciator Panel when you want to examine a calculation in detail. When “Panel” is checked, the Annunciator Panel (see below) is shown; this allows you to watch the Mill, Card Reader, and Store in operation. “Trace” causes the Attendant to write a trace of the calculation in the Attendant's Log panel, without the need to include a “T1” card in the card chain. When “Animate” is checked, pressing “Start” causes the Engine to process about one card per second, showing the results on the Annunciator Panel, if displayed.

The Annunciator Panel

The Annunciator Panel appears when you check the “Panel” item in the Controls section of the main window. It represents the digits visible on the Mill and Store columns and the cards being turned by the Card Reader which form the basis of the trace written by the Attendant, if requested. By displaying this panel, you can watch the Engine process the cards for your calculation. The Annunciator Panel is updated only sporadically unless the “Animate” box is checked in the Controls, or you are cranking individual cards through with the “Step” button; when the Engine is running at normal speed, continually updating this window would make the simulation intolerably slow.

The topmost section of the window shows the current state of the Mill, with the first line indicating the current arithmetic operation, whether the run up lever is set, and whether the Engine is running (processing cards automatically) or halted, either for manual operation or due to an error or reaching the end of a card chain. The lines that follow show the values currently in the input and output axes of the Mill. Note that since loading the second argument of an arithmetic operator causes the Mill to perform the calculation, as soon as a value is loaded into Ingress axis 1, the results will appear in the Egress Axis and, if a multiplication or division, in the Primed Egress Axis.

The Card Reader display shows the current card on the reader, about to be acted on by the Engine highlighted in yellow, and adjacent cards in yellow on blue. Each time you press the “Step” button the highlighted card is acted on and the next card moved onto the reader.

The Store display shows all columns of the store into which values have been placed; the column which received the most recent value is shown in bold face type. If more columns have been used that fit in the window, you can resize the window to make more room to display the Store.

Run the Java Applet Emulator


by John Walker