xref: /freebsd/share/examples/bootforth/screen.4th (revision b9f654b163bce26de79705e77b872427c9f2afa1)
1\ Screen manipulation related words.
2\ $FreeBSD$
3
4marker task-screen.4th
5
6: escc	( -- )	\ emit Esc-[
7	91 27 emit emit
8;
9
10: ho	( -- )	\ Home cursor
11	escc 72 emit	\ Esc-[H
12;
13
14: cld	( -- )	\ Clear from current position to end of display
15	escc 74 emit	\ Esc-[J
16;
17
18: clear	( -- )	\ clear screen
19	ho cld
20;
21
22: at-xy	( x y -- )	\ move cursor to x rows, y cols (1-based coords)
23	escc .# 59 emit .# 72 emit	\ Esc-[%d;%dH
24;
25
26: fg	( x -- )	\ Set foreground color
27	escc 3 .# .# 109 emit	\ Esc-[3%dm
28;
29
30: bg	( x -- )	\ Set background color
31	escc 4 .# .# 109 emit	\ Esc-[4%dm
32;
33
34: me	( -- )	\ Mode end (clear attributes)
35	escc 109 emit
36;
37