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" * *****************************************************************************