Arena is a programming game created by Richard Brown and released as shareware for DOS in 1985. The aim of the game is to design and program a team of up to six robots which attempt to eliminate the opponent's team in a battle arena.
Specification
Robots have 10 design points which can be allocated to the
CPU, weapons and armour.
Programs are written in CASM
(Cyborg Assembly Language), maximum program length = 8 ×
CPU design points.
There are 26 registers :A
–:Z
. The following
commands and control registers are supported:
Command | Description |
---|---|
; | The remainder of this line is a comment |
NOP | Do nothing |
MOV <arg> | Move in direction <arg> |
GUN <arg> | Fire in direction <arg> |
RAD <arg> <arg> | Scan, first <arg> is direction, second is range |
MSG <str> | Display <str> on the screen |
SET <reg> <arg> | Set <reg> to <arg> |
ADD <reg> <val> | Add <val> to <reg> |
SUB <reg> <val> | Subtract <val> from <reg> |
MUL <reg> <val> | Multiply <reg> by <val> |
DIV <reg> <val> | Divide <reg> by <val> |
CMP <arg> <arg> | Set :C to the first <arg> minus the second |
JMP <addr> | Jump to <addr> |
JEQ <addr> | Jump to <addr> if :C = 0 |
JGT <addr> | Jump to <addr> if :C > 0 |
JLT <addr> | Jump to <addr> if :C < 0 |
DJZ <addr> <arg> | Jump to <addr> <arg> times |
JSR <addr> | Call a subroutine at <addr> |
RTS | Return from a subroutine |
END | End of program, jump to address 1 |
Register | Description |
---|---|
:C | Result of the last CMP command |
:D | Direction of the last MOV command |
:F | Direction of the last GUN command |
:G | A random number (0..7) |
:H | Damage sustained |
:K | Count for DJZ command |
:L | Limit for DJZ command |
:M | Maximum damage |
:P | Program counter |
:R | Range of the last object scanned |
:S | Type of the last object scanned (-3..1) |
:T | Direction of the last RAD command |
:X | Current x-coordinate (1..68) |
:Y | Current y-coordinate (1..20) |
Robots battle in a 68×20 arena. A robot is damaged every time
it's attacked or collides with something and destroyed when :H
(damaged sustained) reaches :M
(maximum damage).
The complete specification is available in the Arena manual.
Tutorials
The Arena manual includes a detailed description of CASM. See also the errata and instructions for the editor and lister.
The Arena Programmer's Hint Sheet contains a summary of the opcodes and registers.
Software
Arena was published as shareware for the PC, priced $10–$30. Registered users received a colour version, the Electric Gladiator newsletter and source code in Turbo Pascal. Versions were also announced for the Apple II, CP/M and Amiga.
- Arena 2.1 (5 Feb 1986) - arena21.zip, manual
The following robot programs are available:
