中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 15:55
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 求 DOS USB 编程 帮助 !
可打印版本  2,101 / 10
第1楼 yuanchengjun 发表于 2007-04-17 04:57
新手上路 发帖 3 积分 8
求 DOS USB 编程 帮助 !
求DOS USB设备 驱动源码,或者例子,或者教程,……
不用完整的驱动,例子就可以,比如:一次收发数据包过程。
第2楼 yuanchengjun 发表于 2007-04-17 04:59
新手上路 发帖 3 积分 8
自己顶一下
DOS、C语言不会USB,估计要用汇编。

大侠不吝赐教!
第3楼 heling 发表于 2007-06-07 13:02
新手上路 发帖 9 积分 18
请高手赐教
第4楼 kinglin 发表于 2007-07-03 14:33
初级用户 发帖 28 积分 62
关注ing
第5楼 windowsvesta 发表于 2007-07-04 11:04
初级用户 发帖 67 积分 138 来自 云南
我也想知道!
第6楼 johnsonlam 发表于 2007-07-04 12:59
银牌会员 发帖 497 积分 1,410 来自 九龍,香港
有 :

http://www.georgpotthast.de/usb/dosusb.htm

這 是 USB 標 準 文 件 :

http://www.usb.org/developers/docs/usb_20_040907.zip



[ Last edited by johnsonlam on 2007-7-4 at 01:03 PM ]
第7楼 wzsunlight 发表于 2007-09-11 20:15
初级用户 发帖 52 积分 107
???
第8楼 dsysps 发表于 2007-10-23 17:15
初级用户 发帖 34 积分 98
我也想知道,正在努力。现在EHCI的基本配置过程理解了
//通过PCI配置空间检测EHCI
BYTE SearchEHCI(void)
{
union REGS regs;
int bus, dev, func;
//WORD Did,Vid;
WORD ClassCod,SubClass;
for(bus = 0; bus <= PDI_BUS_MAX; ++bus)
{
for(dev = 0; dev <= PDI_DEVICE_MAX; ++dev)
{
for(func = 0; func <= PDI_FUNCTION_MAX; ++func)
{
UsbHostPciAddr = MK_PDI(bus, dev, func);/* 计算地址 */
/* 获取厂商ID */
regs.x.ax = 0xB109; // READ CONFIGURATION WORD
regs.x.bx = UsbHostPciAddr;
regs.x.di = 0; // Vendor ID
regs.x.cx = 0xFFFF; // 非法的Vendor ID
int86(0x1A, &regs, &regs);

/* 判断设备是否存在。FFFFh是非法厂商ID */
if (regs.x.cx != 0xFFFF)
{
/* Class Code */
regs.x.ax = 0xB109; // READ CONFIGURATION WORD
regs.x.bx = UsbHostPciAddr;
regs.x.di = 0xA; // Class
int86(0x1A, &regs, &regs);
ClassCod=regs.x.cx;
if(ClassCod==0x0c03) //usb host
{
regs.x.ax = 0xB109; // READ CONFIGURATION WORD
regs.x.bx = UsbHostPciAddr;
regs.x.di = 8; //SubClass
int86(0x1A, &regs, &regs);
SubClass=regs.x.cx;
if((SubClass&0xff00)==0x2000)
return USB_EHCI_CONTROLLER;
}
}
}
}
}
return USB_NULL_CONTROLLER;
}
///*设置基地址为0X000D0000*/
void CfgBaseAddr(void)
{
union REGS regs;
regs.x.ax = 0xB10c; //WRITE CONFIGURATION WORD
regs.x.bx = UsbHostPciAddr;
regs.x.di = 0X10;
regs.x.cx = 0;
int86(0x1A, &regs, &regs);
regs.x.ax = 0xB10c; // WRITE CONFIGURATION WORD
regs.x.bx = UsbHostPciAddr;
regs.x.di = 0X12;
regs.x.cx = 0X000D;
int86(0x1A, &regs, &regs);
}
.........
第9楼 phtsai63 发表于 2007-10-24 11:13
新手上路 发帖 3 积分 6
Dos USB 用 Basic 寫的, 而且只 support OHCI and UHCI.
希望樓上的能造福大眾.
第10楼 winson4829 发表于 2008-03-06 14:34
初级用户 发帖 17 积分 68
開發環境使用 DJGPP + FreeDOS + DPMI + DOSUSB 的驅動程式 (http://www.dosusb.net)

請參考 http://www.dosusb.net 內的論壇內容, 不同的 USB CHIP 不保證一定成功,

但我的環境下列我寫的 SOURCE CODE 是 OK 的


檔案名稱 : W6USBCOM.h



檔案名稱 : W6USBCOM.C
第11楼 happe 发表于 2008-03-11 05:01
新手上路 发帖 6 积分 12
还在学习 这里的东西太多了...
DOS USB 编程是怎么回事?
看了还是不明白
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023