📄 ap_message.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 12/Apr/106 09:56:14 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d35f\ap\common\ap_message.c #
# List file = d:\case_i_d35f\ap\ap_main\list\ap_message.lst #
# Object file = d:\case_i_d35f\ap\ap_main\release\obj\ap_message.r01#
# Command line = -v0 -mb -OD:\case_i_d35f\ap\ap_main\release\Obj\ #
# -e -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d35f\ap\ap_main\List\ -q -t8 -X #
# -Id:\sdk_i_35f\inc\ -Id:\case_i_d35f\inc\ #
# d:\case_i_d35f\AP\COMMON\ap_message.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ap_message(17)
\ 0000 RSEG RCODE(0)
\ 0000 EXTERN GetSysMsg
\ 0000 PUBLIC ap_get_message
\ 0000 EXTERN ap_get_message_core
\ 0000 PUBLIC ap_handle_hotkey
\ 0000 EXTERN ap_handle_hotkey_core
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 RSEG RCODE
\ 0000 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 {
\ 0000 D5 PUSH DE
\ 0001 F5 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();
\ 0002 CD0000 CALL LWRD GetSysMsg
\ 0005 210000 LD HL,0
\ 0008 39 ADD HL,SP
\ 0009 77 LD (HL),A
49 if(key == Msg_KeyNull) return AP_KEY_NULL;
\ 000A AF XOR A
\ 000B B6 OR (HL)
\ 000C 280A JR Z,?0004
\ 000E ?0002:
\ 000E ?0003:
50 else return ap_get_message_core(key);
\ 000E 5F LD E,A
\ 000F 3E00 LD A,BYTE3 ap_get_message_core
\ 0011 210000 LD HL,LWRD ap_get_message_core
\ 0014 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0017 7D LD A,L
51
52 }
\ 0018 ?0004:
\ 0018 E1 POP HL
\ 0019 D1 POP DE
\ 001A C9 RET
\ 001B 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;
\ 001B 1C INC E
\ 001C 1D DEC E
\ 001D 2002 JR NZ,?0006
\ 001F ?0005:
\ 001F AF XOR A
\ 0020 C9 RET
\ 0021 ?0006:
71 else return ap_handle_hotkey_core(key);
\ 0021 3E00 LD A,BYTE3 ap_handle_hotkey_core
\ 0023 210000 LD HL,LWRD ap_handle_hotkey_core
\ 0026 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0029 7D LD A,L
72 }
\ 002A ?0007:
\ 002A C9 RET
73
\ 002B END
Errors: none
Warnings: none
Code size: 43
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -