📄 select_music_list.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:19 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\select_music_list.c #
# List file = d:\case_i_d913f\ap\ap_music\list\select_music_list.lst#
# Object file = d:\case_i_d913f\ap\ap_music\obj\select_music_list.r01#
# ASM file = d:\case_i_d913f\ap\ap_music\list\select_music_list.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\select_music_list.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME select_music_list(17)
\ 0000 RSEG AP_SELECT_LIST(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG APC_SELECT_LIST(0)
\ 0000 RSEG APD_SELECT_LIST(0)
\ 0000 PUBLIC Backbuf
\ 0000 EXTERN DisplayErrMsg
\ 0000 PUBLIC FILENAMELSIT2
\ 0000 EXTERN FS_Backup
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FOpen
\ 0000 EXTERN FS_FRead
\ 0000 EXTERN FS_FSeek
\ 0000 EXTERN FS_Restore
\ 0000 PUBLIC SelectListBuffer
\ 0000 PUBLIC TALBFileName2
\ 0000 PUBLIC TIT2FileName2
\ 0000 PUBLIC TPE1FileName2
\ 0000 EXTERN g_file_list_total
\ 0000 EXTERN g_music_vars
\ 0000 PUBLIC select_music_list
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?US_MOD_L02
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?C_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_SELECT_LIST
\ 0000 select_music_list:
1 /******************************************************************************
2 ACTOS AP
3 * This program demostrates how to build an AP
4 *
5 * (c) Copyright Actions Co,Ld.
6 *
7 * $Id: music_list_menu.c,v 1.1.1.1 2007/03/08 16:30:22 mars Exp $
8 *******************************************************************************
9 */
10 #include "ap_music.h"
11 #define OneLocationBYTE 41 //sizeof(location)
12 #pragma memory=constseg(APC_SELECT_LIST)
13 const char TIT2FileName2[] = "TIT2 BIN" ; //标题
14 const char TPE1FileName2[] = "TPE1 BIN" ; //艺术家
15 const char TALBFileName2[] = "TALB BIN" ; //专辑
16 const char FILENAMELSIT2[] = "FILENAMEBIN" ; //文件名
17
18 #pragma memory=dataseg(APD_SELECT_LIST)
19 char SelectListBuffer[512];
20 char Backbuf[32];
21 #pragma memory=default
22
23 #pragma codeseg(AP_SELECT_LIST)
24
25 /////////////////////////////////////////////////////////////////////////////////////
26 /****************************************************************************************
27 * Music_type_t CheckMusicType(char *filename)
28 *
29 * Description : 切换播放列表文件
30 *
31 * Arguments : BYTE Direct 切换方向
32 *
33 * Returns : TRUE: 切换成功,FALSE 失败
34 *
35 * Notes :
36 *
37 ********************************************************************************
38 */
39 int select_music_list(BYTE Direct)
40 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 FAFF DEFW -6
\ 0005 FDE5 PUSH IY
41 long CurrentSeekNum = 0;
42 // long ListTotalSector; //列表文件总扇区数
43 handle list_fp;
44 unsigned int list_num;
45 // output8(0x27,IO27Bak&0xfe); //关DSP中断
46 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 0007 210000 LD HL,0
\ 000A E5 PUSH HL
\ 000B 0E02 LD C,2
\ 000D 110002 LD DE,Backbuf
\ 0010 CD0000 CALL LWRD FS_Backup
\ 0013 E1 POP HL
47 FS_CD(":"); //返回根目录查找列表
\ 0014 110000 LD DE,?0002
\ 0017 CD0000 CALL LWRD FS_CD
48 switch(g_music_vars.file_list_type)
\ 001A AF XOR A
\ 001B ED5B5C00 LD DE,(g_music_vars+92)
\ 001F CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 0022 00 DEFB 0
\ 0023 0400 DEFW 4
\ 0025 4B00 DEFW ?0003
\ 0027 2F00 DEFW ?0004
\ 0029 3500 DEFW ?0005
\ 002B 3B00 DEFW ?0006
\ 002D 4100 DEFW ?0007
\ 002F ?0004:
49 {
50 case 0:
51 list_fp = FS_FOpen(TIT2FileName2,FS_OPEN_NORMAL);
\ 002F 4F LD C,A
\ 0030 110000 LD DE,TIT2FileName2
\ 0033 1810 JR ?0026
52 break;
\ 0035 ?0005:
53 case 1:
54 list_fp = FS_FOpen(TPE1FileName2,FS_OPEN_NORMAL);
\ 0035 4F LD C,A
\ 0036 110C00 LD DE,TPE1FileName2
\ 0039 180A JR ?0026
55 break;
\ 003B ?0006:
56 case 2:
57 list_fp = FS_FOpen(TALBFileName2,FS_OPEN_NORMAL);
\ 003B 4F LD C,A
\ 003C 111800 LD DE,TALBFileName2
\ 003F 1804 JR ?0026
58 break;
\ 0041 ?0007:
59 case 3:
60 list_fp = FS_FOpen(FILENAMELSIT2,FS_OPEN_NORMAL);
\ 0041 4F LD C,A
\ 0042 112400 LD DE,FILENAMELSIT2
\ 0045 ?0026:
\ 0045 CD0000 CALL LWRD FS_FOpen
\ 0048 E5 PUSH HL
\ 0049 FDE1 POP IY
61 break;
\ 004B ?0008:
62 default:
63 break;
\ 004B ?0003:
64 }
65 // output8(0x27,IO27Bak);
66 if(NULL==list_fp) //列表没找到
\ 004B FDE5 PUSH IY
\ 004D E1 POP HL
\ 004E 7D LD A,L
\ 004F B4 OR H
\ 0050 2019 JR NZ,?0010
\ 0052 ?0009:
67 {
68 // FS_FClose(list_fp);
69 DisplayErrMsg(NOLIST);
\ 0052 11A101 LD DE,417
\ 0055 3E00 LD A,BYTE3 DisplayErrMsg
\ 0057 210000 LD HL,LWRD DisplayErrMsg
\ 005A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -