Arena

Sometimes I manage to impress myself bigtime.

A while ago, I left a comment on Jimmy’s page on Robot War, about Arena, which is basically* Robot War for the PC. This morning I received an email from Core War fundi John Metcalf, saying that he’s never heard of Arena, and would like to know more.

So I thought about it for about half a cup of coffee, remembered which box it was most likely to be, retrieved the box from behind the Puma, and the disk I was looking for was about the tenth disk down (this was the lucky bit — there are about 200 disks in there I guess).

The key point here is that I last used these disks on my father’s PC (the one before the one before the one he has now — it was a 386 on one of those motherboards that still took a 287 coprocessor) back in the early nineties. Call it twenty years plus tax.

The fact that I can’t find a notebook battery that I had in my hand day before yesterday is not relevant to the story.

So then I had to fire up the third machine on my desktop**, click the KVM over, and copy the files to something my main machine can read.

Now I know for a fact that the vast majority of my readers (both of them) are suffering MEGO with a side of TMI. So here’s a cut line for you. It gets geeky on the other side.

* Bad pun. Should be assemblerly. You don’t get it. Don’t worry. I’ll explain it.

** Primary machine is a Windoze 2K box. #2 is my Linux box, and #3 is a 486 (or maybe an early Pentium) which mostly boots DOS (with Windows 3.1 if I really need to do that) and runs my Expro.

(no, those were footnotes. And only a bit geeky. Here’s the cutline)

The Joint Software Exchange

Back in the late eighties, Jean-Paul van Belle ran the Joint Software Exchange out of Fish Hoek. He had a fairly large collection (as you can see, Arena was #1249 in his catalogue) of shareware disks which he copied to floppies (yours, or supplied by him) for a nominal fee.  The Simtel / CICA / Walnut Creek CDROMs pretty much put an end to this era. But at the time I got maybe thirty or so disks from him. Good old 360k floppies.

So, on to the topic at hand. Arena.

Volume in drive B is JSE # 1249
Directory of B:\

AEDIT    COM        21,383 02-05-86   1:23p
AEDIT    DOC         4,240 08-24-85   8:02p
ALIST    COM        14,499 02-05-86   1:41p
ALIST    DOC         1,069 08-24-85   8:04p
AREAD    ME!           343 08-21-85   6:53p
ARENA    DOC        21,343 10-27-85   9:08p
ARENA    PRO         3,238 10-27-85   9:12p
CARENA   COM        35,043 02-05-86   1:53p
COLOR    BAT           479 08-21-85   6:42p
ERRATA   TXT           803 11-13-85   4:46p
MARENA   COM        35,004 02-05-86   1:48p
MOLE     LST           119 10-27-85   8:47p
MONO     BAT           466 08-21-85   6:43p
PEEKER   LST           335 10-27-85   8:47p
RADAR    LST           385 10-27-85   8:47p
TARGET   LST           190 10-27-85   8:48p
JSE      COM         2,015 02-29-88  12:00a
BROWSE   COM           958 01-02-86   3:54a
JSE      TXT         1,924 02-29-88  12:00a
JSDISK   HLP         4,701 01-14-88   2:15p
ARENA V  2.1             0 12-22-87  12:21a
       21 file(s)        148,537 bytes
                         202,752 bytes free

If you want to download this, look here.

From ARENA.DOC

HISTORY

Arena is a  simultion [sic] of gladiatorial  combat in the  future, where the
combatants are robots programmed  by their “Controllers.”  Fighting  up to
six to  a side,  the winning  robots are  those who  still stand after the
smoke clears.  Robots are given intelligence, weapons, and armor to have a
fighting chance of survival.  Your position, luckily for you, is of one of
the controllers.  You are  given a factory where  you can build up  to six
robots, program them, and send them to the arena to fight the creations of
your opponent.

So far, so good. Sounds like Robot War. However

INTRODUCTION

ARENA is written to be both an enjoyable game and an introduction  into
the  world  of  assembly  language.   The  language  is  based  on Intel’s
Mnemonics, and thus is ideal for learning Z80, 808x, and 80×86.  It is not
a  complete  set  (missing  are  stack  operations,  interrupts,   logical
operators,  and  other  processor  specific  commands).  Version 3 will be
geared after the 8088/8086 processor, to  help all those with IBM PCs  and
compatibles.  This program  is designed to  run on the  above machine, and
any machine that uses MS-DOS.  It  was written on a Leading Edge  FXD, and
should run on IBM, COMPAQ, Sanyo, Corona, etc.

Where the Robot War language is BASIC-like, Arena is based on Intel assembler. Jimmy says that “The [Robot War] programming language you work with is extremely primitive even by the standard of BASIC, with just a bare few commands” — well, here’s RADAR from Arena :

RADAR.CYB
Brain: 3
Cannon: 3
Hull (Armor): 4

1:   GUN   :G
2:   RAD   :G    5  ;scan
3:   CMP   :S   -1  ;enemy?
4:   JEQ    6
5:   JMP    1
6:   MOV   :T
7:   GUN   :T
8:   SUB   :T    1
9:   GUN   :T
10:  ADD   :T    2
11:  GUN   :T
12:  SUB   :T    2
13:  GUN   :T
14:  END

And this is pretty much where I gave up playing with Arena. x86 assembler is a necessary evil, I had to commit some as part of my lectures, but I’m an assembler geek of the 6809 / 68000 school and that’s not going to change.