CoreLife is a variant of Corewar played on a 2 dimensional 100 × 100 grid, published by Brent Adams in 1993. Unlike Corewar, CoreLife contains a random element so the outcome can't be determined from the initial conditions.
The art of programming CoreLife warriors hasn't
advanced far. To date, most of the published warriors are imp guns,
PROT bombers or a combination of the two.
Simulator
CoreLife 1.0 (65K) by Brent Adams is a Shareware CoreLife emulator for DOS, with an integrated editor, debugger and core display.
CoreLife Warriors (8K) contains 8 warriors written by Jesse Chang.
Tutorials
The CoreLife Documentation is a guide to the language and interface of the CoreLife system.
The Corelife Addressing Examples by Jesse Chang is a short tutorial explaining the different addressing modes.
Quick Start Guide
To run a battle press F5, F4. Next enter one or more warrior names then select ‘randomize and load’. Finally press F3 then F7.
To edit a warrior press F4 twice. Next enter the warrior name and select yes. Use the cursor keys to move, F2 to edit a cell and F2 to accept the changes. To save a warrior press F4, F2.
Instruction Set
| Instruction | Description |
|---|---|
MOVE | copy the contents of the first argument to the second |
ADD | add the first argument to the second |
SUB | subtract the first argument from the second |
MOD | calculate second argument modulo the first |
MULT | multiply the first argument by the second |
AND | logical AND the first argument with the second |
NOT | logically invert the first argument |
OR | logically OR the first argument with the second |
RAND | set second argument to a random value bounded by the first |
DATA | causes an error if executed |
NOP | no-operation, do nothing |
JMP | transfer control to the first argument |
JMPnn | transfer control to the first argument if condition is true |
SPLIT | start a new thread at the first argument |
PROT | protect the first argument from the next write attempt |
RSTn | reset the selected flow designator in the first argument |
SETn | set the selected flow designator in the first argument |
For full details of the language used by CoreLife including the addressing modes, flow designators and jump conditions, check the CoreLife documentation.