Disfruté bastante haciendo UPTIME 2.0 para DOS, así que me puse unos minutos, y desarrollé REBOOT.

Esta sencilla utilidad para DOS de 126 bytes en un archivo .COM, se encarga de lanzar un reboot o reinicio de equipos basados en DOS. En realidad, es un reinicio en caliente, o warm boot, similar al que obtendríamos pulsando Ctrl-Alt-Supr.

He usado ASMC, pero debería poderse ensamblar sin problemas con JWASM, UASM, o incluso MASM. La implementación es sencilla, salta a la dirección de memoria FFFF:0000, que almacena la rutina de reinicio de la BIOS. Dicha rutima, asume que en la posición 0040:0072 hay un entero de 16 bits que indica la forma de reboot. Cuando vale 1234h, es un arranque en caliente, en caso contrario, lo hace en frío (lo mismo que si apagáramos y encendiéramos el equipo).

El ejecutable funciona sin problemas tanto en entornos físicos, como virtualizados. En el primer caso, lo he probado con DR-DOS y en el segundo con DOSBox y WMware Player.

Podéis descargar desde aquí (1 Kb. en formato ZIP), tanto el código fuente como el ejecutable, y también en Sourceforge.

;--------------------------------------------------------------------------------------------------------------------------------------------------------------
.8086
.model tiny
.stack 64
.code
org 100h
 
 
;--------------------------------------------------------------------------------------------------------------------------------------------------------------
.startup
 
mov ah, 9
mov dx, offset acCopyright
int 21h
 
xor ax, ax
mov ds, ax
mov si, 0472
mov ax, 1234h ;1234h: Warn boot. Else: Cold Boot
mov [si], ax 
 
;jmp far FFFF:0000 
db 0eah
dw 0
dw 0ffffh
 
 
;--------------------------------------------------------------------------------------------------------------------------------------------------------------
.data
acCopyright 	db 13, 10
				db "REBOOT R1.00                       (c) 2017 by Javier Gutierrez Chamorro (Guti)", 13, 10
				db "Warm DOS reboot", 13, 10, 10
				db '$'
end