sub_ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 521 行 · 第 1/2 页
LST
521 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:36 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_dsc2x_dec\sub_ui_stop.c #
# List file = d:\case_i_d90f\ap\ap_dsc2x_dec\list\sub_ui_stop.lst #
# Object file = d:\case_i_d90f\ap\ap_dsc2x_dec\obj\sub_ui_stop.r01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\Ap_DSC2X_DEC\Obj\ -e #
# -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d90f\ap\Ap_DSC2X_DEC\List\ -q -t8 #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\ap\ap_dsc2x_dec\sub_ui_stop.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_ui_stop(17)
\ 0000 RSEG CODE_1(0)
\ 0000 RSEG COM_FSL(0)
\ 0000 EXTERN FS_GetName
\ 0000 PUBLIC InitLcmDeviceInfor
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC com_fname
\ 0000 EXTERN fileName
\ 0000 EXTERN file_name
\ 0000 EXTERN fselGetByNO
\ 0000 EXTERN menu_pos
\ 0000 PUBLIC read_idm_data_pic
\ 0000 PUBLIC reinit_idm_buf_pic
\ 0000 PUBLIC show_active_list_pic
\ 0000 EXTERN unitochar
\ 0000 PUBLIC write_idm_data_pic
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 RSEG CODE_1
\ 0000 write_idm_data_pic:
1
2
3 #include "ap_common.h"
4 #include "ap_picdec.h"
5 #include "DSCDec.h"
6
7
8 #pragma codeseg(CODE_1)
9
10 #pragma memory=dataseg(COM_FSL)
11 //extern char com_fname[explorer_row_count_def + 1][30];
12 char com_fname[explorer_row_count_def][50];
13 #pragma memory=default
14 extern char fileName[50];
15
16 BOOL write_idm_data_pic(char *name, int count)
17 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
18 byte status;
19 status = input8(0x05);
\ 0003 DB05 IN A,(5)
\ 0005 210000 LD HL,0
\ 0008 39 ADD HL,SP
\ 0009 77 LD (HL),A
20 output8(0x05, 0xf6);
\ 000A 3EF6 LD A,246
\ 000C D305 OUT (5),A
21 memcpy( com_fname[count], name, 50);
\ 000E 113200 LD DE,50
\ 0011 CD0000 CALL LWRD ?S_MUL_L02
\ 0014 210000 LD HL,com_fname
\ 0017 19 ADD HL,DE
\ 0018 EB EX DE,HL
\ 0019 210200 LD HL,2
\ 001C 39 ADD HL,SP
\ 001D 46 LD B,(HL)
\ 001E 23 INC HL
\ 001F 66 LD H,(HL)
\ 0020 68 LD L,B
\ 0021 013200 LD BC,50
\ 0024 ?0013:
\ 0024 EDB0 LDIR
22 output8(0x05, status);
\ 0026 69 LD L,C
\ 0027 60 LD H,B
\ 0028 39 ADD HL,SP
\ 0029 7E LD A,(HL)
\ 002A D305 OUT (5),A
23
24 }
\ 002C E1 POP HL
\ 002D E1 POP HL
\ 002E E1 POP HL
\ 002F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0032 ?0014:
\ 0032 77 LD (HL),A
\ 0033 3EF6 LD A,246
\ 0035 D305 OUT (5),A
\ 0037 013200 LD BC,50
\ 003A DDE5 PUSH IX
\ 003C D1 POP DE
\ 003D CD0000 CALL LWRD ?S_MUL_L02
\ 0040 210000 LD HL,com_fname
\ 0043 19 ADD HL,DE
\ 0044 EB EX DE,HL
\ 0045 210000 LD HL,fileName
\ 0048 CD0000 CALL LWRD ?STRCPY_L11
\ 004B 68 LD L,B
\ 004C 60 LD H,B
\ 004D C9 RET
\ 004E reinit_idm_buf_pic:
25
26 /*
27 ********************************************************************************
28 * Description : 重新初始化IDM数据区
29 *
30 * Arguments :
31 *
32 * Returns :
33 *
34 * Notes :dir: 0:select file , 1: select dir
35 *
36 ********************************************************************************
37 */
38 void reinit_idm_buf_pic(int top, int bottom, int dir, int string_id)
39 {
\ 004E FDE5 PUSH IY
\ 0050 DDE5 PUSH IX
\ 0052 DD210000 LD IX,0
\ 0056 DD39 ADD IX,SP
\ 0058 C5 PUSH BC
\ 0059 D5 PUSH DE
\ 005A 21CCFF LD HL,65484
\ 005D 39 ADD HL,SP
\ 005E F9 LD SP,HL
40 int i,NameNum;
41 char Longnamebuf[50];
42
43 for(i = top; i <= bottom; i++)
\ 005F D5 PUSH DE
\ 0060 FDE1 POP IY
\ 0062 ?0003:
\ 0062 FDE5 PUSH IY
\ 0064 C1 POP BC
\ 0065 DD6EFE LD L,(IX-2)
\ 0068 DD66FF LD H,(IX-1)
\ 006B F680 OR 128
\ 006D ED42 SBC HL,BC
\ 006F E27300 JP PO,?0009
\ 0072 AC XOR H
\ 0073 ?0009:
\ 0073 FAEB00 JP M,?0002
\ 0076 ?0004:
44 {
45 fselGetByNO(file_name, i + 1);
\ 0076 03 INC BC
\ 0077 110000 LD DE,file_name
\ 007A 3E00 LD A,BYTE3 fselGetByNO
\ 007C 210000 LD HL,LWRD fselGetByNO
\ 007F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
46
47 memcpy(Longnamebuf,file_name,12);
\ 0082 010C00 LD BC,12
\ 0085 210200 LD HL,2
\ 0088 39 ADD HL,SP
\ 0089 EB EX DE,HL
\ 008A 210000 LD HL,file_name
\ 008D EDB0 LDIR
48 NameNum = FS_GetName(Longnamebuf,24); //获取当前目录名的长文件名
\ 008F 0E18 LD C,24
\ 0091 210200 LD HL,2
\ 0094 39 ADD HL,SP
\ 0095 EB EX DE,HL
\ 0096 CD0000 CALL LWRD FS_GetName
\ 0099 4F LD C,A
\ 009A 0600 LD B,0
49 if(NameNum!=0)
\ 009C 79 LD A,C
\ 009D B7 OR A
\ 009E 282E JR Z,?0007
\ 00A0 ?0006:
50 {
51 unitochar(Longnamebuf,NameNum*2+2,string_id); //
\ 00A0 DD6E0A LD L,(IX+10)
\ 00A3 E5 PUSH HL
\ 00A4 69 LD L,C
\ 00A5 60 LD H,B
\ 00A6 29 ADD HL,HL
\ 00A7 4D LD C,L
\ 00A8 44 LD B,H
\ 00A9 03 INC BC
\ 00AA 03 INC BC
\ 00AB 210400 LD HL,4
\ 00AE 39 ADD HL,SP
\ 00AF EB EX DE,HL
\ 00B0 3E00 LD A,BYTE3 unitochar
\ 00B2 210000 LD HL,LWRD unitochar
\ 00B5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00B8 F1 POP AF
52 write_idm_data_pic(Longnamebuf, i - top);
\ 00B9 DD4EFC LD C,(IX-4)
\ 00BC DD46FD LD B,(IX-3)
\ 00BF FDE5 PUSH IY
\ 00C1 E1 POP HL
\ 00C2 A7 AND A
\ 00C3 ED42 SBC HL,BC
\ 00C5 4D LD C,L
\ 00C6 44 LD B,H
\ 00C7 210200 LD HL,2
\ 00CA 39 ADD HL,SP
\ 00CB EB EX DE,HL
\ 00CC 1810 JR ?0010
53 }
54 else
\ 00CE ?0007:
55 write_idm_data_pic(file_name, i - top);
\ 00CE DD4EFC LD C,(IX-4)
\ 00D1 DD46FD LD B,(IX-3)
\ 00D4 FDE5 PUSH IY
\ 00D6 E1 POP HL
\ 00D7 ED42 SBC HL,BC
\ 00D9 4D LD C,L
\ 00DA 44 LD B,H
\ 00DB 110000 LD DE,file_name
\ 00DE ?0010:
\ 00DE 3E00 LD A,BYTE3 write_idm_data_pic
\ 00E0 210000 LD HL,LWRD write_idm_data_pic
\ 00E3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00E6 ?0008:
56
57 }
58
59 }
\ 00E6 FD23 INC IY
\ 00E8 C36200 JP LWRD ?0003
\ 00EB ?0002:
\ 00EB DDF9 LD SP,IX
\ 00ED DDE1 POP IX
\ 00EF FDE1 POP IY
\ 00F1 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00F4 show_active_list_pic:
60
61 /*
62 ********************************************************************************
63 * Description : 反转上次活动项和当前活动项.
64 *
65 * Arguments :
66 *
67 * Returns :
68 *
69 * Notes :
70 *
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?