Tridora-CPU/tridoraemu/console.go
2024-09-19 14:12:22 +02:00

35 lines
663 B
Go

// +build !windows
// Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details
package main
import (
"os"
"golang.org/x/term"
)
type ConsoleState struct {
state term.State
}
func SetRawConsole() (*ConsoleState, error) {
oldState, err := term.MakeRaw(int(os.Stdin.Fd()))
return &ConsoleState{*oldState}, err
}
func RestoreConsole(st *ConsoleState) error {
return term.Restore(int(os.Stdin.Fd()), &st.state)
}
func ConsoleRead(buf []byte) (count int, err error) {
n, e := os.Stdin.Read(buf)
return n, e
}
func ConsoleWrite(char byte) (err error) {
buf := make([] byte, 1)
buf[0] = char
_ , e := os.Stdout.Write(buf)
return e
}