alcedo/kernel/arch/i386/vga.nim

27 lines
563 B
Nim
Raw Normal View History

type
VGA_Colour* {.pure.} = enum
black = 0,
blue = 1,
green = 2,
cyan = 3,
red = 4,
magenta = 5,
brown = 6,
lightGrey = 7,
darkGrey = 8,
lightBlue = 9,
lightGreen = 10,
lightCyan = 11,
lightRed = 12,
lightMagenta = 13,
lightBrown = 14,
white = 15
VGADoubleByte* = distinct uint16
proc vgaEntryColour*(fg: VGA_Colour, bg: VGA_Colour): int =
result = ord(fg) or (ord(bg) shl 4)
proc vgaEntry*(c: char, colour: int): VGADoubleByte =
result = (uint16(int(c) or (colour shl 8))).VGADoubleByte