=== Hello World ========================================================
'Core Wars' is a battle between two programs inside your computer.
The language used to write the programs closely resembles an assembler
language with a set of 10 instructions.
Our Version 2.1E for the Atari ST is implemented according to the
Core War Standards as of May 21,1986.
The Core War Standards are available at the following adress:
8619 Wassall Street
Please enclose a 4-dollar-bill (...oops...)
Several articles dealing with Core Wars have been published in
In the german edition of 'Scentific American' articels about Core
Wars were published at the following dates: 8/84, 5/85 and 4/87.
Normally the original article is published one or two month before
it is published in Germany.
=== The following files are included with our version 2.1E =============
MARS.ARC This file contains our MARS program together
with BROWSER, an useful accesory, and an EDITOR
BROWSE ACC 10056 which can be used to write your own battle
EDITOR PRG 29250 programs.
MARS PRG 32129
MARS RSC 5440
EDITOR TXT 1741
MARS TXT 8312
These are ready-to-load battle programs.
COMMANDO RED 174
FACTA RED 158
KNIRPS RED 22
MICE RED 200
MIDGET RED 109
MINID RED 52
NOTHING RED 36
PARASITE RED 139
ZWILLING RED 315
COMMAND1 RED 333
CHANG1 RED 234
LOCUST RED 149
=== MARS operating instructions =====================================
== Dropdown-Menu Select ==
...lets you select the two battle programs, which must have .RED
as file name extension. The file selector box is shown twice, one
for each program. Battle programs should not exceed a length of
10000 bytes of source code including comments. So, if you write very long
programs, keep your comments short, else the program won't load.
Each program is now moved to a random position in memory, and it is
made sure that they don't overlap. If MARS find an illegal instruction
it prints an error message and exits, otherwise execution of the
'battle' starts immediately.
...lets you change some default values such as:
Core Size sets the size of the 'battle field'
Instructions determines the number of instructions executed
before the battle stops. A value of e.g. 1000
means that each of the two programs executes
Repeat lets you repeat the battle between the same
programs any number of times without you
having to select the programs each time.
...invokes an editor of your choice. Simply rename your own editor
to EDITOR.PRG and use it from MARS. We hope that this feature
works with most editors, but of course one can never be sure...
...shows the result of the most recent battle.
== Dropdown-Menu Output ==
...lets you watch the battle by printing each instruction currently
being executed. A single line always shows two instructions, one of
each program. Pushing any key causes a break in program execution,
pressing the key again make the battle continue. Push the ESC-key
to terminate the battle.
...opens a window representing the battle field in which the upper
left corner is the lowest adress and the bottom right corner the
highest adress. Inside this window, the first and second program
are represented by checkered squares and grey squares, respectively.
With each instruction of either program, a checkered or grey square
appears at its corresponding position. Additionally, after execution
of a MOV instruction, a white square appears at the destination
adress of the MOV.
...lets you save all printed text output to a disc file named
COREWARS.REC. This feature allows for a closer examination of
the battle after the 'battle is over', but also slows down
execution speed considerably.
== Dropdown-Menu MODE ==
This mode only works while the TEXT window is open. In that case,
each program executes one instruction, and then MARS waits for you
to push a key. This repeats every time you push the space bar.
Pushing any other key turns off single step mode.
For debugging purposes it can sometimes be useful to just run a
single program instead of two. Voila, here you go...
If this mode is active the first program is loaded at the lowest
adress in memory, while the second program is moved to a random
position. Again, this is sometimes useful for debugging or testing
If this mode is selected and the interpreter comes across an illegal
adressing mode or operand, it prints a warning message as usual, but
continues to read the rest of the source. This makes it possible to
make your 'warrior' behave in ways different from those provided by
the regular instruction set. However, try to avoid this programming
style, since the programms using this feature might not behave the
same on all versions of 'Core Wars'.
...shows you the REDCODE instruction set and syntax.
== ESC-key ======================================================
Anytime you wish to interrupt an ongoing battle, simply push the
Although our version of CORE WARS is otherwise close to perfect
( isn't it ?!?) , it does not provide for arithmetic operations
on labels and operands. Sorry, but you'll just have to live with
=== Additional programs ==============================================
In the MARS directory you find an editor named EDITOR.PRG. It was written
by U. Romahn and is a public domain program. Unfortunately for you
ladies and gentlemen out there, this is a German program and therefore
the messages are printed in German. File EDITOR.TXT contains some
operating instructions to help you with this problem.
Another excellent little accessory, BROWSE.ACC, can be used to have a
look at text files. It shows all characters including line feeds and
carriage return. Push the HELP key for more information.
A note on labels:
While in executing mode, MARS tries to find a label named START
and begins execution at this position. If there is no such label
execution begins at the first program line.