
  CONST

    {  Keypoint Classes :
    {
    {       The 16 keypoint classes supported by the hardware are partitioned
    {  between the System, Product Set and User as follows.

    osk$system_class = 0      {  0 ..  5 },
    osk$product_set_class = 6 {  6 .. 10 },
    osk$user_class = 11       { 11 .. 14 },
    osk$pmf_control = 15;


    {  Keypoint Multiplier:
    {
    {       By convention, the 32 bit keypoint code supported by the hardware
    {  is split into two fields.  The right field contains a keypoint
    {  identifier which is used to identify a function within a keypoint class.
    {  For example, if a particular keypoint class represents exit from a
    {  procedure, then the keypoint identifier might identify exit from
    {  procedure A versus exit from procedure B.
    {       The left field is used as a data parameter appropriate to the
    {  function identified by the keypoint identifier.  In the procedure exit
    {  example above, the data parameter field might be used to indicate the
    {  status of the procedure call.
    {       The keypoint multiplier is used to partition the keypoint code
    {  into the two fields.  The data parameter should be multiplied by the
    {  keypoint multiplier to prevent it from overlapping the keypoint
    {  identifier field.

  CONST
    osk$monitor_multiplier = 8192,
    osk$m = 4096;
