diff --git a/Cargo.lock b/Cargo.lock index 54ba9a5..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#0d87bf8f0977fd929af28f6cd8007b603bc974bc" +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#0d87bf8f0977fd929af28f6cd8007b603bc974bc" +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#0d87bf8f0977fd929af28f6cd8007b603bc974bc" +source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#f524013c34ff5868eadc0afdf1168239f31c7ee0" dependencies = [ "hbbytecode", ] @@ -824,9 +824,9 @@ dependencies = [ [[package]] name = "uart_16550" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4922792855b1bce30997fbaa5418597902c278a92d20dfe348e6f062c3bd861d" +checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" dependencies = [ "bitflags 2.6.0", "rustversion", diff --git a/sysdata/programs/ps2_driver/src/main.hb b/sysdata/programs/ps2_driver/src/main.hb index dc4bbe0..a6dccf6 100644 --- a/sysdata/programs/ps2_driver/src/main.hb +++ b/sysdata/programs/ps2_driver/src/main.hb @@ -1,4 +1,5 @@ -.{memory, log} := @use("../../../libraries/stn/src/lib.hb") +.{memory, log, string} := @use("../../../libraries/stn/src/lib.hb") +format_page := memory.dangling(u8) DeviceID := struct {value: u16} @@ -63,11 +64,13 @@ initialize_controller := fn(): void { } if ports[0].exists { + log.info("Port 1 exists.\0") memory.outb(0x64, 0xAE) //Enables port 1. ports[0].command_queued = true } if ports[1].exists { + log.info("Port 2 exists.\0") memory.outb(0x64, 0xA8) //Enables port 2. ports[1].command_queued = true @@ -75,20 +78,17 @@ initialize_controller := fn(): void { } handle_input := fn(port: uint, input: u8): void { - if ports[port].state.value == Recive.value { - } else if ports[port].state.value == Reboot.value { - if input == 0xAA { - log.info("Device rebooted!\0") - ports[port].state = Recive - } else if (ports[port].device.value & 15) == 0 { - ports[port].device.value |= input - } else { - ports[port].device.value |= input << 4 - } + if input == 0xAA { + log.info("Device rebooted!\0") + log.info(string.display_int(@intcast(port + 1), format_page, 16)) + ports[port].state = Recive + } else if ports[port].state.value == Recive.value { } } main := fn(): void { + format_page = memory.alloc(u8, 1024) + @inline(initialize_controller) loop {