Neural Network Simulation

Program: RMneural.z80

I remembered doing this, but very little about it! This must have been inspired by something I read, perhaps an article in Scientific American.

Having reviewed it, it seems there are 6 neurons in a 'network'. Neurons take the values '+' or '-'.  Why I chose those rather than '1' or' 0', I don't know. A 'memory' consists of a set of neuron settings, so in the example above, memory 1 is '++--++'. Three  such memories are stored in this neural network, the state of each neuron somehow being influenced by the states of the others, as a result of the memories stored.  The 'strength' of interconnection between each pair of neurons is calculated after the memories are entered and then displayed on the right.  In the set of memories shown above, neurons 1 and 5 always have the same setting as each other and  the calculated strength is '+3' to reflect this correlation. Neurons 1 and 4 by contrast always have opposite settings and the strength is therefore calculated as '-3'.  

The user is prompted to enter part of one memory and the program attempts to recover the full memory, e.g. entering '++    ' can only be memory 1 and the complete memory is then be recovered from the neural network, purely based on the strength of connections between the neurons. However, entering '+-    ' , which can only be memory 3, results in '+++-+-', which is incorrect, so, perhaps there's an error in my code, or the ability to store memories like this is limited. More invesigation needed...