RainMoon 发表于 2005-8-11 00:00:00

[flash源码交流]RM笔划输入法V2

公布它,希望对其他机型的笔划输入法研究修改有用


$Segmented
$Mod167

;Address for Patch Data
Patch_Address    EQU 01F0810h ;Free Space in Flash (CHANGE THIS)
Patch2_Address    EQU 01F0830h ;Free Space in Flash (CHANGE THIS)

;--笔画输入法的图标---FOR 6688v55---RainMoon------------------------------;
Patch Section Code Word At Patch_address ; Start Patch at Patch_Address
    main1 proc far; start main of patch                                 
      cmp r12,#62h
      jmpr cc_Z,PressPlay
      cmp r12,#08h
      jmpr cc_Z,PressPlay
      jmps 0E3h,0AE2Eh
    pressPlay:
      jmps 0E3h,0AE4Ch       
    ;pressList:
    ;    jmps 0E3h,0AF9Ch                
    main1 endp
Patch   EndS

Patch2 Section Code Word At Patch2_address ; Start Patch at Patch_Address

    main proc far; start main of patch
;//Key有输入的情况
    cmp        r12, #0EBh
    jmpr cc_NZ,        loc_KEYNum
    jmps 0E3h, 0DCCCh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
loc_KEYNum:                       
    mov        r12,
    cmp        r12, #30h
    jmpr cc_NZ,        loc_NotKEY0
    mov        r12, #35h
    mov        , r12
    jmps 0E3h, 0DCCCh
loc_NotKEY0:
    cmp        r12, #37h
    jmpr cc_C,loc_BackOri
    cmp        r12, #39h
    jmpr cc_UGT,loc_BackOri
    sub        r12, #6          ;//KEY789
    mov        , r12
    jmps 0E3h, 0DCCCh
loc_BackOri:                               
    jmps 0E3h, 0E044h
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
    db 0ffh
    db 0ffh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
; KEY *
    ;cmp r3,#13h
    jmpr cc_Z, loc_KEY4
    jmps 0E3h, 0D720h   
loc_KEY4:
    mov        r12, #34h
    mov        , r12
    jmps 0E3h, 0DCCCh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
    db 0ffh
    db 0ffh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;KEY #
    ;cmp r3,#14h   
    jmpr cc_Z,loc_Key6      
    jmps 0E3h,0D728h ;//返回键盘处理
loc_KEY6:                       
    mov        r12, #36h
    mov        , r12
    jmps 0E3h, 0DCCCh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
    db 0ffh
    db 0ffh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
; 未输入下的 0 ,6 键
    ;cmp r14,#30h
    jmpr cc_Z,loc_Key0
    cmp        r14, #31h       
    jmpr cc_C,loc_KeyOri
    cmp        r14, #36h       
    jmpr cc_UGT,loc_KeyOri   
    jmpr cc_UC,loc_KEYSymbol
loc_KeyOri:
    jmps 0E3h, 0DC8Ah
loc_KEY0:             ;//未输入下的 0 键选字
    mov        r12, #35h
    mov        , r12
    jmps 0E3h, 0DCCCh
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓           
loc_KEYSymbol:   
    sub r14,#30h
    mov r4,#10h   
    mul r4,r14
    mov r14,MDL
    mov r4,#0910h
    add r4,r14
      
    extp r13,#2
    mov r15,
    mov r14,   
    extp r15,#1
    mov r1,
      
    cmp r1,#0EBh
    jmpr cc_Z,loc_STable      
    jmps 0E3h, 0DBE8h   
   
    ;//Build Symbol Table   
loc_STable:   
    mov r1, r4   ; Symbol Table 地址传递保护
    mov        r12, r8
    mov        r13, r9   
    calls 0DDh,        0FAA6h
    jb        r4.3, loc_A
   
    mov        r12, r8
    mov        r13, r9
    mov        r14, #8
    calls 0DDh,        0FA8Ch
   
    extp #2FCh,        #1
    mov        r8, r1
    mov        [-r0], r8
    mov        r12, #38h
    add        r12, r0
    and        r12, #3FFFh
    mov        r13, DPP1
    mov        r14, r1;//r1 KEY X symbol adr
    mov        r15, #2FCh
    jmps 0E3h, 0DB7Ah
loc_A:                               
    jmps 0E3h, 0DC0Ch
; 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓   
    db 0ffh   ; 结束符作为符号地址参考
    db 0ffh


      main endp
Patch2   EndS
END

ZiHwA 发表于 2005-8-11 00:01:00

收到!

Pinky 发表于 2005-8-11 00:02:00

收到~
这就下去学习一下的说~

KoncaCN 发表于 2005-8-11 00:03:00

收下!

不过最近没时间看,有机会要跟你细聊呢。
页: [1]
查看完整版本: [flash源码交流]RM笔划输入法V2