nanowasp, an emulator for the microbee 128k
Copyright (C) 2000,2001  David G. Churchill <froods@alphalink.com.au>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA



Multi-Z80 CPU emulator by Neil Bradley (neil@synthcom.com)

Allegro game library by Shawn Hargreaves et al.  
http://www.talula.demon.co.uk/allegro/



==========
Change Log
==========

2000.12.27 - initial release

2001.01.05 - completely rewrote the CRT controller and display code.  the
             old code was much too slow (it emulated nearly every detail
             of the CRTC exactly).  The new version isn't near as accurate,
             but everything should still run OK (not that you can tell 'cause
             there's no floppy disk controller yet :P).  Also, it now runs
             a great deal faster, and I haven't optimised memory writes yet.

2001.07.04 - initial floppy disk controller emulation completed.  this version
             doesn't implement the write sector or format track instructions.
             the code is a bit hacked up at the moment, mostly making sure
             things work at the moment.  the next version should be more robust
             and complete.


=======
Welcome
=======

This is an emulator for the Microbee 128k Disk System made by
Applied Technology Pty Ltd in the early 1980's.  An emulator
(in this sense) is a piece of software that aims to simulate
certain hardware in realtime, as accurately as necessary.
With the hardware emulated, the original software for the
hardware should run under the emulator.

nanowasp is currently in the early development stage.
So far, the CPU, memory mapper, CRT controller, miscellaneous
graphics hardware and keyboard are emulated.  Also, rudimentary
FDC support is now included, along with a disk image containing
system software (along with various other junk).  At the moment
this boot disk is permanently loaded in the first disk drive.
The emulator will boot into CP/M (unless the 'm' key is held
during bootup, in which case the ROM monitor will be loaded).
Various programs are on the disk, and are runnable (although
slowly, and undoubtably buggily).


The next features on the development schedule, in rough order
of priority are:

- Completion of FDC emulation.
- Porting of code to Linux, using the SDL library for graphics, etc.
- Release of tools to dump disk images over serial cable from the Microbee,
  and to edit disk images.
- A GUI, to load disks, etc.
- Z80 PIO emulation (for sound, serial port, etc.)

Feature requests are welcome, but probably won't get much attention
until the emulator is in a reasonably stable state (including the
implementation of the GUI).

===============
Getting Started
===============

At the moment, simply run nw.exe.  It requires a video card
that will support 800x600x8.  You may need to load a VESA
BIOS extender (such as the Scitech Display Doctor, 
http://www.scitech.com/).  nanowasp requires a number files to
be present to run:

rom1.bin - the boot ROM from the Microbee.  This is included
           in the package (but please see the notice towards
           the end of this file on copyright).

charrom.bin - the character ROM from the Microbee.  I have
              now had a chance to dump the real one, and it is
              also included in the package.

bootdisk.img - an image of a disk containing system software.

gui/nanowasp1.tga - the nanowasp logo :)

nanowasp will complain if it can't find or load any of these
files.  Once running you should see the text "MicroBee 128k CP/M
vers 2.20" appear at the top of the screen, and a prompt just below
this.  The IBM's keys are mapped fairly intuitively to the MicroBee's 
keys, with the few odd ones being (the whole keyboard will be configurable
eventually):

Line feed   -  Enter on numeric keypad
Break       -  Plus on numeric keypad
extra keys  -  F1 - F6

pause, uh, pauses the emulator
F11 resets the emulator
F12 exits the emulator

Note that only the left control and shift keys are active.  The
"extra keys" actually didn't appear on the MicroBee keyboard,
but can be generated by the hardware -- who knows if any software
makes use of them?  Also note that the characters on the shifted
number keys are different to the IBM keyboard (e.g. shift-2 is
'"', not '@').


Some CP/M commands:

dir        - directory listing
dir *.com  - directory listing of .com files (* is shift-';')
ws         - run ws.com (wordstar)



A couple of commands for the monitor (hold the 'm' key and reset the emulator (F11)
to enter the monitor):

E <address>  -  display memory
e.g.
E F800


A <address>  - edit memory
e.g.
A F000


B            - reboot


P            - clear screen


Side note: F000-F7FF is the display memory.  If you edit this you'll see
           characters appear on the screen.


Have fun.


=========
Copyright
=========

An aspect of emulators that always draws concern is that of
copyright on the ROMs and/or other original software.  In this
case the only ROMs necessary for operation of the emulator are
the character and boot ROMs.  I can certainly see how distribution
of game ROMs for systems that are currently on the market would
affect the manufacturers and game developers of said ROMs.  In
this case, however, the hardware and software is approximately
twenty years old (although copyright lasts 70? years).  Also,
the company that produced the MicroBee, Applied Technology Pty
Ltd, has been long out of business.  With this in mind I am
distributing the character and boot ROMs, and some other software 
with the emulator.  In any case, I am quite willing to co-operate
with the copyright owners, should they want me cease distribution 
of these ROMs (I would contact them in advance, but have no idea
whom to contact).
