From 56ee0fe85188458e4f7c29f4417c7c4900ca1297 Mon Sep 17 00:00:00 2001 From: Able Date: Wed, 13 Nov 2024 14:16:32 -0600 Subject: [PATCH] misc --- Cargo.lock | 6 +++--- kernel/src/arch/x86_64/interrupts.rs | 10 ++++++++++ sysdata/programs/horizon/src/main.hb | 7 ++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc4f684..2a1a426 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -228,12 +228,12 @@ dependencies = [ [[package]] name = "hbbytecode" version = "0.1.0" -source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#d01e31b2034e53098f92dfb07b183a21857ded1e" +source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#f524013c34ff5868eadc0afdf1168239f31c7ee0" [[package]] name = "hblang" version = "0.1.0" -source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#d01e31b2034e53098f92dfb07b183a21857ded1e" +source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#f524013c34ff5868eadc0afdf1168239f31c7ee0" dependencies = [ "hashbrown 0.15.1", "hbbytecode", @@ -245,7 +245,7 @@ dependencies = [ [[package]] name = "hbvm" version = "0.1.0" -source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#d01e31b2034e53098f92dfb07b183a21857ded1e" +source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#f524013c34ff5868eadc0afdf1168239f31c7ee0" dependencies = [ "hbbytecode", ] diff --git a/kernel/src/arch/x86_64/interrupts.rs b/kernel/src/arch/x86_64/interrupts.rs index 02b8e2c..25c2931 100644 --- a/kernel/src/arch/x86_64/interrupts.rs +++ b/kernel/src/arch/x86_64/interrupts.rs @@ -11,6 +11,7 @@ static mut LAPIC: LocalApic = unsafe { MaybeUninit::zeroed().assume_init() }; static mut IDT: InterruptDescriptorTable = unsafe { MaybeUninit::zeroed().assume_init() }; #[repr(u8)] +#[derive(Debug)] enum Interrupt { Timer = 32, ApicErr = u8::MAX - 1, @@ -66,11 +67,20 @@ extern "x86-interrupt" fn timer(_isf: InterruptStackFrame) { } extern "x86-interrupt" fn apic_err(_: InterruptStackFrame) { + interrupt(Interrupt::ApicErr); + panic!("Internal APIC error"); } extern "x86-interrupt" fn spurious(_: InterruptStackFrame) { + interrupt(Interrupt::Spurious); + unsafe { LAPIC.end_of_interrupt(); } } + +fn interrupt(interrupt_type: Interrupt){ + log::info!("Interrupt type {:?}", interrupt_type); + panic!() +} \ No newline at end of file diff --git a/sysdata/programs/horizon/src/main.hb b/sysdata/programs/horizon/src/main.hb index 114c492..7ccd0bd 100644 --- a/sysdata/programs/horizon/src/main.hb +++ b/sysdata/programs/horizon/src/main.hb @@ -73,7 +73,12 @@ main := fn(): int { } { - // Bottom Bar + // osu dots + render.put_rect(screen, .(400, 100), .(100, 100), render.red) + render.put_rect(screen, .(100, 100 + 300), .(100, 100), render.red) + } + + { pos := Vec2(uint).(1, screen.height - 21) render_label_to_surface(screen, text_label, font, pos) render.put_rect(screen, .(0, screen.height - 21), .(screen.width - 1, 20), render.white)