sub_function1.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,380 行 · 第 1/5 页
LST
1,380 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:57:14 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\sub_function1.c #
# List file = d:\case_i_d913f\ap\ap_music\list\sub_function1.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\sub_function1.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\sub_function1.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K #
# -w -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_music\List\ #
# -ND:\case_i_d913f\ap\ap_music\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_MUSIC\sub_function1.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_function1(17)
\ 0000 RSEG AP_SUB_FUN1(0)
\ 0000 RSEG CSTR(0)
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN CaltimeFlag
\ 0000 PUBLIC ChangeMusic
\ 0000 EXTERN CheckMusicType
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN DRV_ActiveUD
\ 0000 EXTERN DRV_DetectUD
\ 0000 PUBLIC DealMusicFileEnd
\ 0000 PUBLIC Deal_Error_Playing
\ 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 bList_Flag
\ 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 fsel_mode_change_flag
\ 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_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_file_list_total
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_musicamount
\ 0000 EXTERN g_musicsequence
\ 0000 EXTERN g_result
\ 0000 EXTERN ifSelBuffToltalTimeFlag
\ 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 select_music_list
\ 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 EXTERN ?STRCAT_L11
\ 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 extern BYTE fsel_mode_change_flag;
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 extern int select_music_list(BYTE Direct);
26 #pragma codeseg(AP_SUB_FUN1)
27 void DisInFBHead(char DisMod)
28 {
\ 0000 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
29 if (DisMod == 0)
\ 0003 1C INC E
\ 0004 1D DEC E
\ 0005 201A JR NZ,?0003
\ 0007 ?0002:
30 {//普通显示模式
31 temp_buffer[0] = '0';
\ 0007 3E30 LD A,48
\ 0009 320000 LD (temp_buffer),A
32 temp_buffer[1] = '0';
\ 000C 320100 LD (temp_buffer+1),A
33 temp_buffer[3] = '0';
\ 000F 320300 LD (temp_buffer+3),A
34 temp_buffer[4] = '0';
\ 0012 320400 LD (temp_buffer+4),A
35 temp_buffer[6] = '0';
\ 0015 320600 LD (temp_buffer+6),A
36 temp_buffer[7] = '0';
\ 0018 320700 LD (temp_buffer+7),A
37 ui_show_d(temp_buffer,0);
\ 001B 4B LD C,E
\ 001C CD3500 CALL LWRD ?0207
38 }
39 else
\ 001F 1811 JR ?0004
\ 0021 ?0003:
40 {//歌词显示模式
41 main_ResShowPic(LYRIC_R, LyricIcon_Pos_X, LyricIcon_Pos_Y);
\ 0021 0E79 LD C,121
\ 0023 C5 PUSH BC
\ 0024 0EA1 LD C,161
\ 0026 11A000 LD DE,160
\ 0029 3E00 LD A,BYTE3 main_ResShowPic
\ 002B 210000 LD HL,LWRD main_ResShowPic
\ 002E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0031 F1 POP AF
\ 0032 ?0004:
42 }
43 return;
44
45 }
\ 0032 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0035 ?0207:
\ 0035 110000 LD DE,temp_buffer
\ 0038 3E00 LD A,BYTE3 ui_show_d
\ 003A 210000 LD HL,LWRD ui_show_d
\ 003D C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0040 DisInFFEnd:
46
47 void DisInFFEnd(char DisMod)
48 {
\ 0040 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0043 F8FF DEFW 65528
49 if(DisMod == 0)
\ 0045 AF XOR A
\ 0046 DDB602 OR (IX+2)
\ 0049 2031 JR NZ,?0006
\ 004B ?0005:
50 {//普通显示模式
51 wma_play_status_t status_buf;
52 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 004B 6F LD L,A
\ 004C 67 LD H,A
\ 004D 39 ADD HL,SP
\ 004E 4D LD C,L
\ 004F 44 LD B,H
\ 0050 1E83 LD E,131
\ 0052 CD9500 CALL LWRD ?0215
53 itoa_2(status_buf.total_time.hour, &temp_buffer[0]);
\ 0055 010000 LD BC,temp_buffer
\ 0058 DD5EFB LD E,(IX-5)
\ 005B CD9D00 CALL LWRD ?0217
54 strcat(temp_buffer,":");
55 itoa_2(status_buf.total_time.minute, &temp_buffer[3]);
\ 005E 010300 LD BC,temp_buffer+3
\ 0061 DD5EFC LD E,(IX-4)
\ 0064 CD9D00 CALL LWRD ?0217
56 strcat(temp_buffer,":");
57 itoa_2(status_buf.total_time.second, & temp_buffer[6]);
\ 0067 010600 LD BC,temp_buffer+6
\ 006A DD5EFD LD E,(IX-3)
\ 006D 3E00 LD A,BYTE3 itoa_2
\ 006F 210000 LD HL,LWRD itoa_2
\ 0072 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
58 ui_show_d(temp_buffer,0);
\ 0075 0E00 LD C,0
\ 0077 CD3500 CALL LWRD ?0207
59 }
60 else
\ 007A 1811 JR ?0008
\ 007C ?0006:
61 {//歌词显示模式
62 main_ResShowPic(LYRIC_F, LyricIcon_Pos_X, LyricIcon_Pos_Y);
\ 007C 0E79 LD C,121
\ 007E C5 PUSH BC
\ 007F 0EA1 LD C,161
\ 0081 119F00 LD DE,159
\ 0084 3E00 LD A,BYTE3 main_ResShowPic
\ 0086 210000 LD HL,LWRD main_ResShowPic
\ 0089 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 008C F1 POP AF
\ 008D ?0008:
63 }
64 return;
65 }
\ 008D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0090 ?0216:
\ 0090 010100 LD BC,1
\ 0093 1E0D LD E,13
\ 0095 ?0215:
\ 0095 3E00 LD A,BYTE3 musicpSendCommand
\ 0097 210000 LD HL,LWRD musicpSendCommand
\ 009A C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 009D ?0217:
\ 009D 3E00 LD A,BYTE3 itoa_2
\ 009F 210000 LD HL,LWRD itoa_2
\ 00A2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A5 110000 LD DE,?0007
\ 00A8 210000 LD HL,temp_buffer
\ 00AB CD0000 CALL LWRD ?STRCAT_L11
\ 00AE C9 RET
\ 00AF DealMusicFileEnd:
66
67 //===========[放到文件尾时的处理]===============
68 int DealMusicFileEnd( char DisMod)
69 {
\ 00AF D5 PUSH DE
70 wma_play_status_t status_buf;
71
72 int key;
73
74 need_draw = TRUE;
\ 00B0 3E01 LD A,1
\ 00B2 320000 LD (need_draw),A
75
76 if (PlayStatus == FBPlaySta)
\ 00B5 3A0000 LD A,(PlayStatus)
\ 00B8 FE04 CP 4
\ 00BA 2019 JR NZ,?0010
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?