字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

GW-BASIC,当年不少在pc上学编程的人最初接触到的编程环境。

当时长城电脑的广告经常出现报纸杂志上,曾经有段时间以为“GW-BASIC”就是长城电脑(great wall)上的BASIC。

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

GW-BASIC


这是微软为IBM开发的BASIC,微软开发的BASIC解释器最大的特点是支持浮点数,苹果早期的BASIC解释器不支持浮点数,后来也花了不少钱从微软手上购买BASIC解释器。

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

IBM BASIC

这个BASIC解释器最初应该是放在主板的ROM里面的,如果电脑开机后找不到操作系统就会进入ROM里的BASIC,后来主板不内置BASIC解释器了,这个程序被搬到磁盘上。

对于苹果购买微软BASIC解释器事,许多年乔布斯后来在一个采访的节目有提到,大意是Woz是一个很厉害的硬件软件都精通的工程师,但最后他也不知道为什么苹果当时没搞出支持浮点数的BASIC来。

Debug,Dos下著名的debug软件,就叫DEBUG,可以直接在上面输入汇编指令并执行,也可以装载一个可执行程序到内存并用汇编指令修改这个文件,因此也可以用来杀毒,用来研究系统,还可以用来做许多事情。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Debug

由于DEBUG可以即时往内存中输入汇编指令和保存指定内存的数据到文件,于是在那个年代用汇编语言开发一个小的程序不需要编译器,有人用dos的通管道重定向输入一个文本文件就能生成完整的.com程序,国内DOS上最早的汉字系统之一的2.13汉字系统就是作者吴晓军先生用DEBUG开发出来的。

Unix上的gdb虽然功能很强大,但我想没人会通过gbd去开发程序,在MMU及各种机制的作用下已经不容易这样做了。

Pctools 5.0


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Pctools 5.0

早期Dos的dir命令是无法显示磁盘里隐藏文件和系统文件的,虽然可以用attrib修改一个文件的属性,可是如果连文件名字都看不到所以也不好改啊;有了pctools这个工具后,查看系统的隐藏文件、把文件隐藏起来变得非常方便,早期的dos计算机病毒还没有太多伎俩通常要隐藏一些数据,就设一些隐藏文件,pctools比较容易发现和清理;pctools还可以恢复一些被删除的文件,简单修复系统、修改早期游戏的存档。

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Pctools 5.0

Pctools还可以全屏编辑文本文件,修改配置文件比较方便,早期的dos是没有全屏文本编辑器的,只有一个叫 edlin 的行编辑器,不好形容其使用的体验,全屏文本编辑器edit 是后期的带qbases的dos才有。

在当时,如果自己的软盘上有一个 pctools那就可以学雷锋为其他pc玩家修理电脑了。

Pctools还有一个驻留内存的方式,例如运行时加上一个参数 /r128k,就能让Pctools驻留在内存,随时可以按

DOS时代最强大的电脑工具软件:Norton。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Utilities 8.0

由于DOS和fat文件系统很脆弱,当时大部分严重的系统故障都是由文件系统损坏导致,即使没有计算机病毒的破坏,分区表、fat文件系统、系统文件也很容易损坏,Norton工具箱最实用的就是NDD磁盘医生和磁盘编辑器可以修复许多故障和抢救数据。看资料介绍,作者norton被誉为那个年代最了解PC硬件的人。

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Disk Dortor (Norton 磁盘医生)

如果细心观察,Norton的字符界面十分精美与平常看到字符界面不太一样但这确实是字符界面而且显示速度非常快,这里涉及到两个关键的技术:直接写屏与重定义字符集。

“直接写屏”在那个年代是很流行概念,资料比较多,简单说就是不通过调用系统的接口(主板的BIOS int 10或dos的 int 21)直接去写显卡的显存实现字符的显示或绘制图形。当时中国的程序员把“直接写屏”这个技术研究得非常透彻,天汇汉字系统的用户应该还记得,天汇在屏幕上滚动输出大量汉字的速度非常快。

