From: Clemens Valens Newsgroups: comp.os.msdos.djgpp Subject: Re: How to restart computer? Organization: http://www.remarq.com: The World's Usenet/Discussions Start Here X-Originating-Host: 195.154.148.69 X-Wren-Trace: cI2qip+N0bObydmkncrMxMvezd3S2p3B3dDC393AzY3T0pjC0pjMzdDY0cbVlN6ZwpeAjp/cqaWBkMOAksiKlsbOg4k= Message-ID: <933769851.26224@www.remarq.com> References: <7o8r5i$2r9q$1 AT ns DOT felk DOT cvut DOT cz> Lines: 47 Date: Wed, 04 Aug 1999 04:30:47 -0800 NNTP-Posting-Host: 10.0.3.195 X-Complaints-To: wrenabuse AT remarq DOT com X-Trace: WReNphoon3 933769585 10.0.3.195 (Wed, 04 Aug 1999 05:26:25 PDT) NNTP-Posting-Date: Wed, 04 Aug 1999 05:26:25 PDT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com You are in luck, I had to do the same and came up with this code (it works very well): /* * Reboot the PC by simulating a ctrl-alt-del. * Based on Frank van Gilluwe's "The Undocumented PC" */ int reboot(void) { volatile char kb_status; unsigned short int i, timeout = 1; while ((kb_status=inportb(0x64))&0x02) { i=1; while(i) i++; /* Slow down I/O access. */ timeout++; if (!timeout) goto reboot_error; } outportb(0x64,0xfe); i=1; while(i) i++; /* Slow down I/O access. */ /* * If all went well you should never get below this line. */ while ((kb_status=inportb(0x64))&0x02) { i=1; while(i) i++; /* Slow down I/O access. */ timeout++; if (!timeout) goto reboot_error; } return 0; reboot_error: return -1; } I have only tested it with DJGPP, but normally it should work with BC as well. Clemens * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network * The fastest and easiest way to search and participate in Usenet - Free!