📄 ui_menu.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:58:57 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_menu.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\ui_menu.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\ui_menu.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\ui_menu.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_amv\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d90f\ap\ap_amv\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_amv\List\ #
# -ND:\case_i_d90f\ap\ap_amv\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# D:\CASE_I_D90F\AP\COMMON\ui_menu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_menu(17)
\ 0000 RSEG COM_CTRL(0)
\ 0000 RSEG CONST(0)
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 PUBLIC menu_bck_pic
\ 0000 PUBLIC menu_pos_menu
\ 0000 PUBLIC show_active_menu
\ 0000 EXTERN ui_auto_select
\ 0000 PUBLIC ui_menu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG COM_CTRL
\ 0000 show_active_menu:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_menu.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
10 *******************************************************************************
11 */
12 #pragma codeseg(COM_CTRL)
13
14 #include "ap_common.h"
15 #define MENU_NUM_ONE_PAGE 6
16
17 extern comval_t g_comval;
18 const char menu_pos_menu[MENU_NUM_ONE_PAGE] = { POSITION_MENU6,POSITION_MENU5,
19 POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1};
20 const WORD menu_bck_pic[MENU_NUM_ONE_PAGE]={ MENUBCK6,MENUBCK5,MENUBCK4,MENUBCK3,MENUBCK2,MENUBCK1 };
21 /*
22 ********************************************************************************
23 * Description : 转换索引成字符串
24 *
25 * Arguments :
26 * grade, 索引字符串
27 * str, 转换后的字符串
28
29 * Returns :
30 * 字符串的个数
31 * Notes :
32 *
33 ********************************************************************************
34 */
35 void show_active_menu(function_menu_t *menu,int old_active, int active)
36 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 DD210000 LD IX,0
\ 0008 DD39 ADD IX,SP
\ 000A C5 PUSH BC
\ 000B F5 PUSH AF
\ 000C D5 PUSH DE
\ 000D FDE1 POP IY
37
38 int tmp;
39
40 //清除旧的活动菜单项
41 tmp = old_active%MENU_NUM_ONE_PAGE;
\ 000F 010600 LD BC,6
\ 0012 DD5EFE LD E,(IX-2)
\ 0015 DD56FF LD D,(IX-1)
\ 0018 CD0000 CALL LWRD ?SS_MOD_L02
42
43 ResShowPic(menu_bck_pic[tmp], menu_bck_x_def, menu_pos_menu[tmp]-4);
\ 001B 210000 LD HL,menu_pos_menu
\ 001E 19 ADD HL,DE
\ 001F 7E LD A,(HL)
\ 0020 C6FC ADD A,252
\ 0022 4F LD C,A
\ 0023 C5 PUSH BC
\ 0024 0E09 LD C,9
\ 0026 EB EX DE,HL
\ 0027 29 ADD HL,HL
\ 0028 110600 LD DE,menu_bck_pic
\ 002B 19 ADD HL,DE
\ 002C 5E LD E,(HL)
\ 002D 23 INC HL
\ 002E 56 LD D,(HL)
\ 002F CD2801 CALL LWRD ?0063
\ 0032 F1 POP AF
44
45 //显示新的活动菜单
46 tmp = active%MENU_NUM_ONE_PAGE;
\ 0033 010600 LD BC,6
\ 0036 DD5E08 LD E,(IX+8)
\ 0039 DD5609 LD D,(IX+9)
\ 003C CD0000 CALL LWRD ?SS_MOD_L02
\ 003F DD73FC LD (IX-4),E
\ 0042 DD72FD LD (IX-3),D
47 ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_menu[tmp]-4);
\ 0045 210000 LD HL,menu_pos_menu
\ 0048 19 ADD HL,DE
\ 0049 7E LD A,(HL)
\ 004A C6FC ADD A,252
\ 004C 4F LD C,A
\ 004D C5 PUSH BC
\ 004E CD2301 CALL LWRD ?0064
\ 0051 F1 POP AF
48 ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_menu[tmp]);
\ 0052 210000 LD HL,menu_pos_menu
\ 0055 DD4EFC LD C,(IX-4)
\ 0058 DD46FD LD B,(IX-3)
\ 005B 09 ADD HL,BC
\ 005C 5E LD E,(HL)
\ 005D D5 PUSH DE
\ 005E 0E0A LD C,10
\ 0060 116C00 LD DE,108
\ 0063 CD2801 CALL LWRD ?0063
\ 0066 F1 POP AF
49 //ResShowPic(DHTHK,122, menu_pos_menu[tmp]-2);
50 ResShowPic(DHT,194,8);
\ 0067 0E08 LD C,8
\ 0069 C5 PUSH BC
\ 006A 0EC2 LD C,194
\ 006C 112D00 LD DE,45
\ 006F CD2801 CALL LWRD ?0063
\ 0072 F1 POP AF
51 ResShowPic(DHTHK,194, menu_pos_menu[tmp]+6);
\ 0073 210000 LD HL,menu_pos_menu
\ 0076 DD4EFC LD C,(IX-4)
\ 0079 DD46FD LD B,(IX-3)
\ 007C 09 ADD HL,BC
\ 007D 7E LD A,(HL)
\ 007E C606 ADD A,6
\ 0080 5F LD E,A
\ 0081 D5 PUSH DE
\ 0082 0EC2 LD C,194
\ 0084 112E00 LD DE,46
\ 0087 CD2801 CALL LWRD ?0063
\ 008A F1 POP AF
52
53 SetPenColor(Color_WHITE_def);
\ 008B CD3001 CALL LWRD ?0065
54 ResShowMultiString(menu->title[active], menu->string_id, menu_str_x_def, menu_pos_menu[tmp]-3);
\ 008E 210000 LD HL,menu_pos_menu
\ 0091 DD4EFC LD C,(IX-4)
\ 0094 DD46FD LD B,(IX-3)
\ 0097 09 ADD HL,BC
\ 0098 7E LD A,(HL)
\ 0099 C6FD ADD A,253
\ 009B 5F LD E,A
\ 009C D5 PUSH DE
\ 009D 1E20 LD E,32
\ 009F D5 PUSH DE
\ 00A0 FD4E09 LD C,(IY+9)
\ 00A3 FD6E04 LD L,(IY+4)
\ 00A6 FD6605 LD H,(IY+5)
\ 00A9 E5 PUSH HL
\ 00AA DD6E08 LD L,(IX+8)
\ 00AD DD6609 LD H,(IX+9)
\ 00B0 29 ADD HL,HL
\ 00B1 EB EX DE,HL
\ 00B2 E1 POP HL
\ 00B3 19 ADD HL,DE
\ 00B4 5E LD E,(HL)
\ 00B5 23 INC HL
\ 00B6 56 LD D,(HL)
\ 00B7 3E00 LD A,BYTE3 ResShowMultiString
\ 00B9 210000 LD HL,LWRD ResShowMultiString
\ 00BC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BF F1 POP AF
\ 00C0 F1 POP AF
55 //重新显示旧的活动菜单
56 SetPenColor(Color_WHITE_def);
\ 00C1 CD3001 CALL LWRD ?0065
57
58 tmp = old_active%MENU_NUM_ONE_PAGE;
\ 00C4 010600 LD BC,6
\ 00C7 DD5EFE LD E,(IX-2)
\ 00CA DD56FF LD D,(IX-1)
\ 00CD CD0000 CALL LWRD ?SS_MOD_L02
\ 00D0 DD73FC LD (IX-4),E
\ 00D3 DD72FD LD (IX-3),D
59 ResShowPic(MENUARR1+tmp, menu_ptr_x_def, menu_pos_menu[tmp]);
\ 00D6 210000 LD HL,menu_pos_menu
\ 00D9 19 ADD HL,DE
\ 00DA 4E LD C,(HL)
\ 00DB C5 PUSH BC
\ 00DC 0E0A LD C,10
\ 00DE 215E00 LD HL,94
\ 00E1 19 ADD HL,DE
\ 00E2 EB EX DE,HL
\ 00E3 CD2801 CALL LWRD ?0063
\ 00E6 F1 POP AF
60 ResShowMultiString(menu->title[old_active], menu->string_id, menu_str_x_def, menu_pos_menu[tmp]-3);
\ 00E7 210000 LD HL,menu_pos_menu
\ 00EA DD4EFC LD C,(IX-4)
\ 00ED DD46FD LD B,(IX-3)
\ 00F0 09 ADD HL,BC
\ 00F1 7E LD A,(HL)
\ 00F2 C6FD ADD A,253
\ 00F4 4F LD C,A
\ 00F5 C5 PUSH BC
\ 00F6 0E20 LD C,32
\ 00F8 C5 PUSH BC
\ 00F9 FD4E09 LD C,(IY+9)
\ 00FC FD6E04 LD L,(IY+4)
\ 00FF FD6605 LD H,(IY+5)
\ 0102 E5 PUSH HL
\ 0103 DD6EFE LD L,(IX-2)
\ 0106 DD66FF LD H,(IX-1)
\ 0109 29 ADD HL,HL
\ 010A EB EX DE,HL
\ 010B E1 POP HL
\ 010C 19 ADD HL,DE
\ 010D 5E LD E,(HL)
\ 010E 23 INC HL
\ 010F 56 LD D,(HL)
\ 0110 3E00 LD A,BYTE3 ResShowMultiString
\ 0112 210000 LD HL,LWRD ResShowMultiString
\ 0115 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0118 F1 POP AF
\ 0119 F1 POP AF
61 }
\ 011A DDF9 LD SP,IX
\ 011C DDE1 POP IX
\ 011E FDE1 POP IY
\ 0120 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0123 ?0064:
\ 0123 0E09 LD C,9
\ 0125 116400 LD DE,100
\ 0128 ?0063:
\ 0128 3E00 LD A,BYTE3 ResShowPic
\ 012A 210000 LD HL,LWRD ResShowPic
\ 012D C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0130 ?0065:
\ 0130 010000 LD BC,0
\ 0133 11FFFF LD DE,65535
\ 0136 C30000 JP LWRD SetPenColor
\ 0139 ui_menu:
62 /*
63 ********************************************************************************
64 * Description : 一级菜单
65 *
66 * Arguments :
67 * menu, 结构体指针
68 * string_id, 语言
69
70 * Returns :
71 * 0
72 * Notes :
73 *
74 ********************************************************************************
75 */
76 int ui_menu (function_menu_t *menu , const void (*callback)(int value))
77 {
\ 0139 C5 PUSH BC
\ 013A FDE5 PUSH IY
\ 013C DDE5 PUSH IX
\ 013E DD210000 LD IX,0
\ 0142 DD39 ADD IX,SP
\ 0144 21F2FF LD HL,65522
\ 0147 39 ADD HL,SP
\ 0148 F9 LD SP,HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -