📄 ui_play.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:39:47 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_amv\ui_play.c #
# List file = d:\case_i_d913f\ap\ap_amv\list\ui_play.lst #
# Object file = d:\case_i_d913f\ap\ap_amv\obj\ui_play.r01 #
# ASM file = d:\case_i_d913f\ap\ap_amv\list\ui_play.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_amv\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d913f\ap\ap_amv\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_amv\List\ #
# -ND:\case_i_d913f\ap\ap_amv\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\ap\ap_amv\ui_play.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_play(17)
\ 0000 RSEG AP_UI_PLY(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG UDATA0(0)
\ 0000 EXTERN AmvDecModPolling
\ 0000 EXTERN AmvDecSetCMD
\ 0000 EXTERN AmvDecStart
\ 0000 EXTERN AmvRegion
\ 0000 EXTERN ChangeMusic
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN DealMusicFileEnd
\ 0000 EXTERN DisablePA
\ 0000 EXTERN DisplayErrMsg
\ 0000 PUBLIC Dscinf
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FOpen
\ 0000 EXTERN GetInformation
\ 0000 PUBLIC InitLcmDeviceInfor
\ 0000 EXTERN PlayStatus
\ 0000 PUBLIC PrevMusicInPlay
\ 0000 PUBLIC SetAmvWin
\ 0000 EXTERN SetPAVolume
\ 0000 EXTERN SetWindow
\ 0000 PUBLIC ShowNowTime
\ 0000 PUBLIC Show_Bitrate
\ 0000 PUBLIC ToNextMusic
\ 0000 EXTERN Totaltime
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN fp
\ 0000 EXTERN g_amv_vars
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_introCNT
\ 0000 EXTERN g_rSetPlayStatus
\ 0000 EXTERN g_result
\ 0000 EXTERN g_volcounter
\ 0000 EXTERN itoa_2
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN need_draw
\ 0000 EXTERN openPA
\ 0000 EXTERN temp_buffer
\ 0000 PUBLIC ui_play
\ 0000 EXTERN ui_show_d
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?L_MUL_L03
\ 0000 EXTERN ?SL_DIV_L03
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCAT_L11
\ 0000 RSEG AP_UI_PLY
\ 0000 ui_play:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice player stop program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_play.c,v 1.1.1.1 2006/05/22 03:24:02 selina Exp $
10 *******************************************************************************
11 */
12 #include "ap_amv.h"
13 #include "AMVDec.h"
14 #define IntCntValDef 10
15
16 #include "display.h"
17 ColorLcmInfor Dscinf;
18 extern region_t AmvRegion;
19
20 #pragma codeseg(AP_UI_PLY)
21
22 #pragma memory=constseg(APC_UI_PLY)
23 #pragma memory=default
24
25 extern bool g_introCntMode; //是从头开始还是从中途开始,TRUE 为从头开始
26 extern region_t AmvRegion;
27 ///extern BYTE BankCount;
28 int InitLcmDeviceInfor(ColorLcmInfor *infor);
29
30 extern char g_volcounter;
31 extern bool g_rSetPlayStatus;
32 /*
33 ********************************************************************************
34 * int ui_play( void )
35 *
36 * Description : 显示时间,滚屏,AB闪
37 *
38 * Arguments : void
39 *
40 * Returns : void
41 *
42 * Notes :
43 *
44 ********************************************************************************
45 */
46 int ui_play( void )
47 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 DDE5 PUSH IX
\ 0004 F5 PUSH AF
\ 0005 F5 PUSH AF
\ 0006 F5 PUSH AF
\ 0007 F5 PUSH AF
48 char key;
49 int i;
50 signed char tmp;
51 int result;
52
53 need_draw = TRUE;/* need play file */
\ 0008 3E01 LD A,1
\ 000A 320000 LD (need_draw),A
54
55 InitLcmDeviceInfor(&Dscinf);
\ 000D 110000 LD DE,Dscinf
\ 0010 3E00 LD A,BYTE3 InitLcmDeviceInfor
\ 0012 218104 LD HL,LWRD InitLcmDeviceInfor
\ 0015 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
56 openPA(g_amv_vars.volume);
\ 0018 ED5B0200 LD DE,(g_amv_vars+2)
\ 001C 3E00 LD A,BYTE3 openPA
\ 001E 210000 LD HL,LWRD openPA
\ 0021 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0024 ?0003:
57 while (1)
58 {
59
60 if (need_draw)
\ 0024 3A0000 LD A,(need_draw)
\ 0027 B7 OR A
\ 0028 2838 JR Z,?0006
\ 002A ?0005:
61 {
62 fp=FS_FOpen(g_amv_vars.location.filename,FS_OPEN_NORMAL);
\ 002A 0E00 LD C,0
\ 002C 111F00 LD DE,g_amv_vars+31
\ 002F CD0000 CALL LWRD FS_FOpen
\ 0032 220000 LD (fp),HL
63 ClearScreen(NULL);
\ 0035 110000 LD DE,0
\ 0038 CD0000 CALL LWRD ClearScreen
64 AmvDecStart(&Dscinf,fp,&g_amv_vars.amvfilebreakpoint);
\ 003B 213000 LD HL,g_amv_vars+48
\ 003E E5 PUSH HL
\ 003F ED4B0000 LD BC,(fp)
\ 0043 110000 LD DE,Dscinf
\ 0046 3E00 LD A,BYTE3 AmvDecStart
\ 0048 210000 LD HL,LWRD AmvDecStart
\ 004B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 004E F1 POP AF
65 g_introCNT=0;
\ 004F AF XOR A
\ 0050 320000 LD (g_introCNT),A
\ 0053 ?0008:
66 while(ap_get_message() != 0);
\ 0053 CD0000 CALL LWRD ap_get_message
\ 0056 B7 OR A
\ 0057 20FA JR NZ,?0008
\ 0059 ?0009:
\ 0059 ?0007:
67 PlayStatus = PlaySta;
\ 0059 3E02 LD A,2
\ 005B 320000 LD (PlayStatus),A
68 need_draw = FALSE;
\ 005E AF XOR A
\ 005F 320000 LD (need_draw),A
\ 0062 ?0006:
\ 0062 ?0012:
69 }
70
71 do
72 {
73 // output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
74 key = ap_get_message(); //读键值
\ 0062 CD0000 CALL LWRD ap_get_message
\ 0065 210000 LD HL,0
\ 0068 39 ADD HL,SP
\ 0069 77 LD (HL),A
75 //这里是处理快退大文件时可能丢掉KEYUP键的问题
76 }while(((PlayStatus == FFPlaySta) || (PlayStatus == FBPlaySta))
77 &&(key!=0)
78 &&(key!=(AP_KEY_PREV | AP_KEY_UP))
79 &&(key!=(AP_KEY_NEXT | AP_KEY_UP)));
\ 006A 3A0000 LD A,(PlayStatus)
\ 006D FE03 CP 3
\ 006F 2804 JR Z,?0013
\ 0071 FE04 CP 4
\ 0073 200C JR NZ,?0010
\ 0075 ?0013:
\ 0075 ?0014:
\ 0075 AF XOR A
\ 0076 B6 OR (HL)
\ 0077 2808 JR Z,?0010
\ 0079 FE25 CP 37
\ 007B 2804 JR Z,?0010
\ 007D FE26 CP 38
\ 007F 20E1 JR NZ,?0006
\ 0081 ?0010:
80 // key = ap_get_message(); //读键值
81 switch(key)
\ 0081 5E LD E,(HL)
\ 0082 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 0085 0B00 DEFW 11
\ 0087 03 DEFB 3
\ 0088 04 DEFB 4
\ 0089 1C DEFB 28
\ 008A 1D DEFB 29
\ 008B 21 DEFB 33
\ 008C 25 DEFB 37
\ 008D 26 DEFB 38
\ 008E 43 DEFB 67
\ 008F 44 DEFB 68
\ 0090 85 DEFB 133
\ 0091 86 DEFB 134
\ 0092 7201 DEFW ?0051
\ 0094 D500 DEFW ?0025
\ 0096 EA00 DEFW ?0028
\ 0098 B200 DEFW ?0019
\ 009A AA00 DEFW ?0018
\ 009C 1501 DEFW ?0037
\ 009E FE00 DEFW ?0031
\ 00A0 3B01 DEFW ?0043
\ 00A2 9501 DEFW ?0056
\ 00A4 4901 DEFW ?0044
\ 00A6 B200 DEFW ?0019
\ 00A8 AA00 DEFW ?0018
\ 00AA ?0018:
82 {
83 case AP_KEY_VOLSUB:
84 case AP_KEY_VOLSUB | AP_KEY_HOLD:
85 g_amv_vars.volume-=2;
\ 00AA 3A0200 LD A,(g_amv_vars+2)
\ 00AD C6FE ADD A,254
\ 00AF 320200 LD (g_amv_vars+2),A
\ 00B2 ?0019:
86 case AP_KEY_VOLADD:
87 case AP_KEY_VOLADD | AP_KEY_HOLD:
88 g_amv_vars.volume++;
\ 00B2 210200 LD HL,g_amv_vars+2
\ 00B5 34 INC (HL)
89 if(g_amv_vars.volume==0xff)g_amv_vars.volume=0;
\ 00B6 3A0200 LD A,(g_amv_vars+2)
\ 00B9 3C INC A
\ 00BA 2003 JR NZ,?0021
\ 00BC ?0020:
\ 00BC 320200 LD (g_amv_vars+2),A
\ 00BF ?0021:
90 if(g_amv_vars.volume>=31)g_amv_vars.volume=31;
\ 00BF 3A0200 LD A,(g_amv_vars+2)
\ 00C2 FE1F CP 31
\ 00C4 3805 JR C,?0023
\ 00C6 ?0022:
\ 00C6 3E1F LD A,31
\ 00C8 320200 LD (g_amv_vars+2),A
\ 00CB ?0023:
91 SetPAVolume(g_amv_vars.volume);
\ 00CB ED5B0200 LD DE,(g_amv_vars+2)
\ 00CF CD0000 CALL LWRD SetPAVolume
92 break;
\ 00D2 C39501 JP LWRD ?0056
\ 00D5 ?0024:
93 case AP_MSG_STANDBY:
94 break;
\ 00D5 ?0025:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -