WARCOM 2.3.1
                     Copyright 1991, 2004 David Eubanks
                            All rights reserved.


INTRODUCTION

    This program was written as a companion to War Law, a ROLEMASTER
system for large scale fantasy combat from Iron Crown Enterprises.  An
ad for this program appeared in the manual for War Law, and I received
many orders for it from all over the world.  Unfortunately, the post
office won't forward my mail from my old address anymore, and I assume
any orders going to the old address are returned to sender. (Something
I didn't anticipate.)

    The program will allow you to resolve large scale combat using an
approximation of the ARMS LAW system from IRON CROWN.  Since a unit
can consist of one soldier, you could use it for small scale combat as
well.  It is designed to be used with ROLEMASTER, but you could
certainly use it with other systems by scaling the hit points and making
other modifications as needed.

    Version 2.0, 2.1, 2.2, and 2.3 notations are modifications by
KILBOT-dot-ORG.

    WARCOM Version 2.3.1 is usable free of charge.  Redistribution is
permitted provided that unmodified and complete Version 2.3.1 files are
included with the distribution.  All other rights are reserved by David
Eubanks.


COMPATIBILITY

For efficiency and reduced code size, versions 2.0 and up are compiled to
require at least an 80386 processor plus coprocessor hardware.  Coprocessor
hardware is standard on all modern PCs, but bear this in mind if you were
thinking of using an antique 386 or 486SX machine for WARCOM.


NOTATION

    In the examples, if you are asked to type a key, it will appear in angle
braces, e.g. <Esc>.  Do not type the braces, just the one key named.  Any text
following a double-backslash (i.e. //) is a comment to you, and should not be
typed by you.  This instruction book will take you through a short tour of the
program.  The tutorial instructions are denoted by an exclamation point (!) in
the left margin.  This way, you can go through the tutorial without reading
everything, and come back later as you need.  Do not type in the exclamation
points.



RUNNING WARCOM

    To run the program, change to the directory containing all the files that
came on your disk (or archive), and type warcom.  There are four optional
command-line parameters.  Their case and order of appearance are irrelevant.
They are:

       /M       Specify monochrome mode (color is the default)
       /D       Demo mode. Use this when going through the tutorial.
                OBSOLETED by Version 2.0 and above (change in random
                 number generation and initialization).
       /C       Constant OB and DB -- the program will not adjust the OB and
                DB values for your units.  By default it penalizes exhausted
                units and damaged units.
       /L       Activate text file battle log.  Each unit-on-unit attack is
                appended on to the BATTLE.LOG file.  Alt-F1 dumps a short
                synopsis of the current unit conditions to the same file
                (Version 2.2 and up only).

                             IMPORTANT!
If you have a monochrome monitor, you MUST specify it with the /M parameter,
if you have a color monitor (CGA, EGA, VGA), you MUST NOT use this parameter.


GETTING STARTED

     Start the program in demo mode by typing:

warcom /D                  //if you have a color monitor, or
warcom /D /M               //if you have a mono monitor.

You should see the (modest) intro screen, and a message saying the program is
loading.  All messages to you from the program will be displayed on the bottom
line of the screen in red.

Note: If you accidentally ran WARCOM in the wrong mode for your monitor, the
intro screen and message will not appear.  You can get out by typing the <esc>
key followed by the <y> key.

After a moment the unit editor will appear.  Take a moment to examine the
components on the screen.  You can move the edit field around with the arrow
keys.  The PgUp, PgDn, Home, and End keys will move you from one unit to
another.  Right now all the units are blank, so the only thing that will
change is the unit number at the top of the box.  If you can't get these keys
to work, your number lock (NumLock) is probably on.

!  Try the arrow keys and PgUp, PgDn, Home, End.  Type some text into
!  the fields and try agian.

The editor holds fifty* units.  All battles are restricted to no more than
fifty* units and fifty* unit-on-unit attacks per "turn."

(*) Versions 2.1 and up are compiled with a different memory model that
consolidates the heap, allowing for more units and attacks to be held in
(the limited available DOS) memory.  The new unit and attack limits are
two hundred (200) each.  This provides for more flexibility in assembling
large conflicts with many distinct units while still keeping the UNT (unit)
files down around a modest 50 kilobytes.


UNIT STATS

    Some of the fields on the unit editor are used for attack
resolution, others are for your use in description, identification,
etc.
                            IMPORTANT!
   If the attack resolution program expects a number in a
particular field, and you have left it blank, or entered nonsense, it
will typically default to zero (unless otherwise noted below).

The fields for units are each described below:

Name: (optional) Name for unit.

Race: (optional) Race of unit.

Type: By default, WARCOM assumes that combatants are NORMAL size (like
     humans, orcs,...).  However, you may wish to have other types.
     The following additional types are provided for:

     Small         // e.g. small dogs, little birds, wee lizards, ...
     Type I        // e.g. ogre
     Type II       // e.g. demon
     Large         // e.g. giants
     Super-Large   // e.g. adult dragon
     No stun       // e.g. normal-sized undead (Ver 2.0)

     Creatures and Treasures (Rolemaster) lists the type for each creature
     therein.

     If you enter a type not on the list above, it defaults to
     Normal, so for normal sized units, you can use this as another
     comment field.  For example: Infantry, Cavalry, Spelluser, Potwasher...

Weapon: Must be from the list accessed by F1.

Armor Type: Rolemaster armor type 1-20.  See F1 for list.

Discipline Mod: A negative number that specifies how fast morale
               deteriorates.  (elite: -5, a good unit: -20, a bad one: -60)
               This attribute is described more in War Law.

Last morale check: Generated when attacks are resolved.  If blank, no
                  morale failure occured.  A letter A-E means morale failure
                  of increasing severity.  You can use the War Law
                  tables, or decide on your own exactly what this
                  means.  If you are a gamemaster, you may wish to
                  allow your players to roll their own morale rolls,
                  in which case simply ignore the computer's result.

Formation: (optional) Formation of unit.

The remaining stats all have "start" and "now" stats.  The program
will adjust the "now" stats.  There is also a "Mod" column for
modifiers to these stats.  The one for movement is not used by the
program and is just for your reference.  The rest are used in attack
resolution.  It is usually preferable to edit the modifiers rather than
the "now" value during the course of a battle to meet changing situations.

Morale: Usually starts at 100, but an extraordinary (non-100) starting
       value may be specified.  Modified by leadership, who outnumbers
       whom, etc.  The "now" value for morale is strictly an output-only
       field.  (War Law details how to derive a commander's "Leadership
       Rating" and apply a modifier for unit morale).

OB,DB: Offensive and defensive bonuses.  The mod column is typically
      used to specify parry amounts.  Example:  A unit has "now"
      values for OB, DB of 40 and 5, resp.  To "parry" 10, edit the
      modifiers for OB,DB to -10,10, respectively.  You can also use
      the mod column to add in the unit's OB bonus for its leader's
      tactical ability (another War Law concept).  Modifiers for an
      advantageous battlefield position can either be applied here,
      or instead in the "modifier" field of the attack editor.

Exhaustion: Usually starts at 100 for a rested unit.  As a unit
           becomes tired, the "now" number will decrease, affecting
           movement, OB, and DB according to War Law conventions
           (unless you have used the /C switch).  A spell or inspirational
           leader might give a modifier.  If a unit rests for a while,
           you may want to edit the "now" value to reflect this.

Movement: For your use only.  The "now" value will degrade as the unit
         tires.  (Except when using /C with Version 2.0 and above).

Number: Number of combatants in unit.  The "now" value reflects the count
       of those still able to fight (non-casualties).  No modifier field.

Average number of hits: This is the approx number of hits per remaining
                       combatant for unit members -- NOT the total
                       number of hits for the unit.  As the "now"
                       value decreases, it will affect OB and DB
                       unless /C was used.  Note: in rare cases, the
                       average hits can actually go UP after a battle
                       turn!  No modifier field.

                       COMMENT: In Version 2.0 and up, the anomalous
                       behavior of average hits rising occurs rarely,
                       but it can still occur when a batch of casualties
                       accrues disproportionately upon the already-
                       wounded (low hits) defenders.


UNIT EDITOR FUNCTIONS

You will notice the the function keys F1-F10 are listed with a brief
description of their functions. They are described in more detail below.

F1 -  Brings up a screen listing the legal weapon names you will use when
     editing a unit.  You do not have to get the name exactly as it appears:
     The following will all specify the battleax, because they vary only
     by upper/lower case and inclusion of whitespace:

     Battleax
     battle ax
     Battle Ax
     BATTLEAX
     BATTLE AX

     However, if you misspell the word (like "battlax"), the term will not
     be recognized.

F2 -  Allows you to edit the filename.  It is suggested that all unit files
     end in .unt and that all battle files end in the .btl extension.  You
     must type the full legal DOS filename.

F3 -  Loads the file named.  All units currently in the editor will be
     overwritten by the new ones.

F4 -  Saves the units that are in the editor into the named file.  You can
     create as many of these as you want (only limited by disk space).

     NOTE:  I have noticed that battle files often yield a save error
     message unless one returns to edit the first attack.  But then
     the problem goes away.  This is a minor pending issue.

F5 -  Reset the current unit's stats.  Each unit has two sets of stats: "at
     start" and "now."  The "now" stats change as the battle progresses.  The
     "at start" stats don't change unless you edit them, or load a new file.
     This key will copy the "at start" stats to the "now" stats, so you can
     refight a battle, etc.

F6 -  This is the same as F5, except it resets the stats for ALL fifty* units.

F7 -  Clear stats for current unit.  Erases all the fields for this unit.

F8 -  Erases all fields for ALL units.

F9 -  Copy unit.  When you hit <F9>, the current unit is copied to the next
     numbered unit.  This is useful when you have several units with similar
     stats.  CAUTION: If a "next numbered unit" already exists, it WILL be
      clobbered (overwritten).

F10 - Go to attack.  More on that in a minute.

ESC - Exits you to DOS.

!    Try F1, look at weapons available. Use the arrow keys to move up
!    down.  <Esc> aborts, <Enter> selects the weapon.

!    Type <F3>.  Respond to message with <y>.  Several units have been
!    loaded.  Move between units with PgUp, PgDn and examine them.

!    Use F8 to erase all units.
!    Type in some stats (it doesn't matter what) for a unit or two.

!    Type <F2>  Change filename to myfile.unt
!    Hit <Enter> when finished.

!    Type <F4>. Answer <y> to query.  You have just created a new file
!    named myfile.unt containing your units.

!    Use <F2> to change the filename back to sample.unt, and use <F3>
!    to restore the units.

!    Hit <F10> to go to the attack editor


THE ATTACK EDITOR

    The attack editor is used to specify who is attacking whom.  You
can specify up to fifty* unit-on-unit attacks at one time.  You can store
and retrieve .btl files with your attacks just like the unit editor.
    You can move about just as in the unit editor.  The long box in
the lower half of the screen cannot be edited--it simply summarizes
crucial information about the units.  Units are referenced by NUMBER
in the attack editor, and you will use the display at the bottom (the
unit summary window) to determine the unit number for combatants.

!     Use the PgUp, PgDn and arrow keys to move around

    There is no restriction on how many attacks you can specify for
each unit.  e.g. if a unit is fighting three opposing units, you might
specify three distinct unit-on-unit attacks for that unit.  The total number
of unit-on-unit attacks is restricted to fifty*.

(*) Again, for Versions 2.1 and above, up to 200 unit-on-unit attacks can
be defined.


ATTACK FIELDS

    The fields are used to specify who is attacking whom with what, and
to specify a modifier.  They are described below:

Attacker's Unit #:  Number (one thru fifty*) of the attacker.

Attacker Size:      This field allows you to specify how many
                   of the attackers will be actually participating in the
                   attack against the specific defender indicated.  If you
                   leave this field blank, it defaults to 100% of attackers
                   (i.e. everyone in the attacking unit applies one attack
                   against the defending unit).  This is an exception to
                   the blank-equals-zero rule.  You can specify the number
                   of attackers in two ways:
                      (1) you can enter any number bigger than zero -- it
                          can even be bigger than the number of attackers
                          in the unit if you wish.  The shortcoming of this
                          approach is that the number is absolute and will
                          and not change automatically by itself, even
                           though the number may need alteration due to
                           casualties (fewer members able to attack).
                      (2) you can enter a number bigger than zero followed
                          by a percent sign (%).  This tells the program to
                          use that percent of the number of attackers.  This
                          number is relative and will thus decline
                          automatically as the number of attackers dwindles.
                          This is often the preferred approach.
                   Examples:
                          * 1 means 1 attack.
                          * 100 means 100 attacks, even if there are
                            only 10 men in the unit.
                          * 50% means half of the attackers get to
                            attack (with one attack per).
                          * 300% means every attacker gets 3 attacks.
                   It is typical, for example, when a single unit is in
                   combat with two other units, for that unit to apply 50%
                   in each of two separate unit-on-unit attacks.  It is also
                   common to specify much smaller percentages, reasoning that
                   only a very few of each unit are actually on the front line
                   at any given time.  This also serves to slow a battle
                   down to what some might consider a more "realistic" pace.

Defender's unit #: Unit number of the defending unit.

Defender's number or %: Same as above for defender.  If blank, the
                       whole unit defends (same as entering 100%).
                       By "defends," this means "number in the unit who
                       are subject to attack."  If only a portion are on
                       the front line, this number should reflect that fact.
                       This number should NOT be larger than the number of
                       men in the unit (the program safeguards against this
                       internally).  In other words, this figure is the
                       the max number that could be killed in this next
                       round of battle.

Modifier: An accumulation of any OB mods not already taken care of on the
         unit editor.  For example, if you decide this particular attack
         should be at +20 since the defenders are surprised, but also -10
         because it's dark, the cumulative mod would be +10, or just
         10.

(VERSION 2.1) DmX:  Concussion damage multiplier.  A valid factor from 0
         through nine may be entered here.  If blank or nonsense, the
         default is '1' (normal damage).  If the attackers as a group are
         currently doing multiplied weapon damage due to size (giants,
         ents), frenzy, monk magic, herbs, etc., enter that multiplier
         here for this attack.

(VERSION 2.1) SpCr:  Special attack critical type.  The default is 'n' for
         'normal' criticals (the regular crit tables and the nonmagic
         columns for large and super-large creatures).  However, in certain
         situations an attacking unit might predominately be doing criticals
         that are more effective:

           'k' - Weapons kata; an extra critical, same roll, one degree
                 less.  For example, the attackers are all monks.  This
                 tends to increase damage but not critical casualties.
           'd' - Double independent criticals of the same degree.
                  For example, hits with their weapons do an extra
                 cold critical, rolled separately.  This tends to increase
                 the chance of getting a casualty because there are two
                 chances at it with each solid hit.
           'm' - Magic.  The attackers predominately use magic weaponry.
                 Only a factor vs. large and super-large targets.
           'h' - Holy.  The attackers all do "holy" crits, applying against
                 all opponents (e.g. because they are defending consecrated
                 grounds).
           's' - Slaying.  The attackers have weapons that are "of slaying"
                 vs. the defending unit's individuals.  Greatly increases
                 casualties and damage versus any opponent type.

Weapon: If a weapon is supplied here, it overrides the weapon
       specified by the unit editor.  If blank, the weapon on the
       unit editor is used.  You may wish to use this when a
       secondary weapon (e.g. ranged weapon at the beginning of
       battle) is used temporarily.


UNIT SUMMARY WINDOW

    Five units at a time are diplayed in the window, and you can move
around with the <F5> and <F6> keys.  The information to the right of
the unit name is a summary of important stats.  The first two entries
are the strength of the unit (i.e. percent strength), and last morale
failure (A-E, or blank).  The remaining numbers are the "now" stats
from the units editor in the same order as they appear there: morale,
OB, DB, Exhaustion, Movement, Number, and Ave. Hits.  This is a useful
window to scroll through after an "execute all attacks" (F10) operation
in order to quickly find morale failures and/or eliminated units.
    If a unit is making an attack, a small spear appears to the left
of its name.  If it is defending an attack, it will have a small
shield.  A unit will often have both.  These symbols will appear AFTER
an attack is edited, and another key is hit (you can hit <Ins> to make
them come up).

Version 2.1:  An extra call to refresh the unit summary window is now
included in new versions, making the <Ins> keypress virtually obsolete.
This function call used to slow down editing too much in the IBM AT-286
days, but with Pentium technology in the hundreds of MHz, it is unnoticeable.


ATTACK EDITOR FUNCTIONS

F1-F4 are the same as above, except F3 and F4 load and save battle
files (use the .btl extension), rather than unit files.  NOTE: Version 2.1
battle files are NOT compatible with older battle files, and vice-versa, as
the number of data fields in V2.1's attack editor is different.  (Unit files
are still compatible).

!     type <F3> and <y> to bring up sample.btl

F5 -  Move unit summary window up 5 units.

F6 -  Move unit summary window down 5 units.

F7 -  Clear current attack.  Blank all fields.

F8 -  Clear all attacks.  Blank all fields on all attacks.

F9 -  Execute current attack.  This key will cause the program to
     attempt to execute the current attack shown.  It will not be
     successful if it cannot find the weapon, there are no
     attackers, or there are no defenders.  Normally, you will use
     this key only if you want this attack executed prior to all
     the others in the battle file.  When you use F10, all attacks
     are resolved "simultaneously", and the units are backed up prior
     to resolution.  Note that there is no way to "undo" an F9
     attack, unless you remember the "now" stats of the defender
     yourself and use the unit editor to change them back.

     If you use the /L command line option with Version 2.2 and above,
     a one-line synopsis of the results of this attack will be appended
     to the BATTLE.LOG file.

F10 - Execute all attacks.  Before any attacks are made, the current
     units are saved to BACKUP.UNT, so that they can be recovered if
     you discover you specified an attack wrong.  e.g. if, after all
     attacks are resolved, you discover that the famous Orc Killer
     Squad was wiped out in one fell swoop, which you think shouldn't
     have happened, you can go back to the unit editor and use <F2>
     to change the filename to BACKUP.UNT, and use <F3> to load it
     back up -- the Squad is restored (along with all the other units).
     All attacks are executed "simultaneously" under this function
     (no unit gets to score casualties "first" against another and
     preclude the enemy's attacks thereby).

     NOTE: Version 2.0 fixed certain bugs that were probably responsible
     for the "Squad disappearance" effect alluded to above.
     Nevertheless, the backtracking feature is still useful for
      retrying a battle round when a mistake was made specifying
     the setup.

     If you use the /L command line option with Version 2.2 and above,
     a synopsis of the results of all these attacks will be appended to the
     BATTLE.LOG file.

ALT-F1  If using Version 2.2 or above and you specified the /L command line
     option, Alt-F1 will prompt you for whether you want to dump the present
     status of all units to the BATTLE.LOG file.  A unit dump simply appends
     a short unit status, one line per unit, to the file.  Each unit's name,
     number, percent effectiveness, morale, starting and current manpower, and
     starting and current average hits are shown.

ESC - Returns you to the unit editor.

INS - The names of the attacker and defender, and the spear and shield
     symbols are not updated until you hit <Ins>, or one of the
     funciton keys, or PgUp, PgDn.

     NOTE: Version 2.1 throws in an extra update call that probably
     makes <Ins> obsolete in most cases.

!    Use <F5> and <F6> to move the window up and down.
!    Notice the spears and shields, representing attacks and defenses.


SAMPLE BATTLE

   The battle for Potter's hill was a key battle in the Markon and
Syvanian war.  We find three companies of Markon swordsmen engaged with
two companies of Sylvanians.  Markon companies B and C have hit the
Sylvanian company B hard, and threaten to outflank it.  Xanax, a
magician, hurls fireballs as Tiney leads the Sylvanians from the
safety of his honor guard.  Unfortunately, a unit of Sylvanian archers
can just reach him from their vantage point on top of Potter's hill.
(Tiney and Xanax are PCs and can be represented by units of 1 man.
The GM should be flexible about what happens when the unit disapears!)

Notes:
    (*) Version 2.0 and up make increased and varied use of random
number generation and initialization which probably prevent the /D demo
mode from running exactly as described for Version 1.0 below!

    The opposing Co. A's attack each other with 25% of their strength.
The rest of the troops in those companies are in back of the fighting.

    The GM rules that Xanax's fireball will attack 10 Sylvanians
from Co. A (using accuracy table in War Law).  Thus there are 10
attacks and 10 defenders for his attack.

    The GM also rules that 5% of the archers can target Tiney, so the
remaining 95% fire at the guards.

    Markon Co.s B and C each attack at 25% against 25% of Sylvanian Co. B.

    Sylvanian Co. B attacks with 25% against each of Markon Co.s B
and C (with a negative mod for split attack--GM ruling).

!    Hit <F10> and <y>.  Observe the new unit stats.  You can go back
!    and forth to the unit editor if you wish.

    Round 1.
    Tiney escapes unscathed.
    First blows are exchanged.

!    Notice that exhaustion, movement, OB, and DB are all changing
!    Hit <F10) and <y>.

    Round 2.
    Sylvanian Co. B is down to 83% after two rounds.

!    Hit <F10) and <y>.

    Round 3.
    A fateful arrow finds the Markon Commander.  Friendly units pass
    morale checks.
    Sylvanian Co. B down to 77%

!    Hit <F10) and <y>.

    Round 4.
    Sylvanian Co. A fails morale, and must take an 'A' morale roll.
    The GM rolls a 92 on table T-4 of War Law -- the unit routs.
    The Sylvanian Co. B must take another morale check (because a
    friendly unit is retreating), which it passes.  The commander
    decides his situation is hopeless however, and surrenders.

NOTES:
    Normally, there would be some adjustments to the attacks between
attack resolutions, but for purposes of a demonstration, this was not
done.
    Notice (on the unit editor) that all of the units are using some
of their OB to parry.  This tends to make casualties lighter or prolongs
battles.
    Restricting units to attack with only 25% of their strength (due
to space restrictions) also slows down battles, giving a more fluid,
realistic feel.  If you have a large number of units and simply wish to
get the battle over with rapidly, use 100%.


IMPORTANT NOTES ON PLAY

   In general, the more attacks you allow per unit, the more quickly
the battle will be resolved.  This, however, has the negative effect of
not allowing units the chance to reatreat or rout (on morale failures).
A unit may suddenly go from 50% strength to zero in one turn.  You will
have to experiment with the number of attacks and amount of parry to
achieve a battle pacing you like.
    Generally speaking, since the computer is doing all the work
anyway, you are free to make the attacks-per-round a fairly small
percentage of the troops.  The smaller (to a point) this number is,
the more opportunity there is to note dramatic turning points.
Some would say it's unrealistic to have every man in a large unit
be able to attack every turn anyway, whether for reasons of available
space, grouping, or simply how exhausting that would be.  A figure of
10% is suggested, and if it goes too slow, increase it.  I used 25%
in the example to get it over with quickly.  Even missle-firing units
should consider following this procedure.  You will want to think about
exactly how long a "round" is in your battleground-time.


ADDING NEW WEAPONS

If you want to add weapons to the existing list, here's how to do it.

   NOTE: If you do it wrong, the program won't work properly!  So
         make a couple of backup copies just in case.

You need to modify the WEAPONS.DAT file with a text editor. The following
isn't going to make any sense if you aren't familiar with ARMS LAW.

At the end of the existing file, or immediately before an existing weapon, add

%name of weapon
%h1,r1,h2,c1,c2,c3,c4,c5
etc.

The first line is for Armor Type (AT) 20, the next line for AT 19 etc.

where h1=#hits inflicted for dice roll of 150 (max possible damage)
     r1=minimum dice roll that gets hits for that AT
     h2=#hits when you roll r1 (i.e. minimum non-zero hits)
     c1=min roll for E critical or 0 if you can't get an E critical
     c2=min roll for D critical or 0 if you can't get a D critical
     c3=...C crit...
     c4=...B crit...
     c5=...A crit...
     
In some cases (like for criticals higher than E) you will have to make
approximations.  You can adjust the effectiveness of weapons by changing
these stats.

Some of the weapons in the existing file have been modified.  If you want
an example of one that isn't, look at CLUB.  Refer to Arm's Law and you will
see where the numbers come from.  I typed all these in by hand, so there may
be some mistakes that I didn't catch.  I'd appreciate it if you find anything
absurd in there if you'd let me know!  Upload your new weapon files if
they're good, and let others try them out!


OTHER VERSION NOTES -- (KILBOT-dot-ORG)

A great advantage of WARCOM is that it provides a far better approximation to
an exhaustive Rolemaster battle than what even a meticulously executed War Law
battle would yield.  This is because while War Law uses scores of new tables
(what else indeed?) intended to simulate massed attacks on mass defense,
WARCOM actually models each individual attack, which could run to thousands or
even tens of thousands of attacks per turn.  While some aspects of this
simulation are still approximations to what a thorough Rolemaster treatment
would yield, features such as the careful tracking of concussion hits,
accurate probabilistic models, careful rendering of weapons tables and
differentiation of critical levels for extra hits and casualties make for
surprisingly consistent results.

Some notable WARCOM features hidden in the internals:

(*) Every attack specified in a BTL file for a set of units in a UNT file is
executed *individually*, one after another when F10 is pressed.  Every hit
point counts, and every chance for assessing a casualty to the defense due to
criticals or high concussion is examined.

(*) More-severe criticals not only increase the chance of creating a casualty,
but also do more damage that gets added to the base weapon damage.  This is a
Version 2.0 enhancement.

(*) Version 2.0 prevents critical casualties from accruing to Large and
Super-Large creatures unless they are struck by at least a 'B' or 'D'
critical, respectively.  Older WARCOM versions used a flat casualty chance
based on defender "size" for any critical hit at all.

(*) Damage from criticals is now randomized so as to be distributed similarly
to what you would get from rolling on the Rolemaster tables.  The added
computing power of year 2000+ machines makes the added computational burden
from all the random number generation virtually unnoticeable.

(*) Individual casualties can also now occur in Version 2 due to concussion
hits alone.  This is guaranteed if a single hit does more damage than a
unit's starting average hits, and occurs probabilistically if the damage is
more than the current average.

Version 2.2 adds a cursory battle logging feature (logs to ASCII file
BATTLE.LOG if /L switch is used) for the convenience of those people who like
to track unit "experience" as per War Law.  Using the file record, it is
relatively straightforward to do searches and sorts and determine what a
particular unit achieved in battle (e.g. hits delivered, casualties inflicted
on the enemy).

Version 2.3 fixes some pernicious bugs.  Previous versions had a problem where
the hit point average for large units would be truncated down at the end of
each turn.  This truncation would occur even if a 500-man unit took a single
hit from a single foe, and over time would thus exert an inexorable (and
unrealstic) downward bias on the unit's hit point average.  V2.3 changes the
truncation to a probabilistic rounding and removes the erroneous bias.
Version 2.3 also identified and removed a bug wherein an eliminated unit
(zero non-casulaties remaining) that was assigned a fixed number of offensive
attacks would still get those attacks assessed in subsequent battle turns.


ACKNOWLEDGEMENTS

   Thanks to: Ron Goral, Coleman Charlton, and the folks at Iron Crown
              Enterprises.
   KILBOT-dot-ORG thanks Dr. Eubanks for yielding the source code for
              more modifications, bug fixes, and new features.


DISCLAIMER

    I don't know of any cases of this program causing someone's
computer to blow up, but hey, ya' never know.  Use it at your own risk.
Neither David Eubanks nor Kilbot-dot-org assume liability for any damages
incurred by using the program.

    Kilbot-dot-org will not petition your Gamemaster on your behalf
should the WARCOM product harm your favorite character or battle unit
in any way, maliciously or not.


YOU ARE FREE TO DISTRIBUTE WARCOM AS LONG AS THE NECESSARY FILES ARE
NOT MODIFIED IN ANY WAY.