DOS与XENIX共享硬盘经验两则

Author: 谢沁 Date: 1995-06-02

        一、将DOS分区隐含起来
        XENIX和DOS分享硬盘,通常的做法是设XENIX分区为激活分区,启动后,待屏幕出现BOOT:时键入dos进入DOS,或键入回车进入XENIX。经分析XENIX系统引导过程,当键入dos后,系统将控制权交与在XENIX根目录下名为“dos”的程序,再由其提交给出现BOOT:时键入dos,系统提示dos not found,这便给别人一个误导信息,认为你的硬盘上没有DOS分区,而实际上当你键入所更改的文件名时,同样可顺利地进入DOS。
        二、实现高版本DOS与XENIX共享
        笔者在同一硬盘上按正常方法安装DOS V6.22和XENIX系统后,在BOOT:提示后键入DOS,系统提示“dos:no dos partition”信息,不能由此进入DOS,经分析发现,在“dos”程序中,只承认分区类型为“04”(16位FAT的DOS)和“01”(12位FAT的DOS),而高版本DOS(V5.0以上)其在主引导记录分区表信息中的类型标记却为“06”(保留DOS),如表1
        -d0280 02ff
        118d:0280 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:0290 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:02A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:02B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:02C0 00 00 06 0B 70 63 30 00-00 00 D0 20 03 00 00 00
        --|
        118d:02D0 00 00 00|00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:02E0 00 00 00|00 00 00 00 00-00 00 00 00 00 00 00 00
        118d:02F0 41 64 02|0B F0 93 00 21-03 00 00 EC 04 00 55 AA
        |-->高版本DOS分区类型标记
        表1
        那么,能否改动“dos”程序,让其承认分区类型为“06”的DOS分区呢?回答是可行的,具体步骤如下:
        1.在XENIX根目录下用“doscp -r dos a:dos”命令将“dos”文件拷至一经DOS格式化的备用盘上;
        2.进入DOS系统,将拷有“dos”文件的备用盘插入A:驱:
        c:\>debug a:dos
        -u01ef 0205
        118D:01EF 26       ES:
        118D:01F0 803C80   CMP    BYTE PTR [SI],80
        118D:01F3 7502     JNZ    01F7
        118D:01F5 8BDE     MOV    BX,SI
        118D:01F7 26       ES:
        118D:01F8 807C0401 CMP    BYTE PTR  [SI+04],01
        118D:01FC 7407     JZ     0205
        118D:01FE 26       ES:
        118D:01FF 807C0404 CMP    BYTE PTR [SI+04],04
        118D:0203 7502     JNZ    0207               --|
        118D:0205 8BFE     MOV    DI,SI               |
        -e0202                                         |
        118D:0202  04.06   将分区类型模本改为“06”<---|
        -w
        writing 00241 bytes
        -q
        3.进入XENIX根目录,用“doscp -r a:dos dos”命令将备用盘上“dos”文件覆盖原文件,DOS与XENIX切换如常(此方法在DELL Optiplex 433/Le,SCO XENIX 2.3.4,DOS V6.22通过)。
        上述两则经验均在“dos”文件上做文章,实际上还可对其进行改动,使其出现许多意料不到的功能。
        (谢沁)