Path: utzoo!attcan!uunet!mcsun!hp4nl!star.cs.vu.nl!mjh
From: mjh@cs.vu.nl (Maarten J Huisjes)
Newsgroups: comp.sys.ibm.pc.programmer
Subject: Re: How to do a warm-boot from a C program
Message-ID: <5621@star.cs.vu.nl>
Date: 20 Feb 90 17:22:35 GMT
References: <2028@milton.acs.washington.edu>
Sender: news@cs.vu.nl
Reply-To: mjh@cs.vu.nl (Maarten J Huisjes)
Organization: VU Informatika, Amsterdam, the Netherlands
Lines: 30
In article <90050.231645JXS118@psuvm.psu.edu>,
JXS118@psuvm.psu.edu (Jeff Siegel, Op from Atherton Hall) writes:
> In article
> >
> >jimmy writes:
> >>Does anyone know how to do a boot from a C program?
> >
> >Yes, just do an Interrupt 25 (which is 19h). That will do it nicely.
>
> Sorry, but my first reaction is NO ! NO ! NO !
>
> This is a seems to be a common misconception. Int 19h is too buggy on
> most machines that I've seen. It won't reset any hardware registers
Nop, It's not buggy it's just misunderstood. Int 19H is NOT a 'reboot my
computer'-interupt. It is the bootstrap loader. The bootstrap loader
loads the boot sector of either floppy or hard disk into memory and gives
it control. It is done in a reboot but at the and of all POST routines
(if you have a ROM listing you will see that it realy does a 'INT 19H')
As noted by Jeff it will only bootstrap not reboot, so it will not initialize
hardware. Also it will not initialize BIOS data area and Interrupt Table.
(When you had drivers or TSR's hooked to one of the interupts the vectors
will not be reset !!). Using Int 19H to reboot is a sure way to lock up your
machine. Write 1234H to 0:472H then do a long jump to FFFF:0H to do a
warm reboot (As noted in +- 20 messages last month). Even this will not
work on all clones. (If it doesn't work for you try with debug to trace
Cntrl-Alt-Del :-) )
--
Maarten Huisjes. mjh@cs.vu.nl (..!uunet!mcsun!botter!mjh)