📄 tpbulk.lst
字号:
161
162 unsigned char SPC_RequestSense(void)
163 {
164 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
165 1 out[4]=0x60;out[5]=0xa6;out[6]=0x24;out[7]=0xde;
166 1 out[8]=0x0e;out[9]=0x00;out[10]=0x00;out[11]=0x00;
167 1 out[12]=0x80;out[13]=0x00;out[14]=6;
168 1 out[15]=SPC_CMD_REQUESTSENSE;out[16]=0x00;out[17]=0x00;
169 1 out[18]=0x00;out[19]=0x0e;out[20]=0x00;
170 1 //////////////////////////////////////
171 1 if(!epBulkSend(out,0x1f))
172 1 return FALSE;
173 1 DelayMs(5);
174 1 if(!epBulkRcv(out,18))
175 1 return FALSE;
176 1 //delay_dsp
177 1 if(!epBulkRcv(out,13))
178 1 return FALSE;
179 1 /////////////////////////////
C51 COMPILER V7.06 TPBULK 08/10/2005 23:25:28 PAGE 4
180 1 return TRUE;
181 1 }
182
183 unsigned char SPC_TestUnit(void)
184 {
185 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
186 1 out[4]=0x60;out[5]=0xa6;out[6]=0x24;out[7]=0xde;
187 1 out[8]=0x00;out[9]=0x00;out[10]=0x00;out[11]=0x00;
188 1 out[12]=0x00;out[13]=0x00;out[14]=6;
189 1 /////////////////////////////////////
190 1 out[15]=SPC_CMD_TESTUNITREADY;
191 1 out[16]=0;out[17]=0;out[18]=0;out[19]=0;out[20]=0;
192 1 //////////////////////////////////////
193 1 if(!epBulkSend(out,0x1f))
194 1 return FALSE;
195 1 DelayMs(5);
196 1 if(!epBulkRcv(out,13))
197 1 return FALSE;
198 1 return TRUE;
199 1 }
200
201 unsigned char SPC_LockMedia(void)
202 {
203 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
204 1 out[4]=0x60;out[5]=0xa6;out[6]=0x24;out[7]=0xde;
205 1 out[8]=0x00;out[9]=0x00;out[10]=0x00;out[11]=0x00;
206 1 out[12]=0x00;out[13]=0x00;out[14]=5;
207 1 ///////////////////////////////////////////
208 1 out[15]=SPC_CMD_PRVENTALLOWMEDIUMREMOVAL;
209 1 out[16]=0;out[17]=0;out[18]=0;out[19]=1;
210 1 ///////////////////////////////////////////
211 1 if(!epBulkSend(out,0x1f))
212 1 return FALSE;
213 1 DelayMs(5);
214 1
215 1 if(!epBulkRcv(out,13))
216 1 return FALSE;
217 1
218 1 /////////////////////////////
219 1 return TRUE;
220 1 }
221
222 unsigned char RBC_ReadCapacity(void)
223 {
224 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
225 1 out[4]=0x60;out[5]=0xa6;out[6]=0x24;out[7]=0xde;
226 1 out[8]=0x08;out[9]=0x00;out[10]=0x00;out[11]=0x00;
227 1 out[12]=0x80;out[13]=0x00;out[14]=10;
228 1 /////////////////////////////////////
229 1 out[15]=RBC_CMD_READCAPACITY;
230 1 out[16]=0;out[17]=0;out[18]=0;out[19]=0;
231 1 out[20]=0;out[21]=0;out[22]=0;out[23]=0;
232 1 out[24]=0;
233 1 /////////////////////////////////////
234 1 if(!epBulkSend(out,0x1f))
235 1 return FALSE;
236 1 DelayMs(10);
237 1 if(!epBulkRcv(DBUF,8))
238 1 return FALSE;
239 1 if(!epBulkRcv(out,13))
240 1 return FALSE;
241 1 /////////////////////////////
C51 COMPILER V7.06 TPBULK 08/10/2005 23:25:28 PAGE 5
242 1 return TRUE;
243 1 }
244
245 unsigned char RBC_Read(unsigned long lba,unsigned char len,unsigned char *pBuffer)
246 {
247 1 unsigned long lout;
248 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
249 1 out[4]=0x60;out[5]=0xa6;out[6]=0x24;out[7]=0xde;
250 1 lout=len*DeviceInfo.BPB_BytesPerSec;
251 1 out[8]=(unsigned char)(lout&0xff);
252 1 out[9]=(unsigned char)((lout>>8)&0xff);
253 1 out[10]=(unsigned char)((lout>>16)&0xff);
254 1 out[11]=(unsigned char)((lout>>24)&0xff);
255 1 out[12]=0x80;out[13]=0x00;out[14]=10;
256 1 /////////////////////////////////////
257 1 out[15]=RBC_CMD_READ10;out[16]=0x00;
258 1 out[17]=(unsigned char)((lba>>24)&0xff);
259 1 out[18]=(unsigned char)((lba>>16)&0xff);
260 1 out[19]=(unsigned char)((lba>>8)&0xff);
261 1 out[20]=(unsigned char)(lba&0xff);
262 1 out[21]=0x00;
263 1 out[22]=(unsigned char)((len>>8)&0xff);
264 1 out[23]=(unsigned char)(len&0xff);
265 1 out[24]=0x00;
266 1 //////////////////////////////////////
267 1 if(!epBulkSend(out,0x1f))
268 1 return FALSE;
269 1 DelayMs(50);
270 1 if(!epBulkRcv(pBuffer,len*DeviceInfo.BPB_BytesPerSec))
271 1 return FALSE;
272 1 //DelayMs(10);
273 1 if(!epBulkRcv(out,13))
274 1 return FALSE;
275 1 /////////////////////////////
276 1 return TRUE;
277 1 }
278
279 unsigned char RBC_Write(unsigned long lba,unsigned char len,unsigned char *pBuffer)
280 {
281 1 unsigned long lout;
282 1 out[0]=0x55;out[1]=0x53;out[2]=0x42;out[3]=0x43;
283 1 out[4]=0xb4;out[5]=0xd9;out[6]=0x77;out[7]=0xc1;
284 1 lout=len*DeviceInfo.BPB_BytesPerSec;
285 1 out[8]=(unsigned char)(lout&0xff);
286 1 out[9]=(unsigned char)((lout>>8)&0xff);
287 1 out[10]=(unsigned char)((lout>>16)&0xff);
288 1 out[11]=(unsigned char)((lout>>24)&0xff);
289 1 out[12]=0x00;out[13]=0x00;out[14]=10;
290 1 /////////////////////////////////////
291 1 out[15]=RBC_CMD_WRITE10;
292 1 out[16]=0x00;
293 1 out[17]=(unsigned char)((lba>>24)&0xff);
294 1 out[18]=(unsigned char)((lba>>16)&0xff);
295 1 out[19]=(unsigned char)((lba>>8)&0xff);
296 1 out[20]=(unsigned char)(lba&0xff);
297 1 out[21]=0x00;
298 1 out[22]=(unsigned char)((len>>8)&0xff);
299 1 out[23]=(unsigned char)(len&0xff);
300 1 out[24]=0x00;
301 1 //////////////////////////////////////
302 1 if(!epBulkSend(out,0x1f))
303 1 return FALSE;
C51 COMPILER V7.06 TPBULK 08/10/2005 23:25:28 PAGE 6
304 1 DelayMs(30);
305 1 if(!epBulkSend(pBuffer,DeviceInfo.BPB_BytesPerSec))
306 1 return FALSE;
307 1 DelayMs(20);
308 1 if(!epBulkRcv(out,13))
309 1 return FALSE;
310 1 return TRUE;
311 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2080 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 44
IDATA SIZE = 32 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -