aboutsummaryrefslogtreecommitdiff
path: root/mubios/arch
Commit message (Collapse)AuthorAgeFilesLines
* [mubios] Initialize the 8042 keyboard controllerRichard Qin19 hours1-17/+13
| | | | | | | | | | | | | | | 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 hours1-0/+1
|
* [mubios] Add EDD parameters and normalize PS/2 inputRichard Qin41 hours1-3/+17
|
* [mubios] Handle IRQ7 and mask unused IOAPIC inputsRichard Qin43 hours1-0/+13
|
* [mubios] Fixed BDA Offset and IRQ1 Save OrderRichard Qin2 days1-4/+11
| | | | 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] Implement INT 16h Keyboard ServiceRichard Qin2 days2-0/+30
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement INT 15h E820hRichard Qin2 days1-0/+1
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Extend registers from 16-bit to 32-bitRichard Qin2 days1-23/+7
| | | | 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] 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 days1-0/+36
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Implement a minimal INT 10h AH=0EhRichard Qin3 days1-0/+92
| | | | 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] Have IRQ0 maintain the BIOS clock, and implement INT 1Ah AH=00h.Richard Qin3 days2-0/+79
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Enable IRQ0Richard Qin3 days2-3/+8
| | | | 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 days1-0/+51
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Fix the link order for the 16-bit entriesRichard Qin3 days2-2/+2
| | | | Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
* [mubios] Building a 32-bit C entry in protected modeRichard Qin3 days1-0/+4
| | | | 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 days1-0/+61
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>