freebsd-dev/sys/boot/forth/screen.4th

61 lines
1.9 KiB
Plaintext
Raw Normal View History

\ Copyright (c) 2003 Scott Long <scottl@FreeBSD.org>
\ Copyright (c) 2015 Devin Teske <dteske@FreeBSD.org>
\ All rights reserved.
\
\ Redistribution and use in source and binary forms, with or without
\ modification, are permitted provided that the following conditions
\ are met:
\ 1. Redistributions of source code must retain the above copyright
\ notice, this list of conditions and the following disclaimer.
\ 2. Redistributions in binary form must reproduce the above copyright
\ notice, this list of conditions and the following disclaimer in the
\ documentation and/or other materials provided with the distribution.
\
\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
\ SUCH DAMAGE.
\
\ $FreeBSD$
marker task-screen.4th
: escc ( -- ) \ emit Esc-[
91 27 emit emit
;
: ho ( -- ) \ Home cursor
escc 72 emit \ Esc-[H
;
: cld ( -- ) \ Clear from current position to end of display
escc 74 emit \ Esc-[J
;
: clear ( -- ) \ clear screen
ho cld
;
: at-xy ( x y -- ) \ move cursor to x rows, y cols (1-based coords)
escc .# 59 emit .# 72 emit \ Esc-[%d;%dH
;
: fg ( x -- ) \ Set foreground color
escc 3 .# .# 109 emit \ Esc-[3%dm
;
: bg ( x -- ) \ Set background color
escc 4 .# .# 109 emit \ Esc-[4%dm
;
: me ( -- ) \ Mode end (clear attributes)
escc 109 emit
;