Files
VT52_MiSTer/rtl/mem/keymap.hex
2024-11-03 18:45:45 -05:00

813 lines
4.3 KiB
Plaintext

//
// File created with some elisp & keyboard macro magic...
//
//
// The first 3 bits in the address select the keycode
// long-keycode? capslock-pressed? shift-pressed?
// The next 8 bits are the keycode (without prefixes)
//
// The value stored in memory can be one of 3 cases:
// 0xxxxxxx: regular key, x's are the ASCII code
// 10xxxxxx: modifier key, all zeros is caps lock, otherwise one bit set, in order
// left shift, left control, left alt, right alt, right control, right shift
// 11xxxxxx: Escaped ASCII, send Esc and then the ASCII code (including the 1, so only
// uppercase, lowercase and a few symbols allowed)
//
@000
//
// short keycode, modifiers
//
// caps lock
@058
80
@158
80
@258
80
@358
80
// right shift
@059
81
@159
81
@259
81
@359
81
// left shift
@012
a0
@112
a0
@212
a0
@312
a0
// left control
@014
90
@114
90
@214
90
@314
90
// left alt/meta
@011
88
@111
88
@211
88
@311
88
//
// no shift or caps lock:
//
@000
// F1 (left blank key)
@005
d0
// F2 (middle blank key)
@006
d1
// F3 (right blank key)
@004
d2
// `
@00e
60
// 1
@016
31
// 2
@01e
32
// 3
@026
33
// 4
@025
34
// 5
@02e
35
// 6
@036
36
// 7
@03d
37
// 8
@03e
38
// 9
@046
39
// 0
@045
30
// -
@04e
2d
// =
@055
3d
// \
@05d
5c
// q
@015
71
// w
@01d
77
// e
@024
65
// r
@02d
72
// t
@02c
74
// y
@035
79
// u
@03c
75
// i
@043
69
// o
@044
6f
// p
@04d
70
// [
@054
5b
// ]
@05b
5d
// a
@01c
61
// s
@01b
73
// d
@023
64
// f
@02b
66
// g
@034
67
// h
@033
68
// j
@03b
6a
// k
@042
6b
// l
@04b
6c
// ;
@04c
3b
// '
@052
27
// z
@01a
7a
// x
@022
78
// c
@021
63
// v
@02a
76
// b
@032
62
// n
@031
6e
// m
@03a
6d
// ,
@041
2c
// .
@049
2e
// /
@04a
2f
// escape
@076
1b
// tab
@00d
09
// backspace
@066
08
// space
@029
20
// return
@05a
0d
//
// short keycode, only shift
//
@100
// ~
@10e
7e
// !
@116
21
// @
@11e
40
// #
@126
23
// $
@125
24
// %
@12e
25
// ^
@136
5e
// &
@13d
26
// *
@13e
2a
// (
@146
28
// )
@145
29
// _
@14e
5f
// +
@155
2b
// |
@15d
7c
// Q
@115
51
// W
@11d
57
// E
@124
45
// R
@12d
52
// T
@12c
54
// Y
@135
59
// U
@13c
55
// I
@143
49
// O
@144
4f
// P
@14d
50
// {
@154
7b
// }
@15b
7d
// A
@11c
41
// S
@11b
53
// D
@123
44
// F
@12b
46
// G
@134
47
// H
@133
48
// J
@13b
4a
// K
@142
4b
// L
@14b
4c
// :
@14c
3a
// "
@152
22
// Z
@11a
5a
// X
@122
58
// C
@121
43
// V
@12a
56
// B
@132
42
// N
@131
4e
// M
@13a
4d
// <
@141
3c
// >
@149
3e
// ?
@14a
3f
// escape
@176
1b
// tab
@10d
09
// backspace
@166
08
// space
@129
20
// return
@15a
0d
//
// short keycode, only caps lock:
//
@200
// `
@20e
60
// 1
@216
31
// 2
@21e
// 2
@21e
32
// 3
@226
33
// 4
@225
34
// 5
@22e
35
// 6
@236
36
// 7
@23d
37
// 8
@23e
38
// 9
@246
39
// 0
@245
30
// -
@24e
2d
// =
@255
3d
// \
@25d
5c
// Q
@215
51
// W
@21d
57
// E
@224
45
// R
@22d
52
// T
@22c
54
// Y
@235
59
// U
@23c
55
// I
@243
49
// O
@244
4f
// P
@24d
50
// [
@254
5b
// ]
@25b
5d
// A
@21c
41
// S
@21b
53
// D
@223
44
// F
@22b
46
// G
@234
47
// H
@233
48
// J
@23b
4a
// K
@242
4b
// L
@24b
4c
// ;
@24c
3b
// '
@252
27
// Z
@21a
5a
// X
@222
58
// C
@221
43
// V
@22a
56
// B
@232
42
// N
@231
4e
// M
@23a
4d
// ,
@241
2c
// .
@249
2e
// /
@24a
2f
// escape
@276
1b
// tab
@20d
09
// backspace
@266
08
// space
@229
20
// return
@25a
0d
//
// short keycode shift & caps lock:
//
@300
// ~
@30e
7e
// !
@316
21
// @
@31e
40
// #
@326
23
// $
@325
24
// %
@32e
25
// ^
@336
5e
// &
@33d
26
// *
@33e
2a
// (
@346
28
// )
@345
29
// _
@34e
5f
// +
@355
2b
// |
@35d
7c
// q
@315
71
// w
@31d
77
// e
@324
65
// r
@32d
72
// t
@32c
74
// y
@335
79
// u
@33c
75
// i
@343
69
// o
@344
6f
// p
@34d
70
// {
@354
7b
// }
@35b
7d
// a
@31c
61
// s
@31b
73
// d
@323
64
// f
@32b
66
// g
@334
67
// h
@333
68
// j
@33b
6a
// k
@342
6b
// l
@34b
6c
// :
@34c
3a
// "
@352
22
// z
@31a
7a
// x
@322
78
// c
@321
63
// v
@32a
76
// b
@332
62
// n
@331
6e
// m
@33a
6d
// <
@341
3c
// >
@349
3e
// ?
@34a
3f
// escape
@376
1b
// tab
@30d
09
// backspace
@366
08
// space
@329
20
// return
@35a
0d
// long keycodes
@400
// right control
@414
82
@514
82
@614
82
@714
82
// right alt/meta
@411
84
@511
84
@611
84
@711
84
// del
@471
7f
@571
7f
@671
7f
@771
7f
// ins (linefeed)
@470
0a
@570
0a
@670
0a
@770
0a
// up arrow (Esc-A)
@475
c1
@575
c1
@675
c1
@775
c1
// down arrow (Esc-B)
@472
c2
@572
c2
@672
c2
@772
c2
// right arrow (Esc-C)
@474
c3
@574
c3
@674
c3
@774
c3
// left arrow (Esc-D)
@46b
c4
@56b
c4
@66b
c4
@76b
c4