中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » 有没有好方法可以在2003中恢复CMOS?
作者:
标题: 有没有好方法可以在2003中恢复CMOS? 上一主题 | 下一主题
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『楼 主』:  有没有好方法可以在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 ]

2008-10-16 21:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willing
中级用户





积分 256
发帖 133
注册 2008-9-29
状态 离线
『第 2 楼』:  

你是要开机自动恢复还是怎么样?有个小工具ICMOS不错,如果想要自动化的话试试脚本吧

2008-10-18 22:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 3 楼』:  

只有在纯dos下debug才能起作用。

xp/2003下debug不能直接访问硬件的

2008-10-18 22:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『第 4 楼』:  

回楼上的二位,就是想要个开机就自动恢复的,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

2008-10-27 01:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 5 楼』:  

楼上的,这些操作在2003下是不行的,你必须到纯dos下才能用,原因在3楼我已经说过了。

2008-10-27 17:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 6 楼』:  

不明白,就算进系统能恢复CMOS可是下次开机仍然要F1键进去,其实很多老机器不大会CMOS没电很多都是积灰或者扩展卡有短路导致开机CMOS清空.



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-10-27 20:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: