CoreLife: Sailboat

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

InstructionDescription
MOVEcopy the contents of the first argument to the second
ADDadd the first argument to the second
SUBsubtract the first argument from the second
MODcalculate second argument modulo the first
MULTmultiply the first argument by the second
ANDlogical AND the first argument with the second
NOTlogically invert the first argument
ORlogically OR the first argument with the second
RANDset second argument to a random value bounded by the first
DATAcauses an error if executed
NOPno-operation, do nothing
JMPtransfer control to the first argument
JMPnntransfer control to the first argument if condition is true
SPLITstart a new thread at the first argument
PROTprotect the first argument from the next write attempt
RSTnreset the selected flow designator in the first argument
SETnset 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.

CoreLife: Curtain CoreLife: Snow