📄 ui_follow.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:55 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\ui_follow.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_follow.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_follow.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_follow.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_follow.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_follow(17)
\ 0000 RSEG AP_UI_FL(0)
\ 0000 RSEG CSTR(0)
\ 0000 EXTERN ABPointTimeSize
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN ChangeVolume
\ 0000 EXTERN DealForExitRec
\ 0000 EXTERN DealPlayKey
\ 0000 EXTERN DisplayErrMsg
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FCreate
\ 0000 EXTERN FS_FRemove
\ 0000 EXTERN FS_FWrite
\ 0000 EXTERN FS_GetInfo
\ 0000 EXTERN FS_GetSpace
\ 0000 EXTERN GetBattery
\ 0000 EXTERN OpenMusic
\ 0000 EXTERN RePlayStatus
\ 0000 EXTERN RefreshMainScreen
\ 0000 EXTERN Replaytimes_CNT
\ 0000 EXTERN ReturnNotInit
\ 0000 EXTERN ShowNowTime
\ 0000 EXTERN Show_time_FC
\ 0000 EXTERN UpDisplayFlag
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN g_2HZ_CNT
\ 0000 EXTERN g_FCexitflag
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN g_result
\ 0000 EXTERN musicpSendCommand
\ 0000 EXTERN need_draw
\ 0000 EXTERN return_to_play
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_followAB
\ 0000 PUBLIC ui_followRec
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN wavrProceed
\ 0000 EXTERN wavrSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?L_INC_L03
\ 0000 EXTERN ?L_DEC_L03
\ 0000 EXTERN ?L_DECASG_L03
\ 0000 EXTERN ?S_V_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_FL
\ 0000 ui_followRec:
1 /*
2 *******************************************************************************
3 * SDK30F_D1
4 * music player follow compare sub
5 *
6 * (c) Copyright 2002, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * File: ui_follow.c
10 * By : rcmai
11 * Version: 1> v1.00 first version 2004-3-19 8:28
12 *******************************************************************************
13 * $Id: ui_follow.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
14 *******************************************************************************
15 */
16
17 #include "ap_music.h"
18
19 #define DEF_RecLowBatt 5//定义最低能录音的电压
20
21 //判断是低电的次数,当电压值低于DEF_RecLowBatt值次数超过这个值时确认为低电
22 #define DEF_RecLowBatTime 5
23 extern char return_to_play; //为一表示从其他界面返回播放界面
24 extern BYTE Replaytimes_CNT; //
25 extern bool ReturnNotInit; //TRUE:表示下一个调用不用初始化,
26 extern WORD ABPointTimeSize;
27 extern bool g_FCexitflag;
28
29 void DealForExitRec( void ); //退出录音时的处理
30 void Show_time_FC( void );
31 void OpenMusic( void );
32
33 #pragma codeseg(AP_UI_FL)
34 /*
35 ********************************************************************************
36 * int ui_followRec( void )
37 *
38 * Description : 跟读--------录音子状态
39 *
40 * Arguments : void
41 *
42 * Returns : int
43 * RESULT_UI_STOP: 表示要进入停止状态,此时所有module已关闭
44 * key: 热健消息
45 * NULL: 表示正常退出
46 *
47 * Notes : 在此状态下,按play到stop状态;按mode到play;按NEXT到对比状态;
48 *
49 ********************************************************************************
50 */
51 int ui_followRec( void )
52 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F2FF DEFW 65522
\ 0005 FDE5 PUSH IY
53 int key;
54 long DiskSpace;
55 HANDLE TempFileHandle;
56 BYTE LowBatt_CNT = 0;//低电计数器
\ 0007 DD36FA00 LD (IX-6),0
57 int result;
58
59 if (++Replaytimes_CNT > g_music_vars.replaytimes)
\ 000B 210000 LD HL,Replaytimes_CNT
\ 000E 34 INC (HL)
\ 000F 46 LD B,(HL)
\ 0010 3A0400 LD A,(g_music_vars+4)
\ 0013 B8 CP B
\ 0014 110000 LD DE,?0004
\ 0017 3008 JR NC,?0003
\ 0019 ?0002:
60 {
61 FS_FRemove(FollowReadTempFileName); //如有这个文件就删除
\ 0019 CD0000 CALL LWRD FS_FRemove
62 OpenMusic();
\ 001C CDD202 CALL LWRD ?0134
63 RePlayStatus = ABLoopPlay;
64 UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
65 need_draw = TRUE;
\ 001F 183F JR ?0092
66 return NULL;
67 }
\ 0021 ?0003:
68
69
70 FS_FRemove(FollowReadTempFileName); //如有这个文件就删除
\ 0021 CD0000 CALL LWRD FS_FRemove
71 DiskSpace = FS_GetSpace(1);
\ 0024 1E01 LD E,1
\ 0026 CD0000 CALL LWRD FS_GetSpace
\ 0029 DD75F4 LD (IX-12),L
\ 002C DD74F5 LD (IX-11),H
\ 002F DD71F6 LD (IX-10),C
\ 0032 DD70F7 LD (IX-9),B
72
73 //如果磁盘空间少于100k不能跟读
74 //if( DiskSpace <= 32 + 20 )
75 if( DiskSpace <= 200 )
\ 0035 C5 PUSH BC
\ 0036 E5 PUSH HL
\ 0037 010000 LD BC,0
\ 003A 21C800 LD HL,200
\ 003D CD0000 CALL LWRD ?SL_CMP_L03
\ 0040 3820 JR C,?0006
\ 0042 ?0005:
76 {
77 DisplayErrMsg(MWRIERR);
\ 0042 CD0103 CALL LWRD ?0136
78 OpenMusic();
\ 0045 3E00 LD A,BYTE3 OpenMusic
\ 0047 210000 LD HL,LWRD OpenMusic
\ 004A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
79 RePlayStatus = ABLoopPlay;
\ 004D 3E03 LD A,3
\ 004F 320000 LD (RePlayStatus),A
80 //UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
81 SetFullInterface();
\ 0052 AF XOR A
\ 0053 320000 LD (ui_auto_update),A
\ 0056 210000 LD HL,UpDisplayFlag
\ 0059 7E LD A,(HL)
\ 005A F6C1 OR 193
\ 005C 77 LD (HL),A
\ 005D 23 INC HL
\ 005E 36FF LD (HL),255
82 need_draw = TRUE;
\ 0060 ?0092:
\ 0060 1829 JR ?0093
83 return NULL;
84 }
\ 0062 ?0006:
85
86 TempFileHandle = FS_FCreate(FollowReadTempFileName);
\ 0062 110000 LD DE,?0004
\ 0065 CD0000 CALL LWRD FS_FCreate
\ 0068 DD75F8 LD (IX-8),L
\ 006B DD74F9 LD (IX-7),H
87 if( TempFileHandle == NULL )
\ 006E 7D LD A,L
\ 006F B4 OR H
\ 0070 201B JR NZ,?0008
\ 0072 ?0007:
88 {
89 switch ( FS_GetInfo() )
\ 0072 CD0000 CALL LWRD FS_GetInfo
\ 0075 FE06 CP 6
\ 0077 2005 JR NZ,?0011
\ 0079 ?0010:
90 {
91 case FS_INFO_SPACE_OUT: //6 表示文件操作或目录操作没有磁盘空间,不能写数据或者扩展子目录
92 DisplayErrMsg(MWRIERR);
\ 0079 118A01 LD DE,394
\ 007C 1807 JR ?0079
93 break;
\ 007E ?0011:
\ 007E FE07 CP 7
\ 0080 2006 JR NZ,?0009
94 case FS_INFO_DIR_OUT: //7 文件操作根目录目录项满
95 DisplayErrMsg(MDIROUT);
\ 0082 118D01 LD DE,397
\ 0085 ?0079:
\ 0085 CD0403 CALL LWRD ?0137
96 break;
\ 0088 ?0012:
97
98 default:
99 break;
\ 0088 ?0009:
100 }
101 OpenMusic();
\ 0088 CDD202 CALL LWRD ?0134
102 RePlayStatus = ABLoopPlay;
103 UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
104 need_draw = TRUE;
\ 008B ?0093:
\ 008B 1836 JR ?0094
105 return NULL;
106 }
\ 008D ?0008:
107 {
108 char *i;
109 i = (char *)0x1000;
\ 008D DD36FE10 LD (IX-2),16
110 FS_FWrite(i, 1, TempFileHandle);
\ 0091 E5 PUSH HL
\ 0092 0E01 LD C,1
\ 0094 58 LD E,B
\ 0095 DD56FE LD D,(IX-2)
\ 0098 CD0000 CALL LWRD FS_FWrite
\ 009B E1 POP HL
111 }
112 FS_FClose( TempFileHandle );
\ 009C DD5EF8 LD E,(IX-8)
\ 009F DD56F9 LD D,(IX-7)
\ 00A2 CD0000 CALL LWRD FS_FClose
113 FS_FRemove(FollowReadTempFileName);
\ 00A5 110000 LD DE,?0004
\ 00A8 CD0000 CALL LWRD FS_FRemove
114
115
116 // 如电量不足够,就退出。
117 g_result = GetBattery();
\ 00AB CD0000 CALL LWRD GetBattery
\ 00AE 4F LD C,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -