📄 ideio.lst
字号:
237 3 Usb_write_byte(hdd_read_byte());
238 3 Usb_write_byte(hdd_read_byte());
239 3 Usb_write_byte(hdd_read_byte());
240 3 Usb_write_byte(hdd_read_byte());
C51 COMPILER V7.50 IDEIO 11/28/2007 08:34:16 PAGE 5
241 3 Usb_write_byte(hdd_read_byte());
242 3 Usb_write_byte(hdd_read_byte());
243 3 Usb_write_byte(hdd_read_byte());
244 3 Usb_write_byte(hdd_read_byte());
245 3 Usb_write_byte(hdd_read_byte());
246 3 Usb_write_byte(hdd_read_byte());
247 3 Usb_write_byte(hdd_read_byte());
248 3 Usb_write_byte(hdd_read_byte());
249 3 Usb_write_byte(hdd_read_byte());
250 3 Usb_write_byte(hdd_read_byte());
251 3 Usb_write_byte(hdd_read_byte());
252 3 Usb_write_byte(hdd_read_byte());
253 3 Usb_write_byte(hdd_read_byte());
254 3 Usb_write_byte(hdd_read_byte());
255 3 Usb_write_byte(hdd_read_byte());
256 3 Usb_write_byte(hdd_read_byte());
257 3 Usb_write_byte(hdd_read_byte());
258 3 Usb_write_byte(hdd_read_byte());
259 3 Usb_write_byte(hdd_read_byte());
260 3 Usb_write_byte(hdd_read_byte());
261 3 Usb_write_byte(hdd_read_byte());
262 3 Usb_write_byte(hdd_read_byte());
263 3 Usb_write_byte(hdd_read_byte());
264 3 Usb_write_byte(hdd_read_byte());
265 3 Usb_write_byte(hdd_read_byte());
266 3 Usb_write_byte(hdd_read_byte());
267 3 Usb_write_byte(hdd_read_byte());
268 3 Usb_write_byte(hdd_read_byte());
269 3 Usb_write_byte(hdd_read_byte());
270 3 Usb_write_byte(hdd_read_byte());
271 3 Usb_write_byte(hdd_read_byte());
272 3 Usb_write_byte(hdd_read_byte());
273 3 Usb_write_byte(hdd_read_byte());
274 3 Usb_write_byte(hdd_read_byte());
275 3 Usb_write_byte(hdd_read_byte());
276 3 Usb_write_byte(hdd_read_byte());
277 3 Usb_write_byte(hdd_read_byte());
278 3 Usb_write_byte(hdd_read_byte());
279 3 Usb_write_byte(hdd_read_byte());
280 3 Usb_write_byte(hdd_read_byte());
281 3 Usb_write_byte(hdd_read_byte());
282 3 Usb_write_byte(hdd_read_byte());
283 3 Usb_write_byte(hdd_read_byte());
284 3 Usb_write_byte(hdd_read_byte());
285 3 Usb_write_byte(hdd_read_byte());
286 3 Usb_write_byte(hdd_read_byte());
287 3
288 3 Usb_set_TXRDY();
289 3 Usb_select_ep(EP_IN);
290 3 while (!Usb_tx_complete());
291 3 Usb_clear_TXCMPL();
292 3 }
293 2 hdd_read_close();
294 2
295 2 return OK;
296 2 }
297 1 return KO;
298 1 }
299
300
301 /**********************************************************
302 *函数名称:bit hdd_write_open(Uint32 hdd_sector) *
C51 COMPILER V7.50 IDEIO 11/28/2007 08:34:16 PAGE 6
303 *用途:写硬盘OPEN动作 *
304 ***********************************************************/
305 bit hdd_write_open(Uint32 hdd_sector)
306 {
307 1 uchar head,cylinderh,cylinderl,sector;
308 1 head = ((Byte*)&hdd_sector)[0];
309 1 cylinderh = ((Byte*)&hdd_sector)[1];
310 1 cylinderl = ((Byte*)&hdd_sector)[2];
311 1 sector = ((Byte*)&hdd_sector)[3];
312 1
313 1 do{ACC = FILE7;} while(BSY);
314 1 FILE6 = (0xe0 | (head & 0x0f));
315 1 FILE5 = cylinderh; //high 2-bit cylinder
316 1 FILE4 = cylinderl;//low 8-bit cylinder
317 1 FILE3 = sector; //start sector
318 1 FILE2 = 1; //sector counter
319 1
320 1 WriteCommand(0x30);
321 1
322 1 do{ACC = FILE7;} while(BSY |! DRQ); //wait for noBUSY and data request
323 1
324 1 ACC = FILE7;
325 1 if (ERR)
326 1 return KO;
327 1
328 1 return OK;
329 1 }
330
331
332 /**********************************************************
333 *函数名称:bit hdd_write_byte(Byte hdd_data) *
334 *用途:写硬盘CLOSE动作 *
335 ***********************************************************/
336 bit hdd_write_byte(Byte hdd_data)
337 {
338 1 gl_hdd_buffer[gl_hdd_buffer_ptr++] = hdd_data ;
339 1 return OK;
340 1 }
341
342 /**********************************************************
343 *函数名称:bit hdd_write_close(void) *
344 *用途:写硬盘CLOSE动作 *
345 ***********************************************************/
346 bit hdd_write_close(void)
347 {uint i;
348 1 for(i = 0; i < 512; i+=2)
349 1 {
350 2 DAT16H = gl_hdd_buffer[i+1];
351 2 FILE0 = gl_hdd_buffer[i];
-
352 2 }
353 1
354 1 do{ACC = FILE7;} while(BSY);
355 1
356 1 return OK;
357 1
358 1 }
359
360
361
362 /**********************************************************
363 *函数名称:bit hdd_write_usb_sector(Uint32 hdd_sector) *
C51 COMPILER V7.50 IDEIO 11/28/2007 08:34:16 PAGE 7
364 *用途:将USB接收到的一个扇区的数据写入硬盘 *
365 ***********************************************************/
366 bit hdd_write_usb_sector(Uint32 hdd_sector)
367 {uchar j;
368 1
369 1 Usb_select_ep(EP_OUT);
370 1 gl_hdd_buffer_ptr = 0;
371 1
372 1 for (j = 0; j < 8; j++)
373 1 {
374 2 while(!Usb_rx_complete()); /* wait end of reception */
375 2 hdd_write_byte(Usb_read_byte());
376 2 hdd_write_byte(Usb_read_byte());
377 2 hdd_write_byte(Usb_read_byte());
378 2 hdd_write_byte(Usb_read_byte());
379 2 hdd_write_byte(Usb_read_byte());
380 2 hdd_write_byte(Usb_read_byte());
381 2 hdd_write_byte(Usb_read_byte());
382 2 hdd_write_byte(Usb_read_byte());
383 2 hdd_write_byte(Usb_read_byte());
384 2 hdd_write_byte(Usb_read_byte());
385 2 hdd_write_byte(Usb_read_byte());
386 2 hdd_write_byte(Usb_read_byte());
387 2 hdd_write_byte(Usb_read_byte());
388 2 hdd_write_byte(Usb_read_byte());
389 2 hdd_write_byte(Usb_read_byte());
390 2 hdd_write_byte(Usb_read_byte());
391 2 hdd_write_byte(Usb_read_byte());
392 2 hdd_write_byte(Usb_read_byte());
393 2 hdd_write_byte(Usb_read_byte());
394 2 hdd_write_byte(Usb_read_byte());
395 2 hdd_write_byte(Usb_read_byte());
396 2 hdd_write_byte(Usb_read_byte());
397 2 hdd_write_byte(Usb_read_byte());
398 2 hdd_write_byte(Usb_read_byte());
399 2 hdd_write_byte(Usb_read_byte());
400 2 hdd_write_byte(Usb_read_byte());
401 2 hdd_write_byte(Usb_read_byte());
402 2 hdd_write_byte(Usb_read_byte());
403 2 hdd_write_byte(Usb_read_byte());
404 2 hdd_write_byte(Usb_read_byte());
405 2 hdd_write_byte(Usb_read_byte());
406 2 hdd_write_byte(Usb_read_byte());
407 2 hdd_write_byte(Usb_read_byte());
408 2 hdd_write_byte(Usb_read_byte());
409 2 hdd_write_byte(Usb_read_byte());
410 2 hdd_write_byte(Usb_read_byte());
411 2 hdd_write_byte(Usb_read_byte());
412 2 hdd_write_byte(Usb_read_byte());
413 2 hdd_write_byte(Usb_read_byte());
414 2 hdd_write_byte(Usb_read_byte());
415 2 hdd_write_byte(Usb_read_byte());
416 2 hdd_write_byte(Usb_read_byte());
417 2 hdd_write_byte(Usb_read_byte());
418 2 hdd_write_byte(Usb_read_byte());
419 2 hdd_write_byte(Usb_read_byte());
420 2 hdd_write_byte(Usb_read_byte());
421 2 hdd_write_byte(Usb_read_byte());
422 2 hdd_write_byte(Usb_read_byte());
423 2 hdd_write_byte(Usb_read_byte());
424 2 hdd_write_byte(Usb_read_byte());
425 2 hdd_write_byte(Usb_read_byte());
C51 COMPILER V7.50 IDEIO 11/28/2007 08:34:16 PAGE 8
426 2 hdd_write_byte(Usb_read_byte());
427 2 hdd_write_byte(Usb_read_byte());
428 2 hdd_write_byte(Usb_read_byte());
429 2 hdd_write_byte(Usb_read_byte());
430 2 hdd_write_byte(Usb_read_byte());
431 2 hdd_write_byte(Usb_read_byte());
432 2 hdd_write_byte(Usb_read_byte());
433 2 hdd_write_byte(Usb_read_byte());
434 2 hdd_write_byte(Usb_read_byte());
435 2 hdd_write_byte(Usb_read_byte());
436 2 hdd_write_byte(Usb_read_byte());
437 2 hdd_write_byte(Usb_read_byte());
438 2 hdd_write_byte(Usb_read_byte());
439 2
440 2 Usb_clear_RXOUT_PP();
441 2 }
442 1
443 1 hdd_write_open(hdd_sector);
444 1 hdd_write_close();
445 1 return OK;
446 1 }
447
448
449 /////////////////////////////////////////////////////////////////////////////////
450 Uint32 hdd_read_long_big_endian()
451 {
452 1 Uint32 cluster;
453 1
454 1 ((Byte*)&cluster)[3] = hdd_read_byte();
455 1 ((Byte*)&cluster)[2] = hdd_read_byte();
456 1 ((Byte*)&cluster)[1] = hdd_read_byte();
457 1 ((Byte*)&cluster)[0] = hdd_read_byte();
458 1
459 1 return cluster;
460 1 }
461
462
463
464
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1409 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 13
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
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 + -