SSEM (1948), a von-Neumann computer, from United Kingdom, used the world’s first random-access memory called Williams or Williams-Kilburn tube. It was bit-controlled memory, i.e. the smallest unit was a bit.
The base device of the memory was actually a standard Cathode-Ray-Tube (CRT). Electron beams, controlled by magnetic fields, hit a phosphorescent surface of the vacuum tube and as they “jump” inside, they create a glow which can be seen with naked eye. What Williams invented was the way how to permanently keep a “bit” stored in the tube, by so-called “anticipation pulse method”. When a charged electron hits the surface, some charge is leaked from the surface, which then can be “scanned” (recognized) which then was re-inforced back-in the tube. This way the bit could “shine” permanently, until switched “off” manually. It’s true - bits could be switched off by switches on the machine.
SSEM memory has 32 memory cells (called words, in emuStudio called “rows”). Each cell has size of 32 bits (4 bytes, even though the word “byte” was formed later). The memory could contain instructions or data (hence von-Neumann computer). Each SSEM instruction perfectly fits in a single memory cell.
The bit representation of a memory cell is reversed. For example, value
3, in common personal computers is represented as
011, but in SSEM memory it’s represented as
The structure of a memory cell is as follows:
LLLLL denote a “line”, which was interpreted as memory “address” - index of a memory cell. It was used as instruction operand. Bits
III specify the instruction opcode (3 bits are enough for 7 instructions used by the computer). The rest of bits are unused, and thus were often used as data store.
The memory window looks as follows:
|1||Open SSEM binary image into memory (files compiled by SSEM compiler with extension |
|2||Dump memory into a file (binary |
|4||Decomposed instruction bits: line bits|
|5||Decomposed instruction bits: instruction opcode|
|6||Hexadecimal representation of the memory “row” (32 bits), correctly reversed|
|7||Decimal representation of the memory “row”, correctly reversed|
|8||Character string made of combining 4x 8 bits of memory “row”, not reversed|
It is possible to edit the bit cells manually: select the bit, double-click. The only accepted value is either 1 or 0. With a DELETE key, the bit is cleared to 0.
It is also possible to edit hexadecimal, decimal or character string representation. Double-click on such cell and enter the value in particular format. For hexadecimal and decimal formats, the accepted values will be bit-reversed.
Navigating cells is possible also with arrow keys.