cheng_5103
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2012-03-21
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望228点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
阅读:4327回复:7

8139系列网卡dos下的两个简单驱动及接收、发送程序及源码

楼主#
更多 发布于:2004-06-01 17:58
好像有人需要这个样,我最近实验了好久才把它实验成功,原和大家
一同分享。希望大家在网上传播时保留原文作者及程序内容不动。
作者:成松林
QQ:179641795
email:cheng_5103@126.com cheng_5103@163.com
本程序为dos下实验,了解网卡的工作原理及驱动的编写。
pack.com
xxx:100无条件跳转到卡的安装程序。
xxx:110处为网卡初始化子程序。(注:简单初始化tx配置、rx配置、rx缓冲区:
为32位物理地址,打开tx、rx允许位,打开卡的中断允许位,tx缓冲区在发送时
设置即可注也是32位物理地址。其他寄存器为重置卡后的默认值。)
xxx:170处为网卡rok中断程序,并显示指定包内容(注:显示由send.com发的内容,
因卡收包过程在缓冲区是一个\'环式的工作方式\',故为了方便此中断程序每次重置
卡的rx缓冲区,不正确处是在重置卡的rx缓冲区前将rx配置值保存,后再恢复。)
xxx:1b0处为网卡tok中断程序,简单显示发送成功子程序。(注:不完善应该
加上处理发送成功后,计算下一个可用或叫空闲的发送缓冲区号,放到指定位置
以便发送程序知道下一个空闲的发送缓冲区号)。
xxx:1c0处为显示子程序,入口:cx=显示字符数;bx=显示缓冲首地址(注:用的
ah=0eh  int 10h来显示的)。
xxx:1f0处为网卡除rok、tok两个中断以外的所有中断程序(注:简单显示出错)
xxx:200处为网卡的irq中断主程序,本服务只检测tok、rok中断,并调用相应的
卡中断程序,其他的的卡中断全部显示卡出错信息并重新初始化网卡。(注:该服务
程序用的自己的堆栈。因irq号有可能共用,故程序起初就判断是否为卡的中断,
是卡的中断继续,否则调用旧的irq号中断服务程序。)
xxx:300

xxx:2fff这段内存为卡的rx缓冲区以及卡的irq中断所用的堆栈内存区。
xxx:3000处为卡的安装程序。(注:先查找卡:只找第一块卡,获得卡的io基地址、
irq号保存,计算irq向量安装中断服务程序,打开irq允许位,最后调用卡的初始
化程序,完成卡的全部完装中断驻留退出。)
send.com
通过ah=a;int21h接收用户输入内容数据,设置好特定各式的包内容,获得卡的空
闲发送缓冲区号,设置好卡的发送地址,最后置卡发送。


rx缓冲区环式的工作方式:原理网卡自动根据用户配置的rx缓冲区大小,将第一
个收到的包放到用户指定的rx缓冲区地址开始处,网卡自动将后面的包依次放到
第一包后面,开成一个链式的包结构,并每次收包后自动设置cbr寄存器即收到
包的总字节数,直到卡rx缓冲区满为止。这时就要重置卡的rx缓冲区了,方法:
保存rx配置,关闭网卡收包即向网卡命令寄存器写不允许收包,当然这时可以
重新设置网收包缓冲区地址一般这里不做改变取原来的,接着打开收包,最后
恢复rx配置即可。这样开成了一个循环链式缓冲区结构。
附件名称/大小 下载次数 最后更新
2004-06-01_8139.rar (55KB)  201

最新喜欢:

iihackeriihack...
cheng
沙漠之鹰
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2007-08-02
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-01 22:24
收藏了,谢谢!
------------------------------ [color=red]茶壶深爱着茶叶,表达爱意时却遭到拒绝,茶壶大吼:为什么?这一切都是为什么? 茶叶胆怯地说:俺妈说了,成天灌水的都不是好人。 ---别到处看,说你哪!!    [/color]
dominic317
驱动牛犊
驱动牛犊
  • 注册日期2004-05-11
  • 最后登录2004-10-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-08 16:01
好人,顶! 收藏了。
partyd
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2013-01-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-23 14:04
谢谢!!!!!!!!!
fengyuangang
驱动牛犊
驱动牛犊
  • 注册日期2007-06-07
  • 最后登录2011-01-14
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望75点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-07 14:46
谢谢了
qsc66886688
驱动牛犊
驱动牛犊
  • 注册日期2007-07-02
  • 最后登录2008-06-06
  • 粉丝0
  • 关注0
  • 积分320分
  • 威望43点
  • 贡献值0点
  • 好评度42点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-11-15 10:25
谢了
cheng_5103
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2012-03-21
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望228点
  • 贡献值0点
  • 好评度45点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-11-19 11:38
www.aogosoft.com/bbs去看..发了个更完整..解释更好的源代码....
cheng
okmhy
驱动牛犊
驱动牛犊
  • 注册日期2010-12-28
  • 最后登录2010-12-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-12-28 19:53
正在找这个程序,谢谢!
游客

返回顶部