家里有台还在服役的 IBM PC/XT 5160 型微机,1983年生产,距今已是33岁高龄。
平时用来写点底层汇编程序,x86底层开发,ISA板卡开发,研究8086总线用。
该机型是世界首台内置硬盘的PC机,是IBM PC 5150的升级型号,现在PC的鼻祖,规范制定机型,接下来的几年也是各个厂家争先仿制的对象,如国产长城0520系列。
机器配置如下:
CPU:8088,带8087数字协处理器
内存:640k
硬盘:10M,带温盘控制卡
显卡:8位CGA全长卡
操作系统:CC-DOS 4.0
在正常情况下,机器开机后会检查软驱,如果没有启动软盘,就会再检查硬盘。当软盘硬盘都不能进系统时,机器会自动加载ROM中的Basic解释器,可以进行Basic操作。当然这也就说明硬盘可能有故障了。
经检查,硬盘无法低格,不能读写,MHDD和DM均无法操作,需要更换。
图:这次开机检查软盘后,硬盘灯常亮,直接进入了Basic解释器,说明硬盘故障。
该机使用的是希捷的5寸全高硬盘,容量10M,接口是ST-506/412,是MFM硬盘。
那个年代的硬盘大家也叫做“温盘”,即“温彻斯特盘”,是现代硬盘的祖先。这硬盘不同于后来的IDE硬盘,硬盘通过排线和专门的硬盘控制卡(温盘卡)相连,不同硬盘对应的控制卡也不同。现在的硬盘已经把这部分集成到硬盘电路板上了。
需要一提的是,那时机子BIOS里还没有硬盘读写例程,因此硬盘控制卡上有个ROM,内有硬盘读写程序。在自检后会加载ROM里的硬盘读写程序,实现硬盘访问。
硬盘控制卡采用8位ISA总线。
注: 当时还没制定ISA标准,所以也叫PC/XT总线,基本和后来的16位ISA总线兼容。IBM PC/XT机和之前的PC机都是8位外部总线,因此使用了8086的“阉割版”——8088处理器,没有使用8086。直到后来的AT机(286机器), 才开始带有16位外部总线,主板上开始出现16位ISA插槽。
注意图中控制卡左下角,就是装有硬盘读写程序的ROM。
这种硬盘市面上几乎绝迹,就算找到也都是些没有控制卡的拆机盘,卖家无法测试好坏。更换其他型号硬盘也找不到配套的控制卡。一套原装的好卡和好盘已经被炒到了天价,买了搞不好过两天就坏了,所以开始寻求电子盘替代方案。
那时IDE标准还没面世,直到486时主板才带IDE接口,之前都是通过ISA多功能卡实现扩展IDE接口。
不过这机器过于古老,只提供8位ISA插槽(刚才已经提到了),而市面上的扩展卡基本都是16位的,无法使用。极少数8位的IDE卡相当昂贵。
国外有大神自己开发了一款XT机用的IDE扩展卡,8位ISA,即XT-IDE计划,不过那位大神自己画PCB,自己做板子,自己写的ROM,花费了相当的时间精力金钱,所以还是望而却步了。
不过天无绝人之路,国内的江苏沁恒公司推出过一款名为CH375的USB桥接芯片,采用8位数据接口,理论上可以用在8086/8088的CPU上。
官网提供了芯片与8086/8088连接的原理图和例程,支持DOS、win9x。
在某宝上找到了CH375芯片样卡,用在x86工控机上的。
这种卡是8位的ISA卡,可以插U盘,然后在BIOS中认到一个硬盘,并对其进行分区格式化等操作,和真硬盘完全一样。
使用时需要用软盘引导到DOS,然后加载驱动程序。
如果需要实现U盘启动,则要把启动的程序烧入ROM,查到IC座上,在开机自检完成后就会调用ROM里的程序了。
驱动程序要修改里面的IO基址,改为026H。
图:先引导如DOS,然后加载驱动程序
从一个古董拨号猫上拔了块27C512的EPROM,紫外线擦除的。手头没紫外线灯,就用放大镜聚焦太阳光对芯片进行擦除。后来手累了,就拆了个验钞机做了个临时紫外线灯。不时用编程器检查下芯片是否空了。芯片擦除完成后用编程器写入启动代码,IO基址还是026H。
ROM文件从WCH官网下载。
正好家里有大量的8-64M的小容量CF卡,就把ISA卡改了一下,去掉了USB接口,扩展出了CF插槽,方便起见露在外面,两卡共用一个槽位。
全都弄好后,马上开机实验,一切正常!不再需要软盘引导了。
可以运行CF卡里的程序,游戏也可以了。。。
话说8088跑FOX完全是考验耐心哈哈。
至此本次改造告一阶段,原来的硬盘留在机器里(硬盘和面板一体的,拆了硬盘前面就漏一个洞),控制卡做绝缘处理。
虽然不算完美恢复,但至少用极低的成本让他继续工作了,而且CF拷数据很方便,寿命也更长。