Board logo

标题: 有没有好方法可以在2003中恢复CMOS? [打印本页]

作者: 9zhmke     时间: 2008-10-16 21:26    标题: 有没有好方法可以在2003中恢复CMOS?

学校机房有些机器老掉电,能不能做个批处理把CMOS内容保存到一个文件,在XP或2003系统启动后来恢复?
有第三方小工具也可以,要求不要太耗时间太耗资源,以前有工具可以在DOS下实现,自从XP SP2后就不能用了,谁能再弄一个?
理论上可以通过debug <command.txt 来实现吧?
我只知道可以用o 70 10来写端口,读、校验又怎么解决呢?

[ Last edited by 9zhmke on 2008-10-16 at 21:31 ]
作者: willing     时间: 2008-10-18 22:25
你是要开机自动恢复还是怎么样?有个小工具ICMOS不错,如果想要自动化的话试试脚本吧
作者: fujianabc     时间: 2008-10-18 22:51
只有在纯dos下debug才能起作用。

xp/2003下debug不能直接访问硬件的
作者: 9zhmke     时间: 2008-10-27 01:43
回楼上的二位,就是想要个开机就自动恢复的,icmos最新版试过了不能用。估计只能用于xpsp1或2000
在我的机器上debug运行时系统提示说找不到c:\windows\system32\debug.exe,估计是使用了精简版系统删了16位兼容模式的原因,找到了一个贴子叫RCMOS不知道能不能有效,哪位帮我看看?


使用方法:1 纯DOS执行"debug <readcmos.txt" ,你能看到当前目录下产生一个CMOS数据文件.
          2 ........."debug <writecms.txt" ,完成任务.
         

如果你想再一次执行上述两条命令来保护CMOS的另外一种状态,请确定你在执行这条命令之前你执行了撤消以前保护的操作.怎样撤消保护的操作如下:
进入MS-DOS方式,然后
C:\WINDOWS>DEBUG
A
MOV    AX,201
MOV    BX,200
MOV    CX,2
MOV    DX,80
INT    13
MOV    AX,301
MOV    BX,200
MOV    CX,1
MOV    DX,80
INT    13
INT    3
<再按一下回车键>
G
Q
同样需要注意的是,如果你没有执行保护操作,你也不要千万不要执行该撤消操作!

readcmos.txt
A100
MOV SI,061D
MOV CX,70
MOV AL,10
OUT 70,AL
PUSH AX
IN AL,71
MOV BYTE PTR[SI],AL
POP AX
INC AL
INC SI
LOOP 108
INT 3

G=100
NCMOS.DAT
RCX
70
RBX
0
W061D
Q

writecms.txt
A
MOV AX,201
MOV BX,600
MOV CX,1
MOV DX,80
INT 13
MOV AX,301
MOV CX,2
INT 13
INT 3

G=100
NCMOS.DAT
L061D
A0600
CLI
XOR AX,AX
MOV SS,AX
MOV SP,7C00
MOV SI,SP
PUSH AX
POP ES
PUSH AX
POP DS
STI
CLD
MOV DI,0600
MOV CX,100
REPNZ
MOVSW
JMP 0000:068D

A068D
MOV BL,10
MOV SI,061D
MOV CX,70
MOV AL,10
OUT 70,AL
PUSH AX
MOV AL,BYTE PTR[SI]
OUT 71,AL
POP AX
INC AL
INC SI
LOOP 0697
DEC BL
JNZ 068F
MOV AX,201
MOV BX,7C00
MOV CX,2
MOV DX,80
INT 13
JMP 0000:7C00

A100
MOV AX,301
MOV BX,600
MOV CX,1
MOV DX,80
INT 13
INT 3

G=100
Q
作者: fujianabc     时间: 2008-10-27 17:40
楼上的,这些操作在2003下是不行的,你必须到纯dos下才能用,原因在3楼我已经说过了。
作者: dato     时间: 2008-10-27 20:42
不明白,就算进系统能恢复CMOS可是下次开机仍然要F1键进去,其实很多老机器不大会CMOS没电很多都是积灰或者扩展卡有短路导致开机CMOS清空.