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