aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2024-02-29 02:29:14 +0100
committerPaul Oliver <contact@pauloliver.dev>2024-02-29 02:29:14 +0100
commit8998e2eb104c0965b0c9f190705b70abc16b62d7 (patch)
treeeba03070b21b85b736458e591886b6f38330d39b /include
parent80c0e6579302a0df9cee4899c52742b1fde582f9 (diff)
Removed information EAT-ing.
[#16] Allowing organisms to EAT information is causing huge reefs to form too early and occupy most memory space. Here we replace EATB/F with the old shift left/right. This is done to compare simulation stability.
Diffstat (limited to 'include')
-rw-r--r--include/evolver.h3
-rw-r--r--include/instset.h6
-rw-r--r--include/process.h5
3 files changed, 5 insertions, 9 deletions
diff --git a/include/evolver.h b/include/evolver.h
index b2ead10..457cd9a 100644
--- a/include/evolver.h
+++ b/include/evolver.h
@@ -4,8 +4,7 @@
*
* This module controls all random events in Salis. At its heart lies a
* XOR-Shift pseudo-random number generator with 128 bits of state. It controls
-* cosmic rays and rises simulation entropy whenever organisms 'eat'
-* information.
+* cosmic rays and slowly rises simulation entropy.
*/
#ifndef SALIS_EVOLVER_H
diff --git a/include/instset.h b/include/instset.h
index ab7bab0..eeb4600 100644
--- a/include/instset.h
+++ b/include/instset.h
@@ -32,6 +32,8 @@ enum {
SALIS_INST SPLT, /**< $ Split child memory block */
SALIS_INST INCN, /**< ^ Increment register */
SALIS_INST DECN, /**< v Decrement register */
+ SALIS_INST SHFL, /**< < Shift-left register */
+ SALIS_INST SHFR, /**< > Shift-right register */
SALIS_INST ZERO, /**< 0 Zero out register */
SALIS_INST UNIT, /**< 1 Place 1 on register */
SALIS_INST NOTN, /**< ! Negation operator */
@@ -45,9 +47,7 @@ enum {
SALIS_INST SEND, /**< S Send instruction to common pipe */
SALIS_INST RECV, /**< R Receive instruction from common pipe */
SALIS_INST PSHN, /**< # Push value to stack */
- SALIS_INST POPN, /**< ~ Pop value from stack */
- SALIS_INST EATB, /**< < Eat backwards */
- SALIS_INST EATF /**< > Eat forward */
+ SALIS_INST POPN /**< ~ Pop value from stack */
};
/** Determine if an unsigned integer contains a valid instruction.
diff --git a/include/process.h b/include/process.h
index 3723ad6..bd46462 100644
--- a/include/process.h
+++ b/include/process.h
@@ -5,8 +5,7 @@
* This module allows access to Salis processes, or procs. Procs are the actual
* organisms in the simulation. They consist of a virtual CPU with 4 registers
* and a stack of 8. The instruction pointer (IP) and seeker pointer (SP)
-* coordinate the execution of all instructions. Organisms get rewarded or
-* punished, depending on certain conditions.
+* coordinate the execution of all instructions.
*/
#ifndef SALIS_PROCESS_H
@@ -21,8 +20,6 @@ struct Process
SALIS_PROC_ELEMENT uint32 mb1s;
SALIS_PROC_ELEMENT uint32 mb2a;
SALIS_PROC_ELEMENT uint32 mb2s;
- SALIS_PROC_ELEMENT uint32 reward;
- SALIS_PROC_ELEMENT uint32 punish;
SALIS_PROC_ELEMENT uint32 ip;
SALIS_PROC_ELEMENT uint32 sp;
SALIS_PROC_ELEMENT uint32 rax;