Annotation of nono/vm/x68kkbd.cpp, revision 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.