Difference between revisions of "BeebEm for UNIX README"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (1 revision)
Line 8: Line 8:
  
 
IF YOU WISH TO CONTRIBUTE TO THIS README, PLEASE DO SO AT:
 
IF YOU WISH TO CONTRIBUTE TO THIS README, PLEASE DO SO AT:
http://beebwiki.mdfs.net/BeebEm_for_UNIX_README
+
http://beebwiki.jonripley.com/BeebEm_for_UNIX_README
  
 
BeebEm for UNIX is a BBC Micro and Master 128 emulator.  It enables you to
 
BeebEm for UNIX is a BBC Micro and Master 128 emulator.  It enables you to

Revision as of 01:13, 8 March 2015

** THIS IS A PRE-RELEASE! **

BeebEm for UNIX
===============
http://beebem-unix.bbcmicro.com/

IF YOU WISH TO CONTRIBUTE TO THIS README, PLEASE DO SO AT:
http://beebwiki.jonripley.com/BeebEm_for_UNIX_README

BeebEm for UNIX is a BBC Micro and Master 128 emulator.  It enables you to
run BBC Micro software on your UNIX operating system.  BeebEm for UNIX
should work on most UNIX or Linux systems running freedesktop.org's
pkg-config, GTK+ 2.2 and Simple DirectMedia Layer (SDL) 1.2 or later.

Unlike the Windows and Mac releases, there are no binaries provided with
BeebEm for UNIX as it is distributed only as source code, which you can
modify yourself.  BeebEm for UNIX must, therefore, be compiled before it
can be installed and run.

This is a very early version of BeebEm for UNIX, so there will most likely
be a few bugs in it!  It is a port based on the BeebEm for Windows source
code, from version 3.5, currently being developed by Mike Wyatt.  BeebEm for
UNIX is still a work in progress and is not complete yet so some options
available in the Windows version are not currently in the UNIX version.

Please send all feedback to: frutbunn AT gmail DOT com

Oh, and thanks for taking the time to play with this! :-)

The copyright on everything in BeebEm for UNIX resides with David Gilbert,
the original author, as described in COPYING.


Compiling and Installing
------------------------

BeebEm for UNIX can be compiled with a C++ compiler such as G++ v4, from the
GNU Compiler Collection (GCC).  Once you have the compiler ready and the
pre-requisites above installed (along with their development packages
containing the corresponding header files), check that the file downloaded
correctly (this may be md5sum on Linux):

# md5 beebem-0.0.13.tar.gz

Then extract the source code tarball:

# tar zxvf beebem-0.0.13.tar.gz
# cd beebem-0.0.13

If you use FreeBSD, then you need to edit the configure script, so please
look at the FreeBSD notes below at this point.

To install in your home account, for your specific user only, use the
--prefix flag for configure, otherwise BeebEm for UNIX will attempt to
install into /usr/local as a global install for all users - such a global
install must be performed as root.

# ./configure --prefix=$HOME/test --enable-econet
# make
# make install-strip

Remove the source directory, if no longer wanted:

# cd ..
# rm -fr beebem-0.0.13

BeebEm for UNIX is distributed with everything you need to get going,
so just change to the installed directory and run the BeebEm for UNIX
binary:

# beebem

or, for maximum nostalgia:

# beebem welcome.ssd

It'll run the BBC welcome disc! Cool! :-)

If BeebEm for UNIX does not run see the troubleshooting section below.

FreeBSD notes:

The configure script needs a tool called 'sdl-config' to determine
where SDL resources are located. However FreeBSD ports will postfix
this command with the SDL version number, so 'sdl-config' becomes
sdl11-config.

So before running the configure script above, please edit this file
so that every occurrence of sdl-config, becomes sdl11-config.

You can automate that change with sed like so:

sed s/sdl-config/sdl11-config/g configure > configure2
chmod u+x configure2
mv configure2 configure


Running BBC Micro Software
--------------------------

