Annotation of nono/vm/x68kkbd.cpp, revision 1.1.1.1

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2018 [email protected]
                      4: //
                      5: 
                      6: #include "x68kkbd.h"
                      7: #include "mfp.h"
                      8: 
                      9: // コンストラクタ
                     10: X68030Keyboard::X68030Keyboard()
                     11: {
                     12:        // MFP へキー入力を通知するイベント
                     13: #if 0
                     14:        event.dev = gMFP;
                     15:        event.func = (DeviceCallback_t)&MFPDevice::Rx;
                     16:        event.time = 0;
                     17:        event.name = "KeyInput";
                     18: #endif
                     19: }
                     20: 
                     21: // デストラクタ
                     22: X68030Keyboard::~X68030Keyboard()
                     23: {
                     24: }
                     25: 
                     26: // キーを押した
                     27: void
                     28: X68030Keyboard::MakeKey(uint keycode)
                     29: {
                     30:        uint x68kkey;
                     31: 
                     32:        // 共通キーコードから X680x0 キーコードに
                     33:        x68kkey = keycode2x68kkey(keycode);
                     34: 
                     35:        // X680x0 にないキーは無視
                     36:        if (x68kkey == NoKey) {
                     37:                return;
                     38:        }
                     39: 
                     40:        putlog(1, "MakeKey  %d(%s)", x68kkey, keyname[x68kkey]);
                     41: 
                     42:        // MFP に通知
                     43:        event.code = x68kkey;
                     44: //     gScheduler->AddEvent(&event);
                     45: }
                     46: 
                     47: // キーを離した
                     48: void
                     49: X68030Keyboard::BreakKey(uint keycode)
                     50: {
                     51:        uint x68kkey;
                     52: 
                     53:        // 共通キーコードから X680x0 キーコードに
                     54:        x68kkey = keycode2x68kkey(keycode);
                     55: 
                     56:        // X680x0 にないキーは無視
                     57:        if (x68kkey == NoKey) {
                     58:                return;
                     59:        }
                     60: 
                     61:        putlog(2, "BreakKey %d(%s)", x68kkey, keyname[x68kkey]);
                     62: 
                     63:        // MFP に通知
                     64:        event.code = x68kkey | 0x80;
                     65: //     gScheduler->AddEvent(&event);
                     66: }
                     67: 
                     68: // 共通キーコードを X680x0 キーコードに変換して返す。
                     69: // X680x0 キーがなければ NoKey を返す。
                     70: uint
                     71: X68030Keyboard::keycode2x68kkey(uint keycode)
                     72: {
                     73:        if (keycode >= countof(keycode2x68kkey_table)) {
                     74:                return NoKey;
                     75:        }
                     76: 
                     77:        return keycode2x68kkey_table[keycode];
                     78: }
                     79: 
                     80: // キーコード変換表
                     81: // 共通キーコードから X680x0 キーコードに変換する。
                     82: /*static*/ const uint
                     83: X68030Keyboard::keycode2x68kkey_table[133] = {
                     84:        NoKey,                                  // [00]
                     85:        X68kKey_BREAK,                  // [01]
                     86:        X68kKey_COPY,                   // [02]
                     87:        X68kKey_romaji,                 // [03]
                     88:        X68kKey_kana,                   // [04]
                     89:        X68kKey_kigou,                  // [05]
                     90:        X68kKey_touroku,                // [06]
                     91:        X68kKey_HELP,                   // [07]
                     92:        X68kKey_HOME,                   // [08]
                     93:        X68kKey_TAB,                    // [09]
                     94:        X68kKey_CTRL,                   // [0a]
                     95:        X68kKey_kana,                   // [0b]
                     96:        X68kKey_SHIFT,                  // [0c]
                     97:        NoKey,                                  // [0d]
                     98:        X68kKey_CAPS,                   // [0e]
                     99:        NoKey,                                  // [0f]
                    100: 
                    101:        X68kKey_ESC,                    // [10]
                    102:        X68kKey_BS,                             // [11]
                    103:        X68kKey_enter,                  // [12]
                    104:        X68kKey_INS,                    // [13]
                    105:        X68kKey_space,                  // [14]
                    106:        X68kKey_DEL,                    // [15]
                    107:        NoKey,                                  // [16]
                    108:        NoKey,                                  // [17]
                    109:        NoKey,                                  // [18]
                    110:        NoKey,                                  // [19]
                    111:        NoKey,                                  // [1a]
                    112:        NoKey,                                  // [1b]
                    113:        X68kKey_up,                             // [1c]
                    114:        X68kKey_left,                   // [1d]
                    115:        X68kKey_right,                  // [1e]
                    116:        X68kKey_down,                   // [1f]
                    117: 
                    118:        X68kKey_ROLLUP,                 // [20]
                    119:        X68kKey_ROLLDOWN,               // [21]
                    120:        X68kKey_1,                              // [22]
                    121:        X68kKey_2,                              // [23]
                    122:        X68kKey_3,                              // [24]
                    123:        X68kKey_4,                              // [25]
                    124:        X68kKey_5,                              // [26]
                    125:        X68kKey_6,                              // [27]
                    126:        X68kKey_7,                              // [28]
                    127:        X68kKey_8,                              // [29]
                    128:        X68kKey_9,                              // [2a]
                    129:        X68kKey_0,                              // [2b]
                    130:        X68kKey_minus,                  // [2c]
                    131:        X68kKey_circum,                 // [2d]
                    132:        X68kKey_backslash,              // [2e]
                    133:        X68kKey_UNDO,                   // [2f]
                    134: 
                    135:        X68kKey_OPT1,                   // [30]
                    136:        X68kKey_OPT2,                   // [31]
                    137:        X68kKey_Q,                              // [32]
                    138:        X68kKey_W,                              // [33]
                    139:        X68kKey_E,                              // [34]
                    140:        X68kKey_R,                              // [35]
                    141:        X68kKey_T,                              // [36]
                    142:        X68kKey_Y,                              // [37]
                    143:        X68kKey_U,                              // [38]
                    144:        X68kKey_I,                              // [39]
                    145:        X68kKey_O,                              // [3a]
                    146:        X68kKey_P,                              // [3b]
                    147:        X68kKey_at,                             // [3c]
                    148:        X68kKey_bracketleft,    // [3d]
                    149:        X68kKey_hira,                   // [3e]
                    150:        X68kKey_zenkaku,                // [3f]
                    151: 
                    152:        NoKey,                                  // [40]
                    153:        NoKey,                                  // [41]
                    154:        X68kKey_A,                              // [42]
                    155:        X68kKey_S,                              // [43]
                    156:        X68kKey_D,                              // [44]
                    157:        X68kKey_F,                              // [45]
                    158:        X68kKey_G,                              // [46]
                    159:        X68kKey_H,                              // [47]
                    160:        X68kKey_J,                              // [48]
                    161:        X68kKey_K,                              // [49]
                    162:        X68kKey_L,                              // [4a]
                    163:        X68kKey_semicolon,              // [4b]
                    164:        X68kKey_colon,                  // [4c]
                    165:        X68kKey_bracketright,   // [4d]
                    166:        NoKey,                                  // [4e]
                    167:        NoKey,                                  // [4f]
                    168: 
                    169:        NoKey,                                  // [50]
                    170:        NoKey,                                  // [51]
                    171:        X68kKey_Z,                              // [52]
                    172:        X68kKey_X,                              // [53]
                    173:        X68kKey_C,                              // [54]
                    174:        X68kKey_V,                              // [55]
                    175:        X68kKey_B,                              // [56]
                    176:        X68kKey_M,                              // [57]
                    177:        X68kKey_N,                              // [58]
                    178:        X68kKey_comma,                  // [59]
                    179:        X68kKey_period,                 // [5a]
                    180:        X68kKey_slash,                  // [5b]
                    181:        X68kKey_underscore,             // [5c]
                    182:        NoKey,                                  // [5d]
                    183:        NoKey,                                  // [5e]
                    184:        NoKey,                                  // [5f]
                    185: 
                    186:        NoKey,                                  // [60]
                    187:        X68kKey_PAD_plus,               // [61]
                    188:        X68kKey_PAD_minus,              // [62]
                    189:        X68kKey_PAD_7,                  // [63]
                    190:        X68kKey_PAD_8,                  // [64]
                    191:        X68kKey_PAD_9,                  // [65]
                    192:        X68kKey_PAD_4,                  // [66]
                    193:        X68kKey_PAD_5,                  // [67]
                    194:        X68kKey_PAD_6,                  // [68]
                    195:        X68kKey_PAD_1,                  // [69]
                    196:        X68kKey_PAD_2,                  // [6a]
                    197:        X68kKey_PAD_3,                  // [6b]
                    198:        X68kKey_PAD_0,                  // [6c]
                    199:        X68kKey_PAD_decimal,    // [6d]
                    200:        X68kKey_PAD_enter,              // [6e]
                    201:        X68kKey_PAD_CLR,                // [6f]
                    202: 
                    203:        NoKey,                                  // [70]
                    204:        NoKey,                                  // [71]
                    205:        X68kKey_F1,                             // [72]
                    206:        X68kKey_F2,                             // [73]
                    207:        X68kKey_F3,                             // [74]
                    208:        X68kKey_F4,                             // [75]
                    209:        X68kKey_F5,                             // [76]
                    210:        X68kKey_F6,                             // [77]
                    211:        X68kKey_F7,                             // [78]
                    212:        X68kKey_F8,                             // [79]
                    213:        X68kKey_F9,                             // [7a]
                    214:        X68kKey_F10,                    // [7b]
                    215:        X68kKey_PAD_multiply,   // [7c]
                    216:        X68kKey_PAD_divide,             // [7d]
                    217:        X68kKey_PAD_equal,              // [7e]
                    218:        X68kKey_PAD_comma,              // [7f]
                    219: 
                    220:        X68kKey_XF1,                    // [80]
                    221:        X68kKey_XF2,                    // [81]
                    222:        X68kKey_XF3,                    // [82]
                    223:        X68kKey_XF4,                    // [83]
                    224:        X68kKey_XF5,                    // [84]
                    225: };
                    226: 
                    227: /*static*/ const char * const
                    228: X68030Keyboard::keyname[] =
                    229: {
                    230:        "",                     // 00
                    231:        "ESC",          // 01
                    232:        "1!",           // 02
                    233:        "2\"",          // 03
                    234:        "3#",           // 04
                    235:        "4$",           // 05
                    236:        "5%",           // 06
                    237:        "6&",           // 07
                    238:        "7'",           // 08
                    239:        "8(",           // 09
                    240:        "9)",           // 0a
                    241:        "0",            // 0b
                    242:        "-=",           // 0c
                    243:        "^~",           // 0d
                    244:        "\\|",          // 0e
                    245:        "BS",           // 0f
                    246: 
                    247:        "TAB",          // 10
                    248:        "Q",            // 11
                    249:        "W",            // 12
                    250:        "E",            // 13
                    251:        "R",            // 14
                    252:        "T",            // 15
                    253:        "Y",            // 16
                    254:        "U",            // 17
                    255:        "I",            // 18
                    256:        "O",            // 19
                    257:        "P",            // 1a
                    258:        "@`",           // 1b
                    259:        "[{",           // 1c
                    260:        "Enter",        // 1d
                    261:        "A",            // 1e
                    262:        "S",            // 1f
                    263: 
                    264:        "D",            // 20
                    265:        "F",            // 21
                    266:        "G",            // 22
                    267:        "H",            // 23
                    268:        "J",            // 24
                    269:        "K",            // 25
                    270:        "L",            // 26
                    271:        ";+",           // 27
                    272:        ":*",           // 28
                    273:        "]}",           // 29
                    274:        "Z",            // 2a
                    275:        "X",            // 2b
                    276:        "C",            // 2c
                    277:        "V",            // 2d
                    278:        "B",            // 2e
                    279:        "N",            // 2f
                    280: 
                    281:        "M",            // 30
                    282:        ",<",           // 31
                    283:        ".>",           // 32
                    284:        "/?",           // 33
                    285:        " _",           // 34
                    286:        "Space",        // 35
                    287:        "HOME",         // 36
                    288:        "DEL",          // 37
                    289:        "ROLLUP",       // 38
                    290:        "ROLLDOWN",     // 39
                    291:        "UNDO",         // 3a
                    292:        "←",          // 3b
                    293:        "↑",          // 3c
                    294:        "→",          // 3d
                    295:        "↓",          // 3e
                    296:        "PADCLR",       // 3f
                    297: 
                    298:        "PAD/",         // 40
                    299:        "PAD*",         // 41
                    300:        "PAD-",         // 42
                    301:        "PAD7",         // 43
                    302:        "PAD8",         // 44
                    303:        "PAD9",         // 45
                    304:        "PAD+",         // 46
                    305:        "PAD4",         // 47
                    306:        "PAD5",         // 48
                    307:        "PAD6",         // 49
                    308:        "PAD=",         // 4a
                    309:        "PAD1",         // 4b
                    310:        "PAD2",         // 4c
                    311:        "PAD3",         // 4d
                    312:        "PADEnter",     // 4e
                    313:        "PAD0",         // 4f
                    314: 
                    315:        "PAD,",         // 50
                    316:        "PAD.",         // 51
                    317:        "記号",               // 52
                    318:        "登録",               // 53
                    319:        "HELP",         // 54
                    320:        "XF1",          // 55
                    321:        "XF2",          // 56
                    322:        "XF3",          // 57
                    323:        "XF4",          // 58
                    324:        "XF5",          // 59
                    325:        "かな",               // 5a
                    326:        "ローマ字", // 5b
                    327:        "コード",    // 5c
                    328:        "CAPS",         // 5d
                    329:        "INS",          // 5e
                    330:        "ひらがな", // 5f
                    331: 
                    332:        "全角",               // 60
                    333:        "BREAK",        // 61
                    334:        "COPY",         // 62
                    335:        "F1",           // 63
                    336:        "F2",           // 64
                    337:        "F3",           // 65
                    338:        "F4",           // 66
                    339:        "F5",           // 67
                    340:        "F6",           // 68
                    341:        "F7",           // 69
                    342:        "F8",           // 6a
                    343:        "F9",           // 6b
                    344:        "F10",          // 6c
                    345:        "",                     // 6d
                    346:        "",                     // 6e
                    347:        "",                     // 6f
                    348: 
                    349:        "SHIFT",        // 70
                    350:        "CTRL",         // 71
                    351:        "OPT1",         // 72
                    352:        "OPT2",         // 73
                    353: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.