mirror of
https://github.com/limine-bootloader/limine
synced 2025-01-08 13:52:01 +03:00
term: Bug fixes
This commit is contained in:
parent
237a3b3152
commit
65925ebc60
@ -20,6 +20,7 @@
|
|||||||
#include <pxe/tftp.h>
|
#include <pxe/tftp.h>
|
||||||
#include <drivers/disk.h>
|
#include <drivers/disk.h>
|
||||||
#include <sys/idt.h>
|
#include <sys/idt.h>
|
||||||
|
#include <sys/cpu.h>
|
||||||
|
|
||||||
struct volume *boot_volume;
|
struct volume *boot_volume;
|
||||||
|
|
||||||
@ -80,6 +81,19 @@ void entry(uint8_t boot_drive, int boot_from) {
|
|||||||
|
|
||||||
term_notready();
|
term_notready();
|
||||||
|
|
||||||
|
#if bios == 1
|
||||||
|
{
|
||||||
|
struct rm_regs r = {0};
|
||||||
|
r.eax = 0x0003;
|
||||||
|
rm_int(0x10, &r, &r);
|
||||||
|
|
||||||
|
current_video_mode = -1;
|
||||||
|
|
||||||
|
outb(0x3d4, 0x0a);
|
||||||
|
outb(0x3d5, 0x20);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
init_e820();
|
init_e820();
|
||||||
init_memmap();
|
init_memmap();
|
||||||
|
|
||||||
|
@ -141,6 +141,10 @@ void stage3_common(void) {
|
|||||||
char *quiet_str = config_get_value(NULL, 0, "QUIET");
|
char *quiet_str = config_get_value(NULL, 0, "QUIET");
|
||||||
quiet = quiet_str != NULL && strcmp(quiet_str, "yes") == 0;
|
quiet = quiet_str != NULL && strcmp(quiet_str, "yes") == 0;
|
||||||
|
|
||||||
|
#if bios == 1
|
||||||
|
term_textmode();
|
||||||
|
#endif
|
||||||
|
|
||||||
char *verbose_str = config_get_value(NULL, 0, "VERBOSE");
|
char *verbose_str = config_get_value(NULL, 0, "VERBOSE");
|
||||||
verbose = verbose_str != NULL && strcmp(verbose_str, "yes") == 0;
|
verbose = verbose_str != NULL && strcmp(verbose_str, "yes") == 0;
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
#include <lib/blib.h>
|
#include <lib/blib.h>
|
||||||
#include <drivers/vga_textmode.h>
|
#include <drivers/vga_textmode.h>
|
||||||
#include <lib/print.h>
|
#include <lib/print.h>
|
||||||
#include <sys/cpu.h>
|
|
||||||
|
|
||||||
// Tries to implement this standard for terminfo
|
// Tries to implement this standard for terminfo
|
||||||
// https://man7.org/linux/man-pages/man4/console_codes.4.html
|
// https://man7.org/linux/man-pages/man4/console_codes.4.html
|
||||||
@ -75,26 +74,6 @@ void term_notready(void) {
|
|||||||
|
|
||||||
term_rows = 100;
|
term_rows = 100;
|
||||||
term_cols = 100;
|
term_cols = 100;
|
||||||
|
|
||||||
#if bios == 1
|
|
||||||
{
|
|
||||||
if (current_video_mode != -1) {
|
|
||||||
struct rm_regs r = {0};
|
|
||||||
r.eax = 0x0003;
|
|
||||||
rm_int(0x10, &r, &r);
|
|
||||||
|
|
||||||
current_video_mode = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
volatile uint16_t *vmem = (volatile uint16_t *)0xb8000;
|
|
||||||
for (size_t i = 0; i < 80*25; i++) {
|
|
||||||
vmem[i] = 0x0720;
|
|
||||||
}
|
|
||||||
|
|
||||||
outb(0x3d4, 0x0a);
|
|
||||||
outb(0x3d5, 0x20);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void (*raw_putchar)(uint8_t c);
|
void (*raw_putchar)(uint8_t c);
|
||||||
|
Loading…
Reference in New Issue
Block a user