📄 sub_function3.lst
字号:
77 {
78 return 0;
79 }
\ 00E2 ?0019:
80
81 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 00E2 CB77 BIT 6,A
\ 00E4 2806 JR Z,?0021
\ 00E6 ?0020:
82 {
83 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 00E6 119201 LD DE,402
\ 00E9 C37401 JP LWRD ?0128
84 return 0;
85 }
\ 00EC ?0021:
86
87 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'C'))
\ 00EC 0E43 LD C,67
\ 00EE C5 PUSH BC
\ 00EF 214F00 LD HL,g_music_vars+79
\ 00F2 4E LD C,(HL)
\ 00F3 C5 PUSH BC
\ 00F4 CD8401 CALL LWRD ?0205
\ 00F7 F1 POP AF
\ 00F8 F1 POP AF
\ 00F9 2C INC L
\ 00FA 2D DEC L
\ 00FB 2802 JR Z,?0023
\ 00FD ?0022:
88 {
89 return 1;
\ 00FD ?0125:
\ 00FD 1832 JR ?0126
90 }
\ 00FF ?0023:
91
92 if (FSELGetErrID() != 0)
\ 00FF CD8F01 CALL LWRD ?0206
\ 0102 2C INC L
\ 0103 2D DEC L
\ 0104 2805 JR Z,?0025
\ 0106 ?0024:
93 {
94 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0106 CD9701 CALL LWRD ?0207
95 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
96 return 0;//要退出 ap
\ 0109 1873 JR ?0118
97 }
\ 010B ?0025:
98 return 0;
\ 010B 1871 JR ?0118
99
100 }
\ 010D ?0009:
101
102 else //g_music_vars.location.disk == 'C' 或其他
103 {
104 if ((g_DiskStateFlag & SetDiskOKFlag_def) != 0)
\ 010D 3A0000 LD A,(g_DiskStateFlag)
\ 0110 CB7F BIT 7,A
\ 0112 2829 JR Z,?0034
\ 0114 ?0026:
105 {
106 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 0114 CB77 BIT 6,A
\ 0116 2808 JR Z,?0029
\ 0118 ?0028:
107 {
108 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0118 119201 LD DE,402
\ 011B CDAB01 CALL LWRD ?0209
109 }
110 else
\ 011E 181D JR ?0034
\ 0120 ?0029:
111 {
112 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'C'))
\ 0120 0E43 LD C,67
\ 0122 C5 PUSH BC
\ 0123 214F00 LD HL,g_music_vars+79
\ 0126 4E LD C,(HL)
\ 0127 C5 PUSH BC
\ 0128 CD8401 CALL LWRD ?0205
\ 012B F1 POP AF
\ 012C F1 POP AF
\ 012D 2C INC L
\ 012E 2D DEC L
\ 012F 2802 JR Z,?0032
\ 0131 ?0031:
113 {
114 return 1;
\ 0131 ?0126:
\ 0131 182F JR ?0127
115 }
\ 0133 ?0032:
116 if (FSELGetErrID() != 0)
\ 0133 CD8F01 CALL LWRD ?0206
\ 0136 2C INC L
\ 0137 2D DEC L
\ 0138 2803 JR Z,?0034
\ 013A ?0033:
117 {
118 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 013A CD9701 CALL LWRD ?0207
119 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
\ 013D ?0034:
\ 013D ?0030:
\ 013D ?0027:
120 }
121 }
122 }
123
124 //检测 sd 卡是否存在
125 if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
\ 013D 1E01 LD E,1
\ 013F CD0000 CALL LWRD DRV_DetectUD
\ 0142 FE20 CP 32
\ 0144 2033 JR NZ,?0036
\ 0146 3A0000 LD A,(g_DiskStateFlag)
\ 0149 CB5F BIT 3,A
\ 014B 282C JR Z,?0036
\ 014D ?0038:
\ 014D ?0037:
\ 014D ?0035:
126 {//有卡
127 g_music_vars.location.disk = 'H';
\ 014D 3E48 LD A,72
\ 014F 320700 LD (g_music_vars+7),A
128 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'H'))
\ 0152 4F LD C,A
\ 0153 C5 PUSH BC
\ 0154 214F00 LD HL,g_music_vars+79
\ 0157 4E LD C,(HL)
\ 0158 C5 PUSH BC
\ 0159 CD8401 CALL LWRD ?0205
\ 015C F1 POP AF
\ 015D F1 POP AF
\ 015E 2C INC L
\ 015F 2D DEC L
\ 0160 2805 JR Z,?0040
\ 0162 ?0039:
129 {
130 return 1;
\ 0162 ?0127:
\ 0162 210100 LD HL,1
131 }
\ 0165 181A JR ?0043
\ 0167 ?0040:
132 result = FSELGetErrID();
\ 0167 CD8F01 CALL LWRD ?0206
133 if (FSELGetErrID() != 0)
\ 016A CD8F01 CALL LWRD ?0206
\ 016D 2C INC L
\ 016E 2D DEC L
\ 016F 280D JR Z,?0118
\ 0171 ?0041:
134 {
135 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 0171 119301 LD DE,403
\ 0174 ?0128:
\ 0174 CDAB01 CALL LWRD ?0209
136 return 0;
\ 0177 1805 JR ?0118
137 }
\ 0179 ?0042:
138 return 0;//非法
139 }
\ 0179 ?0036:
140 else
141 {
142 g_music_vars.location.disk='C';
\ 0179 3E43 LD A,67
\ 017B 320700 LD (g_music_vars+7),A
143 return 0;//没卡退出
\ 017E ?0118:
\ 017E 210000 LD HL,0
144 }
\ 0181 ?0043:
\ 0181 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0184 ?0205:
\ 0184 0E00 LD C,0
\ 0186 59 LD E,C
\ 0187 3E00 LD A,BYTE3 fselInit
\ 0189 210000 LD HL,LWRD fselInit
\ 018C C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 018F ?0206:
\ 018F 3E00 LD A,BYTE3 fselGetErrID
\ 0191 210000 LD HL,LWRD fselGetErrID
\ 0194 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0197 ?0207:
\ 0197 119201 LD DE,402
\ 019A 3E00 LD A,BYTE3 DisplayErrInfor
\ 019C 210000 LD HL,LWRD DisplayErrInfor
\ 019F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01A2 210000 LD HL,g_DiskStateFlag
\ 01A5 CBF6 SET 6,(HL)
\ 01A7 C9 RET
\ 01A8 ?0208:
\ 01A8 119301 LD DE,403
\ 01AB ?0209:
\ 01AB 3E00 LD A,BYTE3 DisplayErrInfor
\ 01AD 210000 LD HL,LWRD DisplayErrInfor
\ 01B0 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
145
146 }
147
148 }
\ 01B3 UpdateFileSelector:
149
150
151 /******************************************************************************
152 ** 名字:
153 ** 接口: int UpdateFileSelector(void)
154 ** 描述: 更新文件选择器
155 ** 输入参数: void
156 ** 输出参数:
157 0: 更新不成功,要退出AP
158 1: 更新成功,已可用
159 ** 使用说明:
160 ********************************************************************************/
161 int UpdateFileSelector(void)
162 {
\ 01B3 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01B6 FEFF DEFW 65534
163
164 BYTE result;
165
166 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 01B8 DB4E IN A,(78)
\ 01BA CBDF SET 3,A
\ 01BC D34E OUT (78),A
167 BankSwitch((unsigned long)FSELSetLocation >> 16);
\ 01BE 0600 LD B,0
\ 01C0 1E00 LD E,BYTE3 fselSetLocation
\ 01C2 48 LD C,B
\ 01C3 CD0000 CALL LWRD BankSwitch
168
169 result = FSELSetLocation(& g_music_vars.location);
\ 01C6 110700 LD DE,g_music_vars+7
\ 01C9 3E00 LD A,BYTE3 fselSetLocation
\ 01CB 210000 LD HL,LWRD fselSetLocation
\ 01CE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01D1 DD75FE LD (IX-2),L
170
171 if (result == 1)
\ 01D4 2D DEC L
\ 01D5 200D JR NZ,?0045
\ 01D7 ?0044:
172 {
173 if (g_music_vars.location.filename[0] != '\0')
\ 01D7 3A2100 LD A,(g_music_vars+33)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -