The Memory Bank provides a convenient place for the storage of data, as well as the possibility of many other functions.
This article (still under construction) discusses using multiple memory banks to store larger amounts of data. This is most commonly needed in computer circuits.
There are two basic types of memory; Read/Write Memory and Read Only Memory. These are usually abbreviated with RAM and ROM, even though 'RAM' actually means Random Access Memory and does not necessarily indicate the memory is writable. To avoid confusion, I will stick with the common parlance as above.
Building ROM is simpler that RAM because you don't need to access the write signal (through the rear of the chip). This article will start with detailing ROM circuits.
A ROM stores data for later recall but this data must be placed in the ROM "by hand". That means either by the character in-game or through editing the xml file. That process is not discussed in this article.
One memory 'cell' or a single Bank (8 bits or 256 locations):
A typical row of cells (12 bits or 4,096 locations):
This link is a simpler, 12 bit address array and is the basis for the full array. Since SC 'analog' signals are 4 bits each, the 12 bit array can accept 3 analog inputs.
To make the full 16 bit array, I simply duplicated this design 15 more times.
Here is the full array. This is a 64K-byte ROM and uses over 1,000 memory banks. Only 512 of these hold the data and the rest are for interfacing with the rest of the circuit and serve other functions. Even so, it would indeed take a long time to program 512 banks by hand!
Here's a picture of the 64K byte array:
RAM or R/W memory
The links above are to Box.net files. Box is more secure and more respectful of my privacy than dropbox, so I prefer them. If you have trouble getting the files, let me know and I'll copy them to droopbox...