- 积分
- 67
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
发表于 2006-7-22 11:10:24
|
显示全部楼层
月下小熊的意思是:拼音快选的补丁很好用,但是有个缺点,就是5键对应的字,不能和其它字一样长按即选择,而是要先按1键,再按5键才能选中。
我原先也提过这个问题,不过估计大家都仅是移植补丁,对修改补丁还是力不从心吧。我也看过这个补丁CX6C版本的源码,原作者是Bennie。不过我啥都看不懂,哪位大侠可以出手改一下,看看能否让5键对应的字可以像选其它字一样长按即选定?附Bennie写的源码。
- ;***输入法修改V3.1***
- ;(c) Bennie
- ;for cx6CV50
- ;2005-06-24
- ;V3.1 ->修正9键上翻页的错误
- ;使用说明:
- ;等待输入状态: 1-进入选择
- ;输入拼音状态: 1-进入选择 5-选择第一个字 9-上 #-下 *-左 0-右
- ;选择拼音状态: 9-上 #-下 *-左 0-右
- ;;
- TYPE EQU 1
- IF (TYPE == 1)
- StartSelect EQU 0xA00A97F0+1 ;RightSoft And MidKey 29
- DirectSelet EQU 0xA00A9CCC+1 ;LongPress Digit
- DownArray EQU 0xA00A9A24+1 ;Down 25
- UpArray EQU 0xA00A99EC+1 ;Up 26
- RightArray EQU 0xA00A9940+1 ;Right 27
- LeftArray EQU 0xA00A98D6+1 ;Left 28
- XingPreHandle EQU 0xA0093DBA+1 ;PreHandle
- Key0Digit9 EQU 0xA00A9D44+1 ;KeyCode 0 for t9
- ENDIF
- AREA STARTUPCODE, CODE
- CODE16
- db "*IME_2 MOD V3.1*"
- ;============拼音输入法的按键处理==============
- IME_2_Handle:
- MOV R3, #2
- LDRSH R0, [R0,R3]
- CMP R0, #0x14
- BEQ XingKey
- CMP R0, #0x15
- BEQ JingKey
- CMP R0, #0x16
- BNE NoHandle
- ;***************************************
- DigitKey
- LDR R3, [SP,#0x88]
- CMP R7, #0
- BEQ DH_S0
- CMP R7, #1
- BEQ DH_S1
- CMP R7, #2
- BEQ DH_S2
- BNE NoHandle
- DH_S0:
- LDR R3, [SP,#0x88]
- CMP R3, #'1'
- BNE NoHandle
- LDR R3, = StartSelect
- BX R3
- DH_S1:
- CMP R3, #'1'
- BEQ Digit_1_S1
- CMP R3, #'5'
- BEQ Digit_5_S1
- DH_S2:
- CMP R3, #'0'
- BEQ Digit_0_S1
- CMP R3, #'9'
- BNE NoHandle
- Digit_9_S1:
- LDR R3, = UpArray
- BX R3
- Digit_0_S1:
- LDR R3, = RightArray
- BX R3
- Digit_1_S1:
- LDR R3, = StartSelect
- MOV PC, R3
- Digit_5_S1:
- MOV R7, #'1'
- LDR R3, = DirectSelet
- MOV PC, R3
- ;***************************************
- XingKey:
- CMP R7, #1
- BEQ XH_S1_2
- CMP R7, #2
- BNE NoHandle
- XH_S1_2:
- LDR R3, = LeftArray
- BX R3
- ;***************************************
- JingKey:
- CMP R7, #1
- BEQ JH_S1_2
- CMP R7, #2
- BNE NoHandle
- JH_S1_2:
- LDR R3, = DownArray
- BX R3
- NoHandle:
- BX LR
- ;============输入法的预处理部分==============
- PreHandle:
- LDR R0, [R6]
- LDRB R0, [R0,#8]
- CMP R0, #1
- BEQ exit
- CMP R0, #2
- BEQ exit
- ADD R3, SP, #0x20
- MOV R0, #0x10
- BX LR
- exit:
- LDR R0, =XingPreHandle
- BX R0
- ;============9键的处理部分==============
- Digit9Handle:
- D
- LDR R0, [SP,#0x88]
- SUB R0, #0x32
- CMP R0, #7
- BNE Digit9Exit
- CMP R7, #1
- BNE Digit9Exit
- LDR R3, =Key0Digit9
- BX R3
- Digit9Exit:
- BX LR
- //IME_2 Hook
- AREA STARTUPCODE1, CODE, AT 0xA00A9730 // READONLY, ALIGN=4
-
- CODE16
- BL IME_2_Handle
- //IME_Pre Hook
- AREA STARTUPCODE2, CODE, AT 0xA0093d20 // READONLY, ALIGN=4
-
- CODE16
- BL PreHandle
- AREA STARTUPCODE3, CODE, AT 0xA00A9D4E // READONLY, ALIGN=4
-
- CODE16
- BL Digit9Handle
-
- END
-
复制代码 |
|