Add support for far data access between banked pages.

Use far_read() when writing a module that lives in paged ROM,
and its callers may live in a different page of ROM.
Add flexing level variable support, under CONFIG_FLEX.

An example of how to use has been added to the AFM build.

This replaces and enhances the older "ebflex" module.
Add the "deff data" feature.

This is a cleaner way to say which global variables your display
effect needs to reference.  It is a more generic version of the
D_SCORE flag, but for more than just scores.

See include/deffdata.h for the full documentation.  Use deff_data_init()
and deff_data_push() before starting the deff; use deff_data_pull()
inside the deff to get the data that was previously pushed.

Another reason for this is it helps to support future builds on
the Whitestar platform, where global variables can't be referenced
directly, because they are on separate processors.
Allow going into test mode without aborting the game in progress.

When you exit test mode, the game will resume as before.
Specific changes to enable this behavior:

- Remove old test in game logic.  This behavior is default and always
  works.

- Add a "MODIFY GAME" menu to allow the game to be edited.
  This menu only appears when a game is running.

- Don't allow points to be scored for any reason in test mode.
  (TODO - this should not generate a nonfatal)

- Don't kill all tasks when entering test; game features must be preserved.
  Sound and display are reset to allow test mode to work.  (Lamps?)

- Pause game timers while in test mode.

- Save/restore player variables across test mode, so that the lamp
  matrix is not corrupted if you run a lamp test.
Pause ball search and switch stress test when going into test mode.
Initial support for the Pinball 2000 platform.

These files were written long ago and never completely gotten
to work, but there is no harm in merging them now.  Getting
P2K support to compile is a good test of the portability of the
system.
Initial implementation of the deff compiler (dcc).

The intent is to write display effects in a new language that is
much simpler than emitting C code.  Depending on flashing,
blinking text, color choices... emitting the right C calls is not
always easy.  The deff compiler's job is to choose the right functions
for you, so you can focus on just saying what you want to happen.

This is not functional yet, but a good chunk of the core of how
it should work is there.  Over time, common display effects should
be migrated to this approach -- separate from the core CPU code --
and the compiler will be updated as necessary to support that.
Add string translation support to system.
Correct an error in the documentation preventing it from building.
Rename linux_dmd to pinio_dmd.  These are not Linux-specific.
Whitestar: Many corrections to the platform config file.

This version still does not compile.  These are pretty simple changes that
won't break anything else.

- Rename some of the I/O addresses to reflect what they do better.

- Remove wpc_write_flippers; use pinio_{enable|disable}_flippers instead.

- Implement wpc_get_jumpers().

- Remove ticket related I/O calls.

- Define PINIO_NUM_SOLS to 32.

- Implement pinio_write_sound().

- Implement pinio_read_switch_rows() and pinio_read_dedicated_switches().

- Rename pinio_write_triac() to pinio_write_gi().

- Add pinio_watchdog_reset() and pinio_clear_periodic().
G.I. test is now more portable than before:

- The previous implementation assumed 5 GI strings; this is no
  longer the case.  The number of GI strings must still be
  8 or less.

- The "BRIGHTNESS" setting is not displayed if dimming is not
  supported.
Remove le-lib.c; never used.
Deff compiler: Add all font heights, emit freewpc.h header.
Add flag_test_and_set() API.

This does flag_test() and returns the result; if the flag was clear,
then it will also be set prior to return.  This is just syntactic sugar.

Updated WCS multiball logic to use this.
Support normal declarations of flags and timers.

Previously, flags and timers needed to be declared in the machine
description, which emitted a #define for each.  Now, you can declare
flag_t, global_flag_t, and free_timer_id_t variables throughout the
C code as you would for normal variables.  (flag_t has the same
semantics in that it is per-player.)  None of the user-visible APIs
to manage these changes at all; it is all transparent.

This is preferable over using genmachine because it keeps
the variables closer to their uses, and makes it clear which
modules are responsible for each object.  genmachine is intended
to be used for _machine_ definitions rather than _rules_.
Also, adding/deleting these types of variables can now be done
without recompiling everything (re-running genmachine requires
most C files to be compiled again).

For backwards compatibility, the md file sections are still
supported; entries here will be emitted into a mach-vars.c file
which is compiled as normal C code.  At some point these entries
could be migrated back into the machine game code.

Internally, only the addresses of these variables are used.  They
are not linked into any real sections of the running program.
We just use the linker facility to assign the addresses.  The
conversion to addresses is done internally; for the 6809 it is
optimized using an asm macro to keep it 8-bit only.

There are other types not yet converted to this style which may
be added later: adjustments and audits come to mind.
Start button lamp was flashing after entering test mode.

- Don't light/flash it if "in_test" is true.

- Don't process the start button if in_test is true.
  This fixes a problem with test-in-game.

- Turn off the lamp explicitly when entering test mode.
Fix infinite loop on stack overflow.
Fix mapcheck to distinguish section names that have a common prefix.

The regex was not ensuring that the name it's looking for was a
complete word.
barrier() does not emit "nop" in the assembler comment anymore.