Annotation of nono/vm/keyboard.h, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2018 [email protected]
        !             4: //
        !             5: 
        !             6: #pragma once
        !             7: 
        !             8: #include "device.h"
        !             9: #include "scheduler.h"
        !            10: 
        !            11: class Keyboard : public Device
        !            12: {
        !            13:        typedef Device inherited;
        !            14:  protected:
        !            15:        Keyboard();
        !            16:  public:
        !            17:        virtual ~Keyboard();
        !            18: 
        !            19:        // キーを押した
        !            20:        virtual void MakeKey(uint) = 0;
        !            21:        // キーを離した
        !            22:        virtual void BreakKey(uint) = 0;
        !            23: 
        !            24:        // キー名を返す (主にデバッグ表示用)
        !            25:        static const std::string GetName(uint code);
        !            26: 
        !            27:  protected:
        !            28:        // キー入力イベント
        !            29:        Event event {};
        !            30: 
        !            31:  private:
        !            32:        static std::vector<const char *> keyname;
        !            33: };
        !            34: 
        !            35: extern Keyboard *gKeyboard;
        !            36: 
        !            37: // 抽象化キーボードレイヤーでのキーコード。
        !            38: // wxWidgets で受け取ったキーコードをこれに変換して VM に入力する。
        !            39: // VM のキーボードデバイスがこれを当該機種ごとのキーコードなり何なりに
        !            40: // 変換して入力する。
        !            41: 
        !            42: #define KC_none                        (0)
        !            43: 
        !            44: #define KC_BREAK               (0x01)  // [X68k] BREAK
        !            45: #define KC_COPY                        (0x02)  // [X68k] COPY
        !            46: #define KC_romaji              (0x03)  // [X68k] ローマ字
        !            47: #define KC_code                        (0x04)  // [X68k] コード入力
        !            48: #define KC_kigou               (0x05)  // [X68k] 記号入力
        !            49: #define KC_touroku             (0x06)  // [X68k] 登録
        !            50: #define KC_HELP                        (0x07)  // [X68k] HELP
        !            51: #define KC_HOME                        (0x08)  // [X68k] HOME
        !            52: #define KC_TAB                 (0x09)
        !            53: #define KC_CTRL                        (0x0a)
        !            54: #define KC_kana                        (0x0b)  // かな
        !            55: #define KC_SHIFT_L             (0x0c)  // SHIFT(左)
        !            56: #define KC_SHIFT_R             (0x0d)  // SHIFT(右)
        !            57: #define KC_SHIFT               KC_SHIRT_L              // 区別がない場合は L のほうを使う
        !            58: #define KC_CAPS                        (0x0e)
        !            59: #define KC_SF                  (0x0f)  // [LUNA] S.F
        !            60: 
        !            61: #define KC_ESC                 (0x10)
        !            62: #define KC_BS                  (0x11)  // BackSpace
        !            63: #define KC_enter               (0x12)  // Enter (Return)
        !            64: #define KC_INS                 (0x13)  // [X68k] INS
        !            65: #define KC_space               (0x14)
        !            66: #define KC_DEL                 (0x15)
        !            67: #define KC_XFER                        (0x16)  // [LUNA] XFER
        !            68: #define KC_VALID               (0x17)  // [LUNA] VALID
        !            69: #define KC_PF11                        (0x18)  // [LUNA] PF11
        !            70: #define KC_PF12                        (0x19)  // [LUNA] PF12
        !            71: #define KC_PF13                        (0x1a)  // [LUNA] PF13
        !            72: #define KC_PF14                        (0x1b)  // [LUNA] PF14
        !            73: #define KC_up                  (0x1c)  // cursor up
        !            74: #define KC_left                        (0x1d)  // cursor left
        !            75: #define KC_right               (0x1e)  // cursor right
        !            76: #define KC_down                        (0x1f)  // cursor down
        !            77: 
        !            78: #define KC_ROLLUP              (0x20)  // [X68k] ROLL UP
        !            79: #define KC_ROLLDOWN            (0x21)  // [X68k] ROLL DOWN
        !            80: #define KC_1                   (0x22)
        !            81: #define KC_2                   (0x23)
        !            82: #define KC_3                   (0x24)
        !            83: #define KC_4                   (0x25)
        !            84: #define KC_5                   (0x26)
        !            85: #define KC_6                   (0x27)
        !            86: #define KC_7                   (0x28)
        !            87: #define KC_8                   (0x29)
        !            88: #define KC_9                   (0x2a)
        !            89: #define KC_0                   (0x2b)
        !            90: #define KC_minus               (0x2c)
        !            91: #define KC_circum              (0x2d)  // ^~
        !            92: #define KC_backslash   (0x2e)  // \|
        !            93: #define KC_UNDO                        (0x2f)  // [X68k] UNDO
        !            94: 
        !            95: #define KC_OPT1                        (0x30)  // [X68k] OPT.1
        !            96: #define KC_OPT2                        (0x31)  // [X68k] OPT.2
        !            97: #define KC_Q                   (0x32)
        !            98: #define KC_W                   (0x33)
        !            99: #define KC_E                   (0x34)
        !           100: #define KC_R                   (0x35)
        !           101: #define KC_T                   (0x36)
        !           102: #define KC_Y                   (0x37)
        !           103: #define KC_U                   (0x38)
        !           104: #define KC_I                   (0x39)
        !           105: #define KC_O                   (0x3a)
        !           106: #define KC_P                   (0x3b)
        !           107: #define KC_at                  (0x3c)
        !           108: #define KC_bracketleft (0x3d)  // '['
        !           109: #define KC_hira                        (0x3e)  // [X68k] ひらがな
        !           110: #define KC_zenkaku             (0x3f)  // [X68k] 全角
        !           111: 
        !           112: #define KC_A                   (0x42)
        !           113: #define KC_S                   (0x43)
        !           114: #define KC_D                   (0x44)
        !           115: #define KC_F                   (0x45)
        !           116: #define KC_G                   (0x46)
        !           117: #define KC_H                   (0x47)
        !           118: #define KC_J                   (0x48)
        !           119: #define KC_K                   (0x49)
        !           120: #define KC_L                   (0x4a)
        !           121: #define KC_semicolon   (0x4b)
        !           122: #define KC_colon               (0x4c)
        !           123: #define KC_bracketright        (0x4d)  // ']'
        !           124: 
        !           125: #define KC_Z                   (0x52)
        !           126: #define KC_X                   (0x53)
        !           127: #define KC_C                   (0x54)
        !           128: #define KC_V                   (0x55)
        !           129: #define KC_B                   (0x56)
        !           130: #define KC_N                   (0x57)
        !           131: #define KC_M                   (0x58)
        !           132: #define KC_comma               (0x59)
        !           133: #define KC_period              (0x5a)
        !           134: #define KC_slash               (0x5b)
        !           135: #define KC_underscore  (0x5c)
        !           136: 
        !           137: #define KC_PAD_plus            (0x61)
        !           138: #define KC_PAD_minus   (0x62)
        !           139: #define KC_PAD_7               (0x63)
        !           140: #define KC_PAD_8               (0x64)
        !           141: #define KC_PAD_9               (0x65)
        !           142: #define KC_PAD_4               (0x66)
        !           143: #define KC_PAD_5               (0x67)
        !           144: #define KC_PAD_6               (0x68)
        !           145: #define KC_PAD_1               (0x69)
        !           146: #define KC_PAD_2               (0x6a)
        !           147: #define KC_PAD_3               (0x6b)
        !           148: #define KC_PAD_0               (0x6c)
        !           149: #define KC_PAD_decimal (0x6d)  // .
        !           150: #define KC_PAD_enter   (0x6e)
        !           151: #define KC_PAD_CLR             (0x6f)  // [X68k] CLR
        !           152: 
        !           153: #define KC_F1                  (0x72)
        !           154: #define KC_F2                  (0x73)
        !           155: #define KC_F3                  (0x74)
        !           156: #define KC_F4                  (0x75)
        !           157: #define KC_F5                  (0x76)
        !           158: #define KC_F6                  (0x77)
        !           159: #define KC_F7                  (0x78)
        !           160: #define KC_F8                  (0x79)
        !           161: #define KC_F9                  (0x7a)
        !           162: #define KC_F10                 (0x7b)
        !           163: #define KC_PAD_multiply        (0x7c)
        !           164: #define KC_PAD_divide  (0x7d)
        !           165: #define KC_PAD_equal   (0x7e)
        !           166: #define KC_PAD_comma   (0x7f)
        !           167: 
        !           168: #define KC_XF1                 (0x80)  // [X68k] XF1
        !           169: #define KC_XF2                 (0x81)  // [X68k] XF2
        !           170: #define KC_XF3                 (0x82)  // [X68k] XF3
        !           171: #define KC_XF4                 (0x83)  // [X68k] XF4
        !           172: #define KC_XF5                 (0x84)  // [X68k] XF5
        !           173: 
        !           174: #define KC_max                 (0x85)

unix.superglobalmegacorp.com

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