ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 978 行 · 第 1/4 页
LST
978 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:10 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_amv\ui_stop.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\ui_stop.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\ui_stop.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\ui_stop.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\ap_amv\ui_stop.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_stop(17)
\ 0000 RSEG AP_UI_STP(0)
\ 0000 RSEG CSTR(0)
\ 0000 EXTERN ChangeMusic
\ 0000 EXTERN CheckMusicType
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN DRV_Install
\ 0000 EXTERN GetBattery
\ 0000 EXTERN GetInformation
\ 0000 EXTERN PlayStatus
\ 0000 EXTERN RefreshMainScreen
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetContrast
\ 0000 EXTERN StandbyScreen
\ 0000 EXTERN Totaltime
\ 0000 EXTERN UpdateFileSelector
\ 0000 EXTERN VMRead
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselGetNo
\ 0000 EXTERN fselGetPrevFile
\ 0000 EXTERN fselGetTotal
\ 0000 EXTERN fselSetMode
\ 0000 EXTERN g_BatteryType
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_TagInfoBuf1
\ 0000 EXTERN g_amv_vars
\ 0000 EXTERN g_changevolume
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_langid
\ 0000 EXTERN g_menu_active
\ 0000 EXTERN g_musicamount
\ 0000 EXTERN g_musicsequence
\ 0000 EXTERN g_result
\ 0000 EXTERN make_dirname
\ 0000 EXTERN need_draw
\ 0000 EXTERN show_volume
\ 0000 PUBLIC time_cmp
\ 0000 EXTERN ui_err_msg
\ 0000 EXTERN ui_play
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ui_show_msg
\ 0000 PUBLIC ui_stop
\ 0000 PUBLIC ui_stop_loop
\ 0000 EXTERN ui_stop_menu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG AP_UI_STP
\ 0000 time_cmp:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * This program demostrates how to build an AP
5 *
6 * (c) Copyright Actions Co,Ld.
7 *
8 * $Id: ui_stop.c,v 1.1.1.1 2006/05/22 03:24:02 selina Exp $
9 *******************************************************************************
10 */
11 #include "ap_amv.h"
12 extern comval_t g_comval; //系统变量,ap不能更改
13 extern bool ActiveDriveOK;
14 extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
15 int ui_stop_loop(void);
16 extern void make_dirname(void);
17
18 //======================================================================================
19 //RESULT_CURR_UI: 还要处在当前界面
20 //RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
21 //RESULT_LAST_UI: 到上一级界面
22 //--------------------------------------------------------------------------------------
23 #pragma codeseg(AP_UI_STP)
24
25 int time_cmp(const AmvFileBreakPntInfor *time1, const time_t *time2)
26 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 D5 PUSH DE
\ 0005 DDE1 POP IX
\ 0007 C5 PUSH BC
\ 0008 FDE1 POP IY
27 if(time1->TimeHou == time2->hour)
\ 000A 0A LD A,(BC)
\ 000B 47 LD B,A
\ 000C 210600 LD HL,6
\ 000F 19 ADD HL,DE
\ 0010 7E LD A,(HL)
\ 0011 B8 CP B
\ 0012 2029 JR NZ,?0003
\ 0014 ?0002:
28 {
29 if(time1->TimeMin == time2->minute)
\ 0014 DD7E05 LD A,(IX+5)
\ 0017 FDBE01 CP (IY+1)
\ 001A 2017 JR NZ,?0005
\ 001C ?0004:
30 {
31 if(time1->TimeSec == time2->second)
\ 001C DD7E04 LD A,(IX+4)
\ 001F FDBE02 CP (IY+2)
\ 0022 2005 JR NZ,?0007
\ 0024 ?0006:
32 {
33 return 0;
\ 0024 210000 LD HL,0
34 }
\ 0027 1820 JR ?0008
\ 0029 ?0007:
35 else
36 {
37 return ((int)(time1->TimeSec) - time2->second);
\ 0029 FD4E02 LD C,(IY+2)
\ 002C 0600 LD B,0
\ 002E DD6E04 LD L,(IX+4)
\ 0031 1812 JR ?0116
38 }
\ 0033 ?0005:
39 }
40 else
41 {
42 return ((int)(time1->TimeMin) - time2->minute);
\ 0033 FD4E01 LD C,(IY+1)
\ 0036 0600 LD B,0
\ 0038 DD6E05 LD L,(IX+5)
\ 003B 1808 JR ?0116
43 }
\ 003D ?0003:
44 }
45 else
46 {
47 return ((int)(time1->TimeHou) - time2->hour);
\ 003D FD4E00 LD C,(IY+0)
\ 0040 0600 LD B,0
\ 0042 DD6E06 LD L,(IX+6)
\ 0045 ?0116:
\ 0045 60 LD H,B
\ 0046 A7 AND A
\ 0047 ED42 SBC HL,BC
48 }
\ 0049 ?0008:
\ 0049 DDE1 POP IX
\ 004B FDE1 POP IY
\ 004D C30000 JP LWRD ?BANK_FAST_LEAVE_L08
49 }
\ 0050 ui_stop:
50
51 int ui_stop(void)
52 {
\ 0050 C5 PUSH BC
\ 0051 D5 PUSH DE
53 ap_message_init(NULL);//开始算STANDBY 时间
\ 0052 CD2901 CALL LWRD ?0140
54 g_menu_active=TRUE;
\ 0055 3E01 LD A,1
\ 0057 320000 LD (g_menu_active),A
\ 005A ?0011:
55 do
56 {
57 if (UpdateFileSelector() == 0)
\ 005A 3E00 LD A,BYTE3 UpdateFileSelector
\ 005C 210000 LD HL,LWRD UpdateFileSelector
\ 005F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0062 7D LD A,L
\ 0063 B4 OR H
\ 0064 CA2101 JP Z,?0119
\ 0067 ?0012:
58 {
59 return 0;
60 }
\ 0067 ?0013:
61
62
63 g_musicamount = FSELGetTotal();
\ 0067 3E00 LD A,BYTE3 fselGetTotal
\ 0069 210000 LD HL,LWRD fselGetTotal
\ 006C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 006F 7D LD A,L
\ 0070 320000 LD (g_musicamount),A
64 if(g_musicamount==0)
\ 0073 B7 OR A
\ 0074 201D JR NZ,?0015
\ 0076 ?0014:
\ 0076 ?0017:
65 {
66 // ui_show_msg (MFILEOUT, MFILEOUT, g_comval.langid);
67 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 0076 CD0000 CALL LWRD ap_get_message
\ 0079 B7 OR A
\ 007A 20FA JR NZ,?0014
\ 007C ?0018:
\ 007C ?0016:
68 return ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
\ 007C ED4B0000 LD BC,(g_langid)
\ 0080 47 LD B,A
\ 0081 C5 PUSH BC
\ 0082 019201 LD BC,402
\ 0085 59 LD E,C
\ 0086 50 LD D,B
\ 0087 3E00 LD A,BYTE3 ui_show_msg
\ 0089 210000 LD HL,LWRD ui_show_msg
\ 008C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 008F F1 POP AF
69
70 }
\ 0090 C32401 JP LWRD ?0022
\ 0093 ?0015:
71
72 g_musicsequence = FSELGetNo();
\ 0093 3E00 LD A,BYTE3 fselGetNo
\ 0095 210000 LD HL,LWRD fselGetNo
\ 0098 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 009B 7D LD A,L
\ 009C 320000 LD (g_musicsequence),A
73 FSELSetMode(FSEL_ALL_REPEATALL);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?