Module shared_screen
- Shared screen library
Shared screen library.
To use this library:
#INCLUDE "shared_screen.module"
Index
-
Data type
COLOUR
- A colour -
Group
COLOURS
- Colour constants-
Constant
black
- Black -
Constant
blue
- Blue -
Constant
bold.black
- Bold black (grey) -
Constant
bold.blue
- Bold blue -
Constant
bold.cyan
- Bold cyan -
Constant
bold.green
- Bold green -
Constant
bold.magenta
- Bold magenta -
Constant
bold.red
- Bold red -
Constant
bold.white
- Bold white -
Constant
bold.yellow
- Bold yellow -
Constant
cyan
- Cyan -
Constant
default
- Default colour -
Constant
green
- Green -
Constant
magenta
- Magenta -
Constant
red
- Red -
Constant
white
- White -
Constant
yellow
- Yellow
-
Constant
-
Record
COORDINATES
- A pair of coordinates-
Variable
X
- X coordinate -
Variable
Y
- Y coordinate
-
Variable
-
Record
COORDINATES.COLOUR
- A pair of coordinates and a colour-
Variable
X
- X coordinate -
Variable
Y
- Y coordinate -
Variable
col
- Colour
-
Variable
-
Group
SCREEN.COMMAND
- Command tags for -
Protocol
SCREEN.CONTROL
- Control protocol for-
Tag
byte
- Draw a byte -
Tag
c.erase.bol
- Move then erase to beginning of line -
Tag
c.erase.bos
- Move then erase to beginning of screen -
Tag
c.erase.eol
- Move then erase to end of line -
Tag
c.erase.eos
- Move then erase to end of screen -
Tag
c.erase.line
- Move then erase whole line -
Tag
character
- Draw a character -
Tag
colour
- Set colour -
Tag
coordinates
- Set coordinates -
Tag
cursor.invisible
- Make the cursor invisible -
Tag
cursor.visible
- Make the cursor visible -
Tag
down
- Move down -
Tag
draw.down
- Move down drawing character -
Tag
draw.left
- Move left drawing character -
Tag
draw.right
- Move right drawing character -
Tag
draw.up
- Move up drawing character -
Tag
erase.bol
- Erase to beginning of line -
Tag
erase.bos
- Erase to beginning of screen -
Tag
erase.eol
- Erase to end of line -
Tag
erase.eos
- Erase to end of screen -
Tag
erase.line
- Erase whole line -
Tag
erase.screen
- Clear the screen -
Tag
flush
- Force a screen update -
Tag
integer
- Draw an integer -
Tag
interpret
- Interpret a list of commands -
Tag
left
- Move left -
Tag
poison
- Exit -
Tag
right
- Move right -
Tag
string
- Draw a string -
Tag
up
- Move up
-
Tag
-
Record
SCREEN.NODE
- A batch instruction to the shared screen-
Variable
a
- First argument -
Variable
b
- Second argument -
Variable
tag
- The command to execute
-
Variable
-
Process
fg.col
- Set foreground colour -
Process
screen.driver
- Shared screen process -
Process
screen.interpret
- Interpret an array of screen update commands
Declarations
shared_screen.occ
:39Process fg.col
PROC fg.col (VAL COLOUR c, CHAN BYTE out!)
Set foreground colour. Generate a VT220 control sequence to set the terminal colour.
Parameters:
VAL COLOUR |
c |
Colour to set; see COLOURS
|
CHAN BYTE |
out |
Channel to write to |
shared_screen.occ
:74Process screen.interpret
PROC screen.interpret (VAL []SCREEN.NODE node, CHAN BYTE out!)
Interpret an array of screen update commands.
Parameters:
VAL []SCREEN.NODE |
node |
Commands to interpret; see SCREEN.NODE
|
CHAN BYTE |
out |
Channel to write to |
shared_screen.occ
:185Process screen.driver
PROC screen.driver (CHAN SCREEN.CONTROL in?, CHAN BYTE out!)
Shared screen process. Manage a VT220 terminal display.
Parameters:
CHAN SCREEN.CONTROL |
in |
Command input channel (see SCREEN.CONTROL ) |
CHAN BYTE |
out |
Channel to write to |
shared_screen.inc
:25Data type COLOUR
DATA TYPE COLOUR
A colour.
shared_screen.inc
:26Group COLOURS
Colour constants
shared_screen.inc
:27Constant default
VAL COLOUR default
Default colour
shared_screen.inc
:28Constant black
VAL COLOUR black
Black
shared_screen.inc
:29Constant red
VAL COLOUR red
Red
shared_screen.inc
:30Constant green
VAL COLOUR green
Green
shared_screen.inc
:31Constant yellow
VAL COLOUR yellow
Yellow
shared_screen.inc
:32Constant blue
VAL COLOUR blue
Blue
shared_screen.inc
:33Constant magenta
VAL COLOUR magenta
Magenta
shared_screen.inc
:34Constant cyan
VAL COLOUR cyan
Cyan
shared_screen.inc
:35Constant white
VAL COLOUR white
White
shared_screen.inc
:36Constant bold.black
VAL COLOUR bold.black
Bold black (grey)
shared_screen.inc
:37Constant bold.red
VAL COLOUR bold.red
Bold red
shared_screen.inc
:38Constant bold.green
VAL COLOUR bold.green
Bold green
shared_screen.inc
:39Constant bold.yellow
VAL COLOUR bold.yellow
Bold yellow
shared_screen.inc
:40Constant bold.blue
VAL COLOUR bold.blue
Bold blue
shared_screen.inc
:41Constant bold.magenta
VAL COLOUR bold.magenta
Bold magenta
shared_screen.inc
:42Constant bold.cyan
VAL COLOUR bold.cyan
Bold cyan
shared_screen.inc
:43Constant bold.white
VAL COLOUR bold.white
Bold white
shared_screen.inc
:48Record COORDINATES
DATA TYPE COORDINATES
A pair of coordinates.
shared_screen.inc
:50Variable X
BYTE
X coordinate
shared_screen.inc
:51Variable Y
BYTE
Y coordinate
shared_screen.inc
:56Record COORDINATES.COLOUR
DATA TYPE COORDINATES.COLOUR
A pair of coordinates and a colour.
shared_screen.inc
:58Variable X
BYTE
X coordinate
shared_screen.inc
:59Variable Y
BYTE
Y coordinate
shared_screen.inc
:60Variable col
COLOUR
Colour
shared_screen.inc
:91Record SCREEN.NODE
DATA TYPE SCREEN.NODE
A batch instruction to the shared screen. This is really a union type; the argument tags have different meanings depending on the command.
shared_screen.inc
:97Variable a
BYTE
First argument
shared_screen.inc
:99Variable b
BYTE
Second argument
shared_screen.inc
:106Protocol SCREEN.CONTROL
PROTOCOL SCREEN.CONTROL
Control protocol for screen.driver
.
shared_screen.inc
:109Tag coordinates
coordinates; COORDINATES
Set coordinates
shared_screen.inc
:110Tag colour
colour; COLOUR
Set colour
shared_screen.inc
:111Tag string
string; BYTE::[]BYTE
Draw a string
shared_screen.inc
:112Tag integer
integer; INT
Draw an integer
shared_screen.inc
:113Tag byte
byte; BYTE
Draw a byte
shared_screen.inc
:114Tag character
character; BYTE
Draw a character
shared_screen.inc
:115Tag left
left; BYTE
Move left
shared_screen.inc
:116Tag right
right; BYTE
Move right
shared_screen.inc
:117Tag up
up; BYTE
Move up
shared_screen.inc
:118Tag down
down; BYTE
Move down
shared_screen.inc
:119Tag draw.left
draw.left; BYTE; BYTE
Move left drawing character
shared_screen.inc
:120Tag draw.right
draw.right; BYTE; BYTE
Move right drawing character
shared_screen.inc
:121Tag draw.up
draw.up; BYTE; BYTE
Move up drawing character
shared_screen.inc
:122Tag draw.down
draw.down; BYTE; BYTE
Move down drawing character
shared_screen.inc
:123Tag erase.eol
erase.eol
Erase to end of line
shared_screen.inc
:124Tag erase.bol
erase.bol
Erase to beginning of line
shared_screen.inc
:125Tag erase.line
erase.line
Erase whole line
shared_screen.inc
:126Tag erase.eos
erase.eos
Erase to end of screen
shared_screen.inc
:127Tag erase.bos
erase.bos
Erase to beginning of screen
shared_screen.inc
:128Tag flush
flush
Force a screen update
shared_screen.inc
:142Tag c.erase.eol
c.erase.eol; COORDINATES
Move then erase to end of line
shared_screen.inc
:143Tag c.erase.bol
c.erase.bol; COORDINATES
Move then erase to beginning of line
shared_screen.inc
:144Tag c.erase.line
c.erase.line; COORDINATES
Move then erase whole line
shared_screen.inc
:145Tag c.erase.eos
c.erase.eos; COORDINATES
Move then erase to end of screen
shared_screen.inc
:146Tag c.erase.bos
c.erase.bos; COORDINATES
Move then erase to beginning of screen
shared_screen.inc
:147Tag erase.screen
erase.screen
Clear the screen
shared_screen.inc
:148Tag cursor.visible
cursor.visible
Make the cursor visible
shared_screen.inc
:149Tag cursor.invisible
cursor.invisible
Make the cursor invisible
shared_screen.inc
:152Tag interpret
interpret; BYTE::[]SCREEN.NODE
Interpret a list of commands. See SCREEN.NODE
.
shared_screen.inc
:153Tag poison
poison
Exit