📄 sub_function1.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:46 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\sub_function1.c #
# List file = d:\case_i_d90f\ap\ap_music\list\sub_function1.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\sub_function1.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\sub_function1.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w #
# -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_music\List\ #
# -ND:\case_i_d90f\ap\ap_music\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\AP_MUSIC\sub_function1.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_function1(17)
\ 0000 RSEG AP_SUB_FUN1(0)
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN CaltimeFlag
\ 0000 PUBLIC ChangeMusic
\ 0000 EXTERN CheckMusicType
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN DRV_ActiveUD
\ 0000 PUBLIC DealMusicFileEnd
\ 0000 PUBLIC DisInFBHead
\ 0000 PUBLIC DisInFFEnd
\ 0000 EXTERN DisplayErrMsg
\ 0000 EXTERN GetInformation
\ 0000 PUBLIC NoCardCaseInStopMenu
\ 0000 EXTERN PlayStatus
\ 0000 EXTERN RePlayStatus
\ 0000 EXTERN SRSModeFlag
\ 0000 PUBLIC SelectCurMusic
\ 0000 EXTERN ToNextMusic
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN UpdateFileSelector
\ 0000 EXTERN WaitForCaltimeCNT
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN apepSendCommand
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselGetNo
\ 0000 EXTERN fselGetPrevFile
\ 0000 EXTERN fselGetTotal
\ 0000 EXTERN fselInit
\ 0000 EXTERN fselPlayListExit
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN fselSetMode
\ 0000 EXTERN g_2HZ_CNT
\ 0000 EXTERN g_ABMinTimeCNT
\ 0000 EXTERN g_ABPointTimeSize
\ 0000 EXTERN g_FCexitflag
\ 0000 EXTERN g_Openparam
\ 0000 EXTERN g_PAOpenFlag
\ 0000 EXTERN g_ReplayTimeCNT
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_TagInfoBuf1
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_musicamount
\ 0000 EXTERN g_musicsequence
\ 0000 EXTERN g_result
\ 0000 EXTERN ifSelBuffToltalTimeFlag
\ 0000 EXTERN itoa_1
\ 0000 EXTERN itoa_2
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN make_dirname
\ 0000 EXTERN mp3pSendCommand
\ 0000 EXTERN musicpSendCommand
\ 0000 PUBLIC musicpSendCommand_bank
\ 0000 EXTERN need_draw
\ 0000 EXTERN oggpSendCommand
\ 0000 EXTERN openPA
\ 0000 EXTERN srs_default_set
\ 0000 EXTERN temp_buffer
\ 0000 EXTERN ui_auto_update
\ 0000 EXTERN ui_delete
\ 0000 PUBLIC ui_delete_Music
\ 0000 EXTERN ui_delete_all
\ 0000 EXTERN ui_directory
\ 0000 EXTERN ui_show_d
\ 0000 EXTERN wmapSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_S_SWITCH_L06
\ 0000 EXTERN ?S_S_SWITCH_L06
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_PARM_DIRECT_L09
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG AP_SUB_FUN1
\ 0000 DisInFBHead:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * This program demostrates how to build an AP
5 *
6 * (c) Copyright Actions Co,Ld.
7 *
8 * $Id: sub_function1.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
9 *******************************************************************************
10 */
11 #include "ap_music.h"
12
13 extern bool g_FCexitflag;
14
15 #pragma memory=constseg(APC_SUB_FUN1)
16 #pragma memory=default
17
18 void FadeOut( bool DisMod );
19 void DisInFBHead(char DisMod);
20 void DisInFFEnd(char DisMod);
21 int ui_licensinf(int string_id);
22 extern void make_dirname(void);
23 extern void srs_default_set(void);
24 extern byte SRSModeFlag;
25 #pragma codeseg(AP_SUB_FUN1)
26 void DisInFBHead(char DisMod)
27 {
\ 0000 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
28 if (DisMod == 0)
\ 0003 1C INC E
\ 0004 1D DEC E
\ 0005 2016 JR NZ,?0003
\ 0007 ?0002:
29 {//普通显示模式
30 temp_buffer[0] = '0';
\ 0007 3E30 LD A,48
\ 0009 320000 LD (temp_buffer),A
31 temp_buffer[1] = '0';
\ 000C 320100 LD (temp_buffer+1),A
32 temp_buffer[2] = '0';
\ 000F 320200 LD (temp_buffer+2),A
33 temp_buffer[3] = '0';
\ 0012 320300 LD (temp_buffer+3),A
34 temp_buffer[4] = '0';
\ 0015 320400 LD (temp_buffer+4),A
35 ui_show_d(temp_buffer);
\ 0018 CD3100 CALL LWRD ?0162
36 }
37 else
\ 001B 1811 JR ?0004
\ 001D ?0003:
38 {//歌词显示模式
39 main_ResShowPic(LYRIC_R, LyricIcon_Pos_X, LyricIcon_Pos_Y);
\ 001D 0E63 LD C,99
\ 001F C5 PUSH BC
\ 0020 0EC5 LD C,197
\ 0022 114E00 LD DE,78
\ 0025 3E00 LD A,BYTE3 main_ResShowPic
\ 0027 210000 LD HL,LWRD main_ResShowPic
\ 002A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 002D F1 POP AF
\ 002E ?0004:
40 }
41 return;
42
43 }
\ 002E C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0031 ?0162:
\ 0031 110000 LD DE,temp_buffer
\ 0034 3E00 LD A,BYTE3 ui_show_d
\ 0036 210000 LD HL,LWRD ui_show_d
\ 0039 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 003C DisInFFEnd:
44
45 void DisInFFEnd(char DisMod)
46 {
\ 003C CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 003F F8FF DEFW 65528
47 if(DisMod == 0)
\ 0041 AF XOR A
\ 0042 DDB602 OR (IX+2)
\ 0045 2039 JR NZ,?0006
\ 0047 ?0005:
48 {//普通显示模式
49 wma_play_status_t status_buf;
50 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 0047 6F LD L,A
\ 0048 67 LD H,A
\ 0049 39 ADD HL,SP
\ 004A 4D LD C,L
\ 004B 44 LD B,H
\ 004C 1E83 LD E,131
\ 004E CD9900 CALL LWRD ?0169
51 itoa_1(status_buf.total_time.hour, &temp_buffer[0]);
\ 0051 010000 LD BC,temp_buffer
\ 0054 DD5EFB LD E,(IX-5)
\ 0057 3E00 LD A,BYTE3 itoa_1
\ 0059 210000 LD HL,LWRD itoa_1
\ 005C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
52 itoa_2(status_buf.total_time.minute, &temp_buffer[1]);
\ 005F 010100 LD BC,temp_buffer+1
\ 0062 DD5EFC LD E,(IX-4)
\ 0065 3E00 LD A,BYTE3 itoa_2
\ 0067 210000 LD HL,LWRD itoa_2
\ 006A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
53 itoa_2(status_buf.total_time.second, & temp_buffer[3]);
\ 006D 010300 LD BC,temp_buffer+3
\ 0070 DD5EFD LD E,(IX-3)
\ 0073 3E00 LD A,BYTE3 itoa_2
\ 0075 210000 LD HL,LWRD itoa_2
\ 0078 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
54 ui_show_d(temp_buffer);
\ 007B CD3100 CALL LWRD ?0162
55 }
56 else
\ 007E 1811 JR ?0007
\ 0080 ?0006:
57 {//歌词显示模式
58 main_ResShowPic(LYRIC_F, LyricIcon_Pos_X, LyricIcon_Pos_Y);
\ 0080 0E63 LD C,99
\ 0082 C5 PUSH BC
\ 0083 0EC5 LD C,197
\ 0085 114D00 LD DE,77
\ 0088 3E00 LD A,BYTE3 main_ResShowPic
\ 008A 210000 LD HL,LWRD main_ResShowPic
\ 008D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0090 F1 POP AF
\ 0091 ?0007:
59 }
60 return;
61 }
\ 0091 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0094 ?0170:
\ 0094 010100 LD BC,1
\ 0097 1E0D LD E,13
\ 0099 ?0169:
\ 0099 3E00 LD A,BYTE3 musicpSendCommand
\ 009B 210000 LD HL,LWRD musicpSendCommand
\ 009E C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 00A1 DealMusicFileEnd:
62
63 //===========[放到文件尾时的处理]===============
64 int DealMusicFileEnd( char DisMod)
65 {
\ 00A1 D5 PUSH DE
66 wma_play_status_t status_buf;
67
68 int key;
69
70 need_draw = TRUE;
\ 00A2 3E01 LD A,1
\ 00A4 320000 LD (need_draw),A
71
72 if (PlayStatus == FBPlaySta)
\ 00A7 3A0000 LD A,(PlayStatus)
\ 00AA FE04 CP 4
\ 00AC 2019 JR NZ,?0009
\ 00AE ?0008:
73 {
74 DisInFBHead( DisMod );//到头显示
\ 00AE 3E00 LD A,BYTE3 DisInFBHead
\ 00B0 210000 LD HL,LWRD DisInFBHead
\ 00B3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00B6 ?0011:
75 while ( ap_get_message() != (AP_KEY_PREV | AP_KEY_UP) );
\ 00B6 CD0000 CALL LWRD ap_get_message
\ 00B9 FE25 CP 37
\ 00BB 20F9 JR NZ,?0011
\ 00BD ?0012:
\ 00BD ?0010:
76 SelectCurMusic();
\ 00BD 3E00 LD A,BYTE3 SelectCurMusic
\ 00BF 215C04 LD HL,LWRD SelectCurMusic
\ 00C2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00C5 1851 JR ?0027
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -