📄 ap_message.s01
字号:
NAME ap_message(17)
RSEG RCODE(0)
EXTERN GetSysMsg
PUBLIC ap_get_message
EXTERN ap_get_message_core
PUBLIC ap_handle_hotkey
EXTERN ap_handle_hotkey_core
EXTERN ?CLZ80B_4_04_L00
EXTERN ?BANK_CALL_DIRECT_L08
RSEG RCODE
ap_get_message:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * ap common lib message file, realtime part
; 5. *
; 6. * (c) Copyright, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. *******************************************************************************
; 10. */
; 11. //#pragma codeseg(COM_MSG)
; 12.
; 13. #include "ap_common.h"
; 14.
; 15. char ap_get_message_core(char key);
; 16. char ap_handle_hotkey_core(char key);
; 17.
; 18. /*
; 19. ********************************************************************************
; 20. * Description : 处理系统消息, 返回按键消息, 同时负责开/关背光
; 21. ap_get_message_core() 的入口
; 22. *
; 23. * Arguments :
; 24. *
; 25. * Returns : 返回ap能够识别的消息, 如果没有系统消息, 返回 AP_KEY_NULL
; 26. *
; 27. * Notes :
; 28. ********************************************************************************
; 29. */
; 30. non_banked char ap_get_message(void)
; 31. {
PUSH DE
PUSH AF
; 32. char key;
; 33.
; 34. /*
; 35. //检查ap消息队列
; 36. key = g_ap_message[g_ap_message_index];
; 37. if(key != 0)
; 38. {
; 39. g_ap_message_index++;
; 40.
; 41. //check if exeeds tail
; 42. if( g_ap_message_index >= sizeof(g_ap_message)) g_ap_message_index = 0;
; 43.
; 44. return key;
; 45. }
; 46. */
; 47. //获取按键,没有即返回
; 48. key = GetSysMsg();
CALL LWRD GetSysMsg
LD HL,0
ADD HL,SP
LD (HL),A
; 49. if(key == Msg_KeyNull) return AP_KEY_NULL;
XOR A
OR (HL)
JR Z,?0004
?0002:
?0003:
; 50. else return ap_get_message_core(key);
LD E,A
LD A,BYTE3 ap_get_message_core
LD HL,LWRD ap_get_message_core
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,L
; 51.
; 52. }
?0004:
POP HL
POP DE
RET
ap_handle_hotkey:
; 53.
; 54. /*
; 55. ********************************************************************************
; 56. * Description : 处理热键消息, 返回结果消息
; 57. ap_handle_hotkey_core() 的入口
; 58. *
; 59. * Arguments : key, 按键消息
; 60. *
; 61. * Returns : 如果有可识别的热键消息, 返回结果消息
; 62. 如果没有可识别的热键消息, 返回0
; 63. *
; 64. * Notes :
; 65. *
; 66. ********************************************************************************
; 67. */
; 68. non_banked char ap_handle_hotkey(char key)
; 69. {
; 70. if(key == AP_KEY_NULL) return 0;
INC E
DEC E
JR NZ,?0006
?0005:
XOR A
RET
?0006:
; 71. else return ap_handle_hotkey_core(key);
LD A,BYTE3 ap_handle_hotkey_core
LD HL,LWRD ap_handle_hotkey_core
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,L
; 72. }
?0007:
RET
; 73.
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -