📄 ui_play.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:35:34 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_reader\ui_play.c #
# List file = d:\case_i_d913f\ap\ap_reader\list\ui_play.lst #
# Object file = d:\case_i_d913f\ap\ap_reader\obj\ui_play.r01 #
# ASM file = d:\case_i_d913f\ap\ap_reader\list\ui_play.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_reader\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d913f\ap\ap_reader\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_reader\List\ #
# -ND:\case_i_d913f\ap\ap_reader\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_READER\ui_play.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_play(17)
\ 0000 RSEG CODE_1(0)
\ 0000 RSEG UDATA0(0)
\ 0000 EXTERN BankSwitch
\ 0000 PUBLIC Delaytime
\ 0000 EXTERN FS_Exit
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FOpen
\ 0000 EXTERN FS_GetFileLen
\ 0000 EXTERN FS_GetUnalignedLen
\ 0000 EXTERN GetDCStatus
\ 0000 EXTERN LoadData
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 PUBLIC Stop_display
\ 0000 EXTERN ToPrevScreenPosition
\ 0000 EXTERN active
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN bookmark_op
\ 0000 PUBLIC count_autoplay
\ 0000 PUBLIC do_play
\ 0000 EXTERN fselGetByNO
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_reader_vars
\ 0000 EXTERN need_sel_file
\ 0000 EXTERN ui_err_msg
\ 0000 PUBLIC view_file
\ 0000 EXTERN view_page_down
\ 0000 EXTERN view_page_up
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?L_LSH_L03
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE_1
\ 0000 do_play:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * reader program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *
10 *******************************************************************************
11 */
12 #include "actos.h"
13 #include "enhanced.h"
14 #include "ap_common.h"
15 #include "display.h"
16 #include "ap_reader.h"
17 #include "TxtDec.h"
18 #include "bookmark.h"
19 #include "mmcmd.h"//模块层命令名定义
20
21
22 char Stop_display;
23 char count_autoplay;
24 char Delaytime;
25
26 extern bool need_sel_file;
27 #pragma codeseg(CODE_1)
28
29
30 int view_file( void );
31 /*
32 ********************************************************************************
33 *
34 ********************************************************************************
35 */
36 int do_play(void)
37 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 DDE5 PUSH IX
\ 0004 21F6FF LD HL,65526
\ 0007 39 ADD HL,SP
\ 0008 F9 LD SP,HL
38
39 char key;
40 int result;
41 DC hDc;
42
43 //保存当前设备状态
44 GetDCStatus(&hDc);
\ 0009 EB EX DE,HL
\ 000A CD0000 CALL LWRD GetDCStatus
45
46 SetBackgdColor(Color_MENU_def);
\ 000D 010000 LD BC,0
\ 0010 11FFFF LD DE,65535
\ 0013 CD0000 CALL LWRD SetBackgdColor
47 SetPenColor(Color_BLACK_def);
\ 0016 010000 LD BC,0
\ 0019 59 LD E,C
\ 001A 50 LD D,B
\ 001B CD0000 CALL LWRD SetPenColor
48 // 初始化打开文件
49 fselGetByNO(g_reader_vars.location.filename, active + 1);
\ 001E ED4B0000 LD BC,(active)
\ 0022 03 INC BC
\ 0023 112000 LD DE,g_reader_vars+32
\ 0026 3E00 LD A,BYTE3 fselGetByNO
\ 0028 210000 LD HL,LWRD fselGetByNO
\ 002B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
50 g_reader_vars.g_txt.FileHandle =FS_FOpen(g_reader_vars.location.filename,FS_OPEN_NORMAL);
\ 002E 0E00 LD C,0
\ 0030 112000 LD DE,g_reader_vars+32
\ 0033 CD0000 CALL LWRD FS_FOpen
\ 0036 223100 LD (g_reader_vars+49),HL
51 if( g_reader_vars.g_txt.FileHandle == NULL )
\ 0039 7D LD A,L
\ 003A B4 OR H
\ 003B 2019 JR NZ,?0003
\ 003D ?0002:
52 { // 错误处理
53 ui_err_msg(MFMTERR,MFMTERR,g_comval.langid);
\ 003D ED4B0C00 LD BC,(g_comval+12)
\ 0041 47 LD B,A
\ 0042 C5 PUSH BC
\ 0043 011A02 LD BC,538
\ 0046 59 LD E,C
\ 0047 50 LD D,B
\ 0048 3E00 LD A,BYTE3 ui_err_msg
\ 004A 210000 LD HL,LWRD ui_err_msg
\ 004D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0050 F1 POP AF
54 key = 0;
55 return 0;
\ 0051 210000 LD HL,0
56 }
\ 0054 1863 JR ?0004
\ 0056 ?0003:
57
58 g_reader_vars.g_txt.SectorTotal = FS_GetFileLen( g_reader_vars.g_txt.FileHandle ) ;
\ 0056 EB EX DE,HL
\ 0057 CD0000 CALL LWRD FS_GetFileLen
\ 005A 224100 LD (g_reader_vars+65),HL
59 g_reader_vars.g_txt.FileLengthBytes = ((long)( g_reader_vars.g_txt.SectorTotal-1) * FILE_SECTOR ) + FS_GetUnalignedLen( g_reader_vars.g_txt.FileHandle );
\ 005D 01FFFF LD BC,65535
\ 0060 09 ADD HL,BC
\ 0061 03 INC BC
\ 0062 3E09 LD A,9
\ 0064 CD0000 CALL LWRD ?L_LSH_L03
\ 0067 C5 PUSH BC
\ 0068 E5 PUSH HL
\ 0069 ED5B3100 LD DE,(g_reader_vars+49)
\ 006D CD0000 CALL LWRD FS_GetUnalignedLen
\ 0070 7C LD A,H
\ 0071 07 RLCA
\ 0072 9F SBC A,A
\ 0073 5F LD E,A
\ 0074 53 LD D,E
\ 0075 C1 POP BC
\ 0076 09 ADD HL,BC
\ 0077 EB EX DE,HL
\ 0078 C1 POP BC
\ 0079 ED4A ADC HL,BC
\ 007B 4D LD C,L
\ 007C 44 LD B,H
\ 007D EB EX DE,HL
\ 007E 223300 LD (g_reader_vars+51),HL
\ 0081 ED433500 LD (g_reader_vars+53),BC
60
61 result = view_file();
\ 0085 3E00 LD A,BYTE3 view_file
\ 0087 21C700 LD HL,LWRD view_file
\ 008A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 008D E5 PUSH HL
\ 008E DDE1 POP IX
62
63
64 FS_FClose( g_reader_vars.g_txt.FileHandle );
\ 0090 ED5B3100 LD DE,(g_reader_vars+49)
\ 0094 CD0000 CALL LWRD FS_FClose
65 FS_Exit();
\ 0097 CD0000 CALL LWRD FS_Exit
66
67
68 //恢复保存设备状态
69 SetPenColor(hDc.PenColor);
\ 009A 210000 LD HL,0
\ 009D 39 ADD HL,SP
\ 009E 5E LD E,(HL)
\ 009F 23 INC HL
\ 00A0 56 LD D,(HL)
\ 00A1 23 INC HL
\ 00A2 4E LD C,(HL)
\ 00A3 23 INC HL
\ 00A4 46 LD B,(HL)
\ 00A5 CD0000 CALL LWRD SetPenColor
70 SetBackgdColor(hDc.BackgdColor);
\ 00A8 210400 LD HL,4
\ 00AB 39 ADD HL,SP
\ 00AC 5E LD E,(HL)
\ 00AD 23 INC HL
\ 00AE 56 LD D,(HL)
\ 00AF 23 INC HL
\ 00B0 4E LD C,(HL)
\ 00B1 23 INC HL
\ 00B2 46 LD B,(HL)
\ 00B3 CD0000 CALL LWRD SetBackgdColor
71
72 return result;
\ 00B6 DDE5 PUSH IX
\ 00B8 E1 POP HL
73 }
\ 00B9 ?0004:
\ 00B9 EB EX DE,HL
\ 00BA 210A00 LD HL,10
\ 00BD 39 ADD HL,SP
\ 00BE F9 LD SP,HL
\ 00BF EB EX DE,HL
\ 00C0 DDE1 POP IX
\ 00C2 D1 POP DE
\ 00C3 C1 POP BC
\ 00C4 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00C7 view_file:
74
75
76 //////////////////////////////////////////////////
77 //阅读文件
78 int view_file( void )
79 {
\ 00C7 C5 PUSH BC
\ 00C8 D5 PUSH DE
\ 00C9 FDE5 PUSH IY
\ 00CB DDE5 PUSH IX
\ 00CD DD210000 LD IX,0
\ 00D1 DD39 ADD IX,SP
\ 00D3 21E6FF LD HL,65510
\ 00D6 39 ADD HL,SP
\ 00D7 F9 LD SP,HL
80 uint AutoPlayTime, AutoPlayTimeSet = 5;
81 BOOL FlagAutoPlay = FALSE;
82 BOOL bRedraw = TRUE;
83 byte nDrawRow;
84 int result;
85 char key;
86 bool bPageDownFlag = 0; //下翻页标记
87
88 long FileLengthLeft= g_reader_vars.g_txt.FileLengthBytes - g_reader_vars.g_txt.CurrentSeek;
\ 00D8 A7 AND A
\ 00D9 2A3300 LD HL,(g_reader_vars+51)
\ 00DC ED4B3B00 LD BC,(g_reader_vars+59)
\ 00E0 ED42 SBC HL,BC
\ 00E2 EB EX DE,HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -