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.
The source code is available at the public github repository.
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).