📄 bulk_only.lst
字号:
C51 COMPILER V6.23a BULK_ONLY 11/21/2003 09:01:32 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE BULK_ONLY
OBJECT MODULE PLACED IN bulk_only.OBJ
COMPILER INVOKED BY: d:\SoftDev\Keil\C51\BIN\C51.EXE bulk_only.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //this file to process the request about bulk_only
2 #include <string.h>
3
4 #include "bulk_only.h"
5
6 #include "main.h"
7 #include "uart.h"
8
9
10 //extern unsigned char EpBuf[];
11
12 long unsigned int dDataResiduce=0;
13 unsigned char bulk_state=0; //当前传送状态
14 unsigned char *pCurrentBuf; //数据传送指针
15 long int nBufCount=0; //传送数据当前位置
16
17
18 unsigned char MSC_dCBWSignature[]={0x55,0x53,0x42,0x43};
19 unsigned char MSC_dCSWSignature[]={0x55,0x53,0x42,0x53};
20
21 #define Format_Unit 0x04
22 #define Inquiry 0x12
23 #define Mode_Select 0x55
24 #define Mode_Sense 0x1A
25 #define Medium_Removal 0x1E
26 #define Read10 0x28
27 #define Read12 0xA8
28 #define Read_Capacity 0x25
29 #define Read_Format_Capacities 0x23
30 #define Request_Sense 0x03
31 #define Rezero 0x01
32 #define Seek10 0x2B
33 #define Send_Diag 0x1D
34 #define Start_Stop_Unit 0x1B
35 #define Test_Unit_Ready 0x00
36 #define Verify 0x2F
37 #define Write10 0x2A
38 #define Write12 0xAA
39 #define Write_And_Verify 0x2E
40
41
42
43
44 #define SCSI_MSPGCD_TPP 0x1c
45 #define SCSI_MSPGCD_RETALL 0x3f
46
47 unsigned char Bulk_Out_Buf[64];
48 unsigned char Page_Buf[512];
49
50
51 short int Transfer_Length;
52 long int Logical_Block_Address;
53 long int nCurrentPage,nBeginPage;
54 long int nCurrentBlock;
55 code unsigned char B_InquiryData[]={
C51 COMPILER V6.23a BULK_ONLY 11/21/2003 09:01:32 PAGE 2
56 0x00, //Direct Access Device
57 0x80, //RMB
58 0x00, //ISO/ECMA/ANSI
59 0x01, //Response Data Format
60 0x1f, //Additional Length
61 0x00, //Reserved
62 0x00, //Reserved
63 0x00, //Reserved
64 'U','P','-','T','E','C','H',' ', //Vendor Information
65 'M','P','3',' ','P','l','a','y','e','r',' ','V','1','.','0','0',//Product Identification
66 0,1,0,0}; //Product Revision Level n.nn
67
68 code unsigned char CapactiyLstHd[]={0x00,0x00,0x00,0x10};
69 code unsigned char bBlockLength[]={0x00,0x02,0x00}; //512 Byte
70 code unsigned char nLastLBAddr[]={0x00,0x01,0xf3,0xff}; //Last Logical Block Address for 64MB
71 code unsigned char B_Read_Format_capacities[]={0x00,0x00,0x00,0x10, //capacity list header
72 0x00,0x00,0x04,0x00, 0x01, 0x00,0x02,0x00, //capacity descriptor
73 // Number of Blocks =1024,unformatted media,blocklength = 512Bytes
74 0x00,0x00,0x04,0x00, 0x00, 0x00,0x02,0x00 //Formattable Capacity Descriptors
75 };
76
77 code unsigned char B_Read_Capacity[]={
78 0x00,0x01,0xf30,0xff, //Last Logical Block Address for 64MB
79 0x00,0x00,0x02,0x00 //block length in bytes
80 };
81
82 /*
83 code unsigned char B_Mode_Sense_ALL[]={0x00,0x3e,//Mode Data Length
84 0x00, //Medium Type Code
85 0,//write enabled
86 0,0,0,0,//reserved
87 //Read-Write Eroor Recovery Page
88 0x01, //Page Code of Read-Write Error Recovery Page
89 0x0a, //Page Length
90 0, //Error Recovery Parameters
91 3, //Read Retry Count
92 0,0,0,0,
93 3, //Write Retry Count
94 0,0,0,
95 //Flexible Disk Page
96 0x05, //Page Code of Flexible Disk Page
97 0x1e, //Page Length
98 0x13,0x88, //Transfer Rate = 512kbps
99 0, //Number of Heads磁头数
100 0, //Sectors per Track每磁道扇区数
101 0x02,0x00, //Data bytes per Sector每扇区字节数
102 0x00,0x00, //Number of Cuylinders柱面数
103 0,0,0,0,0,0,0,0,0,//Reserved 保留
104 1, //motor On Delay
105 0xff, //motor Off Delay=Never
106 0,0,0,0,0,0,0,//Reserved 保留
107 0x00,0x00, //Medium Rotation Rate介质旋转速率=300rpm
108 0,0, //Reserved 保留
109 //Removable Block Access Capabilities Page
110 0x1b, //Page Code
111 0x0a, //Page Length
112 0,//0x80, //SFLP=1
113 0x01, //TLUN=1
114 0,0,0,0,0,0,0,0//Reserved 保留
115 };
116 */
117
C51 COMPILER V6.23a BULK_ONLY 11/21/2003 09:01:32 PAGE 3
118 code unsigned char B_Mode_Sense_ALL[]={0x0b,0x00,//Mode Data Length
119 0x00,0x08,0x00,0x00,
120 0x7d,0,0,0,0x02,0x00
121 };
122 /*
123 code unsigned char B_Mode_Sense_TPP[]={0x00,0x0d,//Mode Data Length
124 0x00, //Medium Type Code
125 0,//write enabled
126 0,0,0,0,//reserved
127 0x1c,0x06,0,0x05,0,0,0,0
128 };
129 */
130 code unsigned char B_Mode_Sense_TPP[]={0xf0,0x00,//Mode Data Length
131 05,00,00,00,00,0x0b,00,00,00,00,0x24,00,00,00,00,00
132 };
133 code unsigned char B_Mode_Sense_ZERO[]={0x00,0x06,//Mode Data Length
134 0x00, //Medium Type Code
135 0,//write enabled
136 0,0,0,0//reserved
137 };
138 unsigned char bulk_CSW[]={0x55,0x53,0x42,0x53, // bytes 4 dCSWSignature
139 0x00,0x00,0x00,0x00, //bytes 4 dCSWTag
140 0,0,0,0, //bytes 4 dDataResiduce
141 0x00}; //bCSWStatus 00=good state.
142
143
144 typedef struct _STRUCT_CBW
145 {
146 unsigned char dCBWSignature[4];
147 unsigned char dCBWTag[4]; //dCBWTag of CBW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -