aboutsummaryrefslogtreecommitdiff
path: root/mubios
Commit message (Collapse)AuthorAgeFilesLines
* [mubios] Complete VGA text initialization and add VBE graphics servicesRichard Qin17 hours8-128/+1582
| | | | | | | | Load the 8x16 font and VGA palette, restore text memory mapping, and synchronize BIOS cursor and page state with the hardware. Allocate QEMU standard VGA PCI memory resources and expose VBE controller information, mode queries and switching, logical scanline lengths, and display start control. Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Fixed several typoRichard Qin17 hours5-18/+53
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement serial input and BIOS console key handlingRichard Qin18 hours11-149/+586
| | | | | | Implement UART receive, transmit timeouts, configuration and status reporting for INT 14h functions 00h-03h. Initialize the BDA serial timeout and expose the driver interfaces. Translate terminal characters and CSI/SS3 escape sequences into BIOS keyboard events for INT 16h. Add blocking reads, non-consuming status queries, enhanced key reads and keyboard buffer insertion.
* [mubios] Derive the E820 map from the CMOS memory sizeRichard Qin19 hours3-2/+66
| | | | | | | | | | The E820 map ended the usable region at a hardcoded 0x08000000, so a guest with more RAM had the extra memory reported as reserved and ran out of memory during initramfs unpacking. Add cmos_read8() and size the extended memory entry from CMOS registers 0x34 and 0x35, falling back to the 16 MiB units in 0x30 and 0x31 and then to the previous 128 MiB end when neither is programmed.
* [mubios] Initialize the 8042 keyboard controllerRichard Qin19 hours5-30/+150
| | | | | | | | | | | | | | | POST only unmasked IRQ1 in the PIC and never configured the 8042 itself, so the keyboard stayed in its post-reset disabled state: the clock was inhibited and no scan code ever reached the output buffer. IRQ1 never fired, the BDA keyboard buffer stayed empty, and GRUB polling INT 16h AH=01h never saw a key. Add kbd_init() to disable both ports, drain the output buffer, clear the clock inhibit bits in the command byte, enable the keyboard and auxiliary IRQs and select set 1 translation, then enable scanning with 0xF4. The IRQ1 handler now checks the status register for a pending output byte before reading the data port and drops auxiliary port bytes. The set 2 break prefix tracking is gone because translation is enabled.
* [mubios] Initialize VGA mode and serial BIOS servicesRichard Qin40 hours9-2/+205
|
* [mubios] Add CHS disk services and multi-sector PIO readsRichard Qin40 hours3-23/+167
|
* [mubios] Add EDD parameters and normalize PS/2 inputRichard Qin41 hours5-4/+129
|
* [mubios] Handle IRQ7 and mask unused IOAPIC inputsRichard Qin43 hours3-2/+50
|
* [mubios] Fixed BDA Offset and IRQ1 Save OrderRichard Qin2 days3-9/+17
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Store and Restore DS in irq0_entryRichard Qin2 days1-0/+2
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add cursor and char serviceRichard Qin2 days1-3/+55
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Fixed wrong maskRichard Qin2 days2-3/+12
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement INT 16h Keyboard ServiceRichard Qin2 days6-0/+183
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement INT 15h E820hRichard Qin2 days5-0/+92
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Extend registers from 16-bit to 32-bitRichard Qin2 days5-43/+30
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Multi-sector INT 13h AH=42hRichard Qin2 days4-7/+30
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add switching and return paths between real-mode interrupts and ↵Richard Qin2 days2-283/+166
| | | | | | protected-mode C services. Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add Interrupt Dispatch ServiceRichard Qin2 days2-0/+44
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add C implementation of INT 10hRichard Qin2 days2-0/+93
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add services INT 13hRichard Qin2 days1-0/+104
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Establish the BIOS interrupt register contextRichard Qin2 days1-0/+41
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement INT 13h AH=42hRichard Qin3 days1-1/+148
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement INT 13h AH=41hRichard Qin3 days2-0/+38
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement a minimal INT 10h AH=0EhRichard Qin3 days2-0/+94
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Transfer control from the BIOS to the MBR, which has been loaded at ↵Richard Qin3 days1-0/+18
| | | | | | 0x7C00. Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add ATARichard Qin3 days4-1/+115
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] fixed memory addressRichard Qin3 days1-1/+1
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Have IRQ0 maintain the BIOS clock, and implement INT 1Ah AH=00h.Richard Qin3 days3-0/+82
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Enable IRQ0Richard Qin3 days7-19/+112
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Transition from protected mode back to real modeRichard Qin3 days1-0/+74
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Create 16-bit entry points for IRQ0/IRQ1 and install the IVT vectors.Richard Qin3 days5-1/+92
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Fix the link order for the 16-bit entriesRichard Qin3 days3-3/+11
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement the PIC and PIT.Richard Qin3 days4-1/+117
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement the COM1 serial port driver and POST output.Richard Qin3 days4-0/+151
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add Clangd SupportRichard Qin3 days2-1/+5
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Initialize IVT, BDA and EBDA.Richard Qin3 days4-2/+116
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add Clang Format based on GNU styleRichard Qin3 days2-1/+5
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Add CFLAGS to close Exception Unwinding and Stack Unwinding MechanismRichard Qin3 days1-1/+2
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Building a 32-bit C entry in protected modeRichard Qin3 days4-0/+58
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement the switch from 16-bit to 32-bit protected modeRichard Qin3 days2-0/+112
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Write mubios reset entry pointRichard Qin3 days2-1/+63
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] setup Makefile and linker scriptRichard Qin3 days3-0/+153
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>