home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / editors / demacs-5.arj / J3100.EL < prev    next >
Text File  |  1991-12-12  |  12KB  |  280 lines

  1. ;; j3100.el: Toshiba J-3100 cursor key and function key mapping
  2. ;;
  3. ;; Edition History:
  4. ;; 1.1 91/11/21 Manabu Higashida Creation.
  5. ;;     91/11/22 HIRANO Satoshi Modified.
  6. ;; 1.2 91/12/12 Toshihiko SHIMOKAWA
  7. ;;
  8.  
  9. ;; Copyright (C) 1991 Free Software Foundation, Inc.
  10.  
  11. ;; This file is part of GNU Emacs.
  12.  
  13. ;; GNU Emacs is distributed in the hope that it will be useful,
  14. ;; but WITHOUT ANY WARRANTY.  No author or distributor
  15. ;; accepts responsibility to anyone for the consequences of using it
  16. ;; or for whether it serves any particular purpose or works at all,
  17. ;; unless he says so in writing.  Refer to the GNU Emacs General Public
  18. ;; License for full details.
  19.  
  20. ;; Everyone is granted permission to copy, modify and redistribute
  21. ;; GNU Emacs, but only under the conditions described in the
  22. ;; GNU Emacs General Public License.   A copy of this license is
  23. ;; supposed to have been given to you along with GNU Emacs so you
  24. ;; can know your rights and responsibilities.  It should be in a
  25. ;; file named COPYING.  Among other things, the copyright notice
  26. ;; and this notice must be preserved on all copies.
  27.  
  28. (defun j3100-assign-special-key ()
  29. ; (send-string-to-terminal "\e[0;3;0p")        ; Null -> NULL
  30. ; (send-string-to-terminal "\e[0;15;0;15p")    ; Shift-Tab
  31.  
  32.   (send-string-to-terminal "\e[0;59;\"\eO;\"p")    ; F1  -> \eO;
  33.   (send-string-to-terminal "\e[0;60;\"\eO<\"p")    ; F2  -> \eO<
  34.   (send-string-to-terminal "\e[0;61;\"\eO=\"p")    ; F3  -> \eO=
  35.   (send-string-to-terminal "\e[0;62;\"\eO>\"p")    ; F4  -> \eO>
  36.   (send-string-to-terminal "\e[0;63;\"\eO?\"p")    ; F5  -> \eO?
  37.   (send-string-to-terminal "\e[0;64;\"\eO@\"p")    ; F6  -> \eO@
  38.   (send-string-to-terminal "\e[0;65;\"\eOA\"p")    ; F7  -> \eOA
  39.   (send-string-to-terminal "\e[0;66;\"\eOB\"p")    ; F8  -> \eOB
  40.   (send-string-to-terminal "\e[0;67;\"\eOC\"p")    ; F9  -> \eOC
  41.   (send-string-to-terminal "\e[0;68;\"\eOD\"p")    ; F10 -> \eOD
  42.  
  43.   (send-string-to-terminal "\e[0;71;\"\e<\"p")    ; Home       -> M-<
  44.   (send-string-to-terminal "\e[0;72;\"\"p")    ; UpArrow    -> C-p
  45.   (send-string-to-terminal "\e[0;73;\"\ev\"p")    ; PgUp       -> M-v
  46.   (send-string-to-terminal "\e[0;75;\"\"p")    ; LeftArrow  -> C-b
  47.   (send-string-to-terminal "\e[0;77;\"\"p")    ; RightArrow -> C-f
  48.   (send-string-to-terminal "\e[0;79;\"\e>\"p")    ; End        -> M->
  49.   (send-string-to-terminal "\e[0;80;\"\"p")    ; DownArrow  -> C-n
  50.   (send-string-to-terminal "\e[0;81;\"\"p")    ; PgDn       -> C-v
  51.   (send-string-to-terminal "\e[0;82;\"\eOR\"p")    ; Ins
  52.   (send-string-to-terminal "\e[0;83;\"\"p")    ; Del        -> DEL
  53.  
  54.   (send-string-to-terminal "\e[0;84;\"\eOT\"p")    ; Shift-F1  -> \eOT
  55.   (send-string-to-terminal "\e[0;85;\"\eOU\"p")    ; Shift-F2  -> \eOU
  56.   (send-string-to-terminal "\e[0;86;\"\eOV\"p")    ; Shift-F3  -> \eOV
  57.   (send-string-to-terminal "\e[0;87;\"\eOW\"p")    ; Shift-F4  -> \eOW
  58.   (send-string-to-terminal "\e[0;88;\"\eOX\"p")    ; Shift-F5  -> \eOX
  59.   (send-string-to-terminal "\e[0;89;\"\eOY\"p")    ; Shift-F6  -> \eOY
  60.   (send-string-to-terminal "\e[0;90;\"\eOZ\"p")    ; Shift-F7  -> \eOZ
  61.   (send-string-to-terminal "\e[0;91;\"\eO[\"p")    ; Shift-F8  -> \eO[
  62.   (send-string-to-terminal "\e[0;92;\"\eO\\\"p"); Shift-F9  -> \eO\
  63.   (send-string-to-terminal "\e[0;93;\"\eO]\"p")    ; Shift-F10 -> \eO]
  64.  
  65.   (send-string-to-terminal "\e[0;94;\"\eO^\"p")    ; Ctrl-F1  -> \eO^
  66.   (send-string-to-terminal "\e[0;95;\"\eO_\"p")    ; Ctrl-F2  -> \eO_
  67.   (send-string-to-terminal "\e[0;96;\"\eO`\"p")    ; Ctrl-F3  -> \eO`
  68.   (send-string-to-terminal "\e[0;97;\"\eOa\"p")    ; Ctrl-F4  -> \eOa
  69.   (send-string-to-terminal "\e[0;98;\"\eOb\"p")    ; Ctrl-F5  -> \eOb
  70.   (send-string-to-terminal "\e[0;99;\"\eOc\"p")    ; Ctrl-F6  -> \eOc
  71.   (send-string-to-terminal "\e[0;100;\"\eOd\"p"); Ctrl-F7  -> \eOd
  72.   (send-string-to-terminal "\e[0;101;\"\eOe\"p"); Ctrl-F8  -> \eOe
  73.   (send-string-to-terminal "\e[0;102;\"\eOf\"p"); Ctrl-F9  -> \eOf
  74.   (send-string-to-terminal "\e[0;103;\"\eOg\"p"); Ctrl-F10 -> \eOg
  75.   
  76. ; (send-string-to-terminal "\e[0;104;0;104p")    ; Alt-F1  -> 
  77. ; (send-string-to-terminal "\e[0;105;0;105p")    ; Alt-F2  -> 
  78. ; (send-string-to-terminal "\e[0;106;0;106p")    ; Alt-F3  -> 
  79. ; (send-string-to-terminal "\e[0;107;0;107p")    ; Alt-F4  -> 
  80. ; (send-string-to-terminal "\e[0;108;0;108p")    ; Alt-F5  -> 
  81. ; (send-string-to-terminal "\e[0;109;0;109p")    ; Alt-F6  -> 
  82. ; (send-string-to-terminal "\e[0;110;0;110p")    ; Alt-F7  -> 
  83. ; (send-string-to-terminal "\e[0;111;0;111p")    ; Alt-F8  -> 
  84. ; (send-string-to-terminal "\e[0;112;0;112p")    ; Alt-F9  -> 
  85. ; (send-string-to-terminal "\e[0;113;0;113p")    ; Alt-F10 -> 
  86.  
  87. ; (send-string-to-terminal "\e[0;114;0;114p")    ; Ctrl-PrtSc      ->
  88. ; (send-string-to-terminal "\e[0;115;0;115p")    ; Ctrl-LeftArrow  ->
  89. ; (send-string-to-terminal "\e[0;116;0;116p")    ; Ctrl-RightArrow ->
  90. ; (send-string-to-terminal "\e[0;117;0;117p")    ; Ctrl-End        ->
  91. ; (send-string-to-terminal "\e[0;118;0;118p")    ; Ctrl-PgDn       ->
  92. ; (send-string-to-terminal "\e[0;119;0;119p")    ; Ctrl-Home       ->
  93. ; (send-string-to-terminal "\e[0;132;0;132p")    ; Ctrl-PgUp       ->
  94.   )
  95.  
  96. (defun j3100-cancel-special-key ()
  97. ; (send-string-to-terminal "\e[0;3;0;3p")    ; Null
  98. ; (send-string-to-terminal "\e[0;15;0;15p")    ; Shift-Tab
  99.  
  100.   (send-string-to-terminal "\e[0;59;0;59p")    ; F1
  101.   (send-string-to-terminal "\e[0;60;0;60p")    ; F2
  102.   (send-string-to-terminal "\e[0;61;0;61p")    ; F3
  103.   (send-string-to-terminal "\e[0;62;0;62p")    ; F4
  104.   (send-string-to-terminal "\e[0;63;0;63p")    ; F5
  105.   (send-string-to-terminal "\e[0;64;0;64p")    ; F6
  106.   (send-string-to-terminal "\e[0;65;0;65p")    ; F7
  107.   (send-string-to-terminal "\e[0;66;0;66p")    ; F8
  108.   (send-string-to-terminal "\e[0;67;0;67p")    ; F9
  109.   (send-string-to-terminal "\e[0;68;0;68p")    ; F10
  110.  
  111.   (send-string-to-terminal "\e[0;71;0;71p")    ; Home
  112.   (send-string-to-terminal "\e[0;72;0;72p")    ; UpArrow
  113.   (send-string-to-terminal "\e[0;73;0;73p")    ; PgUp
  114.   (send-string-to-terminal "\e[0;75;0;75p")    ; LeftArrow
  115.   (send-string-to-terminal "\e[0;77;0;77p")    ; RightArrow
  116.   (send-string-to-terminal "\e[0;79;0;79p")    ; End
  117.   (send-string-to-terminal "\e[0;80;0;80p")    ; DownArrow
  118.   (send-string-to-terminal "\e[0;81;0;81p")    ; PgDn
  119.   (send-string-to-terminal "\e[0;82;0;82p")    ; Ins
  120.   (send-string-to-terminal "\e[0;83;0;83p")    ; Del
  121.  
  122.   (send-string-to-terminal "\e[0;84;0;84p")    ; Shift-F1
  123.   (send-string-to-terminal "\e[0;85;0;85p")    ; Shift-F2
  124.   (send-string-to-terminal "\e[0;86;0;86p")    ; Shift-F3
  125.   (send-string-to-terminal "\e[0;87;0;87p")    ; Shift-F4
  126.   (send-string-to-terminal "\e[0;88;0;88p")    ; Shift-F5
  127.   (send-string-to-terminal "\e[0;89;0;89p")    ; Shift-F6
  128.   (send-string-to-terminal "\e[0;90;0;90p")    ; Shift-F7
  129.   (send-string-to-terminal "\e[0;91;0;91p")    ; Shift-F8
  130.   (send-string-to-terminal "\e[0;92;0;92p")    ; Shift-F9
  131.   (send-string-to-terminal "\e[0;93;0;93p")    ; Shift-F10
  132.                             
  133.   (send-string-to-terminal "\e[0;94;0;94p")    ; Ctrl-F1
  134.   (send-string-to-terminal "\e[0;95;0;95p")    ; Ctrl-F2
  135.   (send-string-to-terminal "\e[0;96;0;96p")    ; Ctrl-F3
  136.   (send-string-to-terminal "\e[0;97;0;97p")    ; Ctrl-F4
  137.   (send-string-to-terminal "\e[0;98;0;98p")    ; Ctrl-F5
  138.   (send-string-to-terminal "\e[0;99;0;99p")    ; Ctrl-F6
  139.   (send-string-to-terminal "\e[0;100;0;100p")    ; Ctrl-F7
  140.   (send-string-to-terminal "\e[0;101;0;101p")    ; Ctrl-F8
  141.   (send-string-to-terminal "\e[0;102;0;102p")    ; Ctrl-F9
  142.   (send-string-to-terminal "\e[0;103;0;103p")    ; Ctrl-F10
  143.   
  144. ; (send-string-to-terminal "\e[0;104;0;104p")    ; Alt-F1
  145. ; (send-string-to-terminal "\e[0;105;0;105p")    ; Alt-F2
  146. ; (send-string-to-terminal "\e[0;106;0;106p")    ; Alt-F3
  147. ; (send-string-to-terminal "\e[0;107;0;107p")    ; Alt-F4
  148. ; (send-string-to-terminal "\e[0;108;0;108p")    ; Alt-F5
  149. ; (send-string-to-terminal "\e[0;109;0;109p")    ; Alt-F6
  150. ; (send-string-to-terminal "\e[0;110;0;110p")    ; Alt-F7
  151. ; (send-string-to-terminal "\e[0;111;0;111p")    ; Alt-F8
  152. ; (send-string-to-terminal "\e[0;112;0;112p")    ; Alt-F9
  153. ; (send-string-to-terminal "\e[0;113;0;113p")    ; Alt-F10
  154.  
  155. ; (send-string-to-terminal "\e[0;114;0;114p")    ; Ctrl-PrtSc
  156. ; (send-string-to-terminal "\e[0;115;0;115p")    ; Ctrl-LeftArrow
  157. ; (send-string-to-terminal "\e[0;116;0;116p")    ; Ctrl-RightArrow
  158. ; (send-string-to-terminal "\e[0;117;0;117p")    ; Ctrl-End
  159. ; (send-string-to-terminal "\e[0;118;0;118p")    ; Ctrl-PgDn
  160. ; (send-string-to-terminal "\e[0;119;0;119p")    ; Ctrl-Home
  161. ; (send-string-to-terminal "\e[0;132;0;132p")    ; Ctrl-PgUp
  162.   )
  163.  
  164.  
  165. (defvar j3100-map (make-keymap)
  166.   "The j3100-map maps the function keys on the TOSHIBA J-3100 keyboard.")
  167.  
  168. ;; function keys
  169.  
  170. (define-key j3100-map ";" 'help-for-help)        ; f.1
  171. (define-key j3100-map "T" 'describe-mode)        ; s-f.1
  172. (define-key j3100-map "^" 'describe-key)        ; c-f.1
  173.  
  174. (define-key j3100-map "<" 'other-window)        ; f.2
  175. (define-key j3100-map "U" 'switch-to-buffer)        ; s-f.2
  176. (define-key j3100-map "_" 'list-buffers)        ; c-f.2
  177.  
  178. (define-key j3100-map "=" 'delete-other-windows)    ; f.3
  179. (define-key j3100-map "V" 'delete-window)        ; s-f.3
  180. (define-key j3100-map "`" 'scroll-other-window)        ; c-f.3
  181.  
  182. (define-key j3100-map ">" 'split-window-vertically)    ; f.4
  183. (define-key j3100-map "W" 'enlarge-window)        ; s-f.4
  184. (define-key j3100-map "a" 'shrink-window)        ; c-f.4
  185.  
  186. (define-key j3100-map "?" 'split-window-horizontally)    ; f.5
  187. (define-key j3100-map "X" 'enlarge-window-horizontally)    ; s-f.5
  188. (define-key j3100-map "b" 'shrink-window-horizontally)    ; c-f.5
  189.  
  190. (define-key j3100-map "@" 'copy-region-as-kill)        ; f.6
  191. (define-key j3100-map "Y" 'kill-region)            ; s-f.6
  192. (define-key j3100-map "c" 'yank)            ; lc-f.6
  193.  
  194. (define-key j3100-map "A" 'goto-line)            ; f.7
  195. (define-key j3100-map "Z" 'isearch-forward)        ; s-f.7
  196. (define-key j3100-map "d" 'query-replace)        ; c-f.7
  197.  
  198. (define-key j3100-map "B" 'find-file)            ; f.8
  199. (define-key j3100-map "[" 'save-buffer)            ; s-f.8
  200. (define-key j3100-map "e" 'write-file)            ; c-f.8
  201.  
  202. (define-key j3100-map "C" 'dired)            ; f.9
  203. (define-key j3100-map "\\" 'compile)            ; s-f.9
  204. (define-key j3100-map "f" 'repeat-complex-command)    ; c-f.9
  205.  
  206. (define-key j3100-map "D" 'shell-command)        ; f.10
  207. (define-key j3100-map "]" 'suspend-emacs)        ; s-f.10
  208. (define-key j3100-map "g" 'save-buffers-kill-emacs)    ; c-f.10
  209.  
  210. (define-key j3100-map "R" 'set-mark-command)        ; Ins
  211.  
  212. (define-key esc-map "O" j3100-map)
  213.  
  214. (defvar j3100-map-hooks nil
  215.   "List of forms to evaluate after setting j3100-map.")
  216.  
  217. (let ((hooks j3100-map-hooks))
  218.   (while hooks
  219.     (eval (car hooks))
  220.     (setq hooks (cdr hooks))))
  221.  
  222. ;;
  223. ;; function key label support functions
  224. ;;
  225. (defvar console-is-with-function-key-label nil
  226.  "If value is t, the console consists of emacs windows and function key label.")
  227.  
  228. (defun redraw-display-with-function-key-label ()
  229.   (redraw-display)
  230.   (put-function-key-label))
  231.  
  232. (defun recenter-with-function-key-label (&optional arg) "\
  233.   recenter and display function key label."
  234.   (interactive)
  235.   (recenter arg)
  236.   (put-function-key-label))
  237.  
  238. (defun setup-console-with-function-key-label ()
  239.   (delete-other-windows)
  240.   (enlarge-window 100)
  241.   (shrink-window 4)
  242.   (message "")
  243.   (redraw-display-with-function-key-label)
  244.   (send-string-to-terminal "\e[1;1f"))
  245.   
  246. (defun put-function-key-label ()
  247.   (save-excursion
  248.     (message "")
  249.     (send-string-to-terminal
  250.      (convert-string-kanji-code
  251. ;; You may find funny symbols. Don't worry these are Kanji characters.      
  252.       (format "\e[%d;1f\
  253.  |  F.1  |  F.2  |  F.3  |  F.4  |  F.5  |  F.6  | F.7 |  F.8  | F.9 | F.10   |\n\
  254.  |âwâïâv |æïê┌ô« |æSû╩ë╗ |ëíò¬èä |Åcò¬èä |âRâsü[ |ê┌ô« |âèü[âh |DIR  |âRâ}âôâh|\n\
  255. s|âéü[âh |æïÄwÆΦ |æïò┬ì╜ |ëíègæσ |Åcègæσ |âJâbâg |ÆTì⌡ |âZü[âu |MAKE |âVâFâï  |\n\
  256. c|î«ë≡Éα |æïêΩùù |æ╝æïô« |ëíÅkż |ÅcÅkż |âäâôâN |Æuè╖ |âëâCâg |îJò╘ |ÅIù╣    |\n" (- (screen-height) 3))
  257.       3 1)))
  258.   nil)
  259.  
  260. (defun erase-system-function-key-label ()
  261.  "Erase system function key label."
  262.  t)
  263.  
  264. (defun appear-system-function-key-label ()
  265.  "Appear system function key label."
  266.  t)
  267.  
  268. ;;;
  269.  
  270. (if console-is-with-function-key-label
  271.     (progn
  272.       (global-set-key "\C-l" 'recenter-with-function-key-label)
  273.       (setup-console-with-function-key-label)))
  274.  
  275. ;;;
  276.  
  277. (j3100-assign-special-key)
  278. (setq meta-flag t)    ; enable meta by ATL keys
  279.             ; this also can be enabled by termcap switch ':km:'
  280.