?? scsi.lst
字號:
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 + -