@database MMKeyboard.guide
@master MMKeyboard.guide
@$VER: 2.18 (23.06.2002)
@author "Guido Mersmann"
@(c) "Guido Mersmann"
@index Index
@smartwrap

@macro MS "@{par}@{jcenter}@{FG SHINE}$1@{par}@{JLeft}@{FG TEXT}"
@macro MH "@{par}@{jcenter}@{FG HIGHLIGHT}$1@{par}@{JLeft}@{FG TEXT}"
@macro MC "@{par}@{jcenter}@{FG SHINE}$1@{par}@{JLeft}@{FG TEXT}"

@node "Main" "MMKeyboard"
@{JCenter}
@{code}
@{FG HIGHLIGHT}MMKeyboard V2.18

(C)2001-2002 by Guido Mersmann@{FG TEXT}

MMKEYBOARD IS A GIFTWARE PRODUCT

READ THE DISTRIBUTION SECTION FOR INFORMATION ON DISTRIBUTION

@{FG SHINE}Contents
----------@{FG TEXT}
@{"           Introduction           " link "Introduction"}
@{"        System Requirements       " link "SystemRequirements"}
@{"           Feature List           " link "FeatureList"}
@{"           Distribution           " link "Distribution"}
@{"          How To Install          " link "HowToInstall"}
@{"            MMKeyboard            " link "MAST"}
@{"             Hardware             " link "Hardware"}
@{"      The big keyboard test       " link "Keyboard"}
@{"              Bonus               " link "Bonus"}
@{"               FAQS               " link "FAQS"}
@{"             History              " link "History" 999}
@{"              Future              " link "Future"}
@{"             Bug List             " link "Buglist"}
@{"              Thanx               " link "Thanx"}
@{"            The Author            " link "Author"}
@{"    My other amiga projects!      " link "OtherPrgs"}
@endnode
@node "Introduction" "Introduction"

@{MS "Introduction"}

Why another interface for IBM-PC keyboards? Well, it's very easy. There weren't any perfect working
interfaces available. In addition to that, there was no interface that supported the multimedia
keys.@{par}

MMKeyboard supports any key on any keyboard! No special driver for each keyboard like on the PC!
Only one small commodity for all keyboards is required to smuggle the multimedia keys into the
system.

@endnode
@node "Systemrequirements" "Systemrequirements"

@{MS "System requirements"}

MMKeyboard (should work) works on all Amigas with OS 2.0 or higher.
Some features require OS3.0 or up!@{par}

There is also a @{"interface hardware" link "Hardware"} and a windows keyboard with windows keys required!@{par}

@{b}When using Amithlon no external hardware is required.@{ub}

@endnode
@node "Featurelist" "Features"

@{MS "Features"}

° Commodity@{par}

° All multimedia keys are supported! (play, pause, wakeup, standby, ...)@{par}

° Real hardware password with (optional) software GUI@{par}

° Full @{"reset handler" link "FAQSResetHandler"} compatible!@{par}

° Powermode allows to turn on and off your Amiga by using the keyboard.@{par}

° Full @{"Amithlon" link "FAQSAmithlon"} support.@{par}

° Easy configuration@{par}

° Online Help@{par}

° 100% Assembler@{par}

° Locale Support@{par}

@endnode
@node "Distribution" "Distribution"

@{MS "Distribution"}

This program should be published on every public medium, as long as all files in the archive are
unchanged. If this medium is a CD I expect a free copy.@{par}

@{b}Distribution on AminetCDs and on Amithlon distribution is allowed.@{ub}@{par}

@{b}MMKeyboard is Giftware. When using with Amithlon it's Freeware.@{ub}@{par}

I expect from everybody, who uses MMKeyboard, to send me a little gift. I think this does not hurt
anybody, and I will have more fun to integrate new features.@{par}

@{b}I am not liable for injures or data loss caused by MMKeyboard! The use of
MMKeyboard is on your own responsibility !!!@{ub}

@endnode
@node "HowToInstall" "How to install MMKeyboard"

@{MS "How to install MMKeyboard"}

Just use the include installer script to install this application!@{par}

@{b}Don't try to install this archive by hand, because this may cause many trouble. The automatic installation
ensures a minimum use of disc and memory space!@{ub}

@endnode
@node "History" "History"

@{MS "History"}

This text is telling the story of MMKeyboard like a diary.

 @{MC "V0.35"}

First version.

 @{MC "V0.36"}

FEATURE: Separated commodity and preferences program.@{par}
FEATURE: Now it's possible to swap the Win and Alt keys to place
the Amiga keys next to the space key like on original Amiga keyboard.@{par}
FEATURE: Small keyboard configuration menu!@{par}
FEATURE: The mouse is blocked during password session.@{par}
FEATURE: Now its possible to create a personal password requester

 @{MC "V0.36 - V0.62"}

CHANGED: Many internal changes (file structure, directory, icons, GUI).@{par}
CHANGED: Installer Script.@{par}
CHANGED: Many small changes on the PIC software.@{par}
FEATURE: Some password GUIs included. (Thanks to Timo Hegemann)@{par}
FEATURE: It's possible to deactivate The @{"password GUI" link "PassGUIP"}.@{par}
FEATURE: Now it's possible to display the password GUI on a @{"separate screen" link "PassScre"}.@{par}
FEATURE: The keyboard is now full reset-handler compatible!@{par}
FEATURE: It's possible to connect @{"optional LEDs" link "FAQSTune"}

 @{MC "V0.63"}

FEATURE: PowerUp/PowerDown by using the keyboard!

 @{MC "V0.64"}

BUGFIX: Fixed EnforcerHit caused by MMKeyboardPrefs!@{par}
FEATURE: A new @{"PIC set-up" link "PICC"} allows to easy config the PIC!

 @{MC "V1.00"}

First non beta aminet release!

 @{MC "V1.01"}

BUGFIX: Small PIC change! (no update required)

 @{MC "V1.02"}

CHANGED: Many manual changes.

 @{MC "V1.03"}

FEATURE: The @{"main window" link "MAST"} is now sizeable!

 @{MC "V1.04"}

FEATURE: The @{"keyboard set-up" link "KeEd"} is now sizeable.

 @{MC "V1.05"}

FEATURE: Second power line signal for direct use with ATX-power supply.

 @{MC "V1.06"}

BUGFIX: Many internal enhancements! (password request)

 @{MC "V1.07"}

BUGFIX: Removed small error within the Amiga resync code. This bug caused a repeated "^" after
sync lost!

 @{MC "V1.08"}

BUGFIX: I forgot to predefine the MenuPop key! (Thanks to Jeff Pierce)

 @{MC "V1.09"}

CHANGED: Documentation update!

 @{MC "V1.10"}

BUGFIX: Added a small workaround for the "missing password picture" problem! It seems that it's a
ILBM/picture datatype problem, because sometimes the DTA_Sync message is missing.

 @{MC "V1.11"}

CHANGED: Small PIC change! There is no update needed! By using the new hex file the password hotkey
is "scroll lock"! It more logic now! The scroll lock light is used for password indication and the
key is activating the password. F11 can be used as free hotkey!
BUGFIX: The password screen is now opening with the default font when the specified isn't available.
(reported by Klaus von der Haar)@{par}
INFO: The "Missing password picture" problem isn't gone! The problem is the
ILBM Datatype which isn't displaying the picture at all, even when refreshing it via
brute force method. If this is happening on your system then use a different file format! The RGFX
or PNG seem to be a good choice!

 @{MC "V1.12"}

CHANGED: Reworked the "Enter Hotkey" window. The previous version was only a big hack.@{par}
BUGFIX: Fixed the trash file problem when quitting MMKeyboard prefs.@{par}
BUGFIX: No more hardware problems! The PIC is now auto resetting itself!

 @{MC "V1.13"}

BUGFIX: Small fix for the password mode, that may be caused by some hardware versions! (depends on
the R/C tolerance)

 @{MC "V1.14"}

BUGFIX: The keyboard repeat wasn't filtered correct! (Reported by Thomas Wenzel)@{par}
FEATURE: Optional @{"Reset Switch" link "/Pictures/Optional.ilbm/MAIN"}@{par}
BUGFIX: Fixed GUI barlabel spacing.

 @{MC "V1.15"}

CHANGED: Manual changes.@{par}
FEATURE: Added a @{"picture" link "/Pictures/MMK_Mersmann1.jpg/main"} of my interface.

 @{MC "V1.16"}

CHANGED: Manual changes.@{par}
FEATURE: Now it's impossible to use F12 as power key, because this is blocking the PIC set-up.
(Reported by Michael Göcken)@{par}
BUGFIX: Normal hotkeys like "control alt f4" didn't work! Nobody noticed this bug before. In my case
I forgot to remove ToolManager, so it looked good until I removed this tool.@{par}
FEATURE: After loosing power the interface is using the last system power state.
FEATURE: Now it's possible to change the PIC set-up by using MMkeyboardPrefs. This feature requires
a PIC software version 1.16 or better.

 @{MC "V1.17"}

BUGFIX: The pretyped character in password window is now gone.@{par}
FEATURE: Now nearly 256 additional MM-keys are supported.

 @{MC "V1.18"}

FEATURE: An optional @{"switch" link "/Pictures/Optional.ilbm/MAIN"} allows to shut down and power
up your system. This feature requires a PIC software version 1.18 or better.@{par}
FEATURE: New "pseudo" hotkey! "KBPlug" allows to execute a program when the keyboard is plugged in.
This feature requires a PIC software version 1.18 or better.@{par}
FEATURE: New "pseudo" hotkey! "KBRESET" allows to execute commands right before the system
@{"resets" link "FAQSResetHandler"}.

 @{MC "V1.19"}

