⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.lst

📁 PDIUSB12+51做 U盘程序,可以将自己的系统单做U盘跟 电脑通信
💻 LST
字号:
C51 COMPILER V8.02   USB                                                                   10/11/2007 16:35:10 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE USB
OBJECT MODULE PLACED IN usb.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE usb.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<USB.H>
   3          #include<D12.H>
   4          #include<MASS_STORAGE.H>
   5          #include<serial.h>
   6          
   7          #define USB_COMMAND_ADD           1
   8          #define USB_DATA_ADD              0
   9          
  10          #define USB_DATA                  P0
  11          sbit USB_A0= P3^5;
  12          sbit USB_WR= P3^6;
  13          sbit USB_RD= P3^7;
  14          sbit USB_INT= P3^2;
  15          //加上片选
  16          sbit USB_CS=P1^6;
  17          #define ENDPOINT_NUMBER           2
  18          #define MAX_CONTROL_DATA_SIZE     16
  19          #define MAX_LUN                    0
  20          #define MAX_BULK_DATA_SIZE        64
  21          
  22          CONTROL_DATA_BUFF Control_Data;
  23          
  24          unsigned char idata buffer[64];
  25          
  26          CBW cbw;
  27          CSW csw;
  28          
  29          
  30          union 
  31          {
  32           unsigned char Register;
  33           struct
  34            {
  35             unsigned char Command                :1;
  36             unsigned char Data                   :1;
  37            }Status;
  38          }SCSI;
  39          
  40          unsigned char *pData;
  41                                                                                                                                                                                                                                   
  42          code unsigned char DISK_INF[36]=                                      //磁盘信息
  43          {
  44           0x00,
  45           0x00,
  46           0x02,
  47           0x02,
  48           0x1F,
  49           0x00,0x00,0x00,
  50           0xCC,0xB7,0XB3,0xAC,0xD7,0xD4,0xBC,0xBA, 
  51           0xD7,0xF6,0xB5,0xC4,0xBC,0xD9,0x55,0xC5,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  52           0x31,0x2E,0x30,0x31
  53          };
  54          
  55          code unsigned char DISK_CAPACITY[8]=                                  //磁盘容量
