xref: /freebsd/stand/lua/screen.lua (revision a07d59d1daafdaae0d1b1ad1f977f9eda92dc83b)
1--
2-- Copyright (c) 2015 Pedro Souza <pedrosouza@freebsd.org>
3-- All rights reserved.
4--
5-- Redistribution and use in source and binary forms, with or without
6-- modification, are permitted provided that the following conditions
7-- are met:
8-- 1. Redistributions of source code must retain the above copyright
9--    notice, this list of conditions and the following disclaimer.
10-- 2. Redistributions in binary form must reproduce the above copyright
11--    notice, this list of conditions and the following disclaimer in the
12--    documentation and/or other materials provided with the distribution.
13--
14-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24-- SUCH DAMAGE.
25--
26-- $FreeBSD$
27--
28
29local screen = {};
30
31local color = require("color");
32local core = require("core");
33
34function screen.clear()
35	if core.bootserial() then
36		return;
37	end
38	loader.printc("\027[H\027[J");
39end
40
41function screen.setcursor(x, y)
42	if core.bootserial() then
43		return;
44	end
45	loader.printc("\027["..y..";"..x.."H");
46end
47
48function screen.setforeground(c)
49	if color.disabled then
50		return c;
51	end
52	loader.printc("\027[3"..c.."m");
53end
54
55function screen.setbackground(c)
56	if color.disabled then
57		return c;
58	end
59	loader.printc("\027[4"..c.."m");
60end
61
62function screen.defcolor()
63	loader.printc(color.default());
64end
65
66function screen.defcursor()
67	if core.bootserial() then
68		return;
69	end
70	loader.printc("\027[25;0H");
71end
72
73return screen
74