
FreeKey v0.91b
(C)1998, by Nick Harvey <njaharve@uwaterloo.ca>

URL: <http://www.undergrad.math.uwaterloo.ca/~njaharve/freekey.html>


What is FreeKey?
----------------
A driver which allows you to use a Newton keyboard on you Pilot. FreeKey
consists of an application program, and a HackMaster extension.


What is HackMaster?
-------------------
HackMaster is a great program which manages all your system hacks for you.
HackMaster was written by Edward Keyes, it is shareware, and it costs $5 to
register it. More information is available at <http://www.daggerware.com/>.


Do I need to install HackMaster?
--------------------------------
Yes, in order to use FreeKey, you must install HackMaster.


Is source code available?
-------------------------
Yes, source code is included with all distributions of FreeKey.


How much memory does it use?
----------------------------
Currently, 13k.


How much battery power does it drain?
-------------------------------------
When FreeKey is turned off, it drains nothing at all.
When FreeKey is turned on, but your Pilot is off, it also doesn't drain any
power at all.
I have yet to conduct some tests to determine how much power is drained when
the keyboard is in use.


How did you make this program?
------------------------------
I used the gcc cross-compiler for the Pilot, pilrc, and some custom tools by
Tatsuya Aoyagi, all running under Linux.


How much does FreeKey cost?
---------------------------
As you may have guessed from the name, it's free. However, I still retain
its copyright.


Standard Legal Disclaimer
-------------------------
FreeKey is provided as-is with no warranties expressed or implied. You
use this software at your own risk.


Features
--------
 - Graffiti ShortCuts can be entered
 - Up/Down Arrows now move up/down a line in multi-line text fields
 - Foreign characters are (nearly all) supported
 - Keys automatically repeat when you hold them down
 - Menu shortcuts can executed by holding down the Command key
 - The status of the CapsLock key is displayed with the Graffiti indicator
 - Special Symbols (such as bullets, etc.) are (mostly) supported
 - Hot-Keys to switch between programs
 - (Optional) Dvorak Keyboard layout
 - (Optional) The Pilot speaker beeps every time you press a key


Known Bugs
----------

  -- Cosmetic --
	- Graffiti indicator appears briefly, then disappears when the auto-shift
	 kicks in
	- If the cursor is at the start of the line in a text field, and you press
	 the up (or down) arrow, the cursor flashes briefly at the end of the
	 previous line
 
  -- Feature Flaws --
	- CapsLock doesn't capitalize foreign characters
	- Graffiti Shortcuts don't behave exactly right
	- The up/down arrows don't take font-spacing into account
	- The up/down arrows don't cause the scrollbar to update

  -- Design Flaws --
    - No convenient way to customize keyboard layouts
	- We use polling instead of interupts
	- Programs receive null events when the keyboard is in use


Key Layout
----------
FreeKey offers both a QWERTY and a Dvorak keyboard layout. Below is a table
of some `special' key strokes:

	-- Menus --
	Command <x> - Menu Command <x>
    
	-- Arrows --
    LeftArrow - Cursor Left
    RightArrow - Cursor Right
    UpArrow - Move cursor up a line (in multiline text fields)
    DnArrow - Move cursor down a line (in multiline text fields)
    UpArrow - Page Up (otherwise)
    DnArrow - Page Down (otherwise)
    Opt UpArrow - Page Up
    Opt DnArrow - Page Down
    Opt Shift UpArrow - Previous Field
    Opt Shift DnArrow - Next Field

	-- Foreign Characters --
	Opt ` - Grave Accent (if prev char. was appropriate)
	Opt ' - Aigu Accent (if prev char. was appropriate)
	Opt ^ - Circumflex Accent (if prev char. was appropriate)
	Opt ~ - Tilde Accent (if prev char. was appropriate)
	Opt : - Diaeresis Accent (if prev char. was appropriate)
	Opt o - Ring-Above Accent (if prev char. was appropriate)
	Opt C - C cedilla
	Opt A - Ligature AE
	Opt c - c cedilla
	Opt a - Ligature ae
	Opt ? - Inverted ?
	Opt ! - Inverted !

	-- Special Symbols --
    Opt z - Shortcut
    Opt t - TM
    Opt g - (C)
    Opt r - (R)
    Opt s - Section Symbol
    Opt q - Bullet
    Opt u - Mu
    Opt y - Yen Symbol
    Opt o - Nought
    Opt p - Pound Symbol
    Opt b - Beta
    Opt d - Degrees
    Opt / - Divide
	Opt Enter - Pilcrow (Paragraph Symbol)
    
	-- Control Characters --
    Ctl Space - Keyboard Entry Dialog
    Ctl m - Menu
    Ctl f - Find
    Ctl c - Calculator
    Ctl a - Applications
    Ctl ` - Switch to FreeKey Application
    Ctl 1 - HW Key 1
    Ctl 2 - HW Key 2
    Ctl 3 - HW Key 3
    Ctl 4 - HW Key 4
    Ctl 5 - Switch to Custom (* not implemented)
	    ...
    Ctl 0 - Switch to Custom (* not implemented)
    Ctl Alt Backspace - Power


Release History
---------------
3/7/98 - Development Begins
3/17/98 - Initial public release of v0.9b
4/4/98 - Initial public release of v0.91b


Acknowledgements
----------------
Joe Sacher, Jim Thompson, Calvin Parker:
For information on building the adaptor cable

Joseph deu Ngoc & Sang deu Ngoc:
for their help in building my Newton Keyboard -> Pilot cable

Ian Barclay:
For releasing the source code to SimpleTerm

Wes Cherry:
For pilrc and HackMaster sample code

Tatsuya Aoyagi:
For the System Sound Hack sample code & build tools
