• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

config/H17-Jan-2003-219182

doc/H07-May-2022-2,0751,904

src/H03-May-2022-20,64316,099

warriors/H17-Jan-2003-357325

AUTHORSH A D24-Dec-2000655 1813

CONTRIBH A D18-Aug-20001.9 KiB3629

COPYINGH A D19-Aug-200017.6 KiB340281

ChangeLogH A D24-Dec-2000723 2216

READMEH A D31-Aug-20008.1 KiB176146

README

1README for pMARS version 0.9.0 - portable corewar system with ICWS'94 extensions
2
3____________________
4What is Core War?
5
6    Core War is a game in which two or more virus-like programs fight against
7    each other in a simulated memory space or core. Core War programs are
8    written in an assembly language called Redcode which is interpreted by a
9    Core War simulator or MARS (Memory Array Redcode Simulator). The object of
10    the game is to prevent the other program(s) from executing. For more
11    information about Core War check out the usenet newsgroup rec.games.corewar
12    and its FAQ list ftp://rtfm.mit.edu/pub/usenet/games/corewar-faq
13    or go to http://www.koth.org/.
14
15____________________
16pMARS highlights
17
18    * portable, run it on your Mac at home or VAX at work
19    * free and comes with source
20    * core displays for DOS, Mac and UNIX
21    * implements a new redcode dialect, ICWS'94, while remaining compatible
22      with ICWS'88
23    * powerful redcode extensions: multi-line EQUates, FOR/ROF text repetition
24    * one of the fastest simulators written in a high level language
25    * full-featured, programmable debugger
26    * runs the automated tournament "KotH" at http://www.koth.org and
27      http://www.ecst.csuchico.edu/~pizza/koth/ and the annual ICWS tournaments
28
29____________________
30Documentation
31
32    pmars.6 is the nroff-source for UNIX man pages. You can install it in
33    /usr/man/man6 for use with the UNIX "man" command or format it with nroff
34    -man. pmars.doc contains man pages without control characters that have
35    been formatted for printing.
36
37    doc/primer.94 and doc/primer.cdb contain short introductions to the ICWS'94
38    draft and the cdb debugger respectively. redcode.ref is a quick reference to
39    the redcode syntax supported by pMARS. CONTRIB has guidelines for porting
40    pMARS to new platforms and contributing new display code.
41
42____________________
43Compiling the source
44
45    There are a number of C preprocessor symbols that control which version
46    of pMARS is compiled. To enable an option, include -DSYMBOLNAME in CFLAGS
47    of the makefile or uncomment the relevant section in config.h.
48
49    GRAPHX
50        This option enables a platform-specific graphical core display.
51
52    SERVER
53        Disables the debugger for a non-interactive tournament version. The
54        pMARS program that runs the KotH email tournaments is compiled with
55        SERVER enabled.
56
57    EXT94
58        Enables the experimental opcodes SEQ, SNE and NOP, as well as the
59        A-field relative addressing modes *, {, and }. This option should
60        usually be enabled. EXT94 also enables the P-space extensions LDP,
61        STP and PIN.
62
63    SMALLMEM
64        makes all addresses 16-bit as opposed to the usual 32-bit wide. This
65        limits core size to 65535, but also drastically reduces the memory
66        footprint of the program. We found that SMALLMEM reduces the
67        simulation speed of pMARS on most CPUs, with the exception of those
68        with a very small primary cache.
69
70    There are other compile directives described in config.h, in particular
71    some that fine-tune the UNIX curses display.
72
73    pMARS has been tested with various ANSI and non-ANSI C compilers. If
74    you can't get it to run or you had to change the source extensively,
75    contact the authors with a full description of the problems and
76    diffs to the source if applicable.
77
78____________________
79Platforms
80
81    UNIX
82        A standard UNIX makefile is provided. If you specify the GRAPHX
83        directive, a character-based display using the curses library is
84        built.  On some systems, it may be necessary to remove -ltermcap from
85        the LIB variable in the makefile.
86
87    UNIX/X11
88        If you specify the XWINGRAPHX directive, the X-Windows display
89        version of pMARS is compiled. You also need to change the link
90        library by uncommenting the "LIB = -lX11" line in makefile. X11
91        pMARS has a few new command line options that are described in
92        pmars.doc.
93
94    LINUX
95        The Linux/SVGA version of pMARS has been derived from the DOS
96        graphical version and therefore should behave very much like that
97        one.
98
99        Some notes for compiling the Linux/SVGA version:
100        * You will need the Linux SVGA library (libvga) version 1.12 or above
101            to compile pMARS for Linux (it may work with older libraries, but
102            I have not had an opportunity to test it).
103        * If you #define GRAPHX in config.h or in the makefile, the graphical
104            version will automatically be built unless you explicitely
105            specify CURSESGRAPHX.
106        * You will have to link with -lvgagl -lvga. makefile already contains
107            a sample definition of LIB with these libraries.
108        * The code assumes that Function keys etc. map to the 'standard'
109            escape sequences. pMARS will not recognize these keys otherwise.
110        * You need root privileges for the SVGA library, so either run pMARS
111            as root, or a better solution is to set the SUID bit of the
112            executable (do the following with root privileges).
113            # chown root pmars
114            # chmod u+s pmars
115        * The code assumes your mouse is available via /dev/mouse. This is
116            usually a link to the 'real' mouse interface, e.g. on my system:
117            # cd /dev
118            # ls -l mouse
119            lrwxrwxrwx   1 root     root        5 Mar  2 00:22 mouse -> ttyS0
120        * The second digit of the the argument to -v indicates (just like in
121            the DOS version) the graphics mode:
122            1 ... 640x480 with 256 colors
123            2 ... 800x600 with 256 colors
124            3 ...1024x768 with 256 colors
125            6 ... 320x200 with 256 colors
126            all other digits will result in the 640x480x256 mode.
127
128        Deficiencies/bugs of the Linux/SVGA version:
129        * Currently, the following keys are recognized by pMARS: F1-F10, the
130            cursor keys, insert, delete, home, end, page up and page down,
131            and Alt-a to Alt-z.
132        * The result of a fight is printed to the console after returning
133            from the graphical display -- only the last two lines or so are
134            not visible until you press <return>.
135        * Bug reports are welcome - just drop a note to m.maierhofer@ieee.org
136
137    DOS
138        You will need the free 32-bit DOS compiler DJGPP - a DOS port of gcc -
139        and ndmake or some other make program. pMARS also compiles with the
140        16-bit DOS compilers of the Borland/Turbo C family, but the maximum
141        number of warriors is limited to 8 because of memory constraints.
142
143        The GRAPHX compile directive enables the combined VGA/textmode
144        display of pmarsv.exe. You can enable the graphics and textmode
145        displays selectively with the DOSGRXGRAPHX and DOSTXTGRAPHX
146        directives. If you so desire, you can even link in a curses display
147        using the PDCurses library by specifying the CURSESGRAPHX directive.
148
149    MAC
150        The Mac GUI version of pMARS, MacpMARS, will compile with Think C
151        and MPW C, possibly others. Source code for the interface/display of
152        MacpMARS as well as instructions on how to make the executable are
153        in MacpMARS*s.cpt.hqx. The GUI code has not been updated for v0.7 of
154        pMARS yet, so you need the base archive for v0.6 (pmars06s.zip).
155
156    VMS
157        pvms*s.zip contains command files to build pMARS for VMS flavors. You
158        need DEC C; VAX C will not work. This file also contains a complete VMS
159        help system.
160
161    OTHERS
162        pMARS should compile with Borland C++ for OS/2, although we haven't
163        tried it. The OS/2 version currently doesn't have a core display.
164        pMARS has also been reported to compile on Amigas.
165
166____________________
167Language support
168
169    All strings are contained in the file str_eng.c for easy translation into
170    languages other than english. If you would like to see pMARS speak your
171    native tongue, translate the strings and send the file to us. We will then
172    include the new str_???.c in the next release and might even release the
173    foreign language binaries.
174
175$Id: README,v 1.1.1.1 2000/08/31 10:22:56 iltzu Exp $
176