BERTY, Neural Net Simulator  (C) Copyright, Phil Tipping, 1999
---------------------------

Summary
-------
Berty is a basic neural network simulator using weighted cells.
It displays cell activity in realtime with moveable 'viewports' and 'eeg'
trace probes, with moveable stimulus regions.
It is not intended for the advanced ANN specialist (no learning methods or
complex maths!), but provides an arena for 'playing' with cells and studying
cell patterns and growth when subjected to stimuli.
Just set up a network, switch on and 'probe' around for activity.

Features
--------
Large Networks - Only limited by size of extended RAM.
High Speed     - Program written in machine code.
Realtime I/P   - Cell stimuli via key presses.
Graphical O/P  - 2D movable viewports, 'Eeg' traces.
Simple PC Spec - DOS-based, 80386 upwards.
3D Network     - Cells occupy 3D volume, so have physical 'neighbours'.
Ongoing Dev't  - Growth algorithms.


Minimum system requirements
---------------------------
386 processor, 640x480 vga display
200Kb conventional memory, 500Kb extended memory (XMS V3.00) 
DOS (tested on V6 & Windows 95 DOS, should run on V5, possibly earlier)

Windows 95 users:-
  Either Shutdown and Restart in MS-DOS Mode,
  Or run the program and let Windows create a MS-DOS shortcut for it.


Package contents
----------------
  README.TXT     this file.
  BERTYnnn.EXE   main program executable version nnn.
  DEMO*.BRN      demo files loadable by main program.
  STARTUP.BRN    initialisation file loaded at start-up.
  
Further details are available via online help: run program and enter 'h'.


----------------------------------------------------------------------------
Extracts from online help
-------------------------
Basic Operation
---------------
The 'brain' comprises a 3D grid defined by the BS (brain size) command.
Each grid location is defined by X,Y,Z coordinates and can hold a 'cell',
which is a very simple model of a neuron.

Each cell has an unlimited number of input & output connections (subject to
memory), a threshold value and a firing state.  Cells can be connected to any
other cell in the network, and each connection can be either excitory or
inhibitory.  A cell will 'fire' if the sum of excitory inputs (from other
firing cells) minus the sum of inhibitory inputs (from other firing cells)
equals or exceeds the cell's threshold value.

You can define cells (AC - add cell command) and connections (CC - connect
cell) as required, switch the simulator to 'online' mode, then press
'r' to run.

Viewports are 2D slices of variable size which can be centred on any X,Y,Z
brain coordinate, scrolled up/down, left/right, in/out, and zoomed.
Firing and non-firing cells are represented by different coloured blobs within
these viewports.

Stimulus keys can be pressed in online mode and will 'stimulate' (i.e. fire)
defined ranges of cells.

Eeg traces are derived from 3D rectangular volumes whose diagonally opposite
corners are defined by a pair of X,Y,Z coords.  The volume can be as small as a
single cell, or as large as the whole brain.  The trace shows the ratio of
firing cells to non-firing cells within the volume range.

Growth Algorithms
-----------------
The original design aim was to use the simulator as a vehicle for developing
'growth' algorithms for the neurons.  Rather than laboriously define a
large network of cells, the idea was to start with a single cell and let it
grow while the simulation was running.  This is why there is a concept of a
3D volume space in which cells can have physical as well as logical neighbours.

Performance
-----------
The two main design requirements were speed and brain size, so the program
is written in machine code and uses all available extended memory.

There is a compromise between simulation speed, and seeing as much activity
as possible in case something 'interesting' happens.
The slowest routines are the viewport displays; you can reduce these in size
and/or number, zoom in, or even delete them.  Alternatively you can reduce
the number of viewport 'updates' by varying the cycles-per-display value.
Similar options exist for the eeg traces.


Program Versions
----------------
This is a shareware program; the demo version is freely available and has the
same performance and most of the functionality of the full version, so you can
get a good idea of the program''s potential on your PC.

The following restrictions apply:-

 -Extended memory usage, brain size, no. of cells etc. are all limited.
 -The max number of ViewPorts, Eeg traces & Stimuli is reduced.
 -The simulator speed will be progressively slugged.
 -You can load initialisation files (.BRN files) but cannot nest or save them.


The registered full version gives the following benefits:-

 -The max brain size can be any value subject to the amount of RAM in your PC.
 -You can have as many ViewPorts, Eeg traces & Stimuli subject to the amount
  of space on the display.
 -There is no speed degradation.
 -You can nest LF commands in .BRN files.
 -You can save .BRN files, e.g. for resuming simulation at a later date.
 -Support & upgrades.

The full version costs 5 UK pounds and is available from:-

   Phil Tipping
   8, Malvern Rise
   HADFIELD
   Glossop
   Derbyshire
   UK
   SK13 1QW

The program will be registered in your name.  This will appear on screen when
the program is running, so please indicate the exact format you require,
e.g. Fred Bloggs,  Mr. F. Bloggs etc.

I can supply the program on floppy disc (free postage for UK only), or
preferably email it to you.

My email address is:  Phil@tipping.swinternet.co.uk
Any comments on either version are welcome.
----------------------------------------------------------------------------

And the name....
doesn't stand for anything - except that we have a cat called Berty who has no
fear of anything dangerous & is extremely reckless.
We've nicknamed him Berty Nobrain - seemed appropriate!


Version History
---------------
V1 Jan 27 1999
  Initial release.
V2 Feb 4  1999
  LF command within .brn files changed: V1 'chained', V2 'calls & returns'.
  OR command default changed: V1 set origin to 0, V2 displays current value.
  'Inspect/Edit/Load' filenames default to last-used 'input' filename.
  'Save' filenames default to last-used 'saved' filename.
  Single growth command 'g' fixed.
  Load & Edit available from within Inspect File.
  Demo6 modded & Demo7.brn added to demonstrate nesting.
  'Hz' counter overflow on fast PCs fixed.
  Cycles/Eeg & Cycles/Display counters increased from 16 to 32 bit.
  Default now allowed for DE: displays current editor program.
  Minor clarifications in online help.
