;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 104.93
;;; Reason:
;;;  (si:ti-keyboard) and (si:lmi-keyboard) for explorer's.
;;; Written 17-Aug-85 10:50:21 by pace,
;;; while running on Explorer Two from band 3
;;; with Experimental System 104.64, microcode 1278.



; From file COLD.LISP#> L.WINDOW; DJ: (164)
#8R SYSTEM-INTERNALS#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: WINDOW; COLD  "

(defvar kbd-ti-bd-table-list
	'(
	  ;;x00
	  (140000 140000 140000 140000 140000)      ;none
	  (#/HELP #/HELP #/HELP #/HELP #/HELP)	;HELP
	  (140000 140000 140000 140000 140000)	;none
	  (100003 100003 100003 100003 100003)	;CAPS-LOCK
	  (140000 140000 140000 140000 140000)	;BOLD-LOCK
	  (140000 140000 140000 140000 140000)	;ITALIC-LOCK
	  (100011 100011 100011 100011 100011)	;MODE-LOCK
	  (100007 100007 100007 100007 100007)	;left HYPER
	  ;;x08
	  (#/SYSTEM #/SYSTEM #/SYSTEM #/SYSTEM #/SYSTEM)
	  (#/NETWORK #/NETWORK #/NETWORK #/NETWORK #/NETWORK)
	  (#/STATUS #/STATUS #/STATUS #/STATUS #/STATUS)
	  (#/TERMINAL #/TERMINAL #/TERMINAL #/TERMINAL #/TERMINAL)
	  (140000 140000 140000 140000 140000)	;none
	  (#/PAGE #/PAGE #/PAGE #/PAGE #/PAGE)	;CLEAR-SCREEN
	  (#/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT)
	  (140000 140000 140000 140000 140000)	;UNDO
	  ;;x10
	  (#/END #/END #/END #/END #/END)
	  (#/ROMAN-I #/ROMAN-I #/ROMAN-I #/ROMAN-I #/ROMAN-I)	;LEFT
	  (#/ROMAN-II #/ROMAN-II #/ROMAN-II #/ROMAN-II #/ROMAN-II)	;MIDDLE
	  (#/ROMAN-III #/ROMAN-III #/ROMAN-III #/ROMAN-III #/ROMAN-III)	;RIGHT
	  (140000 140000 140000 140000 140000)	;F1
	  (140000 140000 140000 140000 140000)	;F2
	  (140000 140000 140000 140000 140000)	;F3
	  (140000 140000 140000 140000 140000)	;F4
	  ;;x18
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  ;(140000 140000 140000 140000 140000)	;none
	  (100006 100006 100006 100006 100006)
	  (100005 100005 100005 100005 100005)	;LEFT META
	  (100004 100004 100004 100004 100004)	;LEFT CONTROL
	  (100044 100044 100044 100044 100044)	;RIGHT CONTROL
	  (100045 100045 100045 100045 100045)	;RIGHT META
	  (100046 100046 100046 100046 100046)	;RIGHT SUPER
	  ;;x20
	  (100047 100047 100047 100047 100047)	;RIGHT HYPER
	  (#/RESUME #/RESUME #/RESUME #/RESUME #/RESUME)
	  (140000 140000 140000 140000 140000)	;none
	  (#/ALTMODE #/ALTMODE #/ALTMODE #/ALTMODE #/ALTMODE)	;ESCAPE
	  (#/1 #/! #/! 140000 140000)
	  (#/2 #/@ #/@ 140000 140000)
	  (#/3 #/# #/# 140000 140000)
	  (#/4 #/$ #/$ 140000 140000)
	  ;;x28
	  (#/5 #/% #/% 140000 140000)
	  (#/6 #/^ #/^ 140000 140000)
	  (#/7 #/& #/& 140000 140000)
	  (#/8 #/* #/* 140000 140000)
	  (#/9 #/( #/( 140000 140000)
	  (#/0 #/) #/) 140000 140000)
	  (#/- #/_ #/_ 140000 140000)
	  (#/= #/+ #/+ 140000 140000)
	  ;;x30
	  (#/` #/{ #/{ 140000 140000)
	  (#/~ #/} #/} 140000 140000)
	  (#/= #/= #/= 140000 140000)	;= on keypad
	  (#/+ #/+ #/+ 140000 140000)	;+ on keypad
	  (#/SPACE #/SPACE #/SPACE #/SPACE #/SPACE)	;space on keypad
	  (#/TAB #/TAB #/TAB #/TAB #/TAB)	;tab on keypad
	  (#/BREAK #/BREAK #/BREAK #/BREAK #/BREAK)
	  (140000 140000 140000 140000 140000)	;none
	  ;;x38
	  (#/TAB #/TAB #/TAB #/TAB #/TAB)
	  (#/q #/Q #/ 140000 140000)
	  (#/w #/W #/ 140000 140000)
	  (#/e #/E #/ #/ 140000)
	  (#/r #/R #/ 140000 140000)
	  (#/t #/T #/ 140000 140000)
	  (#/y #/Y #/ 140000 140000)
	  (#/u #/U #/ 140000 140000)
	  ;;x40
	  (#/i #/I #/ 140000 140000)
	  (#/o #/O #/ 140000 140000)
	  (#/p #/P #/ #/ 140000)
	  (#/( #/[ #/[ 140000 140000)
	  (#/) #/] #/] 140000 140000)
	  (140000 140000 140000 140000 140000)	;none
	  (#/\ #/| #/| 140000 140000)
	  (#/HAND-up #/HAND-up #/HAND-up 140000 140000) ;arrow up
	  ;;x48
	  (#/7 #/7 #/7 140000 140000)	;7 on keypad
	  (#/8 #/8 #/8 140000 140000)	;8 on keypad
	  (#/9 #/9 #/9 140000 140000)	;9 on keypad
	  (#/- #/- #/- 140000 140000)	;- on keypad
	  (#/ABORT #/ABORT #/ABORT #/ABORT #/ABORT)
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (#/RUBOUT #/RUBOUT #/RUBOUT #/RUBOUT #/RUBOUT)
	  ;;x50
	  (#/a #/A 140000 #/ 140000)
	  (#/s #/S 140000 140000 140000)
	  (#/d #/D 140000 #/
 140000)
	  (#/f #/F 140000 140000 140000)
	  (#/g #/G #/ #/	 140000)
	  (#/h #/H #/ 140000 140000)
	  (#/j #/J #/ 140000 140000)
	  (#/k #/K #/ 140000 140000)
	  ;;x58
	  (#/l #/L #/ #/ 140000)
	  (#/; #/: #/: 140000 140000)
	  (#/' #/" #/" #/  140000)
	  (#/RETURN #/RETURN #/RETURN #/RETURN #/RETURN)
	  (#/LINE #/LINE #/LINE #/LINE #/LINE)
	  (#/HAND-left #/HAND-left #/HAND-left 140000 140000) ;arrow left
	  (140000 140000 140000 140000 140000)	;arrow middle
	  (#/HAND-right #/HAND-right #/HAND-right 140000 140000) ;arrow right
	  ;;x60
	  (#/4 #/4 #/4 140000 140000)	;4 on keypad
	  (#/5 #/5 #/5 140000 140000)	;5 on keypad
	  (#/6 #/6 #/6 140000 140000)	;6 on keypad
	  (#/, #/, #/, 140000 140000)	;, on keypad
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (100001 100001 100001 100001 100001)	;left SYMBOL
	  (100000 100000 100000 100000 100000)	;left SHIFT
	  ;;x68
	  (#/z #/Z 140000 140000 140000)
	  (#/x #/X 140000 140000 140000)
	  (#/c #/C #/ 140000 140000)
	  (#/v #/V 140000 140000 140000)
	  (#/b #/B #/ #/ 140000)
	  (#/n #/N #/ 140000 140000)
	  (#/m #/M #/ 140000 140000)
	  (#/, #/< #/< 140000 140000)
	  ;;x70
	  (#/. #/> #/> 140000 140000)
	  (#// #/? #/? #/ 140000)
	  (100040 100040 100040 100040 100040)	;right SHIFT
	  (140000 140000 140000 140000 140000)	;none
	  (100041 100041 100041 100041 100041)	;right SYMBOL
	  (#/HAND-down #/HAND-down #/HAND-down 140000 140000) ;arrow down
	  (#/1 #/1 #/1 140000 140000)	;1 on keypad
	  (#/2 #/2 #/2 140000 140000)	;2 on keypad
	  ;;x78
	  (#/3 #/3 #/3 140000 140000)	;3 on keypad
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (#/SPACE #/SPACE #/SPACE #/SPACE #/SPACE)
	  (140000 140000 140000 140000 140000)	;none
	  (#/0 #/0 #/0 140000 140000)	;0 on keypad
	  (#/. #/. #/. 140000 140000)	;. on keypad
	  (#/return #/return #/return 140000 140000)	;enter on keypad
	  )
  )

))

; From file COLD.LISP#> L.WINDOW; DJ: (165)
#8R SYSTEM-INTERNALS#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: WINDOW; COLD  "

(defvar kbd-lmi-bd-table-list
	'(
	  ;;x00
	  (140000 140000 140000 140000 140000)      ;none
	  (#/HELP #/HELP #/HELP #/HELP #/HELP)	;HELP
	  (140000 140000 140000 140000 140000)	;repeat
	  (100003 100003 100003 100003 100003)	;CAPS-LOCK
	  (#/ROMAN-II #/ROMAN-II #/ROMAN-II #/ROMAN-II #/ROMAN-II)
	  (#/ROMAN-IV #/ROMAN-IV #/ROMAN-IV #/ROMAN-IV #/ROMAN-IV)
	  (100011 100011 100011 100011 100011)	;MODE-LOCK
	  (100007 100007 100007 100007 100007)	;left HYPER
	  ;;x08
	  (#/SYSTEM #/SYSTEM #/SYSTEM #/SYSTEM #/SYSTEM)
	  (#/NETWORK #/NETWORK #/NETWORK #/NETWORK #/NETWORK)
	  (#/STATUS #/STATUS #/STATUS #/STATUS #/STATUS)
	  (#/TERMINAL #/TERMINAL #/TERMINAL #/TERMINAL #/TERMINAL)
	  (140000 140000 140000 140000 140000)	;alt lock
	  (#/PAGE #/PAGE #/PAGE #/PAGE #/PAGE)	;CLEAR-SCREEN
	  (#/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT #/CLEAR-INPUT)
	  (#/hand-right #/hand-right #/hand-right #/hand-right #/hand-right)
	  ;;x10
	  (#/END #/END #/END #/END #/END)
	  (#/hold-output #/HOLD-OUTPUT #/HOLD-OUTPUT #/HOLD-OUTPUT #/HOLD-OUTPUT)
	  (#/MACRO #/MACRO #/MACRO #/MACRO #/MACRO)
	  (#/ROMAN-I #/ROMAN-I #/ROMAN-I #/ROMAN-I #/ROMAN-I)
	  (#/ROMAN-III #/ROMAN-III #/ROMAN-III #/ROMAN-III #/ROMAN-III)
	  (100002 100002 100002 100002 100002)	;left top
	  (#/hand-up #/hand-up #/hand-up 140000 140000)
	  (#/call #/call #/call #/call #/call)
	  ;;x18
	  (#/{ #/< #/< #/< #/<)
	  (#/: #/ #/ #/ #/)
	  (100006 100006 100006 100006 100006)	;left super
	  (100005 100005 100005 100005 100005)	;LEFT META
	  (100004 100004 100004 100004 100004)	;LEFT CONTROL
	  (100044 100044 100044 100044 100044)	;RIGHT CONTROL
	  (100045 100045 100045 100045 100045)	;RIGHT META
	  (100046 100046 100046 100046 100046)	;RIGHT SUPER
	  ;;x20
	  (100047 100047 100047 100047 100047)	;RIGHT HYPER
	  (#/RESUME #/RESUME #/RESUME #/RESUME #/RESUME)
	  (#/hand-left #/hand-left #/hand-left #/circle-cross #/circle-cross)
	  (#/ALTMODE #/ALTMODE #/ALTMODE #/ALTMODE #/ALTMODE)	;ESCAPE
	  (#/1 #/! #/! 140000 140000)
	  (#/2 #/@ #/@ 140000 140000)
	  (#/3 #/# #/# 140000 140000)
	  (#/4 #/$ #/$ 140000 140000)
	  ;;x28
	  (#/5 #/% #/% 140000 140000)
	  (#/6 #/^ #/^ 140000 140000)
	  (#/7 #/& #/& 140000 140000)
	  (#/8 #/* #/* 140000 140000)
	  (#/9 #/( #/( 140000 140000)
	  (#/0 #/) #/) 140000 140000)
	  (#/- #/_ #/_ 140000 140000)
	  (#/= #/+ #/+ 140000 140000)
	  ;;x30
	  (#/` #/~ #/~ #/not-sign #/not-sign)
	  (#/} #/> #/> #/> #/>)
	  (#/quote #/quote #/quote #/quote #/quote)
	  (100042 100042 100042 100042 100042)	;right top
	  (#/SPACE #/SPACE #/SPACE #/SPACE #/SPACE)	;space on keypad
	  (#/TAB #/TAB #/TAB #/TAB #/TAB)	;tab on keypad
	  (#/BREAK #/BREAK #/BREAK #/BREAK #/BREAK)
	  (#/delete #/delete #/delete #/delete #/delete)
	  ;;x38
	  (#/OVERSTRIKE #/OVERSTRIKE #/OVERSTRIKE #/OVERSTRIKE #/OVERSTRIKE)
	  (#/q #/Q #/and-sign 140000 140000)
	  (#/w #/W #/or-sign 140000 140000)
	  (#/e #/E #/up-horseshoe #/ 140000)
	  (#/r #/R #/down-horseshoe 140000 140000)
	  (#/t #/T #/left-horseshoe 140000 140000)
	  (#/y #/Y #/right-horseshoe 140000 140000)
	  (#/u #/U #/universal-quantifier 140000 140000)
	  ;;x40
	  (#/i #/I #/infinity 140000 140000)
	  (#/o #/O #/existential-quantifier 140000 140000)
	  (#/p #/P #/partial-delta #/pi 140000)
	  (#/( #/[ #/[ 140000 140000)
	  (#/) #/] #/] 140000 140000)
	  (#/stop-output #/stop-output #/stop-output #/stop-output #/stop-output)
	  (#/\ #/| #/| 140000 140000)
	  (#/HAND-down #/HAND-down #/hand-down #/circle-plus #/circle-plus)
	  ;;x48
	  (#/7 #/7 #/7 140000 140000)	;7 on keypad
	  (#/8 #/8 #/8 140000 140000)	;8 on keypad
	  (#/9 #/9 #/9 140000 140000)	;9 on keypad
	  (#/- #/- #/- 140000 140000)	;- on keypad
	  (#/ABORT #/ABORT #/ABORT #/ABORT #/ABORT)
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (#/RUBOUT #/RUBOUT #/RUBOUT #/RUBOUT #/RUBOUT)
	  ;;x50
	  (#/a #/A 140000 #/alpha 140000)
	  (#/s #/S 140000 140000 140000)
	  (#/d #/D 140000 #/delta 140000)
	  (#/f #/F 140000 140000 140000)
	  (#/g #/G #/up-arrow #/gamma 140000)
	  (#/h #/H #/down-arrow 140000 140000)
	  (#/j #/J #/left-arrow 140000 140000)
	  (#/k #/K #/right-arrow 140000 140000)
	  ;;x58
	  (#/l #/L #/double-arrow #/lambda 140000)
	  (#/; #/: #/: 140000 140000)
	  (#/' #/" #/" #/center-dot 140000)
	  (#/RETURN #/RETURN #/RETURN #/RETURN #/RETURN)
	  (#/LINE #/LINE #/LINE #/LINE #/LINE)
	  (#/HAND-left #/HAND-left #/HAND-left 140000 140000) ;arrow left
	  (140000 140000 140000 140000 140000)	;arrow middle
	  (#/HAND-right #/HAND-right #/HAND-right 140000 140000) ;arrow right
	  ;;x60
	  (#/4 #/4 #/4 140000 140000)	;4 on keypad
	  (#/5 #/5 #/5 140000 140000)	;5 on keypad
	  (#/6 #/6 #/6 140000 140000)	;6 on keypad
	  (#/, #/, #/, 140000 140000)	;, on keypad
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (100001 100001 100001 100001 100001)	;left SYMBOL (= greek)
	  (100000 100000 100000 100000 100000)	;left SHIFT
	  ;;x68
	  (#/z #/Z 140000 140000 140000)
	  (#/x #/X 140000 140000 140000)
	  (#/c #/C #/not-equals 140000 140000)
	  (#/v #/V 140000 140000 140000)
	  (#/b #/B #/equivalence #/beta 140000)
	  (#/n #/N #/less-or-equal 140000 140000)
	  (#/m #/M #/greater-or-equal 140000 140000)
	  (#/, #/< #/< 140000 140000)
	  ;;x70
	  (#/. #/> #/> 140000 140000)
	  (#// #/? #/? #/integral 140000)
	  (100040 100040 100040 100040 100040)	;right SHIFT
	  (140000 140000 140000 140000 140000)	;none
	  (100041 100041 100041 100041 100041)	;right SYMBOL = greek
	  (#/HAND-down #/HAND-down #/HAND-down 140000 140000) ;arrow down
	  (#/1 #/1 #/1 140000 140000)	;1 on keypad
	  (#/2 #/2 #/2 140000 140000)	;2 on keypad
	  ;;x78
	  (#/3 #/3 #/3 140000 140000)	;3 on keypad
	  (140000 140000 140000 140000 140000)	;none
	  (140000 140000 140000 140000 140000)	;none
	  (#/SPACE #/SPACE #/SPACE #/SPACE #/SPACE)
	  (140000 140000 140000 140000 140000)	;none
	  (#/0 #/0 #/0 140000 140000)	;0 on keypad
	  (#/. #/. #/. 140000 140000)	;. on keypad
	  (#/return #/return #/return 140000 140000)	;enter on keypad
	  )
  )

))

; From file COLD.LISP#> L.WINDOW; DJ: (165)
#8R SYSTEM-INTERNALS#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: WINDOW; COLD  "

(defun ti-keyboard ()
  (select-processor
    (:explorer
      (setq kbd-bd-table (kbd-make-bd-table kbd-ti-bd-table-list)))
    ((:lambda :cadr)
     (ferror nil "can't change keyboard types on this processor"))))

(defun lmi-keyboard ()
  (select-processor
    (:explorer
      (setq kbd-bd-table (kbd-make-bd-table kbd-lmi-bd-table-list)))
    ((:lambda :cadr)
     (ferror nil "can't change keyboard types on this processor"))))
))
