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)