BeebEm for UNIX runs BBC Micro software held in disc or tape image files
are kept in a set of directories in your 'share/beebem' area.  Some disc
images are supplied with BeebEm for UNIX, in the 'media/discs' directory.
To run a disc image, press F12 and use the 'Discs' option on the menu to
allow you access to 'Select, load and run a disc'.

The images with an 'ssd' extension are DFS images.

You can download more disc and tape images from internet sites such as
these:

  http://www.stairwaytohell.com/
  http://www.bbcmicrogames.com/
  http://www.iancgbell.clara.net/elite/

Put the disc image files into the 'media/discs' directory.


BeebEm for UNIX FAQ
-------------------

Some commonly asked questions:

Q1. How do you open the configuration menu?

A1. Press F12.

Q1. How do you save your preferences in the configuration menu?

A1. Press F12 and select 'Discs' from the menu.  Select 'Save
    configuration'.
    
Q1. How do you change the default folder for loading disks or tapes?

A1. Press F12 and select 'Discs' from the menu.  Load a disk from your
    preferred directory and then select 'Save configuration'.

    BeebEm for UNIX will remember the folder you last loaded a disk or
    tape from and default to that the next time you select load.

Q1. What key is the BBC Micro's Break key mapped to by default?

A1. Pause/Break.


Configuring BeebEm for UNIX
---------------------------

To get BeebEm for UNIX running at an optimal speed there are some
configuration options that can be changed.  BeebEm for UNIX can display
the speed of emulation relative to a real BBC Micro and the number of
frames per second (fps) being displayed.  You should see these values in
the window title bar or at the bottom of the screen in full screen mode.

You may find that the best fps rate is achieved in full screen mode by
checking the Fullscreen box on the main configuration menu.

Choosing the 640x512 resolution in the Screen configuration menu will
improve the look of the screen.

If you have a fast PC you can also improve the sound quality by selecting
the 44.1kHz sample rate on the Sound menu.

For further information on speeding up BeebEm for UNIX see the notes for
the 'Hardware' menu below.

Once you have decided on a set up you can save it using 'Save
configuration' from the 'Discs' menu.


ROM Software
------------

Although most games software is supplied on disc images there is a large
selection of ROM software available for the BBC Micro.  There are
application ROMs such as word processors and drawing packages, there are
programming language ROMs such as FORTH and BCPL, and a whole range of other
software.  The BBC Micro's operating system, BASIC language and disc filing
system are all supplied on ROM.

The BBC Micro and Master 128 (and BeebEm for UNIX) support up to 16 ROM
slots (plus one for the operating system).  The BBC Micro ROMs are kept in
subdirectories of the 'share/beebem/roms' directory.  There is one
subdirectory for each of the four models emulated.

The ROMs that BeebEm for UNIX loads are configured in the '.beebem/Roms.cfg'
file in your home directory.  You can edit this file using any text editor
to add a ROM.  Change one of the 'EMPTY' lines to the name of the ROM file
you have put in one of the 'share/beebem/roms' sub-directories.  The first
17 lines in Roms.cfg are for the BBC Micro Model B emulation, the second 17
are for the IntegraB emulation, the third for the B Plus emulation and the
last 17 for the Master 128 emulation.

To run a ROM you will need to type a command into BeebEm for UNIX.  The
exact command will depend on the ROM itself and you may need to refer to any
documentation that accompanied the ROM.  Some ROMs list the commands
available when you type '*HELP' into BeebEm for UNIX.

Any of the 16 ROM slots can be configured as RAM.  Some software
(e.g. games) can make use of this RAM so its a good idea to leave at least
one slot as RAM.

Note that certain ROMs must be present for each emulation mode to work so do
not remove these:

 BBC Model B          - OS12.ROM, BASIC2.ROM, DNFS.ROM
 BBC Model B IntegraB - OS12.ROM, IBOS.ROM, BASIC2.ROM, WDFS.ROM
 BBC Model B Plus     - B+MOS.ROM, BASIC2.ROM, WDFS.ROM
 Master 128           - MOS.ROM, TERMINAL.ROM, BASIC4.ROM, DFS.ROM