C51 COMPILER V8.02   USB                                                                   10/11/2007 16:35:10 PAGE 2   

  56          {
  57           0x00,0x01,0xff,0x00,
  58           0x00,0x00,0x02,0x00
  59          };
  60          
  61          code unsigned char SENSE[0x12]=                                      //模式探测返回数据
  62          {
  63          0x70, 0x00, 0x05, 0x00, 0x00, 0x00,
  64          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00
  65          };
  66          
  67          code unsigned char DBR[512]=                                          //DOS引导记录
  68          {
  69           0xeb, 0x3e, 0x90,                                                    //跳转指令
  70           0x4d, 0x53, 0x44, 0x4f, 0x53, 0x35, 0x2e, 0x30,                      //文件系统版本信息
  71           0x00, 0x02,                                                          //扇区字节数
  72           0x20,                                                                //每簇扇区数
  73           0x01, 0x00,                                                          //保留扇区数
  74           0x02,                                                                //该分区的FAT副本数
  75           0xF0, 0x01,                                                          //根目录项数
  76           0x00, 0x00,                                                          //小扇区数
  77           0xf8,                                                                //媒体描述符
  78           0x10, 0x00,                                                          //每FAT扇区数
  79           0x20, 0x00,                                                          //每道扇区数
  80           0x40, 0x00,                                                          //磁头数
  81           0x00, 0x00, 0x00, 0x00,                                              //隐藏扇区数
  82           0x40, 0xff, 0x01, 0x00,                                              //大扇区数
  83           0x80,                                                                //磁盘驱动器参数,80表示硬盘
  84           0x00,                                                                //保留
  85           0x29,                                                                //扩展引导标记,0x29表示后三个区可用
             - 
  86           0x88, 0x09, 0x71, 0x20,                                              //标卷序列号
  87           0xCC, 0xB7, 0XB3, 0xAC, 0xB5, 0xC4, 0xBC,  0xD9, 0x55, 0xC5, 0xCC,     //磁盘标卷
  88           0x46, 0x41, 0x54, 0x31, 0x36, 0x20,  0x20, 0x20,                     //文件系统类型信息
  89           0xf1, 0x7d,
  90           0xfa, 0x33, 0xc9, 0x8e,  0xd1, 0xbc, 0xfc, 0x7b,  0x16, 0x07, 0xbd, 0x78,  0x00, 0xc5, 0x76, 0x00,
  91           0x1e, 0x56, 0x16, 0x55,  0xbf, 0x22, 0x05, 0x89,  0x7e, 0x00, 0x89, 0x4e,  0x02, 0xb1, 0x0b, 0xfc,
  92           0xf3, 0xa4, 0x06, 0x1f,  0xbd, 0x00, 0x7c, 0xc6,  0x45, 0xfe, 0x0f, 0x8b,  0x46, 0x18, 0x88, 0x45,
  93           0xf9, 0xfb, 0x38, 0x66,  0x24, 0x7c, 0x04, 0xcd,  0x13, 0x72, 0x3c, 0x8a,  0x46, 0x10, 0x98, 0xf7,
  94           0x66, 0x16, 0x03, 0x46,  0x1c, 0x13, 0x56, 0x1e,  0x03, 0x46, 0x0e, 0x13,  0xd1, 0x50, 0x52, 0x89,
  95           0x46, 0xfc, 0x89, 0x56,  0xfe, 0xb8, 0x20, 0x00,  0x8b, 0x76, 0x11, 0xf7,  0xe6, 0x8b, 0x5e, 0x0b,
  96           0x03, 0xc3, 0x48, 0xf7,  0xf3, 0x01, 0x46, 0xfc,  0x11, 0x4e, 0xfe, 0x5a,  0x58, 0xbb, 0x00, 0x07,
  97           0x8b, 0xfb, 0xb1, 0x01,  0xe8, 0x94, 0x00, 0x72,  0x47, 0x38, 0x2d, 0x74,  0x19, 0xb1, 0x0b, 0x56,
  98           0x8b, 0x76, 0x3e, 0xf3,  0xa6, 0x5e, 0x74, 0x4a,  0x4e, 0x74, 0x0b, 0x03,  0xf9, 0x83, 0xc7, 0x15,
  99           0x3b, 0xfb, 0x72, 0xe5,  0xeb, 0xd7, 0x2b, 0xc9,  0xb8, 0xd8, 0x7d, 0x87,  0x46, 0x3e, 0x3c, 0xd8,
 100           0x75, 0x99, 0xbe, 0x80,  0x7d, 0xac, 0x98, 0x03,  0xf0, 0xac, 0x84, 0xc0,  0x74, 0x17, 0x3c, 0xff,
 101           0x74, 0x09, 0xb4, 0x0e,  0xbb, 0x07, 0x00, 0xcd,  0x10, 0xeb, 0xee, 0xbe,  0x83, 0x7d, 0xeb, 0xe5,
 102           0xbe, 0x81, 0x7d, 0xeb,  0xe0, 0x33, 0xc0, 0xcd,  0x16, 0x5e, 0x1f, 0x8f,  0x04, 0x8f, 0x44, 0x02,
 103           0xcd, 0x19, 0xbe, 0x82,  0x7d, 0x8b, 0x7d, 0x0f,  0x83, 0xff, 0x02, 0x72,  0xc8, 0x8b, 0xc7, 0x48,
 104           0x48, 0x8a, 0x4e, 0x0d,  0xf7, 0xe1, 0x03, 0x46,  0xfc, 0x13, 0x56, 0xfe,  0xbb, 0x00, 0x07, 0x53,
 105           0xb1, 0x04, 0xe8, 0x16,  0x00, 0x5b, 0x72, 0xc8,  0x81, 0x3f, 0x4d, 0x5a,  0x75, 0xa7, 0x81, 0xbf,
 106           0x00, 0x02, 0x42, 0x4a,  0x75, 0x9f, 0xea, 0x00,  0x02, 0x70, 0x00, 0x50,  0x52, 0x51, 0x91, 0x92,
 107           0x33, 0xd2, 0xf7, 0x76,  0x18, 0x91, 0xf7, 0x76,  0x18, 0x42, 0x87, 0xca,  0xf7, 0x76, 0x1a, 0x8a,
 108           0xf2, 0x8a, 0x56, 0x24,  0x8a, 0xe8, 0xd0, 0xcc,  0xd0, 0xcc, 0x0a, 0xcc,  0xb8, 0x01, 0x02, 0xcd,
 109           0x13, 0x59, 0x5a, 0x58,  0x72, 0x09, 0x40, 0x75,  0x01, 0x42, 0x03, 0x5e,  0x0b, 0xe2, 0xcc, 0xc3,
 110           0x03, 0x18, 0x01, 0x27,  0x0d, 0x0a, 0x49, 0x6e,  0x76, 0x61, 0x6c, 0x69,  0x64, 0x20, 0x73, 0x79,
 111           0x73, 0x74, 0x65, 0x6d,  0x20, 0x64, 0x69, 0x73,  0x6b, 0xff, 0x0d, 0x0a,  0x44, 0x69, 0x73, 0x6b,
 112           0x20, 0x49, 0x2f, 0x4f,  0x20, 0x65, 0x72, 0x72,  0x6f, 0x72, 0xff, 0x0d,  0x0a, 0x52, 0x65, 0x70,
 113           0x6c, 0x61, 0x63, 0x65,  0x20, 0x74, 0x68, 0x65,  0x20, 0x64, 0x69, 0x73,  0x6b, 0x2c, 0x20, 0x61,
 114           0x6e, 0x64, 0x20, 0x74,  0x68, 0x65, 0x6e, 0x20,  0x70, 0x72, 0x65, 0x73,  0x73, 0x20, 0x61, 0x6e,
 115           0x79, 0x20, 0x6b, 0x65,  0x79, 0x0d, 0x0a, 0x00,  0x49, 0x4f, 0x20, 0x20,  0x20, 0x20, 0x20, 0x20,
 116           0x53, 0x59, 0x53, 0x4d,  0x53, 0x44, 0x4f, 0x53,  0x20, 0x20, 0x20, 0x53,  0x59, 0x53, 0x80, 0x01,
C51 COMPILER V8.02   USB                                                                   10/11/2007 16:35:10 PAGE 3   

 117           0x00, 0x57, 0x49, 0x4e,  0x42, 0x4f, 0x4f, 0x54,  0x20, 0x53, 0x59, 0x53,  0x00, 0x00, 0x55, 0xaa,
 118          };
 119          
 120          code unsigned char FAT[64]=                                             //模拟的文件分配表
 121          {
 122           0xF8, 0xFF, 0xFF, 0xFF,  0xff, 0xff, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 123           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 124           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 125           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00
 126          };
 127          
 128          code unsigned char ZERO[64]=                                            //填充0
 129          {
 130           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 131           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 132           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
 133           0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00 ,0x00, 0x00,  0x00, 0x00, 0x00, 0x00
 134          };
 135          
 136          code unsigned char ROOT_DIR[64]=                                       //根目录
 137          {
 138           0xCC, 0xB7, 0XB3, 0xAC, 0xB5, 0xC4, 0xBC,  0xD9, 0x55, 0xC5, 0xCC,//   //磁盘标卷
 139           0x08,                                                               //文件属性,表示磁盘标卷
 140           0x00,                                                               //保留
 141           0x00,                                                               //创建时间毫秒时间戳
 142           0x00, 0x40,                                                         //文件创建时间
 143           0x41, 0x31,                                                         //文件创建日期
 144           0x42, 0x31,                                                         //最后访问日期
 145           0x00, 0x00,                                                         //起始簇号高位字节,FAT12/16必须为0
 146           0x00, 0x40,                                                         //最后写时间
 147           0x42, 0x31,                                                         //最后写日期
 148           0x00, 0x00,                                                         //起始簇低位字节 
 149           0x00, 0x00, 0x00, 0x00,                                             //文件长度
 150           'T',  'E',   'S',  'T', ' ', ' ', ' ', ' ',  'T', 'X', 'T',         //文件名
 151           0x01,                                                               //文件属性,表示磁盘标卷
 152           0x00,                                                               //保留
 153           0x00,                                                               //创建时间毫秒时间戳
 154           0x00, 0x40,                                                         //文件创建时间
 155           0x41, 0x31,                                                         //文件创建日期
 156           0x42, 0x31,                                                         //最后访问日期
 157           0x00, 0x00,                                                         //起始簇号高位字节,FAT12/16必须为0
 158           0x00, 0x40,                                                         //最后写时间
 159           0x42, 0x31,                                                         //最后写日期
 160           0x02, 0x00,                                                         //起始簇低位字节 
 161           0xe9, 0x00, 0x00, 0x00,                                             //文件长度
 162          };
 163          
 164          code unsigned char FILE_DATA[233]=
 165          {"这是一个测试程序,用来测试文件系统是否工作正常。如果你能看到这些文字,那么说明你的电脑已经中了最无耻的10
             -8病毒了,请马上把所有文件删除,并格式化硬盘后,将硬盘压碎,以免你也被感染!如果你在30秒内还未开始删除文件,你的电脑将会

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -