📄 ui_stop_menu.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:39:51 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_amv\ui_stop_menu.c #
# List file = d:\case_i_d913f\ap\ap_amv\list\ui_stop_menu.lst #
# Object file = d:\case_i_d913f\ap\ap_amv\obj\ui_stop_menu.r01 #
# ASM file = d:\case_i_d913f\ap\ap_amv\list\ui_stop_menu.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_amv\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d913f\ap\ap_amv\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_amv\List\ #
# -ND:\case_i_d913f\ap\ap_amv\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\ap\ap_amv\ui_stop_menu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_stop_menu(17)
\ 0000 RSEG AP_UI_MNU(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 RSEG APC_UI_MNU(0)
\ 0000 EXTERN AmvDecStart
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN ChangeMusic
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN DRV_ActiveUD
\ 0000 EXTERN DRV_DetectUD
\ 0000 PUBLIC dir_string
\ 0000 PUBLIC dir_string_card
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselInit
\ 0000 EXTERN fselSetMode
\ 0000 PUBLIC g_CardInFlag
\ 0000 EXTERN g_DiskStateFlag
\ 0000 EXTERN g_amv_vars
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_langid
\ 0000 EXTERN g_menu_active
\ 0000 EXTERN g_result
\ 0000 PUBLIC repeat_string
\ 0000 EXTERN ui_delete
\ 0000 EXTERN ui_delete_all
\ 0000 PUBLIC ui_delete_amv
\ 0000 EXTERN ui_directory
\ 0000 EXTERN ui_err_msg
\ 0000 PUBLIC ui_loop_menu
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ui_show_msg
\ 0000 PUBLIC ui_stop_menu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_S_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG AP_UI_MNU
\ 0000 ui_delete_amv:
1
2 /*
3 *******************************************************************************
4 * ACTOS AP
5 * This program demostrates how to build an AP
6 *
7 * (c) Copyright Actions Co,Ld.
8 *
9 * $Id: ui_stop_menu.c,v 1.2 2006/07/14 06:43:08 tangwh Exp $
10 *******************************************************************************
11 */
12 #include "ap_amv.h"
13
14 #pragma codeseg(AP_UI_MNU)
15
16 #pragma memory=constseg(APC_UI_MNU)
17 const WORD dir_string_card[6] =
18 {
19 MSTOP1, MSTOP2, MSTOP3, MSTOP4, MPLAY1, MSTOP5
20 };
21
22 const WORD repeat_string[7] =
23 {
24 VLOOPM1, VLOOPM2, VLOOPM3, VLOOPM4, VLOOPM5, VLOOPM6, VLOOPM7
25 };
26 const WORD dir_string[5] =
27 {
28 MSTOP1, MSTOP3, MSTOP4, MPLAY1, MSTOP5
29 };
30 #pragma memory=default
31 void CheckIfCardOK(void);
32 BYTE g_CardInFlag=0;
33 extern void make_dirname(void);
34 extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
35 extern BYTE g_DiskStateFlag;
36 int ui_delete_amv( int type )
37 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
38
39 DRV_ActiveUD(0, MODE_SLOW); //04-2-28 16:29
\ 0002 0E01 LD C,1
\ 0004 1E00 LD E,0
\ 0006 CD0000 CALL LWRD DRV_ActiveUD
40
41 // g_result = ui_explore(&g_amv_vars.location, type, g_langid);
42
43 g_result=ui_delete(& g_amv_vars.location, type, g_langid);
\ 0009 3A0000 LD A,(g_langid)
\ 000C 4F LD C,A
\ 000D C5 PUSH BC
\ 000E 210200 LD HL,2
\ 0011 39 ADD HL,SP
\ 0012 4E LD C,(HL)
\ 0013 110500 LD DE,g_amv_vars+5
\ 0016 3E00 LD A,BYTE3 ui_delete
\ 0018 210000 LD HL,LWRD ui_delete
\ 001B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 001E F1 POP AF
\ 001F 220000 LD (g_result),HL
44
45 if (g_result == RESULT_SD_OUT)
\ 0022 3E36 LD A,54
\ 0024 AD XOR L
\ 0025 B4 OR H
\ 0026 200A JR NZ,?0003
\ 0028 ?0002:
46 {
47 g_amv_vars.location.disk = 'C';
\ 0028 3E43 LD A,67
\ 002A 320500 LD (g_amv_vars+5),A
48 return RESULT_IGNORE;
\ 002D 213400 LD HL,52
49 }
\ 0030 1816 JR ?0006
\ 0032 ?0003:
50
51 if (g_result != 0)
\ 0032 7D LD A,L
\ 0033 B4 OR H
\ 0034 2012 JR NZ,?0006
\ 0036 ?0004:
52 {
53 return g_result;
54 }
\ 0036 ?0005:
55
56 ChangeMusic(Music_Next, 1);
\ 0036 0E01 LD C,1
\ 0038 1E03 LD E,3
\ 003A 3E00 LD A,BYTE3 ChangeMusic
\ 003C 210000 LD HL,LWRD ChangeMusic
\ 003F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
57
58 fselGetLocation(& g_amv_vars.location);
\ 0042 CD4D00 CALL LWRD ?0076
59
60 return 0; //RESULT_RESTART;
\ 0045 210000 LD HL,0
61 }
\ 0048 ?0006:
\ 0048 F1 POP AF
\ 0049 C1 POP BC
\ 004A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 004D ?0076:
\ 004D 110500 LD DE,g_amv_vars+5
\ 0050 3E00 LD A,BYTE3 fselGetLocation
\ 0052 210000 LD HL,LWRD fselGetLocation
\ 0055 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0058 ui_loop_menu:
62
63 int ui_loop_menu( void )
64 {
\ 0058 C5 PUSH BC
\ 0059 D5 PUSH DE
\ 005A 21F6FF LD HL,65526
\ 005D 39 ADD HL,SP
\ 005E F9 LD SP,HL
65 pop_up_list_t list;
66 list.strid = (WORD *)repeat_string;
\ 005F 3600 LD (HL),LOW(repeat_string)
\ 0061 23 INC HL
\ 0062 3600 LD (HL),HIGH(repeat_string)
67 list.total = MaxRepeatMod;
\ 0064 23 INC HL
\ 0065 3607 LD (HL),7
\ 0067 23 INC HL
\ 0068 3600 LD (HL),0
68 list.active = g_amv_vars.repeat_mode;
\ 006A 23 INC HL
\ 006B ED4B0300 LD BC,(g_amv_vars+3)
\ 006F 0600 LD B,0
\ 0071 71 LD (HL),C
\ 0072 23 INC HL
\ 0073 70 LD (HL),B
69 list.string_id = g_langid;
\ 0074 23 INC HL
\ 0075 23 INC HL
\ 0076 23 INC HL
\ 0077 3A0000 LD A,(g_langid)
\ 007A 77 LD (HL),A
70 list.headid=MPLAY1;
\ 007B 2B DEC HL
\ 007C 2B DEC HL
\ 007D 36D2 LD (HL),210
\ 007F 23 INC HL
\ 0080 3601 LD (HL),1
71 g_result = ui_popup_list(&list, NULL);
\ 0082 48 LD C,B
\ 0083 C5 PUSH BC
\ 0084 60 LD H,B
\ 0085 C5 PUSH BC
\ 0086 2E04 LD L,4
\ 0088 39 ADD HL,SP
\ 0089 EB EX DE,HL
\ 008A 3E00 LD A,BYTE3 ui_popup_list
\ 008C 210000 LD HL,LWRD ui_popup_list
\ 008F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0092 F1 POP AF
\ 0093 F1 POP AF
\ 0094 220000 LD (g_result),HL
72
73 if (g_result != RESULT_IGNORE)
\ 0097 3E34 LD A,52
\ 0099 AD XOR L
\ 009A B4 OR H
\ 009B 2808 JR Z,?0008
\ 009D ?0007:
74 {
75 g_amv_vars.repeat_mode = list.active;
\ 009D 210400 LD HL,4
\ 00A0 39 ADD HL,SP
\ 00A1 7E LD A,(HL)
\ 00A2 320300 LD (g_amv_vars+3),A
\ 00A5 ?0008:
76
77 }
78 return g_result;
\ 00A5 2A0000 LD HL,(g_result)
79 }
\ 00A8 EB EX DE,HL
\ 00A9 210A00 LD HL,10
\ 00AC 39 ADD HL,SP
\ 00AD F9 LD SP,HL
\ 00AE EB EX DE,HL
\ 00AF D1 POP DE
\ 00B0 C1 POP BC
\ 00B1 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00B4 ui_stop_menu:
80
81
82 int ui_stop_menu( void )
83 {
\ 00B4 C5 PUSH BC
\ 00B5 D5 PUSH DE
\ 00B6 DDE5 PUSH IX
\ 00B8 21F6FF LD HL,65526
\ 00BB 39 ADD HL,SP
\ 00BC F9 LD SP,HL
84 pop_up_list_t list;
85 int result;
86 static char StopMenuactive=0; //保持选中菜单的序号
87 ///-CheckIfCardOK();
88
89 list.headid = STOPMENU;
\ 00BD 210600 LD HL,6
\ 00C0 39 ADD HL,SP
\ 00C1 368B LD (HL),139
\ 00C3 23 INC HL
\ 00C4 3601 LD (HL),1
90 if (g_CardInFlag)
\ 00C6 3A0000 LD A,(g_CardInFlag)
\ 00C9 B7 OR A
\ 00CA 210200 LD HL,2
\ 00CD 39 ADD HL,SP
\ 00CE 280F JR Z,?0011
\ 00D0 ?0010:
91 {
92 //有卡时的显示
93 list.total = sizeof(dir_string_card) / 2;
\ 00D0 3606 LD (HL),6
\ 00D2 23 INC HL
\ 00D3 3600 LD (HL),0
94 list.strid = dir_string_card;
\ 00D5 2B DEC HL
\ 00D6 2B DEC HL
\ 00D7 2B DEC HL
\ 00D8 3600 LD (HL),LOW(dir_string_card)
\ 00DA 23 INC HL
\ 00DB 3600 LD (HL),HIGH(dir_string_card)
95 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -