RomFont v1.0                                     John Elliott, 2 November 2007
==============================================================================

  RomFont is a tool to manipulate the fonts stored in the ROM images used by
Spectrum, ZX81 and ZX80 emulators.

Launching RomFont
~~~~~~~~~~~~~~~~~

  RomFont is a Java application. If you've got a recent Java runtime 
environment (anything from 1.2 onward), then just double-clicking romfont.jar
should be sufficient to launch it. If you've got an old 1.1.x version like
me, you can try launching it with romfont.bat (Windows) or romfont.sh (Unix).
It will work under MacOS 9, if launched with JBindery.

In use
~~~~~~

  Once RomFont is up and running, you'll have an application window with 
three menus:

- File: Allows you to load and save ROM images.

	RomFont should be able to use any format of ROM image that contains
	somewhere within it a 48 BASIC ROM, provided that the ROM falls on a
	128-byte boundary. So a simple 16k dump of the Spectrum ROM is fine, as 
	is ROMS.BIN out of the 'Z80' emulator or a ROM file with a +3DOS
	header.

	Once a ROM is loaded, any candidate fonts it contains will be listed
	in the main window. If none are found the items on the 'Font' menu
	will be disabled.

- Font: Used to view, import or export fonts within the ROM. All options on
	this menu apply to the currently selected font in the font list.

	- View: Opens a window giving a preview of what the font looks like.

	- Import: Imports a disk file over the currently selected font. The
	 disk file can be in any of these formats:

		* Raw (768 bytes for Spectrum fonts, 512 for ZX80/81 fonts).
		 Just a plain dump of the font area of the ROM.

		* +3DOS (the same as Raw, but with a +3DOS header).

		* PSF (PC Screen Font; versions 1 and 2 are supported).

		* Codepage 437 (a 2048-byte dump of a PCDOS 8x8 font).

	  Raw files are assumed to be in the same format as the current ROM
	  image (so loading a ZX81 raw font into a Spectrum ROM, or vice 
	  versa, will scramble the letters hopelessly). So are +3DOS fonts 
	  with an unknown size or load address.

	  Other file formats (+3DOS with a known size and load address, PSF
	  and CP437) will be translated to map the characters to where they
	  should be. So if the ZX80 ROM font is exported in +3DOS or PSF
	  format, and then imported into a Spectrum ROM, the numbers and 
	  capital letters will be moved to replace their Spectrum 
	  counterparts.

	  (Note: if a PSF has no Unicode directory, it is assumed to use the
	  ISO-8859-1 codepage).

	- Export: Exports the currently selected font as a disk file. There 
	 are three options, corresponding to the three supported file formats
	 for saving:

		* Raw
		* +3DOS
		* PSF (version 2)

	 +3DOS fonts will be saved with the correct load address, and PSF2
	 files will be saved with a Unicode directory, so the import will
	 correctly rearrange characters for both of these.

- Help: For the About box.

A note on the source
~~~~~~~~~~~~~~~~~~~~
  This program was compiled with JDK 1.1 and uses the Awful Window Toolkit. 
It will therefore not only build with the JDK, but with Microsoft's J#.

Copying
~~~~~~~

    Copyright (C) 2007  John Elliott <jce@seasip.demon.co.uk>

    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., 675 Mass Ave, Cambridge, MA 02139, USA.
