📄 d12ci.lst
字号:
211 1 D12Data();
212 1 D12OutPort(bStalled);
213 1 D12Dis() ;
214 1 //outportb(D12_DATA, bStalled);
215 1
216 1 if(bEPPflags.bits.in_isr == 0)
217 1 ENABLE;
218 1 }
219
220 #if 0
unsigned short D12_ReadCurrentFrameNumber(void)
{
unsigned short i,j;
if(bEPPflags.bits.in_isr == 0)
DISABLE;
D12Command();
D12En();
D12OutPort(0xF5);
//outportb(D12_COMMAND, 0xF5);
D12Data();
P2=0xFF;
D12InPort(i);
D12InPort(j);
D12Dis() ;
//i= inportb(D12_DATA);
//j = inportb(D12_DATA);
i += (j<<8);
C51 COMPILER V8.01 D12CI 04/24/2006 19:23:08 PAGE 5
if(bEPPflags.bits.in_isr == 0)
ENABLE;
return i;
}
#endif
248
249 unsigned short D12_ReadChipID(void)
250 {
251 1 unsigned int D12ID;
252 1
253 1 if(bEPPflags.bits.in_isr == 0)
254 1 DISABLE;
255 1
256 1 D12Command();
257 1 D12En();
258 1 D12OutPort(0xFD);
259 1
260 1 D12Data();
261 1 P2=0xFF;
262 1 D12InPort(((UCHAR*)&D12ID)[0]);
263 1 D12InPort(((UCHAR*)&D12ID)[1]);
264 1 D12Dis();
265 1
266 1 if(bEPPflags.bits.in_isr == 0)
267 1 ENABLE;
268 1
269 1 return D12ID;
270 1 }
271
272 unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
273 {
274 1 unsigned char i, j;
275 1
276 1 if(bEPPflags.bits.in_isr == 0)
277 1 DISABLE;
278 1
279 1 D12Command();
280 1 D12En();
281 1 D12OutPort(endp);
282 1 //outportb(D12_COMMAND, endp);
283 1
284 1 D12Data();
285 1 P2=0xFF;
286 1 D12InPort(i);
287 1 if((i&D12_FULLEMPTY) == 0) {
288 2 if(bEPPflags.bits.in_isr == 0)
289 2 ENABLE;
290 2 return 0;
291 2 }
292 1
293 1 D12Command();
294 1 D12OutPort(0xF0);
295 1 //outportb(D12_COMMAND, 0xF0);
296 1 D12Data();
297 1 P2=0xFF;
298 1 D12InPort(j);
299 1 D12InPort(j);
300 1 //j = inportb(D12_DATA);
301 1 //j = inportb(D12_DATA);
302 1
303 1 if(j > len)
C51 COMPILER V8.01 D12CI 04/24/2006 19:23:08 PAGE 6
304 1 j = len;
305 1
306 1 for(i=0; i<j; i++)
307 1 D12InPort(*(buf+i));
308 1 //*(buf+i) = inportb(D12_DATA);
309 1
310 1 D12Command();
311 1 D12OutPort(0xF2);
312 1 //outportb(D12_COMMAND, 0xF2);
313 1 D12Dis() ;
314 1
315 1 if(bEPPflags.bits.in_isr == 0)
316 1 ENABLE;
317 1
318 1 return j;
319 1 }
320
321 #if 0
// D12_ReadMainEndpoint() added by V2.2 to support double-buffering.
// Caller should assume maxium 128 bytes of returned data.
unsigned char D12_ReadMainEndpoint(unsigned char * buf)
{
unsigned char i, j, k = 0, bDblBuf = 1;
if(bEPPflags.bits.in_isr == 0)
DISABLE;
// outportb(D12_COMMAND, 0x84);
// if( (inportb(D12_DATA) & 0x60) == 0x60)
bDblBuf = 2;
while(bDblBuf) {
outportb(D12_COMMAND, 4);
if((inportb(D12_DATA) & D12_FULLEMPTY) == 0)
break;
outportb(D12_COMMAND, 0xF0);
j = inportb(D12_DATA);
j = inportb(D12_DATA);
for(i=0; i<j; i++)
*(buf+i+k) = inportb(D12_DATA);
k += j;
outportb(D12_COMMAND, 0xF2);
bDblBuf --;
}
if(bEPPflags.bits.in_isr == 0)
ENABLE;
return k;
}
#endif
360
361 unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
362 {
363 1 unsigned char i;
364 1
365 1 if(bEPPflags.bits.in_isr == 0)
C51 COMPILER V8.01 D12CI 04/24/2006 19:23:08 PAGE 7
366 1 DISABLE;
367 1
368 1 D12Command();
369 1 D12En();
370 1 D12OutPort(endp);
371 1 //outportb(D12_COMMAND, endp);
372 1 D12Data();
373 1 P2=0xFF;
374 1 D12InPort(i);
375 1 //inportb(D12_DATA);
376 1
377 1 D12Command();
378 1 D12OutPort(0xF0);
379 1 //outportb(D12_COMMAND, 0xF0);
380 1 D12Data();
381 1 D12OutPort(0);
382 1 D12OutPort(len);
383 1 //outportb(D12_DATA, 0);
384 1 //outportb(D12_DATA, len);
385 1
386 1 for(i=0; i<len; i++)
387 1 D12OutPort(*(buf+i));
388 1 //outportb(D12_DATA, *(buf+i));
389 1
390 1 D12Command();
391 1 D12OutPort(0xFA);
392 1 //outportb(D12_COMMAND, 0xFA);
393 1 D12Dis() ;
394 1
395 1 if(bEPPflags.bits.in_isr == 0)
396 1 ENABLE;
397 1
398 1 return len;
399 1 }
400
401 void D12_AcknowledgeEndpoint(unsigned char endp)
402 {
403 1 D12Command();
404 1 D12En();
405 1 D12OutPort(endp);
406 1 D12OutPort(0xF1);
407 1 //outportb(D12_COMMAND, endp);
408 1 //outportb(D12_COMMAND, 0xF1);
409 1 if(endp == 0)
410 1 D12OutPort(0xF2);
411 1 //outportb(D12_COMMAND, 0xF2);
412 1 D12Dis() ;
413 1 }
414
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 728 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
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 + -