OpenCores
URL https://opencores.org/ocsvn/forth-cpu/forth-cpu/trunk

Subversion Repositories forth-cpu

[/] [forth-cpu/] [trunk/] [t/] [ansi.fth] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 howe.r.j.8
\ 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/
4
\
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.
7
\
8
ONLY FORTH DEFINITIONS DECIMAL
9
 
10
WORDLIST CONSTANT COOL-TEXT ( <_< - way cool )
11
COOL-TEXT >ORDER DEFINITIONS
12
VARIABLE COOL-CHARACTER CHAR * COOL-CHARACTER !
13
: BYE BYE ;
14
: CR $D EMIT $A EMIT ;
15
: {{ CR COOL-TEXT >ORDER DUP ;
16
: >_> CHAR COOL-CHARACTER ! ;
17
: <_< [CHAR] * COOL-CHARACTER ! ;
18
: \ POSTPONE \ ;
19
: .( POSTPONE .( ;
20
 
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 ;
26
: SGR [CHAR] m ANSI ;
27
 
28
: UP    [CHAR] A ANSI ;
29
: DOWN  [CHAR] B ANSI ;
30
: RIGHT [CHAR] C ANSI ;
31
: LEFT  [CHAR] D ANSI ;
32
 
33
 
34
RED GREEN        + CONSTANT YELLOW
35
    GREEN BLUE   + CONSTANT CYAN
36
RED       BLUE   + CONSTANT MAGENTA
37
RED GREEN BLUE + + CONSTANT WHITE
38
: BACKGROUND $A + ;
39
: COLOR $1E + SGR ;
40
 
41
: BLINKY $5 SGR ;
42
: UNBLINK $19 SGR ;
43
: BOLD   $1  SGR ;
44
: NORMAL $16 SGR ;
45
: REVERSE $7 SGR ;
46
: ESREVER $1B SGR ;
47
 
48
: DOT     COOL-CHARACTER @ EMIT ;
49
: DOTS    0 DO  DOT   LOOP ;
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 ;
54
: E       DUP F C ;
55
: I       BLIP BLIP BLIP BLIP BLIP DROP 5 UP ;
56
: O       DUP C 4 + I ;
57
: A       DUP F 4 + I ;
58
: _       4 DOWN BAR DROP 5 UP ;
59
: TOP     BAR DROP 1 UP ;
60
: U       DUP I DUP _ 4 + I ;
61
: J       DUP _ 4 + I ;
62
: L       DUP 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 ;
67
: T       DUP TOP 2 + I ;
68
: D       DUP I DROP ;
69
 
70
: |       7 + DUP ;
71
: }} DROP 6 DOWN PREVIOUS ;
72
SEAL

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.