“重定义字符集”在当时的资料就比较少,为什么后期的Norton和pctools的字符界面跟平常字符界面不一样,为了说明这个问题,这里要先介绍一下VGA显卡的文本工作模式。

我们平常看到VGA的文本模式是用16bit保存一个屏幕上的字符:其中8bit设定符号显示的属性可以是闪烁、下划线、前景色、背景色,8bit保存符号的编码;这样的模式下可以表示256个符号,而这256个符号中还包括了一些终端控制符,因此如果只用这些符号来做界面是不太够用。

后期的Norton和Pctools的用一种当时被称为“512字符集”的办法,通过不切换到图形模式的情况下在字符界面显示出更多的字符来构建精致的界面,具体做法就是把自定的字体加载到显卡并且占用了符号显示属性中前景色的一个bit用于表示用哪套字体,这样就可以表示出最多512个符号,这都是根据VGA硬件规范来实现的;有了这个数量的符号用来做界面,所以我们可以看到这些字符界面很精致。

时至今日,我们可以在Linux、BSD、苹果的终端上输出 emoji ,合理使用这些符号,可以构建出很漂亮的字符界面而不再需要直接和硬件打交道了。

NortonDisk Editor,可以编辑分区表,FAT

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

NortonDisk Editor

在DOS中后期的电脑病毒已经进化到不用文件保存自身和所需的数据而是隐藏在磁盘的扇区里面,这时用查看隐藏文件的方式已经不太容易发现这些病毒,用 Norton 工具箱比较容易发现一些蛛丝马迹,当然杀毒还是需要用杀毒软件。

Norton工具箱可以生成一张修复软盘里面放有NDD等软件方便随身携带再加上一张装有杀毒软件的软盘,在那时就可以到处跑帮朋友修理电脑,只要不是硬件坏了都能让其重新工作起来,数据通常也能抢救回来很多,当时的电脑病毒一般都是破坏硬盘分区表和文件系统没有彻底抹掉用户的数据,不像现在的勒索软件那么狠,先加密然后抹掉用户的数据。

Norton Disk Dortor (Norton 磁盘医生)

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Disk Dortor

整理磁盘碎片的Speep Disk

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Speep Disk

后来,开发pctools的Central Point 和 Norton公司后来被 symantec 并购。


这是Norton commander简称nc(不是现在常说的netcat),用来管理文件很方便,Linux/BSD上的GNU Midnight Commander(mc) 的界面就是克隆自 norton commander。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton commander

玩游戏作弊用的FPE,虽然在Linux下用 ptrace 也可以修改另外一个进程的内存,但相对几乎没有任何内存保护的dos来说那个年代编程的自由度更高。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

FPE

拷贝软盘,交换软件/游戏必备软件之一:HD-COPY;另外一个软件是arj,打包压缩,类似于今天的Linux下的tar。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

HD-COPY

HD-COPY最大的特色之一是读盘,据说能够轻松复制一些防盗版的软盘,当然这个功能对付不了我们中国的工程师,用HD-COPY来复制国产软件kv200这些软盘是不行的。

HD-COPY另外一个特色是把软盘多格式化出一些扇区和磁道,HD-COPY可以把一张普通的1.44M软盘格式最高化为1.722M,虽然是多了200多k字节,在当时可是非常实用的功能。

据说HD-COPY的作者后来加入了FreeBSD成了大佬级人物。


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

EDIT

Dos后期内置的QBasic,据说是微软创始人之一的Paul Gardner Allen退休前最后一个作品,前面的EDIT其实是QBasic其中一部分,至少是同一个框架开发出来的吧。

QBasic其实是微软的Quick Basic的一个缩减版,少了把源码编译成.exe的功能。

字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

QBasic

Norton Desktop


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Desktop


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Desktop


字符界面之美,勾起回忆的一组上个世纪的DOS软件界面

Norton Desktop

谨以此文为本人的开源项目GNB还在开发中的字符管理界面作宣传并向前老一辈开发者致敬。

GNB是一个开源的去中心化的具有极致内网穿透能力的通过P2P进行三层网络交换的VPN。


分享到:


相關文章: