中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 20:05
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » C语言中实现软关机 查看 1,201 回复 3
楼 主 C语言中实现软关机 发表于 2006-02-11 11:32 ·  中国 贵州 贵阳 电信
新手上路
积分 8
发帖 2
注册 2005-10-21 10:59
20年会员
UID 43837
状态 离线
如题,目前网上有些小程序可以在dos下关机了,或WIN98里面的win/z都可以关机呀
2 发表于 2006-02-11 15:12 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
3 本人解决了 发表于 2006-02-23 08:58 ·  中国 贵州 贵阳 电信
新手上路
积分 8
发帖 2
注册 2005-10-21 10:59
20年会员
UID 43837
状态 离线
#include "dos.h"
#define Bs 0x8
#define Tab 0x9
#define Esc 27
#define Enter 0xd

void off()
{
union REGS r;
r.x.ax=0x5300;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x5308;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5308;
r.x.bx=0x0ffff;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5301;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x530e;
r.x.bx=0;
int86(0x15,&r,&r);

r.x.ax=0x530d;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x530f;
r.x.bx=1;
r.x.cx=1;
int86(0x15,&r,&r);

r.x.ax=0x5307;
r.x.bx=1;
r.x.cx=3;
int86(0x15,&r,&r);

r.x.ax=0x4c00;
int86(0x20,&r,&r);
}

Reboot()
{
typedef void interrupt (*FP) ();
FP Reset;
Reset = (FP) MK_FP(peek(0xffff, 0x0003), peek(0xffff, 0x0001));
Reset();
}

void main()
{
printf("sadfad");
off();
getch();
}
4 发表于 2006-02-25 21:24 ·  中国 江西 南昌 电信
中级用户
★★
积分 486
发帖 171
注册 2006-02-12 13:53
20年会员
UID 50233
状态 离线
看不懂,能不能提供一些在C语言中使用中断的资料呢?
论坛跳转: