?? test.lst
字號:
227 =2 } bits0;
228 =2
229 =2 struct
230 =2 {
231 =2 UINT8 MediumState : 2;
232 =2 UINT8 Reserved3 : 2;
233 =2 UINT8 PowerConditions: 4;
234 =2 } bits1;
235 =2 } Flags;
236 =2 UINT8 Control;
237 =2 } START_STOP_RBC, *pSTART_STOP_RBC;
238 =2
239 =2 /*
240 =2 // Synchronize Cache
241 =2 */
242 =2
243 =2 typedef struct _SYNCHRONIZE_CACHE_RBC {
244 =2
245 =2 UINT8 OperationCode; // 0x35
246 =2 UINT8 Reserved[8];
247 =2 UINT8 Control;
248 =2
249 =2 } SYNCHRONIZE_CACHE_RBC, *pSYNCHRONIZE_CACHE_RBC;
250 =2
251 =2 /*
252 =2 // Write Command
253 =2 */
254 =2 typedef struct _WRITE_RBC {
255 =2 UINT8 OperationCode; // 2AH
256 =2 //UINT8 Reserved0 : 3;
257 =2 //UINT8 FUA : 1;
258 =2 //UINT8 Reserved1 : 4;
259 =2 UINT8 VendorSpecific;
260 =2 union{
261 =2 struct
262 =2 {
263 =2 UINT8 LBA_3;
264 =2 UINT8 LBA_2;
265 =2 UINT8 LBA_1;
266 =2 UINT8 LBA_0;
267 =2 } LBA_W8 ;
268 =2
269 =2 UINT32 LBA_W32;
270 =2 } LBA;
271 =2 UINT8 Reserved2;
272 =2 UINT16 XferLength;
273 =2 UINT8 Control;
274 =2 } WRITE_RBC, *pWRITE_RBC;
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 16
275 =2
276 =2 /*
277 =2 // VERIFY Command
278 =2 */
279 =2 typedef struct _VERIFY_RBC {
280 =2 UINT8 OperationCode; // 2FH
281 =2 UINT8 Reserved0;
282 =2 UINT8 LBA_3; // Big Endian
283 =2 UINT8 LBA_2;
284 =2 UINT8 LBA_1;
285 =2 UINT8 LBA_0;
286 =2 UINT8 Reserved1;
287 =2 UINT8 VerifyLength_1; // Big Endian
288 =2 UINT8 VerifyLength_0;
289 =2 UINT8 Control;
290 =2 } VERIFY_RBC, *pVERIFY_RBC;
291 =2
292 =2
293 =2 /*
294 =2 //***********************************************************************************
295 =2 // SPC-2 of SCSI-3 commands
296 =2 //***********************************************************************************
297 =2 */
298 =2
299 =2 /*
300 =2 // INQUIRY Command
301 =2 */
302 =2 typedef struct _INQUIRY_SPC {
303 =2 UINT8 OperationCode; // 12H
304 =2 UINT8 EnableVPD:1 ;
305 =2 UINT8 CmdSupportData:1 ;
306 =2 UINT8 Reserved0:6 ;
307 =2 UINT8 PageCode;
308 =2 UINT8 Reserved1;
309 =2 UINT8 AllocationLen;
310 =2 UINT8 Control;
311 =2 } INQUIRY_SPC, *pINQUIRY_SPC;
312 =2
313 =2 /*
314 =2 typedef struct _STD_INQUIRYDATA {
315 =2 UINT8 DeviceType : 5;
316 =2 UINT8 Reserved0 : 3;
317 =2
318 =2 UINT8 Reserved1 : 7;
319 =2 UINT8 RemovableMedia : 1;
320 =2
321 =2 UINT8 Reserved2;
322 =2
323 =2 UINT8 Reserved3 : 5;
324 =2 UINT8 NormACA : 1;
325 =2 UINT8 Obsolete0 : 1;
326 =2 UINT8 AERC : 1;
327 =2
328 =2 UINT8 Reserved4[3];
329 =2
330 =2 UINT8 SoftReset : 1;
331 =2 UINT8 CommandQueue : 1;
332 =2 UINT8 Reserved5 : 1;
333 =2 UINT8 LinkedCommands : 1;
334 =2 UINT8 Synchronous : 1;
335 =2 UINT8 Wide16Bit : 1;
336 =2 UINT8 Wide32Bit : 1;
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 17
337 =2 UINT8 RelativeAddressing : 1;
338 =2
339 =2 UINT8 VendorId[8];
340 =2
341 =2 UINT8 ProductId[16];
342 =2
343 =2 UINT8 ProductRevisionLevel[4];
344 =2
345 =2 // Above is 36 bytes
346 =2 // can be tranmitted by Bulk
347 =2
348 =2 UINT8 VendorSpecific[20];
349 =2 UINT8 InfoUnitSupport : 1;
350 =2 UINT8 QuickArbitSupport : 1;
351 =2 UINT8 Clocking : 2;
352 =2 UINT8 Reserved6 : 4;
353 =2
354 =2 UINT8 Reserved7 ;
355 =2 UINT16 VersionDescriptor[8] ;
356 =2
357 =2 UINT8 Reserved8[22];
358 =2 } STD_INQUIRYDATA, *pSTD_INQUIRYDATA;
359 =2 */
360 =2
361 =2 /*
362 =2 typedef struct _SERIALNUMBER_PAGE {
363 =2 UINT8 DeviceType : 5;
364 =2 UINT8 DeviceTypeQualifier : 3;
365 =2
366 =2 UINT8 PageCode ;
367 =2 UINT8 Reserved0 ;
368 =2
369 =2 UINT8 PageLength ;
370 =2 UINT8 SerialNumber[24] ;
371 =2
372 =2 }VPD_SERIAL_PAGE,*pVPD_SERIAL_PAGE;
373 =2 */
374 =2 /*
375 =2 #define ASCII_ID_STRING 32
376 =2 typedef struct _ID_DESCRIPTOR {
377 =2 UINT8 CodeSet : 4;
378 =2 UINT8 Reserved0 : 4;
379 =2
380 =2 UINT8 IDType : 4;
381 =2 UINT8 Association : 2;
382 =2 UINT8 Reserved1 : 2;
383 =2
384 =2 UINT8 Reserved2;
385 =2
386 =2 UINT8 IDLength ;
387 =2 UINT8 AsciiID[ASCII_ID_STRING];
388 =2 } ASCII_ID_DESCRIPTOR,*pASCII_ID_DESCRIPTOR;
389 =2 */
390 =2 /*
391 =2 typedef struct _DEVICE_ID_PAGE
392 =2 {
393 =2 UINT8 DeviceType : 5;
394 =2 UINT8 DeviceTypeQualifier : 3;
395 =2
396 =2 UINT8 PageCode ;
397 =2 UINT8 Reserved0 ;
398 =2
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 18
399 =2 UINT8 PageLength ;
400 =2
401 =2 ASCII_ID_DESCRIPTOR AsciiIdDescriptor[1];
402 =2 } VPD_DEVICE_ID_PAGE, *pVPD_DEVICE_ID_PAGE;
403 =2 */
404 =2 /*
405 =2 // Mode Select
406 =2 */
407 =2 typedef struct _MODE_SELECT_SPC {
408 =2 UINT8 OperationCode; // 15H
409 =2 UINT8 SavePage : 1 ;
410 =2 UINT8 Reseved0 : 3 ;
411 =2 UINT8 PageFormat : 1 ;
412 =2 UINT8 Reserved1 : 3 ;
413 =2 UINT8 Reserved2[2];
414 =2 UINT8 ParameterLen;
415 =2 UINT8 Control;
416 =2 } MODE_SELECT_SPC, *pMODE_SELECT_SPC;
417 =2
418 =2 typedef struct _MBR_BLOCK {
419 =2 UINT8 Res[454];
420 =2 unsigned long StartSector;
421 =2 unsigned long TotalSector;
422 =2 UINT8 Res1[50];
423 =2 } MBR_BLOCK,*pMBR_BLOCK;
424 =2
425 =2 typedef struct _BPB_BLOCK {
426 =2 UINT8 BS_jmpBoo[3];
427 =2 UINT8 BS_OEMName[8];
428 =2 UINT16 BPB_BytesPerSec;
429 =2 UINT8 BPB_SecPerClus;
430 =2 UINT16 BPB_RsvdSecCnt;
431 =2 UINT8 BPB_NumFATs;
432 =2 UINT16 BPB_RootEntCnt;
433 =2 UINT16 BPB_TotSec16;
434 =2 UINT8 BPB_Media;
435 =2 UINT16 BPB_FATSz16;
436 =2 UINT16 BPB_SecPerTrk;
437 =2 UINT16 BPB_NumHeads;
438 =2 unsigned long BPB_HiddSec;
439 =2 unsigned long BPB_TotSec32;
440 =2 UINT8 BS_DrvNum;
441 =2 UINT8 BS_Reserved1;
442 =2 UINT8 BS_BootSig;
443 =2 UINT8 BS_VolID[4];
444 =2 UINT8 BS_VolLab[11];
445 =2 UINT8 BS_FilSysType[8];
446 =2 UINT8 ExecutableCode[448];
447 =2 UINT8 Marker[2];
448 =2 } BPB_BLOCK,*pBPB_BLOCK;
449 =2
450 =2 typedef struct _BPB_BLOCK32 {
451 =2 UINT8 BS_jmpBoo[3];
452 =2 UINT8 BS_OEMName[8];
453 =2 UINT16 BPB_BytesPerSec;
454 =2 UINT8 BPB_SecPerClus;
455 =2 UINT16 BPB_RsvdSecCnt;
456 =2 UINT8 BPB_NumFATs;
457 =2 UINT16 BPB_RootEntCnt;
458 =2 UINT16 BPB_TotSec16;
459 =2 UINT8 BPB_Media;
460 =2 UINT16 BPB_FATSz16;
C51 COMPILER V8.02 TEST 09/19/2006 15:01:22 PAGE 19
461 =2 UINT16 BPB_SecPerTrk;
462 =2 UINT16 BPB_NumHeads;
463 =2 unsigned long BPB_HiddSec;
464 =2 unsigned long BPB_TotSec32;
465 =2 UINT32 BPB_FATSz32;
466 =2 UINT16 BPB_ExtFlags;
467 =2 UINT16 BPB_FSVer;
468 =2 UINT32 BPB_RootClus;
469 =2 UINT16 BPB_FSInfo;
470 =2 UINT16 BPB_BkBootSec;
471 =2 UINT8 BPB_Reserved[12];
472 =2 UINT8 BS_DrvNum;
473 =2 UINT8 BS_Reserved1;
474 =2 UINT8 BS_BootSig;
475 =2 UINT32 BS_VolID;
476 =2 UINT8 BS_VolLab[11];
477 =2 UINT8 BS_FilSysType[8];
478 =2
479 =2 } BPB_BLOCK32,*pBPB_BLOCK32;
480 =2
481 =2 typedef struct _SYS_INFO_BLOCK{
482 =2 unsigned long StartSector;
483 =2 unsigned long TotalSector;
484 =2 //UINT8 BS_jmpBoo[3];
485 =2 //UINT8 BS_OEMName[8];
486 =2 UINT16 BPB_BytesPerSec;
487 =2 UINT8 BPB_SecPerClus;
488 =2 //UINT8 BPB_RsvdSecCn[2];
489 =2 UINT8 BPB_NumFATs;
490 =2 UINT16 BPB_RootEntCnt;
491 =2 UINT16 BPB_TotSec16;
492 =2 UINT8 BPB_Media;
493 =2 UINT16 BPB_FATSz16;
494 =2 UINT32 BPB_FATSz32;
495 =2 UINT16 BPB_SecPerTrk;
496 =2 UINT16 BPB_NumHeads;
497 =2 unsigned long BPB_HiddSec;
498 =2 unsigned long BPB_TotSec32;
499 =2 UINT8 BS_DrvNum;
500 =2 //UINT8 BS_Reserved1;
501 =2 UINT8 BS_BootSig;
502 =2 UINT8 BS_VolID[4];
503 =2 UINT8 BS_VolLab[11];
504 =2 UINT8 BS_FilSysType[8];
505 =2 //UINT8 ExecutableCode[448];
506 =2 //UINT8 Marker[2];
507 =2 ///////////////////////////////
508 =2 unsigned long FatStartSector;
509 =2 unsigned long RootStartSector;
510 =2 //unsigned long DataStartSector;
511 =2 unsigned long FirstDataSector;
512 =2 //unsigned long FirstSectorofCluster;
513 =2 unsigned long TotCluster;
514 =2 unsigned char bFatType;
515 =2 } SYS_INFO_BLOCK,*pSYS_INFO_BLOCK;
516 =2
517 =2 typedef struct _FILE_INFO{
518 =2 unsigned char bFileOpen;
519 =2 unsigned int StartCluster; // current cluster
520 =2 unsigned long LengthInByte;
521 =2 unsigned int ClusterPointer; // next cluster
522 =2 unsigned long SectorPointer;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -