📄 sub_function2.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:07 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_amv\sub_function2.c #
# List file = d:\case_i_d90f\ap\ap_amv\list\sub_function2.lst #
# Object file = d:\case_i_d90f\ap\ap_amv\obj\sub_function2.r01 #
# ASM file = d:\case_i_d90f\ap\ap_amv\list\sub_function2.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_function2.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_function2(17)
\ 0000 RSEG APC_SUB_FUN(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG APD_SUB_FUN(0)
\ 0000 PUBLIC CheckMusicType
\ 0000 PUBLIC ClearTimePara
\ 0000 PUBLIC DUMP_TEST
\ 0000 PUBLIC DealErrCase
\ 0000 EXTERN EnableDAC
\ 0000 EXTERN EnablePA
\ 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_GetName
\ 0000 EXTERN FS_Restore
\ 0000 EXTERN GetDefaultComval
\ 0000 PUBLIC GetInformation
\ 0000 PUBLIC GetInformation1
\ 0000 PUBLIC MY_DUMP
\ 0000 EXTERN PutS
\ 0000 EXTERN ResClose
\ 0000 EXTERN SetPAVolume
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN Totaltime
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN VMRead
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN dir_name
\ 0000 PUBLIC fp
\ 0000 EXTERN fselGetErrID
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN g_BatteryType
\ 0000 EXTERN g_PAOpenFlag
\ 0000 EXTERN g_Resfp_Sav
\ 0000 EXTERN g_TagInfoBuf
\ 0000 EXTERN g_amv_vars
\ 0000 EXTERN g_comval
\ 0000 PUBLIC g_fileheadinfo
\ 0000 EXTERN g_langid
\ 0000 EXTERN itoa4
\ 0000 PUBLIC make_dirname
\ 0000 PUBLIC openDAC
\ 0000 PUBLIC openPA
\ 0000 PUBLIC read_var
\ 0000 EXTERN ui_show_msg
\ 0000 EXTERN unitochar
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 RSEG APC_SUB_FUN
\ 0000 MY_DUMP:
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_function2.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(APC_SUB_FUN)
14
15 #pragma memory=constseg(APD_SUB_FUN)
16 char g_fileheadinfo[512]; //get file first sector data
17 #pragma memory=default
18
19 extern SD_FILE* g_Resfp_Sav;
20 extern bool ActiveDriveOK;
21 handle fp;
22
23 extern byte fselDirNo[8];
24 extern word fselFileNo;
25
26 void MY_DUMP(char *string, int value)
27 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
\ 0003 F5 PUSH AF
\ 0004 F5 PUSH AF
28 char dump_buf[6];
29 dump_buf[0] = ',';
\ 0005 210000 LD HL,0
\ 0008 39 ADD HL,SP
\ 0009 362C LD (HL),44
30 SetTextPos(0, 16);
\ 000B 0E10 LD C,16
\ 000D 1E00 LD E,0
\ 000F CD0000 CALL LWRD SetTextPos
31 PutS((string), -1);
\ 0012 0EFF LD C,255
\ 0014 210600 LD HL,6
\ 0017 39 ADD HL,SP
\ 0018 5E LD E,(HL)
\ 0019 23 INC HL
\ 001A 56 LD D,(HL)
\ 001B CD0000 CALL LWRD PutS
32 itoa4((value), &dump_buf[1]);
\ 001E 210000 LD HL,0
\ 0021 39 ADD HL,SP
\ 0022 010100 LD BC,1
\ 0025 09 ADD HL,BC
\ 0026 4D LD C,L
\ 0027 44 LD B,H
\ 0028 210800 LD HL,8
\ 002B 39 ADD HL,SP
\ 002C 5E LD E,(HL)
\ 002D 23 INC HL
\ 002E 56 LD D,(HL)
\ 002F 3E00 LD A,BYTE3 itoa4
\ 0031 210000 LD HL,LWRD itoa4
\ 0034 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
33 dump_buf[5] = '>';
\ 0037 210500 LD HL,5
\ 003A 39 ADD HL,SP
\ 003B 363E LD (HL),62
34
35 PutS(dump_buf, 6);
\ 003D 0E06 LD C,6
\ 003F 210000 LD HL,0
\ 0042 39 ADD HL,SP
\ 0043 EB EX DE,HL
\ 0044 CD0000 CALL LWRD PutS
36 UpdateScreen(NULL);
\ 0047 110000 LD DE,0
\ 004A CD0000 CALL LWRD UpdateScreen
\ 004D ?0003:
37 while( ap_get_message() != (AP_KEY_PLAY| AP_KEY_UP)) {;}
\ 004D CD0000 CALL LWRD ap_get_message
\ 0050 FE21 CP 33
\ 0052 20F9 JR NZ,?0003
\ 0054 ?0004:
38 }
\ 0054 ?0002:
\ 0054 210A00 LD HL,10
\ 0057 39 ADD HL,SP
\ 0058 F9 LD SP,HL
\ 0059 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 005C DUMP_TEST:
39
40 void DUMP_TEST(char *string)
41 {
\ 005C C5 PUSH BC
\ 005D DDE5 PUSH IX
\ 005F 21F4FF LD HL,65524
\ 0062 39 ADD HL,SP
\ 0063 F9 LD SP,HL
\ 0064 D5 PUSH DE
\ 0065 DDE1 POP IX
42 char str[9];
43 char i;
44 for(i = 0; i<8;i++)
\ 0067 3600 LD (HL),0
\ 0069 ?0006:
\ 0069 7E LD A,(HL)
\ 006A FE08 CP 8
\ 006C 3016 JR NC,?0005
\ 006E ?0007:
45 {
46 str[i] = string[i] + 0x30;
\ 006E 4F LD C,A
\ 006F 0600 LD B,0
\ 0071 DDE5 PUSH IX
\ 0073 E1 POP HL
\ 0074 09 ADD HL,BC
\ 0075 7E LD A,(HL)
\ 0076 C630 ADD A,48
\ 0078 210200 LD HL,2
\ 007B 39 ADD HL,SP
\ 007C 09 ADD HL,BC
\ 007D 77 LD (HL),A
\ 007E 68 LD L,B
\ 007F 60 LD H,B
\ 0080 39 ADD HL,SP
\ 0081 34 INC (HL)
\ 0082 18E5 JR ?0006
\ 0084 ?0005:
47 }
48 str[8] = 0;
\ 0084 210A00 LD HL,10
\ 0087 39 ADD HL,SP
\ 0088 3600 LD (HL),0
49 SetTextPos(0, 16);
\ 008A 0E10 LD C,16
\ 008C 1E00 LD E,0
\ 008E CD0000 CALL LWRD SetTextPos
50 PutS((str), -1);
\ 0091 0EFF LD C,255
\ 0093 210200 LD HL,2
\ 0096 39 ADD HL,SP
\ 0097 EB EX DE,HL
\ 0098 CD0000 CALL LWRD PutS
51 UpdateScreen(NULL);
\ 009B 110000 LD DE,0
\ 009E CD0000 CALL LWRD UpdateScreen
\ 00A1 ?0010:
52 while( ap_get_message() != (AP_KEY_PLAY| AP_KEY_UP)) {;}
\ 00A1 CD0000 CALL LWRD ap_get_message
\ 00A4 FE21 CP 33
\ 00A6 20F9 JR NZ,?0010
\ 00A8 ?0011:
53 }
\ 00A8 ?0009:
\ 00A8 210C00 LD HL,12
\ 00AB 39 ADD HL,SP
\ 00AC F9 LD SP,HL
\ 00AD DDE1 POP IX
\ 00AF C1 POP BC
\ 00B0 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00B3 CheckMusicType:
54 /*
55 ********************************************************************************
56 * Music_type_t CheckMusicType(char *filename)
57 *
58 * Description : 检测当前是哪种类型的MUSIC文件
59 *
60 * Arguments : char *filename 文件名
61 *
62 * Returns : Music_type_t 文件类型
63 *
64 * Notes :
65 *
66 ********************************************************************************
67 */
68 Music_type_t CheckMusicType( char * filename )
69 {
\ 00B3 D5 PUSH DE
70
71 }
\ 00B4 E1 POP HL
\ 00B5 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00B8 make_dirname:
72
73 /*
74 ********************************************************************************
75 * void make_dirname(void)
76 *
77 * Description : 读系统变量和ap局部变量
78 *
79 * Arguments : void
80 *
81 * Returns : void
82 *
83 * Notes :
84 *
85 ********************************************************************************
86 */
87 void make_dirname(void)
88 {
\ 00B8 C5 PUSH BC
\ 00B9 D5 PUSH DE
\ 00BA DDE5 PUSH IX
\ 00BC 21E0FF LD HL,65504
\ 00BF 39 ADD HL,SP
\ 00C0 F9 LD SP,HL
89 int result;
90 char Backbuf[32];
91 fselGetLocation(&g_amv_vars.location);
\ 00C1 110500 LD DE,g_amv_vars+5
\ 00C4 3E00 LD A,BYTE3 fselGetLocation
\ 00C6 210000 LD HL,LWRD fselGetLocation
\ 00C9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
92 if(g_amv_vars.location.path[0]==':')
\ 00CC 3A1300 LD A,(g_amv_vars+19)
\ 00CF FE3A CP 58
\ 00D1 200B JR NZ,?0013
\ 00D3 ?0012:
93 {
94 strcpy(dir_name,"ROOT");
\ 00D3 110000 LD DE,?0014
\ 00D6 210000 LD HL,dir_name
\ 00D9 CD0000 CALL LWRD ?STRCPY_L11
95 }
96 else
\ 00DC 1864 JR ?0015
\ 00DE ?0013:
97 {
98
99 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 00DE 210000 LD HL,0
\ 00E1 E5 PUSH HL
\ 00E2 0E02 LD C,2
\ 00E4 23 INC HL
\ 00E5 23 INC HL
\ 00E6 39 ADD HL,SP
\ 00E7 EB EX DE,HL
\ 00E8 CD0000 CALL LWRD FS_Backup
\ 00EB E1 POP HL
100
101 dir_name[0] = ':';
\ 00EC 3E3A LD A,58
\ 00EE 320000 LD (dir_name),A
102 FS_CD(dir_name);
\ 00F1 110000 LD DE,dir_name
\ 00F4 CD0000 CALL LWRD FS_CD
103 memcpy(dir_name, g_amv_vars.location.path, 12);
\ 00F7 010C00 LD BC,12
\ 00FA 110000 LD DE,dir_name
\ 00FD 211300 LD HL,g_amv_vars+19
\ 0100 EDB0 LDIR
104 result = FS_GetName(dir_name, 14); //取出长名
\ 0102 0E0E LD C,14
\ 0104 110000 LD DE,dir_name
\ 0107 CD0000 CALL LWRD FS_GetName
\ 010A 0600 LD B,0
105 if (result != 0)
\ 010C B7 OR A
\ 010D 2815 JR Z,?0017
\ 010F ?0016:
106 {
107 unitochar(dir_name, sizeof(dir_name), g_langid);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -