Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!mit-eddie!genrad!decvax!tektronix!reed!psu-cs!omepd!perry From: perry@omepd.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: Code to perform warm reboot. Message-ID: <424@omepd> Date: Thu, 19-Feb-87 02:35:54 EST Article-I.D.: omepd.424 Posted: Thu Feb 19 02:35:54 1987 Date-Received: Fri, 20-Feb-87 07:18:51 EST References: <3258@j.cc.purdue.edu> Sender: news@omepd Reply-To: perry@inteloa.intel.com (Perry The Cynic) Distribution: world Organization: Intel Corp., Hillsboro Lines: 40 Keywords: cold boot, warm boot, IBM PC Summary: Considering the temperature of a bootstrap In article <3258@j.cc.purdue.edu> tim@j.cc.purdue.edu (Timothy Lange) writes: >The following is Macro code to make an IBM PC and true compatibles >perform a warm reboot. > [...showing a simple assembler program to jump to F000:FFF0...] Let us talk about `Cold' and `Warm' boots. In my book, a `cold' boot is one that starts from scratch, ignoring any previous state. That's what happens if you turn on your PC. Part of a Cold Boot is a more or less thorough check of the hardware. The PC BIOS doesn't do exceedingly much, but it puts the processor through some simple checking paces, does a memory check and collects information about peripherals (depending on what type of PC you have). A `warm' boot, on the other hand, is performed on a running machine. Its purpose is to restart the system, reloading the operating system. As we do this from a running machine, there is no need to examine the hardware - people are unlikely to rip out memory chips or extension boards from a running PC. If you think that the difference is insignificant, try a PC where the memory test takes two minutes. This will change your perspective. By this diction, what you propose (a jump to address F000:FFF0) is a COLD BOOT. F000:FFF0 is the place where the processor begins to execute when it is reset (i.e., when the power is turned on). The first thing it does up there is to run test loops and initiate the memory check. Please wait... There is a simple way to perform a real `warm' boot on an IBM PC. Just do an `INT 19H' instruction. This will reload MSDOS and restart the configuration process (reading CONFIG.SYS, executing AUTOEXEC.BAT etc.) without first doing the hardware checks. Believe me, it's faster. The only advantage of a Cold Boot is that you're jumping into ROM, so no-one can intercept you. Programs can intercept interrupt 19H and delay or prevent the boot (which may be a good thing for sensitive programs that have to do cleanup operations). A `JMP F000:FFF0' kills the machine immediately. ------------------------------------------------------------------------ << Perry The Cynic >> ...!tektronix!ogcvax!omepd!inteloa!perry ...!verdix!omepd!inteloa!perry (Peter Kiehtreiber) -or try- perry@inteloa.intel.com