[comp.sys.ibm.pc] How do I reboot from software?

gw@sickkids.UUCP (5450) (12/08/88)

How does one completely reboot a PC/XT/AT from software control?

Before you say "... use interrupt hex 19 ...", please note that the
BIOS bootstrap service accessed via interrupt hex 19 is not a complete
reboot.  It just loads the boot segment from drive A: and executes it.

What I want is the reboot that occurs when one presses Ctl-Alt-Del
(without using hard coded addresses which could be BIOS dependent).

Anyone have any ideas?

If I get a solution, I'll post it to the net.  Thanks all in advance.

--------------------+-------------------------------------------------------
Graham Wilson       | UUCP:          uunet!mnetor!lsuc!
CyberFluor Inc      |            {decvax, linus!utzoo}!sickkids!robot!graham
179 John St, #400   | {ubc-vision, watmath}!utai!utgpu!
Toronto Ontario     |
M5T 1X4             | BITNET:    gw@sickkids.utoronto
(416) 977-5450      | INTERNET:  gw@sickkids.toronto.edu

dhesi@bsu-cs.UUCP (Rahul Dhesi) (12/12/88)

In article <127@sickkids.UUCP> gw@sickkids.UUCP (Graham Wilson) writes:
>What I want is the reboot that occurs when one presses Ctl-Alt-Del
>(without using hard coded addresses which could be BIOS dependent).

Here is one written by Richard Tremmel.

begin 644 boot.com
MZRX@("`@("`@("`@("`@#5=!4DU"3T]4+D-/32!B>2!2:6-H87)D(%1R96UM
M96P:N```CMBX-!*C<@3J``#__P``````````````````````````````````
F````````````````````````````````````````````````````
`
end
-- 
Rahul Dhesi         UUCP:  <backbones>!{iuvax,pur-ee}!bsu-cs!dhesi

todd@stiatl.UUCP (Todd Merriman) (12/12/88)

ifdef DOCUMENTATION
; ****************************************************************************
   REBOOT.ASM
   12/18/87
   Todd Merriman

.MODULE           reboot
.LIBRARY          clib
.TYPE             function
.APPLICATION      system
.SYSTEM           msdos
.AUTHOR           Todd Merriman
.LANGUAGE         Assembly
.DESCRIPTION
   Reboot the computer
.ARGUMENTS
   void reboot();
.NARRATIVE
   The reboot function transfers program control to the CPU reset vector, and
   a system reset is performed.  This could be used in a case where a device
   driver was modified.
.CAUTION
   Be sure there are no open files, or any I/O not completed.
.RETURNS
   void
.NOTICE
   Copyright (c) 1987 Future Communications, Atlanta, Georgia
.ENDOC            END DOCUMENTATION
; ****************************************************************************
endif

	.XLIST
	INCLUDE	\HEADER\C.MAC		; symbols and macros for Microsoft
	.LIST

; ****************************************************************************
; data
; ****************************************************************************

	DSEG				; begin data section
RES_VEC	DW	0FFF0H,0F000H           ; reset vector
	ENDDS				; end data section

; ****************************************************************************
; code
; ****************************************************************************

	PSEG				; begin program section

	CFUN reboot                     ; C function declaration

	PUSH 	BP
	MOV	BP,SP

	LEA	SI,RES_VEC              ; load reset vector
	JMP	DWORD PTR DS:[SI]       ; jump there

	POP	BP                      ; this code for good form only
	RET

	CFEND	reboot                  ; end C function

	ENDPS				; end program section


	END				; end assembly


; ****************************************************************************
;  reboot program
;     this is a test for the reboot function
; ****************************************************************************

	PAGE	59,132
;
; Outline for assembly programs to .COM files
;
	.XLIST
	INCLUDE \LAT\HEADER\CSUB.MAC
	.LIST

CODE 	SEGMENT PUBLIC

ASSUME	CS:CODE, DS:CODE, SS:CODE, ES:CODE

	ORG	100H			; .COM origin

MAIN	PROC	FAR

START:	
        CCALL   reboot
	INT	20H			; to DOS
MAIN	ENDP
	
CODE	ENDS

	END	START

; ****************************************************************************
; End REBOOT.ASM
; ****************************************************************************