ui_stop.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,055 行 · 第 1/4 页
LST
1,055 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:39:49 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_amv\ui_stop.c #
# List file = d:\case_i_d913f\ap\ap_amv\list\ui_stop.lst #
# Object file = d:\case_i_d913f\ap\ap_amv\obj\ui_stop.r01 #
# ASM file = d:\case_i_d913f\ap\ap_amv\list\ui_stop.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.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_stop(17)
\ 0000 RSEG AP_UI_STP(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN ChangeMusic
\ 0000 EXTERN CheckMusicType
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN GetBattery
\ 0000 EXTERN GetInformation
\ 0000 EXTERN PlayStatus
\ 0000 EXTERN RefreshMainScreen
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetContrast
\ 0000 EXTERN ShowNowTime
\ 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_autoswitch_counter
\ 0000 EXTERN g_changevolume
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 PUBLIC g_firstplay_flag
\ 0000 EXTERN g_from_browser
\ 0000 EXTERN g_langid
\ 0000 EXTERN g_menu_active
\ 0000 EXTERN g_musicamount
\ 0000 EXTERN g_musicsequence
\ 0000 PUBLIC g_rSetPlayStatus
\ 0000 EXTERN g_result
\ 0000 PUBLIC g_volcounter
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN make_dirname
\ 0000 EXTERN need_draw
\ 0000 PUBLIC time_cmp
\ 0000 EXTERN ui_play
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ui_show_msg
\ 0000 EXTERN ui_show_vol
\ 0000 PUBLIC ui_stop
\ 0000 PUBLIC ui_stop_loop
\ 0000 EXTERN ui_stop_menu
\ 0000 EXTERN vol_callback
\ 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 #include "define.h"
13
14 bool g_firstplay_flag = TRUE;
15 extern comval_t g_comval; //系统变量,ap不能更改
16 extern bool ActiveDriveOK;
17 extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
18 int ui_stop_loop(void);
19 extern void make_dirname(void);
20 extern int g_autoswitch_counter;
21
22 char g_volcounter=0;
23 bool g_rSetPlayStatus = FALSE;
24 //======================================================================================
25 //RESULT_CURR_UI: 还要处在当前界面
26 //RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
27 //RESULT_LAST_UI: 到上一级界面
28 //--------------------------------------------------------------------------------------
29 #pragma codeseg(AP_UI_STP)
30
31 int time_cmp(const AmvFileBreakPntInfor *time1, const time_t *time2)
32 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 D5 PUSH DE
\ 0005 DDE1 POP IX
\ 0007 C5 PUSH BC
\ 0008 FDE1 POP IY
33 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:
34 {
35 if(time1->TimeMin == time2->minute)
\ 0014 DD7E05 LD A,(IX+5)
\ 0017 FDBE01 CP (IY+1)
\ 001A 2017 JR NZ,?0005
\ 001C ?0004:
36 {
37 if(time1->TimeSec == time2->second)
\ 001C DD7E04 LD A,(IX+4)
\ 001F FDBE02 CP (IY+2)
\ 0022 2005 JR NZ,?0007
\ 0024 ?0006:
38 {
39 return 0;
\ 0024 210000 LD HL,0
40 }
\ 0027 1820 JR ?0008
\ 0029 ?0007:
41 else
42 {
43 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 ?0098
44 }
\ 0033 ?0005:
45 }
46 else
47 {
48 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 ?0098
49 }
\ 003D ?0003:
50 }
51 else
52 {
53 return ((int)(time1->TimeHou) - time2->hour);
\ 003D FD4E00 LD C,(IY+0)
\ 0040 0600 LD B,0
\ 0042 DD6E06 LD L,(IX+6)
\ 0045 ?0098:
\ 0045 60 LD H,B
\ 0046 A7 AND A
\ 0047 ED42 SBC HL,BC
54 }
\ 0049 ?0008:
\ 0049 DDE1 POP IX
\ 004B FDE1 POP IY
\ 004D C30000 JP LWRD ?BANK_FAST_LEAVE_L08
55 }
\ 0050 ui_stop:
56
57 int ui_stop(void)
58 {
\ 0050 C5 PUSH BC
\ 0051 D5 PUSH DE
59 ap_message_init(NULL);//开始算STANDBY 时间
\ 0052 CD2901 CALL LWRD ?0122
60 g_menu_active=TRUE;
\ 0055 3E01 LD A,1
\ 0057 320000 LD (g_menu_active),A
\ 005A ?0011:
61 do
62 {
63 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,?0101
\ 0067 ?0012:
64 {
65 return 0;
66 }
\ 0067 ?0013:
67
68
69 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
70 if(g_musicamount==0)
\ 0073 B7 OR A
\ 0074 201D JR NZ,?0015
\ 0076 ?0014:
\ 0076 ?0017:
71 {
72 // ui_show_msg (MFILEOUT, MFILEOUT, g_comval.langid);
73 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:
74 return ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
\ 007C ED4B0000 LD BC,(g_langid)
\ 0080 47 LD B,A
\ 0081 C5 PUSH BC
\ 0082 017402 LD BC,628
\ 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
75 }
\ 0090 C32401 JP LWRD ?0022
\ 0093 ?0015:
76
77 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
78 FSELSetMode(FSEL_ALL_REPEATALL);
\ 009F 1E04 LD E,4
\ 00A1 3E00 LD A,BYTE3 fselSetMode
\ 00A3 210000 LD HL,LWRD fselSetMode
\ 00A6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
79 fselGetLocation(& g_amv_vars.location); //add by ybfu 2004-12-22 15:26
\ 00A9 CD6601 CALL LWRD ?0128
80 make_dirname();
\ 00AC 3E00 LD A,BYTE3 make_dirname
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?