summaryrefslogtreecommitdiff
path: root/manual/platform
diff options
context:
space:
mode:
authorMarianne Arnold <pixelma@rockbox.org>2008-11-29 11:04:02 +0000
committerMarianne Arnold <pixelma@rockbox.org>2008-11-29 11:04:02 +0000
commite090bea1fac8f9f0d243d3c5e974b3f30b8cfff3 (patch)
tree5ae43bdeaa8e0270a3ce04f78fe731fbefcaca68 /manual/platform
parente8f22ac6fd33ff782fc44618613797b22479ea81 (diff)
downloadrockbox-e090bea1fac8f9f0d243d3c5e974b3f30b8cfff3.zip
rockbox-e090bea1fac8f9f0d243d3c5e974b3f30b8cfff3.tar.gz
rockbox-e090bea1fac8f9f0d243d3c5e974b3f30b8cfff3.tar.bz2
rockbox-e090bea1fac8f9f0d243d3c5e974b3f30b8cfff3.tar.xz
Manual: Platform files - split out the button and action commands from the platform files into separate keymap files. This avoids code duplication for targets which share the same keymap (M5,X5; the Archos Recorders and Ondios etc.). Before, someone would have to change a few files if e.g. something changed for the Ipod 4G pad, now only the keymap-ipod4g.tex has to be edited. The shared keymap files contain all possibly needed commands, for instance the radio screen actions in keymap-mx5.tex which is only used for the X5 not the M5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19262 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'manual/platform')
-rw-r--r--manual/platform/c200.tex110
-rw-r--r--manual/platform/e200.tex108
-rw-r--r--manual/platform/gigabeatf.tex84
-rw-r--r--manual/platform/gigabeats.tex91
-rw-r--r--manual/platform/h10.tex110
-rw-r--r--manual/platform/h10_5gb.tex110
-rw-r--r--manual/platform/h1xx.tex106
-rw-r--r--manual/platform/h300.tex107
-rw-r--r--manual/platform/ipod1g2g.tex79
-rw-r--r--manual/platform/ipod3g.tex79
-rw-r--r--manual/platform/ipod4g.tex90
-rw-r--r--manual/platform/ipodcolor.tex90
-rw-r--r--manual/platform/ipodmini.tex80
-rw-r--r--manual/platform/ipodnano.tex90
-rw-r--r--manual/platform/ipodvideo.tex90
-rw-r--r--manual/platform/keymap-c200.tex110
-rw-r--r--manual/platform/keymap-e200.tex108
-rw-r--r--manual/platform/keymap-gigabeatf.tex84
-rw-r--r--manual/platform/keymap-gigabeats.tex91
-rw-r--r--manual/platform/keymap-h10.tex110
-rw-r--r--manual/platform/keymap-h1xx.tex106
-rw-r--r--manual/platform/keymap-h300.tex107
-rw-r--r--manual/platform/keymap-ipod1g2g.tex79
-rw-r--r--manual/platform/keymap-ipod3g.tex79
-rw-r--r--manual/platform/keymap-ipod4g.tex90
-rw-r--r--manual/platform/keymap-mrobe100.tex85
-rw-r--r--manual/platform/keymap-mx5.tex93
-rw-r--r--manual/platform/keymap-ondio.tex83
-rw-r--r--manual/platform/keymap-player.tex46
-rw-r--r--manual/platform/keymap-recorder.tex111
-rw-r--r--manual/platform/m5.tex80
-rw-r--r--manual/platform/mrobe100.tex85
-rw-r--r--manual/platform/ondiofm.tex83
-rw-r--r--manual/platform/ondiosp.tex64
-rw-r--r--manual/platform/player.tex46
-rw-r--r--manual/platform/recorder.tex93
-rw-r--r--manual/platform/recorderv2fm.tex111
-rw-r--r--manual/platform/x5.tex93
38 files changed, 1428 insertions, 2033 deletions
diff --git a/manual/platform/c200.tex b/manual/platform/c200.tex
index e6d8cd1..4028a18 100644
--- a/manual/platform/c200.tex
+++ b/manual/platform/c200.tex
@@ -20,111 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{flash storage}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonUp}{\btnfnt{Play}}
-\newcommand{\ButtonDown}{\btnfnt{Submenu}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonVolUp}{\btnfnt{Volume Up}}
-\newcommand{\ButtonVolDown}{\btnfnt{Volume Down}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonDown}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdNext}{\ButtonUp}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdCancel}{\ButtonLeft}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonDown}
-\newcommand{\ActionQuickScreenExit}{\ButtonPower}
-\newcommand{\ActionStdMenu}{\ButtonPower}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdRec}{Long \ButtonRec}
-\newcommand{\ActionStdUsbCharge}{\ButtonSelect}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonUp}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonUp}
-\newcommand{\ActionWpsVolDown}{\ButtonVolDown}
-\newcommand{\ActionWpsVolUp}{\ButtonVolUp}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonDown}
-\newcommand{\ActionWpsMenu}{\ButtonPower}
-\newcommand{\ActionWpsContext}{\ButtonDown}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsPitchScreen}{\ButtonSelect{} + \ButtonUp}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonSelect{} + \ButtonDown}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonLeft}
-\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonUp}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonRec{} + \ButtonUp}
-\newcommand{\ActionTreeStop}{Long \ButtonUp}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonVolUp{}/ \ButtonVolDown}
-\newcommand{\ActionKbdAbort}{\ButtonPower}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-\newcommand{\ActionKbdCursorLeft}{\ButtonRec{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonRec{} + \ButtonRight}
-\newcommand{\ActionKbdBackSpace}{\ButtonRec{} + \ButtonSelect}
-\newcommand{\ActionKbdPageFlip}{\ButtonRec{} + \ButtonVolUp}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonRec}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonSelect}
-\newcommand{\ActionPsExit}{\ButtonPower}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonUp}
-\newcommand{\ActionRecExit}{Long \ButtonPower}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecMenu}{Long \ButtonDown}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonDown}
-\newcommand{\ActionRecNext}{\ButtonUp}
-
-\newcommand{\ActionQuickscreenExit}{\ButtonPower}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonSelect}
-\newcommand{\ActionFMMenu}{\ButtonDown}
-\newcommand{\ActionFMMode}{\ButtonRec}
-\newcommand{\ActionFMStop}{Long \ButtonUp}
-\newcommand{\ActionFMExit}{\ButtonPower}
-\newcommand{\ActionFMPlay}{\ButtonUp}
-\newcommand{\ActionFMSettingsInc}{\ButtonVolUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonVolDown}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-c200.tex}
diff --git a/manual/platform/e200.tex b/manual/platform/e200.tex
index 4320cdc..21f9053 100644
--- a/manual/platform/e200.tex
+++ b/manual/platform/e200.tex
@@ -20,109 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{flash storage}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonUp}{\btnfnt{Play}}
-\newcommand{\ButtonDown}{\btnfnt{Submenu}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonDown}
-\newcommand{\ActionQuickScreenExit}{\ButtonPower}
-\newcommand{\ActionStdMenu}{\ButtonDown}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdRec}{Long \ButtonRec}
-\newcommand{\ActionStdUsbCharge}{\ButtonSelect}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonUp}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{\ButtonPower}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollFwd}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollBack}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonDown}
-\newcommand{\ActionWpsMenu}{\ButtonDown}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsPitchScreen}{\ButtonSelect{} + \ButtonUp}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonSelect{} + \ButtonDown}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonLeft}
-\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonUp}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonUp}
-\newcommand{\ActionTreeStop}{\ButtonPower}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollBack}
-\newcommand{\ActionSettingDec}{\ButtonScrollFwd}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonUp}
-\newcommand{\ActionKbdAbort}{\ButtonPower}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdCursorLeft}{\ButtonRec{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonRec{} + \ButtonRight}
-\newcommand{\ActionKbdBackSpace}{\ButtonDown}
-\newcommand{\ActionKbdPageFlip}{\ButtonRec{} + \ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonRec}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonSelect}
-\newcommand{\ActionPsExit}{\ButtonPower{} or \ButtonUp}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonUp}
-\newcommand{\ActionRecExit}{\ButtonPower}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecMenu}{Long \ButtonSelect}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonScrollBack}
-\newcommand{\ActionRecNext}{\ButtonScrollFwd}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonSelect}
-\newcommand{\ActionFMMenu}{Long \ButtonSelect}
-\newcommand{\ActionFMMode}{Long \ButtonUp}
-\newcommand{\ActionFMStop}{\ButtonPower}
-\newcommand{\ActionFMExit}{\ButtonDown}
-\newcommand{\ActionFMPlay}{\ButtonUp}
-\newcommand{\ActionFMSettingsInc}{\ButtonUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonDown}
-\newcommand{\ActionFMPrev}{\ActionRecSettingsInc}
-\newcommand{\ActionFMNext}{\ActionRecSettingsDec}
-
+% link external keymap file
+\input{platform/keymap-e200.tex}
diff --git a/manual/platform/gigabeatf.tex b/manual/platform/gigabeatf.tex
index 7c7bfd7..9b7ad87 100644
--- a/manual/platform/gigabeatf.tex
+++ b/manual/platform/gigabeatf.tex
@@ -21,85 +21,5 @@
\newcommand{\screenshotsize}{6cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
-\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonA}{\btnfnt{A}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonPower}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonA}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonA{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonA{} + \ButtonLeft}
-\newcommand{\ActionWpsStop}{\ButtonPower}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonA{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsAbReset}{\ButtonA{} + \ButtonSelect}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonA{} + \ButtonMenu}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonA}
-\newcommand{\ActionTreeStop}{\ButtonPower}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdCursorLeft}{\ButtonA{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonA{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonA{} + \ButtonMenu}
-\newcommand{\ActionKbdDone}{\ButtonA}
-\newcommand{\ActionKbdAbort}{\ButtonPower}
-\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
-\newcommand{\ActionKbdMorseInput}{\ButtonA{} + \ButtonPower}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonMenu}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonA}
-\newcommand{\ActionPsExit}{\ButtonPower}
+% link external keymap file
+\input{platform/keymap-gigabeatf.tex}
diff --git a/manual/platform/gigabeats.tex b/manual/platform/gigabeats.tex
index bb659cb..414c1de 100644
--- a/manual/platform/gigabeats.tex
+++ b/manual/platform/gigabeats.tex
@@ -20,92 +20,5 @@
\newcommand{\screenshotsize}{6cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonBack}{\btnfnt{Back}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
-\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonPrev}{\btnfnt{Previous}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonNext}{\btnfnt{Next}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{}, \ButtonPower{} or \ButtonBack}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight{} or \ButtonNext}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft{} or \ButtonPrev}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft{} or Long \ButtonNext}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight{} or Long \ButtonNext}
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonBack{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonBack{} + \ButtonLeft}
-\newcommand{\ActionWpsStop}{\ButtonPower}
-\newcommand{\ActionWpsVolDown}{\ButtonDown{} or \ButtonVolDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp{} or \ButtonVolUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonBack{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsAbReset}{\ButtonBack{}}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonA{} + \ButtonMenu}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{\ButtonPower}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonPower}
-\newcommand{\ActionAlarmHoursInc}{\ButtonUp}
-\newcommand{\ActionAlarmHoursDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdCursorLeft}{\ButtonPrev}
-\newcommand{\ActionKbdCursorRight}{\ButtonNext}
-\newcommand{\ActionKbdPageFlip}{\ButtonBack{} + \ButtonMenu}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonBack}
-\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
-\newcommand{\ActionKbdMorseInput}{\ButtonBack{} + \ButtonVolUp}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonMenu}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonPlay}
-\newcommand{\ActionPsExit}{\ButtonBack}
+% link external keymap file
+\input{platform/keymap-gigabeats.tex}
diff --git a/manual/platform/h10.tex b/manual/platform/h10.tex
index 83adb39..bd57946 100644
--- a/manual/platform/h10.tex
+++ b/manual/platform/h10.tex
@@ -20,111 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Cancel}}
-\newcommand{\ButtonRight}{\btnfnt{Select}}
-\newcommand{\ButtonRew}{\btnfnt{Prev}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonFF}{\btnfnt{Next}}
-\newcommand{\ButtonScrollUp}{\btnfnt{Scroll Up}}
-\newcommand{\ButtonScrollDown}{\btnfnt{Scroll Down}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollUp}
-\newcommand{\ActionStdNext}{\ButtonScrollDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft}
-\newcommand{\ActionStdContext}{Long \ButtonRight}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonLeft}
-\newcommand{\ActionQuickScreenExit}{\ButtonLeft}
-\newcommand{\ActionStdMenu}{\ButtonPower}
-\newcommand{\ActionStdOk}{\ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonFF}
-\newcommand{\ActionWpsSkipPrev}{\ButtonRew}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonRew}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonFF}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollDown}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollUp}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonLeft}
-\newcommand{\ActionWpsMenu}{\ButtonPower}
-\newcommand{\ActionWpsContext}{Long \ButtonRight}
-\newcommand{\ActionWpsBrowse}{\ButtonLeft}
-\newcommand{\ActionWpsPitchScreen}{\ButtonPlay+\ButtonLeft}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonPlay+\ButtonRight}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonFF}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonRew}
-\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonPlay}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonRight}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollUp}
-\newcommand{\ActionSettingDec}{\ButtonScrollDown}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ActionStdOk}
-\newcommand{\ActionAlarmCancel}{\ActionStdCancel}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRew}
-\newcommand{\ActionAlarmHoursDec}{\ButtonFF}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonRew}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonFF}
-\newcommand{\ActionKbdUp}{\ButtonScrollUp}
-\newcommand{\ActionKbdDown}{\ButtonScrollDown}
-\newcommand{\ActionKbdMorseInput}{\ButtonPlay+\ButtonRew}
-\newcommand{\ActionKbdMorseSelect}{\ButtonRew}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPower}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollUp}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonRew}
-\newcommand{\ActionPsNudgeRight}{\ButtonFF}
-\newcommand{\ActionPsReset}{\ButtonPlay}
-\newcommand{\ActionPsExit}{\ButtonLeft}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonRight}
-\newcommand{\ActionFMMenu}{Long \ButtonRight}
-\newcommand{\ActionFMMode}{\ButtonLeft}
-\newcommand{\ActionFMStop}{Long \ButtonPlay}
-\newcommand{\ActionFMExit}{\ButtonPower}
-\newcommand{\ActionFMPlay}{\ButtonPlay}
-\newcommand{\ActionFMSettingsInc}{\ButtonScrollUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonScrollDown}
-\newcommand{\ActionFMPrev}{\ButtonRew}
-\newcommand{\ActionFMNext}{\ButtonFF}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecNewfile}{\ButtonRight}
-\newcommand{\ActionRecExit}{\ButtonLeft}
-\newcommand{\ActionRecMenu}{\ButtonPower}
-\newcommand{\ActionRecSettingsInc}{\ActionSettingInc}
-\newcommand{\ActionRecSettingsDec}{\ActionSettingDec}
-\newcommand{\ActionRecPrev}{\ButtonRew}
-\newcommand{\ActionRecNext}{\ButtonFF}
-
+% link external keymap file
+\input{platform/keymap-h10.tex}
diff --git a/manual/platform/h10_5gb.tex b/manual/platform/h10_5gb.tex
index c071721..ffe63d8 100644
--- a/manual/platform/h10_5gb.tex
+++ b/manual/platform/h10_5gb.tex
@@ -20,111 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Cancel}}
-\newcommand{\ButtonRight}{\btnfnt{Select}}
-\newcommand{\ButtonRew}{\btnfnt{Prev}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonFF}{\btnfnt{Next}}
-\newcommand{\ButtonScrollUp}{\btnfnt{Scroll Up}}
-\newcommand{\ButtonScrollDown}{\btnfnt{Scroll Down}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollUp}
-\newcommand{\ActionStdNext}{\ButtonScrollDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft}
-\newcommand{\ActionStdContext}{Long \ButtonRight}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonLeft}
-\newcommand{\ActionQuickScreenExit}{\ButtonLeft}
-\newcommand{\ActionStdMenu}{\ButtonPower}
-\newcommand{\ActionStdOk}{\ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonFF}
-\newcommand{\ActionWpsSkipPrev}{\ButtonRew}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonRew}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonFF}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollDown}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollUp}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonLeft}
-\newcommand{\ActionWpsMenu}{\ButtonPower}
-\newcommand{\ActionWpsContext}{Long \ButtonRight}
-\newcommand{\ActionWpsBrowse}{\ButtonLeft}
-\newcommand{\ActionWpsPitchScreen}{\ButtonPlay+\ButtonLeft}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonPlay+\ButtonRight}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonFF}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonRew}
-\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonPlay}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonRight}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollUp}
-\newcommand{\ActionSettingDec}{\ButtonScrollDown}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ActionStdOk}
-\newcommand{\ActionAlarmCancel}{\ActionStdCancel}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRew}
-\newcommand{\ActionAlarmHoursDec}{\ButtonFF}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonRew}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonFF}
-\newcommand{\ActionKbdUp}{\ButtonScrollUp}
-\newcommand{\ActionKbdDown}{\ButtonScrollDown}
-\newcommand{\ActionKbdMorseInput}{\ButtonPlay+\ButtonRew}
-\newcommand{\ActionKbdMorseSelect}{\ButtonRew}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPower}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollUp}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonRew}
-\newcommand{\ActionPsNudgeRight}{\ButtonFF}
-\newcommand{\ActionPsReset}{\ButtonPlay}
-\newcommand{\ActionPsExit}{\ButtonLeft}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonRight}
-\newcommand{\ActionFMMenu}{Long \ButtonRight}
-\newcommand{\ActionFMMode}{\ButtonLeft}
-\newcommand{\ActionFMStop}{Long \ButtonPlay}
-\newcommand{\ActionFMExit}{\ButtonPower}
-\newcommand{\ActionFMPlay}{\ButtonPlay}
-\newcommand{\ActionFMSettingsInc}{\ButtonScrollUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonScrollDown}
-\newcommand{\ActionFMPrev}{\ButtonRew}
-\newcommand{\ActionFMNext}{\ButtonFF}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecNewfile}{\ButtonRight}
-\newcommand{\ActionRecExit}{\ButtonLeft}
-\newcommand{\ActionRecMenu}{\ButtonPower}
-\newcommand{\ActionRecSettingsInc}{\ActionSettingInc}
-\newcommand{\ActionRecSettingsDec}{\ActionSettingDec}
-\newcommand{\ActionRecPrev}{\ButtonRew}
-\newcommand{\ActionRecNext}{\ButtonFF}
-
+% link external keymap file
+\input{platform/keymap-h10.tex}
diff --git a/manual/platform/h1xx.tex b/manual/platform/h1xx.tex
index 96377c3..2b87421 100644
--- a/manual/platform/h1xx.tex
+++ b/manual/platform/h1xx.tex
@@ -21,107 +21,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonSelect}{\btnfnt{Navi}}
-\newcommand{\ButtonMode}{\btnfnt{A-B}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonOn}{\btnfnt{Play}}
-\newcommand{\ButtonOff}{\btnfnt{Stop}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMode}
-\newcommand{\ActionQuickScreenExit}{\ButtonMode}
-\newcommand{\ActionStdMenu}{\ButtonMode}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdRec}{Long \ButtonRec}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonOn}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionWpsStop}{\ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMode}
-\newcommand{\ActionWpsMenu}{\ButtonMode}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonSelect}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonOn{} + \ButtonMode}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonOn}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonMode}
-\newcommand{\ActionKbdDone}{\ButtonOn}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdBackSpace}{\ButtonRec}
-\newcommand{\ActionKbdMorseInput}{\ButtonOn{} + \ButtonMode}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonMode}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonSelect}
-\newcommand{\ActionPsExit}{\ButtonOn{} or \ButtonOff}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonOn}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{\ButtonMode}
-\newcommand{\ActionRecExit}{\ButtonOff}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonSelect}
-\newcommand{\ActionFMMenu}{Long \ButtonSelect}
-\newcommand{\ActionFMMode}{Long \ButtonOn}
-\newcommand{\ActionFMStop}{\ButtonOff}
-\newcommand{\ActionFMExit}{\ButtonMode}
-\newcommand{\ActionFMPlay}{\ButtonOn}
-\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
-\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-h1xx.tex}
diff --git a/manual/platform/h300.tex b/manual/platform/h300.tex
index a78edda..e98b17f 100644
--- a/manual/platform/h300.tex
+++ b/manual/platform/h300.tex
@@ -21,108 +21,5 @@
\newcommand{\screenshotsize}{6cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonSelect}{\btnfnt{Navi}}
-\newcommand{\ButtonMode}{\btnfnt{A-B}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonOn}{\btnfnt{Play}}
-\newcommand{\ButtonOff}{\btnfnt{Stop}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMode}
-\newcommand{\ActionQuickScreenExit}{\ButtonMode}
-\newcommand{\ActionStdMenu}{\ButtonMode}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMode}
-\newcommand{\ActionStdRec}{Long \ButtonRec}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonOn}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionWpsStop}{\ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMode}
-\newcommand{\ActionWpsMenu}{\ButtonMode}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonSelect}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonOn{} + \ButtonMode}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonOn}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonMode}
-\newcommand{\ActionKbdDone}{\ButtonOn}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdBackSpace}{\ButtonRec}
-\newcommand{\ActionKbdMorseInput}{\ButtonOn{} + \ButtonMode}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonMode}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonSelect}
-\newcommand{\ActionPsExit}{\ButtonOn{} or \ButtonOff}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonOn}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{\ButtonMode}
-\newcommand{\ActionRecExit}{\ButtonOff}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonSelect}
-\newcommand{\ActionFMMenu}{Long \ButtonSelect}
-\newcommand{\ActionFMMode}{Long \ButtonOn}
-\newcommand{\ActionFMStop}{\ButtonOff}
-\newcommand{\ActionFMExit}{\ButtonMode}
-\newcommand{\ActionFMPlay}{\ButtonOn}
-\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
-\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-h300.tex}
diff --git a/manual/platform/ipod1g2g.tex b/manual/platform/ipod1g2g.tex
index 4676629..c5929f7 100644
--- a/manual/platform/ipod1g2g.tex
+++ b/manual/platform/ipod1g2g.tex
@@ -19,80 +19,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
+% link external keymap file
+\input{platform/keymap-ipod1g2g.tex}
diff --git a/manual/platform/ipod3g.tex b/manual/platform/ipod3g.tex
index 38fa21e..5f2a7be 100644
--- a/manual/platform/ipod3g.tex
+++ b/manual/platform/ipod3g.tex
@@ -19,80 +19,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
+% link external keymap file
+\input{platform/keymap-ipod3g.tex}
diff --git a/manual/platform/ipod4g.tex b/manual/platform/ipod4g.tex
index 88c1991..0d7a296 100644
--- a/manual/platform/ipod4g.tex
+++ b/manual/platform/ipod4g.tex
@@ -19,91 +19,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecExit}{\ButtonMenu}
-\newcommand{\ActionRecMenu}{Long \ButtonSelect}
-\newcommand{\ActionRecNewfile}{Long \ButtonPlay}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonScrollBack}
-\newcommand{\ActionRecNext}{\ButtonScrollFwd}
+% link external keymap file
+\input{platform/keymap-ipod4g.tex}
diff --git a/manual/platform/ipodcolor.tex b/manual/platform/ipodcolor.tex
index edbee76..b2d618f 100644
--- a/manual/platform/ipodcolor.tex
+++ b/manual/platform/ipodcolor.tex
@@ -19,91 +19,5 @@
\newcommand{\screenshotsize}{6cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecExit}{\ButtonMenu}
-\newcommand{\ActionRecMenu}{Long \ButtonSelect}
-\newcommand{\ActionRecNewfile}{Long \ButtonPlay}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonScrollBack}
-\newcommand{\ActionRecNext}{\ButtonScrollFwd}
+% link external keymap file
+\input{platform/keymap-ipod4g.tex}
diff --git a/manual/platform/ipodmini.tex b/manual/platform/ipodmini.tex
index 9cfdf9e..71df355 100644
--- a/manual/platform/ipodmini.tex
+++ b/manual/platform/ipodmini.tex
@@ -19,81 +19,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
+% link external keymap file
+\input{platform/keymap-ipod4g.tex}
diff --git a/manual/platform/ipodnano.tex b/manual/platform/ipodnano.tex
index ca0eac4..5a4a806 100644
--- a/manual/platform/ipodnano.tex
+++ b/manual/platform/ipodnano.tex
@@ -18,91 +18,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{flash storage}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecExit}{\ButtonMenu}
-\newcommand{\ActionRecMenu}{Long \ButtonSelect}
-\newcommand{\ActionRecNewfile}{Long \ButtonPlay}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonScrollBack}
-\newcommand{\ActionRecNext}{\ButtonScrollFwd}
+% link external keymap file
+\input{platform/keymap-ipod4g.tex}
diff --git a/manual/platform/ipodvideo.tex b/manual/platform/ipodvideo.tex
index fed9a38..843a3dd 100644
--- a/manual/platform/ipodvideo.tex
+++ b/manual/platform/ipodvideo.tex
@@ -20,91 +20,5 @@
\newcommand{\screenshotsize}{8cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Prev}}
-\newcommand{\ButtonRight}{\btnfnt{Next}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
-\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonScrollBack}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
-\newcommand{\ActionStdNext}{\ButtonScrollFwd}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
-\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
-
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
-\newcommand{\ActionSettingDec}{\ButtonScrollBack}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonSelect}
-\newcommand{\ActionAlarmCancel}{\ButtonMenu}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonMenu}
-\newcommand{\ActionKbdUp}{\ButtonScrollBack}
-\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
-\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonPlay}
-\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
-\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
-\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
-\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonSelect}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecExit}{\ButtonMenu}
-\newcommand{\ActionRecMenu}{Long \ButtonSelect}
-\newcommand{\ActionRecNewfile}{Long \ButtonPlay}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonScrollBack}
-\newcommand{\ActionRecNext}{\ButtonScrollFwd}
+% link external keymap file
+\input{platform/keymap-ipod4g.tex}
diff --git a/manual/platform/keymap-c200.tex b/manual/platform/keymap-c200.tex
new file mode 100644
index 0000000..579df94
--- /dev/null
+++ b/manual/platform/keymap-c200.tex
@@ -0,0 +1,110 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonRec}{\btnfnt{Rec}}
+\newcommand{\ButtonUp}{\btnfnt{Play}}
+\newcommand{\ButtonDown}{\btnfnt{Submenu}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonVolUp}{\btnfnt{Volume Up}}
+\newcommand{\ButtonVolDown}{\btnfnt{Volume Down}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonDown}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdNext}{\ButtonUp}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdCancel}{\ButtonLeft}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonDown}
+\newcommand{\ActionQuickScreenExit}{\ButtonPower}
+\newcommand{\ActionStdMenu}{\ButtonPower}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdRec}{Long \ButtonRec}
+\newcommand{\ActionStdUsbCharge}{\ButtonSelect}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonUp}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{Long \ButtonUp}
+\newcommand{\ActionWpsVolDown}{\ButtonVolDown}
+\newcommand{\ActionWpsVolUp}{\ButtonVolUp}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonDown}
+\newcommand{\ActionWpsMenu}{\ButtonPower}
+\newcommand{\ActionWpsContext}{\ButtonDown}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsPitchScreen}{\ButtonSelect{} + \ButtonUp}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonSelect{} + \ButtonDown}
+
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonLeft}
+\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonUp}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonRec{} + \ButtonUp}
+\newcommand{\ActionTreeStop}{Long \ButtonUp}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonVolUp{}/ \ButtonVolDown}
+\newcommand{\ActionKbdAbort}{\ButtonPower}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+\newcommand{\ActionKbdCursorLeft}{\ButtonRec{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonRec{} + \ButtonRight}
+\newcommand{\ActionKbdBackSpace}{\ButtonRec{} + \ButtonSelect}
+\newcommand{\ActionKbdPageFlip}{\ButtonRec{} + \ButtonVolUp}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonRec}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonSelect}
+\newcommand{\ActionPsExit}{\ButtonPower}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonUp}
+\newcommand{\ActionRecExit}{Long \ButtonPower}
+\newcommand{\ActionRecNewfile}{\ButtonRec}
+\newcommand{\ActionRecMenu}{Long \ButtonDown}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonDown}
+\newcommand{\ActionRecNext}{\ButtonUp}
+
+\newcommand{\ActionQuickscreenExit}{\ButtonPower}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonSelect}
+\newcommand{\ActionFMMenu}{\ButtonDown}
+\newcommand{\ActionFMMode}{\ButtonRec}
+\newcommand{\ActionFMStop}{Long \ButtonUp}
+\newcommand{\ActionFMExit}{\ButtonPower}
+\newcommand{\ActionFMPlay}{\ButtonUp}
+\newcommand{\ActionFMSettingsInc}{\ButtonVolUp}
+\newcommand{\ActionFMSettingsDec}{\ButtonVolDown}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/keymap-e200.tex b/manual/platform/keymap-e200.tex
new file mode 100644
index 0000000..3f56295
--- /dev/null
+++ b/manual/platform/keymap-e200.tex
@@ -0,0 +1,108 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonRec}{\btnfnt{Rec}}
+\newcommand{\ButtonUp}{\btnfnt{Play}}
+\newcommand{\ButtonDown}{\btnfnt{Submenu}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
+\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonScrollBack}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
+\newcommand{\ActionStdNext}{\ButtonScrollFwd}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
+\newcommand{\ActionStdCancel}{\ButtonLeft}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonDown}
+\newcommand{\ActionQuickScreenExit}{\ButtonPower}
+\newcommand{\ActionStdMenu}{\ButtonDown}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdRec}{Long \ButtonRec}
+\newcommand{\ActionStdUsbCharge}{\ButtonSelect}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonUp}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{\ButtonPower}
+\newcommand{\ActionWpsVolDown}{\ButtonScrollFwd}
+\newcommand{\ActionWpsVolUp}{\ButtonScrollBack}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonDown}
+\newcommand{\ActionWpsMenu}{\ButtonDown}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsPitchScreen}{\ButtonSelect{} + \ButtonUp}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonSelect{} + \ButtonDown}
+
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonLeft}
+\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonUp}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonUp}
+\newcommand{\ActionTreeStop}{\ButtonPower}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonScrollBack}
+\newcommand{\ActionSettingDec}{\ButtonScrollFwd}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonUp}
+\newcommand{\ActionKbdAbort}{\ButtonPower}
+\newcommand{\ActionKbdUp}{\ButtonScrollBack}
+\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
+\newcommand{\ActionKbdCursorLeft}{\ButtonRec{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonRec{} + \ButtonRight}
+\newcommand{\ActionKbdBackSpace}{\ButtonDown}
+\newcommand{\ActionKbdPageFlip}{\ButtonRec{} + \ButtonSelect}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonRec}
+\newcommand{\ActionPsIncSmall}{\ButtonScrollBack}
+\newcommand{\ActionPsIncBig}{Long \ButtonScrollBack}
+\newcommand{\ActionPsDecSmall}{\ButtonScrollFwd}
+\newcommand{\ActionPsDecBig}{Long \ButtonScrollFwd}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonSelect}
+\newcommand{\ActionPsExit}{\ButtonPower{} or \ButtonUp}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonUp}
+\newcommand{\ActionRecExit}{\ButtonPower}
+\newcommand{\ActionRecNewfile}{\ButtonRec}
+\newcommand{\ActionRecMenu}{Long \ButtonSelect}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonScrollBack}
+\newcommand{\ActionRecNext}{\ButtonScrollFwd}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonSelect}
+\newcommand{\ActionFMMenu}{Long \ButtonSelect}
+\newcommand{\ActionFMMode}{Long \ButtonUp}
+\newcommand{\ActionFMStop}{\ButtonPower}
+\newcommand{\ActionFMExit}{\ButtonDown}
+\newcommand{\ActionFMPlay}{\ButtonUp}
+\newcommand{\ActionFMSettingsInc}{\ButtonUp}
+\newcommand{\ActionFMSettingsDec}{\ButtonDown}
+\newcommand{\ActionFMPrev}{\ActionRecSettingsInc}
+\newcommand{\ActionFMNext}{\ActionRecSettingsDec}
+
diff --git a/manual/platform/keymap-gigabeatf.tex b/manual/platform/keymap-gigabeatf.tex
new file mode 100644
index 0000000..e74b535
--- /dev/null
+++ b/manual/platform/keymap-gigabeatf.tex
@@ -0,0 +1,84 @@
+% $Id$
+
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
+\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonA}{\btnfnt{A}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonPower}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonA}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonA{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonA{} + \ButtonLeft}
+\newcommand{\ActionWpsStop}{\ButtonPower}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonA{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsAbReset}{\ButtonA{} + \ButtonSelect}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonA{} + \ButtonMenu}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonA}
+\newcommand{\ActionTreeStop}{\ButtonPower}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdCursorLeft}{\ButtonA{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonA{} + \ButtonRight}
+\newcommand{\ActionKbdPageFlip}{\ButtonA{} + \ButtonMenu}
+\newcommand{\ActionKbdDone}{\ButtonA}
+\newcommand{\ActionKbdAbort}{\ButtonPower}
+\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
+\newcommand{\ActionKbdMorseInput}{\ButtonA{} + \ButtonPower}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonMenu}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonA}
+\newcommand{\ActionPsExit}{\ButtonPower}
diff --git a/manual/platform/keymap-gigabeats.tex b/manual/platform/keymap-gigabeats.tex
new file mode 100644
index 0000000..66996ab
--- /dev/null
+++ b/manual/platform/keymap-gigabeats.tex
@@ -0,0 +1,91 @@
+% $Id$
+
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonBack}{\btnfnt{Back}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
+\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonPrev}{\btnfnt{Previous}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonNext}{\btnfnt{Next}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{}, \ButtonPower{} or \ButtonBack}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight{} or \ButtonNext}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft{} or \ButtonPrev}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft{} or Long \ButtonNext}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight{} or Long \ButtonNext}
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonBack{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonBack{} + \ButtonLeft}
+\newcommand{\ActionWpsStop}{\ButtonPower}
+\newcommand{\ActionWpsVolDown}{\ButtonDown{} or \ButtonVolDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp{} or \ButtonVolUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonBack{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsAbReset}{\ButtonBack{}}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonA{} + \ButtonMenu}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{\ButtonPower}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ButtonSelect}
+\newcommand{\ActionAlarmCancel}{\ButtonPower}
+\newcommand{\ActionAlarmHoursInc}{\ButtonUp}
+\newcommand{\ActionAlarmHoursDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdCursorLeft}{\ButtonPrev}
+\newcommand{\ActionKbdCursorRight}{\ButtonNext}
+\newcommand{\ActionKbdPageFlip}{\ButtonBack{} + \ButtonMenu}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonBack}
+\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
+\newcommand{\ActionKbdMorseInput}{\ButtonBack{} + \ButtonVolUp}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonMenu}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonPlay}
+\newcommand{\ActionPsExit}{\ButtonBack}
diff --git a/manual/platform/keymap-h10.tex b/manual/platform/keymap-h10.tex
new file mode 100644
index 0000000..20b93a7
--- /dev/null
+++ b/manual/platform/keymap-h10.tex
@@ -0,0 +1,110 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Cancel}}
+\newcommand{\ButtonRight}{\btnfnt{Select}}
+\newcommand{\ButtonRew}{\btnfnt{Prev}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonFF}{\btnfnt{Next}}
+\newcommand{\ButtonScrollUp}{\btnfnt{Scroll Up}}
+\newcommand{\ButtonScrollDown}{\btnfnt{Scroll Down}}
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonScrollUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollUp}
+\newcommand{\ActionStdNext}{\ButtonScrollDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft}
+\newcommand{\ActionStdContext}{Long \ButtonRight}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonLeft}
+\newcommand{\ActionQuickScreenExit}{\ButtonLeft}
+\newcommand{\ActionStdMenu}{\ButtonPower}
+\newcommand{\ActionStdOk}{\ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonRight}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonFF}
+\newcommand{\ActionWpsSkipPrev}{\ButtonRew}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonRew}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonFF}
+
+\newcommand{\ActionWpsStop}{Long \ButtonPlay}
+\newcommand{\ActionWpsVolDown}{\ButtonScrollDown}
+\newcommand{\ActionWpsVolUp}{\ButtonScrollUp}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonLeft}
+\newcommand{\ActionWpsMenu}{\ButtonPower}
+\newcommand{\ActionWpsContext}{Long \ButtonRight}
+\newcommand{\ActionWpsBrowse}{\ButtonLeft}
+\newcommand{\ActionWpsPitchScreen}{\ButtonPlay+\ButtonLeft}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonPlay+\ButtonRight}
+
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonPower{} + \ButtonFF}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonPower{} + \ButtonRew}
+\newcommand{\ActionWpsAbReset}{\ButtonPower{} + \ButtonPlay}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonRight}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonScrollUp}
+\newcommand{\ActionSettingDec}{\ButtonScrollDown}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ActionStdOk}
+\newcommand{\ActionAlarmCancel}{\ActionStdCancel}
+\newcommand{\ActionAlarmHoursInc}{\ButtonRew}
+\newcommand{\ActionAlarmHoursDec}{\ButtonFF}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonRew}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonFF}
+\newcommand{\ActionKbdUp}{\ButtonScrollUp}
+\newcommand{\ActionKbdDown}{\ButtonScrollDown}
+\newcommand{\ActionKbdMorseInput}{\ButtonPlay+\ButtonRew}
+\newcommand{\ActionKbdMorseSelect}{\ButtonRew}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonPower}
+\newcommand{\ActionPsIncSmall}{\ButtonScrollUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonScrollUp}
+\newcommand{\ActionPsDecSmall}{\ButtonScrollDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonScrollDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonRew}
+\newcommand{\ActionPsNudgeRight}{\ButtonFF}
+\newcommand{\ActionPsReset}{\ButtonPlay}
+\newcommand{\ActionPsExit}{\ButtonLeft}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonRight}
+\newcommand{\ActionFMMenu}{Long \ButtonRight}
+\newcommand{\ActionFMMode}{\ButtonLeft}
+\newcommand{\ActionFMStop}{Long \ButtonPlay}
+\newcommand{\ActionFMExit}{\ButtonPower}
+\newcommand{\ActionFMPlay}{\ButtonPlay}
+\newcommand{\ActionFMSettingsInc}{\ButtonScrollUp}
+\newcommand{\ActionFMSettingsDec}{\ButtonScrollDown}
+\newcommand{\ActionFMPrev}{\ButtonRew}
+\newcommand{\ActionFMNext}{\ButtonFF}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonPlay}
+\newcommand{\ActionRecNewfile}{\ButtonRight}
+\newcommand{\ActionRecExit}{\ButtonLeft}
+\newcommand{\ActionRecMenu}{\ButtonPower}
+\newcommand{\ActionRecSettingsInc}{\ActionSettingInc}
+\newcommand{\ActionRecSettingsDec}{\ActionSettingDec}
+\newcommand{\ActionRecPrev}{\ButtonRew}
+\newcommand{\ActionRecNext}{\ButtonFF}
+
diff --git a/manual/platform/keymap-h1xx.tex b/manual/platform/keymap-h1xx.tex
new file mode 100644
index 0000000..725523f
--- /dev/null
+++ b/manual/platform/keymap-h1xx.tex
@@ -0,0 +1,106 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonSelect}{\btnfnt{Navi}}
+\newcommand{\ButtonMode}{\btnfnt{A-B}}
+\newcommand{\ButtonRec}{\btnfnt{Rec}}
+\newcommand{\ButtonOn}{\btnfnt{Play}}
+\newcommand{\ButtonOff}{\btnfnt{Stop}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMode}
+\newcommand{\ActionQuickScreenExit}{\ButtonMode}
+\newcommand{\ActionStdMenu}{\ButtonMode}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdRec}{Long \ButtonRec}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonOn}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionWpsStop}{\ButtonOff}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMode}
+\newcommand{\ActionWpsMenu}{\ButtonMode}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonSelect}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonOn{} + \ButtonMode}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonOn}
+\newcommand{\ActionTreeStop}{\ButtonOff}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionKbdPageFlip}{\ButtonMode}
+\newcommand{\ActionKbdDone}{\ButtonOn}
+\newcommand{\ActionKbdAbort}{\ButtonOff}
+\newcommand{\ActionKbdBackSpace}{\ButtonRec}
+\newcommand{\ActionKbdMorseInput}{\ButtonOn{} + \ButtonMode}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonMode}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonSelect}
+\newcommand{\ActionPsExit}{\ButtonOn{} or \ButtonOff}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonOn}
+\newcommand{\ActionRecNewfile}{\ButtonRec}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonUp}
+\newcommand{\ActionRecNext}{\ButtonDown}
+\newcommand{\ActionRecMenu}{\ButtonMode}
+\newcommand{\ActionRecExit}{\ButtonOff}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonSelect}
+\newcommand{\ActionFMMenu}{Long \ButtonSelect}
+\newcommand{\ActionFMMode}{Long \ButtonOn}
+\newcommand{\ActionFMStop}{\ButtonOff}
+\newcommand{\ActionFMExit}{\ButtonMode}
+\newcommand{\ActionFMPlay}{\ButtonOn}
+\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
+\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/keymap-h300.tex b/manual/platform/keymap-h300.tex
new file mode 100644
index 0000000..925d2fb
--- /dev/null
+++ b/manual/platform/keymap-h300.tex
@@ -0,0 +1,107 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonSelect}{\btnfnt{Navi}}
+\newcommand{\ButtonMode}{\btnfnt{A-B}}
+\newcommand{\ButtonRec}{\btnfnt{Rec}}
+\newcommand{\ButtonOn}{\btnfnt{Play}}
+\newcommand{\ButtonOff}{\btnfnt{Stop}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMode}
+\newcommand{\ActionQuickScreenExit}{\ButtonMode}
+\newcommand{\ActionStdMenu}{\ButtonMode}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonMode}
+\newcommand{\ActionStdRec}{Long \ButtonRec}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonOn}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionWpsStop}{\ButtonOff}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMode}
+\newcommand{\ActionWpsMenu}{\ButtonMode}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonSelect}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonOn{} + \ButtonMode}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonOn}
+\newcommand{\ActionTreeStop}{\ButtonOff}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionKbdPageFlip}{\ButtonMode}
+\newcommand{\ActionKbdDone}{\ButtonOn}
+\newcommand{\ActionKbdAbort}{\ButtonOff}
+\newcommand{\ActionKbdBackSpace}{\ButtonRec}
+\newcommand{\ActionKbdMorseInput}{\ButtonOn{} + \ButtonMode}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonMode}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonSelect}
+\newcommand{\ActionPsExit}{\ButtonOn{} or \ButtonOff}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonOn}
+\newcommand{\ActionRecNewfile}{\ButtonRec}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonUp}
+\newcommand{\ActionRecNext}{\ButtonDown}
+\newcommand{\ActionRecMenu}{\ButtonMode}
+\newcommand{\ActionRecExit}{\ButtonOff}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonSelect}
+\newcommand{\ActionFMMenu}{Long \ButtonSelect}
+\newcommand{\ActionFMMode}{Long \ButtonOn}
+\newcommand{\ActionFMStop}{\ButtonOff}
+\newcommand{\ActionFMExit}{\ButtonMode}
+\newcommand{\ActionFMPlay}{\ButtonOn}
+\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
+\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/keymap-ipod1g2g.tex b/manual/platform/keymap-ipod1g2g.tex
new file mode 100644
index 0000000..4656391
--- /dev/null
+++ b/manual/platform/keymap-ipod1g2g.tex
@@ -0,0 +1,79 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Prev}}
+\newcommand{\ButtonRight}{\btnfnt{Next}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
+\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonScrollBack}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
+\newcommand{\ActionStdNext}{\ButtonScrollFwd}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{Long \ButtonPlay}
+\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
+\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonPlay}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
+\newcommand{\ActionSettingDec}{\ButtonScrollBack}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ButtonSelect}
+\newcommand{\ActionAlarmCancel}{\ButtonMenu}
+\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
+\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonMenu}
+\newcommand{\ActionKbdUp}{\ButtonScrollBack}
+\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
+\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonPlay}
+\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
+\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
+\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
+\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonMenu}
+\newcommand{\ActionPsExit}{\ButtonSelect}
diff --git a/manual/platform/keymap-ipod3g.tex b/manual/platform/keymap-ipod3g.tex
new file mode 100644
index 0000000..4656391
--- /dev/null
+++ b/manual/platform/keymap-ipod3g.tex
@@ -0,0 +1,79 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Prev}}
+\newcommand{\ButtonRight}{\btnfnt{Next}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
+\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonScrollBack}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
+\newcommand{\ActionStdNext}{\ButtonScrollFwd}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{Long \ButtonPlay}
+\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
+\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonPlay}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
+\newcommand{\ActionSettingDec}{\ButtonScrollBack}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ButtonSelect}
+\newcommand{\ActionAlarmCancel}{\ButtonMenu}
+\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
+\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonMenu}
+\newcommand{\ActionKbdUp}{\ButtonScrollBack}
+\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
+\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonPlay}
+\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
+\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
+\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
+\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonMenu}
+\newcommand{\ActionPsExit}{\ButtonSelect}
diff --git a/manual/platform/keymap-ipod4g.tex b/manual/platform/keymap-ipod4g.tex
new file mode 100644
index 0000000..7ec3f97
--- /dev/null
+++ b/manual/platform/keymap-ipod4g.tex
@@ -0,0 +1,90 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Prev}}
+\newcommand{\ButtonRight}{\btnfnt{Next}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonScrollFwd}{\btnfnt{Scroll Forward}}
+\newcommand{\ButtonScrollBack}{\btnfnt{Scroll Backward}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonScrollBack}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonScrollBack}
+\newcommand{\ActionStdNext}{\ButtonScrollFwd}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonScrollFwd}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or Long \ButtonPlay}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{Long \ButtonPlay}
+\newcommand{\ActionWpsVolDown}{\ButtonScrollBack}
+\newcommand{\ActionWpsVolUp}{\ButtonScrollFwd}
+
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonPlay}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonScrollFwd}
+\newcommand{\ActionSettingDec}{\ButtonScrollBack}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ButtonSelect}
+\newcommand{\ActionAlarmCancel}{\ButtonMenu}
+\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
+\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonMenu}
+\newcommand{\ActionKbdUp}{\ButtonScrollBack}
+\newcommand{\ActionKbdDown}{\ButtonScrollFwd}
+\newcommand{\ActionKbdMorseInput}{Long \ButtonMenu}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonPlay}
+\newcommand{\ActionPsIncSmall}{\ButtonScrollFwd}
+\newcommand{\ActionPsIncBig}{Long \ButtonScrollFwd}
+\newcommand{\ActionPsDecSmall}{\ButtonScrollBack}
+\newcommand{\ActionPsDecBig}{Long \ButtonScrollBack}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonMenu}
+\newcommand{\ActionPsExit}{\ButtonSelect}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonPlay}
+\newcommand{\ActionRecExit}{\ButtonMenu}
+\newcommand{\ActionRecMenu}{Long \ButtonSelect}
+\newcommand{\ActionRecNewfile}{Long \ButtonPlay}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonScrollBack}
+\newcommand{\ActionRecNext}{\ButtonScrollFwd}
diff --git a/manual/platform/keymap-mrobe100.tex b/manual/platform/keymap-mrobe100.tex
new file mode 100644
index 0000000..adb8718
--- /dev/null
+++ b/manual/platform/keymap-mrobe100.tex
@@ -0,0 +1,85 @@
+% $Id$
+
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
+\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonDisplay}{\btnfnt{Display}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonDisplay{} or \ButtonPower}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonRight}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonDisplay{} + \ButtonRight}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonDisplay{} + \ButtonLeft}
+\newcommand{\ActionWpsStop}{\ButtonPower{} or Long \ButtonPlay}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonDisplay{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+\newcommand{\ActionWpsAbReset}{\ButtonDisplay{} + \ButtonSelect}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonDisplay{} + \ButtonMenu}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonDisplay}
+\newcommand{\ActionTreeStop}{\ButtonPower{} or Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdCursorLeft}{\ButtonDisplay{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonDisplay{} + \ButtonRight}
+\newcommand{\ActionKbdPageFlip}{\ButtonDisplay{} + \ButtonMenu}
+\newcommand{\ActionKbdDone}{\ButtonDisplay}
+\newcommand{\ActionKbdAbort}{\ButtonPower}
+\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
+\newcommand{\ActionKbdMorseInput}{\ButtonDisplay{} + \ButtonPower}
+\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonMenu}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonDisplay}
+\newcommand{\ActionPsExit}{\ButtonPlay}
diff --git a/manual/platform/keymap-mx5.tex b/manual/platform/keymap-mx5.tex
new file mode 100644
index 0000000..50d2ace
--- /dev/null
+++ b/manual/platform/keymap-mx5.tex
@@ -0,0 +1,93 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonSelect}{\btnfnt{Select}}
+\newcommand{\ButtonPower}{\btnfnt{Power}}
+\newcommand{\ButtonRec}{\btnfnt{Rec}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonHold}{\btnfnt{Hold}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonPower}
+\newcommand{\ActionStdContext}{Long \ButtonSelect}
+\newcommand{\ActionStdQuickScreen}{Long \ButtonRec}
+\newcommand{\ActionQuickScreenExit}{\ButtonRec}
+\newcommand{\ActionStdMenu}{\ButtonRec}
+\newcommand{\ActionStdOk}{\ButtonSelect, \ButtonRight{} or \ButtonPlay}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsStop}{Long \ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsQuickScreen}{Long \ButtonRec}
+\newcommand{\ActionWpsMenu}{\ButtonRec}
+\newcommand{\ActionWpsContext}{Long \ButtonSelect}
+\newcommand{\ActionWpsBrowse}{\ButtonSelect}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonPlay}
+\newcommand{\ActionTreeStop}{Long \ButtonPlay}
+\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonSelect}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+\newcommand{\ActionKbdSelect}{\ButtonSelect}
+\newcommand{\ActionKbdDone}{\ButtonPlay}
+\newcommand{\ActionKbdAbort}{\ButtonRec}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonSelect}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonPower}
+\newcommand{\ActionPsExit}{\ButtonPlay}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonPlay}
+\newcommand{\ActionRecNewfile}{\ButtonRec}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonUp}
+\newcommand{\ActionRecNext}{\ButtonDown}
+\newcommand{\ActionRecMenu}{Long \ButtonRec}
+\newcommand{\ActionRecExit}{Long \ButtonPlay}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonSelect}
+\newcommand{\ActionFMMenu}{Long \ButtonSelect}
+\newcommand{\ActionFMMode}{Long \ButtonPlay}
+\newcommand{\ActionFMStop}{\ButtonPower}
+\newcommand{\ActionFMExit}{\ButtonRec}
+\newcommand{\ActionFMPlay}{\ButtonPlay}
+\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
+\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/keymap-ondio.tex b/manual/platform/keymap-ondio.tex
new file mode 100644
index 0000000..d2114ec
--- /dev/null
+++ b/manual/platform/keymap-ondio.tex
@@ -0,0 +1,83 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonOff}{\btnfnt{On/Off}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonMenu}{\btnfnt{Mode}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
+\newcommand{\ActionStdContext}{Long \ButtonRight}
+\newcommand{\ActionStdMenu}{Long \ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonRight}
+\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonOff}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsStop}{Long \ButtonOff}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsContext}{Long \ButtonMenu}
+\newcommand{\ActionWpsBrowse}{\ButtonMenu}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonMenu}
+\newcommand{\ActionTreeStop}{\ButtonOff}
+\newcommand{\ActionTreeEnter}{\ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonRight}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonMenu}
+\newcommand{\ActionKbdDone}{Long \ButtonMenu}
+\newcommand{\ActionKbdAbort}{\ButtonOff}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{Long \ButtonMenu}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonMenu}
+\newcommand{\ActionPsExit}{\ButtonOff}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonMenu}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonUp}
+\newcommand{\ActionRecNext}{\ButtonDown}
+\newcommand{\ActionRecMenu}{Long \ButtonMenu}
+\newcommand{\ActionRecExit}{\ButtonOff}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMMenu}{Long \ButtonMenu}
+\newcommand{\ActionFMStop}{Long \ButtonOff}
+\newcommand{\ActionFMExit}{\ButtonOff}
+\newcommand{\ActionFMSettingsInc}{\ButtonUp}
+\newcommand{\ActionFMSettingsDec}{\ButtonDown}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/keymap-player.tex b/manual/platform/keymap-player.tex
new file mode 100644
index 0000000..efd9da4
--- /dev/null
+++ b/manual/platform/keymap-player.tex
@@ -0,0 +1,46 @@
+% $Id$
+
+\newcommand{\ButtonLeft}{\btnfnt{Minus}}
+\newcommand{\ButtonRight}{\btnfnt{Plus}}
+\newcommand{\ButtonOn}{\btnfnt{On}}
+\newcommand{\ButtonMenu}{\btnfnt{Menu}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonStop}{\btnfnt{Stop}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonLeft}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonLeft}
+\newcommand{\ActionStdNext}{\ButtonRight}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonRight}
+\newcommand{\ActionStdCancel}{\ButtonStop}
+\newcommand{\ActionStdContext}{Long \ButtonPlay}
+\newcommand{\ActionStdMenu}{\ButtonMenu}
+\newcommand{\ActionStdOk}{\ButtonPlay}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+
+\newcommand{\ActionWpsStop}{\ButtonStop}
+\newcommand{\ActionWpsVolDown}{\ButtonMenu{} + \ButtonLeft}
+\newcommand{\ActionWpsVolUp}{\ButtonMenu{} + \ButtonRight}
+
+\newcommand{\ActionWpsMenu}{\ButtonMenu}
+\newcommand{\ActionWpsContext}{Long \ButtonPlay}
+\newcommand{\ActionWpsBrowse}{\ButtonOn}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonMenu{} + \ButtonOn}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonOn}
+\newcommand{\ActionTreeEnter}{\ButtonPlay}
+\newcommand{\ActionTreeParentDirectory}{\ButtonStop}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonPlay}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonRight}
+\newcommand{\ActionSettingDec}{\ButtonLeft}
diff --git a/manual/platform/keymap-recorder.tex b/manual/platform/keymap-recorder.tex
new file mode 100644
index 0000000..0862c65
--- /dev/null
+++ b/manual/platform/keymap-recorder.tex
@@ -0,0 +1,111 @@
+% $Id$
+
+\newcommand{\ButtonOn}{\btnfnt{On}}
+\newcommand{\ButtonOff}{\btnfnt{Off}}
+\newcommand{\ButtonPlay}{\btnfnt{Play}}
+\newcommand{\ButtonUp}{\btnfnt{Up}}
+\newcommand{\ButtonDown}{\btnfnt{Down}}
+\newcommand{\ButtonLeft}{\btnfnt{Left}}
+\newcommand{\ButtonRight}{\btnfnt{Right}}
+\newcommand{\ButtonFOne}{\btnfnt{F1}}
+\newcommand{\ButtonFTwo}{\btnfnt{F2}}
+\newcommand{\ButtonFThree}{\btnfnt{F3}}
+
+%Button actions, standard context
+\newcommand{\ActionStdPrev}{\ButtonUp}
+\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
+\newcommand{\ActionStdNext}{\ButtonDown}
+\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
+\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
+\newcommand{\ActionStdContext}{Long \ButtonPlay}
+\newcommand{\ActionStdQuickScreen}{\ButtonFTwo}
+\newcommand{\ActionQuickScreenExit}{\ButtonPlay}
+\newcommand{\ActionStdMenu}{\ButtonFOne}
+\newcommand{\ActionStdOk}{\ButtonRight{} or \ButtonOn}
+\newcommand{\ActionStdUsbCharge}{\ButtonFOne}
+
+%Button actions, wps context
+\newcommand{\ActionWpsPlay}{\ButtonPlay}
+\newcommand{\ActionWpsSkipNext}{\ButtonRight}
+\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
+\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
+\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
+\newcommand{\ActionWpsStop}{\ButtonOff}
+\newcommand{\ActionWpsVolDown}{\ButtonDown}
+\newcommand{\ActionWpsVolUp}{\ButtonUp}
+\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
+\newcommand{\ActionWpsQuickScreen}{\ButtonFTwo}
+\newcommand{\ActionWpsMenu}{\ButtonFOne}
+\newcommand{\ActionWpsContext}{Long \ButtonPlay}
+\newcommand{\ActionWpsBrowse}{\ButtonOn}
+\newcommand{\ActionWpsIdThreeScreen}{\ButtonFOne{} + \ButtonOn}
+
+\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonOff}
+
+%Button actions, tree context
+\newcommand{\ActionTreeWps}{\ButtonOn}
+\newcommand{\ActionTreeStop}{\ButtonOff}
+\newcommand{\ActionTreeEnter}{\ButtonRight}
+\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
+
+%Button actions, YesNo context
+\newcommand{\ActionYesNoAccept}{\ButtonPlay}
+
+%Button actions, Setting context
+\newcommand{\ActionSettingInc}{\ButtonUp}
+\newcommand{\ActionSettingDec}{\ButtonDown}
+
+%Button actions, Alarm screen
+\newcommand{\ActionAlarmSet}{\ButtonPlay}
+\newcommand{\ActionAlarmCancel}{\ButtonOff}
+\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
+\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
+
+%Button actions, Virtual Keyboard Context
+\newcommand{\ActionKbdLeft}{\ButtonLeft}
+\newcommand{\ActionKbdRight}{\ButtonRight}
+\newcommand{\ActionKbdSelect}{\ButtonPlay}
+\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
+\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
+\newcommand{\ActionKbdPageFlip}{\ButtonFOne}
+\newcommand{\ActionKbdDone}{\ButtonFTwo}
+\newcommand{\ActionKbdAbort}{\ButtonOff}
+\newcommand{\ActionKbdBackSpace}{\ButtonFThree}
+\newcommand{\ActionKbdUp}{\ButtonUp}
+\newcommand{\ActionKbdDown}{\ButtonDown}
+
+%Button actions, Pitch Screen context
+\newcommand{\ActionPsToggleMode}{\ButtonFOne}
+\newcommand{\ActionPsIncSmall}{\ButtonUp}
+\newcommand{\ActionPsIncBig}{Long \ButtonUp}
+\newcommand{\ActionPsDecSmall}{\ButtonDown}
+\newcommand{\ActionPsDecBig}{Long \ButtonDown}
+\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
+\newcommand{\ActionPsNudgeRight}{\ButtonRight}
+\newcommand{\ActionPsReset}{\ButtonOn}
+\newcommand{\ActionPsExit}{\ButtonOff}
+
+%Button actions, Recording screen context
+\newcommand{\ActionRecPause}{\ButtonPlay}
+\newcommand{\ActionRecFTwo}{\ButtonFTwo}
+\newcommand{\ActionRecFThree}{\ButtonFThree}
+\newcommand{\ActionRecSettingsInc}{\ButtonRight}
+\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
+\newcommand{\ActionRecPrev}{\ButtonUp}
+\newcommand{\ActionRecNext}{\ButtonDown}
+\newcommand{\ActionRecMenu}{\ButtonFOne}
+\newcommand{\ActionRecExit}{\ButtonOff}
+
+%Button actions, FM radio context
+\newcommand{\ActionFMPreset}{\ButtonFTwo}
+\newcommand{\ActionFMMenu}{\ButtonFOne}
+\newcommand{\ActionFMMode}{Long \ButtonOn}
+\newcommand{\ActionFMStop}{\ButtonOff}
+\newcommand{\ActionFMExit}{\ButtonOn}
+\newcommand{\ActionFMSettingsInc}{\ButtonUp}
+\newcommand{\ActionFMSettingsDec}{\ButtonDown}
+\newcommand{\ActionFMPrev}{\ButtonLeft}
+\newcommand{\ActionFMNext}{\ButtonRight}
+
diff --git a/manual/platform/m5.tex b/manual/platform/m5.tex
index 8bed4c9..7129d36 100644
--- a/manual/platform/m5.tex
+++ b/manual/platform/m5.tex
@@ -21,81 +21,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonPower}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonRec}
-\newcommand{\ActionQuickScreenExit}{\ButtonRec}
-\newcommand{\ActionStdMenu}{\ButtonRec}
-\newcommand{\ActionStdOk}{\ButtonSelect, \ButtonRight{} or \ButtonPlay}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonRec}
-\newcommand{\ActionWpsMenu}{\ButtonRec}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonRec}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonSelect}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonPower}
-\newcommand{\ActionPsExit}{\ButtonPlay}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{Long \ButtonRec}
-\newcommand{\ActionRecExit}{Long \ButtonPlay}
+% link to external keymap file
+\input{platform/keymap-mx5.tex}
diff --git a/manual/platform/mrobe100.tex b/manual/platform/mrobe100.tex
index 825d2cb..d31d505 100644
--- a/manual/platform/mrobe100.tex
+++ b/manual/platform/mrobe100.tex
@@ -20,86 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonVolUp}{\btnfnt{Volume up}}
-\newcommand{\ButtonVolDown}{\btnfnt{Volume down}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonDisplay}{\btnfnt{Display}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonDisplay{} or \ButtonPower}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionQuickScreenExit}{\ButtonMenu}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonRight}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonDisplay{} + \ButtonRight}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonDisplay{} + \ButtonLeft}
-\newcommand{\ActionWpsStop}{\ButtonPower{} or Long \ButtonPlay}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonDisplay{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonMenu}
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-\newcommand{\ActionWpsAbReset}{\ButtonDisplay{} + \ButtonSelect}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonDisplay{} + \ButtonMenu}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonDisplay}
-\newcommand{\ActionTreeStop}{\ButtonPower{} or Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdCursorLeft}{\ButtonDisplay{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonDisplay{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonDisplay{} + \ButtonMenu}
-\newcommand{\ActionKbdDone}{\ButtonDisplay}
-\newcommand{\ActionKbdAbort}{\ButtonPower}
-\newcommand{\ActionKbdBackSpace}{\ButtonMenu}
-\newcommand{\ActionKbdMorseInput}{\ButtonDisplay{} + \ButtonPower}
-\newcommand{\ActionKbdMorseSelect}{\ButtonSelect}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonMenu}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonDisplay}
-\newcommand{\ActionPsExit}{\ButtonPlay}
+% link external keymap file
+\input{platform/keymap-mrobe100.tex}
diff --git a/manual/platform/ondiofm.tex b/manual/platform/ondiofm.tex
index 7980213..d0affaf 100644
--- a/manual/platform/ondiofm.tex
+++ b/manual/platform/ondiofm.tex
@@ -20,84 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{flash storage}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonOff}{\btnfnt{On/Off}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonMenu}{\btnfnt{Mode}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonRight}
-\newcommand{\ActionStdMenu}{Long \ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonOff}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsStop}{Long \ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsContext}{Long \ButtonMenu}
-\newcommand{\ActionWpsBrowse}{\ButtonMenu}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonMenu}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonRight}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonMenu}
-\newcommand{\ActionKbdDone}{Long \ButtonMenu}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{Long \ButtonMenu}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonOff}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonMenu}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{Long \ButtonMenu}
-\newcommand{\ActionRecExit}{\ButtonOff}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMMenu}{Long \ButtonMenu}
-\newcommand{\ActionFMStop}{Long \ButtonOff}
-\newcommand{\ActionFMExit}{\ButtonOff}
-\newcommand{\ActionFMSettingsInc}{\ButtonUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonDown}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-ondio.tex}
diff --git a/manual/platform/ondiosp.tex b/manual/platform/ondiosp.tex
index b12a1ca..17fe187 100644
--- a/manual/platform/ondiosp.tex
+++ b/manual/platform/ondiosp.tex
@@ -20,65 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{flash storage}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonOff}{\btnfnt{On/Off}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonMenu}{\btnfnt{Mode}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonRight}
-\newcommand{\ActionStdMenu}{Long \ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonRight}
-\newcommand{\ActionStdUsbCharge}{\ButtonMenu}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonOff}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsStop}{Long \ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsContext}{Long \ButtonMenu}
-\newcommand{\ActionWpsBrowse}{\ButtonMenu}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonMenu}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonRight}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonMenu}
-\newcommand{\ActionKbdDone}{Long \ButtonMenu}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{Long \ButtonMenu}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonMenu}
-\newcommand{\ActionPsExit}{\ButtonOff}
+% link external keymap file
+\input{platform/keymap-ondio.tex}
diff --git a/manual/platform/player.tex b/manual/platform/player.tex
index fcae03e..8222c44 100644
--- a/manual/platform/player.tex
+++ b/manual/platform/player.tex
@@ -21,47 +21,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Minus}}
-\newcommand{\ButtonRight}{\btnfnt{Plus}}
-\newcommand{\ButtonOn}{\btnfnt{On}}
-\newcommand{\ButtonMenu}{\btnfnt{Menu}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonStop}{\btnfnt{Stop}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonLeft}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonLeft}
-\newcommand{\ActionStdNext}{\ButtonRight}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonRight}
-\newcommand{\ActionStdCancel}{\ButtonStop}
-\newcommand{\ActionStdContext}{Long \ButtonPlay}
-\newcommand{\ActionStdMenu}{\ButtonMenu}
-\newcommand{\ActionStdOk}{\ButtonPlay}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-
-\newcommand{\ActionWpsStop}{\ButtonStop}
-\newcommand{\ActionWpsVolDown}{\ButtonMenu{} + \ButtonLeft}
-\newcommand{\ActionWpsVolUp}{\ButtonMenu{} + \ButtonRight}
-
-\newcommand{\ActionWpsMenu}{\ButtonMenu}
-\newcommand{\ActionWpsContext}{Long \ButtonPlay}
-\newcommand{\ActionWpsBrowse}{\ButtonOn}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonMenu{} + \ButtonOn}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonOn}
-\newcommand{\ActionTreeEnter}{\ButtonPlay}
-\newcommand{\ActionTreeParentDirectory}{\ButtonStop}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonRight}
-\newcommand{\ActionSettingDec}{\ButtonLeft}
+% link external keymap file
+\input{platform/keymap-player.tex}
diff --git a/manual/platform/recorder.tex b/manual/platform/recorder.tex
index 443f4d4..3d3abcf 100644
--- a/manual/platform/recorder.tex
+++ b/manual/platform/recorder.tex
@@ -21,94 +21,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonOn}{\btnfnt{On}}
-\newcommand{\ButtonOff}{\btnfnt{Off}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonFOne}{\btnfnt{F1}}
-\newcommand{\ButtonFTwo}{\btnfnt{F2}}
-\newcommand{\ButtonFThree}{\btnfnt{F3}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonPlay}
-\newcommand{\ActionStdQuickScreen}{\ButtonFTwo}
-\newcommand{\ActionQuickScreenExit}{\ButtonPlay}
-\newcommand{\ActionStdMenu}{\ButtonFOne}
-\newcommand{\ActionStdOk}{\ButtonRight{} or \ButtonOn}
-\newcommand{\ActionStdUsbCharge}{\ButtonFOne}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsStop}{\ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{\ButtonFTwo}
-\newcommand{\ActionWpsMenu}{\ButtonFOne}
-\newcommand{\ActionWpsContext}{Long \ButtonPlay}
-\newcommand{\ActionWpsBrowse}{\ButtonOn}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonFOne{} + \ButtonOn}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonOff}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonOn}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonPlay}
-\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonFOne}
-\newcommand{\ActionKbdDone}{\ButtonFTwo}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdBackSpace}{\ButtonFThree}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonFOne}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonOn}
-\newcommand{\ActionPsExit}{\ButtonOff}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecFTwo}{\ButtonFTwo}
-\newcommand{\ActionRecFThree}{\ButtonFThree}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{\ButtonFOne}
-\newcommand{\ActionRecExit}{\ButtonOff}
+% link external keymap file
+\input{platform/keymap-recorder.tex}
diff --git a/manual/platform/recorderv2fm.tex b/manual/platform/recorderv2fm.tex
index 5a90410..936e063 100644
--- a/manual/platform/recorderv2fm.tex
+++ b/manual/platform/recorderv2fm.tex
@@ -20,112 +20,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonOn}{\btnfnt{On}}
-\newcommand{\ButtonOff}{\btnfnt{Off}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonFOne}{\btnfnt{F1}}
-\newcommand{\ButtonFTwo}{\btnfnt{F2}}
-\newcommand{\ButtonFThree}{\btnfnt{F3}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonOff}
-\newcommand{\ActionStdContext}{Long \ButtonPlay}
-\newcommand{\ActionStdQuickScreen}{\ButtonFTwo}
-\newcommand{\ActionQuickScreenExit}{\ButtonPlay}
-\newcommand{\ActionStdMenu}{\ButtonFOne}
-\newcommand{\ActionStdOk}{\ButtonRight{} or \ButtonOn}
-\newcommand{\ActionStdUsbCharge}{\ButtonFOne}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsStop}{\ButtonOff}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsPitchScreen}{\ButtonOn{} + \ButtonUp/\ButtonDown}
-\newcommand{\ActionWpsQuickScreen}{\ButtonFTwo}
-\newcommand{\ActionWpsMenu}{\ButtonFOne}
-\newcommand{\ActionWpsContext}{Long \ButtonPlay}
-\newcommand{\ActionWpsBrowse}{\ButtonOn}
-\newcommand{\ActionWpsIdThreeScreen}{\ButtonFOne{} + \ButtonOn}
-
-\newcommand{\ActionWpsAbSetBNextDir}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionWpsAbSetAPrevDir}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionWpsAbReset}{\ButtonOn{} + \ButtonOff}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonOn}
-\newcommand{\ActionTreeStop}{\ButtonOff}
-\newcommand{\ActionTreeEnter}{\ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonPlay}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Alarm screen
-\newcommand{\ActionAlarmSet}{\ButtonPlay}
-\newcommand{\ActionAlarmCancel}{\ButtonOff}
-\newcommand{\ActionAlarmHoursInc}{\ButtonRight}
-\newcommand{\ActionAlarmHoursDec}{\ButtonLeft}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdSelect}{\ButtonPlay}
-\newcommand{\ActionKbdCursorLeft}{\ButtonOn{} + \ButtonLeft}
-\newcommand{\ActionKbdCursorRight}{\ButtonOn{} + \ButtonRight}
-\newcommand{\ActionKbdPageFlip}{\ButtonFOne}
-\newcommand{\ActionKbdDone}{\ButtonFTwo}
-\newcommand{\ActionKbdAbort}{\ButtonOff}
-\newcommand{\ActionKbdBackSpace}{\ButtonFThree}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonFOne}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonOn}
-\newcommand{\ActionPsExit}{\ButtonOff}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecFTwo}{\ButtonFTwo}
-\newcommand{\ActionRecFThree}{\ButtonFThree}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{\ButtonFOne}
-\newcommand{\ActionRecExit}{\ButtonOff}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonFTwo}
-\newcommand{\ActionFMMenu}{\ButtonFOne}
-\newcommand{\ActionFMMode}{Long \ButtonOn}
-\newcommand{\ActionFMStop}{\ButtonOff}
-\newcommand{\ActionFMExit}{\ButtonOn}
-\newcommand{\ActionFMSettingsInc}{\ButtonUp}
-\newcommand{\ActionFMSettingsDec}{\ButtonDown}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-recorder.tex}
diff --git a/manual/platform/x5.tex b/manual/platform/x5.tex
index 6a13b52..cf93d67 100644
--- a/manual/platform/x5.tex
+++ b/manual/platform/x5.tex
@@ -21,94 +21,5 @@
\newcommand{\screenshotsize}{4cm}
\newcommand{\disk}{hard disk}
-\newcommand{\ButtonLeft}{\btnfnt{Left}}
-\newcommand{\ButtonRight}{\btnfnt{Right}}
-\newcommand{\ButtonUp}{\btnfnt{Up}}
-\newcommand{\ButtonDown}{\btnfnt{Down}}
-\newcommand{\ButtonSelect}{\btnfnt{Select}}
-\newcommand{\ButtonPower}{\btnfnt{Power}}
-\newcommand{\ButtonRec}{\btnfnt{Rec}}
-\newcommand{\ButtonPlay}{\btnfnt{Play}}
-\newcommand{\ButtonHold}{\btnfnt{Hold}}
-
-%Button actions, standard context
-\newcommand{\ActionStdPrev}{\ButtonUp}
-\newcommand{\ActionStdPrevRepeat}{Long \ButtonUp}
-\newcommand{\ActionStdNext}{\ButtonDown}
-\newcommand{\ActionStdNextRepeat}{Long \ButtonDown}
-\newcommand{\ActionStdCancel}{\ButtonLeft{} or \ButtonPower}
-\newcommand{\ActionStdContext}{Long \ButtonSelect}
-\newcommand{\ActionStdQuickScreen}{Long \ButtonRec}
-\newcommand{\ActionQuickScreenExit}{\ButtonRec}
-\newcommand{\ActionStdMenu}{\ButtonRec}
-\newcommand{\ActionStdOk}{\ButtonSelect, \ButtonRight{} or \ButtonPlay}
-
-%Button actions, wps context
-\newcommand{\ActionWpsPlay}{\ButtonPlay}
-\newcommand{\ActionWpsStop}{Long \ButtonPlay}
-\newcommand{\ActionWpsSkipNext}{\ButtonRight}
-\newcommand{\ActionWpsSkipPrev}{\ButtonLeft}
-\newcommand{\ActionWpsSeekBack}{Long \ButtonLeft}
-\newcommand{\ActionWpsSeekFwd}{Long \ButtonRight}
-\newcommand{\ActionWpsVolDown}{\ButtonDown}
-\newcommand{\ActionWpsVolUp}{\ButtonUp}
-\newcommand{\ActionWpsQuickScreen}{Long \ButtonRec}
-\newcommand{\ActionWpsMenu}{\ButtonRec}
-\newcommand{\ActionWpsContext}{Long \ButtonSelect}
-\newcommand{\ActionWpsBrowse}{\ButtonSelect}
-
-%Button actions, tree context
-\newcommand{\ActionTreeWps}{\ButtonPlay}
-\newcommand{\ActionTreeStop}{Long \ButtonPlay}
-\newcommand{\ActionTreeEnter}{\ButtonSelect{} or \ButtonRight}
-\newcommand{\ActionTreeParentDirectory}{\ButtonLeft}
-
-%Button actions, YesNo context
-\newcommand{\ActionYesNoAccept}{\ButtonSelect}
-
-%Button actions, Setting context
-\newcommand{\ActionSettingInc}{\ButtonUp}
-\newcommand{\ActionSettingDec}{\ButtonDown}
-
-%Button actions, Virtual Keyboard Context
-\newcommand{\ActionKbdLeft}{\ButtonLeft}
-\newcommand{\ActionKbdRight}{\ButtonRight}
-\newcommand{\ActionKbdUp}{\ButtonUp}
-\newcommand{\ActionKbdDown}{\ButtonDown}
-\newcommand{\ActionKbdSelect}{\ButtonSelect}
-\newcommand{\ActionKbdDone}{\ButtonPlay}
-\newcommand{\ActionKbdAbort}{\ButtonRec}
-
-%Button actions, Pitch Screen context
-\newcommand{\ActionPsToggleMode}{\ButtonSelect}
-\newcommand{\ActionPsIncSmall}{\ButtonUp}
-\newcommand{\ActionPsIncBig}{Long \ButtonUp}
-\newcommand{\ActionPsDecSmall}{\ButtonDown}
-\newcommand{\ActionPsDecBig}{Long \ButtonDown}
-\newcommand{\ActionPsNudgeLeft}{\ButtonLeft}
-\newcommand{\ActionPsNudgeRight}{\ButtonRight}
-\newcommand{\ActionPsReset}{\ButtonPower}
-\newcommand{\ActionPsExit}{\ButtonPlay}
-
-%Button actions, Recording screen context
-\newcommand{\ActionRecPause}{\ButtonPlay}
-\newcommand{\ActionRecNewfile}{\ButtonRec}
-\newcommand{\ActionRecSettingsInc}{\ButtonRight}
-\newcommand{\ActionRecSettingsDec}{\ButtonLeft}
-\newcommand{\ActionRecPrev}{\ButtonUp}
-\newcommand{\ActionRecNext}{\ButtonDown}
-\newcommand{\ActionRecMenu}{Long \ButtonRec}
-\newcommand{\ActionRecExit}{Long \ButtonPlay}
-
-%Button actions, FM radio context
-\newcommand{\ActionFMPreset}{\ButtonSelect}
-\newcommand{\ActionFMMenu}{Long \ButtonSelect}
-\newcommand{\ActionFMMode}{Long \ButtonPlay}
-\newcommand{\ActionFMStop}{\ButtonPower}
-\newcommand{\ActionFMExit}{\ButtonRec}
-\newcommand{\ActionFMPlay}{\ButtonPlay}
-\newcommand{\ActionFMSettingsInc}{\ActionSettingInc}
-\newcommand{\ActionFMSettingsDec}{\ActionSettingDec}
-\newcommand{\ActionFMPrev}{\ButtonLeft}
-\newcommand{\ActionFMNext}{\ButtonRight}
-
+% link external keymap file
+\input{platform/keymap-mx5.tex}