注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

DOS编程技术

讨论在纯DOS下的编程技术

 
 
 

日志

 
 
关于我

1984年大学毕业,1985年底有机会开始接触PC机,1986年开始在PC机上做开发工作,曾接触过MS-DOS、CP/M、UNIX、VMS、LINUX、iRMX等众多的操作系统并在上面从事技术开发,擅长做底层与硬件相关的软件开发,目前主要在DOS和LINUX平台下工作,主要从事软件,在硬件开发上也有一定造诣,亦有在8051系列、6502系列(凌阳)、z80系列、ARM、X86等各类平台下开发软硬件的经历。更详细情况可以参考http://resume.whowin.net

网易考拉推荐

关于构建DOS下编程平台的总结  

2008-05-15 13:05:22|  分类: DJGPP相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    在前面的文章中,用了五篇文章介绍了DOS下一个自认为比较好用的一个编程平台,这五篇文章分别是:
    《安装DJGPP》
    《在DOS下的DJGPP+RHIDE安装实作》
    《在DOS下进行网络编程(上)》
    《在DJGPP+DOS下安装ALLEGRO》
    《给Allegro增加一个JPEG库》
    在这个环境中,我们有一个可以进行保护模式下编程的环境DJGPP,有DJGPP下类似于TURBO C的rhide,我们拥有一个可以进行网络编程的函数库watt32,我们有一个用于图形编程的函数库Allegro,最后我们还安装了一个专门借助Allegro处理jpeg文件的函数库JPGALLEG,What else do you need?
    我在这个环境下已经工作过很多年,实际上在构建这个环境我已经不需要再进行一步一步地安装,但在总结这五篇文章时,我特地找了块主板,一块硬盘,从头到尾做了一遍,所以大家尽可以放心,其中的每一个步骤都是在写你看到的那篇文章时刚刚做过的,当然由于各方面环境的不同,实际安装过程中一定会有一些差异,这就只有靠各位的聪明才智了。
    实际上,按照这个步骤安装我应该至少有三次了,记得第一次的时候也是乱七八糟,现在已经记不得当时的情景了,只记得一切都很不顺,似乎和readme中讲的完全不一样,到第二遍的时候就很顺了,同样的硬件配置,感觉完全不一样,回想起来,问题还是在自己,最主要的并没有认真地阅读各种readme文档,可能是因为全是英文的,第一次阅读有些地方理解有偏差吧,总之,认真看文档是十分重要的。
    为了让喜欢这个环境的朋友尽可能地少点麻烦,在这篇文章中,我公布一下我目前机器中的config.sys和autoexec.bat这两个文件,另外,在前面的这些文章中,我似乎并没有提到过如何在DOS下支持USB的问题,在本文中将一并向大家介绍。
1、DOS下支持USB
    有很多地方都在介绍DOS下支持USB的方法,大多数我应该都在几年前就试过了,我也不知道这些文章的作者是否自己试过,反正我试的结果是大多数都是不可用活不好用的,最后我确定了现在的这个支持USB的方案,在很多不同的机器上试过,还没有失败过,我所说的驱动仅限于U盘、USB硬盘等USB存储设备,并不包括诸如摄像头等USB设备。
    首先,现在的很多新主板,BIOS中本身是支持USB的,这样的主板不再需要驱动,插上USB,开机应该就可以用USB盘,所以在使用驱动前请搞清楚你的主板情况。
    另外,我的DOS是纯粹的MS DOS 6.22,没有附加任何东西,比如长文件名支持、大硬盘支持等等,尽管这些挺有意义,但由于我构造的系统绝大多数并不需要这些,而且我一贯认为,系统越简单,问题会越少,所以我不用这些东西,带来的问题是,只支持FAT16,FAT32等其他格式不支持,所以,很多在windows下格式化的U盘可能会有问题;再者,不支持大硬盘,最大分区为2G。
    在DOS下支持USB的方法很简单,在config.sys中增加下面两行:
    device = c:\usb\aspiohci.sys
    device = c:\usb\di1000dd.sys
    这两个文件可以在下面的网址中下载得到:
   
http://blog.hengch.com/software/dosusb/usb.zip
    这样的驱动也是有一些问题的,就是当硬盘有多个分区时,如果不插USB设备,DOS在启动到autoexec.bat文件中的rtspkt 0x62这句时将死机,原因不详,似乎是哪里有冲突,因为我仅在开发时有此可能,实际应用系统中不会出现这种情况,所以就没有深究,开发过程时的解决办法是在USB口上一直插一个坏了的CF卡读卡器(并没有CF卡)。如果哪位高人知道其中的原因,烦请一定告知我,我的email:hengch@163.com,谢谢!
2、我的config.sys清单
    DEVICE=C:\DOS\SETVER.EXE
    DEVICE=C:\DOS\HIMEM.SYS
    DOS=HIGH
    FILES=30
    lastdrive = Z
    device = c:\usb\aspiohci.sys
    device = c:\usb\di1000dd.sys
3、我的autoexec.bat清单
    @ECHO OFF
    PROMPT $p$g
    cd\net
    @rtspkt 0x62
    cd\
    set DJGPP=C:\DJGPP\DJGPP.ENV
    set PATH=C:\DOS;C:\DJGPP\BIN;c:\tc\bin
    SET TEMP=C:\DOS
    set WATT_ROOT=c:\net\watt
    set WATTCP.CFG=c:\net\watt\bin
    set ETC=c:\net\watt\bin
    set C_INCLUDE_PATH=c:\net\watt\inc
    set LIBRARY_PATH=c:\net\watt\lib
    doskey

    这个环境我一直用着很顺手,希望大家能喜欢。
  评论这张
 
阅读(3344)| 评论(6)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018