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

📄 scsi.lst

📁 D12和89s52+K9F5608组成的系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SCSI
OBJECT MODULE PLACED IN SCSI.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE SCSI.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg52.h"
   2          #include "d12config.h"
   3          #include "D12CI.h"
   4          #include "Chap_9.h"
   5          #include "SCSI.h"
   6          #include "NFLASH.h"
   7          
   8          
   9          INT8U  BULKLength;
  10          unsigned char BulkPhase = 0;
  11          unsigned char BulkStausPhase;
  12          unsigned int  dCBWDaTrLen;
  13          unsigned int WritePageBuffLen = 0;
  14          unsigned char idata setcsw[13];
  15          //unsigned char CommandPhase = 1
  16          //unsigned char xdata WritePageBuff[512];
  17          
  18          /***********************************************************
  19          SCSI命令回复代码
  20          ***********************************************************/
  21          code INT8U SCSI_INQUIRY[36]=
  22          {
  23           0x00,
  24           0x80,
  25           0x00,
  26           0x01,
  27           
  28           0x1f,
  29           
  30           0x00, //reserved
  31           0x00, //reserved
  32           0x00, //reserved
  33           
  34           0x20,
  35           0x20,  // // 10
  36           0x20, //
  37           0x20, //
  38           0x20,
  39           0x20, //
  40           0x20, //
  41           0x20, //
  42           
  43           0x51, //Q
  44           0x75,  //u
  45           0x62, //b
  46           0x65, //e
  47           0x6C,  //l
  48           0x65, //e
  49           0x79, //3//
  50           0x20, //
  51           0x41,//
  52           0x56,  //
  53           0x52, //
  54           0x20, //
  55           0x44,
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 2   

  56           0x49,         //30
  57           0x53, //
  58           0x4b, //
  59           
  60           0x31, //ascII   "1"
  61           0x2e,     //    "."
  62           0x30,  //       "0"
  63           0x30  //        "0"  //version : 1.00
  64           };//
  65          
  66          code INT8U SCSIDATA_ReadFormatCapacities[12]=
  67          {
  68           0x00,//reserved
  69           0x00,//reserved
  70           0x00,//reserved
  71           
  72           0x08,//Capacity List Length
  73           
  74           0x00, //number of block   MSB
  75           0x00, //number of block    |
  76           0xff, //number of block    |
  77           0xff, //number of block   LSB // 256MBYTE
  78           
  79           0x03, //no cartridge in drive
  80           
  81           0x00,  // length of block// 10
  82           0x02, //
  83           0x00//  
  84           };
  85          
  86          code INT8U SCSIDATA_ReadCapacity[8]=
  87          {
  88           0x00, //last logic block address   MSB
  89           0x00, //last logic block address    |
  90           0xf9, //last logic block address    |
  91           0xff,//last logic block address   LSB  
  92           
  93           0x00, //length of block   MSB
  94           0x00, //length of block    |
  95           0x02, //length of block    |
  96           0x00//length of block   LSB
  97          };
  98          
  99          code INT8U SCSIDATA_RequestSense[18]=
 100          {
 101             0x70,
 102                  
 103             0x00,
 104             0x05,
 105             
 106             0x00,
 107             0x00,
 108             0x00,
 109             0x00,
 110             
 111             0x0a, 
 112             
 113             0x00,
 114             0x00,
 115             0x00,
 116             0x00,
 117             
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 3   

 118             0x20,
 119             0x00,
 120             
 121             0x00,
 122             0x00,
 123             0x00,
 124             0x00
 125          };
 126          
 127          unsigned char code SCSIDATA_Sense[48]=
 128          {
 129             0x03,
 130             0x00,
 131             0x00,
 132             0x00,
 133            /* 
 134             0x00,
 135             0x00,
 136             0x00,
 137             0x00,   
 138             0x00,
 139             0x00,
 140             0x02,
 141             0x00,
 142             */
 143             0x01,
 144             0x0a,
 145             0x00,
 146             0x10,   
 147             0x00,
 148             0x00,
 149             0x00,
 150             0x00,   
 151             0x02,
 152             0x00,
 153             0x00,
 154             0x00, //page 1  
 155             0x05,//page 2
 156             0x1e,
 157             0x0f,
 158             0xa0,   
 159             0x04,
 160             0x10,
 161             0x02,
 162             0x00,   
 163             0x00,
 164             0xfa,
 165             0x00,
 166             0x00,   
 167             0x00,
 168             0x00,
 169             0x00,
 170             0x00,   
 171             0x00,
 172             0x00,
 173             0x00,
 174             0x00,   
 175             0x00,
 176             0x00,
 177             0x00,
 178             0x00,  
 179             0x00,
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 4   

 180             0x00,
 181             0x00,
 182             0x00,
 183             0x00,
 184             0x00,
 185             0x00,
 186             0x00
 187          };
 188          
 189          
 190          /************************************************************
 191          ** 函数名称: BULK_submit()
 192          ** 功能描述: BULK端点传输提交
 193          ** 输    入: 无
 194          ** 输    出: 无
 195          
 196          **修改人:胡琦宗
 197          **修改日期:2005.11.22
 198          **修改说明:创建
 199          ************************************************************/
 200          
 201          void BULK_submit(unsigned char len)
 202          {
 203   1              INT8U i;
 204   1              if (64 > len)
 205   1                      i = len;
 206   1              else i = 64;
 207   1              D12_WriteEndpoint(5, i,ControlData.pData);
 208   1              ControlData.pData += i;
 209   1              BULKLength -= i;
 210   1      }
 211          
 212          /************************************************************
 213          **函数功能:处理PC发送的批量传输包
 214          **函数输入参数及说明:接收数据长度
 215          
 216          **函数返回值:无
 217          **在本函数以外定义的变量:
 218          **调用的函数说明:无
 219          
 220          **修改人:胡琦宗
 221          **修改日期:2005.11.22
 222          **修改说明:创建
 223          *************************************************************/
 224          
 225          void Bulk_Out_Packet()
 226          {       
 227   1              
 228   1              if (BulkPhase == CommandPhase)
 229   1              {       
 230   2                      Usb_BoCommand();        
 231   2              }  
 232   1              else if (BulkPhase == OutDataPhase)
 233   1                      {
 234   2                              Usb_BoBulkInData();
 235   2                      }
 236   1              
 237   1      }
 238          
 239          
 240          
 241          /************************************************************
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 5   

 242          **函数功能:SCSI命令处理
 243          **函数输入参数及说明:无
 244          
 245          
 246          **函数返回值:无
 247          **在本函数以外定义的变量:
 248          **调用的函数说明:无
 249          
 250          **修改人:胡琦宗
 251          **修改日期:2005.11.22
 252          **修改说明:创建
 253          *************************************************************/
 254          
 255          void Usb_BoCommand(void){
 256   1                      dCBWDaTrLen = (ControlData.pData[8]<<8 + ControlData.pData[9]);
 257   1                      
 258   1                      switch (ControlData.dataBuffer[15])
 259   1                      {
 260   2                      case 0x00:
 261   2                              SCSICMD_TestUnitReady();
 262   2                                              BulkStausPhase = InCSWPhase;
 263   2                                              break;
 264   2                      case 0x03:
 265   2                              SCSICMD_RequestSense();
 266   2                                       BulkStausPhase=InCSWPhase;
 267   2                                       break;
 268   2                      case 0x12:
 269   2                      
 270   2                              SCSICMD_Inquiry();
 271   2                                              BulkStausPhase = InCSWPhase;
 272   2                                              break;
 273   2                      case 0x1a:
 274   2                              SCSICMD_ModeSense06();
 275   2                              BulkStausPhase=InCSWPhase;
 276   2                              break;
 277   2                      case 0x1e:
 278   2                              SCSICMD_PreventAllowMediumRemoval();
 279   2                              BulkStausPhase=InCSWPhase;
 280   2                              break;

⌨️ 快捷键说明

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