diff options
author | abial <abial@FreeBSD.org> | 1998-12-22 12:15:45 +0000 |
---|---|---|
committer | abial <abial@FreeBSD.org> | 1998-12-22 12:15:45 +0000 |
commit | 91bd0e66beb40a53efaf61eaad295aaf08f1384f (patch) | |
tree | 9987057310d8e7e856204299caf8e7b682674625 /share/examples/bootforth/screen.4th | |
parent | c1e3c82572f880584c99fbe75082f7db2c3c7279 (diff) | |
download | FreeBSD-src-91bd0e66beb40a53efaf61eaad295aaf08f1384f.zip FreeBSD-src-91bd0e66beb40a53efaf61eaad295aaf08f1384f.tar.gz |
Add examples how to use the terminal emulation code in /boot/loader to
create nice startup menus. Improvements are warmly welcome. :-)
Diffstat (limited to 'share/examples/bootforth/screen.4th')
-rw-r--r-- | share/examples/bootforth/screen.4th | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/share/examples/bootforth/screen.4th b/share/examples/bootforth/screen.4th new file mode 100644 index 0000000..4b0a01e --- /dev/null +++ b/share/examples/bootforth/screen.4th @@ -0,0 +1,36 @@ +\ Screen manipulation related words. +\ $Id$ + +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 +; |