This is a work in progress, not just a mod concept.
The basic concept involves 4 different types of blocks.
(1) The Mem-block
(2) The Read Controller - When powered performs a read operation based on states of connected mem-blocks.
(3) The Write Controller - When powered performs a write operation based on states of connect mem-blocks.
(4) Erasure Controller - Optional, when placed next to a Read or a Write controller and powered it will zero out attached memory.
Key R Read Controller
A/O Address Input/Read Output
D Data (Write) Input
W Write Controller
E Erase Controller
The above image shows 8 memblocks (Texture pending) with attached Read/Write/Erase Controllers.
This particular setup would allow for a 4 bit address space, with each item being 4 bits wide. (An 8 block wide system has a buswidth of 4)
04 bit address x 04 bit output (nibble) = 16 'nibbles' = 8 bytes = 64 bits.
However the system is also designed to work in configurations that are 16 or 32 blocks wide (8 bit and 16 bit respectively)
08 bit address x 08 bit output (byte) = 256 bytes = 2048 bits
16 bit address x 16 bit output (short) = 65536 shorts = 128kB (kilobyte = 1024 bytes) = 1mb (megabit = 2^20 bits)
In order for a controller block to be placed, the mem-blocks must already be in place (in a row of 8, 16 or 32). An erasure block is optional and can be placed next to either the read or the write controller. An erasure block requires a pre-existing memblock/controllerblock set in order to be placed successfully.
The initial release will simply be a RAM setup, ideal for uses like CPUs or button combination lock doors (Pressing buttons in sequence).
However the later releases will allow for it to act as an actual input or output to/from minecraft. This allows for even more uses such as loading ROM from a file in your minecraft folder.
The above image shows suggested wiring configuration.
When the Read Controller block receives power, it will read the address bit by bit from every second memblock (Starting with the one adjacent to it, LSB first) After this, it will power each address block with the data from the required memory. (For this reason, it is best to isolate the address inputs as shown in the version below, the version above supplies the Write Data from below instead of the Address from below).
When the Write Controller block receives power, it will read the "WriteData" from every second attached memblock, starting with the one adjacent to it (MSB first). Then it will read the address from every other memblock, MSB first.
Using this system, looking at it with the ReadController on your left, the address is sent in every odd block Least Significant bit first, with the data output the same way. Every even block is then used LSB first for feeding in Write Data. Like this:
Here's another image showing the 8bit version of the MemBlock, made the same way as the ones above only this time with the address going in under the blocks and the write data coming in from above.
This will be much easier to explain with a video, which I will make by tomorrow when the initial version of the mod is ready for a public preview.
MemBlock is fully ModLoader compatible, and a multiplayer version will follow within a week or so... If there's public support.
This mod is mainly designed to help people who build CPUs or similar systems where 128 bytes of RAM ends up looking like a football field. There are some applications that this system does not lend itself as a replacement for (Non addressable RAM, for example).
Hopefully this mod, along with my upcoming Video Display mod, enables MOAR impressive creations by talented people. Who wants to play minecraft while they play minecraft? Anyone?
I really like this mod idea. I mean things like computercraft already exist, but it does everything for you. Taking the craft out of minecraft. This way we can design systems to our own liking. Nice job.
Is this compatible with redpower? That would rule. It also has a computer, but again does too much in one block.
Edit: I didn't realize how old this was. Probably not active anymore. oops.