📄 ui_play_menu.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:01:04 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\ui_play_menu.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_play_menu.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_play_menu.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_play_menu.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\ui_play_menu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_play_menu(17)
\ 0000 RSEG AP_UI_MNU(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 RSEG APC_UI_MNU(0)
\ 0000 EXTERN CheckPlayrateLimit
\ 0000 EXTERN CheckReplaygapLimit
\ 0000 EXTERN CheckReplaytimesLimit
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN RePlayStatus
\ 0000 EXTERN SRSModeFlag
\ 0000 EXTERN bass_user_callback
\ 0000 EXTERN eq_callback
\ 0000 PUBLIC eq_string
\ 0000 EXTERN g_OldSecTempBackup
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_currentMusicType
\ 0000 EXTERN g_introCNT
\ 0000 EXTERN g_introCntMode
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_result
\ 0000 EXTERN list
\ 0000 EXTERN loop_callback
\ 0000 EXTERN musicpSendCommand
\ 0000 PUBLIC play_string
\ 0000 PUBLIC repeat_string
\ 0000 EXTERN slider
\ 0000 EXTERN speed_callback
\ 0000 EXTERN srs_callback
\ 0000 PUBLIC srs_default_set
\ 0000 PUBLIC srs_string
\ 0000 EXTERN srs_user_callback
\ 0000 PUBLIC srsuser_string
\ 0000 PUBLIC ui_EQ_menu
\ 0000 PUBLIC ui_SRSUSER_menu
\ 0000 PUBLIC ui_SRS_menu
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_loop_menu
\ 0000 PUBLIC ui_play_menu
\ 0000 PUBLIC ui_play_menu_loop
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ui_slider
\ 0000 EXTERN wow_user_callback
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_S_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG AP_UI_MNU
\ 0000 ui_play_menu:
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_play_menu.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
9 *******************************************************************************
10 */
11 #include "ap_music.h"
12
13 #pragma codeseg(AP_UI_MNU)
14 #pragma memory=constseg(APC_UI_MNU)
15
16 const WORD eq_string[7] =
17 {
18 MEQ1, MEQ2, MEQ3, MEQ4, MEQ5, MEQ6, MEQ7
19 };
20 const WORD srsuser_string[4] =
21 {
22 SRS3D,SRSTBAS,SRSFOCUS,MPLAY7
23 };
24 const WORD srs_string[3]=
25 {
26 SRSSET,SRSUSER, DISABSRS
27 };
28
29 const WORD play_string[8] =
30 {
31 MPLAY1, MPLAY2,SRSMAIN, MPLAY3, MPLAY4, MPLAY5, MPLAY6, MPLAY7
32 };
33
34 const WORD repeat_string[7] =
35 {
36 VLOOPM1, VLOOPM2, VLOOPM3, VLOOPM4, VLOOPM5, VLOOPM6, VLOOPM7
37 };
38
39 #pragma memory=default
40
41 int ui_play_menu_loop(void);
42 void srs_default_set(void);
43 extern byte SRSModeFlag;
44 //增加这函数的目的是集中处理这函数退出时都要做的一些事
45 //(减小调用处的程序开销)
46 int ui_play_menu(void)
47 {
\ 0000 D5 PUSH DE
48 int result;
49 result = ui_play_menu_loop();
\ 0001 3E00 LD A,BYTE3 ui_play_menu_loop
\ 0003 211D00 LD HL,LWRD ui_play_menu_loop
\ 0006 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0009 EB EX DE,HL
50 StartIntro(FALSE);
\ 000A AF XOR A
\ 000B 320000 LD (g_introCntMode),A
\ 000E 3A4D00 LD A,(g_music_vars+77)
\ 0011 320000 LD (g_OldSecTempBackup),A
\ 0014 AF XOR A
\ 0015 320000 LD (g_introCNT),A
51 return result;
\ 0018 EB EX DE,HL
52 }
\ 0019 D1 POP DE
\ 001A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 001D ui_play_menu_loop:
53
54 int ui_play_menu_loop(void)
55 {
\ 001D C5 PUSH BC
\ 001E D5 PUSH DE
\ 001F 21EB01 LD HL,491
\ 0022 220600 LD (list+6),HL
56 //int result;
57 static char PlayMenuactive=0; //保持选中菜单的序号
58
59 list.headid = PLAYMENU;
60 list.active = PlayMenuactive;
\ 0025 ED4B0000 LD BC,(?0002)
\ 0029 0600 LD B,0
\ 002B ED430400 LD (list+4),BC
61 list.total = 8;
\ 002F 210800 LD HL,8
\ 0032 220200 LD (list+2),HL
62 list.strid = play_string;
\ 0035 211C00 LD HL,play_string
\ 0038 220000 LD (list),HL
63 list.string_id = g_comval.langid;
\ 003B 3A0C00 LD A,(g_comval+12)
\ 003E 320800 LD (list+8),A
64 g_result = ui_popup_list(&list, NULL);
\ 0041 48 LD C,B
\ 0042 C5 PUSH BC
\ 0043 C5 PUSH BC
\ 0044 110000 LD DE,list
\ 0047 CDD901 CALL LWRD ?0099
\ 004A F1 POP AF
\ 004B F1 POP AF
\ 004C 220000 LD (g_result),HL
65 PlayMenuactive = list.active;
\ 004F 3A0400 LD A,(list+4)
\ 0052 320000 LD (?0002),A
66 DEBUGP(5);
67
68 if (g_result == RESULT_IGNORE)return 0;
\ 0055 3E34 LD A,52
\ 0057 AD XOR L
\ 0058 B4 OR H
\ 0059 CAC501 JP Z,?0007
\ 005C ?0003:
\ 005C ?0004:
69
70 if (g_result != 0)return g_result; //是热键
\ 005C 7D LD A,L
\ 005D B4 OR H
\ 005E C2C801 JP NZ,?0033
\ 0061 ?0005:
\ 0061 ?0006:
71
72 switch (list.active)
\ 0061 ED5B0400 LD DE,(list+4)
\ 0065 CD0000 CALL LWRD ?S_S_SWITCH_L06
\ 0068 0000 DEFW 0
\ 006A 0800 DEFW 8
\ 006C C501 DEFW ?0007
\ 006E 7E00 DEFW ?0008
\ 0070 8500 DEFW ?0009
\ 0072 8C00 DEFW ?0010
\ 0074 AA00 DEFW ?0015
\ 0076 1301 DEFW ?0022
\ 0078 2401 DEFW ?0025
\ 007A 7301 DEFW ?0028
\ 007C C501 DEFW ?0007
\ 007E ?0008:
73 {
74 case 0: //repeat
75 g_result = ui_loop_menu();
\ 007E 3E00 LD A,BYTE3 ui_loop_menu
\ 0080 213B04 LD HL,LWRD ui_loop_menu
\ 0083 1819 JR ?0083
76 return g_result;
77
78 case 1: //eq
\ 0085 ?0009:
79 g_result = ui_EQ_menu();
\ 0085 3E00 LD A,BYTE3 ui_EQ_menu
\ 0087 21E901 LD HL,LWRD ui_EQ_menu
\ 008A 1812 JR ?0083
80 return g_result;
81
82 case 2: //play speed
\ 008C ?0010:
83 if( g_currentMusicType==Music_MP3 ||g_currentMusicType==Music_WMA)
\ 008C 3A0000 LD A,(g_currentMusicType)
\ 008F 3D DEC A
\ 0090 2807 JR Z,?0013
\ 0092 3A0000 LD A,(g_currentMusicType)
\ 0095 3D DEC A
\ 0096 3D DEC A
\ 0097 200E JR NZ,?0012
\ 0099 ?0013:
\ 0099 ?0014:
\ 0099 ?0011:
84 {
85 g_result = ui_SRS_menu();
\ 0099 3E00 LD A,BYTE3 ui_SRS_menu
\ 009B 216002 LD HL,LWRD ui_SRS_menu
\ 009E ?0083:
\ 009E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A1 220000 LD (g_result),HL
86 return g_result;
87 }
\ 00A4 C3C801 JP LWRD ?0033
\ 00A7 ?0012:
88 else
89 break;
\ 00A7 C3C501 JP LWRD ?0007
\ 00AA ?0015:
90 case 3: //play speed
91 //只有在播放MP3并不是在SD卡时才能调节播放速度
92 if( (g_currentMusicType == Music_MP3)
93 && (g_music_vars.location.disk != 'H') )
\ 00AA 3A0000 LD A,(g_currentMusicType)
\ 00AD 3D DEC A
\ 00AE 2060 JR NZ,?0021
\ 00B0 3A0700 LD A,(g_music_vars+7)
\ 00B3 FE48 CP 72
\ 00B5 2859 JR Z,?0021
\ 00B7 ?0019:
\ 00B7 ?0018:
\ 00B7 ?0016:
94 {
95 //show background
96 ClearScreen(NULL);
\ 00B7 59 LD E,C
\ 00B8 50 LD D,B
\ 00B9 CD0000 CALL LWRD ClearScreen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -