The MS-DOS batch language does not provide a means of restarting a
system. However, it is possible to restart a system from within a
batch file by calling an executable program that performs the task.
NOTE: This article provides instructions that you can use to create
the REBOOT.COM file. These instructions have not been tested on all
hardware configurations, and are provided "as is" with no warranty
stated or implied.
The executable file can be created using DEBUG as follows:
- Start DEBUG by typing the following at the MS-DOS command prompt:
- At the dash prompt, enter the following sequence of commands, each
followed by pressing ENTER. (Comments are preceded by ";".)
A 100 ; Debug instruction for assemble
MOV AH,0D ; Disk Reset
INT 21h ; causes SmartDrv 4.x to write cache
MOV AX, 40 ; set up segment addressing
MOV DS, AX
OR BYTE PTR ,0C ; equivalent of pressing CTRL+ALT
MOV AX,4F53 ; Issue a "DEL" (53h = DEL scan code)
INT 15h ; EMM386 sees this & shuts down
MOV WORD PTR ,1234 ; Set REBOOT flag to Warm-Boot (0=cold)
JMP F000:FFF0 ; Execute the internal restart routine
<CR> ; This line must be blank (just hit ENTER)
20 ; File size to be written to disk (in hex)
N REBOOT.COM ; Filename
W ; Write the file to disk
Q ; Quit Debug
NOTE: The REBOOT.COM file created with this debug script is compatible
with SMARTDrive and its write-behind cache feature. The instructions
in REBOOT.COM cause SMARTDrive to write (flush) its write-behind cache
to disk before the computer is rebooted.
This procedure creates the file REBOOT.COM in the current directory.
At this point, you can call the file in the same manner as any other
executable file, either from the command line or within a batch file,
and the system will reboot.