📄 sub_function1.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:05 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_amv\sub_function1.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\sub_function1.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\sub_function1.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\sub_function1.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\sub_function1.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_function1(17)
\ 0000 RSEG AP_UI_PLY(0)
\ 0000 EXTERN BankSwitch
\ 0000 PUBLIC ChangeMusic
\ 0000 EXTERN CheckMusicType
\ 0000 EXTERN ClearTimePara
\ 0000 PUBLIC DealMusicFileEnd
\ 0000 EXTERN GetInformation
\ 0000 EXTERN PlayStatus
\ 0000 PUBLIC SelectCurMusic
\ 0000 EXTERN ToNextMusic
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselGetNo
\ 0000 EXTERN fselGetPrevFile
\ 0000 EXTERN fselGetTotal
\ 0000 EXTERN fselInit
\ 0000 EXTERN fselSetMode
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_amv_vars
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_musicamount
\ 0000 EXTERN g_musicsequence
\ 0000 EXTERN g_result
\ 0000 EXTERN make_dirname
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_S_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG AP_UI_PLY
\ 0000 DealMusicFileEnd:
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:02 selina Exp $
9 *******************************************************************************
10 */
11 #include "ap_amv.h"
12
13 #pragma codeseg(AP_UI_PLY)
14
15 extern void make_dirname(void);
16
17
18 //===========[放到文件尾时的处理]===============
19 int DealMusicFileEnd( char DisMod)
20 {
\ 0000 D5 PUSH DE
21
22 if (PlayStatus == FBPlaySta)
\ 0001 3A0000 LD A,(PlayStatus)
\ 0004 FE04 CP 4
\ 0006 2011 JR NZ,?0003
\ 0008 ?0002:
\ 0008 ?0005:
23 {
24 while ( ap_get_message() != (AP_KEY_PREV | AP_KEY_UP) );
\ 0008 CD0000 CALL LWRD ap_get_message
\ 000B FE25 CP 37
\ 000D 20F9 JR NZ,?0002
\ 000F ?0006:
\ 000F ?0004:
25 SelectCurMusic();
\ 000F 3E00 LD A,BYTE3 SelectCurMusic
\ 0011 213601 LD HL,LWRD SelectCurMusic
\ 0014 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0017 1833 JR ?0017
\ 0019 ?0003:
26
27 }
28 else if (PlayStatus == FFPlaySta)
\ 0019 FE03 CP 3
\ 001B 201C JR NZ,?0009
\ 001D ?0008:
\ 001D ?0011:
29 {
30 while ( ap_get_message() != (AP_KEY_NEXT | AP_KEY_UP) );
\ 001D CD0000 CALL LWRD ap_get_message
\ 0020 FE26 CP 38
\ 0022 20F9 JR NZ,?0008
\ 0024 ?0012:
\ 0024 ?0010:
31 g_result = ToNextMusic(Play_key);
\ 0024 1E02 LD E,2
\ 0026 3E00 LD A,BYTE3 ToNextMusic
\ 0028 210000 LD HL,LWRD ToNextMusic
\ 002B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 002E 220000 LD (g_result),HL
32 if(g_result == RESULT_UI_STOP) return g_result;
\ 0031 3E66 LD A,102
\ 0033 AD XOR L
\ 0034 B4 OR H
\ 0035 2015 JR NZ,?0017
\ 0037 ?0013:
\ 0037 1816 JR ?0018
33 }
\ 0039 ?0014:
34
35 else
\ 0039 ?0009:
36 {
37 g_result = ToNextMusic(Play_play);
\ 0039 1E01 LD E,1
\ 003B 3E00 LD A,BYTE3 ToNextMusic
\ 003D 210000 LD HL,LWRD ToNextMusic
\ 0040 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0043 220000 LD (g_result),HL
38 if(g_result == RESULT_UI_STOP) return g_result;
\ 0046 3E66 LD A,102
\ 0048 AD XOR L
\ 0049 B4 OR H
\ 004A 2803 JR Z,?0018
\ 004C ?0016:
39 }
\ 004C ?0017:
\ 004C ?0015:
\ 004C ?0007:
40
41 return NULL;
\ 004C 210000 LD HL,0
42 }
\ 004F ?0018:
\ 004F F1 POP AF
\ 0050 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0053 ChangeMusic:
43 //================================================
44
45
46 /*
47 *******************************************************************************
48 * Description : 换曲时要做的选曲,初始化动作
49 * Arguments :
50 * Returns :真时表示可继续放,假时表示要停止放(播放状态)
51 * Notes :
52 *******************************************************************************
53 */
54 bool ChangeMusic( BYTE Direct, Music_sel_mod_t mod )
55 {
\ 0053 C5 PUSH BC
\ 0054 D5 PUSH DE
\ 0055 F5 PUSH AF
56 bool result;
57
58 //清 WATCH_DOG
59 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0056 DB4E IN A,(78)
\ 0058 CBDF SET 3,A
\ 005A D34E OUT (78),A
60
61 ClearTimePara();
\ 005C 3E00 LD A,BYTE3 ClearTimePara
\ 005E 210000 LD HL,LWRD ClearTimePara
\ 0061 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
62 g_TagInfoBuf[0] = 0x0;
\ 0064 AF XOR A
\ 0065 320000 LD (g_TagInfoBuf),A
63 BankSwitch((unsigned long)FSELInit >> 16);
\ 0068 47 LD B,A
\ 0069 1E00 LD E,BYTE3 fselInit
\ 006B 48 LD C,B
\ 006C CD0000 CALL LWRD BankSwitch
64
65 if (mod == Play_key)
\ 006F 210400 LD HL,4
\ 0072 39 ADD HL,SP
\ 0073 46 LD B,(HL)
\ 0074 05 DEC B
\ 0075 05 DEC B
\ 0076 200D JR NZ,?0020
\ 0078 ?0019:
66 {//play 按键的情况
67 switch (g_amv_vars.repeat_mode)
\ 0078 3A0300 LD A,(g_amv_vars+3)
\ 007B FE03 CP 3
\ 007D 380A JR C,?0051
\ 007F FE06 CP 6
\ 0081 200A JR NZ,?0026
\ 0083 ?0022:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -