重温DOS下的小作品:回忆过去,展望将来

今天整理磁盘,发现了我以前在DOS下编写的一些小软件,于是萌发了一种将其发布到博客以表纪念的想法。纯粹是为了回忆和纪念,正如我们会经常回忆那些80后所看的经典动画片、所吃过的零食那样,当我看到这些曾经为之振奋而充满激情的“作品”时,不免会回想起当时写这些软件时的情景,进而感叹:时间过的真快,软件技术发展得真快。这些软件基本上是基于Quick Basic和C/C++编写的,BASIC语言嘛,是我的入门语言。98年考全国计算机等级考试二级时,我选的就是BASIC语言。之后在99年,我自学了PASCAL,转而进入Delphi的领地,而那一年正好是我参加高考,OMG,对计算机编程的热衷,使我在高考中发挥失常,结果如何,可想而知。如今,我把全部的精力都放在专研.NET与企业应用开发相关的领域,我是在2002年开始接触并学习.NET的,至今也仍然在不断的学习、思考、摸索、实践之中。

言归正传,现在开始把这些小软件晒出来。

1、打字测速程序TT45.BAS

在DOS下,打字测速程序非常普遍,有基于英文的,有基于中文的。我编写的这个TT45,只支持英文的。不过与那些英文的打字测速程序相比,TT45多了两个有趣的功能:能够支持用户自定义的界面风格,而且支持样文的自定义,用户可以自己编辑指定的文本文件来添加需要练习的文章。

image

2、五子棋双人对战程序GOBANG.BAS

一个简单的五子棋双人对战程序,非常简单,支持两个人同时游戏,程序只负责输赢的判断,不支持人机对战和人工智能,所以不要对这个程序抱有太大期望。

image

3、函数图象描绘系统FUNDRAW.BAS

一个用来描画函数图象的小软件。由于当时没有CodeDom技术,而且自己也没有写编译器的本事,所以为了支持用户自己填写函数表达式,这个软件会调用Quick Basic的编译器来编译事先定义好的代码文件并执行编译后的可执行程序。在图象显示的界面中,还可以使用+/-键来放大/缩小比例,还可以使用方向键来准确定位图象上的某个点,进而获得函数值的近似读数。这对当时正在读高中的我来说,在验证一些数学题的答案上帮了不少忙。在我进大一以后,进一步完善了这个程序(所以你看到的About上的时间是2000年),当时还打算开发一个基于Windows系统的函数图象描绘软件,不过之后当我得知有更成熟的类似产品后,我就放弃了这种想法。

image

4、硬盘探险家(Hard Disk Explorer)

一个用C语言结合汇编语言编写的硬盘数据浏览和编辑软件,这个软件在当时的一个网站上下载量还是在很前面的。当时对于硬盘的磁盘格式、文件分配表FAT16/32、中断调用和TSR(Terminate Stay Recident,内存驻留程序)有着深入的研究。我研究这些东西的兴趣来自于当时流行的KV200/300杀毒软件,KV软件里有一个非常详细的电子文档,讲解了与磁盘、内存和病毒相关的一些知识。“硬盘探险家”是我模拟Central Point PC Tools软件的界面编写的,并且模拟了Borland Turbo C++ 3.1的菜单界面,好像之后Central Point公司就被赛门铁克收购了。

image

5、硬盘隐藏扇区编辑软件(HSEDIT.C)

其实这个软件要比“硬盘探险家”更早。这个软件仅支持整个硬盘的MBS前64个隐藏扇区以及DBS的一个隐藏扇区。在我解决了LBA的兼容问题和硬盘访问的扩展中断后,才编写了上面的“硬盘探险家”。我记得当时为了解决LBA的问题,专门跑到图书馆借来了求伯君先生编写的《DOS中断大全》一书。这个软件的一个有趣的地方是,在没有启动汉字系统的情况下,在“帮助”中实现了汉字的显示。

image

当然,当时写的小软件远不止这些,还有一些是基于DOS命令行的,我就不贴图了,比如,有支持将文本文件转换为C语言文件,通过C语言编译器编译后就能生成专业效果的README程序的TXT2C,还有支持爱普生1600K针式打印机的打印程序等等。所有的这些,见证了我在软件行业的成长过程。

随着Windows的逐步普及、OOAD/OOP的迅速发展,我的重点也慢慢地从小程序、系统程序转变到企业应用上了,或许你会说:傻了吧,现在做系统底层开发的多吃香啊,但我并不觉得这是件很大的事,因为兴趣使然。软件种类很多,要学的东西太多了,能够做好一个领域、做精一个领域,就不是件容易的事情。只要你把事情做好,你的价值就自然会体现出来。

最后再勉励一下自己,朝着目前的方向,继续努力!

原文地址:https://www.cnblogs.com/daxnet/p/1939659.html