assumption
  function digit/1
    \add(\1 "0")
  end function
  function comma/0
    ","
  end function
  function altcomma/0
    "."
  end function
end assumption

<num keypad home> : "\digit(7)"
<num keypad up> : "\digit(8)"
<num keypad pgup> : "\digit(9)"
<num keypad left> : "\digit(4)"
<num keypad begin> : "\digit(5)"
<num keypad right> : "\digit(6)"
<num keypad end> : "\digit(1)"
<num keypad down> : "\digit(2)"
<num keypad pgdown> : "\digit(3)"
<num keypad ins> : "\digit(0)"
<num keypad del> : "\comma()"

<num shift keypad home> : <keypad home>
<num shift keypad up> : <keypad up>
<num shift keypad pgup> : <keypad pgup>
<num shift keypad left> : <keypad left>
<num shift keypad begin> : <keypad begin>
<num shift keypad right> : <keypad right>
<num shift keypad end> : <keypad end>
<num shift keypad down> : <keypad down>
<num shift keypad pgdown> : <keypad pgdown>
<num shift keypad ins> : <keypad ins>
<num shift keypad del> : <keypad del>

<shift keypad home> : "\digit(7)"
<shift keypad up> : "\digit(8)"
<shift keypad pgup> : "\digit(9)"
<shift keypad left> : "\digit(4)"
<shift keypad begin> : "\digit(5)"
<shift keypad right> : "\digit(6)"
<shift keypad end> : "\digit(1)"
<shift keypad down> : "\digit(2)"
<shift keypad pgdown> : "\digit(3)"
<shift keypad ins> : "\digit(0)"
<shift keypad del> : "\comma()"

<altgr keypad home> : "↖"
<altgr keypad up> : "↑"
<altgr keypad pgup> : "↗"
<altgr keypad left> : "←"
<altgr keypad begin> : "↔"
<altgr keypad right> : "→"
<altgr keypad end> : "↙"
<altgr keypad down> : "↓"
<altgr keypad pgdown> : "↘"
<altgr keypad ins> : "↕"
<altgr keypad del> : "\altcomma()"

<altgr shift keypad home> : "⇖"
<altgr shift keypad up> : "⇑"
<altgr shift keypad pgup> : "⇗"
<altgr shift keypad left> : "⇐"
<altgr shift keypad begin> : "⇔"
<altgr shift keypad right> : "⇒"
<altgr shift keypad end> : "⇙"
<altgr shift keypad down> : "⇓"
<altgr shift keypad pgdown> : "⇘"
<altgr shift keypad ins> : "⇕"
<altgr shift keypad del> : " "

macro mod_keycode/5
  <keycode \1> : "\2"
  <shift keycode \1> : "\3"
  <altgr keycode \1> : "\4"
  <altgr shift keycode \1> : "\5"
end macro

mod_keycode(98 "∕" "⋅" "−" "+")
mod_keycode(55 "∕" "⋅" "−" "+")
mod_keycode(74 "/" "*" "-" "+")
mod_keycode(78 "÷" "×" "−" "+")