BUGFIX: Fixed window sizing bug within the @{"keyboard editor" link "KeEd"}.@{par}
CHANGED: Reworked the @{"main window" link "MAST"} and added a new @{"password set-up" link "Pass"}.@{par}
CHANGED: Many catalog changes.@{par}
BUGFIX: Closed password pack door. (Don't ask!) (PIC software version 1.19 or better required).@{par} @{par}
CHANGED: Manual changes.@{par}
FEATURE: Added new password gui.@{par}
FEATURE: Now it's possible to set-up the password gui with MMKeyboardPrefs.@{par}
FEATURE: New Password gui screenmode selector.@{par}
FEATURE: Now it's possible to test the password gui by using MMKeyboardPrefs.@{par}
FEATURE: @{"Right control key" link "PICCRCTR"} may be used as MultiMedia key, too. (PIC software version 1.19 or better required)@{par}
BUGFIX: The pressed hotkey wasn't removed correctly from the key stream. This caused unwanted input
in the active window.@{par}
FEATURE: @{"New execute type" link "EditExTy"}: @{"Internal Command" link "EditComm"}.

 @{MC "V1.20"}

FEATURE: New @{"schematic for 1200" link "/Pictures/A1200Connector.ilbm/MAIN"} included. Thanks to Olivier Croquette for the
information.@{par}
FEATURE: Keymaps for win keyboards included.@{par}
FEATURE: Preset for Highscreen MCK-800 keyboard included. Thanks to Norman Thiel!@{par}
BUGFIX: The command gadget in the hotkey set-up wasn't working correct when used in key command mode.
(reported by Norman Thiel)@{par}
FEATURE: Now it's possible to select the @{"internal commands" link "EditComm"} by using a popup window!

 @{MC "V1.21"}

FEATURE: Preset for "Trust Ergo_Track", "Logitech Internet Navigator" and "TurboMedia" keyboards
included. Thanks to Nick Clover!

 @{MC "V1.22"}

BUGFIX: Removed some small bugs that never caused trouble.@{par}
CHANGED: Small optimisations to the gadget layout code.@{par}
FEATURE: Added a special @{"Amithlon" link "FAQSAmithlon"} version! Currently it's not clear how the
MMKey support will be implemented. This version requires a hardware emulation of the key transfer
protocol. With current versions of Amithlon MMKeyboard is only able to use normal keys. The hardware
and password configuration isn't required for Amithlon, so I removed it. Currently only
"Insert", "PageUp", "PageDown" and "F11" are working.

 @{MC "V1.23"}

FEATURE: The @{"key command" link "EditComm"} is now able to pass through user qualifiers.@{par}
FEATURE: A new @{"bonus" link "Bonus"} drawer is containing useful tools for MMKeyboard.

 @{MC "V1.24"}

FEATURE: Now it's possible to insert keyboard settings.@{par}
FEATURE: Added presets for the normal and the @{"Amithlon" link "FAQSAmithlon"} version.

 @{MC "V1.25"}

CHANGED: Optimised the keyboard handler to minimise CPU usage.@{par}
FEATURE: Now it's possible to specify a "UPSTROKE" qualifier for each key. By default MMKeyboard is
using the key down code for execution, but for some reason it may be useful to act only on key up to
avoid the input device auto repeat.

 @{MC "V1.26"}

FEATURE: The preferences windows are now using a modified version of the commodity input handler.
This allowed to disable all defined hotkey when the set-up window is open.@{par}
FEATURE: Now it's possible to select a defined hotkey by using it. E.g. you defined "CONTROL LSHIFT
F4" as hotkey, you can select the entry by using this combination.

 @{MC "V1.27"}

FEATURE: 8 new possible hotkeys for all keyboards. Well, these aren't very useful, but the
implementation isn't using any additional code or CPU usage with in the commodity. You can use the
Qualifier as keys. E.g. "CONTROL KRSHIFT" will start a tool by pressing control and the right shift
key. By adding a "K" in front of the qualifier it's handled as a real key. Please note that a
"-qualifier" of the key value is appearing. This is normal, because pressing  "lshift" is causing a
"lshift klshift". This is useful to install a keyboard reset on A1200 without a reset logic. Just
define "control lcommand krcommand" and start the reboot command.

 @{MC "V1.28"}

FEATURE: Shortcuts! Yes! The preferences supporting qualifier shortcuts. "CONTROL LALT RCOMMAND F10"
can be entered as "ct la lc f10". If available I used the first chars of the words: "CAPSLOCK" =
"CL". The "K" and "-" qualifier are working in the same way: "KCAPSLOCK" = "KCL". BTW: The input
isn't case sensitiv at all.

 @{MC "V1.29"}

BUGFIX: Fixed the internal WindowFlip (Now named "WindowNext") command, to detect non depth windows. (reported by Boris
Ivic)@{par}
FEATURE: Added a new @{"internal command" link "Intern"} named @{"WindowPrev" link "InternWindowPrev"}, which is operating like
@{"WindowNext" link "InternWindowNext"} (was named "WindowFlip" in previous versions)

 @{MC "V1.30"}

BUGFIX: Found a bunch of bugs that never caused real trouble.@{par}
FEATURE: New internal commands

 @{MC "V1.31"}

FEATURE: Many small GUI enhancements.@{par}
BUGFIX: (Standard version only) The disabled capslock key was displayed as "capslock" which
interfeared with the "capslock" qualifier. Now the MMKey "CapsLock" is names "Shiftlock" to avoid
this problem.

 @{MC "V2.00"}

FEATURE: New archive/drawer/installation layout. Everything changed a little bit! It's strongly
required to use the included installation stuff to get a proper and working update.

 @{MC "V2.01-V2.09"}

CHANGED: Optimised the preferences and data file handling.

 @{MC "V2.10"}

BUGFIX: The key table within the keyboard can be switched. If the keyboard is using a different
key table by default, MMKeyboard was unable to work correct. Now the PIC turns tells keyboard to use
the right key table. There is no need to update the PIC! There'll be no difference for already
working keyboards. (gemeldet von Harald Frank)

 @{MC "V2.11"}

FEATURE: The stupid and a little hidden keyboard selector is gone. Now we have a real good looking
@{"keyboard selection" link "KeCh"} window. The old window is also available as separate
@{"keyboard editor" link "KeEd"}.@{par}
FEATURE: @{"EjectTool" link "BEjectTool"} V1.6 included!

 @{MC "V2.12"}

BUGFIX: The list handling routines never released memory to the system.

 @{MC "V2.13"}

CHANGED: Massive internal changes. These changes were required for the Amithlon implementation.
The Amithlon version now supports the new KeyID system.@{par}
CHANGED: Keyboard and Hotkey settings changed. Backward compatible loader is included.

 @{MC "V2.14"}

CHANGED: The name enter window is gone. When you're pressing the @{"new..." link "MASTKeNe"} button
in the @{"main window" link "MAST"} the @{"Meridian Set-up" link "Edit"} is opening
immediatly.@{par}
CHANGED: Many documentation changes.

 @{MC "V2.15"}

FEATURE: Added MMKeyboard-Logo during installation! (Thanks to Carsten Berger)@{par}
BUGFIX: The input handler type field was invalid.

 @{MC "V2.16"}

FEATURE: New @{"internal commands" link "Intern"} @{"ScreenNext" link "InternScreenNext"} and
@{"ScreenPrev" link "InternScreenPrev"}.@{par}
FEATURE: Now it's possible to define @{"task" link "EditTask"} specific hotkeys. This allows
to use the same key within several applications and with different actions in the result.@{par}
BUGFIX: An unknown key was always converted into a $0000, which was converted back into a "^". It
seems this bug slipped though during V1.13.

 @{MC "V2.17"}

BUGFIX: Fixed a small bug within the Task stuff that broke the memory list. It never appeared with
MMKeyboard, but it did in Meridian, so it's fixed here, too. That's the good thing of "stealing" stuff
from other tools. (-8@{par}
FEATURE: New @{"internal commands" link "Intern"}: @{"WindowToFront" link "InternWindowToFront"}  and
@{"WindowToBack" link "InternWindowToBack"}.

 @{MC "V2.18"}

CHANGED: Reworked the whole key setting stuff. Now we have a proper, fast and less memory consuming
key storage. No preferences converter this time, because the changes are to heavy. Sorry for that,
but it was required for implementation of new features. Just think about it: Until now MMKeyboard
used 7 different preferences formats. I don't want to waste any time to create a converter for all
this old stuff again. After this cleanup we have enough space for new features.@{par}
FEATURE: Thanks to the simplification it was possible to implement a more useful hotkey list.@{par}
CHANGED: Reworked the whole edit window to fix a few problems. Now the whole gadget stuff is faster
and smaller.@{par}
FEATURE: Thanks to the new settings it's possible to implement new internal command with arguments.
ideas are welcome.@{par}
FEATURE: New @{"copy" link "MASTKeCo"} gadget allows to copy entries.@{par}
FEATURE: @{b}Full@{ub} Amithlon MMKey support.@{par}
BUGFIX: The keyboard setup menu opened the wrong window.@{par}
BUGFIX: The @{"copy..." link "MASTKeCo"}, @{"edit..." link "MASTKeEd"} and
@{"Remove..." link "MASTKeRe"} gadgets are now visualy disabled, too@{par}
BUGFIX: Fixed the installer script! Pretend mode didn't work, because a destination file was used
as source.@{par}
BUGFIX: When leaving the @{"keyboard editor" link "KeEd"} the @{"keyboard set-up list" link "KeCh"}
will be updated.@{par}
FEATURE: New @{"internal command" link "Intern"}: @{"IEvent" link "InternIEvent"}.@{par}
UPDATE: New GUI-engine version used.@{par}

@endnode
@node "Future" "Future"

@{MS "Future"}

I don't know. (-8 Your wishes are welcome.

@endnode
@node "Buglist" "Buglist"

@{MS "Buglist"}

@{b}Amiga version@{ub}

When pressing many keys at the same time the whole keyboard handling is
freezing! The problem is the keyboard protocol. The amiga keyboard is just
sending one up and down message for each key, but the PC keyboard is auto
repeating key down messages.@{par}

@{b}Amithlon version@{ub}@{par}

/

@endnode
@node "Thanx" "Thanx"

@{MS "Thanx"}

@{b}Stephen Marsden@{ub} for the idea and the PIC hardware design!@{par}

Thanks to @{b}Jeff Pierce@{ub} for the money!@{par}

@{b}Jørn Rune Jakobsen@{ub} and @{b}Tommy Alvern@{ub} for the money! Thank you!@{par}

Thanks to @{b}Michal Rudòanský@{ub} for the ATX information!@{par}

Special thanks for the MMKeyboard logo to @{b}Carsten Berger@{ub}@{par}

Many thanks to @{b}Timo Hegemann@{ub}, @{b}Karl Dietrich Bamler@{ub} and @{b}Boris Ivic@{ub} for
their ideas and bugreports.@{par}

@endnode
@node "Author" "The Author"

@{MS "The Author"}

If you find bugs please report them, so that I can correct these bugs in the next version.@{par}

Any ideas and suggestions are welcome, too.
@{code}

   @{"Guido    Mersmann" link "/pictures/Author.jpg/MAIN"}
   Glatzer Straße 12
   48477     Hörstel
             Germany

   INTERNET: geit\@gmx.de
   FIDONET : 2:2449/246.15

@endnode
@node "OtherPrgs" "Other programs!"

   @{MS "Other programs!"}
   @{MS "BoulderDäsh   [game/jump/boulderdaesh.lha]"}

Clone of the original Boulderdäsh for Amiga. It is the only version running faster on Amiga than the
original. It looks and behaves like the original. I was asked, where the C64 is. (-8 And all this on
a 68000 without Fastmem.

   @{MS "SimpleCat   [dev/misc/simplecat.lha]"}

This tool is for programmers and user. Using this program you can change catalogs of programs with
your favourite text editor in the easiest way. These programs must include a CS file. Search for it
in the archive of the catalogs drawer.

   @{MS "Afind   [util/misc/afind.lha]"}

With this program you can search for programs on your Aminet CDs in the easiest way. It is the same
than the original tool on the CD, but here you can use AminetCDs and AminetSets mixed. So you are
not forced to search for a program on the first 5 Aminet CDs, that is on AminetSet1 Disc b.

   @{MS "AView   [util/misc/aview.lha]"}

AView is a great multiview enhancement/replacement! It is working like Multiview, but you are able
to specify a special viewer/player for each file type.

   @{MS "Guideformat   [text/edit/guideformat.lha]"}

GuideFormat is a simple tool. It is easy to format text blocks, even if there are "links" or other
guide commands in.

   @{MS "GuideCheck   [text/edit/guidecheck.lha]"}

GuideCheck is a tool, that allows to check an entire guide file and discovers all errors!

   @{MS "SiedlerBoot   [game/patch/siedlerboot.lha]"}

This allows to start the Settlers direct via CD and save the scores on HD. There is no hard disc
install required. SiedlerBoot requires the "Amiga Plus Sonderheft 9" cover CDROM.

   @{MS "Execute64   [misc/emu/execute64.lha]"}

Execute64 allows to transfer file direct into the C64 and to start them. This allows to play games
an use the Amiga a big file server.

   @{MS "R   [util/cli/r.lha]"}

"R" creates a GUI for each DOS Program. This allows you to use DOS commands even if you aren't very
good in reading templates.

   @{MS "DVBControl   [comm/misc/dvbcontrol.lha]"}

DVBControl is a software project for the Nokia MediaMaster (D-Box) and DVB2000 firmware. It allows
to update firmware, edit channel settings and much more. So if you are using DVB2000 and an Amiga
DVBcontrol is your only choice!

   @{MS "MCControl   [hard/hack/mccontrol.lha]"}

MCControl (MemoryCard Control) is a card reader for Playstation MemoryCards. It requires a little
self made hardware (~$5) and the free software!

   @{MS "VBRControl   [util/sys/vbrcontrol.lha]"}

VBRControl moves the processor vector base to fast ram. This is increasing system speed.

   @{MS "AvailCPU   [util/sys/availcpu.lha]"}

AvailCPU is a little program that shows the CPU usage by using the Power LED!

   @{MS "TrackDisplayClock   [util/time/trackdisplaycl.lha]"}

A hardware track display is very useful, if you need it! The most time this type of hardware is only
good for lighting up the room! This will be changed when using TrackDisplayClock! TrackDisplayClock
displays the system time on your track display! Its cool, its useful and of course the time is
always in visual range. Delete all programs using screens, windows or icons to display the time and
of course don't forget to remove your noclick tool! TrackDisplayClock is doing all these jobs and
your system will be faster than before! (-8

   @{MS "MMKeyboard   [hard/hack/MMKeyboard.lha]"}

MMKeyboard is a hardware for using IBM-PC keyboards on Amiga. It allows to use multimedia keys like
Play or Pause. MMKeyboard supports any key on any keyboard! No special driver for each keyboard like
on the PC! Only one small commodity for all keyboards is required to smuggle the multimedia keys
into the system. MMKeyboard is full reset handler compatible, contains a internal hardware password,
allows to turn your Amiga on and off by using the keyboard and much more.

   @{MS "ParKeyboard   [hard/hack/ParKeyboard.lha]"}

ParKeyboard is a small hard and software project that allows you to use an Amiga keyboard connected
to the parallel port. The interface didn't contain any components. Just four wires are required to
adapt the parallel port.

   @{MS "WheelMouseSupport  [util/mouse/WheelMouseSupp.lha]"}

WheelMouseSupport is a WheelBusMouse Software replacement. It allows to use the mouse wheel with most
Amiga programs without any patches.

@endnode

@node "Hardware" "The Interface Hardware"

@{MS "The Interface Hardware"}

@{b}The hardware is not required when using Amithlon!@{ub}@{par}

@{b}If you're not able or want to create the interface yourself, then it's possible to
@{"buy" link "FAQSHardBuy"}@{ub}@{par}

The @{"interface" link "/Pictures/Hardware.ilbm/MAIN"} is very easy! If you already build the
IBMKey Hardware delivered by the EPic Archive, then just update the @{"PIC" link "FAQSPIC"}.@{par}

Here are some optional @{"features" link "/Pictures/Optional.ilbm/MAIN"} for the hardware and
a @{"schematic" link "/Pictures/A1200Connector.ilbm/Main"} for the A1200.@{par}

Depending on your Amiga and your keyboard other connectors are used, that's the reason the schematic
is universal. Because of the size it's not very easy to solder PS/2 Plugs, so I recommend to cut an
extender cable.@{par}

Here is a @{"picture" link "/Pictures/MMK_Mersmann1.jpg/main"} of my interface. The PIC @{"fits exact" link "/Pictures/MMK_Mersmann2.jpg/main"} into
a 9 to 9 sub-d interface box. The box endings are filled with small plastic piece's cut from a
standard disc.@{par}

You shouldn't make the wires to long! Just use 10cm or less on each side should be enough. You're
able to use an extender if required!@{par}

The circuit itself can be done on a simple PCB tracks or completely without! Just make sure there
aren't any shortcuts. It's possible to create an interface that isn't much bigger than the PIC
itself.@{par}

Please also read the information about the @{"PIC" link "FAQSPIC"}!@{par}

If there are any problems then read the @{"FAQ" link "FAQS"} section for further information!@{par}

@{code}
@{"Predefined" link "PICC"} special keys:

  Key          Amiga result
----------------------------
Home         Shift Cursor Left
End          Shift Cursor Right
PageUp       Shift Cursor Up
PageDown     Shift Cursor Down
PopUp        Left Amiga m (Screen flip)
PrintScr     Right Amiga p
Break        Control c
Insert       Help
F11          MultiMedia Extension Hotkey
F12          MultiMedia Extension Hotkey
ScrLock      MultiMedia Extension Hotkey
Left Win     Left Amiga
Right Win    Right Amiga

@endnode
@node "Keyboard" "The big keyboard test"

@{MS "The big keyboard test"}

Well, this list contains keyboards tested with the @{"MMKeyboard Hardware" link "Hardware"} .
If you keyboard is not listed, then sent @{"in" link "Author"} your information to fill up the list.@{par}

@{b}The number of multimedia keys is exact the number of new keys and does not include the
additional key created by MMKeyboard.@{ub}@{par}

@{code}
Name                         Result      MM-Keys          Testet by
----------------------------------------------------------------------------

Chicony                      100%           17            Guido Mersmann

Logitech Cordless Desktop    100%           12            Guido Mersmann
ITouch

Logitech Cordless ITouch     100%            3            Guido Mersmann

Cherry Keyboard Win95 D      100%            0            Guido Mersmann

Yahoo Freedom II             100%           17            Guido Mersmann

TrustGM Wireless             100%           16            Michael Goecken

H&H KB 07 IR                 100%           41            Klaus von der Haar

Maxell                       100%            3            Olivier Croquette

Trust Ergo_Track              90%            1            Nick Clover

TurboMedia                   100%           23+           Nick Clover

Logitech Internet Navigator  100%           21+ Wheel     Nick Clover

@endnode

@node "FAQS" "Questions, Solutions and Tips!"

@{MS "Questions, Solutions and Tips!"}

@{MS "Interface Hardware Problems"}

@{"There are many missing or auto repeating keys" link "FAQSAutoRepeat"}@{par}
@{"Some keys aren't working and others are causing trouble!" link "FAQSTrouble"}@{par}
@{"The Scrollock light is flashing!" link "FAQSTrouble"}@{par}
@{"My hardware isn't working at all! Why?" link "FAQSHardNW"}@{par}
@{"After a system crash I don't get a password requester! Why?" link "FAQSNoPassword"}@{par}

@{MS "Interface Hardware Information"}

@{"Is there a way to buy the hardware?" link "FAQSHardBuy"}@{par}
@{"Can I use MMKeyboard with my A1200 Tower?" link "FAQSHardHard"}@{par}
@{"Can I use MMKeyboard with Amithlon?" link "FAQSMMKAmithlon"}@{par}
@{"What is a PIC?" link "FAQSPIC"}@{par}
@{"How to change the PIC configuration?" link "FAQSPICSetup"}@{par}
@{"Why is the PIC configuration so stupid?" link "FAQSPICStupidSetup"}@{par}
@{"Is there a way to tune the hardware?" link "FAQSTune"}@{par}
@{"I want to adapt an ATX power supply, but I don't know how!" link "FAQSATX"}
@{"How can I switch my Amiga on and off by using the keyboard?" link "FAQSPICPowerSW"}

@{MS "Amithlon Information"}

@{"What is Amithlon?" link "FAQSAmithlon"}@{par}
@{"Can I use MMKeyboard with Amithlon?" link "FAQSMMKAmithlon"}@{par}

@{MS "Interface Software"}

@{"Do I need the commodity? It seems to work without!" link "FAQSCOMM"}@{par}
@{"What is a 'Reset Handler' doing?" link "FAQSResetHandler"}@{par}
@{"Can I play my old games with your hardware!" link "FAQSGAME"}@{par}
@{"Can I use my old hardware with your commodity?" link "FAQSNewSoftOldHard"}@{par}

@{MS "Other Stuff"}

@{"How is the hotkey standard working?" link "FAQSHotkeys"}@{par}

@endnode
@node "FAQSAutoRepeat" "There are many missing or auto repeating keys!"
@toc "FAQS"

@{MS "There are many missing or auto repeating keys"}

You should check the shielding of your interface!@{par}

Under normal circumstances the shield wires should be only connected on one side. Well, in this
case you can ignore this rule, because the MMKeyboard interface acts between keyboard and amiga. The
keyboard shield is already disconnected on one side of the keyboard cable, so you should connect the
shields on your interface.@{par}

A metaliced box containing your interface may be good additional shield! @{b}Make sure your hardware
isn't in contact with the box, because the box acts like metal and connects everything as good as it
shields.@{ub}@{par}

If the problem is still present, then the wire may be to long. Under normal circumstances this
isn't a real problem, but it may cause trouble. I suggest to use a small wire (10cm) on each side of
the interface. Later you can try an extender cable.@{par}

If you build your interface into a tower or desktop system make sure not to use to long wire for LED
connection. It may be required to use a line driver to avoid PIC trouble.@{par}

@endnode
@node "FAQSTrouble" "The keyboard is making trouble!"
@toc "FAQS"

@{MS "The keyboard is making trouble!"}

The data part of the PIC is holding the PIC configuration! The software you used to program the PIC
didn't program the default values. So the previous state (aka trash) of the data memory is
interpreted by MMKeyboard as config.@{par}

Now there are three possibilities why this happens:@{par}

1. If the keyboard is working, then use the @{"PIC set-up window" link "PICC"} to create a valid
configuration. Make sure you enter a proper password, too!@{par}

2. If the scroll lock light is flashing and the keyboard is not working (if MMKeyboard commodity is
running, the mouse isn't working, too!) then the only way is to use the MMKeyboardNP.hex. This file
isn't asking for a password and you're able to @{"disable" link "PICC"} or set-up it. After doing
this, reprogram the PIC by using the normal MMKeyboard.hex. This problem isn't caused by MMKeyboard.
Your PIC programming tool didn't wrote the data part of the PIC, where the (default) settings are
stored.@{par}

3. If the scroll lock light is flashing after pressing the reset combination, then the system keyboard
interrupt was killed some how. This may happen by games without any keyboard support. This is normal
and even happens when using an original Amiga keyboard. The Amiga isn't responding to the reset
warning and the keyboard or in this case MMKeyboard is delaying the reset. Just wait a few seconds
and your system will restart.@{par}

@endnode
@node "FAQSHardNW" "My hardware isn't working! Why?"
@toc "FAQS"

@{MS "My hardware isn't working! Why?"}

Well, that is not that easy! You should not use a wireless keyboard for testing, because that may
cause additional problems. The best thing is to use a cheap standard Windows keyboard.@{par}

First remove the PIC and connect pin 2 and pin 6 on the PIC socket. Do the same with pin 3 and pin
7! The result is a very short keyboard extender!@{par}

Now check all wires from the keyboard side to the amiga side! The 4 wires
(5V, GND, Clock, Data) must be 1:1 connected.@{par}

If everything is ok, then use your hardware (don't remove the bridges) to connect an
@{b}Amiga-keyboard@{ub} to your Amiga. If no Amiga-keyboard is available use a PC-keyboard and a PC
insteat! (remember: The hardware acts like an extender cable)@{par}

Some things you should check until the extender is working:@{par}

Is there keyboard power? (keyboard lights are flashing on powerup?)@{par}
Is GND connected to the PIC (Pin 5)?@{par}
Is MCLR (Pin 4) connected to 5V?@{par}
Are the values for the resistor and the capacity correct?@{par}
Are resistor and capacity connected correct? (Pin 16, 5V, GND)@{par}
Are clock and data are connected to the right PIC pins?@{par}
Are clock and data swapped on one or both sides of the PIC?@{par}

@endnode
@node "FAQSNoPassword" "After a system crash I don't get a password requester! Why?"
@toc "FAQS"

@{MS "After a system crash I don't get a password requester! Why?"}

The reason is simple!@{par}

How should the keyboard (MMKeyboard hardware) notice that a crash happens? The same is happening you use a
reset tool to restart your system.@{par}

If you want to secure your system then use the @{"password key (ScrLock)" link "PICCPaHo"}!
Once used it's impossible to reset the system by keyboard and any system crash or software reset
is only reloading the system and asking for a password again. Without password the system is totally
locked!@{par}

@endnode
@node "FAQSHardBuy" "Is there a way to buy the hardware?"
@toc "FAQS"

@{MS "Is there a way to buy the hardware?"}

Yes! You should contact me via @{"EMail" link "Author"} first.@{par}

I am only assembling a small number of interfaces at once, so it may take a while before you'll get one.@{par}

@{"Here" link "/Pictures/MMK_Mersmann1.jpg/main"} you can see what you'll get. Of course there'll be
a @{"PIC" link "FAQSPIC"} equipped, when you'll get it, but anyone knows what an IC is and the
interesting part is the interface. Here is the same @{"interface closed" link "/Pictures/MMK_Mersmann2.jpg/main"}.
The interface connectors are PS/2 only! If you need a DIN connector then you can get a interface for
1 Euro or by a interface in your locale computer store.@{par}

You have to pay 25 Euro (50 DM) for each interface. This is only for parts, shipping and the time I
spent to build them. For selling into non Europe country's it's required to pay 30 Euro.@{par}

Don't ask for programmed PIC chips. I made bad experiences, so I only sent complete interfaces.@{par}

@endnode
@node "FAQSHardHard" "Can I use MMKeyboard with my A1200 Tower?"
@toc "FAQS"

@{MS "Can I use MMKeyboard with my A1200 Tower?"}

Yes and No! When your tower is using a standard A2000, A3000 or A4000 keyboard then you can use
MMKeyboard without any problem. If there is a PC keyboard connected then there is no chance to
connect MMKeyboard there!

It's not possible to plug the MMKeyboard interface into your old interface, but you can
connect the interface @{"to your mainboard" link "/Pictures/A1200Connector.ilbm/Main"}.@{par}

This is because your old interface expects a PC keyboard to be plugged in. The MMKeyboard hardware is acting like an
Amiga keyboard. It's not possible to link keyboard interfaces together.@{par}


@endnode
@node "FAQSPIC" "What is a PIC?"
@toc "FAQS"

@{MS "What is a PIC?"}

A PIC is a one chip computer! It contains a processor, RAM, program (FLASH) and data (EEPROM)
memory!@{par}

Most of it's pins can be used free by the internal program. It's possible to read and write any IO
state the application requires.@{par}

A PIC can be used as clock, as combination lock, as copy protection for software and much more!
Years ago big circuits or expensive chips were required to do what a little PIC is doing alone.@{par}

There are many PIC types available. The most used processors are the PIC16c84 and the PIC16f84
created by Microchip. The only difference is more memory and EEPROM data space. The c84
isn't available anymore, because the f84 is better and compatible.@{par}

Before a PIC can used in a circuit, its required to set-up the program and the data. This
procedure requires a special device: A PIC programmer.@{par}

When programming a PIC it's required to keep an eye on the fuses. There are fuses for enabling the
WatchDog-Timer (WDT), the PowerUp-Timer (PWRT) and the CodeProtection (CP). The WDT must not be used
without program support, because nothing is working in the result. The PWRT takes care of the
PowerUp and delays a little to allow the hardware to settle. This fuse should be enabled, as long as
there isn't reason for immediate start-up of the PIC. The CP Fuse disables the PIC readout. It's not
possible to readout the PIC any more.

@endnode
@node "FAQSPICSetup" "How to change the PIC configuration?"

@{MS "How to change the PIC configuration?"}

Before making changes to the PIC set-up you need your personal settings!@{par}

Use the @{"PIC set-up window" link "PICC"} to enable the features you need. The configuration is done
by the @{"set-up PIC configuration" link "PICCConf"} gadget in the same window.@{par}

@endnode
@node "FAQSPICStupidSetup" "Why is the PIC configuration so stupid?"

@{MS "Why is the PIC configuration so stupid?"}

That's a very good question!@{par}

If the PIC configuration should be changed without an external programmer, then it is required that
the PIC is doing the flash writing. The problem is that the PIC is unaware of the users wishes, so
the user needs to enter the set-up by hand. The lucky part is that the keyboard is already
connected.@{par}

In theory it's possible to program the PIC by using MMKeyboardPrefs on Amiga, but this would
require an additional protocol to transmit chars in the opposide direction. The problem is that
the PIC code memory is to small to hold this additional transfer stuff. On the other side the Amiga
part would be a bad hack, which would require a system disable during transfer.@{par}

I think this "set-up for stupids" is a good alternativ.@{par}

I you don't want to use the GUI feel free to use an editor or the shell. Press "LAmiga" + "RAmiga" +
"F12" to turn the PIC into set-up mode. The PIC is printing a "+" to indicate that this is the main
menu. Now press "1" for password, "2" for config or any other number or char to leave the
menu and return to normal keyboard operation.@{par}

After pressing "1" you must enter the password. Press the "return"-key (not the "enter"-key) to
finalise the password and return to the main menu ("+").@{par}

After selecting "2" you must enter the @{"configuration value" link "PICCValu"}. After pressing the
last value the PIC returns into the main menu ("+").@{par}

This is an example to set the password to "password" and the @{"configuration value" link "PICCValu"} to
"f2c5ff3f". The "+" chars are created by the PIC, when it re-enters the main menu.
On the screen it looks like this:@{par}

+1password@{par}
+2f2c5ff3f+3@{par}

After the "+" character the menu selection ("1","2" or "3") and the argument is following.@{par}

@{b}A special note to any advanced amiga user! Using the clipboard or any other key inserting tool
isn't working, because the settings must be typed in by keyboard only!@{ub}@{par}

@endnode
@node "FAQSTune" "Is there a way to tune the hardware?"
@toc "FAQS"

@{MS "Is there a way to tune the hardware?"}

Yes! You are able to connect 4 LEDs to display the keyboard status of "NumLock", "CapsLock" and
"ScrollLock". This is very useful when using a keyboard without these LEDs (e.g. Logitech
ITouch).@{par}

The "ScrollLock" light isn't required on Amiga, but I Used it to indicate password request and "Wait
for 10 seconds time-out" mode when using a reset handler.@{par}

The last line is active if the password is correct! This line is also useful if you want to disable
other hardware until the password is correct (Mouse, ...)! Just let me know what you used the line
for! It's possible to connect the password line direct with pin 6 of the mouse connector. This
disables the mouse until the password is correct. This is also working when using the PS2M
interface.@{par}

A special feature is hidden behind the PowerUp Line. Just think about activating your Amiga by
keystroke. When using an @{"ATX power supply" link "FAQSATX"} @{"this can be done" link "FAQSPICPowerSW"} without
any additional hardware.@{par}

It's also possible to switch power on or of by using a switch on your computer case.
A special PIC line is used to handle this.@{par}

Take a look on this @{"picture" link "/Pictures/Optional.ilbm/MAIN"} for more information.

@endnode
@node "FAQSATX" "I want to adapt an ATX power supply, but I don't know how!"
@toc "FAQS"

@{MS "I want to adapt an ATX power supply, but I don't know how!"}

@{b}Any modifications are on your risk only. I am not responsible for any hard or software damage.@{ub}@{par}

The easiest way is to use an ATX extender.  Cut it into two peace's. Cut the power connector of your
old power supply. Connect Amiga plug and the ATX connector by using the correct voltages. Make sure
that all connections are correct, or you blow up all your hardware at once. Isolate unused
voltages as wall as the connections. The result is a ATX to Amiga interface.@{par}

Now there are only PowerGood, Standby GND, Standby 5V and Standby Switch left.@{par}

PowerGood must be connected to the main board, if the board supports PowerGood. The A4000D is the
only Amiga supporting this line. The A4000T isn't supporting PowerGood. Just connect it or isolate
it.@{par}

Now there are only Standby GND, Standby 5V and Standby Switch left. This lines needed to be
connected like shown in this @{"picture" link "/Pictures/ATXSupport.ilbm/MAIN"}.@{par}

@endnode
@node "FAQSPICPowerSW" "How can I switch my Amiga on and off by using the keyboard?"
@toc "FAQS"

@{MS "How can I switch my Amiga on and off by using the keyboard?"}

Very easy! You need to connect a standard @{"ATX power supply" link "FAQSATX"} and build the
standard @{"MMKeyboard hardware" link "/Pictures/Hardware.ilbm/MAIN"}.@{par}

There are only three things to take care of:@{par}

The PIC and Keyboard power must be connected to 5V Standby of the @{"ATX power supply" link "FAQSATX"}. Important
is that there @{b}must not@{ub} be any other 5V connected.@{par}

Connect all GND lines on the interface. It may work, but to garantee a stable hardware the
connections are recommended. The lines to connect are: Standby-GND (power supply) GND (original
Keyboard connector (not available on A1200)) and the GND line of the new PS/2 keyboard connector.@{par}

The Standby-Switch wire needs to be connected to PIC (Pin 11).@{par}

Here a small @{"picture" link "/Pictures/ATXSupport.ilbm/MAIN"} to show the needed connections.@{par}

@endnode
@node "FAQSAmithlon" "What is Amithlon?"
@toc "FAQS"

@{MS "What is Amithlon?"}

Amithlon is a kernal that allows to run AmigaOS on standard pc hardware.@{par}

This may sound like a simple amiga emulator, but it isn't. The 68K commands are recompiled into x86
command in time. (JIT compiler). The audio, video and other IO hardware isn't implemented at all.
New devices and drivers allow to use normal PC stuff with maximum speed.@{par}

The user it self is unaware of Amithlon, because it looks like a "Super-Amiga" and not like a
emulator on a pc. A normal PC (P3-866Mhz) used with Amithlon has the speed of an Amiga with 68040 with more than
1Ghz. Due the fakt that PC graphic boards are supported, there isn't a slow down even when using a 1280
* 1024 Workbench screen with the maximum amount colors (32 Bit).@{par}

More information on Amithlon can be found at: www.amithlon.de or www.amithlon.net@{par}

@endnode
@node "FAQSMMKAmithlon" "Can I use MMKeyboard with Amithlon?"
@toc "FAQS"

@{MS "Can I use MMKeyboard with Amithlon?"}

Yes and No! The hardware is only working with Amiga systems and not with PC hardware, because there is no
interface needed to connect a PC keyboard to a pc.@{par}

The special version of MMKeyboard is working on Amithlon. It's a little tricky to get
the keystuff from the emulation side to the amiga side, but it seem to work without any trouble.@{par}

There are a few "restrictions". Sounds bad, but it's logic:@{par}

The hardware password isn't available, because we dont have any MMKeyboard hardware.@{par}

The @{"reset handler" link "FAQSResetHandler"} isn't working, because the current Amithlon version don't not support the system reset handler.
If this changes, then MMKeyboard will support the reset handler automaticaly.@{par}

@endnode
@node "FAQSCOMM" "Do I need the commodity? It seems to work without!"
@toc "FAQS"

@{MS "Do I need the commodity? It seems to work without!"}

Of course the hardware is working without the commodiy! The commodity is only required for multimedia key
support.

@endnode
@node "FAQSResetHandler" "What is a 'Reset Handler' doing?"
@toc "FAQS"

@{MS "What is a 'Reset Handler' doing?"}

The reset handler in the most cases is used to do cleanup stuff right before the system resets. This
feature is used only by a few tools and file systems, but it is very useful.@{par}

Just think about a filesystem using a write cache. The handler allows to store the cache on HD
before system reset. A text editor may backup a text just in case the user forgot to save. I am
using the reset handler to eject my ZIP disc, because there shouldn't be a disc in the drive on
power off.@{par}

The reason that this handler is used rarely is that it's normally only working on A2000, A3000 and A4000.
Even some A2000 and A3000 keyboards don't support the reset handler stuff. By using MMKeyboard
hardware @{b}any@{ub} Amiga @{b}should@{ub} be able to use a reset handler. If you are using the @{"power mode" link "FAQSPICPowerSW"}
then the reset handler is working before power off, too!@{par}

There are a few limits dictated by the handler mechanism:@{par}

There is no way to avoid the reset. Around 10 to 12 seconds after pressing the reset keys, the system
is restarting. This should be enough time to do what is required.@{par}

It's not possible to use the keyboard during this reset delay phase, because if the Amiga is
answering to the handshake the keyboard is allowed to do a real reset. If your handler only needs a
second and there aren't other programs using it, then the reset delay is only one second long.@{par}

The handler only gets active when the keyboard was used to reset. An external reset button or
a system crash won't cause the handler to act.@{par}

@endnode
@node "FAQSGAME" "Can I play my old games with your hardware?"
@toc "FAQS"

@{MS "Can I play my old games with your hardware?"}

Of course! There shouldn't be any problem!

@endnode
@node "FAQSNewSoftOldHard" "Can I use my old hardware with your commodity?"
@toc "FAQS"

@{MS "Can I use my old hardware with your commodity?"}

No! Standard keyboard interfaces are transmitting the amiga keys only, so there is nothing for the
commodity to do.@{par}

If you own a selfmade hardware, then make sure it's the same hardware. In this case just reprogram
the PIC and you're able to use all new features.@{par}

My hardware is using a special transmission technique that allows my commodity to filter all non
amiga keys out. This is very tricky, because the keyboard transmission must be 100% compatible when
working without the commodity. This is required to support games or old applications which are
handling the keyboard stuff itself.@{par}

@endnode
@node "FAQSHotkeys" "How is the hotkey standard working?"
@toc "FAQS"

@{MS "How is the hotkey standard working?"}

Very simple! Everyone knows hot it's working! Well, most Amiga users aren't aware of the features
supported by our hotkey system.@{par}

@{b}Please not that MMKeyboard is supporting this standard, but to fit in all the new keys and all
options I made many enhancements and of course shortcuts. These are only available within MMKeyboard.@{ub}@{par}

All keys are defined as normal text. These can be found within commodity ToolTypes (e.g. MMKeyboardServer) and
string input gadget with gadget user interface (e.g. MMKeyboard).@{par}

So to specify an "a" just enter an "a"! All keys that never produce any output can be used by
inserting the entire name.@{par}

These keys are : "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10",, "SPACE", "BACKSPACE",
"ENTER", "RETURN", "DELETE", "ESC", "HELP", "TAB", "UP", "DOWN", "LEFT" and "RIGHT".@{par}

Hey! There missing keys! Yes! These keys are known as qualifier. A qualifier is a key that only
works in combination with a normal key.@{par}

"LSHIFT", "RSHIFT", "CAPSLOCK", "CONTROL", "LALT", "RALT", "LCOMMAND" and "RCOMMAND".@{par}

There are additional pseudo qualifiers available: "NUMERICPAD", "REPEAT", "MULTIBROADCAST",
"INTERRUPT", "MIDBUTTON", "RBUTTON" and "LEFTBUTTON". "NUMERICPAD" is only present for key on the
numeric pad. "REPEAT" causes that only repeating keys are causing action. The button qualifiers are
representing the three mouse buttons. "MULTIBROADCAST" is sending a key into all windows even if
they're disabled, so you should have a good reason to use it.@{par}

Key groups are available, too: "SHIFT", "CAPS", "ALT". Using a group will require at least one of
the keys with in the group is required. When using "CAPS", then one shift or the capslock key is
required to activate the hotkey.@{par}

So far the most definitions are known. Now the secret part. The normal qualifiers may be used with
an additional dash in front. These look like this: "-LSHIFT", "-RSHIFT", "-CAPSLOCK", "-CONTROL",
"-LALT", "-RALT", "-LCOMMAND", "-RCOMMAND" "-NUMERICPAD", "-REPEAT", "-MULTIBROADCAST",
"-INTERRUPT", "-MIDBUTTON", "-RBUTTON" and "-LEFTBUTTON". When using such qualifier it it not
important for the hotkey. It doesn't matter if the dash qualifier is pressed or not.@{par}

By default hotkeys are only acting on key press. When using the keyword "UPSTROKE" the hotkey is
acting on key release only. The version with a leading dash is forcing the hotkey to become active
on key down and key up.@{par}

 Examples:@{par}

"control lalt help" -> Only these three keys.@{par}

"control alt help" -> Only these three keys. Which and how many alt keys are used isn't important.@{par}

"control alt -lshift help" -> Like the example above, but the left shift key may be pressed without
effecting the result.@{par}

@{MS "Here a small overview on MMKeyboards internal features:"}

"LSHIFT", "RSHIFT", "CAPSLOCK", "CONTROL", "LALT", "RALT", "LCOMMAND", "RCOMMAND". "MIDBUTTON",
"RBUTTON" and "LEFTBUTTON" may be used a normal hot key. This is done by entering a "k" before it's
name. MMKeyboard is handling the "KQualifier" as normal key. Please note that a ghost qualifier will be
created for KQualifier. e.g. "KCONTROL" -> "CONTROL KCONTROL" This is required, because by pressing the
control key the system creates a control qualifier for the control key.@{par}

"lalt kralt" -> LALT is the normal Qualifier and RALT a normal key.@{par}

"lshift rshift Kleftbutton" -> Not very handy, but pressing both shift keys and the left mouse
button will start the action.@{par}

It's possible to enter the names by a shorter version. In the most cases it's required to enter the
first chars of each name part:@{par}

"la" -> "LALT"@{par}
"kls" -> "KLSHIFT"@{par}
"-KRC" -> "-KRCOMMAND"@{par}
"CT" -> "CONTROL"@{par}



@endnode

@node "MAST" "MMKeyboard - Main set-up"

@{MS "Main set-up"}

Well, there isn't much to say! Use the cursor keys for selecting and the return key for entering
the @{"hotkey set-up" link "Edit"}. Another way is to press the hotkey combination to select the
right entry. Using the combination again on the same entry, opens the @{"hotkey set-up" link "Edit"},
too.@{par}

Here're the gadgets of the preferences program:@{par}
@{code}
@{MS "Keyboard set-up"}
@{JCENTER}@{"Keyboard set-up" link "MASTKBSe"}
@{"Password set-up" link "MASTPaSe"}
@{"PIC set-up" link "MASTPiSe"}
@{MS "Hotkey set-up"}
@{JCENTER}@{"Key List" link "MASTKeLi"}
@{"New..." link "MASTKeNe"}
@{"Copy..." link "MASTKeCo"}
@{"Edit..." link "MASTKeEd"}
@{"Remove..." link "MASTKeRe"}

@{"Save" link "MASTSAVE"}
@{"Use" link "MASTOKOK"}
@{"Cancel" link "MASTCANC"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "MASTKBSe" "Main Set-up - Keyboard Set-up..."
@toc "MAST"

@{MS "Keyboard Set-up..."}

This button opens the @{"keyboard set-up" link "KeEd"} window.@{par}

@endnode
@node "MASTPaSe" "Main Set-up - Password Set-up..."
@toc "MAST"

@{MS "Password Set-up..."}

This button opens the @{"password set-up" link "Pass"} window.@{par}

@endnode
@node "MASTPiSe" "Main Set-up - PIC Set-up..."
@toc "MAST"

@{MS "PIC Set-up..."}

This button opens the @{"PIC set-up" link "PICC"} window.@{par}

@endnode
@node "MASTKeLi" "Main Set-up - The Key List"
@toc "MAST"

@{MS "The Key List"}

This list contains all user defined hotkeys. By pressing return or using the
@{"edit" link "MASTKeEd"} gadget you are able to @{"edit" link "Edit"} the keys.
The @{"new" link "MASTKeNe"} gadget allows to add a new key and the @{"remove" link "MASTKeRe"} gadget
allows to delete one!

@endnode
@node "MASTKeNe" "Main Set-up - New..."
@toc "MAST"

@{MS "New..."}

Creates a new hotkey and opens the @{"hotkey set-up" link "Edit"} window for the new hotkey.@{par}

@{b}Aborting the @{"hotkey set-up" link "Edit"} window causes the new entry to be removed.@{ub}@{par}

@endnode
@node "MASTKeCo" "Main Set-up - Copy..."
@toc "MAST"

@{MS "Copy..."}

Clones the current hotkey and opens the @{"hotkey set-up" link "Edit"} window for it.@{par}

@{b}Aborting the @{"hotkey set-up" link "Edit"} window causes the new entry to be removed.@{ub}@{par}

@endnode
@node "MASTKeEd" "Main Set-up - Edit..."
@toc "MAST"

@{MS "Edit..."}

By pressing on this button the @{"edit" link "Edit"} window opens and allows you to change the
hotkey settings.

@endnode
@node "MASTKeRe" "Main Set-up - Remove..."
@toc "MAST"

@{MS "Remove..."}

After a safety request the selected hotkey will be deleted!

@endnode
@node "MASTSave" "Main Set-up - Save"
@toc "MAST"

@{MS "Save"}

The settings will be saved into MMKeyboards icon and used as well. The hotkey configuration will be
stored in the ENV: directory. All MMKeyboard windows will close immediatly.

@endnode
@node "MASTOkOk" "Main Set-up - Use"
@toc "MAST"

@{MS "Use"}

The window will be closed and the settings used, but the settings won't be saved!

@endnode
@node "MASTCanc" "Main Set-up - Cancel"
@toc "MAST"

@{MS "Cancel"}

This button closes the window and all changed settings are lost!

@endnode

@node "Pass" "MMKeyboard - Password Set-up"
@toc "MAST"

@{MS "Password Set-up"}

This window contains the whole password GUI set-up!@{par}

@{b}This window only has a effect on the GUI! The password must be enabled to use the features
within this window. @{"Deactivating the GUI" link "PassActi"} is only disabling the GUI not the
password request itself.@{ub}@{par}

@{code}
@{JCENTER}@{"Password GUI" link "PassGUIP"}
@{"Open on Screen" link "PassScre"}
@{"Password Active" link "PassActi"}
@{"Use" link "PassOkOk"}
@{"Options..." link "PassPaGu"}
@{"Cancel" link "PassCanc"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "PassGUIP" "Password Set-up - Password GUI"
@toc "Pass"

@{MS "Password GUI"}

This gadget allows to specify the GUI for the password session.@{par}

Well, these GUI aren't real programmed GUIs! They just require a picture, an icon and
a few @{"tool type settings" link "PaGU"}.@{par}

@endnode
@node "PassScre" "Password Set-up - Open on Screen"
@toc "Pass"

@{MS "Open on Screen"}

If you want the password requester to open on a separate screen then just turn
this switch on. Otherwise the request opens on the default screen.@{par}

@endnode
@node "PassActi" "Password Set-up - Password GUI Active"
@toc "Pass"

@{MS "Password GUI Active"}

This switch enables the password GUI!@{par}

@{b}Important: The password itself must be disabled by using the @{"PIC set-up" link "PICC"}. It's not possible to deactivate the password without changing the @{"PIC" link "FAQSPIC"}!
The password check is hardware controlled! The Amiga is only getting the cursor position!@{ub}

@endnode
@node "PassOkOk" "Password Set-up - Use"
@toc "PaGU"

@{MS "Use"}

By pressing this button you confirm that the settings within this window are valid.

@endnode
@node "PassPaGu" "Password Set-up - Options..."
@toc "PaGU"

@{MS "Options..."}

This buttons opens the @{"Password GUI Set-up" link "PaGu"} for the selected GUI.

@endnode
@node "PassCanc" "Password Set-up - Cancel"
@toc "PaGU"

@{MS "Cancel"}

Closes the window and restores all settings to their previous values.

@endnode

@node "PaGU" "MMKeyboard - Password GUI Set-up"
@toc "PASS"

@{MS "Password GUI Set-up"}

This window allows to change the configuration of the password gui. There is no need to edit the
tooltypes by hand, because this window is doing this for you.@{par}

@{code}
@{JCENTER}@{"Screen Mode" link "PaGUScre"}
@{"Font" link "PaGUFont"}
@{"Text Position X" link "PaGUEdLe"}
@{"Text Position Y" link "PaGUEdTo"}
@{"Window Position X" link "PaGUWiLe"}
@{"Window Position Y" link "PaGUWiTo"}
@{"Save" link "PaGUSave"}
@{"Test..." link "PaGUTest"}
@{"Cancel" link "PaGUCanc"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "PaGUScre" "Password GUI Set-up - Screen Mode"
@toc "PaGU"

@{MS "Screen Mode"}

The screen mode is used when the @{"'Open on Screen'" link "PassScre"} option is activated.@{par}

If the selected screenmode isn't available on your system, or there isn't enough memory to open the
specified screen, the default screen is used as fall back.@{par}

@{b}Set-up the screen depth to avoid automatic dithering by the datatypes library.@{ub}

@endnode
@node "PaGUFont" "Password GUI Set-up - Font"
@toc "PaGU"

@{MS "Font"}

This font is used to display the "*" chars during password seccion.@{par}

@endnode
@node "PaGUEdLe" "Password GUI Set-up - Text Position X"
@toc "PaGU"

@{MS "Text Position X"}

The specified value describes the X position of the password text, depending on the left upper edge
of the password picture.@{par}

@endnode
@node "PaGUEdTo" "Password GUI Set-up - Text Position Y"
@toc "PaGU"

@{MS "Text Position Y"}

The specified value describes the Y position of the password text, depending on the left upper edge
of the password picture.@{par}

@endnode
@node "PaGUWiLe" "Password GUI Set-up - Window Position X"
@toc "PaGU"

@{MS "Window Position X"}

This just describes the window position on screen. A value of zero forces MMKeyboard to centre the
picture in x direction.@{par}

@endnode
@node "PaGUWiTo" "Password GUI Set-up - Window Position Y"
@toc "PaGU"

@{MS "Window Position Y"}

This just describes the window position on screen. A value of zero forces MMKeyboard to centre the
picture in y direction.@{par}

@endnode
@node "PaGUSave" "Password GUI Set-up - Save"
@toc "PaGU"

@{MS "Save"}

Closes the window and stores the password gui set-up within the pictures icon.@{par}

@endnode
@node "PaGUTest" "Password GUI Set-up - Test..."
@toc "PaGU"

@{MS "Test..."}

Opens a fake password window for testing purpose.@{par}

Press "return" or left mouse button on the picture to quit password mode testing.@{par}

@endnode
@node "PaGUCanc" "Password GUI Set-up - Cancel"
@toc "PaGU"

@{MS "Cancel"}

Closes the window and restores all settings to their previous values.

@endnode

@node "Edit" "MMKeyboard - Hotkey Set-up"
@toc "MAST"

@{MS "Hotkey Set-up"}

This window allows to set-up a hotkey.
@{code}
@{MS "Key Set-up"}
@{JCENTER}@{"Name" link "EditName"}
@{"Hotkey" link "EditHoKe"}
@{"Task Name" link "EditTask"}
@{MS "Command Set-up"}
@{JCENTER}@{"Execute Type" link "EditExTy"}
@{"Stack" link "EditStac"}
@{"Command" link "EditComm"}
@{"Current Directory" link "EditCuDi"}
@{"Output File" link "EditOuFi"}
@{"Use" link "EditOkOk"}
@{"Cancel" link "EditCanc"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "EditName" "Hotkey Set-up - Name"
@toc "Edit"

@{MS "Name"}

Here you can specify a special name for the hotkey.@{par}

The name will only be used for the @{"Keylist" link "MASTKeLi"}!

@endnode
@node "EditHoKe" "Hotkey Set-up - HotKey"
@toc "Edit"

@{MS "HotKey"}

If you want to set-up a multimedia hot key, just press the key or key combination you
want!@{par}

By using the PopUp Gadget you're are able to specify normal system hotkeys like CONTROL ALT
HELP.@{par}

Of course it's possible to enter all hotkeys by hand, but you should aware that any wrong part will
be removed!

There are a few "pseudo" keys that require Manuel input:

@{MS "KBReset"}

This @{"command" link "EditComm"} will be used only when resetting the amiga by keyboard. Qualifier
(Shift, Alt, ...) are not allowed. Please note that the reset is delayed until the last KBReset
hotkey is executed or the @{"maximum delay time" link "FAQSResetHandler"} is over. If you're using
two or more KBReset hotkeys then you must be aware that the second @{"command" link "EditComm"}
won't be started until the first is done. Avoid starting programs in @{"WBMode" link "EditExTy"},
because they're started asynchrony and don't delay the reset.

@{MS "KBPlug"}

If you plug in a keyboard this @{"command" link "EditComm"} will be executed. Normaly such command
is useless, but if you're switching your keyboard between PC and Amiga you're able to play a sample
or something like that.

@endnode
@node "EditTask" "Hotkey Set-up - Task Name"
@toc "Edit"

@{MS "Task Name"}

Here you can specify a task name for the hotkey.@{par}

Let's say you're using two music player. One for CD and one for MP3. The problem is that there is
only one "play" key on your keyboard. By using this gadget it's possible to start different hotkey
for different applications by using the same key.@{par}

It's required to enter the task name here. In normal cases this is the program name without any
path! Workbench windows are listening to "workbench". Golded requires a "golded" within this gadget.
The string will be compared last byte first and the case isn't important at all.@{par}

When using the popup window, to select an available task, task names containing "/" and/or ":" are reduced
to their filename. This may not be correct in some cases, so it may be required to enter the full
string by hand.@{par}

@{b}The task selection window is only able to display running tasks at the time of opening.
Some of the displayed tasks are not useful, because in normal case they never open a window
(only error report). These task are devices "#?.device" and dos drives "df0" in the first place!
It's not possible to filter them, so don't ask for it. MMKeyboard is not able to detect if a
program is able to open a window. E.g. MMKeyboardServer is only able to open error requests.@{ub}@{par}

@{b}Note: The whole task stuff isn't respecting the programming guidelines. I tried to
avoid any risks, but shit happens. When leaving the task field clear for all hotkeys the "illegal"
stuff isn't used at all and MMKeyboard is working 100% compatible again. The task popup window is
probably the most significant hack, because MMKeyboard is scanning the exec.library internal data.@{ub}@{par}

@endnode
@node "EditExTy" "Hotkey Set-up - Execute type"
@toc "Edit"

@{MS "Execute type"}

This gadget allows to set-up what type of command is specified in the @{"command" link "EditComm"} gadget
Currently "CLI", "WB", "Key Command" and "Internal Command" are available.@{par}

@endnode
@node "EditStac" "Hotkey Set-up - Stack"
@toc "Edit"

@{MS "Stack"}

This gadget specifies the stack for the @{"command" link "EditComm"}.

@endnode
@node "EditComm" "Hotkey Set-up - Command"
@toc "Edit"

@{MS "Command"}

The contents of this gadget depends on the @{"execute type" link "EditExTy"}.@{par}

@{MS "CLI / WB"}

Path and command name of the command you want to execute.

@{MS "Key Command"}

This gadget contains a new key combination. Please note that key groups like "SHIFT" are not
allowed. It's required to specify the key. So define "LSHIFT", "RSHIFT" or "CAPSLOCK" insteat.@{par}

MMKeyboard is using the qualifier without any modifications. So a "CONTROL LALT HELP" is used even
if the user is pressing the shift key! Sometimes it may be useful to let the user qualifier through.
Let's say you want the Help key as a replacement for an "a". It's required that you're able to type
a "A" (shift) or an "æ" (alt). The "-" version of a qualifier in indicating that the specified
qualifier is path through. In our case the key command looks like this: "-LSHIFT -RSHIFT -LALT -RALT
-RCOMMAND -RCOMMAND -CONTROL -CAPSLOCK a".

@{MS "Internal Command"}

MMKeyboard is supporting a few @{"internal commands" link "Intern"} for hotkey usage.@{par}

@endnode
@node "EditCuDi" "Hotkey Set-up - Current Directory"
@toc "Edit"

@{MS "Current Directory"}

If you want to change the current directory for the @{"command" link "EditComm"}, then put it in
here.

@endnode
@node "EditOuFi" "Hotkey Set-up - Output File"
@toc "Edit"

@{MS "Output File"}

The output of the command can be redirected by using this gadget.

@endnode
@node "EditOkOk" "Hotkey Set-up - Use"
@toc "Edit"

@{MS "Use"}

The hotkey settings will be used and the edit window will be closed.

@endnode
@node "EditCanc" "Hotkey Set-up - Cancel"
@toc "Edit"

@{MS "Cancel"}

Closes the edit window! All changes will be rejected.

@endnode

@node "GeLw" "The List Selection Window"
@toc "EDIT"

@{MS "The List Selection Window"}

This window allows to select a specific entry of a given list.@{par}

@endnode

@node "KeCh" "MMKeyboard: Keyboard Set-Up"
@toc "MAST"

@{MS "Keyboard Set-Up"}

Just select vendor and keyboard you're using. If your keyboard isn't listed use the
@{"keyboard editor" link "KeEd"} (menu) to create your own set-up.@{par}

@{code}
@{JCENTER}@{"Vendor List" link "KeChVeLi"}
@{"Keyboard List" link "KeChKeLi"}
@{"Use" link "KeChOkOk"}
@{"Cancel" link "KeChCanc"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "KeChVeLi" "Keyboard Set-up - Vendor List"
@toc "KeCh"

@{MS "Vendor List"}

This list contains all supported vendors.@{par}

@{b}If your keyboard vendor isn't supported, then use the @{"keyboard editor" link "KeEd"} to create
a set-up for it.@{ub}@{par}

@endnode
@node "KeChKeLi" "Keyboard Set-up - Keyboard List"
@toc "KeCh"

@{MS "Keyboard List"}

This list contains all supported keyboards created by the selected vendor.@{par}

@{b}If your keyboard isn't supported, use the @{"keyboard editor" link "KeEd"} to create
a set-up for it.@{ub}@{par}

@endnode
@node "KeChOkOk" "Keyboard Set-up - Use"
@toc "KeCh"

@{MS "Use"}

The hotkey settings will be used and the edit window will be closed.@{par}

@endnode
@node "KeChCanc" "Keyboard Set-up - Cancel"
@toc "KeCh"

@{MS "Cancel"}

Closes the keyboard set-up window! All changes will be rejected.@{par}

@endnode

@node "KeEd" "MMKeyboard: Keyboard Editor"
@toc "KeCh"

@{MS "Keyboard Editor"}

This small editor allows to define key names for the new multimedia keyboards!@{PAR}

It's not required to create such names, but look at the following example:@{PAR}

"CONTROL ALT $8334"  (The hex value is just an example)@{PAR}

Which hotkey is used? MMKeyboard internally only uses these hex values, and you are able to define
these Hotkeys by pressing them, but if you later take look on your configuration it's not very handy to
deal with hex values and identify the key. After 2 Minutes key set-up the example looks much better:@{PAR}

"CONTROL ALT PLAY"@{PAR}

@{b}Before creating your own keyboard setting, you should check if it's already present in the
"Presets/MMKeyboard/Keyboards/" drawer of your installation. Just try to load and see for your self.@{ub}@{PAR}

The keyboard editor is very easy to use:@{PAR}

1. Press the key you want to add.@{PAR}
2. Enter the name and press return.@{PAR}
3. If there are more keys to add then proceed with 1.@{PAR}
4. Use the @{"save gadget" link "KeEdKeSa"} to save the keyboard settings.@{PAR}
5. Send me your configuration to include it into my archive. (-8
@{code}
@{MS "These are the gadgets available in the keyboard editor:"}
@{JCENTER}@{"Vendor Name" link "KeEdVeNa"}
@{"Keyboard Name" link "KeEdKBNa"}

@{"Keyboard List" link "KeEdKeLi"}
@{"Load..." link "KeEdKeLo"}
@{"Save..." link "KeEdKeSa"}

@{"Remove" link "KeEdKeRe"}
@{"Remove All..." link "KeEdKeRA"}

@{"Name" link "KeEdKeNa"}
@{"Value" link "KeEdKeVa"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "KeEdVeNa" "Keyboard Editor - Vendor Name"
@toc "KeEd"

@{MS "Vendor Name"}

This gadget defines the vendor name of the keyboard. Please make sure the name is correct, because
MMKeyboard requires it to group all keyboards of the same vendor.

@endnode
@node "KeEdKBNa" "Keyboard Editor -  Keyboard Name"
@toc "KeEd"

@{MS "Keyboard Name"}

This input gadget holds the keyboard name. Please note that the name must be very specific. It's a
good idea to use the identification label at the back of your keyboard.

@endnode
@node "KeEdKeLi" "Keyboard Editor - Key List"
@toc "KeEd"
@{MS "Key List"}

This listview displays all defined keys by name. It's possible browse by mouse, mouse wheel or keyboard (CRSR
UP, CRSR DOWN and RETURN).@{PAR}

To add a key just press it! An existing key can be selected by pressing it, too.@{PAR}

@{b}It's only possible to add non standard windows keys! Keys like F11 or PageUp are
predefined.@{ub}

@endnode
@node "KeEdKeLo" "Keyboard Editor - Load..."
@toc "KeEd"

@{MS "Load..."}

Here you can specify a keyboard file to load.@{PAR}

@endnode
@node "KeEdKeSa" "Keyboard Editor - Save..."
@toc "KeEd"

@{MS "Save..."}

Here you can save the current keyboard settings.@{PAR}

@endnode
@node "KeEdKeRe" "Keyboard Editor - Remove"
@toc "KeEd"

@{MS "Remove"}

This button deletes the selected key.@{PAR}

@{b}Under normal circumstances it's not wise to delete any key, because the only keys you can
add are non Amiga keys and it's not possible to enter one key twice. Well, some keyboards may
report ghost keys, so these keys can be removed.@{ub}

@endnode
@node "KeEdKeRa" "Keyboard Editor - Remove All..."
@toc "KeEd"

@{MS "RemoveAll..."}

Here you can delete the entire key list.@{PAR}

@endnode
@node "KeEdKeNa" "Keyboard Editor - Name"
@toc "KeEd"

@{MS "Name"}

This input gadget allows to specify the name of the selected key. Spaces and several other keys are
not allowed.@{PAR}

@endnode
@node "KeEdKeVa" "Keyboard Editor - Value"
@toc "KeEd"

@{MS "Value"}

This little gadget just displays the current key value and is for (my) information only.@{PAR}

@endnode

@node "PICC" "MMKeyboard: PIC Set-up"
@toc "MAST"

@{MS "PIC Set-up"}

This window allows to set-up the PIC configuration by selecting the features.@{par}
@{code}
@{MS "Password Options"}
@{JCENTER}@{"Password Mode" link "PICCPass"}
@{"Password HotKey" link "PICCPaHo"}
@{MS "Power Options"}
@{JCENTER}@{"Power Mode" link "PICCPoMo"}
@{"Power Key" link "PICCPoKe"}
@{MS "Key Options"}
@{JCENTER}@{"Screen Flip" link "PICCScre"}
@{"PrintScr" link "PICCPrin"}
@{"Break" link "PICCBrea"}
@{"RightCTRL" link "PICCRCTR"}
@{"Home" link "PICCHome"}
@{"End" link "PICCEndd"}
@{"Page Up" link "PICCPaUp"}
@{"Page Down" link "PICCPaDo"}
@{"Num Lock" link "PICCNuLo"}
@{"Caps Lock" link "PICCCaLo"}
@{"Help" link "PICCHELP"}
@{"Alt<>Win Swap" link "PICCALTT"}
@{MS "PIC Configuration"}
@{JCENTER}@{"Set-up PIC Configuration..." link "PICCConf"}
@{"Value" link "PICCValu"}

---------------------------------------------------------------------------
@{"Main Window" link "MAsT"} @{"Edit Window" link "Edit"} @{"Keyboard set-up" link "KeCh"}
@{"Keyboard editor" link "KeEd"} @{"Password set-up" link "Pass"} @{"Password GUI Set-up" link "PaGU"}
@{"PIC Set-up" link "PICC"}

@endnode
@node "PICCPass" "PIC Set-up - Password Mode"
@toc "PICC"

@{MS "Password Mode"}

This gadget turn on the password request of the PIC.@{par}

The real keyboard access is denied until the correct password is entered.@{par}

Editing the password by using delete, backspace or the cursor keys is not possible! If you make a
mistake just press "RETURN" and re-enter the password.@{par}

It's not possible to reset your Amiga by keyboard during password request.@{par}

@{b}Warning: This is a real hardware password! There is no backdoor or something like that!
Make sure your password is correct *before* enabling it! If not, it will be required to reprogram
the PIC by using an external PIC programmer!@{par}

The password is working independent! The @{"password enable" link "PassActi"} switch only enables
the GUI! After setting this configuration the password will be required even when using a boot disc!
The Amiga is only able to display a password GUI! The password itself is checked within the
hardware!@{ub}

@endnode
@node "PICCPaHo" "PIC Set-up - Password Hotkey"
@toc "PICC"

@{MS "Password Hotkey"}

This gadget turns on the password hotkey.@{par}

"ScrLock" (re)starts the password protection. This is very useful when leaving your amiga alone for a
while. You should read the @{"password mode" link "PICCPass"} section, before turning this on.@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCPoMo" "PIC Set-up - Power Mode"
@toc "PICC"

@{MS "Power Mode"}

@{b}For this feature @{"additional hardware" link "FAQSPICPowerSW"} is required!@{ub}@{par}

By using this useful feature it's possible to shut down and restart your Amiga by keyboard.@{par}

Make sure you defined the @{"Power Key" link "PICCPoKe"} when using this!@{par}

To shut down the Amiga just press "RAMIGA" and the @{"Power Key" link "PICCPoKe"}. A single second
keystroke (@{"Power Key" link "PICCPoKe"} only) restarts your system.@{par}

@{b}The power mode is full reset handler compatible! This means any application using a reset
handler has at least 10 seconds time before the system shuts down! If there isn't a reset handler
running there is no additional delay!@{ub}@{par}

@endnode
@node "PICCPoKe" "PIC Set-up - Power HotKey"
@toc "PICC"

@{MS "Power HotKey"}

@{b}For this feature @{"additional hardware" link "FAQSPICPowerSW"} is required.@{ub}@{par}

Just press the desired key you want to use as power key. Remember that you are no longer able to use
"RAMIGA" in any conjunction with this key, because the system shut down when using this combination.

@endnode
@node "PICCScre" "PIC Set-up - Screen Flip"
@toc "PICC"

@{MS "Screen Flip"}

When activated pressing the "Menu PopUp" key (between RWin & RControl key) the amiga receives a
"LAMIGA M" (ScreenFlip).@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCPrin" "PIC Set-up - PrintScr"
@toc "PICC"

@{MS "PrintScr"}

Pressing the PrintScreen key (aka PrtScr, Druck) the keyboard sends a "RAMIGA P"!
This is the standard Amiga key combination for printing.@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCBrea" "PIC Set-up - Break"
@toc "PICC"

@{MS "Break"}

Pressing the break key the amiga receives a "CONTROL C"! This combination causes
shell programs to quit.@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}


@endnode
@node "PICCRCTr" "PIC Set-up - Right CTRL"
@toc "PICC"

@{MS "Right CTRL"}

The right control key will act as a normal control key.@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCHome" "PIC Set-up - Home"
@toc "PICC"

@{MS "Home"}

Pressing this key causes a "SHIFT CRSR LEFT".@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCEndd" "PIC Set-up - End"
@toc "PICC"

@{MS "End"}

Pressing this key causes a "SHIFT CRSR RIGHT".@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCPaUp" "PIC Set-up - Page Up"
@toc "PICC"

@{MS "Page Up"}

Pressing this key causes a "SHIFT CRSR UP"!@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCPaDo" "PIC Set-up - Page Down"
@toc "PICC"

@{MS "Page Down"}

Pressing this key causes a "SHIFT CRSR DOWN".@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCNuLo" "PIC Set-up - NumLock"
@toc "PICC"

@{MS "NumLock"}

By default this gadget allows to toggle the numpad lock mode.@{par}

There is no further use, but some keyboard may require such feature.@{par}

Just turn it off to get the normal amiga NumLock key!@{par}

@endnode
@node "PICCCaLo" "PIC Set-up - CapsLock"
@toc "PICC"

@{MS "CapsLock"}

By default this gadget allows to toggle the capslock mode.@{par}

@{b}Disabling this gadget allows you to use the key like any other multimedia key!@{ub}

@endnode
@node "PICCHelp" "PIC Set-up - Help"
@toc "PICC"

@{MS "Help"}

By default the "insert" key is used as "Help" key, because on Amiga insert is useless.
You are able to use "F12" and/or "Insert" as "help" key@{par}

@{b}Any unused key is available as multimedia key.@{ub}

@endnode
@node "PICCALTT" "PIC Set-up - Alt<>Amiga Swap"
@toc "PICC"

@{MS "Alt<>Amiga Swap"}

This is a special feature! As you may have noticed the windows keys aren't in the same positions
like the amiga keys on an Amiga keyboard! On Amiga keyboards the Amiga keys are next to the space
key, but on the windows version that's the position of the ALT keys.@{par}

Just turn this feature on to swap the ALT and WIN keys. Don't forget to swap the key caps on your keyboard. This
may be a good time to kill the windows logo on the keys.@{par}

@{b}After swapping the keys the Amiga key is ALWAYS next to the space key! Even the PIC
internal menu and the power mode are using the new key positions!@{ub}

@endnode
@node "PICCConf" "PIC Set-up - Set-up PIC Configuration..."
@toc "PICC"

@{MS "Set-up PIC Configuration..."}

After skipping saftey requester you'll guided through the PIC Configuration.@{par}

@{b}It's required that the keyboard is working normal. This means no wrong or repeated chars. This
set-up is only changing functions. If your interface isn't working at, then all this set-up won't have any
effect. By using this set-up anyway you risk a total configuration damage, which may result in an
unknown password.@{ub}@{par}

Important: The predefined password is "amiga", but this default value may not be writing by your PIC programming
tool. It makes sense to change the password to "amiga" once before playing around with the set-up. Even if you don't
want to use the password you're able to enter it even if it's activated by accident.@{par}

If you're asking your self, why the PIC set-up is so stupid, then you should read @{"this" link "FAQSPICStupidSetup"}.@{par}

Follow the configuration menu word by word. If you make a mistake during the password enter process,
then just press "RETURN" and select password again. The PIC configuration itself is auto detecting any
error and forces the user to re-enter the data without telling him.@{par}

@endnode
@node "PICCValu" "PIC Set-up - Configuration Value"
@toc "PICC"

@{MS "Configuration Value"}

This is the configuration value for the PIC when using the settings made by using this window!@{par}

@{b}It's only useful when doing the PIC Set-up without the @{"set-up window" link "PICC"}. It's for
experts only. If you don't know what I am talking about then don't think about this gadget.@{ub}@{par}

@endnode

@node "Intern" "Internal Commands"

@{MS "Internal Commands"}

Internal commands are small functions, which can be specified as action by a @{"simple selection" link "GeLw"}.@{par}

@{JCenter}
MMKeyboard supports the following internal commands:@{par}

@{b}Screen Operations@{ub}@{par}

* @{"ScreenNext" link "InternScreenNext"} *@{par}
* @{"ScreenPrev" link "InternScreenPrev"} *@{par}

@{b}Window Operations@{ub}@{par}

* @{"WindowNext" link "InternWindowNext"} *@{par}
* @{"WindowPrev" link "InternWindowPrev"} *@{par}
* @{"WindowToBack" link "InternWindowToBack"} *@{par}
* @{"WindowToFront" link "InternWindowToFront"} *@{par}
@{"WindowClose" link "InternWindowClose"}@{par}
* @{"WindowMaximise" link "InternWindowMaximise"} *@{par}
* @{"WindowMinimise" link "InternWindowMinimise"} *@{par}
* @{"WindowZip" link "InternWindowZip"} *@{par}

@{b}System Operations@{ub}@{par}

@{"WarmReboot" link "InternWarmReboot"}@{par}
* @{"ColdReboot" link "InternColdReboot"} *@{par}

@{b}Miscellaneous@{ub}@{par}

@{"IEvent" link "InternIEvent"}@{par}

@{JLEFT}
@{b}* Please note that the usage of these commands may cause trouble, because they ignore several
system programming rules.@{ub}

@endnode
@node "InternArguments" "Internal Commands - The Arguments"
@toc "Intern"

@{MS "The Argumente"}

The arguments follow the same rules like the command arguments under AmigaDos. Please refer your dos manual for further information.@{par}

If you want to specify spaces within strings it's requird to enclose the string with brackets.@{par}

@endnode
@node "InternScreenNext" "Internal Commands - ScreenNext"
@toc "Intern"

@{MS "ScreenNext"}

This function forces the next screen to front.

@endnode
@node "InternScreenPrev" "Internal Commands - ScreenPrev"
@toc "Intern"

@{MS "ScreenPrev"}

This function forces the previous screen to front.

@endnode
@node "InternWindowNext" "Internal Commands - WindowNext"
@toc "Intern"

@{MS "WindowNext"}

This function forces the next window to front.

@endnode
@node "InternWindowPrev" "Internal Commands - WindowPrev"
@toc "Intern"

@{MS "WindowPrev"}

This function forces the previous screen to back.

@endnode
@node "InternWindowToBack" "Internal Commands - WindowToBack"
@toc "Intern"

@{MS "WindowToBack"}

The active window will be pushed to the back. It stays selected.

@endnode
@node "InternWindowToFront" "Internal Commands - WindowToFront"
@toc "Intern"

@{MS "WindowToFront"}

The active window will be moved to the front. It stays selected.

@endnode
@node "InternWindowClose" "Internal Commands - WindowClose"
@toc "Intern"

@{MS "WindowClose"}

The active window will close. Of cource the window must have a close button.

@endnode
@node "InternWindowMaximise" "Internal Commands - WindowMaximise"
@toc "Intern"

@{MS "WindowMaximise"}

Maximises the active window.

@endnode
@node "InternWindowMinimise" "Internal Commands - WindowMinimise"
@toc "Intern"

@{MS "WindowMinimise"}

Minimises the active window.

@endnode
@node "InternWindowZip" "Internal Commands - WindowZip"
@toc "Intern"

@{MS "WindowZip"}

The active window will be maximised or minimised, depending on it's prevous state.

@endnode
@node "InternWarmReboot" "Internal Commands - WarmReboot"
@toc "Intern"

@{MS "WarmReboot"}

This command restarts your system!

@endnode
@node "InternColdReboot" "Internal Commands - ColdReboot"
@toc "Intern"

@{MS "ColdReboot"}

This command will reboot your system and all reset resident data (viruses, RAD, OS3.x
ROM Updates) will be kicked out of memory.@{par}

After rebooting the system is in the same state as if you turned it off and on again!@{par}

@endnode
@node "InternIEvent" "Internal Commands - IEvent"
@toc "Intern"

@{MS "IEvent"}

IEvent is the system name for "input event". By using this command you can
simulate input sequences. Let's say it easy: you can create one or more keys by
using this command.@{par}

This command requires some @{"arguments" link "InternArguments"}:@{par}

RAW/K,STRING/K,LSHIFT/S,RSHIFT/S,CAPSLOCK/S,CONTROL/S,LALT/S,RALT/S,LCOMMAND/S,RCOMMAND/S@{par}

RAW and STRING are modes. If more than one is specified, then RAW will be used.
The qualifier switches are used for all keys when in string mode. Within RAW
mode this is only the start condition. You're able to modify the qualifier by
using the qualifier rawkey with or without oring the upstroke ($80).@{par}

Examples:@{par}

IEvent String "Guido Mersmann"@{par}

creates the keyboard input "Guido Mersmann"@{par}

IEvent String "Guido Mersmann" LSHIFT@{par}

creates "GUIDO MERSMANN"@{par}

IEvent Raw "4c4c"@{par}

creates two "cursor up" keys.@{par}

IEvent Raw "612020E120"@{par}

This one is complicated. "61" is the rawkey code for the left shift key. The two
"20" keycodes are representing two "a" keys followed by a "E1". This is the
shift key again, but this time it's shift up ($61+$80). The last char is the "a"
again. The result is "AAa". Well, there other ways to display these chars much
easier, but it's only an example.@{par}



@endnode

@node "Bonus" "The MMKeyboard Bonus Packet"
@toc "MAIN"

@{MS "Das MMKeyboard Bonus Packet"}

After the installation of MMKeyboard you'll find a drawer named Bonus within the installation
containing the following tools:@{par}

@{code}@{jcenter}

@{" " link "BEjectTool"} EjectTool


@endnode
@node "BEjectTool" "The MMKeyboard Bonus Packet: EjectTool"
@toc "Bonus"

@{MS "EjectTool"}

EjectTool  was designed to eject, load and toggle CD, DVD, ZIP and MO media.@{par}

There're several tools available, but I was missing a lot features like multi drive support and toggle
mode. In addition to that these tools are wasting memory.@{par}

@{b}EjectTool#? is able to stay resident  ("c:Resident EjectTool pure") in memory.@{ub}@{par}

@{b}The second version named "EjectToolENV" is only needed, when the @{"Toggle" link "BEJ_Toggle"}
option of "EjectTool" isn't working correct. The "EjectToolENV" version isn't able to detect the
state of the cd try and stores the actual state as ENV var in memory.@{ub}@{par}

The following template is used by EjectTool:@{par}

@{"DEVICE=D" link "BEJ_Device"},
@{"UNIT/N=U" link "BEJ_Unit"},
@{"TOGGLE/S=T" link "BEJ_Toggle"},
@{"EJECT/S=E" link "BEJ_Eject"},
@{"LOAD/S=L" link "BEJ_Load"},
@{"LOCK/S" link "BEJ_Lock"},
@{"UNLOCK/S" link "BEJ_Unlock"},
@{"EJECTONLY/S=EO" link "BEJ_EjectOnly"}@{par}

@endnode
@node "BEJ_Device" "EjectTool: Device=D"
@toc "BEjectTool"

@{MS "Device=D"}

This option defines the controller used with the drive. It may be a dos device specified insteat of a
real device (#?.device). By the way using the real device is a lot faster, so specify the device and
@{"unit" link "BEJ_Unit"} for speedup. You may use HDToolBox to find the correct device and unit.@{par}

Examples:@{par}

Device Omniscsi.device@{par}
Device cd0:@{par}
Device zip:@{par}
D scsi.device@{par}
Device amithlon.device@{par}

@endnode
@node "BEJ_Unit" "EjectTool: Unit=U"
@toc "BEjectTool"

@{MS "Unit=U"}

This is the unit (logic number) of the @{"device" link "BEJ_Device"} which the drive is connected
to.@{par}

Examples:@{par}

Unit 1@{par}
Unit 2@{par}
Unit 21@{par}

@endnode
@node "BEJ_Toggle" "EjectTool: Toggle/S=T"
@toc "BEjectTool"

@{MS "Toggle/S=T"}

This option ejects or loads a media depending on the current state of the drive. For drives that
are only able to eject media use @{"EjectOnly" link "BEJ_EjectOnly"} to avoid problems.@{par}

Examples:@{par}

Toggle@{par}
T@{par}

@endnode
@node "BEJ_Eject" "EjectTool: Eject/S=E"
@toc "BEjectTool"

@{MS "Eject/S=E"}

The drive will open the tray or eject the media.


@{b}EjectToolENV only: For drives that are only able to eject media use
@{"EjectOnly" link "BEJ_EjectOnly"} to avoid problems.@{ub}@{par}

Examples:@{par}

Eject@{par}
E@{par}

@endnode
@node "BEJ_Load" "EjectTool: Load/S=L"
@toc "BEjectTool"

@{MS "Load/S=L"}

The drive will close or pull in the media.@{par}

Examples:@{par}

Load@{par}
L@{par}

@endnode
@node "BEJ_Lock" "EjectTool: Lock/S"
@toc "BEjectTool"

@{MS "Lock/S"}

After using this option the drives eject/open button is locked. If you want to disable this button
and eject/load media by EjectTool, then use "Lock" and @{"Unlock" link "BEJ_Unlock"} together. This
causes the drive to unlock, eject/load and lock again.@{par}

Examples:@{par}

Lock@{par}

@endnode
@node "BEJ_Unlock" "EjectTool: Unlock/S"
@toc "BEjectTool"

@{MS "Unlock/S"}

Unlocks the drives open/eject button. and the user is able to open and eject the media by using this
button. If you want to disable this button and eject/load media by EjectTool, then use
@{"Lock" link "BEJ_Lock"} and "Unlock" together. This causes the drive to unlock, eject/load and lock again.@{par}

Examples:@{par}

Unlock@{par}

@endnode
@node "BEJ_EjectOnly" "EjectTool: EjectOnly/S=EO"
@toc "BEjectTool"

@{MS "EjectOnly/S=EO"}

@{b}This option is only available and needed within "EjectToolENV". If you're using "EjectTool" then
simply use the @{"Eject" link "BEJ_Eject"} option without any restrictions.@{ub}@{par}

EjectOnly is a version of @{"Eject" link "BEJ_Eject"} that is special designed for drives that
aren't able to pull in the media itself. These are ZIP or floppy drives.@{par}

Do not use EjectOnly together with other drives like CDROMs, because it's not storing any drive
state information.@{par}

Examples:@{par}

EjectOnly@{par}
EO@{par}

@endnode

@node Index
@{code}

 A

 @{"Additional hardware" link "FAQSPICPowerSW"}
 @{"After a system crash I don't get a password requester! Why?" link "FAQSNoPassword"}
 @{"Alt<>Win Swap" link "PICCALTT"}
 @{"Amithlon" link "FAQSAmithlon"}
 @{"ATX power supply" link "FAQSATX"}

 B

 @{"Bonus" link "Bonus"}
 @{"Break" link "PICCBrea"}
 @{"Bug List" link "Buglist"}
 @{"Buy Hardware" link "FAQSHardBuy"}

 C

 @{"Can I play my old games with your hardware!" link "FAQSGAME"}
 @{"Can I use my old hardware with your commodity?" link "FAQSNewSoftOldHard"}
 @{"Cancel" link "EditCanc"}
 @{"Cancel" link "MASTCANC"}
 @{"Caps Lock" link "PICCCaLo"}
 @{"Command" link "EditComm"}
 @{"configuration value" link "PICCValu"}
 @{"Current Directory" link "EditCuDi"}

 D

 @{"Deactivating the GUI" link "PassActi"}
 @{"Distribution" link "Distribution"}
 @{"Do I need the commodity? It seems to work without!" link "FAQSCOMM"}

 E

 @{"Edit Window" link "Edit"}
 @{"EjectTool" link "BEjectTool"}
 @{"EMail" link "Author"}
 @{"End" link "PICCEndd"}
 @{"Execute Type" link "EditExTy"}

 F

 @{"FAQ" link "FAQS"}
 @{"Feature List" link "FeatureList"}
 @{"Future" link "Future"}

 H

 @{"Hardware" link "Hardware"}
 @{"Help" link "PICCHELP"}
 @{"History" link "History" 999}
 @{"Home" link "PICCHome"}
 @{"Hotkey" link "EditHoKe"}
 @{"How can I switch my Amiga on and off by using the keyboard?" link "FAQSPICPowerSW"}
 @{"How to change the PIC configuration?" link "FAQSPICSetup"}
 @{"How To Install" link "HowToInstall"}

 I

 @{"I want to adapt an ATX power supply, but I don't know how!" link "FAQSATX"}
 @{"in" link "Author"}
 @{"Interface - Closed" link "/Pictures/MMK_Mersmann2.jpg/main"}
 @{"Interface - Hardware" link "Hardware"}
 @{"Interface - Schematic" link "/Pictures/Hardware.ilbm/MAIN"}
 @{"Internal Commands" link "EditComm"}
 @{"Introduction" link "Introduction"}
 @{"Is there a way to buy the hardware?" link "FAQSHardBuy"}
 @{"Is there a way to tune the hardware?" link "FAQSTune"}

 K

 @{"Key List" link "MASTKeLi"}
 @{"keyboard editor" link "KeEd"}
 @{"Keyboard List" link "KeEdKeLi"}
 @{"Keyboard Set-up" link "MASTKBSe"}
 @{"Keylist" link "MASTKeLi"}

 L

 M

 @{"Main Window" link "MAST"}
 @{"Maximum delay time" link "FAQSResetHandler"}
 @{"MMKeyboard Hardware (Picture)" link "/Pictures/Hardware.ilbm/MAIN"}
 @{"MMKeyboard Hardware" link "Hardware"}
 @{"MMKeyboard" link "MAST"}
 @{"My hardware isn't working at all! Why?" link "FAQSHardNW"}
 @{"My other amiga projects!" link "OtherPrgs"}

 N

 @{"Name" link "EditName"}
 @{"Name" link "KeEdKeNa"}
 @{"new" link "MASTKeNe"}
 @{"Num Lock" link "PICCNuLo"}

 O

 @{"Open on Screen" link "PassScre"}
 @{"optional LEDs" link "FAQSTune"}
 @{"Output File" link "EditOuFi"}

 P

 @{"Page Down" link "PICCPaDo"}
 @{"Page Up" link "PICCPaUp"}
 @{"Password Active" link "PassActi"}
 @{"password GUI" link "PassGUIP"}
 @{"Password HotKey" link "PICCPaHo"}
 @{"password key (ScrLock)" link "PICCPaHo"}
 @{"Password Mode" link "PICCPass"}
 @{"Password Set-up" link "MASTPaSe"}
 @{"password set-up" link "Pass"}
 @{"PIC set-up window" link "PICC"}
 @{"PIC Set-up" link "MASTPiSe"}
 @{"PIC Set-up" link "PICC"}
 @{"PIC" link "FAQSPIC"}
 @{"Picture - ATX Support" link "/Pictures/ATXSupport.ilbm/MAIN"}
 @{"Picture - Guido Mersmann" link "/pictures/Author.jpg/MAIN"}
 @{"Picture - Interface Closed" link "/Pictures/MMK_Mersmann2.jpg/main"}
 @{"Picture - Interface" link "/Pictures/MMK_Mersmann1.jpg/main"}
 @{"Picture - Optional Features" link "/Pictures/Optional.ilbm/MAIN"}
 @{"Power Key" link "PICCPoKe"}
 @{"Power Mode" link "PICCPoMo"}
 @{"Predefined" link "PICC"}
 @{"PrintScr" link "PICCPrin"}

 R

 @{"Remove All..." link "KeEdKeRA"}
 @{"Remove Key" link "KeEdKeRe"}
 @{"Remove Hotkey" link "MASTKeRe"}
 @{"Reset handler" link "FAQSResetHandler"}
 @{"Reset Switch" link "/Pictures/Optional.ilbm/MAIN"}

 S

 @{"Screen Flip" link "PICCScre"}
 @{"Separate Screen" link "PassScre"}
 @{"Set-up PIC configuration" link "PICCConf"}
 @{"Some keys aren't working and others are causing trouble!" link "FAQSTrouble"}
 @{"Stack" link "EditStac"}
 @{"Switch" link "/Pictures/Optional.ilbm/MAIN"}
 @{"System Requirements" link "SystemRequirements"}

 T

 @{"Task Name" link "EditTask"}
 @{"Task" link "EditTask"}
 @{"Thanx" link "Thanx"}
 @{"The Author" link "Author"}
 @{"The big keyboard test" link "Keyboard"}
 @{"There are many missing or auto repeating keys" link "FAQSAutoRepeat"}
 @{"this can be done" link "FAQSPICPowerSW"}

 U


 V

 @{"Value - Configuaration" link "PICCValu"}
 @{"Value - Key" link "KeEdKeVa"}

 W

 @{"What is a 'Reset Handler' doing?" link "FAQSResetHandler"}
 @{"What is a PIC?" link "FAQSPIC"}
 @{"Why is the PIC configuration so stupid?" link "FAQSPICStupidSetup"}

@endnode


