Merc Release 2.1
Sunday 01 August 1993
Furey mec@shell.portal.com
Hatchet hatchet@uclink.berkeley.edu
Kahn michael@uclink.berkeley.edu
=== Platforms
We have ported Merc directly to these platforms:
Apollo ??? Domain/OS
Dec 5000 Ultrix
Dec 5900 Ultrix
Intel 386 MsDos
Sequent 386 Dynix
Sun Sun-3 SunOS 4.1.2
Sun Sun-4 SunOS 4.1.2
Users have contributed ports to the following platforms, and we have folded
their changes into the base code. See 'contrib.txt' for acknowledgments.
Apple 68030 Macintosh
Dec uVax Ultrix
HP 9000 Hp/UX
Intel 386 386 BSD
Intel 486 Linux
Intel 486 Interactive Systems Unix
IBM RS/6000 Aix
Mips R4000 Risc/OS 5.XX
NeXT 68030 Mach
Sun Sun-4 Solaris 2.1
We are simply unable to test Merc on every platform. Typically a user tries
a new platform, gets a file full of warnings, and mails us the warnings.
We fix the base code; on the next release we ask that users mail us the
new warnings (usually we never hear from the user again).
=== Requirements
The hardware requirements are essentially: two megabytes of memory; five
megabytes of disk space; any 32-bit processor; 50 kilobits per second network
bandwidth. Processor speed is not important.
The software requirements are essentially: a C compiler (Ansi C preferred,
but Merc can be made to work with a K&R compiler via 'mktrad'); a Unix or
Unix-like operating system; BSD-compatible TCP/IP networking.
For machines which don't have Ansi C compilers, we supply the 'mktrad' script
to convert Merc source into traditional C. See 'trad.txt' for details.
Merc uses 32-bit integers and is casual about the distinction between 'int' and
'long'. (It is possible to clean up the code to run with 16-bit integers, but
the demand is nonexistent, and we don't have any 16-bit C compilers with which
to test.) If you are running on a personal computer, make sure your C compiler
is giving you 32-bit integers and not running in 16-bit mode.
Area files, player files, the note file, and the bugs/ideas/typo files are all
in Ascii format, so that they may be freely moved from one machine type to
another.
=== MsDos Single-User Version
Merc runs in single-user mode (console only) on MsDos and Macintosh computers.
The MsDos version is built with DJ Delorie's 'djgpp' port of the Gnu C Compiler
and requires a 386 with 4 megabytes of memory. You can ftp 'djgpp' from
grape.ecs.clarkson.edu.
A prebuilt executable, 'Merc.exe', is distributed with the release.
As the 'djgpp' documentation states: if you aren't already comfortable
programming in C, this isn't the compiler with which to learn. Caveat Hacker.
The commands to build and run Merc on MsDos are:
gcc -O -Wall -c *.c
gcc -O -o merc *.o
go32 merc
=== Macintosh Single-User Version
The Macintosh changes were contributed by Oleg. It is built with Think-C
5.0.4 and requires 4 megabytes of system memory. You have to define the
symbol 'macintosh' (if not already defined).
Following is an edited version from Oleg's notes for porting 2.0c, after
taking out everything that we folded into 2.1. BTW Oleg, you did a
thorough and meticulous job on this port, and we hope we didn't make
any mistakes in deriving this section from your notes.
**** My notes are preceeded by 4 asteristics
**** Hardware - Macintosh Powerbook 180, 120 Meg Hard Drive, 8 Meg Ram
**** Software - Symantec C++ version 6.0, System Software 7.1
**** Added "#define macintosh" to project header (Da !!!!)
**** Changed Project Type memory partition to 2,500 K
**** Changed Project Type to include Far Code and Far Data
**** Change compiler to 4 byte integers
**** created application instead of running from development environment
**** Redistributed all files in project to produce 32K segments
**** Add unix library for write and close to project
**** moved unixio.c and unixmisc.c for the unix library to the project file
**** Add MacTraps to project file
**** Add ANSI library to project file
**** Recompile ANSI library.
**** Recompile all *.c files.
**** moved application to area folder
=== Performance
All this measured on a Sun 4 with SunOS 4.1.2.
Boot time: 4.3 CPU seconds.
Memory: 2.2 megabytes SZ size.
CPU usage: 30 CPU seconds per hour + 1-2 CPU seconds per player.
Disk space: 2.6 megabytes plus 8K per player file.
IP packets: about 10 per second with 20 people logged in.