Mark A. Durham : Introduction to Redcode

Rice University, Houston, TX Thu, 14 Nov 1991 09:45:13 GMT I. Preface - Reader Beware! II. Notation III. MARS Peculiarities IV. Address Modes V. Instruction Set

I. Preface - Reader Beware!

The name "Core War" arguably can be claimed as public domain. Thus, any program can pass itself off as an implementation of Core War. Ideally, one would like to write a Redcode program on one system and know that it will run in exactly the same manner on every other system. Alas, this is not the case. Basically, Core War systems fall under one of four catagories: Non-ICWS, ICWS'86, ICWS'88, or Extended. Non-ICWS systems are usually a variant of Core War as described by A. K. Dewdney in his "Computer Recreations" articles appearing in Scientific American. ICWS'86 and ICWS'88 systems conform to the standards set out by the International Core War Society in their standards of 1986 and 1988, respectively. Extended systems generally support ICWS'86, ICWS'88, and proprietary extensions to those standards. I will discuss frequently common extensions as if they were available on all Extended systems (which they most certainly are not). I will not describe Non-ICWS systems in this article. Most Non- ICWS systems will be easily understood if you understand the systems described in this article however. Although called "standards", ICWS'86 and ICWS'88 (to a lesser extent) both suffer from ambiguities and extra-standard issues which I will try to address. This is where the reader should beware. Because almost any interpretation of the standard(s) is as valid as any other, I naturally prefer MY interpretation. I will try to point out other common interpretations when ambiguities arise though, and I will clearly indicate what is interpretation (mine or otherwise) as such. You have been warned!

II. Notation

"86:" will indicate an ICWS'86 feature. "88:" will indicate an ICWS'88 feature. "X:" will indicate an Extended feature. "Durham:" will indicate my biased interpretation. "Other:" will indicate interpretations adhered to by others. "Commentary:" is me explaining what I am doing and why. "Editorial:" is me railing for or against certain usages. Items without colon-suffixed prefaces can be considered universal. Redcode consists of assembly language instructions of the form