无硬盘也可以使用2.13H汉字系统

Author: 辽宁 朱广忠 Date: 1993-11-05

        有的PC机无硬盘,286机有时因病毒感染系统也不认硬盘,这时2.13H就无法启动。2.13H必须有硬盘才能启动,这对用户就不太方便。
        能否不用硬盘,只用软盘也能启动2.13H呢?经过反复研究,终于找到解决办法。
        影响2.13H启动的最主要的文件是FILEIA.COM,因为在此程序中有几处对硬盘进行操作,下面是FILEIA.COM程序有关部分清单如下:
        120E:0100 BCE000 MO V SP,00E0
        120E:0103 B80102 MO V AX,0201
        120E:0106 BB0008 MO V BX,0800
        120E:0109 B90100 MO V CX.0001
        * 120E:010CBA8000 MO V DX,0080
        * 120E:010F CD13 INT 13
        * 120E:0111 BEBE01 MO V SI,01BE
        120E:0114 80780401 CMP
        BYTE PTR[BX+ SI+ 04],01
        120E:0118 7411  JZ 012B
        120E:011A80780404 CMP BYTE PTR SPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACE
        [BX+ SI+ 04],04
        120E:011E 740B JZ 012B
        - U
        120E:0120 80780406 CMP BYTE PTR
        [BX+ SI+ 04],06
        120E:0124 7405 JZ 012B
        120E:0126 83C610   ADDSI,+ 10
        120E:0129 EBE9  JMP 0114
        120E:012B 8A7001  MO V DH,
        [BX+ SI+ 01]
        120E:012E 8B4802 MO V CX,
        [BX+ SI+ 02]
        120E:0131 B80102  MO V AX,0201
        120E:0134 CD13 INT 13
        120E:0136 8A4716 MO V AL,
        [BX+ 16]
        120E:0139 40 INCAX
        120E:013AB402 MO V AH,02
        120E:013CCD13 INT 13
        120E:013E E8BF01  CALL 0300
        ........ ........
        * 120E: 01DF 0003 ADD[BP + DI], SPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACESPACE
        AL
        ....... ........
        120E:0290 0288C588   ADDCL,
        [BX+ SI+ 88C5]
        120E:0294 D6 DB D6
        120E:0295 B040   MO V AL,40
        120E:0297 F6E4  MUL AH
        120E:0299 00C1 ADDCL,AL
        *120E:029B B280  MO V DL,80
        120E:029D31DB XO R BX,BX
        120E:029F B80102   MO V AX,0201
        120E:02A2 CD13 INT 13
        ...... ........
        下面仔细分析此程序:从中发现此段程序使用了对硬盘第一物理扇区的读写功能INT13H。 因而,用软盘启动2.13H,必须访问硬盘,所以没有硬盘的机器就无法使用2.13H,此程序为了取得硬盘的DOS引导记录和FAT表,由此计算出磁盘I/ O参数。一开始就读写0 面,0道第一扇区的主引导记录,根据分区信息表找出DOS分区的起始柱面号,道号和扇区号,索引DOS的引导记录,然后,读出DOS的引导记录和第一个FAT表。
        硬盘与软盘的结构是有一定区别 的,硬盘是主引导记录,它不属于任何分区,而软盘没有主引导记录,软盘的0面0道1扇区就是DOS的引导记录,紧接着后面的扇区就是FAT表。
        因此,没有硬盘只用软盘启动2.13H就必须对FILEIA.COM程序进行以下三点修改:
        (1) 修改读出硬盘DOS主引导记录部分;
        (2) 修改程序中寻找DOS分区信息部分;
        (3)将程序中对硬盘操作的部分修改为对A盘操作。
        具体修改可以用汇编语言或用DEBUG工具软件对FILEIA.COM进行修改。只修改打*号的地方就可,方法如下:
        C> DEBUG FILEIA.COM
        - A010C
        120E:010C   MO V DX,0000
        120E:010F  INT 13
        120E:0111  JMP 0136
        120E:0113
        - A01DF
        120E:01DF   ADD[BX+ SI],AL
        - A029B
        120E:029B  MO V DL,00
        120E:029D
        - W
        WRITING 02D1 DYTES
        - Q
        到此FILEIA.CO M修改便完成。在DOS系统盘的根目录下,必须有以下两个文件:
        ANSI.SYS和CONFIG.SYS
        CONFIG. SYS文件中第一行必须是DEV ICE= ANSI.SYS,且必不可少。
        PC机用360K软盘启动必须用两张盘,一张为DOS系统盘,另一张为2.13H系统文件盘。 可建立一个批处理文件213.BAT如下:
        ECHO O FF
        FILEIA2
        CCCC
        CC11
        YX11
        ECHO ON
        用DOS系统盘启动后再插入2.13H系统盘后键入213.BAT批处理文件便可进入汉字系统。
        286 以上机器用1.2M的软盘启动,将DOS系统及2.13H系统都装在此盘上并建立一个自动批处理AUTOEXEC.BAT如下:
        ECHO OFF
        FILE1A2
        CCCC
        CC11
        YX1
        LX1
        KEY
        KWB
        WBZX
        ECHO ON
        用此盘即可直接启动汉字系统。
        (辽宁 朱广忠)