25 lines
536 B
Zig
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);
|
|
}
|