mirror of
https://github.com/originalmk/mkos32.git
synced 2024-10-03 17:26:09 +00:00
Maciej Krzyżanowski
e635ac4f7d
Permissions were broken after moving files from NTFS partition. Everything had 777, but now I reverted it to have 755 for directories and 644 for regular files.
54 lines
1.0 KiB
C
54 lines
1.0 KiB
C
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "gdt.h"
|
|
#include "print.h"
|
|
#include "idt.h"
|
|
#include "utils.h"
|
|
|
|
void kernel_main(void)
|
|
{
|
|
terminal_initialize();
|
|
print_texts();
|
|
gdt_setup();
|
|
idt_setup();
|
|
|
|
// 8 of master PIC interrupt numbers
|
|
// and 8 of slave PIC interrupt numbers
|
|
// right after 0-31 interrupt numbers reserved for processor
|
|
PIC_remap(0x20, 0x28);
|
|
|
|
// Set RTC freq
|
|
uint8_t rate = 15;
|
|
rate &= 0x0F;
|
|
set_interrupts(false);
|
|
outb(0x70, 0x8A);
|
|
char prev = inb(0x71);
|
|
outb(0x70, 0x8A);
|
|
outb(0x71, (prev & 0xF0) | rate);
|
|
set_interrupts(true);
|
|
|
|
// Set up RTC periodic interrupts
|
|
set_interrupts(false);
|
|
outb(0x70, 0x8B);
|
|
prev = inb(0x71);
|
|
outb(0x70, 0x8B);
|
|
outb(0x71, prev | 0x44);
|
|
set_interrupts(true);
|
|
// Change to binary date format ^^
|
|
|
|
// Clear IRQ 8 mask
|
|
//outb(0xA1, inb(0xA1) & ~(1 << 0));
|
|
outb(0xA1, ~(1 << 0));
|
|
outb(0x21, ~(1 << 2));
|
|
|
|
outb(0x70, 0x0C);
|
|
unsigned short v = inb(0x71);
|
|
terminal_newline();
|
|
display_date();
|
|
|
|
__asm__("int $21");
|
|
__asm__("int $10");
|
|
__asm__("int $9");
|
|
}
|