对DOSSHELL的一点小改动 浙江 徐晓伟 1995-07-28 Unable to load MS-DOS Shell,Retry (y/n)? 如果我们键入的是小写的n(即ASCII码Ox6E),则返回DOS下;如是N(ASCII码Ox4E)则继续显示: Unable to load MS-DOS Shell,Retry (y/n)? 我们知道一般的软件如出现要求键入一个字符(如菜单中的热键)时,尤其是象回答Y或N这样的情况,它应该是不分大小写的!否则的话当你按下N键而键盘却处于大写状态下但你不知,让人产生程序有误或键盘失灵的错觉。笔者通过分析DOSSHELL.COM,利用DEBUG把它修改成对大小写都能响应。 步骤如下: C:\DOS>DEBUG DOSSHELL.COM -R CX ;查看文件长度 CX 120F : -S 100 120F 3C 6E ;搜索 CMP AL,6E(与'n'比较) 119B:0285 -U 285 290 119B:0285 3C6E CMP AL,6E 119B:0287 90 NOP 119B:0288 90 NOP 119B:0289 740C JZ 0297 119B:028B 3C79 CMP AL,79 ;与'y'字符比较 119B:028D 90 NOP 119B:028E 90 NOP 119B:028F 7402 JZ 0293 -A 285 119B:0285 OR AL,6O ;把键入的键值和Ox60相或,得到的是该键的小写值, 119B:0287 CMP AL,6E ;这样不管键入的是大写还是小写,程序收到的都是小写。 119B:0289 -W Writing 012OF bytes -Q 笔者用的DOS版本是5.00。(浙江 徐晓伟)