From: Clemens Valens Newsgroups: comp.os.msdos.djgpp Subject: Q: rebooting PC Organization: http://www.remarq.com: The World's Usenet/Discussions Start Here X-Originating-Host: 195.154.148.69 X-Wren-Trace: cD8YOC0/YwI5emsdL3F+Z3hsf2hgaClzamBwbW9yfz9hYCpwYCp+f2JqY3RnJmwrcCUyPC1uGxczInEyIHo4JHR8MTs= Message-ID: <929439363.23288@www.remarq.com> Lines: 43 Date: Tue, 15 Jun 1999 01:36:02 -0800 NNTP-Posting-Host: 10.0.3.195 X-Trace: WReNphoon3 929439615 10.0.3.195 (Tue, 15 Jun 1999 02:40:15 PDT) NNTP-Posting-Date: Tue, 15 Jun 1999 02:40:15 PDT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I am porting a program from BC 3.1 to DJGPP and am experiencing some problems. My program runs on an embedded system, not easily accesible. It is reconfigurable from another machine and therefore I have to reboot it sometimes completely. For this I used the function below, which worked very well. However I don't know how to port it to DJGPP and I don't even know if it is possible this way. How can I reboot a PC with a program compiled with DJGPP? /* * Force a jump to fff0:f000, the PC reset vector. */ void reboot(void) { asm { mov ax,0xf000 push ax mov ax,0xfff0 push ax retf } } Ported to DJGPP this becomes: void reboot(void) { asm ("movw $0xf000,%ax; pushw %ax; movw $0xfff0,%ax; pushw %ax; ret;"); } I tried this because you never know. Not unexpectedly this does not work, and it GP faults with something like SIGSEGV blah blah. I tried to change it to 32-bit but the result remained the same, a GP fault. So my question is: how can I do this in DJGPP, if at all? Clemens **** Posted from RemarQ - http://www.remarq.com - Discussions Start Here (tm) ****