Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

booting questions

Posted on 2004-03-27
8
477 Views
Last Modified: 2012-06-27
Cold boot initializes everything because power is off. While warm boot does not check RAM. But, does it reset any content of RAM? Does it reset the vector tables? If so, is it reseted by BIOS or DOS or both?

In addition, I was told that INT 19h can do warm boot as well. If it is true, does it reset any content in RAM?

By the way, I've tried to write a reboot program (assembly) by using INT19h. But it did not work. The PC hung up. Any trick for using INT19h?
0
Comment
Question by:charleswong
  • 3
8 Comments
 
LVL 30

Accepted Solution

by:
SteveGTR earned 168 total points
ID: 10694724
Here is what my old Norton Guides say about INT 19h (forgive me Peter):

INT 19h (25)             Bootstrap Loader Service

    Attempts to load the sector at head 0, cylinder 0, sector 1, of a
    diskette or fixed disk into memory at 0:7C00h, and transfer control
    there. This sector usually has an operating system bootstrap loader.

  ──────────────────────────────────────────────────────────────────────────

    This interrupt attempts to load the sector at head 0, track 0, sector
    1, on the first diskette into memory at 0:7C00h. If unable, it then
    attempts to load the sector at head 0, track 0, sector 1 of the first
    hard disk. If it is unable to load from either the diskette or the
    fixed disk, it calls INT 18h, which calls the ROM BASIC.

    If INT 19h is successful, control is transferred to the first byte of
    the sector, which has been read in at memory location 0:7C00h. That
    is, CS is set to 0 and IP is set to 7C00h.

       Notes:     This interrupt is not a substitute for a Ctrl-Alt-
                      Del warm boot. This interrupt is the last action
                      performed by the Power-On Self Test (POST), which is
                      activated by Ctrl-Alt-Del. If a user program
                      attempts to execute this interrupt directly, the
                      machine may lock up.

                      To correctly reboot within an application program,
                      jump to FFFF:0h in memory. That is, set CS to FFFF
                      and IP to 0. This is the same process that occurs
                      when the machine is first powered on. Following
                      these steps will perform a "cold" boot. To perform a
                      "warm" boot using this method, first set the word at
                      location 0:472h to 1234h. This will simulate the
                      pressing of the Ctrl-Alt-Del.

                      A cold boot initializes all hardware, tests all
                      hardware, tests RAM, then calls INT 19h to load the
                      bootstrap loader. This process is performed when the
                      computer is turned on or a hardware reset button is
                      pressed.

                      A warm boot initializes and tests all hardware but
                      does not test RAM. It then calls INT 19h to load the
                      bootstrap loader. This process is performed when
                      Ctrl-Alt-Del is typed.

                      The sector read from the diskette will in turn read
                      in the rest of the operating system. A fixed disk
                      will read in a Partition Table, which will then read
                      in the correct operating system.
0
 
LVL 30

Expert Comment

by:SteveGTR
ID: 10694732
Here is INT 18H for your reference:

INT 18h (24)             BASIC Loader Service

    Activates Cassette BASIC.
_______________________________________________________________

       Notes:      This service transfers control to F600:0, which is
                      the location in ROM of the standard BASIC
                      interpreter. This interrupt works only on IBM
                      computers. Compatibles do not have BASIC in ROM but
                      must instead run a disk-based version of BASIC,
                      usually known as GW-BASIC.

                      This interrupt is executed if the Power-On Self Test
                      (POST) is unable to read the operating system off a
                      floppy or fixed disk.
0
 
LVL 9

Assisted Solution

by:gtkfreak
gtkfreak earned 166 total points
ID: 10695961
U may like to refer to:
http://www.clipx.net/ng/bios/ng1fe5.php
0
 
LVL 11

Assisted Solution

by:dimitry
dimitry earned 166 total points
ID: 10696501
If you want to reboot computer in DOS (from real mode), you need to jump to reset vector and not to
call to INT 19h. INT 19h loads OS from HD or floppy and is called at the end of BIOS boot sequence.

To jump to reset vector you need to do the next:
  mov ax, 40h
  mov ds, ax
  mov word ptr ds:[72h], 1234h   ; to "tell" BIOS that you are rebooting
  DB  0EAh    ; far jump to [FFFF:0000] - reset vector
  DW 0
  DW 0FFFFh

Note: it will not work under Windows 2000
0
 
LVL 30

Expert Comment

by:SteveGTR
ID: 11100978
All three of us, myself, gtkfreak, dimitry, have provided information that answered the question. I believe that the points should be split three ways. Thanks :)
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The following is a collection of cases for strange behaviour when using advanced techniques in DOS batch files. You should have some basic experience in batch "programming", as I'm assuming some knowledge and not further explain the basics. For some…
One of my most closely kept secrets is revealed in this discussion How to output text on the same line This question was recently posted in EE by Simon336697 (http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Batch/Q_2459…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question