stn := @use("../../../libraries/stn/src/lib.hb"); .{log, string, memory, buffer} := stn serial_print := fn(ptr: ^u8): void { letter := 0 loop if *ptr == 0 break else { letter = *ptr memory.outb(3, 248, letter) ptr += 1 } return } serial_println := fn(ptr: ^u8): void { serial_print(ptr) memory.outb(3, 248, 12) memory.outb(3, 248, 13) return } main := fn(): int { // This must be done first and foremost to prevent racing a := buffer.create("XNumber\0") serial_println("Starting Serial Driver.\0") mem := memory.request_page(1) loop { ptr := @eca(int, 4, a, mem, 4096) if ptr == 0 { serial_println("No message\0") } if ptr > 0 { serial_println("Yes message\0") serial_println(mem) break } } // Note that the first byte is reserved, pad accordingly. b := buffer.search("XNumber\0") if a == b { serial_println("Stopping Serial Driver.\0") } return 0 }