Operation: | |
Ingress 0: | |
Ingress 0': | |
Ingress 1: | |
Egress 0: | |
Egress 0': | |
Run-up Lever: |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 |
90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
This Analytical Engine is based on the designs of Charles Babbage Analytical Engine (designs produced in the 1830s). If it had been built, this mechanical machine/computer, would have been capable of executing programs: sets of instructions stored on punched cards. The analytical engine incorporated many of the key components of a computer from the electronic era (e.g. Vonn Neuman Processor Architecture). Effectively it includes an arithmetic logic unit (the mill), an integrated memory in the forms of key registers and a large store, a printer for outputing results and the ability to process instructions from punched cards and to control the execution flow in the form of sequencing, conditional branching and loops.
This emulator is designed for educational purposes. Note that there are a few differences between this emulator and the designs of the Analytical Engine. For instance, one key difference is the capacity of the store: the store for this online emulor has 100 different storage locations ranging from 00 to 99. In Charles Babbage designs, the plan was to have a store of 1,000 memory locations each containing a 50-digit number.
Find out more about his emulator on https://www.101computing.net/charles-babbages-analytical-engine-emulator/
The Analytical Engine was designed to accept set of instructions using punched cards, each punched card representing one instruction. Charles Babbage regrouped the different instructions into three main types of cards: Number Cards, Variable Carts and Operation Cards.
Opcode | Instruction | Example | Description |
N | Number | N1 5 | Used to store a given number (e.g. 5) in the store at a specific location (e.g. 1) |
L | Load | L2 | Load a value from the store, at a specified location (e.g. 2) to the Mill Ingress axis, leaving the store column unchanged. |
Z | Load | Z2 | Load a value from the store, at a specified location/column (e.g. 2) to the Mill Ingress axis, resetting the store column to 0. |
S | Save | S2 | Store the value currently in the Mill Egress axis to a given location/column in the Store. |
+ | Add | + | Add the values in the two Ingress Axes (ignoring the contents of the Primed Ingress Axis), and the result of this addition is stored in the Egress Axis. |
- | Subtract | - | Subtract the values in the two Ingress Axes (ignoring the contents of the Primed Ingress Axis), and the result of this subtraction is stored in the Egress Axis. |
x | Multiply | - | Multiply the values in the two Ingress Axes (ignoring the contents of the Primed Ingress Axis), and the result of this multiplication is stored in the Egress Axis. |
/ | Divide | / | The value in the first Ingress Axis is divided by the value in the second Ingress Axis. The quotient is placed on the Primed Egress Axis and the remainder on the Egress Axis. |
< | Step up | <6 | Step up (left right) by n digits in the Ingress Axis. e.g. <3 to multiply the Ingress value by 1,000. |
> | Step down | >6 | Step down (shift right) by n digits in the Ingress Axis. e.g. >3 to divide the Ingress value by 1,000. |
CB+ | Back Always | CB+7 | To skip backward (and repeat) a given number of cards cards in the reader. |
CB? | Back only if run-up lever is set | CB?7 | To skip backward (and repeat) a given number of cards cards in the reader if run-up lever is set. |
CF+ | Forward Always | CF+7 | To skip forward a given number of cards cards in the reader. |
CF? | Forward only if run-up lever is set | CF?7 | To skip forward a given number of cards cards in the reader if run-up lever is set. |
P | P | Print the value on the mill axis that the most recent operation most recently modified (e.g. the Mill Egress axis after an arithmetic operation, the Ingress axis after a L instruction, etc.). | |
B | Bell | B | Ring the bell to get the attention of the engine attendant. |
H | Halt | H | Stop the engine. Stop the execution of the program. |