Path: utzoo!attcan!uunet!husc6!uwvax!rutgers!ucsd!ucbvax!hplabs!hp-sdd!megatek!tsunami!hollen From: hollen@tsunami.megatek.uucp (Dion Hollenbeck) Newsgroups: comp.sys.ibm.pc Subject: Re: reboot program Message-ID: <366@megatek.UUCP> Date: 8 Aug 88 14:25:42 GMT References: <1355@bingvaxu.cc.binghamton.edu> Sender: news@megatek.UUCP Distribution: na Lines: 47 From article <1355@bingvaxu.cc.binghamton.edu>, by vu0112@bingvaxu.cc.binghamton.edu (Cliff Joslyn): > > Could someone please mail me C source for a warm boot program, or tell > me how to roll my own? I assume it's easy enough to do. > It is not real easy in C (maybe even impossible), however, in the debugger, it is real simple. Enter debug and assemble in memory - a100 MOV AX,0ffffh B8ffff PUSH AX 50 MOV AX,0 B80000 PUSH AX 50 stop assembling at this point because the next instruction cannot be assembled in, use the 'enter' function of debug. - e108 (this is the next available location) cb now name the file and save to disk - rcx 9 - reboot.com - w - q The result is an executable which will fool the '86 into jumping form where it is to the cold boot jump and absolute address 0ffff0. You could do all this with an assembler, but with debug is the most time-efficient. If you do it with an assembler BE SURE to use a FAR PROCEDURE to get the assembler to generate a FAR return which will pluck both the CS and IP off the stack and effectively do the fFAR jump. Dion Hollenbeck (619) 455-5590 x2814 Megatek Corporation, 9645 Scranton Road, San Diego, CA 92121 seismo!s3sun!megatek!hollen ames!scubed/