[comp.lang.pascal] Rebooting PC via TP

jamesp@world.std.com (james M peterson) (05/14/91)

for a cold reboot put $0000 into $0:0472 and call int 19
for a warm boot put $1234 into $0:0472

procedure coldboot;
var   r      : registers;      { registers record from dos unit }
begin
  memw[$0000:$0472] := $0000    { $1234 for warm boot, hmm parameter? }
  intr($19,r)
end;

you can also replace the int 19 with a jump to $ffff:0 by:
using  "inline(4ea/$00/$00/$ff/$ff)" instead.

siebeck@infoac.rmi.de (Wolfgang Siebeck ) (05/14/91)

Ok, so try this one. It work's for sure, just insert a "uses boot;" in
your program:

(*****************************************************************************)
(*                                                                           *)
(*    B O O T   Version 1.0                                                  *)
(*                                                                           *)
(*    (c) 1990 RMI Nachrichtentechnik GmbH                                   *)
(*        released to the Public Domain                                      *)
(*                                                                           *)
(*    usage:                                                                 *)
(*                                                                           *)
(*    BootMachine(TRUE);      Execute COLD-BOOT                              *)
(*                                                                           *)
(*    BootMachine(FALSE);     Execute WARM-BOOT                              *)
(*                                                                           *)
(*****************************************************************************)

unit boot;

interface

procedure BootMachine(cold : boolean);

implementation

procedure BootMachine(cold : boolean);

var

	BootFlag : integer absolute 0:$472;

begin

	BootFlag := $1234;
	if cold then
		BootFlag := 0;
	inline($ea/$00/$00/$ff/$ff);

end; (* BootMachine *)

(* No initialization *)

end.

-- 
siebeck@infoac.rmi.de

migdol@ut-emx.uucp (Michael A. Migdol) (05/15/91)

     Thanks to everyone for the rapid responses. CLP does it again! :)


*****************************************************************************
*  Michael A. Migdol                  |    Disclaimer:                      *
*  migdol@emx.utexas.edu              |       "I may be wrong"              *
*  University of Texas, Austin        |           (Thanks Robert Fulghum!)  *
*****************************************************************************
*               "There's no such thing as a simple miracle"                 *
*****************************************************************************