2025-05-09 23:16:25 +08:00

25 lines
536 B
Zig

const arch = @import("../x86_64.zig");
const libk = @import("libk");
const Pio = arch.Pio;
const WriteOnly = libk.io.WriteOnly;
var command: WriteOnly(Pio(u8)) = .open(0x70);
var data: Pio(u8) = .open(0x71);
pub const Register = enum(u8) {
status_a = 0x0A,
status_b = 0x0B,
_,
};
pub fn read(register: Register) u8 {
command.write(0x80 | @intFromEnum(register));
return data.read();
}
pub fn write(register: Register, value: u8) void {
command.write(0x80 | @intFromEnum(register));
data.write(value);
}