| Table of Contents

# 10. The optional Facility word set

## 10.1 Introduction

## 10.2 Additional terms and notation

None.

## 10.3 Additional usage requirements

### 10.3.1 Character types

Programs that use more than seven bits of a character by 10.6.2.1305 EKEY have an environmental dependency.

`See: 3.1.2 Character types`

### 10.3.2 Environmental queries

Append table 10.1 to table 3.5.

`See: 3.2.6 Environmental queries`

Table 10.1 - Environmental query strings

    String          Value data type   Constant?   Meaning
    ------          ---------------   ---------   -------
    FACILITY        flag              no          facility word set present
    FACILITY-EXT    flag              no          facility extensions word set present

## 10.4 Additional documentation requirements

### 10.4.1 System documentation

#### 10.4.1.1 Implementation-defined options

- encoding of keyboard events (10.6.2.1305 EKEY);
- duration of a system clock tick;
- repeatability to be expected from execution of 10.6.2.1905 MS.

#### 10.4.1.2 Ambiguous conditions

- 10.6.1.0742 AT-XY operation can't be performed on user output device.

#### 10.4.1.3 Other system documentation

- no additional requirements.

### 10.4.2 Program documentation

#### 10.4.2.1 Environmental dependencies

- using more than seven bits of a character in 10.6.2.1305 EKEY.

#### 10.4.2.2 Other program documentation

- no additional requirements.

## 10.5 Compliance and labeling

### 10.5.1 ANS Forth systems

The phrase Providing the Facility word set shall be appended to the label of any Standard System that provides all of the Facility word set.

The phrase Providing name(s) from the Facility Extensions word set shall be appended to the label of any Standard System that provides portions of the Facility Extensions word set.

The phrase Providing the Facility Extensions word set shall be appended to the label of any Standard System that provides all of the Facility and Facility Extensions word sets.

### 10.5.2 ANS Forth programs

The phrase Requiring the Facility word set shall be appended to the label of Standard Programs that require the system to provide the Facility word set.

The phrase Requiring name(s) from the Facility Extensions word set shall be appended to the label of Standard Programs that require the system to provide portions of the Facility Extensions word set.

The phrase Requiring the Facility Extensions word set shall be appended to the label of Standard Programs that require the system to provide all of the Facility and Facility Extensions word sets.

## 10.6 Glossary

### 10.6.1 Facility words

`10.6.1.0742 AT-XY`
at-x-y FACILITY

    	( u1 u2 -- )

Perform implementation-dependent steps so that the next character displayed will appear in column u1, row u2 of the user output device, the upper left corner of which is column zero, row zero. An ambiguous condition exists if the operation cannot be performed on the user output device with the specified parameters.

`See: A.10.6.1.0742 AT-XY`

`10.6.1.1755 KEY?`
key-question FACILITY

    	( -- flag )

If a character is available, return true. Otherwise, return false. If non-character keyboard events are available before the first valid character, they are discarded and are subsequently unavailable. The character shall be returned by the next execution of KEY.

After KEY? returns with a value of true, subsequent executions of KEY? prior to the execution of KEY or EKEY also return true, without discarding keyboard events.

`See: A.10.6.1.1755 KEY?`

`10.6.1.2005 PAGE`
FACILITY

    	( -- )

Move to another page for output. Actual function depends on the output device. On a terminal, PAGE clears the screen and resets the cursor position to the upper left corner. On a printer, PAGE performs a form feed.

### 10.6.2 Facility extension words

`10.6.2.1305 EKEY`
e-key FACILITY EXT

    	( -- u )

Receive one keyboard event u. The encoding of keyboard events is implementation defined.

`See: 10.6.1.1755 KEY? , 6.1.1750 KEY , A.10.6.2.1305 EKEY`

`10.6.2.1306 EKEY>CHAR`
e-key-to-char FACILITY EXT

    	( u -- u false | char true )

If the keyboard event u corresponds to a character in the implementation-defined character set, return that character and true. Otherwise return u and false.

`See: A.10.6.2.1306 EKEY>CHAR`

`10.6.2.1307 EKEY?`
e-key-question FACILITY EXT

    	( -- flag )

If a keyboard event is available, return true. Otherwise return false. The event shall be returned by the next execution of EKEY.

After EKEY? returns with a value of true, subsequent executions of EKEY? prior to the execution of KEY, KEY? or EKEY also return true, referring to the same event.

`10.6.2.1325 EMIT?`
emit-question FACILITY EXT

    	( -- flag )

flag is true if the user output device is ready to accept data and the execution of EMIT in place of EMIT? would not have suffered an indefinite delay. If the device status is indeterminate, flag is true.

`See: A.10.6.2.1325 EMIT?`

`10.6.2.1905 MS`
FACILITY EXT

    	( u -- )

Wait at least u milliseconds.

Note: The actual length and variability of the time period depends upon the implementation-defined resolution of the system clock and upon other system and computer characteristics beyond the scope of this Standard.

`See: A.10.6.2.1905 MS`

`10.6.2.2292 TIME&DATE`
time-and-date FACILITY EXT

    	( -- +n1 +n2 +n3 +n4 +n5 +n6 )

Return the current time and date. +n1 is the second {0...59}, +n2 is the minute {0...59}, +n3 is the hour {0...23}, +n4 is the day {1...31} +n5 is the month {1...12}, and +n6 is the year (e.g., 1991).

`See: A.10.6.2.2292 TIME&DATE`

Table of Contents
Next Section