home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / useful / dev / c / rkrm / keymap / d.asm < prev    next >
Assembly Source File  |  1992-09-03  |  25KB  |  659 lines

  1. *
  2. * Copyright (c) 1992 Commodore-Amiga, Inc.
  3. * This example is provided in electronic form by Commodore-Amiga, Inc. for 
  4. * use with the "Amiga ROM Kernel Reference Manual: Devices", 3rd Edition, 
  5. * published by Addison-Wesley (ISBN 0-201-56775-X).
  6. * The "Amiga ROM Kernel Reference Manual: Devices" contains additional 
  7. * information on the correct usage of the techniques and operating system 
  8. * functions presented in these examples.  The source and executable code 
  9. * of these examples may only be distributed in free electronic form, via 
  10. * bulletin board or as part of a fully non-commercial and freely 
  11. * redistributable diskette.  Both the source and executable code (including 
  12. * comments) must be included, without modification, in any copy.  This 
  13. * example may not be published in printed form or distributed with any
  14. * commercial product.  However, the programming techniques and support
  15. * routines set forth in these examples may be used in the development
  16. * of original executable software products for Commodore Amiga computers.
  17. * All other rights reserved.
  18. * This example is provided "as-is" and is subject to change; no
  19. * warranties are made.  All use is at your own risk. No liability or
  20. * responsibility is assumed.
  21. *
  22. **********************************************************************
  23. *
  24. *   d.asm - d (GERMAN) A2000 key map
  25. *
  26. **********************************************************************
  27.  
  28.  
  29. **   Assemble and then link without startup code or linker libs
  30.  
  31. *------ Included Files -----------------------------------------------
  32.         INCLUDE         "exec/types.i"
  33.         INCLUDE         "devices/keymap.i"
  34. *---------------------------------------------------------------------
  35.         DC.L    0,0             ; ln_Succ, ln_Pred
  36.         DC.B    0,0             ; ln_Type, ln_Pri
  37.         DC.L    KMName          ; ln_Name
  38.         DC.L    KMLowMapType
  39.         DC.L    KMLowMap
  40.         DC.L    KMLCapsable
  41.         DC.L    KMLRepeatable
  42.         DC.L    KMHighMapType
  43.         DC.L    KMHighMap
  44.         DC.L    KMHCapsable
  45.         DC.L    KMHRepeatable
  46. *------ Key Translation Table ----------------------------------------
  47. *  Raw key codes
  48. *
  49. *  45   50  51  52  53  54   55  56  57  58  59
  50. *  00   01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 41  46  5F    5A  5B  5C  5D
  51. *  42    10 11 12 13 14 15 16 17 18 19 1A 1B   44            3D  3E  3F  4A
  52. *  63 62  20 21 22 23 24 25 26 27 28 29 2A 2B        4C      2D  2E  2F  5E
  53. *  60 30   31 32 33 34 35 36 37 38 39 3A     61   4F 4D 4E   1D  1E  1F  43
  54. *     64  66                40             67 65             0F      3C
  55. *
  56. *---------------------------------------------------------------------
  57. *  German (D) mapping
  58. *
  59. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  60. *  `~   1! 2" 3S 4$ 5% 6& 7/ 8( 9) 0= B? '` \| BS  DEL HELP  [{  ]}  /   *
  61. *  TAB   qQ wW eE rR tT zZ uU iI oO pP uU +*  RET            7   8   9   -
  62. *  CT CL  aA sS dD fF gG hH jJ kK lL oO aA #^        UC      4   5   6   +
  63. *  SH <>   yY xX cC vV bB nN mM ,; .: -_     SH   LC DC RC   1   2   3   ENT
  64. *     ALT AM              SPACE            AM ALT            0       .
  65. *
  66. *---------------------------------------------------------------------
  67. *   For comparison, here's the USA1 mapping
  68. *
  69. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  70. *  `~   1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ \| BS  DEL HELP  ((  ))  //  **
  71. *  TAB   qQ wW eE rR tT yY uU iI oO pP [{ ]}  RET            77  88  99  --
  72. *  CT CL  aA sS dD fF gG hH jJ kK lL ;: '" [2B]      UC      44  55  66  ++
  73. *  SH [30] zZ xX cC vV bB nN mM ,< .> /?     SH   LC DC RC   11  22  33 ENT
  74. *     ALT AM              SPACE            AM ALT            00      ..
  75. *
  76. *--------------------------------------------------------------------------
  77. *
  78. *       40      Space
  79. *       41      Backspace
  80. *       42      Tab
  81. *       43      Enter
  82. *       44      Return
  83. *       45      Escape
  84. *       46      Delete
  85. *       4A      Numeric Pad -
  86. *       4C      Cursor Up
  87. *       4D      Cursor Down
  88. *       4E      Cursor Forward
  89. *       4F      Cursor Backward
  90. *
  91. *       50-59   Function keys F1-F10
  92. *       5A      Numeric Pad [{  (A2000)
  93. *       5B      Numeric Pad ]}  (A2000)
  94. *       5C      Numeric Pad /   (A2000)
  95. *       5D      Numeric Pad *   (A2000)
  96. *       5E      Numeric Pad +   (A2000)
  97. *       5F      Help
  98. *
  99. *       60      Left Shift
  100. *       61      Right Shift
  101. *       62      Caps Lock
  102. *       63      Control
  103. *       64      Left Alt
  104. *       65      Right Alt
  105. *       66      Left Amiga
  106. *       67      Right Amiga
  107. *
  108. *       68      Left Mouse Button (not converted)
  109. *       69      Right Mouse Button (not converted)
  110. *       6A      Middle Mouse Button (not converted)
  111. *
  112. *---------------------------------------------------------------------
  113. KMLCapsable: ; NL means NULL (undefined) and RE means RESERVED
  114.         DC.B    %00000000       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  115.         DC.B    %00000000       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  116.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  117.         DC.B    %00000111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  118.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  119.         DC.B    %00000111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  120.         DC.B    %11111110       ; mM nN bB vV cC xX yY <>  37 - 30
  121.         DC.B    %00000000       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  122.  
  123. KMHCapsable:
  124.         DC.B    %00000000       ; 47 - 40
  125.         DC.B    %00000000       ; 4F - 48
  126.         DC.B    %00000000       ; 57 - 50
  127.         DC.B    %00000000       ; 5F - 58
  128.         DC.B    %00000000       ; 67 - 60
  129.         DC.B    %00000000       ; 6F - 68
  130.         DC.B    %00000000       ; 77 - 70
  131. KMLRepeatable:
  132.         DC.B    %11111111       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  133.         DC.B    %10111111       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  134.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  135.         DC.B    %11101111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  136.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  137.         DC.B    %11101111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  138.         DC.B    %11111111       ; mM nN bB vV cC xX yY <>  37 - 30
  139.         DC.B    %11110111       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  140. KMHRepeatable:
  141.         DC.B    %01000111       ; 47 - 40
  142.         DC.B    %11110100       ; 4F - 48
  143.         DC.B    %11111111       ; 57 - 50
  144.         DC.B    %01111111       ; 5F - 58
  145.         DC.B    %00000000       ; 67 - 60
  146.         DC.B    %00000000       ; 6F - 68
  147.         DC.B    %00000000       ; 77 - 70
  148. KMLowMapType:
  149.         DC.B    KC_VANILLA              ; []            $00
  150.         DC.B    KCF_SHIFT+KCF_ALT       ; 1!
  151.         DC.B    KCF_SHIFT+KCF_ALT       ; 2"
  152.         DC.B    KCF_SHIFT+KCF_ALT       ; 3s
  153.         DC.B    KCF_SHIFT+KCF_ALT       ; 4$
  154.         DC.B    KCF_SHIFT+KCF_ALT       ; 5%
  155.         DC.B    KC_VANILLA              ; 6&
  156.         DC.B    KCF_SHIFT+KCF_ALT       ; 7/
  157.         DC.B    KCF_SHIFT+KCF_ALT       ; 8(            $08
  158.         DC.B    KCF_SHIFT+KCF_ALT       ; 9)
  159.         DC.B    KCF_SHIFT+KCF_ALT       ; 0=
  160.         DC.B    KC_VANILLA              ; B?
  161.         DC.B    KCF_DEAD+KCF_SHIFT+KCF_ALT ; '`
  162.         DC.B    KC_VANILLA              ; \|
  163.         DC.B    KCF_NOP                 ;NL
  164.         DC.B    KC_NOQUAL               ; 0N
  165.         DC.B    KC_VANILLA              ; qQ            $10
  166.         DC.B    KC_VANILLA              ; wW
  167.         DC.B    KCF_DEAD+KC_VANILLA     ; eE
  168.         DC.B    KC_VANILLA              ; rR
  169.         DC.B    KC_VANILLA              ; tT
  170.         DC.B    KC_VANILLA              ; zZ
  171.         DC.B    KCF_DEAD+KC_VANILLA     ; uU
  172.         DC.B    KCF_DEAD+KC_VANILLA     ; iI
  173.         DC.B    KCF_DEAD+KC_VANILLA     ; oO            $18
  174.         DC.B    KC_VANILLA              ; pP
  175.         DC.B    KC_VANILLA              ; omlatuU
  176.         DC.B    KC_VANILLA              ; +*
  177.         DC.B    KCF_NOP                 ; NL
  178.         DC.B    KC_NOQUAL               ; 1N
  179.         DC.B    KC_NOQUAL               ; 2N
  180.         DC.B    KC_NOQUAL               ; 3N
  181.         DC.B    KCF_DEAD+KC_VANILLA     ; aA            $20
  182.         DC.B    KC_VANILLA              ; sS
  183.         DC.B    KC_VANILLA              ; d