Setting up Config.h
===================

Many of the configuration #defines in Config.h can be ignored in most
cases.  However, if you want to play about with the emulator, you'll
probably need to know what they are at some stage or other...

LO_PAGE

 defining this means that the emulator assumes there will be no strange
 side effects of writing to pages 0 and 1. I'm particularly thinking
 about the situation where screen memory is mapped onto page 0 here
 -- if you don't care if that won't work properly, defining LO_PAGE
 means that no checks are made to see if the screen has changed and the
 emulator runs faster.


FASTCLOCK

 Given excessive amounts of CPU power, it's probably possible to do all
 the work of updating the VIA timers etc. depending on the duration of
 each instruction, after every instruction. Generally, though, that does
 slow things down somewhat. Defining FASTCLOCK means that the timers are
 updated no more often than FASTCLOCK cycles, which greatly reduces the
 overhead involved in updating the timers and checking for interrupts. The
 code may not even function correctly with this undefined at the moment.


ENDIAN_6502

 If you have a small-endian machine, define this. It allows for certain
 optimisations because the 6502 is small-endian, too.


NO_FRED_JIM

 Currently there's no emulation of the Fred and Jim memory-mapped IO. If
 you're not interested in emulating them, or never use them, defining
 this just means they get completely ignored when handling memory-mapped
 IO, resulting in faster emulation.


LIMIT

 Define this to a number of instructions after which the emulator should
 exit.  Only really useful for debugging and timing purposes.


DISASS

 Define this to enable the executing instruction disassembler.  Defining it
 to be 0 means that disassembly is turned off initially, defining it as
 DISASSEMBLE means that it's turned on initially.  Once running, disassembly
 can be controlled by the keypad "+" and "-" keys.  This produces lots of
 output very fast and slows the emulator down no end.  Only really useful
 for debugging.


INFO

 Causes all sorts of informational messages about the emulator's internals
 to be displayed.  Not very interesting to many.


NEED_STRCASECMP

 Define this to use the supplied strcasecmp if your C library doesn't
 have that function.


EMUL_FS

 Defining this enables the emulated filing system.  Without it, you won't
 be able to load or save anything.


XDFS

 Defining this as well as EMUL_FS enables the XDFS support.  Recommended.


COUNT_INSTRS

 Defining this causes instruction counting code to be enabled in the
 emulator.  I used this for determining which instructions were executed
 most in order to better decide where I should spend time trying to
 optimise code.  It produces quite unexpected results -- the instruction
 execution frequencies are very skewed.


EFS_CATALOG_SIZE

 Defined to be 31 -- the maximum number of files on a DFS disk.  This
 is because I want to be able to migrate the emulated filing system to
 something more integrated with the OS later on.  Feel free to increase
 it if you really don't care about that.


M6502
R65C02
R65C12

 Define M6502 for emulation of the original Motorola 6502 CPU. R65C02
 emulates the Rockwell 65C02 and R65C12 emulates the Rockwell 65C12.
 Only define one of these three.


MODEL_B_ONLY

 Defining this removes support for the Model A (16K) machine, which will
 speed the emulator up a little.


DIP_SWITCHES

 Sets the default setting for the keyboard DIP switches.


XBEEBROOT

 Where to find all of the Xbeeb files -- roms, snapshots, EFS "disks" and
 (if/when I write the tape system support, tape images, too).


VOXWARE_SOUND

 Use the VoxWare sound emulation code.


SHIFTLOCK_SOUND_HACK

 Disable the Shift Lock key indicating that the sound buffer is full.
 This is recommended because having the Shift Lock key flickering whilst
 playing sound dramatically slows down the emulator.  Use this even
 if you don't have VOXWARE_SOUND defined.


KEYMAP_STRICT
KEYMAP_LEGEND

 To use a keymap based on the positions on keys on the keyboard, #define
 KEYMAP_STRICT.  This is best for games.  To use a keymap based on the
 legend on any pressed key, #define KEYMAP_LEGEND.  This is probably
 easier if you're used to a certain keyboard layout and want to do lots
 of typing.


OS_ROM

 The name of the OS ROM image


LANG_ROM

 The name of the default language ROM image


SNAPSHOT_EXT

 The snapshot file extension.


DEF_SNAPSHOT

 The name of the default snapshot file -- if you just press return at
 the snapshot name prompt.


CAT_NAME

 The name of the catalog file in the emulated filing system.


TMP_FILE
TMP_CAT
BAK_FILE
BAK_CAT

 Names of temporary files and catalogs used whilst manipulating entries
 in the emulated filesystem.

