📄 bulk_only.lst
字号:
148 long unsigned int dCBWDataTransferLength;//dCBWDataTransferLength of CBW
149 unsigned char bmCBWFlags;
150 unsigned char bCBWLUN;
151 unsigned char bCBWCBLength;
152 unsigned char CBWCB[12];//for UFI Command all have 12bit
153 } struct_CBW;
154
155 struct_CBW bulk_CBW;
156
157 void InterpretCBW()
158 {
159 1 int i;
160 1 printu("InterpretCBW\n");
161 1
162 1 bulk_CSW[4] = Bulk_Out_Buf[4];
163 1 bulk_CSW[5] = Bulk_Out_Buf[5];
164 1 bulk_CSW[6] = Bulk_Out_Buf[6];
165 1 bulk_CSW[7] = Bulk_Out_Buf[7];
166 1
167 1 // for(i=0;i<4;i++) bulk_CBW.dCBWDataTransferLength = (bulk_CBW.dCBWDataTransferLength<<8) +*(EpBuf+11-i);
168 1 // bulk_CBW.bmCBWFlags = *(EpBuf+12);
169 1 // bulk_CBW.bCBWLUN = *(EpBuf+13)&0x0f;
170 1 // bulk_CBW.bCBWCBLength = *(EpBuf+14)&0x1f;
171 1
172 1 for(i=0;i<12;i++)
173 1 bulk_CBW.CBWCB [i] = Bulk_Out_Buf[i+15];
174 1 // printu("\n\nSCSI:");
175 1 // for(j=0;j<12;j++) {printuf("%x ",bulk_CBW.CBWCB[j]);}
176 1
177 1 switch(bulk_CBW.CBWCB[0]){
178 2 // case 0x04 :SCSI_Reserved();break;
179 2 case Inquiry :SCSI_Inquiry();break;
C51 COMPILER V6.23a BULK_ONLY 11/21/2003 09:01:32 PAGE 4
180 2 // case 0x55 :SCSI_Reserved();break;
181 2 case Mode_Sense :SCSI_Mode_Sense();break;
182 2 case Read10 :SCSI_Read10();break;
183 2 // case 0xA8 :SCSI_Reserved();break;
184 2 case Read_Capacity :SCSI_Read_Capacity();break;
185 2 case Read_Format_Capacities :SCSI_Read_Format_Capacities();break;
186 2 // case 0x03 :SCSI_Reserved();break;
187 2 // case 0x01 :SCSI_Reserved();break;
188 2 // case 0x2B :SCSI_Reserved();break;
189 2 // case 0x1D :SCSI_Reserved();break;
190 2 // case 0x1B :SCSI_Reserved();break;
191 2 case Test_Unit_Ready :SCSI_Test_Unit_Ready();break;
192 2 case Verify :SCSI_Verify();break;
193 2 case Write10 :SCSI_Write10();break;
194 2 // case 0xAA :SCSI_Reserved();break;
195 2 // case 0x2E :SCSI_Reserved();break;
196 2 case Medium_Removal :SCSI_Medium_Removal();break;
197 2 default :SCSI_Reserved();break;
198 2 }
199 1
200 1 }
201
202 void SCSI_Inquiry()
203 {
204 1 printu("SCSI_Inquiry\n");
205 1 bulk_state = BULK_DATA_END;
206 1 WriteEpBulk(1, sizeof(B_InquiryData), B_InquiryData);
207 1 }
208
209
210 void SCSI_Read_Format_Capacities()
211 {
212 1 printu("SCSI_Read_Format_Capacities\n");
213 1 }
214
215
216 void SCSI_Read_Capacity()
217 {
218 1 printu("SCSI_Read_Format_Capacities\n");
219 1
220 1 }
221
222 void SCSI_Read10()
223 {
224 1 printu("SCSI_Read10\n");
225 1
226 1 }
227
228 void TransDataGoOn()
229 {
230 1 printu("TransDataGoOn\n");
231 1
232 1 }
233
234 void SCSI_Write10()
235 {
236 1 printu("SCSI_Write10\n");
237 1 }
238
239
240 void RecieveData()
241 {
C51 COMPILER V6.23a BULK_ONLY 11/21/2003 09:01:32 PAGE 5
242 1 printu("RecieveData\n");
243 1
244 1 }
245
246 void SCSI_Mode_Sense()
247 {
248 1 printu("SCSI_Mode_Sense\n");
249 1
250 1 }
251
252 void SCSI_Medium_Removal()
253 {
254 1 printu("SCSI_Medium_Removal\n");
255 1 }
256
257 void SCSI_Test_Unit_Ready()
258 {
259 1 printu("SCSI_Test_Unit_Ready\n");
260 1 }
261
262
263 void TransmitCSW()
264 {
265 1 printu("TransmitCSW\n");
266 1
267 1 }
268
269
270
271 void TransRequestGoOn()
272 {
273 1 printu("TransRequestGoOn\n");
274 1
275 1 }
276
277
278
279
280
281
282 void SCSI_Reserved()
283 {
284 1 printuf("\nUFI Function 0x%x doesn't Defined!",bulk_CBW.CBWCB[0]);
285 1
286 1 }
287
288
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 288 ----
CONSTANT SIZE = 352 ----
XDATA SIZE = 654 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -