Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!usc!ucsd!hub!6600sirt From: 6600sirt@hub.UUCP (Mike O'Brien) Newsgroups: comp.sys.ibm.pc.programmer Subject: Re: cold/warm boots with TASM Message-ID: <4339@hub.UUCP> Date: 16 Mar 90 01:42:38 GMT References: <3015@uudell.dell.com> Sender: news@hub.UUCP Distribution: usa Lines: 29 From article <3015@uudell.dell.com>, by jrh@mustang.dell.com (James R. Howard): > How about this??? [...] > mov ax, 0feh ; load mask into AX > out 64h, ax ; write reset mask value to kbd controller [...] I have used this method before, but it is not at all reliable. I know of at least two computers at my work that this method will not work on, and they are both true-blue IBM's. What you are doing here is telling the keyboard controller to wait three microseconds and then reset the processor. The problem with this, as I understand it, is that on a 286 there is no way to get out of protected mode without resetting the processor. So programs that need to switch into and out of protected mode set a flag telling the processor where to jump after a memory reset. Not only are you not guaranteed that this flag will point to the boot code in ROM at any given time, you are not even guaranteed it will point there when the computer is first turned on. So, while this solution doesn't work in general, it might be the beginnings of a good solution. Hopefully someone reading this will point me to a book that explains in detail the flag I have referred to, so I can set it myself to the boot code. Michael O'Brien 6600sirt@ucsbuxa.ucsb.edu