projeto

shutdown

Pequeno utilitário para desligar ou reiniciar MS-DOS em máquinas com suporte a APM 1.2.

0 artigos relacionados GitHub

Utilitário pequeno em C 16-bit que desliga ou reinicia MS-DOS via APM 1.2.

Fiz para usar com DOS rodando no VirtualBox. A VM ficava aberta consumindo CPU porque não havia jeito limpo de mandar a máquina virtual desligar de dentro do sistema convidado. Sem cerimônia: o programa é minúsculo, fala direto com APM e termina.

APM 1.2 (Advanced Power Management) é a interface de gerenciamento de energia disponível em sistemas anteriores ao ACPI, exposta via interrupções da BIOS. Funciona em qualquer máquina, real ou virtual, com APM 1.2.

A implementação combina um pequeno programa em C com rotinas em Assembly x86 (NASM), compilado com Turbo C para 16 bits. O resultado são três arquivos .comsd.com, quit.com e reboot.com – cada um com uma função específica.

sd -r       # reinicia
sd -h       # desliga
reboot      # reinicia
quit        # desliga

O wrapper com nomes alternativos é só para parecer mais natural no prompt do DOS.

Os binários e o código estão no repositório.