📄 sub_function3.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:01:19 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\sub_function3.c #
# List file = d:\case_i_d90f\ap\ap_music\list\sub_function3.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\sub_function3.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\sub_function3.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\sub_function3.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_function3(17)
\ 0000 RSEG CODE(0)
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN ClearTimePara
\ 0000 EXTERN DRV_DetectUD
\ 0000 PUBLIC DisplayErrInfor
\ 0000 EXTERN GetDCStatus
\ 0000 PUBLIC InitFileSelector
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 PUBLIC StartFileSelector
\ 0000 PUBLIC UpdateFileSelector
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN fselGetErrID
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselInit
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN g_DiskStateFlag
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 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 CODE
\ 0000 DisplayErrInfor:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * A short description of this file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * #Id#
10 *******************************************************************************
11 */
12 #include "ap_music.h"
13
14 /******************************************************************************
15 ** 名字: 显示输入 id 的资源内容
16 ** 接口: void DisplayErrInfor(int id)
17 ** 描述:
18 ** 输入参数: int id:要显示的资源号
19 ** 输出参数: void
20 ** 使用说明:
21 ********************************************************************************/
22 void DisplayErrInfor(int id)
23 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 F8FF DEFW 65528
24 DC oldDC_sav;
25 GetDCStatus(&oldDC_sav);
\ 0005 210000 LD HL,0
\ 0008 39 ADD HL,SP
\ 0009 EB EX DE,HL
\ 000A CD0000 CALL LWRD GetDCStatus
26 SetPenColor(Color_BLACK_def);
\ 000D 010000 LD BC,0
\ 0010 59 LD E,C
\ 0011 50 LD D,B
\ 0012 CD0000 CALL LWRD SetPenColor
27 SetBackgdColor(Color_MENU_def);
\ 0015 010000 LD BC,0
\ 0018 11C0FC LD DE,64704
\ 001B CD0000 CALL LWRD SetBackgdColor
28 ClearScreen(NULL);
\ 001E 110000 LD DE,0
\ 0021 CD0000 CALL LWRD ClearScreen
29 if(id==CREADERR)
\ 0024 219401 LD HL,404
\ 0027 DD4E02 LD C,(IX+2)
\ 002A DD4603 LD B,(IX+3)
\ 002D A7 AND A
\ 002E ED42 SBC HL,BC
\ 0030 200A JR NZ,?0003
\ 0032 ?0002:
30 ResShowPic(CARDERR,25,32);
\ 0032 0E20 LD C,32
\ 0034 C5 PUSH BC
\ 0035 0E19 LD C,25
\ 0037 111F00 LD DE,31
\ 003A 1808 JR ?0116
31 else
\ 003C ?0003:
32 ResShowPic(MESSAGE,22,38);
\ 003C 0E26 LD C,38
\ 003E C5 PUSH BC
\ 003F 0E16 LD C,22
\ 0041 117800 LD DE,120
\ 0044 ?0116:
\ 0044 3E00 LD A,BYTE3 ResShowPic
\ 0046 210000 LD HL,LWRD ResShowPic
\ 0049 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 004C F1 POP AF
\ 004D ?0004:
33 SetTextOutMode(1);
\ 004D 1E01 LD E,1
\ 004F CD0000 CALL LWRD SetTextOutMode
34 ResShowMultiString(id, g_comval.langid, 255, 54);//显示磁盘无文件
\ 0052 0E36 LD C,54
\ 0054 C5 PUSH BC
\ 0055 0EFF LD C,255
\ 0057 C5 PUSH BC
\ 0058 ED4B0C00 LD BC,(g_comval+12)
\ 005C DD5E02 LD E,(IX+2)
\ 005F DD5603 LD D,(IX+3)
\ 0062 3E00 LD A,BYTE3 ResShowMultiString
\ 0064 210000 LD HL,LWRD ResShowMultiString
\ 0067 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 006A F1 POP AF
\ 006B F1 POP AF
35 // SetTextOutMode(0);
36 SetPenColor(oldDC_sav.PenColor);
\ 006C DD4EFA LD C,(IX-6)
\ 006F DD46FB LD B,(IX-5)
\ 0072 DD5EF8 LD E,(IX-8)
\ 0075 DD56F9 LD D,(IX-7)
\ 0078 CD0000 CALL LWRD SetPenColor
37 SetBackgdColor(oldDC_sav.BackgdColor);
\ 007B 210400 LD HL,4
\ 007E 39 ADD HL,SP
\ 007F 5E LD E,(HL)
\ 0080 23 INC HL
\ 0081 56 LD D,(HL)
\ 0082 23 INC HL
\ 0083 4E LD C,(HL)
\ 0084 23 INC HL
\ 0085 46 LD B,(HL)
\ 0086 CD0000 CALL LWRD SetBackgdColor
\ 0089 ?0006:
38
39 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 0089 CD0000 CALL LWRD ap_get_message
\ 008C B7 OR A
\ 008D 20FA JR NZ,?0006
\ 008F ?0007:
\ 008F ?0005:
40 ap_sleep(4);
\ 008F 110400 LD DE,4
\ 0092 3E00 LD A,BYTE3 ap_sleep
\ 0094 210000 LD HL,LWRD ap_sleep
\ 0097 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
41 }
\ 009A C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 009D InitFileSelector:
42
43
44
45 /******************************************************************************
46 ** 名字: 文件选择器初始化及报错显示
47 ** 接口: int InitFileSelector(void)
48 ** 描述: 把文件选择器初始化到有效的盘上,如找不到,则报错退出
49 ** 输入参数: void
50 ** 输出参数: 0: 没有有效的盘或盘上无文件,初始化失败,要求退出AP
51 1: 已完成初始化文件选择器动作
52 ** 使用说明:
53 ********************************************************************************/
54 int InitFileSelector(void)
55 {
\ 009D CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00A0 FEFF DEFW 65534
56 int result;
57
58 if (g_music_vars.location.disk == 'H')
\ 00A2 3A0700 LD A,(g_music_vars+7)
\ 00A5 FE48 CP 72
\ 00A7 2064 JR NZ,?0009
\ 00A9 ?0008:
59 {
60 //检测 sd 卡是否存在
61 if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
\ 00A9 1E01 LD E,1
\ 00AB CD0000 CALL LWRD DRV_DetectUD
\ 00AE FE20 CP 32
\ 00B0 2023 JR NZ,?0011
\ 00B2 3A0000 LD A,(g_DiskStateFlag)
\ 00B5 CB5F BIT 3,A
\ 00B7 281C JR Z,?0011
\ 00B9 ?0013:
\ 00B9 ?0012:
\ 00B9 ?0010:
62 {//有卡
63 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'H'))
\ 00B9 0E48 LD C,72
\ 00BB C5 PUSH BC
\ 00BC 214F00 LD HL,g_music_vars+79
\ 00BF 4E LD C,(HL)
\ 00C0 C5 PUSH BC
\ 00C1 CD8401 CALL LWRD ?0205
\ 00C4 F1 POP AF
\ 00C5 F1 POP AF
\ 00C6 2C INC L
\ 00C7 2D DEC L
\ 00C8 2033 JR NZ,?0125
\ 00CA ?0014:
64 {
65 return 1;
66 }
\ 00CA ?0015:
67
68 if (FSELGetErrID() == 0)
\ 00CA CD8F01 CALL LWRD ?0206
\ 00CD 2C INC L
\ 00CE 2D DEC L
\ 00CF CA7E01 JP Z,?0118
\ 00D2 ?0016:
69 {
70 return 0;//非法,
71 }
\ 00D2 ?0017:
72 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 00D2 CDA801 CALL LWRD ?0208
\ 00D5 ?0011:
73 }
74
75 g_music_vars.location.disk = 'C';
\ 00D5 3E43 LD A,67
\ 00D7 320700 LD (g_music_vars+7),A
76 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 00DA 3A0000 LD A,(g_DiskStateFlag)
\ 00DD CB7F BIT 7,A
\ 00DF CA7E01 JP Z,?0118
\ 00E2 ?0018:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -