📄 sub_function3.lst
字号:
\ 00E4 CA8301 JP Z,?0118
\ 00E7 ?0018:
77 {
78 return 0;
79 }
\ 00E7 ?0019:
80
81 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 00E7 CB77 BIT 6,A
\ 00E9 2806 JR Z,?0021
\ 00EB ?0020:
82 {
83 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 00EB 117402 LD DE,628
\ 00EE C37901 JP LWRD ?0128
84 return 0;
85 }
\ 00F1 ?0021:
86
87 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'C'))
\ 00F1 0E43 LD C,67
\ 00F3 C5 PUSH BC
\ 00F4 215100 LD HL,g_music_vars+81
\ 00F7 4E LD C,(HL)
\ 00F8 C5 PUSH BC
\ 00F9 CD8901 CALL LWRD ?0205
\ 00FC F1 POP AF
\ 00FD F1 POP AF
\ 00FE 2C INC L
\ 00FF 2D DEC L
\ 0100 2802 JR Z,?0023
\ 0102 ?0022:
88 {
89 return 1;
\ 0102 ?0125:
\ 0102 1832 JR ?0126
90 }
\ 0104 ?0023:
91
92 if (FSELGetErrID() != 0)
\ 0104 CD9401 CALL LWRD ?0206
\ 0107 2C INC L
\ 0108 2D DEC L
\ 0109 2805 JR Z,?0025
\ 010B ?0024:
93 {
94 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 010B CD9C01 CALL LWRD ?0207
95 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
96 return 0;//要退出 ap
\ 010E 1873 JR ?0118
97 }
\ 0110 ?0025:
98 return 0;
\ 0110 1871 JR ?0118
99
100 }
\ 0112 ?0009:
101
102 else //g_music_vars.location.disk == 'C' 或其他
103 {
104 if ((g_DiskStateFlag & SetDiskOKFlag_def) != 0)
\ 0112 3A0000 LD A,(g_DiskStateFlag)
\ 0115 CB7F BIT 7,A
\ 0117 2829 JR Z,?0034
\ 0119 ?0026:
105 {
106 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 0119 CB77 BIT 6,A
\ 011B 2808 JR Z,?0029
\ 011D ?0028:
107 {
108 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 011D 117402 LD DE,628
\ 0120 CDB001 CALL LWRD ?0209
109 }
110 else
\ 0123 181D JR ?0034
\ 0125 ?0029:
111 {
112 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'C'))
\ 0125 0E43 LD C,67
\ 0127 C5 PUSH BC
\ 0128 215100 LD HL,g_music_vars+81
\ 012B 4E LD C,(HL)
\ 012C C5 PUSH BC
\ 012D CD8901 CALL LWRD ?0205
\ 0130 F1 POP AF
\ 0131 F1 POP AF
\ 0132 2C INC L
\ 0133 2D DEC L
\ 0134 2802 JR Z,?0032
\ 0136 ?0031:
113 {
114 return 1;
\ 0136 ?0126:
\ 0136 182F JR ?0127
115 }
\ 0138 ?0032:
116 if (FSELGetErrID() != 0)
\ 0138 CD9401 CALL LWRD ?0206
\ 013B 2C INC L
\ 013C 2D DEC L
\ 013D 2803 JR Z,?0034
\ 013F ?0033:
117 {
118 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 013F CD9C01 CALL LWRD ?0207
119 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
\ 0142 ?0034:
\ 0142 ?0030:
\ 0142 ?0027:
120 }
121 }
122 }
123
124 //检测 sd 卡是否存在
125 if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
\ 0142 1E01 LD E,1
\ 0144 CD0000 CALL LWRD DRV_DetectUD
\ 0147 FE20 CP 32
\ 0149 2033 JR NZ,?0036
\ 014B 3A0000 LD A,(g_DiskStateFlag)
\ 014E CB5F BIT 3,A
\ 0150 282C JR Z,?0036
\ 0152 ?0038:
\ 0152 ?0037:
\ 0152 ?0035:
126 {//有卡
127 g_music_vars.location.disk = 'H';
\ 0152 3E48 LD A,72
\ 0154 320700 LD (g_music_vars+7),A
128 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'H'))
\ 0157 4F LD C,A
\ 0158 C5 PUSH BC
\ 0159 215100 LD HL,g_music_vars+81
\ 015C 4E LD C,(HL)
\ 015D C5 PUSH BC
\ 015E CD8901 CALL LWRD ?0205
\ 0161 F1 POP AF
\ 0162 F1 POP AF
\ 0163 2C INC L
\ 0164 2D DEC L
\ 0165 2805 JR Z,?0040
\ 0167 ?0039:
129 {
130 return 1;
\ 0167 ?0127:
\ 0167 210100 LD HL,1
131 }
\ 016A 181A JR ?0043
\ 016C ?0040:
132 result = FSELGetErrID();
\ 016C CD9401 CALL LWRD ?0206
133 if (FSELGetErrID() != 0)
\ 016F CD9401 CALL LWRD ?0206
\ 0172 2C INC L
\ 0173 2D DEC L
\ 0174 280D JR Z,?0118
\ 0176 ?0041:
134 {
135 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 0176 117502 LD DE,629
\ 0179 ?0128:
\ 0179 CDB001 CALL LWRD ?0209
136 return 0;
\ 017C 1805 JR ?0118
137 }
\ 017E ?0042:
138 return 0;//非法
139 }
\ 017E ?0036:
140 else
141 {
142 g_music_vars.location.disk='C';
\ 017E 3E43 LD A,67
\ 0180 320700 LD (g_music_vars+7),A
143 return 0;//没卡退出
\ 0183 ?0118:
\ 0183 210000 LD HL,0
144 }
\ 0186 ?0043:
\ 0186 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0189 ?0205:
\ 0189 0E00 LD C,0
\ 018B 59 LD E,C
\ 018C 3E00 LD A,BYTE3 fselInit
\ 018E 210000 LD HL,LWRD fselInit
\ 0191 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0194 ?0206:
\ 0194 3E00 LD A,BYTE3 fselGetErrID
\ 0196 210000 LD HL,LWRD fselGetErrID
\ 0199 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 019C ?0207:
\ 019C 117402 LD DE,628
\ 019F 3E00 LD A,BYTE3 DisplayErrInfor
\ 01A1 210000 LD HL,LWRD DisplayErrInfor
\ 01A4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01A7 210000 LD HL,g_DiskStateFlag
\ 01AA CBF6 SET 6,(HL)
\ 01AC C9 RET
\ 01AD ?0208:
\ 01AD 117502 LD DE,629
\ 01B0 ?0209:
\ 01B0 3E00 LD A,BYTE3 DisplayErrInfor
\ 01B2 210000 LD HL,LWRD DisplayErrInfor
\ 01B5 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
145
146 }
147
148 }
\ 01B8 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 {
\ 01B8 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01BB FEFF DEFW 65534
163
164 BYTE result;
165
166 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 01BD DB4E IN A,(78)
\ 01BF CBDF SET 3,A
\ 01C1 D34E OUT (78),A
167 BankSwitch((unsigned long)FSELSetLocation >> 16);
\ 01C3 0600 LD B,0
\ 01C5 1E00 LD E,BYTE3 fselSetLocation
\ 01C7 48 LD C,B
\ 01C8 CD0000 CALL LWRD BankSwitch
168
169 result = FSELSetLocation(& g_music_vars.location);
\ 01CB 110700 LD DE,g_music_vars+7
\ 01CE 3E00 LD A,BYTE3 fselSetLocation
\ 01D0 210000 LD HL,LWRD fselSetLocation
\ 01D3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01D6 DD75FE LD (IX-2),L
170
171 if (result == 1)
\ 01D9 2D DEC L
\ 01DA 200D JR NZ,?0045
\ 01DC ?0044:
172 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -