1
0
mirror of https://github.com/taigrr/gopher-os synced 2025-01-18 04:43:13 -08:00
Achilleas Anagnostopoulos f72eacc4fb Define VGA console
The VGA console frame buffer is mapped to the physical address 0xB8000.
2017-03-26 09:37:54 +01:00

53 lines
995 B
Go

package console
import "sync"
// Attr defines a color attribute.
type Attr uint16
// The set of attributes that can be passed to Write().
const (
Black Attr = iota
Blue
Green
Cyan
Red
Magenta
Brown
LightGrey
Grey
LightBlue
LightGreen
LightCyan
LightRed
LightMagenta
LightBrown
White
)
// ScrollDir defines a scroll direction.
type ScrollDir uint8
// The supported list of scroll directions for the console Scroll() calls.
const (
Up ScrollDir = iota
Down
)
// The Console interface is implemented by objects that can function as physical consoles.
type Console interface {
sync.Locker
// Dimensions returns the width and height of the console in characters.
Dimensions() (uint16, uint16)
// Clear clears the specified rectangular region
Clear(x, y, width, height uint16)
// Scroll a particular number of lines to the specified direction.
Scroll(dir ScrollDir, lines uint16)
// Write a char to the specified location.
Write(ch byte, attr Attr, x, y uint16)
}