The default set of ROMs configured for the Master 128 mode are MOS 3.20.
The MOS 3.50 ROMs are also included.  To use them rename the
share/beebem/roms/M128 directory to M128-MOS3.2 and rename the M128-MOS3.5
directory M128.


Keyboard Mappings
-----------------

For default mapping most of the keys are the same on the Beeb and PC but
these are not:

   PC               Beeb

   F12              N/A (Options)
   F1-F9            f1-f9
   Pause/Break      Break
   -_               ;+
   =+               -=
   `                _
   #~               ^~
   ;:               @
   '@               :*
   Insert           Copy


Using Disc Images
-----------------

BeebEm for UNIX emulates two double sided floppy disc drives, known as
drives 0 and 1 (the second sides are drive 2 and 3).  You can load a disc
image file into either drive 0 or 1 using the Discs menu in BeebEm for UNIX.

Some useful disc commands are:

  *CAT              - List files on the disc
  *DRIVE <drive>    - Change default drive to number <drive>
  *TITLE <title>    - Put a title on the disc
  *DELETE <file>    - Delete a file
  LOAD "<file>"     - Load a BASIC program
  CHAIN "<file>"    - Load and run a BASIC program
  SAVE "<file>"     - Save a BASIC program
  *RUN <file>       - Load and run a binary program

To boot (i.e. run) a disc you press Shift & Pause/Break (hold the shift key
down and press Pause/Break).  If a disc does not boot it is probably because
it has not been set up to be bootable.

A bootable disc needs to have a file called !BOOT on it and it needs to be
configured to run the !BOOT file when its booted.  If a disc image has a
!BOOT file on it but it does not boot then try running the following command
(you will need to switch off write protection first):

  *OPT4,3

If you want to write data to a disc image (e.g. save a game position) you
will need to make sure that 'Read only' is switched off on the Discs menu
for the drive you are using.  Disc writes will then write data straight back
to the image file on your PC disc.

If you want to use ADFS discs in the Master 128 mode then load an ADFS disk
image (such as the MasterWelcome.adl image in share/beebem/media/discs) and
type '*ADFS' to mount it.  You can also press A & Pause/Break to mount an
ADFS disc.

ADFS is also supported in Model B and B Plus modes.  Note that in Model B
mode you will need to select the Acorn 1770 disc controller and add 
ADFS-1.30.rom to Roms.cfg.

You can find out more information about using discs by reading the DFS (Disc
Filing System) guides available on the internet.

WARNING - some of the disc images you will find on the Internet or that you
create yourself will have an invalid catalogue (they contain just enough
information for disc reads to work but not writes).

When you write enable a disc BeebEm for UNIX checks the disc catalogues and
it will display a warning message if either are invalid.  If you get a warning
message then do NOT write to the disc image, you will lose data.

To fix an invalid catalogue do the following:

1. Start BeebEm for UNIX and load the invalid image into drive 1.

2. Create a new disc image file in drive 0.

3. If the invalid image uses a Watford DFS 62 file catalogue then
   format the new disc image with a 62 file catalogue (you need the
   Watford DFS ROM installed), type:
     *ENABLE
     *FORM80 0

4. Copy all the files from the invalid disc to the new one and set the
   shift break option and title, type:
     *COPY 1 0 *.*
     *OPT4,3
     *TITLE <title>

The new image will now have a valid catalogue.  If you are using double
sided images then remember to format and copy both sides (the second sides
of disc 0 and 1 are 2 and 3).


SCSI & SASI Disk Support
------------------------

BeebEm for UNIX supports emulated SCSI and SASI hard disks.  There are 4
10MB pre-formatted ADFS SCSI disk images in the /share/beebem/media/scsi
sub-directory in your user's home directory (the scsi?.dat files).  The
disks can be used in Model B (need to add ADFS-1.30.rom to Roms.cfg), B Plus
or Master 128 mode.  To use the disk images enable hard drive emulation on
the Devices menu and press A & Pause/Break to boot in ADFS mode (ignore the
error for drive 4 if in Master mode).  The hard disks then appear as drives
0 to 3.  Floppy disks can still be accessed as drives 4 and 5.

There are some demo tunes in scsi0.dat which you can listen to with the PLAY
program.

There is also the sasi0.dat file which is a Torch Z80 hard disc image (see
README_Z80.TXT).


Using Tape Images
-----------------

BeebEm for UNIX emulates a cassette recorder.  You can load a tape image
file using the Tapes menu in BeebEm for UNIX.  There is a sample tape image
in the share/beebem/media/tapes folder.

Some useful tape commands are:

  *TAPE             - Select tape filing system
  *CAT              - List files on the tape
  LOAD ""           - Load a BASIC program
  CHAIN ""          - Load and run a BASIC program
  SAVE "<file>"     - Save a BASIC program
  *RUN              - Load and run a binary program

Most tapes can be run by typing:

  *TAPE
  CH.""

if that does not work, rewind the tape and try:

  *TAPE
  *RUN

Tape loading can be quite slow so BeebEm for UNIX has menu options to
artificially speed up loading.  You can also use the speed menu to speed
up the whole emulation, which speeds up tape loading.


Econet Support
--------------

BeebEm for UNIX emulates an econet network.  This allows multiple instances
of BeebEm for UNIX to communicate with other.  Enable econet support from
the Devices menu in BeebEm for UNIX.

Each machine attached to an econet has a station number (between 1 and 254)
associated with it.  An econet may also have a file server attached to it
(special station number 254).

BeebEm for UNIX emulates an econet using IP datagrams.  Each station on the
network needs a unique IP address and port number combination.  Each
instance of BeebEm for UNIX needs to know the address and port number of the
other instances on the network, this information is configured in the
'Econet.cfg' file.

The default Econet.cfg file has been set up so that the first 5 instances of
BeebEm for UNIX run on a single machine will get allocated unique station
and port numbers.  The first instance will be allocated a station number 254
(file server) and next 4 will be allocated station numbers 101 to 104.  See
the notes in Econet.cfg for more details.

An econet file server enables a disk file system to be shared by all of the
stations on the network.  Acorn produced various versions of file server
software.  The level 1 and 2 file server software is included in disk images
with BeebEm for UNIX.  The server software must be run on station number
254.

To run the level 1 server, load the 'econet_level_1_utils.ssd' disk image
and run the file server by typing 'CH."FS"'.

You will be prompted for:
 - Number of files per user - enter 3
 - Manual configuration - enter Y
 - Directory for first station - enter A
 - Station number - enter 101
 - Directory for second station - enter B
 - Station number - enter 102
 - Directory for third station - just press enter

The file server will then start running and report that it is ready.

The level 2 server is a little more complicated to set up.  It requires the
6502 second processor support to be enabled and requires a special "master"
disk to be formatted (must be a double sided disk).  I suggest you read the
"The Econet Level 2 Fileserver Manager's Guide" (available here
http://www.bbcdocs.com/) if you want to set up a level 2 server.

To use the econet file system from a station you will need to have a ROM
installed that supports the econet file system (such as the Acorn DNFS ROM
installed in Model B mode).  To switch a station into econet file system
mode press N & Pause/Break.  The econet station number should be shown on
screen.  To switch without pressing the break key type '*NET'.  You can then
use commands such as *CAT, LOAD, SAVE and CHAIN to access files on the
server.

The econet emulation in BeebEm for UNIX is not perfect and is susceptible to
timing issues.  When a message is being sent between stations BeebEm for
UNIX waits for a short time for the econet to become free again before
sending the next message.  If the delay is too small messages can interfere
with each other and cause a "Net Error" to be reported.  If it is too long a
station can report "Line Jammed".  The waiting time is set by default to
100000 cycles (0.05s) but can be overridden by a command line option
'-EcoFF'.  If you see "Net Error" report try a '-EcoFF 500000', for "Line
Jammed" try '-EcoFF 50000'.


Master 512 Co Processor Support
-------------------------------
The software now supports the Master 512 Co-Processor board.

The Master 512 board was an add-on card to the BBC computers which allowed you
to run DOS Plus (based on CP/M but largely MS-DOS compatible) software. 
It was 80186 based, ran at 10 MHz came with 512K of RAM (or 1MB with third 
party upgrades) and connected to the BBC via the Tube interface.

You start the Master 512 by selecting 80186 Second Processor off the Devices
menu. This will boot off a 10MB hard disc image (ADFS Drive 0) which comes
pre-installed with the original DOS Plus system and the GEM application software.
The emulator will also recognise Drive A and B if a suitable DOS Plus formatted
disc is loaded. The emulator should recognise various disc formats (look at
the DISK program for more info) but I would only recommend using 640K ADFS .adl
format and 800K DOS Plus .img format discs.

GEM can be started by typing 'GEM' from the command prompt. GEM uses the AMX
mouse support which must be enabled for the mouse to work. I would recommend you
start GEM first then enable AMX Mouse support afterwards. Please note that mouse
support works but due to the acceleration factors built into the GEM driver, 
mouse movement can be a bit erratic. I hope to improve this in future versions 
of the emulator.

The Master 512 should run most MS-DOS 2.1 compatible software but no guarantees
are given for what will and what won't work.

I will start a library of known good disc images at :

http://www.g7jjf.com/512_disc_images.htm

Please feel free to send me any more you know work with the Master 512.


Acorn Z80 Co Processor Support
------------------------------
The software now supports the Acorn Z80 Co-Processor board.

The Acorn Z80 was a CP/M based system running with 64KB RAM on a Z80
processor.

You start the Acorn Z80 by selecting Acorn Z80 Co-Processor off the Devices
menu. If you load a CP/M system disc in drive 0, the system will then boot
to an A: prompt.

I have included a CP/M Utilities disc in the installation which will boot
the system. The Acorn Z80 originally came with 7 discs which can be download
from my web site at :

http://www.g7jjf.com/acornz80_disc_images.htm

These discs contain the Acorn Z80 application software including :

CPM Utilities
BBC Basic
Mallard Basic
CIS Cobol
MemoPlan
GraphPlan
FilePlan
Accountant
Nucleus

You will also find some manuals for this software on my site as well.

The Acorn Z80 should also run most CP/M compatible software but no guarantees
are given for what will and what won't work.

I will start a library of known good disc images at :

http://www.g7jjf.com/acornz80_disc_images.htm

Please feel free to send me any more you know work with the Acorn Z80.


Menu Options
------------

BeebEm UNIX Menu:

  About        - Show version number and date of BeebEm for UNIX.

  Reset        - "Power-On" reset for when a game crashes.

  Quit         - Quit BeebEm for UNIX.

  Fullscreen   - Switch to full screen mode.

  Okay         - Accept Preferences

System Menu:

  BBC Model           - Allows you to switch between the BBC Model B types
                        and Master 128 emulation.

  Model B Floppy Controller - Allows you to select the Model B disc hardware
                        emulation.  To use an alternative floppy disc 
                        controller (FDC) board you will need to use an
                        appropriate ROM (e.g. Acorn DFS2.26 for the Acorn 
                        1770 board).

  Undocumented Instructions - Some games use undocumented instructions so
                        try enabling the full set if something does not 
                        work.  Selecting documented instructions only may
                        speed BeebEm for UNIX up.

  Ignore Illegal Instructions - When disabled a dialog appears detailing
                                the opcode and program counter.

Sound Menu:

  Sound support  - Switch sound on or off.

  Exponential Volume - Enables an exponential volume scale.  Makes the 
                       sound output better.
                       
  Sound is low latency -  The audio support will allow a longer latency /
                          lag-time for sound effects to sync with the screen.

  Speech support - Switch text to speech generation on or off (see features
                   for visually impaired users below)

  Sound Effects  - Switches on the sound of the cassette motor and the
                   sound of tape software loading.

  44.1 kHz       - Sets the sound sample rate.  The higher it is the better
  22.05 kHz        the sound quality but the slower BeebEm for UNIX runs.
  11.025 kHz

  Full Volume    - Set the sound volume.
  High Volume
  Medium Volume
  Low Volume

Speed Menu:

  Real Time    - Runs BeebEm for UNIX at the same speed as a real BBC Micro.

  Emulator Speed - Runs BeebEm for UNIX at a fixed speed relative to a real
                   BBC Micro.  The frame rate may need to be reduced for the
                   higher speeds.

Devices Menu:

  65C02 Second Processor - Enables/disables the 65C02 second processor 
                        emulation.  Note that in Master 128 mode the second 
                        processor  may be disabled in the CMOS settings.
                        To enable it type this command and press 
                        break (F12):
                            *CONFIGURE TUBE

  Torch Z80 Second Processor - Enables/disables the Z80 second processor 
                        emulation.  See the README_Z80.TXT file for more
                        details.

  Acorn Z80 Second Processor - Enables/disables the Acorn Z80 second
                        processor emulation.

  Master 512 80186 - Enables/disables the Master 512 80186 Co-Processor.


  Econet active       - Switch Econet emulation on or off.  See the Econet 
                        section above for more details.

  Hard drives active  - Switch SCSI/SASI hard drive emulation on or off.
                        See the SCSI/SASI section above for more details.

  Microvetic Touch Screen active - Enable/disables touch screen support.

Keyboard Menu:

  Disabled

AMX Menu:

  On/Off          - Switch AMX mouse on or off.  Note that you may find the
                    AMX mouse easier to use if you reduce the BeebEm for
                    UNIX speed to 0.9 or 0.75 speed.

  L+R for Middle  - Simulates a middle button press when you press the left
                    and right buttons together.

  Map to 160x256  - Coordinate range to map the mouse position to.
  Map to 320x256    Pick the one that gives AMX mouse movements nearest to
  Map to 640x256    your normal mouse movements.

  Adjust +50%     - Percentage to increase or decrease the AMX map sizes.
  Adjust +30%       Pick the one that gives AMX mouse movements that are
  Adjust +10%       slightly greater than the corresponding normal mouse
  Adjust -10%       movements.  You can then match up the AMX and normal
  Adjust -30%       pointer positions by moving the normal pointer to the
  Adjust -50%       edges of the BeebEm for UNIX window.  This is easiest
                    to do in full screen mode.

Tapes Menu:

  Unlock tape         - Removed the lock flag from files as they are loaded.
                        This enables you to *LOAD a locked file.
  Tape speed          - Select the speed at which tape software loads and 
                        saves.
  Insert tape    - Load a tape image.  To load software off a tape type:
                   *TAPE
                   PAGE=&E00
                   CH.""
  Rewind tape         - Reset the tape position to the start.

Screen Menu:

  Grille Graphics      - When rendering 256 Beeb scanlines on 512 UNIX
                         scanlines, 1 x scanline represents the Beeb
                         scanline and the other is black.

  Grille Teletext      - see Grille Graphics

  Hide mouse pointer   - Show or hide the mouse cursor while it is over the
                         BeebEm for UNIX window (useful when using the AMX
                         mouse).

  Display FPS          - Show or hide the relative speed and the number of
                         frames per second.
                         
  LEDs are:            - The Beeb keyboard and disc (1770 only) LEDs can be 
                         shown at the bottom of the BeebEm for UNIX window.

  Busy-wait:           - When BeebEm for UNIX isn't busy doing stuff, it'll
                         release time back to the OS.  Some systems take too
                         long to return to BeebEm for UNIX again and the
                         emulator consequently runs too slowly, so the busy
                         wait allows you to waste time in an a loop, rather
                         than give time back to the OS.

  Monitor is:          - Selects the type of monitor to emulate.

  Fullscreen Resolution - Screen resolution to use in full screen mode.  The
                          higher resolutions may look better.

  Windowed Resolution  - Sets the window size.

ROM writes Menu:

  Allow ROM writes    - Enable/disable ROM writes for each ROM slot.
                        ROMs read at start-up are write protected by
                        default.  Some ROM software was supplied on 
                        small expansion boards that had some RAM on them.
                        These ROMs require write access in order to work.

Discs Menu:

  Select, load and run a disc - Loads a disc image into drive 0 and boots
                                (runs) it.

  Load state   - Load the state of BeebEm for UNIX.  Note that ROM data is
                 not saved so if you have changed the ROMs that are loaded
                 when BeebEm for UNIX starts (in Roms.cfg) then a restored
                 state may not work.  State files are put in the
                 'share/beebem/state' directory by default.

  Change disk in drive 0 - Load a disc image into drive 0 or 1.  Discs are
  Change disk in drive 1   write protected when loaded to prevent any
                           accidental data loss.  Boot a disc by pressing
                           Shift & Pause/Break.

  Create new disc image in drive 0 - Creates a new disc image in drive 0 or
  Create new disc image in drive 1   1.  Use the filetype field to select
                                     the type of disc image to create.  New
                                     disc images are write enabled when
                                     created.  The images have a standard 31
                                     file catalogue by default.  If you want 
                                     a 62 file catalogue (Watford DFS) then
                                     format the disc.

  Save state   - Save the state of BeebEm for UNIX.  This is useful for
                 saving your position in a game for example.  Note that ROM
                 data is not saved so if you have changed the ROMs that are
                 loaded when BeebEm for UNIX starts (in Roms.cfg) then a
                 restored state may not work.  State files are put in the
                 'share/beebem/state' directory by default.

  Disk 0: Read only - Toggles write protection for drive 0.  Keep discs
                      write protected unless you intend to write to them.
                      Also see the WARNING above in the 'Using Disc Images'
                      section.
  Eject Disk 0 - Ejects the disc image currently loaded.  The name of the
                 file currently loaded is shown.

  Disk 1: Read only - Toggles write protection for drive 1.  Keep discs
                      write protected unless you intend to write to them.
                      Also see the WARNING above in the 'Using Disc Images'
                      section.
  Eject Disk 1 - Ejects the disc image currently loaded.  The name of the
                 file currently loaded is shown.

  Save configuration - Saves the BeebEm for UNIX settings to the current
                       preferences file.  Settings include the selected 
                       menu options, window position and CMOS RAM contents.


Command Line Options
--------------------

The following command line options can be passed to BeebEm for UNIX:

  -EcoStn <Econet station number>
  -EcoFF <Econet flag fill timeout, see the econet section>
  <disk image file name>
  <tape file name>
  <state file name>
  
If a disk image or a state file name is passed to BeebEm for UNIX on the
command line it will be run automatically.  The name can include the full
path or it can just be the name of a file in the 'state/beebem/media/discs'
or 'share/beebem/state' directory.

If a tape image name is passed to BeebEm for UNIX on the command line it
will be loaded.  The name can include the full path or it can just be the
name of a file in the 'share/beebem/media/tapes' directory.


Emulated Hardware
-----------------

The hardware emulated by BeebEm for UNIX is that of a standard BBC Micro
Model B, a Model B with IntegraB board, Model B Plus or Master 128 with a
few small additions.  An optional 65C02 second processor is also emulated.
The emulation is near enough accurate to run most software.

Hardware common to all the Model B types and Master 128:

  74689 Sound chip with 3 tone channels and one noise channel.
  uPD7002 Analogue to Digital Converter
  32K RAM
  6845 Cathode Ray Tube Controller (CRTC)
  Acorn proprietary VIDPROC (Video Processor)
  SAA5050 Teletext generator
  System and User 6522 Versatile Interface Adaptors (VIAs)
  "IC32" Addressable latch
  Full BBC Micro keyboard
  ROMSELect Register
  6854 Advanced Data-Link Controller (Econet)

Model B Specific hardware:

  Full 6502 Processor with all undocumented opcodes
  Sixteen 16K Paged ROM banks, with Sideways RAM option
  16K OS ROM
  8271 Floppy Disc Controller

Model B Plus Specific hardware:

  Four 16K Sideways RAM banks
  16K B+ MOS ROM
  20K Video Shadow RAM
  8K Filing System RAM
  4K Screen Operations RAM

Master 128 Specific hardware:

  65C12 Processor with all undocumented opcodes filled in with
    corresponding undocumented 6502 opcodes
  Seven 16K Paged ROMs
  Four 16K Sideways RAM banks
  16K MOS ROM
  20K Video Shadow RAM
  8K Filing System RAM
  4K Screen Operations RAM
  1770 Floppy Disc controller
  146818 Realtime Clock and CMOS RAM (50 bytes)
  ACCess CONtrol register

65C02 Second Processor:

  65C12 Processor
  64K on RAM
  2K boot ROM
  TUBE ULA chip

For information on the IntegraB see the documentation in the 'doc'
directory.


Troubleshooting
---------------

This version of BeebEm for UNIX will work on on most UNIX systems running
freedesktop.org's pkg-config, GTK+ 2.2 and Simple DirectMedia Layer (SDL)
1.2 or later.

Press F12 to access the configuration menu, and select 'Discs' then 'Save
configuration' to store your preferences.

If something goes wrong and you want to clear your user configuration, then
just delete '.beebem' in your home directory and all settings will be
recreated with default values.  (Backup your hard disk images first of
course!)

If you have any problems please email me and I'll try to help out:

  frutbunn AT gmail DOT com


Uninstalling BeebEm for UNIX
----------------------------

If you wish to uninstall BeebEm for UNIX then delete the bin/beebem binary
and the share/beebem directory from the directory you installed BeebEm for
UNIX in.

Your user configuration files are stored in $HOME/.beebem. Please
be aware that the SASI/SCSI hard disc images are quite large, so
if you remove BeebEm for UNIX, you may wish to delete this directory too.

All user specific configuration and hard disc images etc will be
lost of course!


Known Problems and Planned Future Development
---------------------------------------------

Current known problems with the emulator:

    * Keyboard mapping still needs work, and is QWERTY only.
    * Fullscreen FPS indicator does not work in lower resolutions.
    * When fullscreen/windowed view switches sometimes the GUI isn't
      repainted. (Press tab a few times).
    * Watch out for alert boxes displayed over the GUI, sometimes they
      don't standout!

Much of the BeebEm for Windows functionality has yet to be ported - such
as the Logical and User Defined Keyboard Mapping configuration options,
for example.

The video emulation needs most work.  All resolutions other than the 640x512
are a 'short term' botch!  The aim is to greatly improve performance of video
emulation (for SDL) - maybe even X-Video support (for X11)!

Amongst other things, BeebEm for UNIX also needs much better sound
integration (i.e.: done properly like the Windows version instead of the
current hack), a debugger and a native file selector to help finally remove
the GTK+ dependency.


Authors
-------

Thanks go to the following people for contributing to BeebEm for UNIX:

  David Gilbert
  Nigel Magnay
  Robert Schmidt
  Mike Wyatt
  Laurie Whiffen
  Richard Gellman
  Ken Lowe
  Jon Welch
  Rob O'Donnell
  David Eggleston

If there are any other features you would like to see in the UNIX version
of BeebEm then send me an email.  I cannot promise anything but I may find
some time to add them.

David Eggleston
frutbunn AT gmail DOT com
http://beebem-unix.bbcmicro.com/