We are developing an operating system for my personal research
and practical education.
For the academic purpose, this motivation is similar to MINIX,
but we do not focus on theories.
Our main objective is to provide knowledges on hardware-related
programming. This is one of the most difficult and complex parts
when we start the development of operating system from scratch.
This checkpoint implements a function to power off the machine
using Advanced Power Management (APM) API.
The power off using APM may not be interesting
and another power management interface, ACPI, will be used
when we shift to protected mode or long mode,
but I personally prefer implementing it here.
The following is the source code of bootmon.s.
It tries to power off the machine immediately after the long jump
from IPL (diskload.s).