Examine Organism Dialog
When you double-click on an organism, this dialog will appear. This dialog shows the inner details of an organism.
The ORGANISM area of this dialog displays stuff common to the entire organism. The CELL area displays the stuff unique to that cell. To examine different cells, click on the cell you want to view.
ORGANISM
This section shows various details about the organism. The genetic program (which is shared among all the cells) is shown in the text control. The highlighted instruction is where the selected cell is currently executing.
- Organism ID: Every organism is assigned a unique 64-bit ID number. This
ID increments as organisms are created. This field displays this organisms
unique ID.
- Parent 1: ID value for the first parent (and only parent if this organism
was created asexually).
- Parent 2: ID value for the second parent (if this organism
was created sexually). It will be blank if this organism was
created asexually.
- Generation The generation of this organism all the way back to the first
organism. We compute this field based on the parents 'generation':
generation = MAX(parent1.generation, parent2.generation) + 1
- # of cells: The number of cells in this organism.
- # of living children: number of organism that have this organism as a parent.
- Age: The number of simulation steps this organism has survived through.
- Energy: How much energy does this organism have? This excludes the amount of energy
that went into stack elements.
- Strain #: This is the strain number for the whole organism. The color of the organism
is also a clue to its strain.
CELL
This section shows the state of the cell you have selected in the display window. Use your mouse to select different cells. The current cell is highlighted with a blue rectangle.These fields comprise the "execution context". Each cell has its own copy of these fields:
- Code Block: This specifies the code block currently being executed by
this cell. Code block numbers begin at 0. Code block zero is normally labeled "main:", and
subsequent code blocks are labeled "row1, row2, row3, ...".
- Program Counter: This is the instruction offset within the code block. This counter
begins at 0. If program counter refers to the last instruction plus 1, then this
cell has just reached the end of a code block.
- R0 - R9: General Purpose registers. Can be set with the instructions
Rn!, R0!, R1!, R2!, ... and the cell can fetch a register value
with the instructions Rn, R0, R1, R2, ....
- Mood: This is like a general purpose register. The cell can set this field by
using the MOOD! instruction. Other cells can query our mood by using the
MOOD instruction.
- Location: The grid location of this cell.
- Message: Like a general purpose register except other cells can set this field by
using the SEND and BROADCAST instructions. This cell can fetch the value
of this field by using the RECV instruction.
- Cell: The cell number within the organism.
- Data Stack: Like the Forth programming language, this stack is used to
keep track of data items that the cell is using for computation.
The top of this list box represents the top of the stack.
- Call Stack: Like the Forth programming language, this stack
contains the call history. As code blocks are entered/exited this stack grows
The top of this list box represents the top of the stack.and shrinks.
BUTTONS:
- Vision Data: This button will pop up another dialog showing
the vision data that the KFORTH instructions LOOK, WHERE, WHAT, NEAREST, FARTHEST.
See vision dialog for more information.
- Step: This button will simulate the universe for 1 step. The current
instruction about to execute is highlighted. In this way
you can observe the inner workings of a genetic program.
(Function key: F11).
- Step Over: This button will simulate the universe for 1 step, but step
over any subroutine calls. (Function key: F10).
- Run: Begin running the program (actually this begins simulating the whole
universe). Stop when the cell dies, or when a breakpoint is reached.
(Function key: F5).
- Breakpoint: Insert a breakpoint at the current cursor position. Just
select an instruction and press this button. A breakpoint will be added (or removed).
A breakpoint will show up as a vertical bar '|' next to the instruction.
Breakpoints only apply to the current cell being debugged. When you switch cells, the breakpoints are retained, and will be applied to the new cell. (Function key: F9).
- Clear Breakpoints: All breakpoints will be cleared.
(Function key: F8).
- Instructions: This button will pop up a list of KFORTH instructions
for your reference. Whatever instruction the cursor is pointing to will be displayed
in the KFORTH Instruction dialog.
XY Organisms
If the organism was created using the special "xy*99" strings, then the text XY will appear in the lower right corner of the dialog. Like so,
XY organisms can only reproduce by fertilizing spores that were created by other organisms (not itself). This means sexual reproduction only. Asexual reproduction is not possible for these types of organisms. See the section on XY Simulations for more information on how to create such organisms.
Vision Data Dialog
Pressing the [Vision Data >>] button will display the following dialog. This dialog shows all the current vision data that will be used by the KFORTH instructions pertaining to vision (LOOK, WHAT, WHERE, NEAREST, FARTHEST).
See vision dialog for more information.
KFORTH Instruction Help Dialog
If you click on [Instructions] the following pop-up dialog will appear. This is for reference only.