home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
ASSEMBLE
/
80X0992
/
FAQ_BOOT.TXT
< prev
next >
Wrap
Text File
|
1992-07-30
|
2KB
|
53 lines
Fri 17 Jul 92 6:57
By: Yousuf Khan
To: All
Re: FAQ: Rebooting?
St:
--------------------------------------------------------------------
Q3) How do I reboot my computer in software?
***
A3) Although there are many variations to this program, they all
do basically the same thing. There are two forms of rebooting.
First one is a "warm boot", which is like what happens when you
hit the ctlr-alt-del keyboard combination, this bypasses the
memory counter. Second form is a "cold boot", which is like what
happens when you hit the reset button or turn the power off and
on, this does not bypass the memory counter. Let's demonstrate
through a sample program.
BDSeg segment at 40h ;-this is the location of the
;Bios Data Segment (BDSeg).
org 72h ;-take us to an offset 72h
;from the beginning of BDSeg
FLAG dw ? ;-we set this memory location
;to 1234h if we want a warm
;boot. Any other value for a
;cold boot.
BDSeg ends ;-signifies end of this segment
BOOTSeg segment at 0FFFFh ;-segment close to end of physical
;memory
BOOTLOC: ;-this is where to jump to
BOOTSeg ends
CSeg segment 'code' ;-beginning of our code segment
org 100h ;-required for *.com file
start:
mov ax, BDSeg
mov ds, ax ;-set DS to segment of BDSeg
assume CS:CSeg, DS:BDSeg
mov [FLAG], 1234h ;-put the value of 1234h into
;memory location occupied by
;FLAG for a warm boot. For
;cold boot put any other value in
;suggested value is 0000h
jmp far ptr BOOTLOC ;-now jump to this memory location
CSeg ends
end start
Note this program is only guaranteed to work while in plain Dos.
It may or may not work in Dos multitaskers and other operating
systems.