Expand description
Arch-specific code.
Modules§
- Stuff for writing and reading to the EGA text buffer.
- Provides interrupt-related functions
- Functions to output to various things
- Functions and types related to paging.
- Provides utilities for interacting with assembly ports
Constants§
- The assembly port number to output debug messages to.
Functions§
- Returns information from the CPUID command in the form (ebx, edx, ecx).
- Returns whether extended functions are available (more specifically, 0x80000001 or higher)
- Disables paging by clearing bit 31 in the cr0 register.
- Tries to enable the a20 gate by trying many different methods and seeing what sticks.
- Tries to enable the a20 gate by reading from port 0xee.
- Tries to enable the a20 gate via fast a20. Note that this may not work or do something unexpected.
- Tries to enable the a20 gate via the keyboard controller method.
- Gets data from the keyboard.
- Sends a keyboard command.
- Sends data to the keyboard.
- Returns whether the a20 gate is enabled.
- Waits for a keyboard command to complete.
- Waits for there to be data to read from the keyboard.