read(fd int, buffer *byte, length int) -> int {
	fd = kernel32.GetStdHandle(-10 - fd)
	kernel32.ReadConsole(fd, buffer, uint32(length), 0)
	return length
}

write(fd int, buffer *byte, length int) -> int {
	fd = kernel32.GetStdHandle(-10 - fd)
	kernel32.WriteConsoleA(fd, buffer, uint32(length), 0)
	return length
}

extern kernel32 {
	GetStdHandle(handle int64) -> int64
	ReadConsole(fd int64, buffer *byte, length uint32, written *uint32) -> bool
	WriteConsoleA(fd int64, buffer *byte, length uint32, written *uint32) -> bool
}