1
\ RJH - ANSI TERMINAL TESTS / 2019. TESTED IN GFORTH
2
\ Based around the definition for 'F' found here:
3
\ https://www.forth.com/starting-forth/1-forth-stacks-dictionary/
5
\ This file is used to prepare test vectors for the VT-100 terminal emulator,
6
\ a mini-language is make for drawing text and displaying colors.
8
ONLY FORTH DEFINITIONS DECIMAL
10
WORDLIST CONSTANT COOL-TEXT ( <_< - way cool )
11
COOL-TEXT >ORDER DEFINITIONS
12
VARIABLE COOL-CHARACTER CHAR * COOL-CHARACTER !
15
: {{ CR COOL-TEXT >ORDER DUP ;
16
: >_> CHAR COOL-CHARACTER ! ;
17
: <_< [CHAR] * COOL-CHARACTER ! ;
21
: CSI $1B EMIT [CHAR] [ EMIT ;
22
: 10U. BASE @ >R DECIMAL 0 <# #S #> TYPE R> BASE ! ;
23
: ANSI SWAP CSI 10U. EMIT ; ( N C -- )
24
: AT-XY CSI 10U. $3B EMIT 10U. [CHAR] H EMIT ;
25
: PAGE 2 [CHAR] J ANSI 1 1 AT-XY ;
30
: RIGHT [CHAR] C ANSI ;
33
0 CONSTANT BLACK 1 CONSTANT RED 2 CONSTANT GREEN 4 CONSTANT BLUE
34
RED GREEN + CONSTANT YELLOW
35
GREEN BLUE + CONSTANT CYAN
36
RED BLUE + CONSTANT MAGENTA
37
RED GREEN BLUE + + CONSTANT WHITE
48
: DOT COOL-CHARACTER @ EMIT ;
50
: BLIP 1 DOWN DUP RIGHT DOT DUP 2 * LEFT ;
51
: BAR 1 DOWN DUP RIGHT 5 DOTS DUP 2 * LEFT ;
52
: F BAR BLIP BAR BLIP BLIP DROP 5 UP ;
53
: C BAR BLIP BLIP BLIP BAR DROP 5 UP ;
55
: I BLIP BLIP BLIP BLIP BLIP DROP 5 UP ;
58
: _ 4 DOWN BAR DROP 5 UP ;
60
: U DUP I DUP _ 4 + I ;
63
: W DUP L DUP 2 + I 4 + I ;
64
: M DUP I DUP 2 + I DUP 4 + I TOP ;
65
: - 2 DOWN BAR DROP 3 UP ;
66
: H DUP I DUP - 4 + I ;
71
: }} DROP 6 DOWN PREVIOUS ;