# 2007 Hiroyuki Ogasawara # vim:ts=4 sw=4: # em1key script file # http://www.vector.co.jp/authors/VA004474/ # 「asciipatchwm」用定義ファイル # このファイルはバージョン更新時に上書きされる可能性があります。 # 書き換えて使っている場合は更新前に必ずバックアップを取っておくように # してください。 # 変更点(tk: で検索してください): # ・Ad[es] では外付けキーと内蔵キーを区別出来ないため、 # 使用するテーブル切替機能を追加した。 # [Shift] + [BS] で ASCII ←→ JIS キーマップを切り替える # ・CSW_DEL2TILDESWAP_ENABLE を定義すると、 #  [`~] キー は [ESC] として機能し、[Del] が [`~] になる # ・[Shift] + [Enter] → [OK] (RWIN+F6) # ・[Ctrl]+[←] → [左ソフトキー] (VK_F1) # ・[Ctrl]+[→] → [右ソフトキー] (VK_F2) # ・[Shift]+[Tab] → タスク切り替え # ・[Alt] で IMEのON/OFF # ・CTRLキーでCAPSが入るため、CSW_CTRLSWAP_ENABLE は #  ASCII キーマップ時のみ効くようにした。 # vim:ts=4 sw=4: #------------------------------------------------------------------------------ # system 用共通シンボル定義ヘッダ #------------------------------------------------------------------------------ # ここは書き換えないでください # system ヘッダ部分の最終更新日 2007/05/15 # script の詳しい説明はこちらです。 # http://flatlib.main.jp/dench/vec/more/em1keyscript.txt # opcode #define CODEEXIT 0 define EXIT 1 define RETURN 2 define JUMP 3 define JUMPALL 4 define LABEL 5 define CALL 6 define CALLVAR 7 define SETMODIFIER 8 define SENDKEY 9 define SENDVAR 10 define RAWDOWN 11 define RAWUP 12 define EXEC 13 define WINCMD 14 define ROTATE 15 define CLEARALLSTATE 16 define SAVETIME 17 define SETDIFFTIME 18 define SETGSTATE 19 define RESETGSTATE 20 define ALLOCVSTATE 21 define SETVSTATE 22 define RESETVSTATE 23 define SETSYSFLAG 24 define RESETSYSFLAG 25 define TESTSYSFLAG 26 define TESTGSTATE 27 define TESTVSTATE 28 define DOWNVAR 29 define UPVAR 30 # define SETVAR0 32 define SETVAR1 33 define SETVAR2 34 define SETVAR3 35 define LOADVAR 36 define STOREVAR 37 define LOAD 38 #define STRINGDATA 39 #define STRINGID 40 define MESSAGE 41 define SETTABLE 42 define LOADIVAR 43 define STOREIVAR 44 define PUSHVAR 45 define POPVAR 46 define PUSHIMM 47 define IF_DOWN 48 define IF_UP 49 define IF_DIFFTIME 50 define IF_TRUE 51 define IF_FALSE 52 define IF_VSTATE0 53 define IF_VSTATE1 54 define IF_VSTATE2 55 define IF_VSTATE3 56 define IF_CTRL 57 define IF_SHIFT 58 define IF_RWIN 59 define IF_GSTATE3 60 define CMP_EQ 61 define CMP_LT 62 define CMP_GT 63 define ADDVAR 64 define SUBVAR 65 define ANDVAR 66 define ORVAR 67 define XORVAR 68 define ADD 69 define SUB 70 define AND 71 define OR 72 define XOR 73 define MULVAR 74 define DIVVAR 75 define MODVAR 76 define SLVAR 77 define SRVAR 78 define CMPVAR_EQ 79 define CMPVAR_LT 80 define CMPVAR_GT 81 define CALLVARDEF 82 define CALLVAREXT 83 define SETHELP 84 # constant define TRUE 1 define FALSE 0 # GSTATE define STATE_CTRL 0 define STATE_SHIFT 1 define STATE_RWIN 2 # VSTATE define VSTATE_0 0 define VSTATE_1 1 define VSTATE_2 2 # GVAR define GVAR_SAVETIME 33 define GVAR_DIFFTIME 34 define GVAR_MODIFIER 35 define GVAR_KEYCODE 37 define GVAR_EVENTTIME 38 define GVAR_TABLE 40 # Modifier define MOD_CTRL 0x01 define MOD_SHIFT 0x02 define MOD_RWIN 0x10 define MOD_KANA 0x20 define MOD_KANASHIFT 0x22 # Function Table define TABLE_FUNC 1 define TABLE_DEFAULT 2 define TABLE_EXT 4 define TABLE_KANA 4 define TABLE_ALLMODE 6 define TABLEID_FUNC 0 define TABLEID_DEFAULT 1 define TABLEID_EXT 2 # SystemFlag define SYSFLAG_CTRLSWAP 0 define SYSFLAG_ESCSWAP 1 define SYSFLAG_IMESW 2 define SYSFLAG_SCANTEST 3 define SYSFLAG_NAVIMODE 4 define SYSFLAG_IME 16 define SYSFLAG_SCANVALID 17 define SYSFLAG_SCANANY 18 # WINCMD define WINCMD_CLOSE 0x41 define WINCMD_ALTTAB 0x42 define WINCMD_IMESW 0x43 define WINCMD_GETIMEMODE 0x44 # KeyCode define VK_BACK 0x08 # [BS] define VK_TAB 0x09 # [TAB] define VK_CLEAR 0x0c define VK_RETURN 0x0d # [Enter] define VK_SHIFT 0x10 # [Shift] define VK_CONTROL 0x11 # [Ctrl] define VK_MENU 0x12 # [ALT](CE) define VK_PAUSE 0x13 define VK_CAPITAL 0x14 define VK_KANA 0x15 define VK_KANJI 0x19 # [Kanji] define VK_ESCAPE 0x1b # [ESC] define VK_CONVERT 0x1c # [変換] define VK_NCONVERT 0x1d # [無変換] define VK_SPACE 0x20 # [Space] define VK_PRIOR 0x21 # [PageUp] define VK_NEXT 0x22 # [PageDown] define VK_END 0x23 # [End] define VK_HOME 0x24 # [Home] define VK_LEFT 0x25 # [←] define VK_UP 0x26 # [↑] define VK_RIGHT 0x27 # [→] define VK_DOWN 0x28 # [↓] define VK_SELECT 0x29 define VK_PRINT 0x2a define VK_EXECUTE 0x2b define VK_SNAPSHOT 0x2c # [PrintScreen] define VK_INSERT 0x2d define VK_DELETE 0x2e # [Del] define VK_HELP 0x2f # '0'〜'9' 'A'〜'Z' はそのまま記述します define VK_LWIN 0x5b # [Win] define VK_RWIN 0x5c # RWIN define VK_F1 0x70 # 左SoftKey define VK_F2 0x71 # 右SoftKey define VK_F3 0x72 define VK_F4 0x73 define VK_F5 0x74 define VK_F6 0x75 # RWIN+F6 = [OK] define VK_F7 0x76 # RWIN+F7 = [Moji] define VK_F8 0x77 define VK_F9 0x78 define VK_F10 0x79 define VK_F11 0x7a define VK_F12 0x7b define VK_F13 0x7c define VK_F14 0x7d define VK_F15 0x7e define VK_F16 0x7f define VK_F17 0x80 define VK_F18 0x81 define VK_F19 0x82 define VK_F20 0x83 define VK_F21 0x84 define VK_F22 0x85 define VK_F23 0x86 define VK_F24 0x87 define VK_NUMLOCK 0x90 define VK_SCROLL 0x91 # [ScrollLock] define VK_LSHIFT 0xa0 # pc only define VK_RSHIFT 0xa1 # pc only define VK_LCONTROL 0xa2 # pc only define VK_RCONTROL 0xa3 # pc only define VK_LMENU 0xa4 # [ALT] define VK_RMENU 0xa5 ifce define VK_SEMICOLON 0xba # CE keyb [;+] define VK_EQUAL 0xbb # CE keyb [^~] define VK_APOSTROPHE 0xde # CE keyb [:*] endif ifpc define VK_OEM_1 0xba # PC [:*] define VK_OEM_PLUS 0xbb # PC [;+] define VK_OEM_MINUS 0xbd # PC [-=] define VK_OEM_7 0xde # PC [^~] define VK_SEMICOLON 0xbb # PC [;+] (CE互換用) define VK_EQUAL 0xde # PC [^~] (CE互換用) define VK_APOSTROPHE 0xba # PC [:*] (CE互換用) endif define VK_HYPHEN 0xbd # [-=] define VK_COMMA 0xbc # [,;] define VK_PERIOD 0xbe # [.:] define VK_SLASH 0xbf # [/?] define VK_BACKQUOTE 0xc0 # [@`] define VK_APP1 0xc1 define VK_APP2 0xc2 define VK_APP3 0xc3 define VK_APP4 0xc4 define VK_APP5 0xc5 define VK_APP6 0xc6 define VK_LBRACKET 0xdb # [[{] define VK_BACKSLASH 0xdc # [\|] define VK_RBRACKET 0xdd # []}] (us:\|) define VK_APOSTROPHE 0xde # define VK_OFF 0xdf # define VK_OEM_102 0xe2 # [ _] define VK_DBE_ALPHANUMERIC 0xf0 # [英数/Caps] define VK_DBE_KATAKANA 0xf1 # define VK_DBE_HIRAGANA 0xf2 # [かな] define VK_DBE_SBCSCHAR 0xf3 # [半] define VK_DBE_DBCSCHAR 0xf4 # [全] define VK_DBE_ROMAN 0xf5 # define VK_DBE_NOROMAN 0xf6 # #------------------------------------------------------------------------------ # system 用シンボル定義ヘッダここまで #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # ここからスクリプトのプログラム開始 #------------------------------------------------------------------------------ # vim:ts=4 sw=4: #----------------------------------------------------------------------------- # asciipatchwm v1.00 2007/05/19 # http://hp.vector.co.jp/authors/VA004474/wince/soft4.html#asciipatchwm #----------------------------------------------------------------------------- #------------------------------------------------ # Jis mapping #------------------------------------------------ # HZ 1 2 3 4 5 6 7 8 9 0 - ^ \ BS # q w e r t y u i o p @ [ # a s d f g h j k l ; : ] # z x c v b n m , . / #------------------------------------------------ # HZ ! " # % & ' ( ) = ~ | BS # Q W E R T Y U I O P ` { # A S D F G H J K L + * } # Z X C V B N M < > ? _ #------------------------------------------------ #------------------------------------------------ # ASCII mapping #------------------------------------------------ # ` 1 2 3 4 5 6 7 8 9 0 - = \ BS # q w e r t y u i o p [ ] # a s d f g h j k l ; ' Ent # z x c v b n m , . / SFT #------------------------------------------------ # ~ ! @ # % ^ & * ( ) _ + | BS # Q W E R T Y U I O P { } # A S D F G H J K L : " Ent # Z X C V B N M < > ? SFT #------------------------------------------------ #------------------------------------------------------------------------------ # customize #------------------------------------------------------------------------------ # JIS Keyboard 接続時に TRUE にすると []}] を Enter としてみなします。 # ASCII(英語) Keyboard では FALSE にしてください。 define CSW_JIS_KEYBOARD FALSE # TRUE にすると [Ctrl]/[CapsLock] を交換します。 # tk: キー定義が _TABLE_ASCII (=TABLE_EXT) の時のみ効くようにしました。 define CSW_CTRLSWAP_ENABLE TRUE # ScanCode の差でキーボードが誤動作する場合は TRUE にしてみてください。 define CSW_SCANTESTDISABLE FALSE # tk: キーボード上の [`~] キーを [H/Z] 動作から [`~] 動作へと # 変更するのをやめ、[Del] キーを [`~] 動作に割り当てる。 define CSW_DEL2TILDESWAP_ENABLE TRUE #------------------------------------------------------------------------------ # functions #------------------------------------------------------------------------------ # tk: define _TABLE_ASCII TABLE_DEFAULT define _TABLE_ASCII TABLE_EXT define _GV_DFFUNC 10 define _GV_SHFUNC 11 define _GV_KEY0 12 define _GV_KEY1 13 define _fAscii 0x20 define _fKey 0x21 define _fa_ORG 0x30 define _fa_SHORG 0x31 define _fa_KEY0 0x32 define _fa_SHKEY0 0x33 define _fa_KEY1 0x34 define _fa_SHKEY1 0x35 func TABLE_FUNC _fa_ORG IF_UP 10 DOWNVAR GVAR_KEYCODE RETURN 0 LABEL 10 UPVAR GVAR_KEYCODE RETURN 0 endfunc func TABLE_FUNC _fa_SHORG IF_UP 10 RAWDOWN VK_SHIFT DOWNVAR GVAR_KEYCODE RETURN 0 LABEL 10 UPVAR GVAR_KEYCODE RAWUP VK_SHIFT RETURN 0 endfunc func TABLE_FUNC _fa_KEY0 IF_UP 10 DOWNVAR _GV_KEY0 RETURN 0 LABEL 10 UPVAR _GV_KEY0 RETURN 0 endfunc func TABLE_FUNC _fa_SHKEY0 IF_UP 10 RAWDOWN VK_SHIFT DOWNVAR _GV_KEY0 RETURN 0 LABEL 10 UPVAR _GV_KEY0 RAWUP VK_SHIFT RETURN 0 endfunc func TABLE_FUNC _fa_KEY1 IF_UP 10 DOWNVAR _GV_KEY1 RETURN 0 LABEL 10 UPVAR _GV_KEY1 RETURN 0 endfunc func TABLE_FUNC _fa_SHKEY1 IF_UP 10 RAWDOWN VK_SHIFT DOWNVAR _GV_KEY1 RETURN 0 LABEL 10 UPVAR _GV_KEY1 RAWUP VK_SHIFT RETURN 0 endfunc func TABLE_FUNC _fKey POPVAR _GV_KEY0 IF_UP 10 DOWNVAR _GV_KEY0 EXIT TRUE LABEL 10 UPVAR _GV_KEY0 EXIT TRUE endfunc func TABLE_FUNC _fAscii POPVAR _GV_KEY1 POPVAR _GV_KEY0 POPVAR _GV_SHFUNC POPVAR _GV_DFFUNC IF_SHIFT 20 CALLVAR _GV_DFFUNC EXIT TRUE LABEL 20 IF_UP 30 RAWUP VK_SHIFT CALLVAR _GV_SHFUNC EXIT TRUE LABEL 30 CALLVAR _GV_SHFUNC RAWDOWN VK_SHIFT EXIT TRUE endfunc #------------------------------------------------------------------------------ # interrupt #------------------------------------------------------------------------------ # Initialize func TABLE_FUNC 0 CLEARALLSTATE WINCMD WINCMD_GETIMEMODE SETSYSFLAG SYSFLAG_SCANTEST SETTABLE TABLEID_DEFAULT string 0 "asciipatchwm v1.00 「ASCII Keyboard patch」" SETHELP 0 string 0 " 外部キーボードを ASCII(英語版)配列にします。" SETHELP 1 string 0 " 下記2つの用途に使えます。詳細はマニュアルを" SETHELP 2 string 0 "◎ASCII Keyboardを繋いで刻印通りの文字入力" SETHELP 3 string 0 "◎日本語キーボードを ASCII 配列で使う" SETHELP 4 string 0 " http://www.vector.co.jp/authors/VA004474/" SETHELP 5 endfunc ifsw CSW_SCANTESTDISABLE func TABLE_FUNC 1 RESETSYSFLAG SYSFLAG_SCANVALID SETSYSFLAG SYSFLAG_SCANANY EXIT FALSE endfunc endif #------------------------------------------------------------------------------ # special keys #------------------------------------------------------------------------------ #tk: TABLE_DEFAULT と TABLE_EXT に分割 func _TABLE_ASCII VK_CONTROL ifsw CSW_CTRLSWAP_ENABLE TESTSYSFLAG SYSFLAG_SCANVALID IF_TRUE 20 #PUSHIMM VK_DBE_ALPHANUMERIC PUSHIMM VK_CAPITAL CALL _fKey LABEL 20 endif IF_UP 10 SETGSTATE STATE_CTRL EXIT FALSE LABEL 10 RESETGSTATE STATE_CTRL EXIT FALSE endfunc func TABLE_DEFAULT VK_CONTROL IF_UP 10 SETGSTATE STATE_CTRL EXIT FALSE LABEL 10 RESETGSTATE STATE_CTRL EXIT FALSE endfunc ifsw CSW_CTRLSWAP_ENABLE #tk: func TABLE_ALLMODE VK_DBE_ALPHANUMERIC func _TABLE_ASCII VK_DBE_ALPHANUMERIC IF_UP 10 SETGSTATE STATE_CTRL RAWDOWN VK_CONTROL EXIT TRUE LABEL 10 RESETGSTATE STATE_CTRL RAWUP VK_CONTROL EXIT TRUE endfunc #tk: func TABLE_ALLMODE VK_CAPITAL func _TABLE_ASCII VK_CAPITAL IF_UP 10 SETGSTATE STATE_CTRL RAWDOWN VK_CONTROL EXIT TRUE LABEL 10 RESETGSTATE STATE_CTRL RAWUP VK_CONTROL EXIT TRUE endfunc endif func TABLE_ALLMODE VK_SHIFT IF_UP 10 SETGSTATE STATE_SHIFT EXIT FALSE LABEL 10 RESETGSTATE STATE_SHIFT EXIT FALSE endfunc # PC only ifpc # L [Ctrl] func TABLE_ALLMODE VK_LCONTROL SETVAR0 VK_CONTROL CALLVARDEF 0 endfunc # R [Ctrl] func TABLE_ALLMODE VK_RCONTROL SETVAR0 VK_CONTROL CALLVARDEF 0 endfunc # L [Shift] func TABLE_ALLMODE VK_LSHIFT SETVAR0 VK_SHIFT CALLVARDEF 0 endfunc # R [Shift] func TABLE_ALLMODE VK_RSHIFT SETVAR0 VK_SHIFT CALLVARDEF 0 endfunc endif #------------------------------------------------------------------------------ # key mapping table #------------------------------------------------------------------------------ # 機能割り当ては PUSHIMM で4つのパラメータを設定し、CALL _fAscii します。 # PUSHIMM <そのまま押した場合の機能> # PUSHIMM <シフトと押した場合の機能> # PUSHIMM # PUSHIMM # CALL _fAscii # # 機能 # _fa_ORG 元のキーコードを渡す。変更しない。 # _fa_SHORG 元のキーコードをSHIFTを押した状態で渡す。 # _fa_KEY0 KEY0で指定したキーコードを使う。 # _fa_SHKEY0 KEY0で指定したキーコードをSHIFTを押した状態で使う。 # _fa_KEY1 KEY1で指定したキーコードを使う。 # _fa_SHKEY1 KEY1で指定したキーコードをSHIFTを押した状態で使う。 # tk:start ----------------------------------------------- # [Shift] + [Enter] → [OK] (RWIN+F6) # [OK] コードだけを送ると、何故か動作しない。 func TABLE_ALLMODE VK_RETURN IF_SHIFT 20 EXIT FALSE LABEL 20 IF_UP 30 SENDKEY VK_SHIFT RAWDOWN VK_RWIN SENDKEY VK_SHIFT RAWDOWN VK_F6 SENDKEY VK_SHIFT JUMP 40 LABEL 30 RAWUP VK_F6 RAWUP VK_RWIN LABEL 40 EXIT TRUE endfunc # [Shift] + [BS] で ASCII ←→ JIS キーマップを切り替える func _TABLE_ASCII VK_BACK IF_SHIFT 20 EXIT FALSE LABEL 20 IF_DOWN 30 SETTABLE TABLEID_DEFAULT LABEL 30 EXIT TRUE endfunc func TABLE_DEFAULT VK_BACK IF_SHIFT 20 EXIT FALSE LABEL 20 IF_DOWN 30 SETTABLE TABLEID_EXT LABEL 30 EXIT TRUE endfunc # [Ctrl]+[←] → [左ソフトキー] (VK_F1) # [Ctrl]+[→] → [右ソフトキー] (VK_F2) func TABLE_ALLMODE VK_LEFT IF_CTRL 20 EXIT FALSE LABEL 20 IF_UP 30 SENDKEY VK_CONTROL RAWDOWN VK_F1 JUMP 40 LABEL 30 RAWUP VK_F1 LABEL 40 EXIT TRUE endfunc func TABLE_ALLMODE VK_RIGHT IF_CTRL 20 EXIT FALSE LABEL 20 IF_UP 30 SENDKEY VK_CONTROL RAWDOWN VK_F2 JUMP 40 LABEL 30 RAWUP VK_F2 LABEL 40 EXIT TRUE endfunc # [Shift] + [Tab] → タスク切り替え func TABLE_ALLMODE VK_TAB IF_SHIFT 20 EXIT FALSE LABEL 20 IF_DOWN 30 WINCMD WINCMD_ALTTAB LABEL 30 EXIT TRUE endfunc ifsw CSW_DEL2TILDESWAP_ENABLE # [Del] → [`~] func _TABLE_ASCII VK_DELETE PUSHIMM _fa_SHKEY0 PUSHIMM _fa_SHKEY1 PUSHIMM VK_BACKQUOTE PUSHIMM VK_EQUAL CALL _fAscii endfunc # [H/Z] → [ESC] func _TABLE_ASCII VK_DBE_SBCSCHAR IF_UP 20 RAWDOWN VK_ESCAPE JUMP 30 LABEL 20 RAWUP VK_ESCAPE LABEL 30 EXIT TRUE endfunc func _TABLE_ASCII VK_DBE_DBCSCHAR IF_UP 20 RAWDOWN VK_ESCAPE JUMP 30 LABEL 20 RAWUP VK_ESCAPE LABEL 30 EXIT TRUE endfunc endif # [Alt] → [H/Z](WINCMD_IMESW) func TABLE_ALLMODE VK_MENU IF_UP 40 SENDKEY VK_MENU WINCMD WINCMD_IMESW # IME の On/Off EXIT TRUE LABEL 40 EXIT TRUE endfunc # tk:end ------------------------------------------------ # [;+] -> [;:] func _TABLE_ASCII VK_SEMICOLON # [;+] PUSHIMM _fa_ORG PUSHIMM _fa_KEY0 PUSHIMM VK_APOSTROPHE # : PUSHIMM 0 CALL _fAscii endfunc # [:*] -> ['"] func _TABLE_ASCII VK_APOSTROPHE # [:*] PUSHIMM _fa_SHKEY0 PUSHIMM _fa_SHKEY1 PUSHIMM '7' PUSHIMM '2' CALL _fAscii endfunc # [@`] -> [[{] func _TABLE_ASCII VK_BACKQUOTE # [@`] PUSHIMM _fa_KEY0 PUSHIMM _fa_SHKEY0 PUSHIMM VK_LBRACKET PUSHIMM 0 CALL _fAscii endfunc # [[{] -> []}] func _TABLE_ASCII VK_LBRACKET PUSHIMM _fa_KEY0 PUSHIMM _fa_SHKEY0 PUSHIMM VK_RBRACKET PUSHIMM 0 CALL _fAscii endfunc # [-=] -> [-_] func _TABLE_ASCII VK_HYPHEN # [-=] PUSHIMM _fa_ORG PUSHIMM _fa_SHKEY0 PUSHIMM VK_OEM_102 PUSHIMM 0 CALL _fAscii endfunc # [^~] -> [=+] func _TABLE_ASCII VK_EQUAL # [^~] PUSHIMM _fa_SHKEY0 PUSHIMM _fa_SHKEY1 PUSHIMM VK_HYPHEN PUSHIMM VK_SEMICOLON CALL _fAscii endfunc # tk:start ifnsw CSW_DEL2TILDESWAP_ENABLE # [H/Z] -> [`~] func _TABLE_ASCII VK_DBE_SBCSCHAR PUSHIMM _fa_SHKEY0 PUSHIMM _fa_SHKEY1 PUSHIMM VK_BACKQUOTE PUSHIMM VK_EQUAL CALL _fAscii endfunc func _TABLE_ASCII VK_DBE_DBCSCHAR PUSHIMM _fa_SHKEY0 PUSHIMM _fa_SHKEY1 PUSHIMM VK_BACKQUOTE PUSHIMM VK_EQUAL CALL _fAscii endfunc endif # tk:end # [2"] -> [2@] func _TABLE_ASCII '2' PUSHIMM _fa_ORG PUSHIMM _fa_KEY0 PUSHIMM VK_BACKQUOTE PUSHIMM 0 CALL _fAscii endfunc # [6&] -> [6^] func _TABLE_ASCII '6' PUSHIMM _fa_ORG PUSHIMM _fa_KEY0 PUSHIMM VK_EQUAL PUSHIMM 0 CALL _fAscii endfunc # [7'] -> [7&] func _TABLE_ASCII '7' PUSHIMM _fa_ORG PUSHIMM _fa_SHKEY0 PUSHIMM '6' PUSHIMM 0 CALL _fAscii endfunc # [8(] -> [8*] func _TABLE_ASCII '8' PUSHIMM _fa_ORG PUSHIMM _fa_SHKEY0 PUSHIMM VK_APOSTROPHE PUSHIMM 0 CALL _fAscii endfunc # [9)] -> [9(] func _TABLE_ASCII '9' PUSHIMM _fa_ORG PUSHIMM _fa_SHKEY0 PUSHIMM '8' PUSHIMM 0 CALL _fAscii endfunc # [0 ] -> [0)] func _TABLE_ASCII '0' PUSHIMM _fa_ORG PUSHIMM _fa_SHKEY0 PUSHIMM '9' PUSHIMM 0 CALL _fAscii endfunc # JIS Keyboard ifsw CSW_JIS_KEYBOARD # []}] -> [Enter] func _TABLE_ASCII VK_RBRACKET PUSHIMM VK_RETURN CALL _fKey endfunc endif # ASCII Keyboard ifnsw CSW_JIS_KEYBOARD # [[{] -> [\|] func _TABLE_ASCII VK_RBRACKET PUSHIMM _fa_KEY0 PUSHIMM _fa_SHKEY0 PUSHIMM VK_BACKSLASH PUSHIMM 0 CALL _fAscii endfunc endif # [ _] -> [Shift] func _TABLE_ASCII VK_OEM_102 IF_UP 10 SETGSTATE STATE_SHIFT RAWDOWN VK_SHIFT EXIT TRUE LABEL 10 RESETGSTATE STATE_SHIFT RAWUP VK_SHIFT EXIT TRUE endfunc #------------------------------------------------------------------------------ # #------------------------------------------------------------------------------