.key target,initial/s
.bra [
.ket ]
.def target sys:

resident >NIL: c:copy add pure

; build the keymap choice table
failat 21
if "[initial]" NOT EQ ""
    set keysource Extras2.0:
else
    set keysource [target]

; check if they have a keymaps directory, if not we'll need to get
; the extras disk swapped in now.
    if not exists [target]devs/keymaps
	makedir >NIL: [target]devs
	makedir >NIL: [target]devs/keymaps
        set keysource Extras2.0:
    endif
endif
set keytarget [target]

lab keystart
;
unset number
echo "*Ec*N                Select KeyMap*N"
echo "    1 cdn     (Canadien Franais)"
echo "    2 ch1     (Suisse)"
echo "    3 ch2     (Schweiz)"
echo "    4 d       (Deutsch)"
echo "    5 dk      (Dansk)"
echo "    6 e       (Espaol)"
echo "    7 f       (Franais)"
echo "    8 gb      (British)"
echo "    9 i       (Italiano)"
echo "   10 n       (Norsk)"
echo "   11 po      (Portuguesa)"
echo "   12 s       (Svenska)"
echo "   13 usa0    (1.0 American)"
echo "   14 usa2    (Dvorak)"
echo "   15 usa3    (A300 American)"
echo "    0 usa     (American)"

echo "*NYour choice (RETURN to exit without choosing) ? " noline
set >NIL: number ?
; did they want to just quit ?
if "$number" EQ "*$number"
    skip keyend
endif
;
if VAL "$number" EQ 1
    setenv sys/keyboard cdn
    skip foundit
endif
if VAL "$number" EQ 2
    setenv sys/keyboard ch1
    skip foundit
endif
if VAL "$number" EQ 3
    setenv sys/keyboard ch2
    skip foundit
endif
if VAL "$number" EQ 4
    setenv sys/keyboard d
    skip foundit
endif
if VAL "$number" EQ 5
    setenv sys/keyboard dk
    skip foundit
endif
if VAL "$number" EQ 6
    setenv sys/keyboard e
    skip foundit
endif
if VAL "$number" EQ 7
    setenv sys/keyboard f
    skip foundit
endif
if VAL "$number" EQ 8
    setenv sys/keyboard gb
    skip foundit
endif
if VAL "$number" EQ 9
    setenv sys/keyboard i
    skip foundit
endif
if VAL "$number" EQ 10
    setenv sys/keyboard n
    skip foundit
endif
if VAL "$number" EQ 11
    setenv sys/keyboard po
    skip foundit
endif
if VAL "$number" EQ 12
    setenv sys/keyboard s
    skip foundit
endif
if VAL "$number" EQ 13
    setenv sys/keyboard usa0
    skip foundit
endif
if VAL "$number" EQ 14
    setenv sys/keyboard usa2
    skip foundit
endif
if VAL "$number" EQ 15
    setenv sys/keyboard usa3
    skip foundit
endif
if "$number" EQ "0"
    setenv sys/keyboard usa
; usa keymap is in rom
    skip keyend
endif
;
; hey, maybe they typed the name
;
setenv sys/keyboard $number
if "$number" EQ "usa"
    skip keyend
endif

lab foundit
;
; make sure the keymap exists
;
if not exists ${keytarget}devs/keymaps/${sys/keyboard}
    if "[initial]" EQ ""
        set keysource Extras2.0:
        if not exists ${keysource}devs/keymaps/${sys/keyboard}
            echo "Error: ${sys/keyboard} keymap not found."
            wait 3 sec
            skip back keystart
        endif
    endif
    copy ${keysource}devs/keymaps/${sys/keyboard} ${keytarget}devs/keymaps com
endif

; set the selected keymap
assign devs: ${keytarget}devs add
sys:system/setmap ${sys/keyboard}
assign devs: ${keytarget}devs remove

lab keyend

unset number 
unset keysource
unset keytarget
