Path: utzoo!attcan!uunet!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!brutus.cs.uiuc.edu!apple!fox!portal!atari!imagen!qmsseq!pipkins From: pipkins@qmsseq.imagen.com (Jeff Pipkins) Newsgroups: comp.sys.ibm.pc Subject: Re: System boot and INT 19 Keywords: system boot Message-ID: <81@qmsseq.imagen.com> Date: 11 Jan 90 23:10:06 GMT References: <945@excelan.COM> <77@qmsseq.imagen.com> <357@clover.warwick.ac.uk> Reply-To: pipkins@qmsseq.UUCP (Jeff Pipkins) Organization: QMS Inc., Mobile, Alabama Lines: 30 I have a copy of the old original IBM PC Tech Ref manual, with BIOS listings, and also the IBM PC/AT Tech Ref manual with the same. I looked up the INT 9h keyboard interrupt service routine at the place where Ctrl-Alt-Del is detected. Guess what -- it doesn't use INT 19h to do the warm boot. Instead, it loads the value 1234h into a variable called RESET_FLAG and then jumps into the power-on-self-test (POST) routines at a label called RESET. Both the PC and AT code handles it the same way. I have not checked to see whether both BIOSes locate RESET and RESET_FLAG at the same addresses. So it appears that Ctrl-Alt-Del does not directly involve DOS! I wonder if the reset function calls INT 19h at all later on? I wonder what INT 19h is for anyway! Maybe the safest kludge for doing a warm boot would be to synthesize the Ctrl-Alt-Del key sequence (ugly). Before trying to set those bits in the BIOS keybord status byte and doing an INT 9h, remember to consider the 8259 interrupt controller and the EOI sequence. Whim: maybe you could catch the next timer interrupt, check the ISR register to make sure that no lower-level interrupts are being serviced (if so, chain and wait for next timer interrupt), then set the bits in the keyboard status byte, and jump into the INT 9h vector; Then whoever is responsible for the EOI will send it and it will be used to EOI the timer instead of the keyboard. Kinda nasty, but if you close your eyes, hold your breath and jump in with both feet it just might work. If anyone decides to try this, please don't credit my name to it. I'd like to keep what little reputation I have... >;-) Standard disclaimers apply -- try at your own risk -- not responsible for damages -- etc.