EL SM070 00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 00 DEC STD 070 Video Systems Reference Manual Dec91

EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 manual pdf -FilePursuit

EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91

User Manual: EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91

Open the PDF directly: View PDF PDF.
Page Count: 1252

DownloadEL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 EL-SM070-00 DEC STD 070 Video Systems Reference Manual Dec91
Open PDF In BrowserView PDF
EL-SM070-00

DEC STD 070
Video Systems
Reference Manual

For Internal Use Only

EL-SM07o..00

Digital Internal Use Only

DEC STD 070 Video Systems
Manual

03-Dec·1991,,
,

R~~,.ce .

DOCUMENT IDENTIFIER: A-MN-ELSM070-00-0000 Rev H.

' '

O,3-D~ .. 1991

ABSTRACT: This manual contains The Video Systems Reference ~n~al;(V~R.MhJicoUeetion·
of Digital standards relating to the development of video display' (tnteraC.tt~'fte.rr]'JHaIS and
terminal related products. including printers. personal computers" workstEl,tlons. arid'terminal
software. Each document in this manual is individually:controlleCJ,aPicbNiif,be updated as
' ,',
.
required.

APPLICABILITY: The standards included within this manual are mallqatory for,engin,eers
designing hardware for terminal products and software engineer~ d~iQping·progti.ins'U$ing
terminal interfaces. Additional requirements are defined in DEC $TO,·07.p-1 Concept,s and
Conformance Criteria.
' ,",',' , , '
STATUS:APPROVED 03-Dec-1991; use VTX SMC for. current status.

.:

NOTE
The material referenced by this document is assumed to ~e m~w;latQry
standards wiless it is clearly marked as: (a) not mandatory;'d,r ';(Ij);gl!id,eime.,$.... .
Material that is marked as not mandatory is considered tob$ of }K)~al.1),entfit.;.> "
to the corporation and should be followed unless there '~" ~'r,eq9~sfqr ',,;:. ;:; ,
non-compliance. Guidelines define approaches and teclmi,q1.,tesJ,'t-at ar~~~sid,.e~a:,
to be good practice, but should not be considered as requi~J1~ .t, .; ~";
' . ' ..
:'-

This document is confidential and proprietary, and is the propertyofOigi1a1
,
Equipment Corporation. It is an unpublished work protected under applicable.
copyright laws.
'

© Digital Equipment Corporation. 1989, 199t. All rights reserved;;:·

Digital Internal Use Only

EL-5M07o..00

Digital Internal Use Only

DEC STO 070 Video

S¥~"ms
"Ij; "

,:"~' \ ",,'

03-Dec·1991

Reference Manual

DOet::Jtv'lENT IDENTIFIE'R":A-MN-ELSM070-00-0000 Rev H, 03-Dec-1991
-," "

", 'I.. . .,

RevC,
RevD,
Rev E,
Rev F,
RevH,

D~bum~ni Management CategorY:
Responsible Department:
Responsible Person:
SMC Writer:

APPROVAL: Peter

Sichel~
..V.lPS
:::',-.('

14-Apr-1989
06-Sep-1990
17-Oct-1990
20-Mar-1991
03-Dec-1991

ECO
ECO
ECO
ECO
ECO

Number
Number
Number
Number
Number

CTS02
CTS03
CTS04
CTS05
NR006

Terminal Interface Architecture (STI)
VIPS Terminals Architecture
Peter Sichel
Georgia Ireland

Terminals Architecture

Peter Sichel - VIPS Terminal Interface Architecture
Control
Direcl requests for furt~er information to the responsible person shown on the management
page of each document in this manual.
Use VTX SMC to order copies of this document from Standards and Methods Control. Send
distribution questions to JOKUR::SMC or call DTN: 234-4423
The DIG!TAL logo and ReGIS are trademarks of Digital EqUipment Corporation.

Digital Internal Use Only

EL-SM070-00

03-Dec-1991

Table of Contents/Revision Status
"'-,

.

,"

litle

Part Number

Revision

DEC STD 070-0 Video Systems Standard - Introduction

EL-00070-00

Rev B

DEC STD 070-1 Video Systems Reference Manual - Concepts and
Conformance Criteria

EL-00070-01

Rev AX10

DEC STD 070-2 Video Systems Reference Manual - Specification Program
Structure

EL-00070-02

Rev AX11

DEC STD 070-3 Video Systems Standard - Code Extension Layer

EL-00070-03

Rev A

DEC STD 070-4 Video Systems Reference Manual - Terminal Management

"7"

,.

Rev A

DEC STD 070-5 Video Systems Reference Manual - Character Cell Display

EL-00070-Q5

Rev AX11

DEC STD 070-6 Video Systems Reference Manual - Keyboard Processing

EL-00070-06

Rev A

DEC STD 070-7 Video Systems Reference Manual - Printer Port Extension

EL-00070-07

Rev AX12

DEC STD 070-8 Video and Printer Standards Reference Manual - ReGIS
Graphics Extension

EL-00070-08

DEC STD 070-9 Video and Printer Systems Reference Manual - Sixel
Graphics Extension

EL-00070-09.

Rev A1

DEC STD 070-10 Video Systems Standards - Dynamically Redefinable
Character Sets Extension

EL-00070-10

Rev A

DEC STD 070-11 Video Systems Reference Manual - User Defined Keys
Extension (UDK)

EL-00070-11

Rev AX10

DEC STD 070-12 Video Systems Reference Manual- Terminal Synchronization

EL-00070-12

Rev A1

DEC STD 070-13 Video Systems Reference Manual - Text Locator Extension

EL-00070-13

Rev A

DEC STD 070-0A Video Systems Reference Manual - VT52 Emulation

EL-00070-0A

Rev AX11

DEC STD 070-0B Video Systems Reference Manual - Programmer's Guide

EL-00070-0B

Rev AX10

DEC STD 070-0C Video Systems Reference Manual - Product Reference

EL-00070-0C

Rev AX11

DEC STD 070-0 Video Systems Reference Manual - Documented Exceptions

EL-00070-OD

Rev AX11

Video Systems Reference Manual Master Index

EL-00070-IN

Rev C

Digital Internal Use Only

. Rev A

1

EL-00070,,:,0'0
.
VSRM - Introduction

14-Apr-1989

Page 1
Digital Internal Use Only

DEC STD 070-0 VIDEO SYSTEMS STANDARD INTRODUCTION
Document Identifier: A-DS-EL00070-00-0 Rev B, 14-Apr-1989

ABSTRACT: This standard contains an introduction to DEC STD 070
Video Systems Reference Manual (VSRM), which is a collection ~
Digital standards relating to the development of video display
(interactive) terminals and terminal related products, including
printers, personal computers, workstations, and terminal software.
It describes the audience for DEC STD 070 and those responsible
for its development and maintenance. It also defines key
terminology, and provides a Table of Contents for all sections of
the mallual.
Each document in this manual is controlled individually.
material in this handbook will be updated as required. .

The

APPLICABILITY: This standard is mandatory for engineers designing
hardware for terminal products and software engineers designing
programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts
and Conformance Criteria.

STATUS:

r

I
I
I
I

APPROVED 14-Apr-1989; type $ VTX SMC for expiration date.

This document is confidential and proprietary. It is an
unpublished work protected under the Federal copyright· laws.
Copyright (c) Digital Equipment Corporation.
reserved.

1989.

Digital Internal Use Only

momDomD™

All rights

EL-OOOTO-OO
VSRM - Introduction

14-Apr-l~~~

~age

~

Digital Internal Use Only

TITLE: DEC STD 070-0 VIDEO SYSTEMS STANDARD - INTRODUCTION
DOCUMENT IDENTIFIER: A-DS-EL00070-00-0 Rev B, 14-Apr-1989
REVISION HISTORY: Rev A, 29-Apr-1988
Rev B, 14-Apr-1989

Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:

ECO #CTSOI

Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Patricia Winner

APPROVAL: This document, prepared by the Desktop Systems Group,
has been reviewed and recommended for approval by the
General Review Group for its category for use throughout
Digital.

~~ e-':-·

~r Conk in, Technical Director,

Desktop Systems Group

Peter Sichel, Desktop Systems Group

f,2/JtJ~
Eric Williams, Standards

Process Manager

Direct requests for further information to Peter Sichel,
DSGl-2/C7, DTN 235-8374, HANNAH::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, $ VTX SMC, CTSl-2/D4, DTN 287-3724, or JOKUR::SMC.
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.

mDmDomDTM

. EL-00070-00
VSRM - Introduction

14-Apr-1989

Page 3
Digital Internal Use only

CONTENTS
1

2
3
4
5

INTRODUCTION • •
AUDIENCE . . • •
RESPONSIBILITY
GENERAL TERMINOLOGY
REFERENCED DOCUMENTS •

•
·
·
·

5
6
6
7
31

EL-00070-00
VSRM - Introduction

mDmoomD™

14-Apr-1989

page 4
Digital Internal Use Only

EL-00070-00
VSRM - Introduction
1

29-Apr-1988

Page 5
Digital Internal Use Only

INTRODUCTION

Digital Equipment Corporation has traditionally been a pioneer in
developing and implementing standards for terminal service
interfaces. The VT100 was Digital's first terminal based on the
ANSI standard for control sequence encoding (ANSI X3.64). Many of
Digital's printer and display terminals have since implemented
ANSI and DEC-private controls, and Digital has been an active
participant in the development of new controls. The development
of ReGIS (Remote Graphics Instruction Set) has enabled the
corporation to implement a variety of graphics terminal products,
and establish Digital as a force in the graphics terminal market.
Digital has built a number of terminals based on these interfaces,
and has committed that future terminal products will continue to
support these interfaces to ensure software compatibility for
operating systems as well as application programs. It is expected
that computing terminals and workstations will also emulate these
interfaces in order to take advantage of the large body of
software that already exists for these devices.
The DEC STD 070 Video Systems Reference Manual (or Video SRM)
documents-the-Interfaces to Digital video terminal products. It
is intended to serve as both an implementation specification for
product developers, and as a guide to programmers attempting to
produce software that is transportable across a wide range of
devices. It defines the interfaces in a manner that is
independent of the physical characteristics of a particular device
implementation. Enough flexibility is allowed in the interface
description to permit a wide variety of terminal products to be
produced, while ensuring that software can be designed that can
intelligently make use of the full range of features in a given
product.
As new functions are developed for new terminal products, they
will be added to the Video SRM before final implementation.
Furthermore, an architectural certification process provides a
means of measuring product performance against the Video SRM, and
ensures software compatibility across products.
Products claiming conformance to the architectural specifications
contained in the Video SRM must be submitted for certification
testing and evaluated against the requirements, of these standards.

EL-00070-00
VSRM - Introduction
2

14-Apr-1989

Page 6
Digital Internal Use Only

AUDIENCE

There are two intended audiences for the Video SRM. One is the
engineers who design the hardware and firmware for future terminal
products. It is important that these designers have a thorough
knowledge of the functionality required at the device interface in
order to build devices at a reasonable cost that will be interface
compatible with existing software products. The Video SRM
provides a detailed description of the logic required to implement
these interfaces, and thus guarantees that gratuitous changes will
not be introduced.
The second audience for the Video SRM is the software engineers
who design programs that use terminals to implement their user
interfaces. The Video SRM provides these programmers with a
convenient single source of information regarding Digital's family
of terminals and workstation products. This document enables
those engineers to produce device-independent software without the
need to consult a proliferation of user's manuals and understand
the discrepancies between implementations.
The greatest benefit of this document is to the Digital customer.
By providing a single point of reference between hardware and
software components designed by the corporation, Digital
significantly reduces consternation and confusion among field
sales and servi~e personnel and satisfies the marketplace that
Digital provides system components that are designed to work
together.

3

RESPONSIBILITY

Development and maintenance of the DEC ~ 070 Video Systems
Reference Manual is the responsibility of the Terminals
Architecture Group, reporting to the Technical Director of the
Desktop Systems Group (DSG). Distribution and control of the
document is handled through the Standards and Methods Control
group of Internat~onal Standards, Information, and Services
(ISIS).
Section 1 delineates general architectural concepts and
conformance certification criteria applicable to these
requirements.

mDmDomD™

EL-00070-00
VSRM.- Introduction
4

29-Apr-1988

'Page ,7
Digital Internal Use Only

GENERAL TERMINOLOGY

The following terminology is used throughout this document and
applies across each section.
coding interface ~ A software or hardware interface through which
bytes of character-coded information are passed between terminal
equipment and an application process across a host port, or
between terminal equipment and a printer across a printer port.
external interface - product interfaces between a terminal,
personal computer, or workstation, and a remote system.
Host Port - The coding interface between a terminal or terminal
process and an application process, whether the application
process is running inside the terminal or in a host computer.
internal interface - Product interfaces between a terminal
sub-system and softwa~e processes running within a terminal,
personal computer, or workstation.
Printer Port - The coding interface between a terminal or terminal
process and a printer.
receive - To accept coded character information across a coding
interface. service class - A set of functionally related terminal control
operations, associated by a common object type.
transmit - To transfer coded character information across a coding
interface.
user; terminal user - A person operating a terminal device for the
purpose of interacting with some component of a computer system or
network.

mDmDomD™

EL-00070-00
VSRM - Introduction

14-Apr-1989

.
Page 8
Digital Internal Use Only

The following Table of Contents presents an outline of this manual
and serves to point the reader to major areas of information. A
more detailed Table of Contents is available with each section.

CONTENTS

CHAPTER 1

DEC STD 070-1 VIDEO SYSTEMS REFERENCE MANUAL CONCEPTS AND CONFORMANCE CRITERIA

1.1

INTRODUCTION

1.2

STRUCTURE OF THE MANUAL

1.3
1.3.1
1. 3.2
1.3.3

ARCHITECTURAL STRUCTURE • • • • •
Virtual Terminals . . • • . • • •
Layers • • • • • •
Service Classes

1.4

SCOPE

1.5
1. 5.1
1.5.2
1.5.3

ARCHITECTURAL CONFORMANCE • • • •
Definitions . • • • • • • • • •
User Preference Features • • • •
Rules For Conformance
• • •

1.6
1.6.1
1. 6.2
1. 6.3

1-17
1-17

1.6.4

LEVEL 1 CONFORMANCE • • •
Conforming Products • • • • • •
Required Functions . . . • • . .
Extensions To Level 1 . . . . .
Level 1 User Preference Features .

1.7
1. 7.1
1.7.2
1. 7.3
1. 7.4

LEVEL 2 CONFORMANCE
. . •
Conforming Products . . . •
Required Functions . . • • •
Extensions To Level 2 . . • . .
Level 2 User Preference Features .

1-23
1-23
1-23
1-23
1-25

1.8

1. 8.1
1.8.2
1. 8.3

CERTIFICATION • • .
Certification Test Process •
The Waiver Process
Resolution Of Open Issues

1-27
1-28

1.9
1. 9.1

CHANGE HISTORY • • • . • • . • . .
Revision 0.0 To AX10 . . . . . .

mDmoomD™

1-5
• • 1-5

• 1-8
• 1-8
· 1-8
1-10

1-11

.. . . . .

1-12
1-12
1-14

1-15

1-18

1-20
1-22

1-26
1-28

1-30
1-30

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 9
Digital Internal Use Only

CONTENTS

CHAPTER 2

DEC STD 070-2 VIDEO SYSTEMS REFERENCE MANUAL SPECIFICATION PROGRAM STRUCTURE

2.1
2.1.1
2.1.2

INTRODUCTION • • • • • • . • • • • • • • • · • 2-4
Algorithmic Specification . . • . • • •
2-4
Use Of Pascal
• . • • • . • . . . . . • · . 2-4

2.2

SPECIFICATION PROGRAM STRUCTURE

2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7

SUMMARY OF STATE • • • • • . . . • •
Code Extension Layer - Parsing
Code Extension Layer - Graphics
.
Terminal Management
. . • •
Character Cell Display
.•.•
Keyboard P~ocessing
. . . . .
Printer Port Extension
. .
Extensions . • . . .
. . . .

2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5

EXECUTIVE PROCEDURES . .
Executive Loop . . . .
Event Handling Tables
Device Attributes
Device Status Report •
Set And Reset Modes

2-13
2-13
2-15
2-21
2-22
2-24

2.5
2.5.1
2.5.2

CHANGE HISTORY . . .
Rev 0.0 To AX10
....
Rev AX10 To AX11

2-28
2-28
2-29

· . 2-6
. . . . .
.....
. • . . .
. . . . .
.
.

.
.

2-7
2-7
2-8
2-9
2-10
2-12
2-12
2-12

A more detailed Table of Contents is available with each section.

~DmDDmDTM

EL-00070-00
VSRM - Introduction

14-Apr-1989

Page 10
Digital Internal Use Only

CONTENTS

DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE
EXTENSION LAYER

CHAPTER 3

3.1
3.1.1
3.1.2
3.1.3
3.1.4

I
I
I

I

r

..............

3-7
3-7
3-7
3-7
3-8

3.2

TERMINOLOGY

3.3
3.3.1
3.3.2
3.3.3
3.3.4

CHARACTER COOING DESCRIPTION
Character Codes • . • . •
7-Bit Character Sets • • • • • • .
8-Bit Character Sets • • • •
Control and Graphic Codes • • •

3-12
3-12
3-12
3-14
3-16

3.4

SPECIAL CHARACTERS

3-17

3.4.1
3.4.2
3.4.3
3.4.4

I
I
I
I

INTRODUCTION • • • • • • • • ••
• • • • •
Scope . . . . . . . . . . . .
... . .
National Replacement Character Set (NRCS)
Extension • • • • • • • • • •
•
8-Bit Interface Architecture Extension • • •
Relationship to Terminal Interface
Archi tecture (TIA).
• • •
•

2/0 (Space) • • • •
7/15'(Delete) • • •
10/0 • • • • • •
15/15 • • • • • • .

3-10

3-17
3-17
3-17
3-17

3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5

CONTROL CODE EXTENSION TECHNIQUES . . •
General Rules . . .
...
Escape Sequences • • . . • . • . .
Control Sequences . . . . • .
Control Strings
. . .
Parsing Algorithms . . • .

3.6
3.6.1
3.6.2
3.6.3
3.6.4

GRAPHIC CODE EXTENSION TECHNIQUES
3-59
Description of Shift Functions . •
3-59
Designating Character Sets . • • .
3-62
The User Preference Supplemental Set (UPSS) 3-62
Default D~signation and Invocation
3-63

3.7
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5

STATE DESCRIPTIONS . .
Control Sets
G-Sets • • •
In Use Table
• . .
Single Shift Functions
Environments

3-65
3-65
3-65
3-65
3-66
3-66

3.8

CONTROL OPERATIONS . • . .

3-68

momDomD™

3-18
3-18
3-22
3-23
3-28
3-31

EL-00070-00
VSRM - Introduction
3.8.1
3.8.2
3.8.3

14-Apr-1989

Page 11
Digital Internal Use Only

Announce Subset Of Code Extension
Facilities
Communications Environment
Select 7-Bit Cl Transmission
Select 8-Bit Cl Transmission
Shift Functions
Locking Shift Zero (Shift In)
Locking Shift One (Shift Out)
Locking Shift Two
Locking Shift Three
Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right
Single Shift Two
Single Shift Three

. .. · · ·· · ·· ·

··

· · ·
· ···

3-68
3-71

·······

· ·· ·

3-73

····
·
· · · ·
· · · ·

3-83
3-83
3-84
3-85
3-86

..·· ··
· · · ··
· ·
· ···
· ·· · ·
DOCUMENTS
·

3.9
3.9.1
3.9.2
3.9.3
3.9.4

CHANGE HISTORY
Revision 0.2 to 0.3
Revision 0.3 to AXI0
Revision AXI0 to AXll
Revision AXl1 to AX12

3.10

REFERENCED

·
·
·
·

· · · ·
· · · ·

3-88

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 12
Digital Internal Use Only

CONTENTS

DEC STD 0.70-4 VIDEO SYSTEMS REFERENCE MANUAL TERMINAL MANAGEMENT

CHAPTER 4

.

. . . . 4-4
• • . 4-4
4-5

4.1
4.1.1
4.1.2

INTRODUCTION •
Scope
• . • • .
Relationship To TIA

4.2

TERMINOLOGY

4.3
4.3.1
4.3.2
4.3.3

STATE DESCRI;PTIONS • . .
• . . . . . • . . 4-8
Device Identification
. . • •.
. . 4-8
Terminal State Declarations . • . . . . .
4-10
Status And Test
. • • •
4-16 .

4.4

DEVICE INITIALIZATION

4-17

4.5

CONTROL FUNCTIONS
. • .
Device Attributes (Primary)
...... .
Select Conformance Level . •
Device Attributes (Secondary)
Device Attributes (Tertiary) . . . • .
Identify Terminal . . • . . • . . • .
Secure Reset . . . .
. . . •
Soft Terminal Reset
. . . . . . . .
Device Status Report .
.....•..

4-22
4-22
4-27
4-29
4-31
4-33
4-35
4-37
4-41

4.6
4.6.1
4.6.2
4.6.3
4.6.4

CHANGE HISTORY • • . .
Revision 0.0 To 0.1
Revision 0.1 To AX10 .
Rev AX10 To AX11 .
Rev AX11 To AX12 .

4-44
4-44
4-45
4-46
4-46

4.7

REFERENCE STANDARDS

•

e

•

•

It

. . 4-7

•

,e

•

4-50

A more detailed Table of Contents is available with each section.

~DmDDmDTM

EL-00070-00
VSRM - Introduction

Page 13
Digital Internal Use Only

29-Apr-1988

CONTENTS

CHAPTER 5

DEC STD 070-5 VIDEO SYSTEMS REFERENCE MANUAL CHARACTER CELL DISPLAY

5.1.1
5.1. 2
5.1. 3

INTRODUCTION •
Purpose
. • • .
Scope
• . . • • • •
Relationship To TIA

5.2
5.3

REFERENCE STANDARDS
TERMINOLOGY • . •

.

. 5-9
· 5-9

5.4
5.4.1

STATE DESCRIPTIONS . • ' . • . • • • • . • . .
Display Logic
Active Position And Cursor . • • • . . . .

5-16
5-16
5-16

5.1

5.4.2

5.4.3
5.4.4
5.4.5
5.4.6

5.4.7
5.4.8

5.4.9
5.4.10

.
.
.

.
•
·
.

5-6
5-6
5-6
5-7

•

5~18

Graphic Character Sets .
. . .
Character Renditions
..••
. •.
Character Attributes
. . • . . .
Line Renditions
.•.....
Cursor Save Buffer •
.•.•...•.
Audible Indicator . . • . • . • . . . . .
Horizontal Tabulation . . . . • .

5-21

Mode s

•

.

.

.

.

.

.

.

.

.

.

.

•

.

.

.

.

5-22
5-24
5-25

5-25
5-26
5-26

5.5

STATE SUMMARY

5-27

5.6

SUMMARY OF STATE VARIABLES .

5-29

5.7
5.7.1

INTERNAL
End Of
Scroll
Scroll

5-30
5-30
5-30
5-31

5.7.2

5.7.3

FUNCTIONS AND PROCEDURES
Line
Up
Down

5.8

SCROLLING REGION . . ~ .
Set Top and Bottom Margins

5-32

5.9

CHARACTER SET SELECTION

5-34

5.10

DISPLAY ATTRIBUTES . . .
Select Graphic Rendition
Select Character Attribute
Single width Line
Double Width Line
Double Height Line

5-39

5.11

MODE STATES
Set/Reset Column Mode
Set/Reset Scrolling Mode
Set/Reset Screen Mode

5-47

mDmDomD™.

EL-00070-00
VSRM - Introduction

29-Apr-1988

Set/Reset
Set/Reset
Set/Reset
Set/Reset

Page 14
Digital Internal Use Only

Origin Mode
Insert/Replacement Mode
New Line Mode
Text Cursor Enable Mode

5.12

GRAPHIC CHARACTER INSERTION AND REPLACEMENT
Insert or Replace Graphic Character

5-56

5.13

CURSOR MOVEMENT • • • • • • • • •
Cursor Up
Cursor Down
Cursor Forward
Cursor Backward
Cursor Position
Horizontal/Vertical Position
Cursor Position Report

5-58

CURSOR SAVE AND RESTORE
Save Cursor.
Restore Cursor

5-69

5.15

CONTROL CODES • . • •
warning Bell
Back Space
Horizontal Tab
Line Feed
Vertical Tab
Form Feed
Carriage Return
Substitute
Index
Reverse Index
Next Line
Horizontal Tabulation Set
Tabulation Clear

5-73

5.16

ERASE, DELETE, AND INSERT . . . . . . . . .
Erase Character
Delete CHaracter
Insert Character
Erase in Line
Selective Erase in Line
Delete Line
Insert Line
Erase in Display
Selective Erase in Display

5-87

. 5.14

mDmDomD™

EL-00070-00
VSRM - Introduction
5.17
5.17.1
5.17.2
5.17.3

29-Apr-1988

CHANGE HISTORY . • • •
Rev 0.4 To 0.5 • . .
Revision 0.5 To AX10
Rev AX10 To AX11 . .

Page 15
Digital Internal Use Only
. .

.

.

.

.

.

.

. 5-102

. . . . • • • 5-102
. • . . . • . 5-104
. .

.

.

.

.

.

.

. 5-107

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 16
Digital Internal Use Only

CONTENTS

CHAPTER 6

DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING

6.1
6.1.1
6.1.2
6.1.3
6.1.4

•••••
INTRODUCTION • • • • • •
Keyboard Overview
• • • • • • •
Scope • • • • • • • • • • • • • • •
Relationship To TIA
• • • •
Coding Interface • • • . • .

6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6

CONFORMANCE REQUIREMENTS • .
Level 1 Conformance Requirements
Level 2 Conformance Requirements
L~vel 3 Conformance Requirements
Level 1 Operation • • • . • • .
Level 2 And Level 3 Operation
Keyboard Character Encoding • •

6.3

REFERENCED STANDARDS AND RELATED PUBLICATIONS 6-23

6.4

TERMINOLOGY

6-25

6.5
6.5.1
6.5.2
6.5.3

PHYSICAL KEYBOARD DESCRIPTION • • • . . • .
Physical Keyboard Map • • • • • . • • • •
Keyboard Map By Logical Key Name .
Recommended Labeling For System Label

6-28
6-28
6-30

strips . . . . .
6.6
6.6.1
6.6.2
6.6.3
6.6.4
6.6.5
6.7
6.7.1
6.7.2
6.7.3
6.7.4
6.7.5
6.7.6

•
•
•
.

•
•
•
.

• • 6-7
• • 6-7
• 6-12
• 6-13
• 6-14

•
•
•
.

. . . . . . . . . . ..

KEYBOARD OPERATION AND STATE THAT AFFECTS
USER INTERACTION . . . . . .
..... .
Keyboard Output Silo . . .
Keyboard Action Mode • . •
Set/Reset Keyboard Action Mode
Auto Repeat Mode . • . . . •
Set/Reset Auto Repeat Mode
Visual Indicators . . . . .
Audible Indicators . • • • .
KEYBOARD STATE AND OPERATING MODES THAT
AFFECT KEYBOARD ENCODING . . . . . . . .
VT52 And VT100 (Level 1) Emulation Mode
VT200 (Level 2.) And VT300 (Level 3)
Emulation Mode • • • . . . • • • . . • . .
C1 Transmission Mode • . • . . . • . . . .
Character Set Mode • . . • . .
....
Set/Reset Character Set Mode
Keyboard Usage Mode
. . . .
Set/Reset Keyboard Usage Mode
Keyboard Dialect . • . .

momDomD™

6-15
6-16
6-17
6~18

6-19
6-20
6-21

6-36
6-37
6-37
6-38
6-40

6-44
6-45
6-48
6-49
6-50
6-50
6-51
6-54

6-58

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 17
Digital Internal Use Only

6.8
6.8.1
6.8.2

CURSOR KEYS
Cursor Key Mode
• • • .
Cursor Key Codes
..••
Set/Reset Cursor Key Mode

6-60
6-60
6-61

6.9
6.9.1
6.9.2

NUMERIC KEYPAD KEYS • • • • • . • •
Keypad Application/Numeric Mode • • •
Enter Key Operation •• . • • • • • •
Set Keypad Application Mode
Set Keypad Numeric Mode
Set/Reset Numeric Keypad Mode

6-63
6-63
6-65

6.10

EDITING KEYPAD KEYS

6-69

6.11

APPLICATION FUNCTION KEYS

6-70

6.12
6.12.1
6.12.2
6.12.3
6.12.4
6.12.5

LOCAL FUNCTION KEYS . ••
Hold Screen Key Operation
Print Screen Key Operation
Set-Up Key Operation • • •
Local Function Key F4 • •
Break Key Operation • . •

6.13
6.13.1
6.13.2
6.13.3
6.13.4
6.13.5
6.13.6
6.13.7
6.13.8
6.13 .• 9

MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS
Control Key Operation
Shift Key Operation
Lock Key Operation .
SPACE Bar Operation
Return Key Operation •
Tab Key Operation •
Delete Key Operation
Compose Key Operation . . . . . . • .
Non-Spacing Diacritical Keys .

6-75
6-75
6-77
6-77
6-79
6-79
6-80
6-80
6-80
6-80

6.14
6.14.1

MAIN KEY ARRAY - GRAPHIC CHARACTER KEYS
North American Keyboard (LK201-EE US/UK,
LK201-NA, LK201-AA)
.•.....
British Keyboard (LK201-EE US/UK)
British Keyboard (LK201-AE)
..•
Flemish Keyboard (LK201-AB)
...
Canadian (French) Keyboard (LK201-AC)
Danish Keyboard (2nd, LK201-ED)
•••
Danish Keyboard (1st, LK201-AD)
. . .
Finnish Keyboard (3rd, LK201-NX) . . . . .
Finnish Keyboard (2nd, LK201-NF) .
Finnish Keyboard (1st, LK201-AF).
..
Austrian/German Keyboard (2nd, LK201-NG) .
Austrian/German Keyboard (1st, LK201-AG) .
Dutch Keyboard (2nd, LK201-NH) . .
..
Dutch Keyboard (1st, LK201-AH) . .
..
Italian Keyboard (LK201-AI)
.......
Swiss (French) Keyboard (LK201-AK) . . . .
Swiss (German) Keyboard (LK201-AL) . . . .

6-81

6.14.2
6.14.3
6.14.4
6.14.5
6.14.6
6.14.7
6.14.8
6.14.9
6.14.10
6.14.11
6.14.12
6.14.13
6.14.14
6.14.15
6.14.16
6.14.17

•
•
•
•
•

•••••
• • • • •
• • • • •
• • • • •
•
•

6-72
6-72
6-73
6-73
6-73
6-74

6-83
6-85
6-87
6-89
6-91
6-93
6-95
6-97
6-99
6-101
6-103
6-105
6-107
6-108
6-110
6-112
6-114

EL-OO'070-00
VSRM - Introduction

Page 18
Digital Internal Use Only

29-Apr-1988

Swedish Keyboard (2nd, LK201-NM) • • • • •
Swedish Keyboard (1st, LK201-AM) ••
•
Norwegian Keyboard (2nd, ~K201-EN) • • • •
Norwegian Keyboard (1st, LK201-AN)
Belgian/French Keyboard (LK201-AP).
.
Spanish Keyboard (LK201-AS).
• •••
Portuguese Keyboard (LK201-AV) •
•••
DECmate/WPS Main Key Array • . • • • • • •

6-116
6-118
6-120
6-122
6-124
6-126
6-128
6-130

COMPOSE OPERATION
• . • • • • • • • • •
Compose with The Use Of The COMPOSE Key •
Compose With The Use Of Non-Spacing
Diacritical Marks • • • • • • . • • • • •
Composing Arbitrary 8-bit Characters
6.15.3
(VT330/340 Only, Not Mandatory) • • . . .
Use Of The COMPOSE Key When A Compose Is
6.15.4
Already In Progress • • • • • • • • • • •
Use Of The DELETE Key When A Compose Is
6.15.5
Already In Progress • • • • • • • • . . •
6.15.6
Keystrokes .Which Abort Compose Immediately
6.15.7
Keystrokes Which 00 Not Affect Compose
Directly • • • • • • • • • • • • • • • • •
6.15.8
Order And Case Within Compose Sequences .
6.15.9
Composition Conventions • • • • • • • • •
6.15.10
8-bit Characters Mode Valid Compose
Sequences • . . . • • • • • • • • • • • •
6.15.11
7-bit Characters Mode Valid Compose
Sequences • • • . • • . • • • .
. • •

6-134
6-134

6.14.18
6.14.19
6.14.20
6.14.21
6.14.22
6.14.23
6.14.2.4
6.14.25
6.15
6.15.1
6.15.2

6-135
6-136
6-138
6-138
6-139
6-140
6-140
6-141
6-149
6-157

6.16

CONTROL CODES AND KEYSTROKES .

• 6-170

6.17

SUMMARY OF MODES . . • • .

• 6-172

6.18
6.18.1
6.18.2
6.18.3
6.18.4
6.18.5

CHANGE HI&TORY . . . •
Revision 0.0 To 0.1
Revision 0.1 To 0.2
Revision 0.2 To AX10
Revision AX10 To AX11
Revision AX11 To AXl2

. . .

.

. .

.

.

· 6-173
. 6-173

. . . . . 6-176
· 6-179
. • . . . . . • . . 6-181
.

. . .

. .

. .

.

. 6-183

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

Page 19
Digital Internal Use Only

29-Apr-1988

CONTENTS

CHAPTER 7

7.1
7.2
7.3
7.3.1
7.3.2
7.3.3
7.3.4
7·.3.5
7.3.6
7.3.7
7.3.8
7.3.9
7.3.10
7.3.11
7.4
7.4.1
7.4.2
7.4.3
7.5
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.5.7
7.5.8

DEC STD 070-7 VIDEO SYSTEMS REFERENCE MANUAL PRINTER PORT EXTENSION
. • • . . . • 7-5
INTRODUCTION • • . . • • • .
TERMINOLOGY . . • . • • • . • • • • • • • . • 7 - 5
STATE DESCRIPTIONS . • . . .
. • • 7-6
Printer Port Flow Control
. . . 7-6
Printer Port Status . • .
...
. . 7-8
Printer Port Status On Virtual Terminals . . 7-9
Printer Port Communications Environment
7-9
Printer To Host Communications .
. . . . 7-9
Printer Controller Mode
. • • . . . . .
7-10
Auto Print Mode
7~11
Print Form Feed Mode . . .
7-12
Print Extent Mode
o.
7-12
Local Controller Mode (Not Mandatory)
7-12
Printer Style
7-13
TRANSMITTING PRINT DATA
7-13
National Replacement Character Sets . . . 7-18
Display Attributes . . .
7-19
-Trailing Spaces
.
7-19
FALLBACK PRESENTATION OF GRAPHIC CHARACTERS
7-20
NRC Fallbacks
7-20
DEC Special Graphics Fallbacks . . .
7-20
DEC Supplemental Fallbacks
7-21
ISO Latin-l Supplemental Fallbacks .
7-23
DEC Technical Character Set Fallbacks
7-25
DRCS Fallbacks
7-28
User Preference Supplemental Set Fallbacks 7-28
Control Representation Mode Fallbacks (Not
Manda to ry) .
7-28
PRINT OPERATIONS
7-30
Print Page Or Scrolling Region
7-30
·Print Screen (Not Mandatory).
.
7-30
Print All Pages (Guideline)
. . . . . . . 7-30
Print Line
..
7-31
CONTROL FUNCTIONS
. . . . .
. . . .
7-32
GRAPHICS PRINTING . . . . . . .
7-58
Graphics Print Operations
. . .
7-58
Sixel Printing . . .
7-58
CHANGE HISTORY . . . .
. . . . .
7-65
Revision 0.0 To AX10 .
. .....
7-65
Rev AXIO To AXll .
. . . .
7-65
Rev AXll To AX12 . .
...
7-65
0

0

0

•

•

0

•

0

0

0

•

0

0

•

0

0

0

0

•

0

•

•

0

0

• • •

0

•

0

0

0

0

0

0

0

0

0

•

0

.0

•

•

•

0

• • • •

•

•

•

•

0

0

0

0

•

•

0

0

0

0

•

0

••

0

0

•

0

0

•

0

•

0

0

7.6
7.6.1
7.6.2
7.6.3
7.6.4
7.7
7.8
7.8.1
7.8.2
7.9
7.9.1
7.9.2
7.9.3

0

0

0

•

0

0

0

0

•

0

0

•

0

•

0

•

•

•

•

•

•

•

•

•

0

•

•

0

•

•

•

•

•

•

•

•

•

•

•

•

•

0

• •

0

•

•

••

0

•

•

•

• • •

0

•

•

0

•

•

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page -20
Digital Internal Use Only

CONTENTS

CHAPTER 8

8.1
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.1.6
8.1.7
8.1.8

DEC STD 070-8 VIDEO AND PRINTER STANDARDS
REFERENCE MANUAL - REGIS GRAPHICS' EXTENSION
INTRODUCTION • • • • • • •
Purpose • • • • • • • •
Scope

• . • • • • • • .

8-10
8-10
8-10
8-10

. .. • .

Implementation of ReGIS
Reference Standards and Related
Publications • . • . • . • .
Terminology • • • . • . • •
Modeling the Graphics System
Range of Intended Devices
• • •
ReGIS Overview • • • • • • • • •

.'

8-11
8-12
8-15
8-19
8-20

8.2
8.2.1
8.2.2
8.2.3

ReGIS PHILOSOPHY • • • • • •
Transportability Concepts • • •
Syntax Considerations • • .
Semantic Considerations

8-22
8-22

8.3
8.-3.1
8.3.2
8.3.3

BASE LOGICAL GRAPHIC DEVICE
Viewing Area Definition
Viewing Point Attributes •
General Drawing Process

8-32

8.4
8.4.1

ReGIS GENERAL SYNTAX
.•..••••••
Alphabet • • • . . • • • . • • • • • •
General Grammar • . • • . • • .
...
Argument Types • • • . • . • .
. . .
Macrograph Strings • . • . .
.....
Position Arguments . . . . . . . • . .
Extensibility Requirements .
• ..

8.4.2
8.4.3
8.4.4
8.4.5

8.4.6
8.5
8.5.1

8.5.2
8.5.3
8.5.4

8.5.5
8.5.6,

8.5.7
8.5.8
8.6

8.6.1
8.6.2
8.6.3
8.6.4
8.6.5

mDmDomD™

8-29
8-31
8-33
8-35
8-36
8-37
8-37
8-39
8-43

8-49
8-52

8-56

BASE ReGIS INSTRUCTIONS
8-58
Screen Instruction . . . • . . . • . . . . 8-58
Position Instruction • • .
8-67
writing Attributes Instruction
. . . 8-69
Vector Instruction
. . • • • . • • 8-73
. . . 8-74
Curve Instruction . . . . • •
Text Instruction . . . . . .
· . . . 8-81
Report Instruction
.•..
8-87
Fill Instruction .
.•....
8-90
THE EXTENDED LOGICAL GRAPHICS DEVICE
Dimensional Displays
. . .
Gray Scale and Color • . . . •
Text Attributes . . . . . . . . .
Area Attributes
. . •
Dynamic Attributes .
. . .

. . • •
. • . .

8-95
8-95
8-95
· • . . 8-100
· . . . 8-102
. . 8-102

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 21
Digital Internal Use Only

8.7
8.7.1
8.7.2
8.7.3
8.7.4
8.7.S

REQUIRED EXTENSIONS FOR RASTER DEVICES • • •
Screen Instruction • . • • ••
••••
Writing Attributes Instruction
•••
Text Instruction
•••.•••••.••
Report Instruction
•••••
• .
Load Character Set Instruction
. •

8-103
8-104
8-107
8-112
8-118
8-119

8.8
8.8.1
8.8.2
8.8.3
8.8.4
8.8.S
8.8.6

OPEN EXTENSIONS TO ReGIS • . • •
• •
Screen Instruction • • • • • • • • • • • •
Position Instruction • • • • •
• •
Writing Attributes Instruction
• •
Text Instruction . • • • • . • • • • . . .
Report Instruction
• • • • •
Flood/Fill Instruction •
•..
•.

8-122
8-122
8-131
8-132
8-134
8-135
8-138

8.9
8.9.1
8.9.2

INSTALLATION ENVIRONMENTS
ANSI Encoding • • • • •
Bounded Systems • • • •

8.10
8.10.1
8.10.2
8.10.3
8.10.4
8.10.S
8.10.6
8.10.7
8.10.8
8.10.9

ReGIS COMMAND COMPLEMENT •
• • • • .
Screen Instruction • . .
• • . . •
Position Instruction • •
• ••..•.
Writing Attributes Instruction . • . • . •
Vector Instruction •
. • • ..
Curve Instruction • • •
•••
.•
Text Instruction • • • •
.•.
••
Report Instruction • • •
••••.••
Fill/Flood Instruction • .
Load Character Set Instruction . • . . • .

• • • • • 8-143
. 8-143
• • • . . 8-145
8-146
8-147
8-148
8-149
8-150
8-151
8-152
8-153
8-154
8-155

A more detailed Table of Contents is available with each section .

mDmDomD™

•

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 22
Digital Internal Use Only

CONTENTS

DEC STD 070-9 VIDEO AND PRINTER SYSTEMS REFERENCE
MANUAL - SIXEL GRAPHICS EXTENSION

CHAPTER 9

9.1
9.1.1
9.2
9.3
9.4
9.4.1
9.4.2
9.4.3
9.5
9.6
9.6.1
9.7
9.7.1
9.7.2
9.7.3
9.8
9.8.1
9.8.2
9.9
9.9.1
9.9.2
9.9.3
9.9.4
9.10
9.11
9.11.1
9.11.2
9.11.3
9.12
9.13
9.13.1
9.13.2
9.13.3
9.13.4
9.14
9.14.1

INTRODUCTION • • • • • • • • • • • • • • • • • 9-4
Overview . . . . . . . . . . . . . . . . . . 9-4
GOALS OF THE SIXEL PROTOCOL • • • • • • • • • 9-5
TERMINOLOGY • • •
••
• • • • 9-6
LEVELS AND EXTENSIONS • • • .
• • • • • • 9-7
Levell. • • • . • • • • . • •
• . 9-8
Level 2 • • • • •
• • • • • • • 9-8
Extension - Color • • • • •
•••
• 9-8
SIXEL PRINTING . • • • • • • • • • • • • •
9-9
PROTOCOL STRUCTURE • • • • • • • • • • • • • • 9-9
Sixel Control String • . • • • . • • • • • 9-10
FORMATING INFORMATION
• . • . • . • 9-12
Macro Parameter
• . • . • • • . • • • 9-12
Background Select • • • • •
• • • 9-12
Horizontal Grid Size
• • • • •
9-13
PICTURE DEFINITION • • • . .- .
• • • 9-13
Sixel Commands .
.. • •
.••
9-13
Sixel Data • • • • • . • • • • • • • • • • 9-21
CODING ISSUES
• • • • • • •
9-25
CO Codes • • • • • • • • • • • • • • • • • 9-25
GL Codes • ••
• • • • • . • • • • • • 9-25
C1 Codes • • •
• • • • . . • • . • . • 9-25
GR Codes • • • • . . . • • . . • • . • . . 9-25
INITIAL STATES • • • • .
• • • •
9-26
ANSI TEXT INTERACTIONS . . • . •
9-26
Entering Sixel Mode
• . • . . • . . . • • 9-26
While In Sixel Mode
. . • . . . . • .
9-27
Exi ting Sixel Mode .
. . . . .
9-28
FALLBACK . . . • •
. . . . . . • . • . . 9-28
DEVIATIONS • .
. . • . • . • . .
9-31
VT125 . • •
. • • • • • . • .
9-31
VT240 . . •
• • .
9-31
LASO

•

•

•

•

.

•

•

.

.

•

•

•

.

LA100 And LA210
• •.
..•.
CHANGE HISTORY . • . . . . • .
••.
Revision AXIl To AX12
. . . .

•

.

9-32

9-32
9-33
9-33

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 23
Digital Internal Use Only

CONTENTS

DEC STD 070-10 VIDEO SYSTEMS REFERENCE MANUAL DYNAMICALLY REDEFINABLE CHARACTER SETS EXTENSION

CHAPTER 10

10.1

INTRODUCTION .

10-4

10.2

TERMINOLOGY

10-5

10.3
10.3.1
10.3.2
10.3.3
10.3.4
10.3.5

FUNCTIONAL DESCRIPTION . . . . . . .
Loading Fonts . . . . . . • .
Associating Fonts With Character Sets
Designating And Invoking· Fonts .
Note On Future Use Of Fonts
Cell Matrix Size, Set Size, And Font Usage

10-6
10-6
10-6
10-6
10-6
10-7

10.4
10.4.1
10.4.2
10.4.3

10-8
CONTROL FUNCTIONS . • . . • .
Down Line Load (Font)
Introducer Sequence Format .
. . . . . 10-10
Command String Format
· . . . . . . 10-lS
Algorithm . . . . . . . . . .
. . 10-20

10.5
10.5.1
10.5.2
10.5.3

ORCS FONT
Example
Example
Example

10.6
10.6.1
10.6.2
10.6.3

CHANGE HISTORY
.....
· . . ..
Revision 0.0 To Ax10
. . . .
Rev AX10 To AX11
.....
. .
Rev AX11 To AX12 . . .
.

LOADING EXAMPLES . . .
....
One
· . . . . • .
Two
. .
Three
· ......

10-28
10-28
10-29
10-30

10-31
. 10- 31
. 10-31
. 10-31

A more detailed Table of Contents is available with each section.

~DmDDmDTM

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 24
Digital Internal Use Only

CONTENTS

CHAPTER 11

DEC STD 070-11 VIDEO SYSTEMS REFERENCE MANUAL USER DEFINABLE KEYS EXTENSION

11.1

INTRODUCTION .

11-4

11.2
11.2.1
11.2.2
11.2.3
11.2.4

FUNCTIONAL DESCRIPTION • • • . . . • . . . .
Programmable Keys
. • . . . . . • . .
Default Definitions . • .
Key Definitions . . . •
Lock Contro~ . • .
..•.

11-5
11-5
11-5
11-5
11-6

11.3
11.3.1
11.3.2
11.3.3
11.3.4

CONTROL FUNCTIONS • . • . • •
11-7
Report UDK Status
User Defined Keys
Introducer Sequence Format .
. • . . . 11-11
Command String Format . . . . . • . . • . 11-13
Error Conditions . • • . • . . . . .
. 11-15
Algorithm . . . . . . . . .
. . . . . 11-16

11.4

UDR KEY DEFINITION EXAMPLES

11.5
11.5.1

CHANGE HISTORY
. . • . • .•
. . 11-23
Revision 0.0 To AX10 . . . .
. . • . . 11-23

. . 11-22

A more detailed Table of Contents is available with each section.

~DmDamDrM

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 25
Digital Internal Use Only

CONTENTS

CHAPTER 12

12.1
12.1.1
12.1.2
12.2
12.2.1
12.2.2
12.2.3
12.2.4
12.2.5
12.2.6
12.2.7
12.2.8
12.2.9

DEC STD 070-12 VIDEO SYSTEMS REFERENCE MANUAL TERMINAL SYNCHRONIZATION

INTRODUCTION • . • • • • • • •
.••
Scope
• . • • •
. • •
Relationship To TIA
. • . . • • • ..
XON/XOFF FLOW CONTROL . • .
••••
Protocol • • . . . . .
. . . . . •.
XON And XOFF Points . . . .
.....
Receive Buffer Size
. . . . . . .
Buffer Overflow Prevention • . . . . • . .
Initialization • • • • • • • . . . . . . .
Other Events That Affect XON/XOFF State .
Reserved Characters . . • . . . • . • . .
Terminal Keyboard Synchronization • • . .
Terminal Screen Synchronization (Hold
Screen)
•....••.
. ...
·
12.2.10
Emergency Messages .
. . . . • .
Implied XOFF Rule
. . . .
12.2.11
·
BREAK • • • . . . .
. . . . ·
12.3
The Break Signal .
. . .
12.3.1
·
When Break May Be Transmitted . . .
12.3.2
·
Operation Of The Break Key .
. . .
12.3.3
12.3.4
Receipt Of Break . . . . . . . . . .
·

12-4
12-4
12-4
12-4
12-4
12-7
12-8
12-8
12-11
12-11
12-12
12-12
12-12
12-13
12-13
12-14
12-14
12-15
12-15
12-15

A more detailed Table of Contents is available with each section.

EL-00070-00
VSRM - Introduction

29-Apr-l988

Page 26
Digital Internal Use Only

CONTENTS

APPENDIX A

DEC STD 070-0A VIDEO SYSTEMS REFERENCE MANUAL VTS2 EMULATION

A.l
A.l.l
A.l.2

INTRODUCTION
Purpose
Scope

A.2
A.2.l
A.2.2
A.2.3

STATE DESCRIPTIONS
Display • • • •
Active Position
Ta~ Stops, Fixed

A.3

PARAMETERS AND CONSTANTS

A.4

SUMMARY OF STATE VARIABLES •

A.S
A.S.l
A.S.2
A.s.3
A.s.4
A.s.S
A. 5.6

COMMAND SUMMARY • • • • • • • .
Required Commands . • . • • •
Character Set Extension . . •
VTs2 Printer Port Extension •
ANSI Printer Port Commands •
Undefined Functions • . ••
Programming Guidelines • . • .

A.6

GRAPHIC CHARACTER REPLACEMENT
Replace Graphic Character

A-l2

A.7

CONTROL FUNCTIONS . . • . .
Identify
Enter VTS2 Emulation Mode
Exit VTs2 Emulation Mode
Enter Alternate Keypad Mode
Exit Alternate Keypad Mode
Enter Graphics Mode
Exit Graphics Mode
Cursor Up
Cursor Down
Cursor Right·
Cursor Left
Cursor Home
Direct Cursor Address
Back Space
Horizontal Tab
Line Feed
Carriage Return
Reverse Line Feed
Erase To End of Line
Erase To End of Display

A-l3

mDmDomD™

. . . . . A-S
. . .
. . A-S
. . . . . . . A-S

•
• • • • •
• • •
•

·

·
·

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

A-6
A-6
A-7
A-7

A-8
•. A-8
• • • •
• A-9
.
A-9
• • • •
· A-9
• . . • . . · A-9
• • • • . A-lO
•••
A-ll
. • • . A-Il

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 27
Digital Internal Use Only

A.8
A.8.l

EXTENSIONS TO THE VT52 EMULATION ARCHITECTURE A-36
Print Functions . . . • . • • • • . • • • A-36
Enter Auto Print Mode
Exit Auto Print Mode
Enter Printer Controller Mode
Exit Printer Controller Mode
Print Cursor Line
Print Screen

A.9
A.9.l
A.9.2

CHANGE HI STORY • . . . . • . . . . . . • . •
Revision 0.3 To Rev 1.0 . . . • • . . . .
Rev AX10 To Axll ". . . . .

A-43
A-43
A-44

A more detailed Table of Contents is available with each section.

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 28
Digital Internal Use Only

CONTENTS

APPENDIX B

DEC STD 070-0B VIDEO SYSTEMS REFERENCE MANUAL PROGRAMMER'S GUIDE

B.1
B.1.1

INTRODUCTION
Scope

B.2
B.2.1

GENERAL PROGRAMMING GUIDELINES •
. • • B-6
Levels Of Abstraction
• • • • . • . • • B-6

B.3
B.3.1

COMMUNICATION CONTROLS
Text Attributes

B.4
B.4.1
B.4.2

CONTROL CODE EXTENSION TECHNIQUES • • .
• B-9
Designing Control Sequences • • • • • • . • B-9
Termiria1 Initialization • • • • . • . • . B-10

B.s
8.5.1
B.s.2
B.5.3
B.5.4

TERMINAL MANAGEMENT
Device Identification
Device Control
.•.
Device· Status And Test
Text Cursor Enable Mod~s

B-13
B-13
8-13
B-15
8-15

B.6

LOCAL FUNCTIONS

B-16

B~7

SYNCHRONI~ING

8-16
8-16
B-16

ReGIS GRAPHICS PROGRAMMING . . . . .
Syntax • • • . . • . •
The Writing Command
Screen Instruction . • • . . . . . • .
Macrographs • . . . . .
Macrograph Constructs
Macrograph Invocation
Macrograph Storage
Macrograph Utility . • . • • • . . • .
The Text Command
Color Mapping . . • .
Integration Of Graphics And Text .

8-17
8-17
8-21
8-25
8-26
8-26
8-27
8-27
8-28
8-34
8-39
8-40

B.7.1
B.• 7.2
8.8
B.8.1
8.8.2
B.8.3
B.8.4
8.8.5
B.8.6
B.8.7
B.8.8
B.8.9
8.8.10
B.8.11

..........

• • • B-5

THE APPLICATION AND TERMINAL
Auto Repeat • • • • • • . . • . •
Typing Ahead
..••.•

· B-s

• B-8
· B-8

A more detailed Table of Contents is available with each section.

mDmDomD™

EL-00070-00
VSRM - Introduction

Page 29
Digital Internal Use Only

29-Apr-l988

CONTENTS

APPENDIX C

DEC STD 070-0C VIDEO SYSTEMS REFERENCE MANUAL
PRODUCT REFERENCE

C.l

PRODUCT/ARCHITECTURE MATRIX

C.2

RAINBOW lOOA COMPUTING TERMINAL /

C.3

DECMATE II WORD PROCESSING STATION /
20-JAN-83 . . . . . . . . . . . . .

C-l2

C.4

PROFESSIONAL COMPUTING TERMINAL /

C-l9

C.s

VT240/VT24l TERMINAL /

C.6

VAXSTATION WORKSTATION /

C.7

VT220 VIDEO TERMINAL /

. C-4
07-JAN-83

20-APR-83

l4-NOV-83 . •
lO-JUL-84

27-0CT-84 .

. C-S

C-26
C-33

.

C-39

A more detailed Table of Contents is available with each section.

'~D~DDmDTM

EL-00070-00
VSRM - Introduction

29.-Apr-1988

Page 30
Digital Internal Use Only

CONTENTS

APPENDIX 0

DEC STD 070-00 VIDEO SYSTEMS REFERENCE MANUAL DOCUMENTED EXCEPTIONS

0.1

INTRODUCTION • •

0.2

RESET TO INITIAL STATE

0.3
0.3.1
0.3.2

ANSWERBACK • . . • . . •
Description • •
Control Function • .

0.4

DEVICE TEST AND STATUS •

0.5

SEND/RECEIVE MODE

0-12

0.6
0.6.1
0.6.2

AUTO WRAP MODE • .
Description
Control Function

0-13
0-13
0-15

0.7
0.8

CONTROL REPRESENTATION MODE
SCREEN ALIGNMENT • • •

0-16
0-18

0.9

LOCAL FUNCTION KEYS

0-20

0.10
0.10.1

CHANGE HISTORY . • •
Rev AX10 To AX11 .

0-22
0-22

• 0-4
. • 0-5
· 0-9
· 0-9
0-10

...

0-11

A more detailed Table of Contents is available with each section.

momDomD™

EL-00070-00
VSRM - Introduction
5

29-Apr-1988

Page 31
Digital Internal Use Only

REFERENCED DOCUMENTS

The following corporate, national, and international standards
apply to the interfaces defined within DEC STD 070 and are
referenced herein.
Digital Standards
EL-00052-00

DEC STD 052-0 Operational Requirements
for Serial Terminals and Computer
Interfaces Operating as DTEs Connected
to EIA RS-232-C or CCITT V.28 Modems

EL-00052-01

DEC STD 052-1 Operational Requirements
for Serial Terminals and Serial System
Interfaces Operating as DTEs Connected
to EIA RS-232-C or CCITT V.28

EL-00070-01

DEC STD 070-1 Video Systems Reference
Manual - Concepts and Conformance Criteria

EL-00070-05

DEC STD 070-5 Video Systems Reference
Manual - Ch.racter Cell Display

EL-00070-06

DEC" STD 070-6 Video Systems Reference
Manual - Keyboard Processing

EL-00070-07

DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension

EL-00107-00

DEC STD 107-0 Ditigal Standard for
Terminal Keyboards - Standard Keyboard
Layouts

EL-00138-00

DEC STD 138-0 Registry of Control
Functions for Character-Imaging Devices

EL-00169-00

DEC STD 169-0 DEC Standard Coded
Graphic Character Sets for Hardware
and Software

Copies of Digital Standards Can be obtained from Standards and
Methods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, or CTS1-2/D4.
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1908

paqe 32
Diqital Internal Use Only

other Diqital Documents
A-SP-LK200-A-0
A-SP-LK201-A-2

LK200 Functional Specification
LK201 Keyboard Desiqn Specification

~pecifications

are available from any Microfilm Reference File
(35mm aperture "tub").

ANSI And ISO Standards

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I.
I
I
I
I

ANSI X3.4 - 1986

American National Standard Code for
Information Interchange (ASCII character
set)

ANSI X3.41 - 1974

American National Standard Code Extension
Techniques for use with the 7-Bit Coded·
Character Set of the American National
Standard Code for Information Interchange

ANSI X3.64 - 1979

Additional Controls for use with American
National Standard Code for Information
Interchange·

ANSI X4.23 - 1982

Keyboard Arrangement for Alphanumeric
Machines

ANSI ·X3.122-1986
(IS8632-l986)

Computer Graphics Metafile

ANSI X3.124-1985
(IS7942-1985)

Graphical Kernel System (GKS)

dpANS X3.134.1-1985

8-bit ASCII Structure and Rules

dpANS X3.134.2-1985

7-bit and 8-bit ASCII Supplemental'
Multinational Graphic Character Set

ISO 646

Information Processing /
7-Bit Coded Character Set
for Information Interchange

ISO 2022:1986

Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques

mDmDomD™

EL-00070-00
VSRM - Introduction

29-Apr-1988

Page 33
Digital Internal Use Only

ANSI AND ISO STANDARDS (Continued)
ISO 6429:1988

Information processing I
Control Functions for Coded Character Sets

(unnumbered)

ISO Register of Coded Character Sets
for Use with Escape Sequences

ISO 8859-1:1987

Information Processing I
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;

Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries and the American National Standards Institute,
1430 Broadway, New York, NY 10018, telephone (212) 354-3300 X479.

~DmDDmDTM

EL-00070-00
VSRM - Introduction

mDmDomD™

29-Apr-1988

Page 3~
Digital Internal Use Only

EL-00070-00
VSRM - Introduction

14-Apr-1989

Page 35
Digital Internal Use Only

+-------------------------------------------------------------------+
READER COMMENTS
I
I

Your comments and suggestions will help Standards and Methods I
Control improve their services and documents.
I

+------>-------------------------------------------------------------+
Did you request this document?
satisfactory period of time?

If so, did it arrive within a
Please comment.

What are your impressions of this document?
Consider
organization, completeness, readability, and illustrations.

format,

- -- -- -- -- -- -- -- -- -- FOLD ON THIS LINE -- -- -- -- -- -- -Did you find technical or clerical errors in this document? If so,
please specify the page number(s) and the error(s).

Are the instructions for the update package clear?
Do you have other suggestions for improving this document?

The following information is optional:
Name

Mailstop

Department

Node

Send your comments to JOKUR::PROJECTS, or fold, staple, and send this
page through interoffice mail to:

+-------------------------------+
I
READERS' COMMENTS
I
I STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4
I

+-------------------------------+
~DmDDmDTM

mamDomD™ '
-

-----_._-_._------- -

----

~

VSRM Concepts and Conformance Criteria "EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983

Page 1-1

VIDEO SYSTEMS REFERENCE MANUAL
Concepts and Conformance Criteria
Document Identifier: A-DS-EL00070-01-0 Rev. AXlO, l5-May-1983

ABSTRACT: This section describes the conformance requirements for
devices implementing the Video Systems and intending to be
certified as conforming implementations.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatory
for
Engineers designing hardware for terminal products and
Software Engineers designing programs using terminal interfaces.
STATUS:

FOR REVIEW ONLY

+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
This document has been placed in the SARA "Formal
Cross-Component Standard" category. The material contained
within this document is assumed to define mandatory standards
unless it is clearly marked as· (a) not mandatory or
(b) guidelines. Material which is marked as "not mandatory" is
considered to be of potential benefit to the corporation and
should be followed unless there are good reasons for
non-compliance. "Guidelines" define approaches and techniques
which are considered to be good practice, but should not:be
considered as requirements. The procedures for modifying or
evolving this standard are contained within "the contents of
this document.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+

FOR INTERNAL USE ONLY

+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983

Page 1-2

TITLE: VIDEO SYSTEMS - CONCEPTS AND CONFORMANCE CRITERIA
DOCUMENT IDENTIFIER: A-DS-EL00070-0l-0 Rev. AXIO , lS-May-l983
REVISION HISTORY: Original Draft
Revision AXOI
FILES: User Documentation

25-Dec-1982
28-Feb-l983

EL070S1.mem

Internal Documentation EL070S1.rno
EL070Sl.rnt
EL070S1.rnx
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel

ACCEPTANCE: This document has been app-roved by the Manager of the
Video Architecture Group based on a_comprehensive review of its
individual sections by the members of the SARA - component groups
working Terminal Interface Architecture issues.
The list of
individuals on the review and approval list are on file in
Standards and Methods Control.
Direct requests for further information
PK03-1/10C, DTN 223-5162, RANI::VIDARCH

to

Peter

Copies of this document can be ordered from:
Standards and Methods Control
APOl/F7, DTN 289-1414, JOKUR::SIMONETTI

Sichel,

VSRM Concepts and Conformance Criteria"~·:·EL-00070-01
*** COMPANY CONF - DEC 'Internal Use Only 15-May-1983

Page 1-3

CONTENTS

CHAPTER 1

CONCEPTS AND CONFORMANCE CRITERIA

1.1

INTRODUCTION

1.2

STRUCTURE OF THE MANUAL

. • 1- 5
• 1-5

1.3
ARCHITECTURAL STRUCTURE
• . . . . . • • • 1-8
1. 3.1
Virtual Terminals
• • .
• • 1-8
1. 3.2
Layers. . . . . . . .
. ri •
•
•••
1-8
1.3.2.1
Code Extension Layer • .
••.
. • 1-9
1.3.2.2
Presentation Service Class . . . . . . • . 1-9
1.3.2.3
Input Processing..
• • • . . • . • 1-10
1.3.2.4
Terminal Management
. . • . • . • • 1-10
1. 3.3
Service Classes
. • • . . • . • .
1-10
1.4

SCOPE

1-11

1.5
ARCHITECTURAL CONFORMANCE
1-12
1.5.1
Definitions
••••.••
1-12
1.5.1.1
Leve 1 s • •
. •.
.•...•
1-12
1.5.1.2
Extensions
.•••••.••
1-12
1.5.1.3
Exceptions
.••
. • . . . • 1-13
1.5.1.4
Exclusions
.•.••
..•.
1-13
1.5.1.5
Waivers
• ..
. ....... .
1-13
1.5.1.6
Deviations .
•.•.•
. . .
1-14
1.5.1.7
UNDEFINED Operations
•..
. . . 1-14
1. 5.2
User Preference Features •
. • . . . . 1-14
1. 5.3
Rules For Conformance
. . • .
1-15
• 1-15
1.5.3.1
Hardware/Firmware Conformance ! . .
1.5.3.1.1
Level s . . . . . . . .
....
1-15
1.5.3.1.2
Extensions . . . .
• • • •
1-16
1.5.3.1.3
Exceptions . . . .
~.....
1-16
1.5.3.2
Software Conformance .
.••
1-16
1.5.3.2.1
Levels . . .
. . . . . . . . . . . 1-16
1.5.3.2.2
Extensions . • .
1-17
1.6
LEVEL 1 CONFORMANCE
1. 6.1
Conforming Products
. . •
1. 6.2
Required Functions . • • . • . • • • . . .
1. 6.3
Extensions To L e v e l l . . • . . .
1.6.3.1
Identification And Conformance
.••
1.6.3.2
Editing Controls . • • .
. .••
1.6.3.3
132-Column Mode
• • • . . . • . • . . •
1.6.3.4
Printer Port . . . . . .
....•.
1.6.3.5
ReGIS Graphics Display . . . • • . . . •
1.6.3.6
Sixel Protocol . . . .
.•.••
1.6.3.7
Katakana Character Set .
. •..
1.6.4
Level 1 User Preference Features • . . • .

1-17
1-17
1-18
1-20
1-20
1-20
1-20
1-20
1-21
1-21
1-21
1-22

Page 1-4

VSRM Concepts and Conforman~e Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1.7
LEVEL 2 CONFORMANCE . . . • . • . . . • . •
1.7.1
Conforming Products • . • • • . . . . . •
1.7.2
Required Functions • .
.......•
1.7.3
Extensions To Le~el 2 . . . . . .
1.7.3.1
132-Co1umn Mode
.•..•.
1.7.3.2
Printer Port . . • • • . • • • . • •
1.7.3.3
ReGIS Graphics Display . • • •
•..
1.7.3.4
Sixe1 Protocol . . • . • • • •
•..
1.7.3.5
Katakana Character Set . . . .
• . •
1.7.3.6
Selectively Erasable Characters • . . •
1.7.3.7
ORCS (Dynamically Redefinab1e Character
Se t )

1.7.3.8
1.7.4

.

.

.

.

.

.

.

.

.

.

.

.

.

.

UDK (User Defined Keys)
.•.
Level 2 User Preference Features . .

. . .

..

1-23
1-23
1-23
1-23
1~24
1~24

1-24
1-24
1-24
1-24
1-24
1-24
1-25

1.8
CERTIFICATION
.
1.8.1
Certification Test Process . . . • . . . .
1.8.2
The Waiver Process . • • . . . • • . • • .
1.8.2.1
General Information . . . . . • . .
1.8.3
Resolution Of Open Issues • • .
..•
1.8.3.1
Results Of The Waiver Process
...

1-26
1-27
1-28
1·28
1-28
1-29

1.9
1.9.1

1-30
1-30

CHANGE HISTORY
Revision 0.0 To AX10

Page 1-5

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.1

INTRODUCTION

The Video Systems Reference Manual (or Video SRM) documents the
interfaces to DEC video terminal products.
It is intended to
serve as both an implementation specification
for
product
developers,
as well as a "guide" to progr.ammers attempting to
produce software which will be transportable across a wide range
of devices.
It defines the interfaces in a manner which is
independent of the physical characteristics of a particular device
implementation.
Enough flexibility is allowed in the interface
description to permit a wide variety of terminal products to be
produced, while insuring that software can be designed that can
intelligently make use of the full range of features in a given
product.
As new functionality is developed for new terminal products,
it
will be added to the Video SRM before final implementation.
Furthermore, an architectural certification process provides a
means of measuring product performance against the Video SRM, and
ensures software compatibility across products.
Products claiming conformance must be submitted for
testing and evaluated against these standards.

1.2

certification

STRUCTURE OF THE MANUAL

Terminal technology has become increasingly complex as
the
emphasis in computer system design has shifted from performing
mathematical and scientific calculations to making information
services readily accessible to the public. Even so-called "dumb
terminals" of today incorporate a wide range of capabilities that
bridge all aspects of computer architecture and ~esign.
In order
to reduce this complexity to a state which is comprehensible to
those who are not intimately familiar with these technologies,
this manual has been broken up into sections which describe
different functional components of a typical terminal system.
Although there is some interaction between these co~ponents,
they
are described in such a way that they can more or less stand
alone.
The sections of this manual include descriptions of the
components:

o

following

Code Extension Layer - defines 7 and 8 bit character
processing; defines escape and control sequence parsing;
defines compatibility with DEC STD 169 for hardware,
including graphic code extension techniques.

VSRM Concepts and Conformance ciiteria' EL-00070~Ol
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
o

Terminal Management - defines basic
terminal management functions.

o

Character Cell Display - defines Levelland
operation for character cell display devices.

o

Keyboard processing
in terminals.

o

Printer Port - defines the display
interface.

o

ReGIS Grap~ics - defines descriptor graphics protocol for
Base ReGIS and Raster Extension~.

o

Sixel Graphics
transfer.

o

Dynamically Redefinable Character Sets - defines loading
and designation of Dynamically Redefinable Character Sets
("soft" character sets).

o

User Definable Keys - defines loading and invocation
User Definable Keys (programmable function keys).

~

device

Page 1-6

defines use of the

defines

serial

independent
Level

LK201

terminal

protocol

2

keyboard

to

for

printer

image

of

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983

Page 1-7

These components have the following functional relationship in the
design of an actual terminal product:
Components of a Terminal System
==_====~c======================

+- ------------------ ------ -- ------- -- ------ --- --+

1\
I \
I \
I
\
+-----+
I
\
+ - - - - - - - - - - - - -" - - - - +
I
\
I C
I
I
I
I
I 0
I
DISPLAY
I
I
I D L I
TERMINAL
- - ->
- - I E A I - - ->
I
I <----1
MANAGEMENT
Y I
I
I
I
I
\
I
I
I E E I PRINTER
PORT
I \
I
I
I X R I
T
I
+ - - - - - - - - - - - - - - - - -+
I \
I
I
/\1
\
I
I N
I
I
/.\
\ I
+-----+
I
/.::.\
\1
I

\::::.\

v

\::::.\

+-------------------+

,::::.\

KEYBOARD \

\: : : : •\

I

------------> I

\::::.\

\::::.\
\: :: /

I

CODE EXTENSION
LAYER

HOST
PORT

--->

--->
<- - -

<- - -

I

+-------------------+

I
I

\: / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

V

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.3

Page 1-8

ARCHITECTURAL STRUCTURE

Terminals are an important- part of any communications scheme. The
earliest
computer
communications was performed using coded
character sets and control functions.
This document describes in
detail some portions 'of an architectural model which-provides a
consistent and uniform basis for the development of terminal
service interfaces.

1.3.1

Virtual Terminals

The architectural model is built around the concept of 'Virtual
Terminals', which virtualize the interface to real physical
terminals.
"A virtual terminal is a - model which defines an
abstract terminal in terms of logical functions that can be
implemented differently on different real terminals; therefore a
virtual terminal consists of a real terminal and a protocol
adaptor." (Electrical Communication, Vol.
56, No.
I, 1981). The
virtual terminal interface consists of a number of disparate
service classes, or sets of functions.

1.3.2

Layers

The architecture is layered in an attempt to group those sets of
functions together which perform similar services within the
communications structure.
The architecture is broken down broadly into three functional
layers.
These layers are referred to as the Code Extension layer,
the Presentation Service Class layer,' and the Input Processing
layer.
In addition, there is a set of management functions which
operate across layers.
Input Processing
Terminal
Presentation Service Class
Management
Code Extension Layer
The purpose of layering the architecture is to separate components
which are logically distinct, allowing components in one layer to
be modified or replaced without impacting components in the other
layers of the architecture.
For example, the incorporation of a
new keyboard interface would
not
necessarily
affect
the
presentation
protocol, or the syntax of the communications
interchange.

VSRM Concepts and Conformance Criteria· EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.3.2.1

Page 1-9

Code Extension Layer -

The lowest layer of the architecture is referred to as the Code
Extension Layer.
This layer includes all services which form a
part of the interface into the communications environment, as well
as the syntax, or coding, of data and control functions.
Since all of the existing terminal services use character coded
data and controls (referred to as "ASCII stream"), this layer
currently includes the following functions:
o

Communications
Controls
(such
synchronization, padding, etc.)

o

ANSI parsing (separation of controls and data)

o

Graphic

Char~cter

as

XON/XOFF

Coding (7-bit and 8-bit environments)

In the future this layer may be extended or replaced with other
interfaces into DECnet, ISDN, X.2S, etc., without affecting the
overall structure of the architecture.

1.3.2.2

Presentation Service Class -

The next layer is referred to as the Presentation Service Class
Layer.
This layer includes all services which directly provide
imaging information. Output to the terminal is presented in the
form of data types, whose structure and operations are unique to
each service class definition. The only service class currently
defined for this layer is the Character Cell Display. Future
architectural development may include the definition of the
following service classes:
o

Character Cell Printer

o

Proportionally Spaced Printer

o

Videotex

o

Image Transfer

o

Voice

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.3.2.3

Page 1-10

Input processing -

The upper layer of the architecture is referred to as the Input
Processing Layer.
This layer includes all services which relate
to the processing of data entered into the terminal by the
terminal user.
Currently the only such device is the corporate
standard keyboard, but this may be extended" in the future to
include
other
entry
devices (such as voice input, mice,
digitizers, etc.).
This layer also may be extended to include local processing
functions such as editing of text and graphics. It should be
noted that the services provided at this layer may utilize the
various services of the Presentation Service Class Layer in order
to execute the functions they provide.
For example, .a field
editor might use ANSI text, ReGIS text, Videotex text, Teletex
text (or even voice I/O) to perform the same requirements of
processing field input.

1.3.2.4

Terminal Management -

Terminal Management functions operate across the other layers of
the architecture.
These functions include all services which
provide for identification, negotiation, and management of device
resources.
Examples of these services include Device Attributes
(DA), Soft Terminal Reset (DECSTR), and other control functions
which affect the .physical state of the terminal device. In the
future this layer may include multiplexing of virtual terminal
connections
(Virtual
Terminal
Management),
service
class
selection, and window management (multiple display windows).

1.3.3

Service Classes

within each layer of the architecture there may be classes of
service.
Functions within a layer are grouped into classes
according to their logical relationship. For example, character
oriented
text displays might form""a service class at the
presentation layer which is distinct from a graphics protocol
using logical pixel addressing. Furthermore, character oriented
keyboard processing would form a class at the applications layer
distinct from a forms editing protocol.
By separating these
functions according to classes it is possible to build a variety
of compatible products which conform to a common set of functions
within a given class of ope~ations.
•

VSRM Concepts and Conformance Criteria EL-O~070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1_4

Page 1-11

SCOPE

The interfaces defined within this specification apply to both
internal and external product interfaces_ External interfaces are
interfaces between a terminal, personal computer or workstation
.and a remote ~ystem_ Internal interfaces are interfaces between a
terminal sUb-system and software processes running within a
terminal, personal computer or workstation.

*
*
terminal system
*
- - - - - - - - - - - - - - - - - - - - - - - - - -*
physical
terminal

virtual
terminal

host system

*
application
*. .. . . .. . . .
*
. . . . . . . . . . . . . . I process
*

- - - - - - - - - - - - - - - - - - - - - - - - - -*


 * '

*
*
* EXTERNAL INTERFACE

*
*
terminal system

--- - --- -- --- -- ------ -- ----* --------- ----physical
terminal

virtual
terminal

*
* application

*
process
*
- - - - - - - - - - - - - - - - - - - - - - - - - -* - - - - - - - - - - - - - 

firmware> *

*

* INTERNAL INTERFACE

External and Internal Terminal Interfaces



VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF . DEC ~~ternal Use Only lS-May-1983
1.5

Page 1-12

ARCHITECTURAL CONFORMANCE

The video Systems Reference Manual is based on a
modular
architectural structure made up of discrete components which can
be combined in a variety of ways to meet evolving product needs
and requirements.
For purposes of defining conformance, service
class interfaces can be
further
subdivided
into
levels,
extensions, and exceptions.
The following definitions describe
these concepts.

1.5.1
1.5.1.1

Definitions
Levels-

Levels reflect an agreement between software and hardware on a
fixed group of functions within a class of operations that are to
be adhered to for some period of time.
When significant new
functionality is required to be added, a new level will be defined
and agreed to, which will be a super set of the levels below.
Lower levels of the architecture may be discontinued from use as
new higher levels are defined.
The decision to discontinue a
lower level wil~e based on marketing and product requirements.
Each level will consist of a number of functions which must be
included .in all products claiming to implement that level. These
functions are referred to as "required". When a level n function
is used in level n+l operation, it must be defined in such a way
that it will not affect any level n state differently than it does
in level n,
to insure compatibility for level n conforming
software running in level n+l.
The advantage of having levels is that software can be written to
a specific level of functionality based on hardware availability
and compatibility requirements, and will be guaranteed all of the
functionality of that level and all lower levels. As new levels
are adopted, terminals can be upgraded to support the new levels
without losing compatibility with existing software. Likewise,
software can be intelligently upgraded to support new terminal
products without losing backwards compatibility with previous
levels of the architecture.

1.5.1.2

Extensions-

In order to minimize the number of service classes and levels
supported by the architecture, and still meet a wide variety of
product needs, each level of the architecture will have certain
defined
extensions.
Extensions are fully specified by the
archi tecture, but are optional to product implem.entors claiming to
conform to a particular level of the architecture.
(Products may,

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983

Page 1-13

in fact, permit the customer to optionally purchase extensions.)
Functions which are included as extensions are not guaranteed to
software,
and therefore conforming software should
not
pe
dependent on those functions to operate in a logical and reliabie
manner.
For example, 132-column mode is an extension to the
Character Cell Display se~vice class,
and thus might not be
included in all products.
Software should be designed in such a
way that it will behave in a logical manner if this feature is not
present in a particular terminal product.

1.5.1.3

Exceptions-

Each level may also inc1u.de a set of "exceptions".
These
functions are not required by product implementations, and are not
to be used by conforming software.
For example,
Tektronix 4010
emulation might be required by particular products, but not be a
part of the architecture because DEC software did not want to
support this feature.
The interface, however, would be documented
and included as an appendix to the architecture, so that products
implementing this feature could do so in a compatible manner.
Products must get management approval before using exceptions to
the architecture,
and any new exception specifications must be
approved by the Terminal Interface Architecture Review Board
before being i~p1emented.

1.5.1.4

Exc1usions-

In rare cases there may be certain functions which are explicitly
excluded from a given level.
This will typically be done to
clarify that a particular
function
is
not
allowed
for
implementation at that level.

1.5.1.5

Waivers -

Products which cannot pass certification cannot claim conformance
with the architecture unless they receive a formal waiver from
Terminals -and Workstations management. The following are examples
of conditions for which a waiver might be granted:
1.

If a product wished to implement functions which were not
previously defined by the architecture,
and were not
warranted to be
general
enough
to
require
new
architectural development.

VSRM Concepts and Conformance Criteria" EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983

Page 1-1"4

2.

If a product were incapable of properly implementing a
defined function for sound technical reasons, but in
other ways conformed to the architecture.

3.

If a product conforming to a certain level wished to
include functions defined by a higher level, but not
implement all of the functions of that level.

Waivers are intended to be used to resolve time-to-market issues
and are temporary. Products not conforming are expected to come
into conformance by changing the product, or by changing the
architecture through the Architecture ECO process.

1.5.1.6

Deviations-

Deviations
represent
permanent
non-conformance
with
the
architecture.
Deviations apply only to products which were
developed before the architecture was defined, but are in general
conformance with the architectural specifications. New products
are not allowed deviations.

1.5.1.7

UNDEFINED Operations -

Occasionally there are operations whose
effect
cannot
be
guaranteed to be the same in all implementations. Such operations
shall be identified in both the architectural and
product
specifications
as
UNDEFINED.
Software
conforming to the
architecture shall not use UNDEFINED operations.
Every attempt
will be made to minimize the number of UNDEFINED operations in the
architecture, since software"that executes UNDEFINED functions may
not operate the same on all terminal products.

1.5.2

User Preference Features

Certain states of the terminal are defined as "User Preference
Features".
User
Preference
Features
that
have a coded
representation for interchange with a host are indicated to be of
a specia~ status in this specification.
The terminal user should be in charge of the state of all User
Preference
Features,
not
the general application program.
Conforming software applications shall not change the state of any
User Preference Feature, except in response to an explicit

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only ls-May-1983

page 1-15'

request by the terminal user. It is preferred that these requests
be handled as an operating system service. In cases where these
services. are not provided by the operating system, and these
functions are changed by an application program, the operating
system must be notified.

1.5.3

Rules For Conformance

Terminal and Workstation products will be required to provide
standard interfaces for the purpose of synchronizing hardware
product release with software product support. To this end, it is
important that products claiming to conform to the architecture
should follow certain guidelines in implementing the architectural
interfaces.
Products should not be excluded from implementing
features not defined by the architecture. However, it should be
made clear in both the architectural and product documentation
that these features are not guaranteed in all products, and should
not be used by conforming software.
Products should not be
allowed to selectively implement portions of the architecture
without
receiving
an
explicit,
waiver from Terminals and
Workstations
management
prior
'to
beginning
any
product
development, as -this will render the architecture useless in
determining cross.:..p_r.oduct compatibili ty.

1.5.3.1

Hardware/Firmware Conformance -

1.5.3.1.1 Levels - Terminal hardware/firmware claiming to conform
to Level n:
1.

shall implement ALL functions of the lowest defined level
to Level n,

2.

may ~OT implement any functions defined by a higher level
unless it implements all of the functions of that level
(in which case it would conform to the higher level),

3.

may NOT implement any function not defined in any level
(unless it is included in an appendix to both the
architectural and product specifications and clearly
identified as an exception to the architecture).

For example, a conforming Level I implementation cann6t :ieave out
bold, since it is a Level 1 function (however,· bold may be
implemented either by increasing the intensity or the number of
. pixels) . A conforming Level 1 implementation cannot implement any
Level 2 functions (or it must implement all of the Level 2
functions, in which case it is a Level 2 conforming terminal).

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.5.3.1.2

Page 1-16

Extensions-

Terminal hardware/firmware claiming to implement an extension
shall impl~ment ALL functions of that extension and the associated
conformance level, but need not implement any lower
level
extensions, unless specifically required by the specification of
the/ extension.

1.5.3.1.3

Exceptions-

Finally, a conforming terminal may NOT implement any VT100/VT125
function that has been excluded from all of the levels by this
document, unless it has been included in an appendix to this
document.
Such
functions· will
be
defined for backward
compatibility with existing terminals.
However,
conforming DEC
software shall NOT use those functions defined in an appendix.

1.5.3.2

1.5.3.2.1

Software Conformance -

Levels - Software claiming to conform to Level n:

1.

may use ANY functions in
Level n,

2.

shall NOT use any functions of levels higher than n,

3.

shall NOT use any fUI1A:tions defined in an appendix of the
SRM,

4.

shall NOT depend on product-specific side
are left UNDEFI~ED by th~ architecture.

the

lowest

defined

level

effects

to

which

page 1-17

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.5.3.2.2

Extensions-

Software supporting an extension may use any function in that
extension (and any extensions which are required to support that
extension), but shall use the functions in such a way as to make
the software modul.r with respect to extensions when it makes
sense to do so. Furthermore, software that supports an extension
shall operate in a sensible way if that extension is NOT present
in the terminal. The intent of this requirement is two-fold.
First, no conforming software should ever blindly assume that it
is using a terminal with an extension which it requires.
All
software must verify that its environment is correct. Second, if
the software determines that it does not have the required
facilities,
it must behave rationally.
This could mean that
certain features of the software are inoperative.
Or, if the
entire software package requires an· extension (e.g., DECgraph and
ReGIS), then rational behavior means exiting gracefully with an
appropriate informational message.

1.6

LEVEL I CONFORMANCE

Levell of the architectu~provides a compatibility mode for
software designed to 0p~Iate with the VT100 family of display
terminals, specifically the VT102 display terminal and VT125
graphics display terminal.

1.6.1

Conforming Products

For a list of conforming Levell products,
"Product Reference".

consult

the

appendix

VSRM Concepts and Conformance Criteria :EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.6.2

Required Functions

The following controls are required for
implementations.

..

Page 1-18

all

conforming

NUL
SPACE

NUL
SP

SHIFT IN (LOCKING SHIFT ZERO)
SHIFT OUT (LOCKING SHIFT ONE)
SINGLE SHIFT TWO
SINGLE SHIFT THREE

SI (LSO)
SO (LS1)
SS2
SS3

IDENTIFICATION
DEVICE STATUS REPORT

DEClO
DSR

SET TOP AND BOTTOM MARGINS
SELECT CHARACTER SET to GO, Gl
ASCII
Line Drawing
SELECT GRAPHIC RENDITION
Normal
Bold
Blink
Underscore
Reverse Video
SINGLE WIDTH LINE
DOUBLE WIDTH LINE
DOUBLE HEIGHT LINE TOP
DOUBLE HEIGHT LINE BOTTOM
Set/Reset Mode
SCROLLING MODE
SCRE.EN MODE
ORIGIN MODE
NEW LINE MODE
KEYBOARD ACTION MODE
AUTO REPEAT MODE
CURSOR KEY MODE
KEYPAD MODE
CURSOR UP
CURSOR DOWN
CURSOR FORWARD
CURSOR BACKWARD
CURSOR POSITION
HORIZONTAL/VERTICAL POSITION
CURSOR POSITION REPORT
SAVE CURSOR
RESTORE CURSOR
BEL
BACK SPACE
HORIZONTAL TAB
LINE FEED

DECSTBM

SGR

DECSWL
DECDWL
DECDHLT
DECDHLB
SM,RM
DECSCLM
DECSCNM
DECOM
LNM
RAM

DECARM
DECCKM
DECKPAM,DECKPNM
CUU
CUD
CUF
CUB
CUP
HVP
CPR
DECSC
DECRC
BEL
BS
HT
LF

Leve~

1

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
VERTICAL TAB
FORM FEED
CARRIAGE RETURN
SUBSTITUTE
INDEX
REVERSE INDEX
NEXT LINE
HORIZONTAL TABULATION SET
TABULATION CLEAR
ERASE IN LINE
ERASE IN DISPLAY

VT
FF
CR
SUB
IND
RI
NEL
HTS
TBC
EL
ED

Page 1-19

page 1·20

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.6.3

Extensions To Level 1

The following functions are each independent extensions to Level 1
as
an
implementation or customer option, and require the
associated controls.

1.6.3.1

Identification And Conformance -

The following functions form an extension to Level
required in all future products, and in Level 2:
DEVICE ATTRIBUTES (primary)
DEVICE ATTRIBUTES (secondary)
SELECT CONFORMANCE LEVEL

1.6.3.2

1

Editing Controls -

Set/Reset Mode
INSERT/REPLACEMENT MODE

SM,RM
IRM

DELETE CHARACTER
INSERT LINE
DELETE LINE

DCH
IL
DL

l32-Column Mode -

Set/Reset Mode
COLUMN MODE

1.6.3..4

is

DA(l)
DA( 2)
DECSCL

The following editing controls form an extension to Level
is required in all future products, and in Level 2:

1.6.3.3

that

SM,RM
DECCOLM

Printer Port -

DEVICE STATUS REPORT
Set/Reset Mode
PRINTER CONTROLLER MODE
AUTO PRINT MODE
PRINT FORK FtED MODE
PRINT EXTENT MODE
Media Copy
PRINT SCREEN
PRINT LINE

DSR
SM,RM
DECPCM
DECAPM
DECPFF
DECPEX
MC

1

that

VSRM Concepts and Conformance Criteria~ EL-00070-01
*** COMPANY CONF - DEC Internal Use Only. l5-May-1983
1.6.3.5

ReGIS Graphics Display -

Set/Reset Mode
GRAPHICS CURSOR ENABLE MODE

SM,RM
DECGCEM

Media Copy

MC

Device Control string
ENTER ReGIS GRAPHICS

DCS,ST

ReGIS Commands
SCREEN CONTROL
POSITION CONTROL
WRITING CONTROL
VECTOR DRAWING
CURVE DRAWING
TEXT DRAWING
REPORT
LOAD CHARA~TER SET
MACROGRAPH

1.6.3.6

S
P
W
V
C
T
R
L
M

Sixel Protocol -

As defined in the section "Sixel Graphics Extension"

1.6.3.7

Katakana Character Set -

SELECT CHARACTER SET to GO, G1
JIS.Roman
JIS.Katakana

Page 1-21

VSRM Concepts and Conformance Criteria EL-00070-0l
*** COMPANY CONF - DEC Internal Use Only lS-May-1983

1.6.4

Page 1-22

Levell User Preference Features

The following functions are included in Level 1 operation, but are
indicated as User Preference Features, and thus are not to be used
by conforming DEC application programs (except as described
above):
Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE

SM,RM
DECCOLM
DECSCLM
DECSCNM
DECARM

Page 1-23

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal.Use Only 15. -May-1983
1.7

LEVEL 2 CONFORMANCE

Level 2 defines a new level of architectural compatibility for
video display terminals which is a complete super set of Levell.

1.7.1

Conforming Products

For a list of conforming Level 2 products,
"Product Reference".

1.7.2

consult

the

Required Functions

The following controls are required for
implementations.

all

conforming

All Level 1 requi red functions,' and
required for future products, plus:

all

Level

SELECT 7-BIT CI TRANSMISSION
SELECT 8-BIT CI TRANSMISSION
LOCKING SHIFT TWO
LOCKING SHIFT THREE
LOCKING SHIFT ONE RIGHT
LQCKING SHIFT TWO RIGHT
LOCKING SHIFT THREE RIGHT

S7ClT
S8C1T
LS2
LS3
LSIR
LS2R
LS3R

SOFT TERMINAL RESET

DECSTR

SELECT CHARACTER SET to .GO, Gl, G2, G3
ASCII
Line Drawing
Supplemental
Set/Reset Mode
TEXT. CURSOR ENABLE MODE
INSERT CHARACTER
ERASE CHARACTER

SM,RM
DECTCEM
ICH
ECH

1.7.3

appendix

1

Level

2

extensions

Extensions To Level 2

The following functions are each independent extensions to Level 2
as
an
'implementation o£· customer option,
and require the
associated controls.

VSRM Concepts and Conformance Criteria EL 00070-0l
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
c

1.7.3.1

l32-Column Mode -

All Level 1 required functions for this extension.

1.7.3.2

Printer Port -

All Level 1 required functions for this extension.

1.7.3.3

ReGIS Graphics Display -

All Level 1 required functions for this extension.

1.7.3.4

Sixel Protocol -

All Level 1 required functions for this extension.

1.7.3.5

Katakana Character Set -

All Level 1 required functions for this extension.

1.7.3.6

Selectively Erasable Characters -

SELECT CHARACTER ATTRIBUTE
SELECTIVE ERASE IN LINE
SELECTIVE ERASE IN DISPLAY

,1.7.3.7

DECSCA
DECSEL
DECSED

DRCS (Dynamically Redefinable Character Set) -

DOWN LINE LOAD DRCS

DECDLD

SELECT CHARACTER SET to GO, Gl, G2, G3
DRCS

1.7.3.8

UDK (User Defined Keys)

DEVICE STATUS REPORT
USER DEFINED KEYS

DSR
DECUDK

Page 1-24

VSRM Concepts and Conformance Criteria EL-00070-01
*** CO,MPANY CONF - DEC Internal Use Only 15-May-1983
1.7.4

Page 1-25

Level 2 User Preference Features

The following functions are included in Level 2 operation, but are
indicated as User Preference Features, and thus are not to be used
by conforming DEC application programs (except as described
above) :
Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE

SM,RM
DECCOLM
DECSCLM
DECSCNM
DECARM

VSRM Concepts and Conformance Criteria EL-00070 Ol _
*** COMPANY CONF - DEC Internal Use Only '15 -May-1983
e

1.8

page 1 ~26

CERTIFICATION

Certification testing is performed on products ~laiming to conform
to
the
architecture
by
the
Terminals
and Workstations
Certification Group. Products may not claim compatibility with
the archit~cture or with other Terminals and Work.tations products
unless they have ~assed certificati6n testing, or have been given
specific
clearance to do so by Terminals and Workstations
management.
The goal
claims,
required
Systems
multiple

of Certification is to prove a product's compatibility
not according to its own interpretation of what is
for compatibility, but as defined in The Video Standards
Reference Manual (DEC Standard 070). This means that
products will use the same set of Certification tests.

Certification assumes the unit functions,
but checks if the
functions were implemented in a compatible manner.
It is also
important to note that certification testing is limited to that
subset of functions which are either required functions or
extensions to the architecture. This implies that a product that
passes certification may have problems executing commands which
are not part of that subset.
Outstanding certification issues are handled through the Waiver
Process, and are not likely to cause a delay in shipment.
Non-compliances are brought to the attention- of upper management
who can then decide to restrict the advertising of certain
compatibility claims until the product passes certification.

VSRM Concepts and Conformance Criteria';EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1.8.1

Page 1-27

Certification Test Process

Certification is a five step process:
1.

.Review Archi tectural and Product Specifications
The Certification Group participates in the review of new
architectural
elements,
and
attempts
to
uncover
discrepancies
between
the
architecture
and
the
implementation even before hands-on testing begins.
The Certification Group, in cooperation with Architecture
Group, will decide the LEVEL that the product must be
tested against based on the list of implemented functions
contained in the Product Specification.

2.

Design Tests

3.

Run Tests

4.

Report Results
Certification Reports list
deviations
between
the
architecture and the implementation.
Interim reports are
produced periodically, and a final certification report
is published at the end of the testing.
It is the final
certification report that is used as the input to the
Waiver Process.

5.

Chair the Waiver Panel
The Certification Group conducts Waiver Panel meetings,
seeks
resolution
of
compatibility issues, obtains
commitments for any proposed changes, and publishes the
results.

VSRM Concepts and Conformance Criteria' EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.8.2

Page 1-28

The Waiver Process

1.8.2.1 General Information - The
Terminals
&
Workstations
Certification Waiver Panel is composed of three people: one
representative from Product Development, one from Architecture,
and a non-voting chair person from Certification •. Others may
attend the meetings of the Waiver Panel and can participate in the
discussions, but they have no vote.
The Waiver Panel is responsible for reviewing the deviations
between the architecture and implementation as documented in the
Certification Report, for assessing the technical and business
impact of every deviation, and for recommending an appropriate
resolution for every deviation.

1.8.3

Resolution Of Open Issues

There are six possible recommendations that the Waiver Panel
make for each level of certification under consideration:

1.

-~ange

will

The Product:

It is agreed that the problem must be fixed,
but that
because plans are in place to do so by a specified time,
a waiver is granted.

2.

Change The Architecture:
It is agreed that the product
reasonable
fashion
and
the
clarification.

3.

was implemented in a
Architecture may need

Change The Certification Procedure:
It is agreed that the certification process was in error
in that it either failed to properly interpret the
architecture or failed to properly test the product.

4.

Waive By Agreement of The Panel:
It is agreed that no change is to be made at this time to
the
product, the architecture or the certification
procedures.
By granting this waiver, the Panel is
expressing the opinion that it considers the issue
insufficient cause for the product to fail certification.

VSRM Concepts and Conformance ~riteria :EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
5.

Page 1-29

Restrict:
It is agreed that although no change to the product is
involved at this time, the deviation is serious enough to
warrant placing a restriction on what compatibility or
other claims the product ~hould be allowed to make.

6.

No Resolution:
The Waiver Panel was unable to agree on a resolution for
the issue or on the proposed time frame for resolution,
and will present it to upper ~anagement for a decision.

.

1.8.3.1 Results Of The Waiver Process· The Waiver Panel will
determine a final disposition for each level of certification
under consideration. Accor~ingly, the results for a particular
level can be:
o

PASSED CERTIFICATION

o

PASSED CERTIFICATION WITH WAIVERS
category 6 deviations

o

PASSED CERTIFICATION WITH RESTRICTION
No category
deviations, one or more category 5 deviations

o

FAILED CERTIFICATION - One or more category 6 deviations

No

category

5

or
6

•
In addition,' the Waiver
Panel may wish to· state any other
restrictions which it agrees should be placed on the product.

Page 1-30

VSRM Concepts and Conformance Criteria cEL-00070-01
*** COMPANY CONF - DEC, Internal Use Only' lS-May-l983
1.9

CHANGE HISTORY
Revision 0.0 To AXIO

1.9.1
1.

This section was merged with the introductory section,
the remainder of which now forms section 0 of the
standards.

2.

Removed DELETE as a required Levell function.
(It is
ignored as an unimplemented Cl control.
Its use as a pad
character should be discouraged in favor .of NUL).

3.

Removed Answerback (ENQ) and Test (DECTST) as required
functions for both Levelland Level 2 conformance. They
will be included as an appendix to the SRM.

4.

Added VT12S-type Media Copy (MC) controls to
extension requirements for Levels 1 and 2.

S.

Removed Hard Copy (DECHCP) as a requirement for the sixel
extension in Levels 1 and 2. The only required way to
access the sixel format is through the ReGIS S(H)
command.

6.

Removed Control Representation Mode (CRM) as a Level 2
requirement.
CRM will be defined in an appendix to the
SRM.

7.

Added Insert Character (ICH) and Erase Character (ECH) as
Level 2 requirements.

8.

Added Selectively
Extension.

9.

Added Device Status Report (DSR) to the UDK extension for
Level 2.
DSR is used to return the lock conditions of
the User Defined Keys.

10.

Made IRM, DL, IL, and DCH part of an Editing Extension to
Level 1 that is requi red in all, future products (and in
Level 2).

11.

Added a complete description of the Certification process
and the waiver procedure.

Erasable

Characters

as

the

a

ReGIS

Level

2

VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-l983
section Index
-AArchitectur~

conformance levels
deviations
exceptions
exclusions
extensions
hardware/firmware conformance
layers
model
required
service classes
software conformance
undefined
virtual terminal
waivers
ASCII Stream

1-12
1-14
1-13
1-13
1-12
1-15
1-8
1-8
1-12
1-10·
1-16
1-14
1-8
1-13
1-9

-C-

Certification
waiver panel
Certification Testing
Code Extension
Compatibility
Conformance
deviations
exceptions
exclusions
·extensions
Level 1
Level 2
hardware/firmware
Level 1
Level 2
product
required functions
software
waiver process
waivers
Conformance Levels
definition
Conformance Requirements

1-28·
1-27
1-9
1-26
1-14
1-13
1-13
1-12
1-20
1-23
1-15
1-17
1-23
1-26
1-12
1-12, 1-14, 1-16
1-28
1-13
1-12
1-12

Page· 1- 31

VSRM Concepts and Conformance Criteria ~EL-00070-01
*** COMPANY CONF . DEC Internal Use Only "15~May-1983
-0-

Deviations
definition
-E-

Exceptions
definition
Exclusions
definition
Extensions
definition
Leve). 1
Level 2

1-13

1-12
1-20
1-23
-I -

Input Processing
Interface
external
internal

1-10
1-11
1-11

-L-

Layer
code extension
input processing
presentation service class
Layers
Levels
definition

1-9
1-10
1-9
1-8
1-12

-P-

Presentation Service Class
Product Certification
Product Conformance

1-9
1-26
1-26

-R-

Required Functions
Level 1
Level 2

1-18
1-23

- S-

Service Class
definition

1-10

Page 1-32

VSRM Concepts and Conformance Criteria:- EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
Software Conformance
extensions

1-12

-T-

Terminal Components
Terminal Management

1-7
1-10

-U-

Undefined Operations
User Preference Features
definition
):.evel 1
Level 2

1-14
1-14
1-22
1-25

-V-

Video Systems Reference Manual
virtual Terminal

1-5
1-8

-W-

Waiver Panel
certification
Waivers
definition

1-28
1-13

Page 1-33

VSRM - Specification Program Structure ·EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985

Page 2-1

VIDEO SYSTEMS REFERENCE MANUAL
Specification Program Structure
Document Identifier: A-DS-EL00070-02-0 Rev. AX11, 18-Mar-1985

ABSTRACT: This document describes the algorithmic specification
language used in the Video Systems Reference Manual and the
program flow across sections of the Manual.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatory
for
Engineers designing' hardware for terminal products and
Software Engineers designing programs using terminal interfaces.
Additional requirements are defined in the section "Concepts and
Conformance Criteria".
STATUS:

FOR REVIEW ONLY

+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -...---.. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

This document has been placed in the SARA "Formal
Cross-Component Standard" category. The material contained
within this document is assumed to define mandatory standards
unless it is clearly marked as (a) not mandatory or
(b) guidelines. Material which is marked as "not mandatory" is
considered to be of potential benefit to the corporation and
should be followed unless there are good reasons for
non-compliance. "Guidelines" define approaches and techniques
which are considered to be good practice, but shQu1d not be
considered as requirements. The procedures for modifying or
evolving this standard are contained within the contents of
this document.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+

FOR INTERNAL USE ONLY
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF . DEC Internal Use Only 18-Mar-1985

Page 2-2

TITLE: VIDEO SYSTEMS - Specification Program Structure
DOCUMENT IDENTIFIER: A-DS-EL00070-02-0 Rev. AXIl, l8-Mar-l985
REVISION HISTORY: Original Draft
Revision AXOl
Revision AXlO
FILES: User Documentation

2S-0ct-1982
28-Feb-l983
lS-May-1984

EL070S2.mem

Internal Documentation EL070S2.rno
EL070S2.rnt
EL070S2.rnx
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel

ACCEPTANCE:
This document has been approved by the Manager of the
Video Architecture Group based on a comprehensive review of its
individual sections by the members of the SARA component groups
working Terminal Interface Architecture issues.
The list of
individuals on the review and approval list are on file in
Standards and Methods Control.
requests for further information
PK03-1/l0C, DTN 223-5162, RANI:':VIDARCH

Dire~t

to

Peter

Copies of this document can be ordered from:
Standards and Methods Control
AP01/F7, DTN 289-1414, JOKUR::SIMONETTI

Sichel,

Page 2-3

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
CONTENTS

CHAPTER 2

SPECIFICATION PROGRAM STRUCTURE

2.1
2.1.1
2.1.2

INTRODUCTION • . . . • • . . . • • • • • • •
• 2-4
Algorithmic Specification
· . . . . . . 2-4
Use Of Pascal . . • . • . • .
• • • • • • • 2-4

2.2

SPECIFICATION PROGRAM STRUCTURE

2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7

SUMMARY OF STATE
Code Extension Layer Code Extension Layer Terminal Management
Character Cell Display
Keyboard processing .
Printer Port Extension
Extensions • . . . . .

• • • 2-6

• • • • • • • • • 2-7
parsing
• • ••
• 2-7

Graphics . . .
. . .
•
. . . . . . . ·
• . . . . . . ·
.
. ... ·
. • • . • . . ·

2.4
EXECUTIVE PROCEDURES
2.4.1
Executive Loop . .
2.4.2
Event Handling Tables . • . . .
2.4.2.1
Execute Control Code
2.4.2.2
Execute Escape Sequence
2.4.2.3
Execute Control Sequence . . .
2.4.2.4
Execute Device Control String
2.4.3
Device Attributes
2.4.4
Device Status Report . . . • . .
2.4.5
Set And Reset Modes
• . . . . .
2.4.5.1
Set Mode • .
.
2.4.5.2
Reset Mode . . . . . . • • . .
2.5
2.5.1
2.5.2

CHANGE HISTORY . . . • .
Rev 0.0 To AX10
Rev AXI0 To AX11 . . .

• .

.

.
.
.
.

.

.

. .

. . .
. . .
. . .
. . .

. .
. .

.

.

. • .

. .

.

.

. .

.

• 2-9

.
.
•
•

. . .
• . .

. . .
.

... 2-8
••

2 -10
2 - 12
2 -12
2 -12

. •

.

.

2 -13
2-13
2-15
2-15
2-16
2-18
2-20
2-21
2-22
2-24
2-24
2-26
2-28
2-28
2-29

VSRM - S'pecification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.1

Page 2-4

INTRODUCTION

This section contains inform~tion regarding the coding methods
used within the Video Systems Reference Manual to specify the data
types for terminal state information, and to describe the control
operations which affect· the state of the device •. ' -It also
describes the program structure across sections of the manual, and
includes the top level routines which bind the program sections
together. It should serve as a reference point for understanding
the
relationship
of
the detailed algorithms which appear
throughout the specifications. However, it is not intended to be
a complete or thorough implementation of the architecture as
described herein.

2.1.1

Algorithmic Specification

The coding of algorithms within .this specification is intended to
serve as a guideline to implementors, and as a clear specification
of the interfaces rules against which product certification can be
parforme~.
The code is optimized for architectural clarity. It
is intended to be as efficient as possible, but it is recognized
that~pecific implementations may alter the algorithms or program
struct.ure in order to optimi·ze for memory or execution speed.
They must do so, however, without sacrificing the functionality or
rules provided by the algorithms.
In other words, for all possible received interchange, conforming
implementation algorithms shall produce identical results to the
program specifications in terms of the presentation on the visual
display and the state variables that an application process can
solicit from the terminal.

2.1.2

Use Of Pascal

. Pascal was selected as an a~chitectural implementation language
because of its rigid structure and type checking, simplicity, and
wide usage both inside and outside of DEC.
Standard Pascal has
been used throughout, with the following exceptions:
underline is allowable in user-defined symbols
forward
implied

declaration

of

procedures

OTHERWISE is used as
statements'

an

exception

and

functions

condition

for

is
case

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985

Page 2-5

Implementation Notes:
1.

Because PACKED ARRAYS are provided by Pascal as an
implementation
technique,
to
optimize
storage
requirements at the expense of execution speed, they are
not utilized within this specification.

2.

The internal procedure IGNORE is a null operation, which
is used throughout the specification in order to leave as
little room as possible for interpretation of undefined
states of the device.

page 2-6

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-l985
2.2

SPECIFICATION PROGRAM STRUCTURE

The following diagram is provided as an overview to the structure
of the coded algorithms within this manual. It is not intended as
a detailed description of the program logic.
EXECUTIVE LOOP
===) GET.NEXT.EVENT
------------------.(ANSI PARSER)

I INSERT OR
I REPLACE
I CHARACTER

I EXECUTE
I CONTROL
I CODE

I EXECUTE
I ESCAPE
I SEQUENCE

I EXECUTE
I CONTROL
I SEQUENCE

I EXECUTE

I---------

I-------•-

1-- - - - - - - -

I---------

1-- - - - - - - - -

IBEL
IBS
IHT
ILF
IVT
IFF
ICR
ISO
lSI
I SUB
lIND
INEL
IHTS
IRI
ISS2
ISS3

IDECSC
IDECRC
IDECDHLT
IDECDHLB
IDECSWL
IDECDWL
IS7ClT (2)
IS8CIT (2)
I LS2 (2)
ILS3 (2)
ILSlR (2)
ILS2R (2)
ILS3R (2)
ISCS

IICH (2)
ICUU
I CUD
ICUF
I CUB
ICUP
lED
IDECSED (2X)
IEL
IDECSEL (2X)
IlL (lX,2)
IDL (lX,2)
IDCH (lX,2)
IECH (2)
IDAl
I DA2 (2)
IHVP
'ITBC
ISM
IMC (lX,2X)
IRM
I SGR
IDSR
IDECSCL (2)
IDECSCA (2X)
IDECSTBM

IDCS
IDCS
IDCS
IDCS
IBS
IHT
ILF
IVT
IFF
ICR

general purpose routines
END.OF.LINE

SCROLL UP

SCROLL DOWN

Program Flow Diagram

IGNORE

I CONTROL
I STRING

1ST

(ReGIS)
(Sixel)
(DRCS)
(UDK)

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.3

Page 2-7

SUMMARY OF STATE

2.3.1

Code Extension Layer - parsing

CONST

MAX.NUM.INTERMEDIATES = 3;
MAX.NUM.PARAMETERS = 16;
MAX.PARAMETER.VALUE - 16384;
RANGE.PRIVATES = 2;

TYPE

EVENT. TYPE - (GRAPHIC.CODE,CONTROL.CODE,ESCAPE.SEQUENCE,
CONTROL.SEQUENCE,DCS.INTRODUCER);
CODE. TYPE = 0 •. 255;
(* legal 8-bit code values *)
INTERMEDIATE.TYPE = 32 •. 47; (* legal intermediate values

*)

PARAMETER.TYPE = O•• MAX.PARAMETER.VALUE;
ROW.COLUMN.TYPE = 0 •• 15;
SEQUENCE.TYPE = (ESCAPE,CONTROL,DCS);
EVENT.BUFFER.TYPE = RECORD
EVeNT.CODE: EVENT. TYPE;
COP~~VALUE: CODE. TYPE;
INTERMEDIATE. COUNT: O•• MAX.NUM.INTERMEDIATES;
INTERMEDIATES:
.
ARRAY [l .. MAX.NUM.INTERMEDIATES] OF INTERMEDIATE. TYPE;
PARAMETER. COUNT: O•• MAX.NUM.PARAMETERS;
PARAMETERS:
ARRAY [l •• MAX.NUM.PARAMETERS] OF PARAMETER.TYPE;
PRIVATE.PARAMETER: O•• RANGE.PRIVATES;
VALID. SYNTAX: BOOLEAN;
(* The following values are internal state variables
required by the parser. Note that the boolean flag
SEQUENCE. IN. PROGRESS must be initialized to FALSE
by the calling routine prior to the first time the
parser is invoked. *)
SEQUENCE.IN.PROGRESS: BOOLEAN;
KIND.OF.SEQUENCE: SEQUENCE. TYPE;
PARAMETER. OVERFLOW: BOOLEAN;
END;

VAR

EVENT: EVENT.BUFFER.TYPE;

VSRM - Specification Program Structure· EL-00070-02
*** COMPANY CONF - DEC Int~rnal Use Only 18-Mar-1985
2.3.2

TYPE

Code Extension Layer - Graphics

GRAPHIC.CHARACTER.SET.TYPE =
(ASCII.G,SUPPLEMENTAL.G,LINE.DRAWING,
JIS.ROMAN,JIS.KATAKANA,
ORCS);

(* standard *)
(* extension *)
(* extension *)

CO.CONTROL.CHARACTER.SET.TYPE = (ASCII.C);
Cl.CONTROL.CHARACTER.SET.TYPE = (SUPPLEMENTAL.C);
DESIGNATED GRAPHIC SET TYPE

=

(GO,Gl,G2,G3);

IN.USE.TABLE.TYPE = RECORD
CO: CO.CONTROL.CHARACTER.SET.TYPEj
GL: GRAPHIC. CHARACTER. SET. TYPE;
INVOKED.GL: OESIGNATED.GRAPHIC.SET.TYPEj
Cl: Cl.CONTROL.CHARACTER.SET.TYPEj
GR: GRAPHIC. CHARACTER. SET. TYPEi
INVOKED.GR: DESIGNATED.GRAPHIC.SET.TYPEj
END;
EN~IRONMENT

VAR

Page 2-8

TYPE

=

(SEVEN.BIT,EIGHT.BIT)j

IN.USE.TABLE: IN.USE.TABLE.TYPE;
DESIGNATED.GRAPHIC.SETS:
ARRAY [GO .• G3] OF GRAPHIC.CHARACTER.SET.TYPEi
HOST.PORT.ENVIRONMENT: ENVIRONMENT. TYPE;
Cl.TRANSMISSION.MODE: ENVIRONMENT. TYPE;
SINGLE.SHIFT: (NONE, 552, SS3)i

VSRM - Specification Program Structure -EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.3.3

CONST
TYPE

VAR

pag~

2-9

Terminal Management

(* defined by implementation *);
MAX_NUM_OPTIONS =
.( * Level 1 *);
MAX_POSITION = 20
(* Level 2 *);
30
EXTENSION_TYPE =
(ONE_THIRTY_TWO_COLUMN,PRINTER_PORT_EXT,
REGIS_GRAPHICS,SIXEL_GRAPHICS,KATAKANA_EXT,
SELECTIVELY_ERASABLE_CHARACTERS,DRCS_EXT,UDK_EXT);
SERVICE_CLASS: INTEGER;
CONFORMANCE_LEVEL: (LEVEL_l,LEVEL_2);
LEVEL_l_EXTENSIONS:
ARRAY [ONE_THIRTY_TWO_COLUMN •• KATAKANA_EXT] OF BOOLEAN;
LEVEL_2_EXTENSIONS:
ARRAY [ONE_THIRTY_TWO_COLUMN .. UDK_EXT] OF BOOLEAN;
PRODUCT_ID: INTEGER;
REVISION_LEVEL: INTEGER;
PRODUCT_OPTIONS: ARRAY [O •• MAX_NUM_OPTIONS] OF INTEGER;
ANSWERBACK_MESSAGE_BUFFER:
ARRAY [l .• MAX_POSITION] OF CODE_TYPE;
DEVICE_~TATUS:

(READY,MALFUNCTION);

POWER_ON: BOOLEAN;
IN_CONTROL_STRING: BOOLEAN;

Page 2-10.

VSRM- Specification Program Structure EL-0.0.o.7o.-0.2
*** COMPANY CONF . DEC Internal Use Only -18-Mar-1985
2.3.4
_

_

m

_

_

CONST

Character Cell Display
_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

~

0

_

_

_

_

_

_

_

_

e

m

_

~

~

e

_

_

_

_

_

~

~

_

-

-

-

-

-

-

Q

MAX.NUM.LINES = 24;
MAX.NUM.COLUMNS = 132;
EMPTY CHARACTER = 0.;
MAX.NUM.CHARACTER SETS = 4; (* for Level 2 with DRCS *)

TYPE

LINE.TYPE = 1 .. MAX.NUM.LINES;
COLUMN.TYPE = 1 .. MAX.NUM.COLUMNS;
CHARACTER.POSITION.TYPE
LINE: LINE. TYPE;
COLUMN: COLUMN. TYPE;
END;

=

RECORD

GRAPHIC - RENDITION . TYPE =
(BOLD,BLINK,UNDERSCORE,REVERSE);
CHARACTER.RENDITION.TYPE =
ARRAY [GRAPHIC.RENDITION.TYPE] OF BOOLEAN;
LOGICAL.ATTRIBUTE.TYPE = (SELECTIVELY.ERASABLE);
CHARACTER.ATTRIBUTE.TYPE =
ARRAY [LOGICAL.ATTRIBUTE.TYPE] OF BOOLEAN;
LINE.RENDITION.TYPE =
(DOUBLE.HEIGHT.TOP,DOUBLE.HEIGHT.BOTTOM,
SINGLE.WIDTH,DOUBLE.WIDTH);
CHARACTER. TYPE = RECORD
CODE: 0. •. 126; (* 0. is used for empty characters *)
RENDITION: CHARACTER.RENDITION.TYPE;
ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPEi
CHARACTER. SET: GRAPHIC.CHARACTER.SET.TYPEi
END;
CHARACTER.SET.DESIGNATOR.TYPE = RECORD
NAME: GRAPHIC.CHARACTER.SET.TYPEi
FIRST. INTERMEDIATE: 0. •• 47; (* 0. = no intermediate *)
S'ECOND. INTERMEDIATE: 0. •• 47;
FINAL: 0. •• 126; (* 0. indicates no table entry *)
END;
ORIGIN MODE TYPE = (ABSOLUTE,DISPLACED);

-

-

-

VSRM - Specification Program Structure £L-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985

Page 2-11

SAVE_BUFFER. TYPE = RECORD
POSITION: CHARACTER.POSITION.TYPE;
RENDITION: CHARACTER_RENDITION. TYPEi
ORIGIN.MODE: ORIGIN_MODE. TYPE;
LEFT: GRAPHIC. CHARACTER. SET. TYPE;
RIGHT: GRAPHIC CHARACTER SET TYPE;
SETS: ARRAY [GO •• G3] OF GRAPfnC.CHARACTER.SET.TYPE;
ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPE;
END;
VAR

DISPLAY: ARRAY [LINE.TYPE, COLUMN. TYPE] OF CHARACTER. TYPE;
LINE.RENDITION: ARRAY [LINE. TYPE] OF LINE.RENDITION.TYPE;
ACTIVE.POSITION: CHARACTER. POSITION. TYPE;
TOP.MARGIN: LINE. TYPE;
BOTTOM.MARGIN: LINE. TYPE;
CURSOR.SAVE.BUFFER: SAVE.BUFFER.TYPE;
CURRENT. RENDITION: CHARACTER.RENDITION.TYPEi
CURRENT.ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPE;
CHARACTER. SET. TABLE:
ARRAY [1 .. MAX.NUM.CHARACTER.SETS] OF
CHARACTER.SET.DESIGNATOR.TYPE;
HORIZONTAL.TAB.STOPS: ARRAY [COLUMN. TYPE] OF BOOLEANi
COLUMN.MeBE: (EIGHTY,ONE.THIRTY.TWO)i
SCROLLING.MODE: (JUMP,SLOW);
SCREEN.MODE: (NORMAL.SCREEN,REVERSE.SCREEN);
ORIGIN.MODE: ORIGIN.MODE.TYPE;
AUTO.WRAP.MODE: (WRAP.OFF,WRAP.ON)i
TEXT.CURSOR.ENABLE.MODE: (TEXT.CURSOR.OFF,TEXT.CURSOR.ON)i
INSERT. REPLACEMENT. MODE: (REPLACE,INSERT);
NEW.LINE.MODE: (NEW.LINE.OFF,NEW.LINE.ON);
0

page 2-12

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.3.5

Keyboard Processing

VAR

KEYBOARD_ACTION.MODE: (UNLOCKED,LOCKED);
AUTO.REPEAT.MODE: (REPEAT.OFF,REPEAT.ON)i
CURSOR.KEY.MODE: (CURSOR,CK.APPLICATION)i
KEYPAD.MODE: (NUMERIC,KP .APPLICATION");
KEYBOARD.USAGE.MODE: (TYPEWRITER,DATA.PROCESSING);
CAPS.SHIFT.LOCK.MODE: (CAPS.LOCK,SHIFT.LOCK)i
HOLD.SCREEN.MODE: (HOLD.OFF,HOLD.ON);
LOCK.MODE: (LOCK.OFF,LOCK.ON);
COMPOSE_MODE: (COMPOSE_OFF,COMPOSE.ON)i
KEYCLICK.MODE: (KEYCLICK_OFF,KEYCLICK.ON);

2.3.6

Printer Port Extension

VAR

PRINTER. PORT. ENVIRONMENT: ENVIRONMENT. TYPE;
PRINTER.STATUS: (PRINTER.READY,PRINTER_NOT_READY,
PRINTER.NOT_PRESENT);
PRINTER.STYLE: (ASCII.ONLY,ASCII.PLUS,FULL_8_BIT);
PRINTER - CONTROLLER - MODE:
(PRINTER_CONTROLLER_OFF,PRINTER.CONTROLLER.ON)i
AUTO_PRINT_MODE: (AUTO_PRINT.OFF,AUTO.PRINT.ON)i
PRINT_FORM_FEED_MODE: (PRINT.FF_OFF,PRINT.FF.ON);
PRINT_EXTENT.MODE: (PRINT_SCROLLING_REGION,PRINT_DISPLAY)i

2.3.7
_

_

_

VAR

•

_

Extensions
_

_

e

_

•

_

_

_

_

_

_

_

_

•

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

_

GRAPHICS.CURSOR.ENABLE_MODE:
(GRAPHICS.CURSOR_ON,GRAPHICS.CURSOR_OFF)i
REGIS.GRAPHICS_MODE: (REGIS_OFF,REGIS.ON)i
SIXEL_GRAPHICS_MODE: (SIXEL_OFF,SIXEL_ON)i
LOAD.DRCS_MODE: (DRCS_LOAD_OFF,DRCS_LOAD_ON)i
LOAD_UDK_MODE:

(UDK_LOAD.OFF,UDK_LOAD_ON)j

_

_

_

_

_

•

_

_

_

_

_

_

_

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4
2.4.1

Page 2':'13

EXECUTIVE PROCEDURES
Executive Loop

Purpose:

Describe the power on state.

Description:
When power is applied to the terminal all state is
initialized to its default values.
Input and output buffers are
cleared and interrupts are enabled. The terminal then enters a
loop in which it makes repeated calls to the parsing routine,
executing events as they occur.
This process continues until
power is turned off.
State Affected: None
Algorithm:
PROCEDURE EXECUTIVE. LOOP;
BEGIN
POWER.ON:- TRUE;
INITIALIZE. TERMINAL;
INITIALIZE.PARSER (EVENT);
WHILE POWER.ON DO
BEGIN
GET.NEXT.EVENT (EVENT);
IF NOT IN. CONTROL. STRING THEN
BEGIN
(* check for single shifts *)
SINGLE.SHIFT:- NONE;
WHILE (EVENT.EVENT.CODE = CONTROL. CODE) AND
(EVENT.CODE.VALUE = 142) OR (EVENT.CODE.VALUE
BEGIN
CASE EVENT.CODE.VALUE OF
142: SINGLE. SHIFT. TWO;
143: SINGLE.SHIFT.THREE;
END;
END;
(* then process the function *)
CASE EVENT. EVENT .. CODE OF
GRAPHIC. CODE: INSERT.OR.REPLACE.CHARACTER;
CONTROL CODE: EXECUTE CONTROL CODE;
ESCAPE·~·SEQUENCE: IF EVENT.VALID.SYNTAX THEN
EXECUTE. ESCAPE. SEQUENCE;
CONTROL. SEQUENCE: IF EVENT.VALID.SYNTAX THEN
EXECUTE. CONTROL. SEQUENCE;
DCS.INTRODUCER: IF EVENT.VALID.SYNTAX THEN
EXECUTE.DCS.INTRODUCER.SEQUENCE;
OTHERWISE IGNORE;

=

143) DO

VSRM - Specification Program Structure EL-OO~70-02
*** COMPANY CONF - DEC Internal Use Only 18~Mar-1985
END;
END
ELSE (* in control string *)
BEGIN
IF (EVENT. EVENT. CODE = CONTROL.CODE)
AND (EVENT.CODE.VALUE = 156) THEN (* String Terminator *y
IN.CONTROL.STRING:= FALSE
ELSE
BEGIN
IF REGIS.GRAPHICS.MODE = REGIS.ON THEN
(* pass all events to ReGIS parser for processing *)
EXECUTE.REGIS (EVENT);
IF SIXEL.GRAPHICS.MODE = SIXEL.ON THEN
(* pass all events to sixel parser for processing *)
EXECUTE.SIXEL (EVENT);
IF. LOAD.DRCS.MODE = DRCS.LOAD.ON THEN
(* pass all events to DRCS load routine for processing *)
LOAD.DRCS (EVENT);
IF LOAD.UDK.MODE = UDK.LOAD.ON THEN
(* pass all events to UDK load routine for processing *)
LOAD UDK (EVENT);
END;
END;
END;
END;

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only -18-Mar-1985
2.4.2

Page 2-15

Event Handling Tables

2.4.2.1

Execute Control Code -

Purpose:

Execute valid control codes.

Description:
When a control code is received by the terminal it
is immediately dispatched to the appropriate action routine by
this table of 8-bit code values.
State Affected: None
Algorithm:
PROCEDURE EXECUTE_CONTROL. CODE;
BEGIN
CASE EVENT.CODE.VALUE OF
7: WARNING. BELL ;
8: BACK. SPACE;
9: HORIZONTAL.'PAB,
lO: LINE. FEED; ___.
11: VERTICAL. TAB;
12: FORM. FEED;
13: CARRIAGE. RETURN;
14: SHIFT_OUT; (* Locking Shift One *)
15: SHIFT_IN; (* Locking Shift Zero *)
26: SUBSTITUTE;
132: INDEX;
133: NEXT.LINE;
136: HORIZONTAL. TABULATION. SET;
141: REVERSE. INDEX;
157: IN.CONTROL.STRING:= TRUE; (* Operating System Command *)
158: IN.CONTROL.STRING:= TRUE; (* Privacy Message *)
159: IN.CONTROL.STRING:= TRUE; (* Application Program Command *)
OTHERWISE IGNORE;
END;
END;
Known Deviations:

None

VSRM - Specification Program Structure EL-00070~02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
·2.4.2.2

Page 2-16

Execute Escape Sequence -

Purpose:

Execute valid escape sequences.

Description:
Escape sequences exhibiting valid
syntax
on
termination are acted upon immediately upon receipt of the final
character. The parser returns the final character code as well as
the count of code'values of any intermediate characters received
during processing of the sequence.
State Affected: None
Algorithm:
PROCEDURE EXECUTE. ESCAPE. SEQUENCE;
VAR
N: INTEGER;
BEGIN
IF EVENT. INTERMEDIATE. COUNT - 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
55: SAVE. CURSOR;
56: RESTORE. CURSOR;
110: IF CONFORMANCE LEVEL - LEVEL.2 THEN LOCKING.SHIFT.TWO
ELSE IGNORE;
Ill: IF CONFORMANCE.LEVEL = LEVEL.2 THEN LOCKING.SHIF~.THREE
ELSE IGNORE;
126: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING~SHIFT.ONE.RIGHT ELSE IGNORE;
125: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING.SHIFT.TWO.RIGHT ELSE IGNORE;
124: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING.SHIFT.THREE.RIGHT ELSE IGNORE;
OTHERWISE IGNORE;
END;
END
ELSE
BEGIN.
CASE EVENT. INTERMEDIATE. COUNT OF
1: (~ three character escape sequences *)
BEGIN
CASE EVENT.INTERMEDIATES[l] OF
35: (* i, 2/3 *)
BEGIN
CASE EVENT.CODE~VALUE OF
51: DOUBLE.HEIGHT.LINE.TOP;
52: DOUBLE.HEIGHT.LINE.BOTTOM;
53: SINGLE.WIDTH.LINE;
54: DOUBLE.WIDTH.LINE;
OTHERWISE IGNORE;

VSRM - Specification Program S·tructure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
END;
END;
32 : (* SP, 2/0- *)
BEGIN
CASE EVENT.CODE.VALUE OF
70: IF CONFORMANCE.LEVEL =.tEVEL.2 THEN.
SELECT.7.BIT.Cl.TRANSMISSION ELSE IGNORE;
71: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
SELECT 8 BIT.C1.TRANSMISSION ELSE IGNORE;
OTHERWISE IGNORE;
END;
END;
40,41,42,43:
FOR N:= 1 TO 4 DO
IF EVENT.CODE.VALUE =
CHARACTER.SET.TABLE[N].FINAL THEN
DESIGNATE. CHARACTER. SET;
OTHERWISE IGNORE;
END;
END;
2: (* four character escape sequences *)
BEGIN
IF CONFORMANCE. LEVEL
LEVEL.2 THEN
BEGIN
CASE EVENT.INTERMEDIATES[1] OF
40,41,42,43:
IF (EVENT.INTERMEDIATES[2] =
CHARACTER.SET.TABLE[4].SECOND.INTERMEDIATE)
AND (EVENT.CODE.VALUE =
CHARACTER.SET.TABLE[4].FINAL) THEN
DESIGNATE. CHARACTER. SET;
OTHERWISE IGNORE;
END;
END
ELSE IGNORE;
END;
OTHERWISE IGNORE;
END;
END;
END;

=

Known Deviations:

None

page 2-17

VSRM - Specification program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4.2.3

Page 2-18

Execute Control Sequence -

Purpose:

Execute valid control sequences.

Description:
Control sequences exhibiting valid syntax
on
termination are acted upon immediately upon receipt of the final
character. The parser returns the final character code as well as
the count of code values of any parameters and/or intermediate
characters received during processing of the sequence.
It also
indicates whether a private parameter value was received.
State Affected: None
Algorithm:
PROCEDURE EXECUTE. CONTROL. SEQUENCE;
BEGIN
.
IF EVENT. INTERMEDIATE. COUNT = 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
64: IF CONFORMANCE LEVEL = LEVEL 2 THEN INSERT. CHARACTER;
65: CURSOR.UP;
66: CURSOR. DOWN;
67: CURSOR_FORWARD;
68: CURSOR. BACKWARD;
72: CURSOR.POSITION;
74: ERASE.IN.DISPLAY; (* also Selective Erase In Display *)
75: ERASE.IN.LINE;
(* also Selective Erase In Line *)
76: INSERT.LINE;
77: DELETE.LINE;
80: DELETE. CHARACTER;
88: IF CONFORMANCE.LEVEL = LEVEL 2 THEN ERASE. CHARACTER;
99: DEVICE.ATTRIBUTES;
102: HORIZONTAL.VERTICAL.POSITION;
103: TABULATION. CLEAR;
104: SET.MODE;
105: MEDIA. COPY;
108: RESET.MODE;
109: SELECT.GRAPHIC.RENDITIONi
110: DEVICE. STATUS. REPORT;
112:,IF (EVENT.INTERMEDIATE.COUNT = 1) AND
(EVENT.INTERMEDIATES[l] = 34) THEN
SELECT. CONFORMANCE. LEVEL;
113: IF (CONFORMANCE.LEVEL = LEVEL.2) AND
(LEVEL.2.EXTENSIONS[SELECTIVELY.ERASABLE.CHARACTERS])
THEN
SELECT.CHARACTER.ATTRIBUTE;
114: SET.TOP.AND.BOTTOM.MARGINS;
OTHERWISE IGNORE;

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985

Page 2-19

END;
END
ELSE
(* no intermediates defined yet for control sequences *)
IGNORE;
END;
Known Deviations:

None

•

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-i985
2.4.2.4

Page 2-20

Execute Device Control String -

Purpose:

Execute valid device control strings.

Description:
Device
Control
String
Introducer
sequences
exhibiting valid syntax on termination are acted upon immediately
upon receipt of the final character. The parser returns the final
character code as well as the count of code values of any
parameters and/or
intermediate
characters
received
during
processing of the sequence. It also indicates whether a private
parameter value was received.
State Affected: None
Algorithm:
PROCEDURE EXECUTE_DCS.INTRODUCER.SEQUENCE;
BEGIN
IN.CONTROL.STRING:= TRUE;
IF EVENT. INTERMEDIATE COUNT = 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
112: REGIS.GRAPHICS.MODE:= REGIS.ON;
113: SIXEL.GRAPHICS.MODE:= SIXEL.ON;
123: LOAD.DRCS.MODE:= DRCS.LOAD.ON;
124: LOAD.UDK.MODE:= UDK.LOAD.ON;
OTHERWISE IGNORE;
END;
END
ELSE
IGNORE;
(* no intermediates defined yet for DCS introducers *)
END;
Known Deviations:

None

VSRM - Specification Program Structure EL-00070-02
*** COMPA~Y CONF - DEC Internal Use Only l8-Mar-1985
2.4.3

Page 2-21

Device Attributes

Purpose:
Format:

Request device identification.
CSI

Pp

o

c

9/11

Pp

3/0

6/3

default Pp: none

Description:
The DA control with a zero or omitted parameter
prompts the terminal to return an identifying sequence in one of
two forms, depending on the setting of the private parameter.
value, Pp. If the private parameter is omitted, the terminal will
return a primary Device Attributes response (see the section
"Terminal Management" for more details on the terminal's response
to this request).
If the private parameter value is > (3/14) and
the device is a Level 2 or higher terminal, it will return a
Secondary Device Attributes response.
State Affected: None
Algorithm:
PROCEDURE DEVICE.ATTRIBUTES;
BEGIN
IF EVENT.PARAMETERS[l] = 0 THEN
BEGIN
CASE EVENT.PRIVATE.PARAMETER OF
0·: DEVICE.ATTRIBUTES.l;
2: DEVICE.ATTRIBUTES.2;
OTHERWISE IGNORE;
END;
END
ELSE IGNORE;.
END;
Known Deviations:

None

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only· lS"wMar-19S5
2.4.4

Page 2-22

Device Status Report

Purpose:

Request or report the general status of the device.

Format:

CSI

Ps

n

9/11

Ps

6/14

default Ps: 0

Description:
The DSR control is used as an inquiry of the
current state of the terminal device. Three levels of request are
provided: device availability, position reporting, and printer
availability.
If the parameter value is five (5) the devic~ will
respond with a DSR control, the parameter of which will be one of
the following:

o

Device ready, no malfunctions detected
Device not ready, malfunction detected

3

If the parameter value is six (6) the device will respond
Cursor Position Report (CPR) control.
Printer status requests use the private parameter value ?15
3/1 3/5).
Requests for the lock status of User Defined Keys use the
parameter value ?25 (3/15 3/2 3/5).

with

a

(3/15
private

Notes:
1.

There is no guarantee of synchronization between the
status reports transmitted by the device in response to
this command and the actual device states at the time
they are received by a communicating party. They are
only indicators of the device state at the time the DSR
control is executed by the device.

State Affected: None
Algorithm:
PROCEDURE DEVICE_STATUS_REPORTi
BEGIN
CASE EVENT.PRIVATE_PARAMETER OF
0: (* not a private *)
BEGIN
CASE EVENT.PARAMETERS[l] OF

VSRM - Specificationpro~ram structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
5: REPORT_DEVICE_STATUS;
(* see section "Terminal Management" *)
6: CURSOR_POSITION_REPORT;
(* see section "Character Cel~Display" *).
OTHERWISE IGNORE;
END; .
END;
1: (* private parameter '?' *)
BEGIN
CASE EVENT.PARAMETERS[l] OF
15: REPORT_PRINTER_STATUS;
(* see section "Printer Port Extension *)
25: REPORT_UDK_LOCK_STATUS;
(* see section "UDK Extension *)
OTHERWISE IGNORE;
END;
END;
OTHERWISE IGNORE;
END;
END;
Known Deviations:

None

Page 2-23

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.4.5

Page 2-24

Set And Reset Modes

2.4.5.1

Set Mode·

. -. ---------------------------- -... ------ ---.... -.. ----.................. -........ ..
~-

Purpos~:

place one or more mode values in the set state.-

Format:

CSI

Ps ;

; - Ps

h

9/11

Ps ;

; Ps

6/8

default Ps: none

Description:
The SM control provides a means of placing one
more of the terminal mode values into the set state.

or

Notes:
1.

The parameter list sent with a single instance of this
control should not exceed the maximum allowable for the
parser
implementation.
(Note:
for
a
detailed
description
of
the parser,
see the section "Code
Extension L.yer".)

Algorithm:
PROCEDURE SET.MODE;
VAR
N: INTEGER;
BEGIN
IF EVENT.PARAMETER.COUNT - 0 THEN EVENT. PARAMETER. COUNT: = 1;
(* check all parameters *)
FOR N:= 1 TO EVENT.PARAMETER.COUNT DO
BEGIN
(* check private parameter '1' (3/15) *)
IF EVENT.PRIVATE.PARAMETER = 1 THEN
BEGIN
CASE EVENT. PARAMETERS [N] OF
1: SET.CURSOR.KEY.MODEi
3: SET.COLUMN.MODEi
4: SET. SCROLLING.MODE i
5: SET. SCREEN. MODE i
6: SET.ORIGIN.MODEi
8: SET.AUTO.REPEAT.MODE;
18: SET.PRINT.FORM.FEED.MODE;
19: SET.PRINT.EXTENT.MODEi
25: IF CONFORMANCE. LEVEL = LEVEL 2 THEN
SET.TEXT.CURSOR.ENABLE.MODEi
OTHERWISE IGNORE;
END;
END
(* check standard parameters *)
~

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
ELSE IF EVENT.PRIVATE PARAMETER = 0 THEN
BEGIN
CASE EVENT.PARAMETERS[N] OF
2: SET_KEYBOARD_ACTION_MODEi
4: SET_INSERT_REPLACEMENT_MODE;
20: SET_NEW_LINE_MODE;
OTHERWISE IGNORE;
END;
END;
END;
END;
Known Deviations:

None

Page 2-25

VSRMo - Specification Program StructureELo~00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4.5.2

Page 2-26

Reset Mode -

Purpose:

Place one or mode values in the reset state.

Format:

CSI

Ps ;

; Ps

1

9/11

Ps ;

; Ps

6/12

default Ps: none

Description:
The RM control provides a means of placing one
more of the terminal mode values into the r.setstate.

or

Notes:
1.

The parameter list sent with a single instance of this
control should not exceed the maximum allowable for the
parser implementation (sixteen or less is recommended for
backwards compatibility).

Algorithm:
PROCEDURE RESET.MODE;
VAR
N: INTEGER;
BEGIN
IF EVENT.PARAMETER.COUNT = 0 THEN EVENT.PARAMETER COUNT:- 1;
(* check all parameters *)
FOR N:- 1 TO EVENT.PARAMETER.COUNT DO
BEGIN
(* check private parameter '1' (3/15) *)
IF EVENT.PRIVATE.~ARAMETER·= 1 THEN
BEGIN
CASE EVENT.PARAMETERS[N] OF
1: RESET. CURSOR. KEY. MODE;
3: RESEoT. COLUMN. MODE;
4: RESET.SCROLLING.MODE;
5: RESET.SCREEN.MODE;
6: RESET.ORIGIN.MODE;
8: RESET.AUTO.REPEAT.MODE;
18: RESET.PRINT.FORM.FEED.MODE;
19: RESET PRINT EXTENT MODE;
25: IF CONFORMANCE.LEvEL - LEVEL.2 THEN
RESET. TEXT. CURSOR. ENABLE. MODE;
OTHERWISE IGNORE;
END;
END
(* check standard parameters *)
ELSE IF EVENT.PRIVATE PARAMETER = 0 THEN
BEGIN
CASE EVENT. PARAMETERS [N] OF

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF . DEC Internal Use Only l8-Mar-l985
2: RESET.KEYBOARD.ACTION.MODE;
4: RESET.INSERT.REPLACEMENT.MODE;
20: RESET.NEW.LINE.MODE;
OTHERWISE IGNORE;
END;
END;
END;
END;
Known Deviations:

None

Page 2·27

VSRM - Specification Program structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.5

Page 2-28

CHANGE HISTORY
Rev 0.0 To AXIO

2.5.1
1.

flow
Removed ENQ, DECTST, and DECHCP 'from program
diagram. Added ICH, ECH, DECSCA, DECSEL, and DECSED.

2.

Corrected value range for
Character.Type.Code
from
32 .. 126 to 0 .. 126 to permit 0 to be used to represent
empty character positions in the display state.

3.

Removed Control.Representation.Mode from the state tables
as well as the Set_Mode and Reset.Mode algorithms.

4.

Corrected the name of ReGIS.Graphics.Mode, and added
Sixel.Graphics.Mode, Load.DRCS.Mode, and Load UDK.Mode to
the state table for Extensions.

5.

Made minor editorial corrections to the Executive.Loop
algorithm, and added code to process Single Shifts and
the Load_ORCS and Load_UDK control strings.

6.

Removed
Answerback
from
the
Execute Control. Code
algori thm. _Removed the processing of Single. Shi ft. Two
and Single.Shift_Three from this routine.

7.

Removed Hard.Copy
from
the
Execute.Escape.Sequence
algorithm, and changed the character set designator value
50 to 60.

8.

Added
Insert.Character,
Erase.Character,
Select.Character.Attribute
to
Execut_.Control.Sequence algorithm. Removed DECTST.

9.

Changed the name of Execute.Device.Control_String
Execute.DCS.Introducer.Sequence.

10.

and
the
to

Changed t~e escape sequence handling algorithm to support
the character set designation scheme for DRCS which
allows designators to be redefined dynamically.

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.5.2

Page 2-29

Rev AXIO To AxIl
1.

Removed Rev AXlO change. bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

Modified code to test intermediate count so that
Sequences are uniquely recognized.

3.

Modified code to test intermediate count so
introducer sequences are uniquely recognized.

Control
that

DCS

VSRM - Specification Program Structure ·EL-00070-02
*** COMPANY CONF - DEC Internal Use Only o-1.8-Mar-1985

This page deliberately left blank.

Page 2-30

VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
Section Index
-A-

2-4

Algorithms
-C-

Coding
algorithms
Control Code
execution
Control Sequence
execution

2-4
2-15
2-18

-D-

DA
Device Attributes
control function
Device Control String
execution
Device Status Report
control function
DSR

2-21
2-21
2 -20

2-22
2-22

-E-

Escape Sequence
execution
Event Handling Tables
control codes
control sequences
device control string
escape sequences
Executive Loop

2-16
2-15
2-18

2-20
2-16
2-13

-I -

IGNORE

2-5
-M-

Mode
reset mode
set mode

2-26
2-24

Page 2-31

VSRM - Specification Program Structure -EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-.Mar-l985
-P-

Pascal
Program Structure

2-4
2-6

-R-

Reset Mode
control function
RM

2-26
2-26

-S-

Set Mode
control function
SM

2-24
2-24

Page 2-32

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-1
Digital Internal Use Only

DEC STD 070-3 VIDEO SYSTEMS STANDARD CODE EXTENSION LAYER
Document Identifier:

A-DS-EL00070-03~0

Rev A, 14-Apr-1989

ABSTRACT: This document defines the form and syntax of the coded
communication between terminal products and other system
components.
It applies directly to serial line communications,
consisting of a stream of 7-bit or 8-bit combinations referred to
as "character codes". The mechanisms employed for achieving this
form of communication, however, may be applied within the context
of block oriented line protocols, networking packet protocols, and
program call interfaces over high-bandwidth bus interconnects.
APPLICABILITY: This document is Mandatory for Engineers designing
hardware for terminal products and software engineers designing
programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts
and Conformance Criteria.
STATUS:

APPROVED 14-Apr-1989; type $ VTX SMC for expiration date.

+---~------------------------------------------------------------+

I
I
I
I
I
I
I
I

The material contained within this document is assumed to
define mandatory standards unless it is clearly marked as:
(a) not mandatory; or (b) guidelines. Material that is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques that are considered to be good
practice, but should not be considered as requirements.

I
I
I
I
I
I
I
I

+----------------------------------------------------------------+
This document is confidential and proprietary.
It" is an
unpublished work protected under the Federal copyright laws.
Copyright (c) Digital Equipment Corporation.
reserved.
Digital Internal Use Only

"mDmDomD™

1989.

All rights

14-Apr-1989
Page 3-2
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer

TITLE: DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE EXTENSION LAYER
DOCUMENT IDENTIFIER: A-DS-EL00070-03-0 Rev A, 14-Apr-1989
REVISION HISTORY: Original
Revision
Revision
Revision
Revision
Revision
Revision
Revision
Revision

Draft
0.1
0.2
0.3
AX04
AX10
AX11
Ax12
A

Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:

OS-Jun-1982
04-Sep-1982
20-0ct-1982
08-Dec-1982
28-Feb-1983
lS-May-1983
18-Mar-1985
06-Feb-1988
14-Apr-1989

Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Patricia Winner

APPROVAL: This document prepared by the Desktop Systems Group
has been reviewed and recommended for approval by the
general review group for its category for use throughout
Digital.

ter Conklin, Technical Director,
Desktop Systems Group

Peter Sichel, Desktop Systems Group

J2lltv~

Eric Williams, Standards Process Manager
Direct requests for further information to Peter Sichel,
DSGl-2/C7, DTN 235-8374, HANNAH::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, $ VTX SMC, JOKUR::SMC, DTN:
287-3724, or CTSl-2/D4.
Please supply your name, badge number, cost center, mailstop, and
ENET node when ordering.

~DmDDmDTM

14-Apr-1989
Page 3-3
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer

CONTENTS

CHAPTER 3

3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.2

DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE
EXTENSION LAYER
INTRODUCTION • • .
SCOPE

.

•

.

.

.

. • . . . . •

. • . • . 3-7

.

. . • . . 3-7

.

.

.

.

3.4.1
3.4.2
3.4.3
3.4.4

.

NATIONAL REPLACEMENT CHARACTER SET (NRCS)
•..
EXTENSION • • . • .'. • . . .
8-BIT INTERFACE ARCHITECTURE EXTENSION
RELATIONSHIP TO TERMINAL INTERFACE
. • •
ARCHITECTURE (TIA) • • .

3-7
. 3-7
3-8

TERMINOLOGY

3-10

CHARACTER CODING DESCRIPTION
3.3
3.3.1
CHARACTER CODES
. . • . .
3.3.2
7-BIT CHARACTER SETS . . .
8-BIT CHARACTER SETS . . .
3.3.3
3.3.4
CONTROL AND GRAPHIC CODES
3.3.4.1
Control Characters . . .
3.3.4.2
Graphic Characters • . .
3.4

.

.

.

.

..•.
. • . . . . .
. • . . . • .
• . . • . . .

.
.
.

SPECIAL CHARACTERS . .

3-17

2/0 (SPACE)
..••..•..
7/15 (DELETE)
...•.
1%

15/15

•

• .'.

•

•

. . . ..

•••

•

•

.. . . .

3.5
CONTROL CODE EXTENSION TECHNIQUES
. . .
3.5.1
GENERAL RULES
. . . . . . . . . . . . . .
3.5.1.1
Precedence ot Control Functions
3.5.1.2
Termination Conditions .
..... .
3.5.1.2.1
Cancel . . . . .
3.5.1.2.2
Substitute . . . . .
3.5.1.2.3
Escape . . . . . . .
3.5.1.2.4'
C1 Control Codes . .
. . • • • .
3.5.1.2.5
Universal Terminator •
. ....
3.5.1.3
Unimplemented Functions
. . . . . .
3.5.1.4
Transformation Between 7~bit and 8-bit
Environments . . • . . . . . • .
ESCAPE SEQUENCES . . . . . . .
..••
3.5.2
3.5.2.1
Expansion Escape Sequence (Fe) . . • • .
3.5.3
CONTROL SEQUENCES . . . . • . . . . . • •
3.5.3.1
PARAMETER VALUES IN CONTROL SEQUENCES
3.5.3.2
NUMERIC PARAMETERS . . . . • . . . • • .
3~5.3.3
SELECTIVE PARAMETERS . . . • • . . . . .
3.5.3.4
PRIVATE PARAMETER STRINGS • • .
3.5.3.5
Examples of Parameter Strings • . •

momoomD™

3-12
3-12
3-12
3-14
3-16
3-16
3-16

3-17
3-17
3-17
3-17
3-18
3-18
3-18
3-18
3-19
3-19
3-19
3-19
3-19
3-20
3-21
3-22
3-23
3-23
3-24
3-25
3-25
3-26
3-27

EL-00070-03
VSRM - Code Extension Layer

I
I
I
,I

3.5.4
3.5.4.1
3.5.4.2
3.5.4.3
3.5.4.4
3.5.4.5
3.5.4.6
3.5.5
3.5.5.1

I

I'

14-Apr-1989
Page 3-4
Digital Internal Use Only

CONTROL STRINGS . . . .
...
Device Control Strings . • . . • . .
Other Control Strings . . • . .
Character Strings
. . . . .
Termination Conditions.
,. . . . . .
GR Graphic Characters Within Control
Str ings
. . . . . . . . . . . . . . . .
Unimplemented Control Strings • • •
.•.
PARSING ALGORITHMS • . . . . . .
C Language Source Code • . . . • • • • •

3-28
3-28
3-29
3-29
3-30
3-30
3-30
3-31
3-32

GRAPHIC CODE EXTENSION TECHNIQUES . . . . .
3.6
3.6.1
DESCRIPTION OF SHIFT FUNCTIONS • . . . . .
Locking Shifts . . . . . . • . . . . . .
3.6.1.1
Single Shift Functions . • . . . . . . .
3.6.1.2
DESIGNATING CHARACTER SETS • . .' . . . . .
3.6.2
THE USER PREFERENCE SUPPLEMENTAL SET (UPSS)
3.6.3
3.6.4
DEFAULT DESIGNATION AND INVOCATION . . . .
3.6.4.1
Levell. . . . . . . . . . . . .
Level 2 (without 8-bit Interface
3.6.4.2
Architecture Extension)
...
3.6.4.3
Level 3 (or Level 2 with 8-bit Interface
Architecture Extension)
3.6.4.4
NRCS Extension • .

3-59
3-59
3-61
3-62
3-62
3-62
3-63
3-63

3.7
STATE DESCRIPTIONS
....•......
3.7.1
CONTROL SETS
• • .
3.7.2
G-SETS . . .
. . . . . • . . .
3.7.3
IN USE TABLE . • . . . . . • •
3.7.4
SINGLE SHIFT FUNCTIONS . . . . . . .
3.7.5
ENVI RONMENTS . . . . . . . . . . . . . • .
3.7.5.1
Level 1 - Host Port . . . .
....
3.7.5.2
Level 2 or Level 3 - Host Port . .

3-65
3-65
3-65
3-65
3-66
3-66
3-67
3-67

3.8
3.8.1

3-68

CONTROL OPERATIONS. . . . . . . . . . . . .
ANNOUNCE SUBSET OF CODE EXTENSION
FACILITIES . . . . . . . . . . . . . .
3.8.2
COMMUNICATIONS ENVIRONMENT..
. ...
Select 7-Bit Cl Transmission
Select 8-Bit C1 Transmission
3.8.3
SHIFT FUNCTIONS . . . . . . . . . • .
3.8.3.1
Locking Shifts. . . . . . .
Locking Shift Zero (Shift In)
Locking Shift One (Shift Out)
Locking Shift Two
Locking Shift Three
Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right
3.8.3.2
Single Shifts . . . . . . . . . . . . .
Single Shift Two
Single Shift Three

momDomD™

3-63
3-64
3-64

3-68
3-71
3-73
3-73

3-80

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-5
Digital Internal Use Only

3.9
3.9.1
3.9.2
3.9.3
3.9.4

CHANGE HISTORY . . • . .
REVISION 0.2 to 0.3
REVISION 0.3 to AX10 .
REVISION AX!O to AX!!
REVISION AX!! to AX!2

3-83
3-83
3-84
3-85
3-86

3.10

REFERENCED DOCUMENTS

3-88

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

mDmDomD™

14-Apr-I'S9
Page 3-6
. Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
3.1

14-Apr-1989
Page 3-7
Digital Internal Use Only

INTRODUCTION

This specification defines the form and syntax of the coded
interchange between terminal products and other system components.
It applies directly to serial line communications consisting of a
stream of 7-bit or 8-bit combinations referred to as "coded
characters". The mechanisms employed for achieving this form of
communication, however, may be applied within the context of block
oriented line protocols, networking packet protocols, and program
call interfaces over high-bandwidth bus interconnects.
3.1.1

SCOPE

The recognition and coding of characters as described in this
specification applies uniformly to all display terminals, printing
terminals, computing terminals and workstations, and is
independent of the actual character sets implemented in a
particular terminal product. The syntax defined herein applies
equally to the transmission and receipt of coded interchange at
the terminal interface.
3.1.2

NATIONAL REPLACEMENT CHARACTER SET (NRCS) EXTENSION

Support for National Replacement Character Sets was introduced as
an extension to the VT200 family of Digital terminals for backward
compatibility with national versions of the VT100 family.
The
NRCS extension allows U.S. ASCII to be replaced by one of 12 NRC
sets corresponding to the keyboard dialect selected (when the
keyboard dialect is other than "North American"). These 7-bit
character sets are similar to U.S. ASCII, but replace certain
reserved character positions with national use characters. The
National Replacement Character Mode (DECNRCM) is intended for
backward compatibility and restricts the terminal to 7-bit
characters. New applications are encouraged to use one of the
8-bit multinational character sets.
See "Character Set Mode" in
DEC STD 070-6 Video Systems Reference Manual
Keyboard
Processing. The rest of this section of DEC STD 070 does not
assume the NRCS Extension is present.

=

3.1.3

8-BIT INTERFACE ARCHITECTURE EXTENSION

Support for 96-character graphic character sets, ISO Latin-1
Supplemental, and the User Preference Supplemental Set (UPSS) was
introduced on the VT300 family of Digital terminals. The 8-bit
Interface Architecture Extension is required for Level 3
conformance to the Character Cell Display service class, and is
strongly recommended (but not mandatory) for Level 2.
It is also
mandatory for Level 2 of the Character Cell Printer service class.
The rest of this section for DEC STD 070 assumes the 8-bit
Interface Architecture Extension is present.

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer
3.1.4

14-Apr-1989
Page 3-8
Digital Internal Use Only

RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)

Character encoding forms a part of the Code Extension Layer of the
Terminal Interface Architecture.
It is independent of any
specific service class, and therefore applies across all products
implementing any aspect of the architecture.

USER

Input Processing

..
T
e
r
m
i
n
a
1

M
a
n
a
g
e
m
e
n
t

Presentation
Service Class

II
II
II

Code Extension
Layer

II

. NRCS . 8-hi t I I
. IA
II

II

II

=---=-=-----=====--=-----=-==--==-==-=---=--==APPLICATION PROCESS

Figure 1. Structuring of the Terminal Interface Architecture

momDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-9
Digital Internal Use Only

The interfaces defined within this standard apply to both internal
and external product interfaces.
txternal interfaces are
interf~ces between a terminal, personal computer, or workstation
and a remote system.
Internal interfaces are interfaces between a
terminal subsystem and software processes running within a
terminal, personal computer, or workstation.
.

*

**

terminal system

host system

----------------------~---*

physical
terminal

virtual
terminal

*
* ......... .

*

*
--------------------------*

 *
*
**

terminal

.............. I



application
process


firmware> *

*

* INTERNAL INTERFACE

Figure 2. External and Internal Terminal Interfaces

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer
3.2

l4-Apr-l989
page 3-lU
Digital. Internal Use Only

TERMINOLOGY

bit combination - Ordered set of bits that represent a character.
byte - A 7-bit or 8-bit string that is used to represent control
or graphic information. The size of the byte is independent of
redundancy or framing technique. (Note: this term commonly
refers to the 8-bit unit.)
character - Member of a set of elements that is ~s~d for the
organization, control and representation o·f data.
code; Coded Character Set - Set of unambiguous rules that
establishes a character set and the one-to-one relationship
between the characters of the set and their bit combinations.
code extension - Techniques for the encoding of characters that
are not included in the character set of a given code.
code table - Table showing the character corresponding to each bit
combination in a code.
.
control character - Control function of which the coded
representation consists of a single bit combination.
control function - Action that affects the recording, processing,
transmission, or interpretation of data. The coded representation
of a control function consists of one or more bit combinations.
control sequence - Bit string that is for control purposes in code
extension procedures consisting of two or more bit combinations,
beginning with a Control Sequence Introducer (CSI) control
function, and that may contain parametric information for the
control function.
control string - A string of characters that is used to perform a
control function and is delimited by an opening and closing
delimiter control. The opening delimiter is one of a small set of
introducer control functions (APC, DCS, OSC, PM), and the closing
delimiter is string Terminator (ST). Within Digital, the syntax
of control strings has been extended to include an introducer
sequence that acts as a protocol selector and specifies how to
interpret subsequent control string data.
designate - To identify a set of characters that are to be
represented, in some cases immediately and in others upon further
occurrence of a control function, in a prescribed manner.
environment - The characteristic that identifies the number of
bits used to represent a character in a data processing or data
communication system, or in part of such a system.
escape sequence - Bit string that is for control purposes in code
extension procedures consisting of two or more bi t combinations-,
the first of which is an Escape (ESC) character.

mDmDDmD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-11
Digital Internal Use Only

expansion escape sequence (Fe) - 2-character escape sequence in
which the final character is in columns 4 an~ 5, and is used to
extend the 7-bit code table by being the row equivalent to the
corresponding C1 set of controls in columns 8 and 9 of an 8-bit
code.
final character - The character whose bit combination terminates
an escape sequence, control sequence, or control string introducer
sequence.
graphic character - Character, other than a control character,
that has a handwritten, printed, or displayed visual
representation and that has a cod~d representation consisting of
one bit combination.
intermediate character - A character whose bit combination
precedes a Final character in an escape sequence, control
sequence, or control string introducer sequence.
invoke - To cause a designated set of characters to be represented
by the prescribed bit combinations whenever those bit combinations
occur (until an appropriate code extension function occurs).
numeric parameter - A control
numeric values.

sequenc~

parameter used for passing

parameter string - A character string, the bit combination of
which occurs between the Control Sequence Introducer character and
the first intermediate ~haracter or final. character of a control
sequence.
position - Item in a code table identified by its column and row
coordinates.
represent - 1) To use a prescribed bit combination with the
meaning of a character in a set of characters that has been
designated and invoked. 2) To use an escape sequence with the
meaning of an additional control function.
selective parameter - A control sequence parameter used to select
particular entries from a specified list.

EL-00070-03
VSRM - Code Extension Layer
3.3

14-Apr-1989
Page 3-12
Digital Internal Use Only

CHARACTER CODING DESCRIPTION

3.3.1

CHARACTER CODES

A character code is a unique bit combination that defines a
position in a coded character set by its column and row coordinate
within that set. Characters may be coded using 7-bit combinations
or 8-bit combinations. The choice of whether 7-bit or 8-bit
character codes are used is dependent on the "width" (frame size)
of the communications channel (referred to in this specification
as the "environment").
If the channel is only seven bits wide, then only 7-bit character
codes may be used.
If the channel is eight bits wide, then either
7-bit or 8-bit character codes may be used (7-bit character codes
are a specific subset of the 8-bit code structure). The following
table describes how the column and row position in the coded
character set is derived fro'm both 7-bi t and 8-bi t character
codes.

Bits of a 7-bit
combination
Bits of an 8-bit
combination

1
1
1
1
1 b7 1 b6 1 bS 1 b4 1 b3 1 b2 1 b1 1
1_1_1_1_1_1_'_1_'
,
,
,
,
,
I
I
I
,
, a8 , a7 , a6 I as 1 a4 1 a3 1 a2 1 al 1
1_1_1_1_1_'_'_1_'
I

,

COLUMN

1

1
1

ROW

1

1

,

1

Column and Row Reference

3.3.2

7-BIT CHARACTER SETS

A 7-bit coded character set has the following features.
a.

A set of 32 control characters allocated to columns 00
and 01 (bit combinations in the range %
to 1/15
inclusive).
AND EITHER

b.

A character Space (SP) in position 2/0, that may be
regarded as either a control character or a graphic
character.

c.

A set of 94 graphic characters allocated to columns 02 to
07 (bit combinations from 2/1 to 7/14, inclusive).

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer
d.

14-Apr-1989
Page 3-13
Digital Internal Use Only

A control character Delete (DEL) in position 7/15.
OR

e.

A set of 96 graphic characters allocated to columns 02 to
07 (bit combinations from 2/0 to 7/15, inclusive).

The following table describes the structure of a.7-bit coded
character set including a 94-character graphic character set.
row

column

00 01 02 03 04 05 06 07
+---+---+---+---+---+---+---+---+
001
ISP I
I
+
+---+
I
011
I
I
+
I
I
021
I
I
+
I
I
031
I
I
+
I
I
041
I
I
+
I
I
051
I
I
.+
I
I
061
I
I
+
I
GL
071 CO
I
+controll
graphic
codes
081 codes I
+
I
091
I
+
I
10 I·
I
+
I
111
I
+
I
121
I
+
I
131
I
+
I
141
I
+
+---+
I
151
IDELI
I
+---+---+---+---+---+---+---+---+
Figure 3. 7-bit Code Table structure

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer
3.3.3

14-Apr-1989
Digital

Int~rnal

Page 3-14
Use Only

8-BIT CHARACTER SETS

An 8-bit coded character set has the following features.
a.

All the features of a 7-bit coded character set as
previously listed.

b.

A set of thirty-two control characters allocated to
columns 08 and 09, called the C1 control set (bit
combinations from 8/0 to 9/15, inclusive).
AND EITHER

c.

A set of 94 graphic characters allocated to columns 10 to
15 (bit combinations from 10/1 to 15/14, inclusive),
called the GRgraphics set (for right~hand graphics set).
OR

d.

A set of 96 graphic characters allocated to columns 10 to
15 (bit combinations from 10/0 to 15/15, inclusive).
Note
2/0, 7/15, 10/0 and 15/15 are not included in CO,
GL, C1, or GR for 94-character graphic sets.
2/0 and 7/15'are included in GL when a
96-character set is invoked intq GL.
10/0 and 15/15 ~re included in GR when a
96-character set is invoked into GR.

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-15
Digital Internal Use Only

The following table describes the structure of an 8-bit coded
character set with 94-character graphic character sets.
Column

Row

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
001
ISP I
I
IXXXI
I
+
+---+
I
+---+
+
011
I
+

021
+

031
+
041
+

051
+
061
+
071
CO
+control
081 codes

GL
graphic
codes

+

091
+
10 I
+
111
+
121
+
131
+
141

I
I
I
I
I
I
I
I
I
I
I
I

+

I
+

I
+

I

+

I
+

I
+

Cl
Icontro1
I codes

GR
graphic
codes

I
I
I
I
I
I

I
+

I
+

I
+

I

I

+

I
I
I
I
I

+

+

+

I

+

+---+

+---+

151
IDELI
IXXXI
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

<------ seven bit codes ------->
<----------------------- eight bit

codes

----------------------->

Figure 4. a-bit Code Table structure

momDomD™

EL-00070-03
VSRM - Code Extension Layer
3.3.4

14-Apr-1989
Page 3-16
Digital Internal Use Only

CONTROL AND GRAPHIC CODES

The coded character stream can be separated into two categories:
control functions and coded graphic characters. Control functions
are actions that affect the recording, processing, transmission,
or interpretation of data. Coded graphic characters represent
actual presentation data. All bit combinations in the coded
character stream are specifically categorized as being either part
of a control function or a coded graphic character.
3.3.4.1

Control Characters

A control character is a single character whose occurrence in a
particular context initiates, modifies, or stops a control
function.
The control characters are referred to as CO and C1.
DEL (delete, 7/15) is also a control character, although it is not
a member of the CO or C1 sets. SP (space, 2/0) is also not a
. member of CO or C1, but it may be considered to be either a
control character or a graphic character.
In a 7-bit environment, the values of a CO control character are
in the range of columns 00 and 01 of the code table.
The C1
control characters are represented in 7-bit environments by
2-character escape sequences.
In an a-bit environment, the values of CO control characters are
from columns 00 and 01 and the values of C1 control. characters are
from columns 08 and 09.
3.3.4.2

Graphic Characters

Graphic characters are characters other than a control character
having a visual representation which is normally printed or
displayed. This includes all characters from the GL and GR
portions of the code table (2/1 to 7/14 inclusive and 10/1 to
15/14 inclusive for 94 character sets; 2/0 to 7/15, inclusive and
10/0 to 15/15 inclusive for 96 character sets). Graphic
characters are frequently referred to as "printing characters".
Bit combinations in this same range that occur within escape or
control sequences are not treated as graphic characters,· but are
processed as part of the control function.

EL-00070-03
VSRM - Code Extension Layer
3.4

14-Apr-1989
Page 3-17
Digital Internal Use Only

SPECIAL CHARACTERS

When 94-character graphic character sets are used, the following
characters are not part of either the control or graphic· sets in a
7-bit or a-bit code, and therefore have special processing as
described below.
3.4.1

2/0 (SPACE)

The Space character may be interpreted as a graphic character, a
control character, or both. As a graphic character it has the
visual representation of the absence of a graphic symbol. The
Space character will be displayed using whatever display
attributes are currently active.
3.4.2

7/15 (DELETE)

When received by a terminal, the Delete character is treated as an
unimplemented control character and shall be ignored. Conforming
software shall not use Delete as a pad character. The Delete
character may be issued as a result of keyboard processing.
Refer
to DEC STD 070-6 for more information.
3.4.3

10/0

The character code 10/0 in a-bit environments is treated as an
unassigned graphic character code, and will cause the error
character (usually imaged as a REVERSE QUESTION MARK) to be
displayed on conforming devices. Within escape sequences and
control sequences, the high order bit of this character will be
ignored, and it will be treated as syntactically equivalent to
Space (2/0).
3.4.4

15/15,

The character code 15/15 in a-bit environments is treated as an
unimplemented control code and shall be ignored.

EL-00070-03
VSRM - Code Extension Layer
3.5

14-Apr-1989
Page 3-18
Digital Internal Use Only

CONTROL CODE EXTENSION TECHNIQUES

Because the number of controls typically required for effective
communication far exceeds the number provided in either the 7-bit
or 8-bit code tables, special methods of providing additional
control functions have evolved. These methods can be divided into
three categories: escape sequences, control sequences, and
control strings.
3.5.1

GENERAL RULES

3.5.1.1

Precedence of Control Functions

Control characters, escape sequences, control sequences, control
strings, and graphic characters are processed serially in the
forward direction in the data stream with the following
precedence:
1.

Control characters

2.

Escape sequences, control sequences, and control strings
(equal precedence)

3.

Graphic characters

Thus, if a control character is transmitted in the middle of an
escape sequence, the cqntrol character is executed as if the
escape sequence were not present (that is, as if the control
character had been received immediately before the escape
sequence), with the exceptions noted below. The next character
received is assumed to be part of the escape sequence. However,
when transmitting to a device, implementors are warned not to
count on this property if they wish to follow the emerging ANSI
and ISO standards that specify this as an error condition whose
recovery is not specified. Control characters, escape sequences,
control sequences, and control strings should not (not mandatory)
be embedded in other escape sequences, control sequences, or
control strings.
3.5.1.2

Termination Conditions

Escape sequences and control sequences normally terminate only on
the receipt of a valid final character. However, there are
certain conditions that will cause a sequence to be terminated
without valid interpretation. In all of these cases, the
terminated sequence is ignored.

EL-00070-03
VSRM - Code Extension Layer
3.5.1.2.1

Page 3-19
Digital Internal Use Only

14-Apr-19.~~q

Cancel

Cancel (CAN, 1/8) is used to indicate that the data with which it
is sent is in error or is to be disregarded. Therefore, the
receipt of CAN causes immediate termination, without execution, of
any sequence in progress. The CAN character itself receives no
further processing. The characters following the CAN are not
interpreted as part of the escape or control sequence, but rather
are interpreted normally.
3.5.1.2.2

Substitute

Substitute (SUB, 1/10) is used to indicate replacement of a
character that could not be represented. The receipt of SUB
causes immediate termination, without execution, of any sequence
in progress. The SUB character itself, and all subsequent
characters, are not interpreted as part of the escape or control
sequence, but rather are interpreted normally.
3.5.1.2.3

Escape

If an Escape (ESC, 1/11) is embedded in an escape or control
sequence, the sequence is canceled and a new sequence begins with
that ESC.
3.5.1.2.4

C1 Control Codes

Since C1 control functions may be represented as ESC Fe sequences
in 7-bit environments, C1 control characters embedded in an escape
sequence or control sequence shall cause the sequence to be
canceled and a new control function to begin with the C1 control,
character. This provides for compatibility between 7-bit and
a-bit implementations.
3.5.1.2.5

Universal Terminator

In many instances it is important that the communications link be
set into a known state in order for conforming interchange to
proceed. Because of the complexity of the parsing algorithms and
rules regarding control code processing, it is desirable to
provide a single escapement that aborts any code processing in
progress and restore the terminal to a base state. This may be
accomplished using the string Terminator control code, transmitted
in its 7-bit format as ESC \ (1/11 5/12). This control terminates
the following conditions.
'

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-20
, Digital Internal Use Only

a.

Escape Sequence in Progress - The initial Escape control
character will cause the sequence in progress to be
canceled. The String Terminator will then be processed
as an ESC Fe sequence (7-bit C1 control code). If no
control string is in progress, the String Terminator will
be ignored.

b.

Control Sequence in Progress - Same as Escape Sequence in
Progress.

c.

Control String in Progress - If received before the Final
Character, the control string will be treated as a
Control Sequence in Progress. If the String Terminator
is received after the Final Character, it causes normal
termination of the control string~

d.

No Control Function in Progress - If a control function
is not in progress when the String Terminator is
received, it will be processed as an ESC Fe sequence
(7-bit Cl control code) and will be ignored by the
receiving party.
NOTE
This ,use of string Terminator applies to ANSI
conforming interchange as described in this
standard. Specific products may choose to
implement non-ANSI modes that do not recognize
String Terminator. Such modes should "be
'
documented exceptions.
'

3.S.1.3

Unimplemented Functions

Unimplemented functions shall be ignored as if they were not
received. This applies to unimplemented control characters,
escape sequences, control sequences, parameters of control
sequences, and control strings.
For example, unimplemented selective parameter values of control
sequences shall be ignored as if that parameter were not received.
Processing of the sequence shall continue with the next parameter.
For example, if the control sequence Select Graphic Rendition
(SGR) is sent with parameters: 1 (bold), 3 (italicized), 7
(negative image), and 21 (doubly underlined), and the terminal
implements bold and negative image, but does not implement
italicized or doubly underlined, the parameters 1 and 7 shall be
executed, and 3 and 21 shall be ignored.

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer
3.5.1.4

14-Apr-1989
Page 3-21
Digital Internal Use Only

Transformation Between 7-bit and 8-bit Environments

To simplify the transformation between 7-bit and 8-bit
environments, relaxations in constraints for th. structure of
Control Sequences (introduced by CSI), control string introducer
sequences (introduced by APC, DCS, PM, and OSC), G2 sequences
(introduced by SS2), and G3 sequences (introduced by SS3) are
defined as follows:
In an 8-bit code, the bit combinations of columns 10 to 15 (except
15/15) are permitted to represent:
a.

Parameters, intermediates, and finals of a control
sequence

b.

The contents of a control string introducer sequence

c.

The operand of a single-shift character

In these situations, the bit combinations in the range 10/0 to
15/15 have the same meaning as the bit combinations in the
corresponding row from columns 02 to 07 (bit combinations in the
range 2/0 to 7/15 inclusive).
In a 7-bit code, the control characters Shift Out (SO, 0/14) and
Shift In (SI, 0/15) are permitted to occur:
a.

Between the Control Sequence Introducer (CSI, 9/11) and
the final bit combination of a control sequence

b.

Between the opening delimiter of a control string and the
string Terminator (ST, 9/12)

c.

Between a single-shift character and its operand

Shift Out and Shift In have no effect on the interpretation of a
control sequence, a control string, or the operand of a single
shift character, but may affect the meanings of sebsequent bit
combinations in the data stream.

EL-00070-03
VSRM - Code Extension Layer
3.5.2

14-Apr-1989
Page 3-22
Digital Internal Use Only

ESCAPE SEQUENCES

An escape sequence is a bii string that is used for conttol
purposes in code extension procedures and that consists of two or
more bit combinations, of which the first is the bit combination
corresponding to the Escape character (1/11).
The general form of an escape sequence is:
ESC

1 .. 1

F

where:
a.

ESC (Escape) is the introducer character, coded as 1/11
in both 7-bit and 8-bit environments.

b.

1 .• 1 are zero or more intermediate bit combinations used
in combination with the final character to specify the
particular function.
Intermediate characters for escape
sequences are bit combinations in the range of 2/0 to
2/15, inclusive.
Conforming implementations shall recognize at least three
intermediate characters.
If more intermediates than can
be recognized are received, the entire sequence shall be
ignored up to and including the final character.

c.

F is a final, function defining character.
It is used
either by itself or in combination with the intermediate
characters (if any) to establish the encoded function.
Final characters for escape sequences are bit
combinations in the range 3/0 to 7/14 inclusive.

d.

The occurrence of bit combinations %
to 1/15,
inclusive, as well as 7/15 and 15/15 in escape sequences
are special conditions that are handled by immediately
executing the control function indicated, and by
continuing processing of the escape sequence as if the
intervening control code had not been received. Note
that if the control code is CAN, ESC, or SUB, the
sequence in progress is terminated.

e.

The receipt of any 8-bit C1 control character in the
range 8/0 to 9/15, inclusive, during the processing of an
escape sequence causes the ~equence in progress to be
terminated.
(See subhead 3.6.1.2.4 under Termination
Conditions)

f.

Characters from columns 10 to 15 (10/0 to 15/14
inclusive) may occur in escape sequences and have the
same interpretation as the character from the
corresponding row in columns 02 to 07.
Thus, the 8th bit
of graphic characters should be ignored when interpreting
an escape sequence.

EL-00070-03
VSRM - Code Extension Layer
3.5.2.1

14-Apr-1989
Page 3-23
Digital Internal Use Only

Expansion Escape Sequence (Fe)

An expansion escape sequence is a special 2-character escape
sequence ( ESC Fe ), where Fe is in columns 04 and 05 (bit
combinations from 4/0 to 5/15 inclusive). Expansion escape
sequences are used to expand the 7-bit code table by being
equivalent to the 8-bit C1 control code in the row in columns 08
and 09 corresponding to the row of the Fe character.
3.5.3

CONTROL SEQUENCES

A control sequence is a bit string consisting of two or more bit
combinations, beginning with the Control Sequence Introducer
(CSI), and that may contain parametric information for the control
function.
The general form of a control sequence is:
CSI

P .. P

1 .. 1

F

where:
a.

CSI is the introducer character coded as 9/11 in 8-bit
environments and the 2-character escape sequence 1/11
5/11 ( ESC [ ) in 7-bit environments.

b.

P .. P is called the "parameter string". The minimum
length is zero and the maximum length is defined by the
implementation. However, all bit combinations are from
3/0 to 3/15 inclusive.

c.

1 •. 1 are the intermediate characters that may be used to
expand the repertoire of functions beyond the limit of 63
implied by the single final character value.
Intermediate characters for control sequences are bit
combinations in the range 2/0 to 2/15 inclusive.
If 3/0
to 3/15 occur after the occurrence of one or more
intermediate characters, the sequence is invalid.
However, the end of the control sequence is still defined
by the final character.
Interpretation will continue
until a valid final character is received.
Conforming implementations shall recognize at least three
intermediate characters.
If more intermediates than can
be recognized are received, the entire sequence shall be
ignored, up to and including the final character.

d.

F is a final, function defining character.
It is used
either by itself or with the intermediate characters (if
any) to establish what function is encoded.
Final
characters are bit combinations in the range 4/0 to 7/14,
inclusive.

momDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-24
Digital Internal Use Only

e.

The occurrence of bit. combinations % to 1/15,
inclusive, as well as 7/15 and 15/15 in control
sequences, are special conditions that are handled by
immediately executing the control function indicated, and
continuing processing of the control sequence as if the
intervening control'code had not been received. Note
that if the control code is CAN, ESC, or SUB, the
sequence in progress is terminated.

f.

The receipt of any 8-bit C1 control character in the
range 8/0 to 9/15 inclusive during the processing of a
control sequence causes the sequence in progress to be
terminated. (See subhead 3.6.1.2.4 under Termination
Conditions)

g.

Characters from columns 10 to 15 (10/0 to 15/14
inclusive) may occur in control sequences and have the
same interpretation as th~ character from the
corresponding row in columns 02 to 07. Thus, the 8th bit
of graphic characters should be ignored when interpreting
a control sequence.

3.5.3.1

PARAMETER VALUES IN CONTROL SEQUENCES

A parameter string consists of bit combinations from 3/0 to 3/15
inclusive. The string represents one or more numeric or selective
parameter values. The maximum value of each parameter is defined
by implementation. A minimum of 16384 decimal (14 bits) is
recommended. Parameter values larger than the maximum supported
by an implementation should be mapped to the largest value
supported (although this is not mandatory).
The maximum number of parameters that can be contained in a single
parameter string is also implementation defined; however, support
for up to 16 parameters is required for compatibility. Parameters
beyond the maximum number supported may be ignored.
Each parameter value consists of zero or more bit combinations
from 3/0 to 3/9 inclusive, representing the decimal digits 0 to 9.
If more than one parameter value is to be supplied, the parameters
are separated from each other by the bit combination 3/11 (ASCII
semicolon ";"). The bit combination 3/10 is reserved for future
standardization. If 3/10 is received within a parameter string,
the entire sequence up to and including the final character shall
be ignored. Bit combinations 3/12 through 3/15 are used for
private parameter strings (see subhead 3.5.3.4).
In each parameter, leading bit combinations of 3/0 are not
significant and may be omitted. A zero length parameter, or one
consisting only of 3/0 bit combinations, represents a default
whose value depends upon the control function.

momDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-25
Digital Internal Use Only

Representation of a Default Parameter Value
The latest version of ISO 6429 has instituted a
change that permits a parameter consisting only of
3/0 bit combinations to be treated as a parameter
value of zero, not necessarily the default value.
A selectable mode has been defined in the ISO
standard that controls the interpretation of a
parameter string consisting only of 3/0 bit
combinations as the default value.
This standard specifies that implementations
continue to recognize a zero-length parameter or
one consisting of only 3/0 bit combinations as
representing a default value for the control
sequence.
(A small number of Digital private
control functions violate this rule.
Refer to DEC
STD 138-0 Registry of Control Functions for
Character-Imaging Devices for further
information.)

3.5.3.2

NUMERIC PARAMETERS

Numeric parameters are used for passing numeric values.
If more
than one parameter value is supplied, the ordering of parameters
is significant and must be preserved by the use of additional
separators to replace omitted parameter values. A zero or omitted
numeric parameter represents a default that can apply to that one
parameter or to the entire parameter string, depending on the
control function.
3.5.3.3

SELECTIVE PARAMETERS

Selective parameters are used for selecting options from a list.
The list of options and corresponding parameter values is defined
by the control function.
A control sequence with selective
parameters is specified as taking either a fixed or variable
number of selective parameters.
If a fixed number of selective parameters is specified, the
meaning of each parameter is determined from a separate list of
values or actions. All of the parameters are required (or are
assumed to be defaulted) for the particular control function to
take effect.
If a variable number of selective parameters is specified, each
parameter selects a particular entry from a single list identified
by the control.

EL-00070-03
VSRM - Code Extensio,n Layer

14-Apr-1989
Page 3-26
Digital Internal Use Only

In control sequences with a variable number of parameters, the
parameters shall be processed sequentially beginning with the
first parameter. A control sequence containing more than one such
selective parameter shall have the same effect as a corresponding
number of separate control sequences, each with a single
parameter.
For example, if Select Graphic Rendition (SGR) is sent with the
following parameters, the resulting rendition will be negative
image, slowly blinking, since the 0 parameter, executed after
setting bold and underline, would return the current rendition
value to normal.
1 (bold)
4 (underlined)

o

(all attributes off)

7 (negative image)
5 (slowly blinking)

3.5.3.4

I
I
I
I
I
I
I
I

PRIVATE PARAMETER STRINGS

If a parameter string begins with a bit combination from 3/12
through 3/15, inclusive, the entire parameter string is subject to
private interpretation. This means that the control has a special
interpretation that is not specified in national or international
standards. If bit combinati.ons 3/12 through 3/15 occur anywhere
else in the control sequence o~her than as the first character of
the parameter string, the entire sequence up to and including the
final character shall be ignored.
Syntactically, the subsequent processing of private parameter
strings is identical to the processing of standard parameter
strings.

momDDmD™

EL-00070-03
VSRM - Code Extension Layer
3.5.3.5

14-Apr-1989
Page 3-27
Digital Internal Use Only

Examples of Parameter Strings

Table -1. Examples of Parameter Stings
Char
Form

Column/row
Form

Explanation

7

3/7

A single parameter value of 7

0007

3/0 3/0 3/0 3/7

A single parameter value of 7

98

3/9 3/8

A single parameter value of 98

4;2

3/4 3/11 3/2

Two parameters with values 4 and 2

13

3/12 3/3

A private parameter with value of 3

2;

3/2 3/11

Two parameters with the first having
the value 2 and the second having the
default value

;5

3/11 3/5

Two parameters with the first having
the default value and the secondhaving the value 5

1;;4

3/1 3/11 3/11 3/4
Three parameters with the first
having the value 1, the second having
the default value, and the third
having the value 4

13;4

3/15 3/3 3/11,3/4
A private parameter string containing
two parameter values, 3 and 4

3;14

3/3 3/11 3/15 3/4
An error. The occurrence of 3/15
as any but the first character of the
parameter string invalidates the
control sequence.

~DmDDmDTM

14-Apr-1989
Page 3-28
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
3.5.4

CONTROL STRINGS

Control strings are a special class of control code extensions
that provide a wide range of functions.
There are four types of
control strings, each of which has the same general structure with
its own introducer character and internal variations. The four
types and their formats are:
Application Program Command

APC (9/15)

0 .. 0

ST (9/12)

Device Control Strings

DCS (9/0)

0 .. 0

ST (9/12)

Operating System Command

OSC (9/13)

0 .. 0

ST (9/12)

Privacy Message

PM

0 .. 0

ST (9/12)

(9/14)

where:
a.

APC, DCS, OSC, or PM is the introducer character that
starts the control string and determines its type.
In
7-bit environments, the introducer control characters are
encoded as 1/11 5/15 (ESC ), 1/11 5/0 (ESC P), 1/11 5/13
(ESC ]), and 1/11 5/14 (ESC A), respectively

b.

0 .. 0 is a command string which has a unique format for

each control string type. However, the command string
must be made up of characters in the range 0/8 to 0/13
inclusive"and 2/0 to 7/14 inclusive. The inclusion of co
Controls 0/8 to 0/13 in control string data is intended
for convenience in formating and storing control strings.
It is recommended that these characters not affect the
interpretation of the control string.
c.

3.5.4.1

ST is the String Terminator control character (in 7-bit
environments ST is coded as ESC \ (1/11 5/12».

Device Control Strings

The internal format of a Device Control String is:
DCS

P .. P

I .. I

F

0 .. 0

ST

where:
a.

DCS is the Device Control String introducer.

b.

P .. P is an optional parameter string, identical in syntax
to the parameter string of a control sequence.

c.

I .. I is zero or more intermediate characters in the range
2/0 to 2/15 inclusive.

mDmoomD™

14-Apr-1989
Page 3-29
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
d.

F is a final, function defining character, in the range
7/0 to 7/14 inclusive (the same as for private Control
Sequences).

e.

0 .. 0 is the command string, whose format is determined by

the combination of parameters, intermediate characters,
and final character that precede it.
f.

3.5.4.2

ST is the String Terminator control character.

Other Control Strings

Other control string types (Application Program Command, Operating
System Command, and Privacy Message) are defined to have the
following internal format.
APC
OSC
PM

1 •. 1
1 •• 1
1 .. 1

F
F
F

0 •• 0
0 •• 0
0 •• 0

ST
ST
ST

where:
a.

APC, OSC, or PM is the Control String introducer.

b.

1 .. 1 is zero or more intermediate characters in the range
2/0 to 2/15 inclusive:

c.

F is a final, function defining character, in the range
3/0 to 3/15 inclusive (the same as for private Escape
Sequences).

d.

0 .. 0 is the command string, whose format is determined by

the combination of intermediate characters and final
character which precede it.
e.

3.5.4.3

ST is the String Terminator control character.

Character Strings

Future device implementations should treat the SOS Cl control as
the start of an unimplemented control string, although this is not
mandatory.
A syntax is not yet
strings; the use of
reserved for future
inclusion of escape
Strings.

specified for the interpretation of character
SOS and character strings within Digital is
standardization. Note that ISO may define the
and control sequences inside Character

EL-00070-03
VSRM - Code Extension Layer
3.5.4.4

14-Apr-1989
Page. 3-30
Digital Internal Use Only

Termination Conditions

Control strings will normally terminate upon receipt of a string
Terminator (9/12) chatacter. The receipt of the control
characters. 0/8 through 0/13 is valid within control strings. For
backward compatibility, and to minimize the effect of a lost
String Terminator, the control codes CAN (1/8), SUB (1/10), ESC
(1/11), or any C1 control will also terminate control strings.
Conforming software should not depend on this practice however,
and shall only use the String Terminator control function to
terminate a' control string. Control characters other than those
recognized within the command string syntax may be defined to have
other meanings .in the future. It is recommended that all other
control codes not used within a command string be ignored by
hardware.
3.5.4.5

I
I
I
.I
I
I
I

GR Graphic Characters within Control Strings

GR (8-bit) graphic characters in APC, OSC, and PM control strings
will be treated as their 7-bit equivalent (the eighth bit will be
ignored).
GR (8-bit) graphic characters are permitted within Device Control
Strings, and the graphic character's interpretation will be
dependent on the internal control string format. When they occur
in the introducer sequence to a Device Control String, the eighth
bit will be ignored, and they will be treated as their 7-bit
equivalent. (Note that this is the same way 8-bit graphic
characters are handled within control sequences.)
3.5.4.6

Unimplemented Control Strings

The contents of received control strings that are not implemented
by the receiving party will be ignored. Therefore, all data
(control and,graphic characters) from the control string
introducer to the string terminator (inclusive) will be discarded
without being displayed .

•

EL-00070-03
VSRM - Code Extension Layer
3.5.5

14-Apr-1989
Page 3-31
Digital Internal Use Only

PARSING ALGORITHMS

This section describes the rules required to correctly parse a
7-bit or 8-bit character stream, separating the control functions
from data contained in the stream.
Implementation Notes:
This coding is intended to serve as a guideline to implementors
and a clear specification of the parsing rules against which
product certification can be performed. The code is typical of
actual implementations, but is optimized for architectural
clarity.
It is recognized that specific implementations may alter
the algorithms or program structure to optimize memory or
execution speed. Such implementations must not violate the
external functionality or rules provided by the parsing
algorithms.
VAx-I! C was selected as the implementation language because of
its simplicity, portability, and wide use both inside and outside
of Digital.
Module Overview:
The parser is broken into modules as follows.
gparse.h

global include file
(must be included by external routines
that call the parser)

lparse.h

local include file
(contains definitions used
internally by the parser)

vtparse.c

parse routines

ptexec.c

parser tester executive

Other modules not shown here include system-dependent character
1/0 routines and interrupt handling.

14-Apr-1989
Page 3-32
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
3.5.5.1

C Language Source Code

/******************* module gparse.h ********************

**
**
*
**

*
*
*
*
*

*

Global #include file for callable re-entrant ANSI parser.
Environment:
VAX/VMS
Author: Peter Sichel

24-Feb-1984

Modification history:
13-Nov-1984
P. Sichel
added external events for control·
string introducers APC, OSC, and PM
16-May-1988
P. Sichel
added parse limits
changed default stack size to 32

*

*********************************************************/

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

/* parse limits */
#define MAX NUM INTERMEDIATES
#define MAX-NUM-PARAMETERS
#define MAX:PARAMETE~ VALUE

3
16
16383

/* parse stack */
#define STACK SIZE· 32

struct parse stack

-

{

char index;
/* stack pointer */
unsigned char
class[STACK SIZE];
unsigned char
value[STACK-SIZE];
unsigned short int data[STACK:SIZE];
};

/* common parse states */
#define SEQ START 0
#define CON-START 1
/* external parse events */
#define R PARSE ERROR
0
#define R-CONTINUE
1
#define R-GRAPHIC
2
#def-ine R-CONTROL
3
#define R-ESC SEQ
4
#define R-CSr-SEQ
5
#define R-DCS-SEQ
6
#define R-APC-SEQ
7
#define R-OSC-SEQ
8
#define R:PM_SEQ
9

-

-

mOmOOmD™

EL-00070-03
VSRM - Code Extension Layer

/*
/*

esc ape
seq u e n c e
parser definitions
(includes control character parser also)
*/

/* parse states */
/*
SEQ START 0 */
/*
CON-START 1 */
idefine ES IN SEQ 2
idefine ES-IGNORE 3

/*

14-Apr-1989
Page 3-33
Digital Internal Use Only

con t r

0

1

/* parse states */
SEQ START
/*
idefine CS PRIVATE
idefine CS-PARAM.
idefine CS-INTER
idefine CS-IGNORE

idefine CS IGNORE P 5

momaomD™

/* already defined above */
/* already defined above */

seq u e n c e
0 */
1
2
3
4

*/

parser definitions

*/

/* already defined above */
/* parameter value */
/* ignore sequence,
but parse until final */
/* ignore any further parameters,
but accept sequence if otherwise
valid */

EL-00070-03
VSRM - Code Extension Layer

14-Ap~-1989

page 3-34
Digital Internal Use Only

/*********************** module lparse.h

*
*

*

*

*

**
*
*
*

*
*
*

*
*
*

*
*
*

*
*
*
*

*

*
*
*

***~*******************

Local iinclude file for callable re-entrant ANSI parser
Environment: VAX/VMS
Author: Peter Sichel

VAX-ll C Vl.2
24-Feb-1984

Modification history:
2-May-1984
T. Lasko
Fixed overlapping idefine's in parser states
29-May~1984
P. Sichel
fixed pseq parse table to correcly
ignore invalid sequences
.
l-Jun-1984
P. Sichel·
added state CS OMIT to indicate
omitted parameters explicitly
16-May-1988
P. Sichel
removed CS OMIT
Added CS IGNORE P to ignore parameters
beyond MAX NUM PARAMETERS.
Added ES IGNORE to ignore escape sequences
with more than MAX NUM INTERMEDIATES.
Fixed bug in parse-table that would accept
intermediates from CS IGNORE state.
5-Feb-1989
P. Sichel
·converted parse table data declaration.to use
symbolic constants, and moved to module vtparse.c

****************************************************************/

~DmDDmDTM

14-Apr-1989
page 3-35
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer

/* state classes - used by parse executive to determine which
parser to invoke */
idefine
idefine
idefine
idefine
idefine

o

ESEQ
CSI
DCS
LAST_SEQ
CON

/*
/*
/*
/*
/*

1
2
2
3

escape sequence
*/
control sequence */
control sequence */
"in sequence" marker */
control and graphic characters */

/* internal parse events returned by parse_ansi() */
1
1

I.

1
1
1
1
1
1
1
1

idefine
idefine
idefine
idefine
idefine
idefine

PARSE ERROR
CONTINUE
GRAPHIC
CONTROL
ESC SEQ
PAR=SEQ

OxDO
OxEO
OxFO

idefine CANCEL
idefine PARAM
idefine IGNORE

/*
/*

OxOO
Ox10
Ox20
Ox30
Ox40
Ox50

/* reduce a numeric parameter */

e s c ape
seq u e n c e
parser definitions
(includes control character parser also)
*/

*/

/* parse inputs (count by number of states) */
idefine
idefine
idefine
idefine

/*

ES CONTROL
ES-INTER
ES-FINAL
ES-GRAPHIC

con t r

0

1

0
4
8
12

seq u e n c e

parser definitions

/* parse inputs (count by number of states) */
idefine
idefine
idefine
idefine,
idefine
idefine
ide fine

PI CONTROL
P'!-PRIVATE
PI-NUMERAL
PI SEMI COL
PI - INTER
PI - FINAL
PI-OTHER

mDmDomD

m

0
6
12
18
24
30
36

*/

EL-00070-03
VSRM - Code Ex-tension Layer
1

.1

1

1
1

I
I

1
1
1

I

1

I

14-Apr-1989
Page 3-36
Digital Internal.Use Only

/****************** module vtparse.c ***************

**
*
*
**
*
*
**
*

Callable re-entrant ANSI parser. This module contains
the entire parser, and the action routines that alter
the parse state.
Environment:
Author:

VAX/VMS

Peter Sichel

Modified by.
PAS 30-May-84
*
PAS 12-Nov-84

**
**
*

PAS 13-Nov-84
PAS 16-May-88

*
*

*
*

'*

*

*

PAS

5-Feb-89

*/

momDomD™

VAX-11 C V1.2
24-Feb-1984

added missing "break" to switch case "IGNORE".
modified eseq class and pseq class to
recognize OxFF as a control character
added code to recognize OSC, PM, and APC
control strings
Added code to test for MAX NUM INTERMEDIATES.
Added code to ignore pa-rameters beyond
MAX NUM PARAMETERS.
Added code to handle parameter values
larger than MAX PARAMETER VALUE.
Removed distinction between omitted
and zero parameters.
Included basic documentation in this file.
Included parse tables in this module.

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-37
Digital Internal Use Only

1*

Introduction To VTPARSE

VTPARSE is a table-driven, character re-entrant, callable parser
designed to recognize control functions encoded according to the
ANSI syntax for information interchange. The rules for encoding
control functions are defined in several standards including
ANSI 3.41, DEC STD 138-0 and DEC STD 070-3.
VTPARSE accepts one input character at a time (per call), and
recognizes the following catagories of control functions when
they occur in the input stream.
o

Graphic Characters

o

CO and C1 Control Characters

o

Escape Sequences

o

Control Sequences

o

Control String Introducer Sequences including:
DCS, OSC, PM, and APC

Interpreting Return Information From parse_ansi
Parse ansi

r~turns

R PARSE ERROR
R-CONTINUE
R-GRAPHIC
R-CONTROL
R-ESC SEQ
R-CSI-SEQ
R-DCS-SEQ
R-OSC:-SEQ
R-PM SEQ
R:APC_SEQ

with "event" set to one of the following.
parse stack overflow, or software bug
no event, continue parsing
recognized a graphic character
recognized a control character
recognized an escape sequence
recognized a control sequence
recognized a DCS introducer sequence
recognized a OSC introducer sequence
recognized a PM introducer sequence
recognized a APC introducer sequence

The character or character sequence recognized is on the
"state" stack. Parse ansi returns two integers pointing to
the first and final characters of the sequence on the stack.
Each stack entry has three fields: a "class" field, a "value"
field, and a "data" field. The possible values for these fields
are defined in the include files "gparse.h" and "lparse.h".
The "class" field is used internally by the parser to determine
which subparser to invoke (that is, the parse table to use). To
keep the tables reasonably small, a separate table is used for
parsing parameter sequences.

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-38
.
Digital Internal Use Only

The "value" field is used by the parser to maintain its current
state.
The parser is a table driven finite state automata,
where the next state and action are a function of the current
state and input. The "value" field of the parse stack provides
a history of what states the parser has been in and is useful
for interpreting the contents of the parse stack. The "value"
field may be used to identify the contents of the "data" field
except for the final character of a sequence. The final "value"
is usually meaningless because when a sequence is recognized,
it is removed from the stack eliminating the need for a parse
state. A single graphic or control character is considered both
the start and final character of a sequence.
The "data" field contains the actual character data input to the
parser or a number of characters in reduced form.
Examples of
reduced forms are a single Cl control replacing an Fe sequence
or a complete parameter value replacing a number of individual
parameter characters~ Reduced forms will always be identified
by the contents of the "value" field.
Examples of typical stack data are:
value

data

final ->

CON START

41 'A'

event = R GRAPHIC
(the letter "A")

final ->

CON START

00

event = R CONTROL
(carriage return)

final ->

CON START
ES IN SEQ
SEQ_START

41 ' A'
28 ' ( ,
IB ESC

event = R ESC SEQ
(designate UK-into GO)

CS IGNORE
CS-PARAM
CS-PRIVATE
SEQ_START

68 ' h'
3
3F '?'
9B CSI

event = R CSI SEQ
parameter-value 3
DEC private char
(set 132 col mode)

72 'r'
14

start ->

CS IGNORE
CS-PARAM
CS-PARAM
SEQ_START

event = R CSI SEQ
parameter-value 14(hex)
zero or omitted parameter
(set scroll region from
line 1 to line 18)

final ->
start ->

CS IGNORE
SEQ_START

72 ' p'
90 DCS

event = R DCS SEQ
(begin REGIS DCS)

final ->

CON START

9C ST

event = R CONTROL
(string terminator)

start ->
final ->
start ->
final ->

o

9B CSI

Errors And Exceptions
The parser ignores any invalid sequences it receives.
No control function is recognized, and the parser resynchronizes
the input stream according to the rules for error recovery in
DEC STD 138-0.

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-39
Digital Internal Use Only

To summarize:
o

ESC restarts any escape, control, or control string
introducer sequence in progress.

o

CAN and SUB immediately cancel any escape, control, or
control string introducer sequence in progress. SUB is
recognized a~ a CO control if no sequence is in
progress.

o

All other CO controls are immediately recognized within
escape, control, ·or control string introducer sequences.
The escape, control, or control string introducer
sequence continues where it left off~

o

C1 controls immediately cancel any escape, control, or
control string introducer sequence in progress. The C1
control is then recognized normally.
This is for 7-bit
compatibility where C1 controls are represented by two
character Fe escape sequences.
Two character Fe escape sequences are converted to C1
controls by the parser.

o

Within escape, control, and control string introducer
sequences, eight-bit graphic codes (GR set) are
truncated to seven~bit codes.

o

If a private parameter character «, =, ), 1) occurs
after the first parameter, the entire sequence will be
ignored up to and including its final character.

o

If a parameter character occurs after the first
intermediate character, the entire sequence will be
ignored up to and including its final character.

o

The parser recognizes parameter values up to
16383 (14 bits) as specified by the constant
MAX PARAMETER VALUE in "gparse.h".
If a parameter
exceeds the maximum value, the parameter will be set
_to the maximum value.

o

The parser recognizes up to 16 parameters in a
single parameter sequence as specified by the
constant MAX NUM PARAMETERS in "gparse.h".
If more
than MAX NUM-PARAMETERS are received, parameters
beyond the maximum number are ignored and the "value"
field for the last parameter will be set to
"cs IGNORE pIt (this may be used to detect that
parametershave been ignored). The sequence will
still be recognized if it is othe~wise valid.

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-40
Digital Internal Use Only

o

The parser will recognize up to three intermediate
characters in a single escape, control~ or introducer
sequence specified by the constant MAX NUM INTERMEDIATES
in "gparse.h". If more than MAX NUM INTERMEDIATES are
received, the entire sequence will be ignored up to and
including its final character.

o

DCS introducer sequences are parsed according to the
rules for control sequences. APC, OSC,-and PM
introducer sequences are parsed according to the rules
for escape sequences. The parser recognizes the
introduc~r sequence upon receiving a valid final
character. The parser does not keep track of whether
a control string is in progress. Therefore it is
possible to receive control codes, escape sequences,
and control sequences within a control string~ Handling
of control strings must be performed at a higher level
than the parser.

Each intermediate character requires one stack entry. Each
parameter value also requires one stack entry. The default stack
size of 32 is sufficient to hold a sequence starting character, a
private parameter character, 16 parameters, 3 intermediates, and
still recognize nested CO control characters. If the maximum
number of parameters or intermediates are increased, the stack
size should be increased accordingly. If the stack overflows,
the parser will re-initialize the stack, and return with event
PARSE ERROR.
*/

#include "gparse.h"
#include "lparse.h"

/. global parse definitions */
/* local parse definitions */

/* escape sequence parse table */

/*

eseq_parse_table[input+from_state]

-->

char eseq parse table[16] {

-

-

/* input: ES CONTROL */
/* from state
action

to state

*/

/*
----=----------------------=-------*/
/* SEQ START */
CONTROL I ES IN SEQ,
/* CON-START */

/* ES IN SEQ */
/* ES-IGNORE */
/* input: ES_INTER

mDmDomD™

CONTROL I CON START,
CONTROL I ES IN SEQ,
CONTROL I ES:IGNORE,
*/

action, to_state

*/

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-41
-Digital Internal Use Only

/* from state

action

to state

/* CON-START */
/* ES IN SEQ */
/* ES-IGNORE */

GRAPHIC
I CON START,
CONTINUE I ES IN SEQ,
IGNORE
I ES=IGNORE,

*/

/*
----=----------------------=-------*/
/* SEQ START */
CONTINUE I ES IN SEQ,
/* input: ES FINAL
*/
/* from state
action

to state

*/

/* ----=----------------------=-------*/
/* SEQ START */
ESC SEQ I CON START,
/* CON-START */
/* ES IN SEQ */
/* ES-IGNORE */

GRAPHIC
ESC SEQ
CANCEL

I CON-START,
I CON-START,
I ES_IGNORE,

/* input: ES GRPAHIC */
/* from state
action

to state

*/

/* ----=----------------------=-------*/
SEQ START */
PARSE ERROR I ES IN SEQ,

/*
/*
/*
/*

GRAPHIC
I CON START,
PARSE ERROR I ES IN SEQ,
PARSE-ERROR I ES-IGNORE

CON-START */
ES IN SEQ */
ES-IGNORE */

};

/* control sequense parse table */
/* pseq_parse_table[input+from_state]

char pseq parse table[42]

{

-

-

==>

action,to_state

=

/* input: PI CONTROL */
/* from state
action

to state

*/

/*
----=--------------------------=-------*/
/* SEQ START
*/
CONTROL I CS IGNORE,
/*
/*
/*
/*
/*

CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P

*/
*/
*/
*/
*/

CONTROL
CONTROL
CONTROL
CONTROL
CONTROL

I
I
I
I

CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
I CS=IGNORE_P,

/* input: PI PRIVATE */
/* from state
action

to state

/*
/*

*/

----=--------------------------=~------*/
SEQ START
*/
CONTINUE I CS PRIVATE,
/* CS PRIVATE */
CONTINUE I CS-IGNORE,
/* CS-PARAM
/* CS-INTER
/* CS-IGNORE
/* CS-IGNORE P

*/
*/

*/
*/

CONTINUE
CONTINUE
IGNORE
IGNORE

/* input: PI_NUMERAL */

I
I
I
I

CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS=IGNORE,

*/

EL-00070-03
VSRM - Code Extension Layer
/* from state

14-Apr-1989
Page 3-42
Digital Internal Use Only

action

to state

*/

/* ----=--------------------------=-------*/

/*
/*
/*
/*
/*
/*

SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE_P

*/
*/
*/
*/
*/
*/

PARAM
PARAM
PARAM
CONTINUE
IGNORE
IGNORE

1

CS PARAM,

1

CS-PARAM,

I CS-PARAM,

I CS-IGNORE,
I CS-IGNORE,
I CS:IGNORE_P,

/* input: PI SEMICOL */
/* from state
action

to state

/* SEQ START
/* CS PRIVATE
/* CS-PARAM
/* CS-INTER
/* CS-IGNORE
/* CS-IGNORE P

CS PARAM,
CS-PARAM,
CS-PARAM,
CS-IGNORE,
CS-IGNORE,
CS:IGNORE_P,

*/

/* ----=--------------------------=-------*/

/*
/*
/*
/*
/*
/*
/*
/*
/*

I
1
1
1

>

I
I
I
I

1

I
I

,I

1
1

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

*/
*/

*/
*/
*/
*/

PARAM
PARAM
PARAM
CONTINUE
IGNORE
IGNORE

input: PI INTER */
from state
action

to state

*/

----=--------------------------=-------*/
SEQ START,
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P

*/
*/
*/
*/
*/
*/

CONTINUE
CONTINUE
CONTINUE
CONTINUE
IGNORE
CONTINUE

I CS INTER,
1

CS-INTER,

1
1

CS-INTER,
CS-IGNORE,
CS:INTER,

I CS-INTER,
1

input: PI FINAL */
from_state
action

to_state

*/

---------------------------------------*/
SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P

*'/

*/
*/
*/
*/

*/.

I CS IGNORE,

PAR SEQ
PAR-SEQ
PAR-SEQ
PAR-SEQ
CANCEL
PAR_SEQ

1
1
1

1

I

input: PI OTHER */
from state
action

CS-IGNOaE,
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS:IGNORE,
to state

*/

----=--------------------------=-------*/
SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P

};

mDmDomD™

*/
*/
*/
*/
*/
*/

CONTINUE
CONTINUE
CONTINUE
CONTINUE
IGNORE
CONTINUE

1
1

I
I
1
1

CS IGNORE,
CS-IGNORE,
CS-IGNORE,
CS-rGNORE,
CS-IGNORE,
CS-IGNORE

EL-00070-03
VSRM - Code Extension Layer

l4-Apr-l989 .
Page 3-43
Digital Internal Use Only

/* shorthand for "Stack Pointer" of parse stack */
#define SP state->index
/*************************************

** parse_init - initialize parse state
**************************************/
parse_init(state)
struct parse stack *state;

-

{

state->index = 0;
state->class[O] = CON;
state->value[O] - CON_START;
return(O);

/*******************************************************

*
*

* parse ansi - callable re-entrant ansi parser executive

-

********************************************************/
parse_ansi(c, state, event, start, final)
struct parse_stack *state;
int
int
int
int

c;
*event;
*start;
*final;

/*
/*
/*
/*

input
event
stack
stack

/* address of parse stack structure */

character */
recognized (by ref) */
index of first char of event (by ref) */
index of final char of event (by ref) */

{
int action, i;

/* .............................................. * /
/* if in sequence, convert 8 bit graphics to 7 bits */
if (state->class[SP] <- LAST SEQ)
if (c >= OxAO) c &= Ox7F;
/* invoke appropriate parser based on state class */
switch (state->class[SP])

{
case CON:
/* parse graphic and CONtrol characters */
action = parse(state, c, eseq_class(c), eseq_parse_table);

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-44
Digital Internal Use Only

break;
case ESEQ:
/* parse escape sequences */
action = parse(state, c, eseq_class(c), eseq_parse_table)i
/* check for too many intermediates */
i = 0;
while (state->value{SP-i] == ES IN SEQ)

- -

{

i++;
if (i > MAX NUM INTERMEDIATES)
{

--

/* ignore sequence (but parse until final) */
state->value[SP] = ES_IGNORE;
}
}

break;
case CSI: .
case DCS:
/* parse parameter sequence */
action = parse(state, c, .pseq_class(c), pseq_parse_table);

/* check for too many intermediates */
i - 0;
while (state->value[SP-i] == CS INTER)

-

{

i++;
if (i > MAX NUM INTERMEDIATES)
{

--

/* ignore sequence (but parse until final) */
state->value[SP] = CS_IGNORE;
}

}

break;
}

/* process recognized events */
switch (action)
{

case CONTINUE:
*event = R_CONTINUE;
break;
case GRAPHIC:
*event = R GRAPHIC;
*start = SP;
*final = SP;
SP -= 1;
break;
case CONTROL:
pcontrol(state, event, start, final);

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-45
Digital Internal Use Only

break;
case ESC SEQ:
pescseq(state, event, start, final);
break;
case PAR SEQ:
*final = SP;
/* find start of sequence */
*start - SP;
while (state->value[*start] !- SEQ_START) *start -- 1;
switch (state->data[*start])
{

case Ox9B: *event - R CSI SEQ; break;
case Ox90: *event - R-DCS-SEQ; break;
default:
*event = R=PARSE_ERROR; break;
}

/* remove seq from parse stack,
and return to previous parser */
SP - *start - 1;
break;
case PARAM:
/* input was either a numeral, or a semicolon,
reduce parameter chars to parameter value
if current char is a numeral then
if prev is a value, mul by 10, add current,
range check.
else store current as a value.
else if current is a semicolon

store value of zero
if prev is not a value,
advance stack and store a value of zero.
finally, check for -too many parameters.
*/
*event = R CONTINUE;
-/* remember stack pointer */
i = SP;
if (state->data[SP] != Ox3B)
{
/* numeral */
if (state->value[SP-1] == CS_PARAM)
{

SP -= 1;
if (state->data[SP] > MAX PARAMETER VALUE/10)
state->data[SP] = MAX=PARAMETER=VALUE;
else
{

state->data[SP] *= 10;
state->data[SP] += state->data[SP+1] - Ox30;
if (state->data[SP] > MAX PARAMETER VALUE)
state->data[SP] = MAX=PARAMETER=VALUE;
}
}

else
state->data[SP]
}

else

~DmDDmDTM

-=

Ox30;

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Digital

In~ernal

Page 3-46
Use Only

{
/* semicolon */
state->data[SP] ... 0;
if (state->value[SP-1] 1- CS_PARAM)
{

SP +- 1;
state->class[SP] - state->class[SP-1];
state->value[SP] ... CS PARAM;
state->data[SP) ... 0;
}
}

/* check for too many parameters */
if (SP >- i)
/* did we add a parameter?

~/

{

i ... 0;
while (state->value[SP-i] -- CS_PARAM)
{

i++;
if (i > MAX NUM PARAMETERS)
{

--

/* ignore last parameter */
SP -= 1;
/* ignore any further parameters */
state~>value[SP] - CS IGNORE P;

--

}

}
}

break;
case CANCEL:
if (state->class[SP] <- LAST_SEQ)
{

while (state->value[SP] 1= SEQ_START) SP -- 1;
SP -- 1;
}

*event = R_CONTINUE;
break;
case IGNORE:
*event = R_CONTINUE;
SP -- 1;
break;
default:
*event ... R PARSE ERROR;
parse initTstateT;
/* re-initialize */
breakT
}

/* end switch event */

return(*event);
}
/* end routine parse_ansi

mDmDomD™

~/

EL-00070-03
VSRM - Code Extension Layer

l4-Apr-l989
page 3-47
Digital Internal Use Only

/*************************************************************

** eseq class - return escape sequence parser input class
*
of given character.
*
**************************************************************/
eseq class(c)
int
{

c;

int c class;
/* ... '7 ................. * /
/* determine character class */
if (Ox20 <= c && C <= Ox2F)
c class "" ES INTER;
else If ( (OxOO <= C && C <= OxlF)
(Ox7F <= c && C <= Ox9F)
(c "". OxFF) )
c class"" ES CONTROL;
else If (Ox30 <.-c && c <- Ox7E)
c class - ES_FINAL;
else
c class"" ES_GRAPHIC;

II
II

return(c class);

-

}

/*************************************************************

*
*
*

pseq class - return parameter sequence parser input class of
given character.

*

**************************************************************/
pseq class(c)
int
{

c;

int pi_class;

/* ..................... * /
/* determine character class */
if (Ox30 <- c && c <= Ox39)
pi class = PI NUMERAL;
else if (c == Ox3B)
pi class"" PI SEMICOL;
else if (Ox20 <=
&& C <= Ox2F)
pi class = PI INTER;
else if (Ox3C <=
&& c <- Ox3F)
pi_class = PI_PRIVATE;

c

c

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-48
Digital Internal Use Only

else if (Ox40 <= c && c <= Ox7E)
pi class = PI FINAL;
else if ( (OxOO <~ C && C <= OxlF)
(Ox7F <= c && c <,. Ox9F)
(c == OxFF) )
pi class = PI CONTROL;
else pi_class = PI_OTHER;

II
II

return(pi class);
}

-

/*******************************************

*

* parse - table driven parse routine

**

returns the following events:
PARSE ERROR
CONTINUE
GRAPHIC
CONTROL
ESC SEQ
CON-SEQ
'* PARAM
*
CANCEL
*
IGNORE
*
*
* The parser is a table driven finite state automata,
* where the next state and action are a function of
* the current state and input.

*
*
*
*
*

*

*********************************************/
parse(state, c, c_class, parse_table)
struct parse stack *state;
int c;
int c class;
char parse_tablet];

/*
/*
/*
/*

parse
input
input
parse

stack
character
class
table

*/
*/
*/
*/

{

int next action;
int current state;
int next_state;

/* ................................... */
/* get next state */
current state - state->value{SP);
next_state = parse_table[c_class + current_state] & OxOF;
/* get action */
next_action - parse_table[c_class + current_state] & OxFO;

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-49
Digital Internal Use Only

/* default action */
if (SP >- STACK SIZE) return(PARSE_ERROR);
SP +- 1;
state->class[SP] = state->class[SP-1];
state->value[SP] = next state;
state->data[SP] - c;
/* return action */
return(next_action);
/* end routine parse */

/*****************************************

*

* pcontrol - process controls that alter
*
the parse state.

*

******************************************/
pcontrol(state, event, start, final)
struct parse stack *state;
int *event; int *start;
int *final;
{

int sp, code;

/* ...............

0. . . .

*/

sp = state->index;
code = state->data[sp];
/* ESC */
if (code == OxIS)
{

/* if already in escape or control sequence, restart it */
if (state->class[sp] <= LAST SEQ)
while (state->value[sp] 1= SEQ START) sp -= 1;
state->class[sp] = ESEQ;
/* switch to escape seq parser */
state->value[sp] = SEQ START;
state~>data[sp] = OxIsT
state->index = sp;
*event - R CONTINUE;
return( 0) ;}

/* CAN */
if (code == Ox18)
{

/* if already in escape or control sequence, cancel it */
if (state->class[sp] <= LAST SEQ)
{

-

while (state->value[sp] 1= SEQ_START) sp

~DmDDmDTM

-=

1;

EL-00071)-03
VSRM - Code Extension Layer

Page 3-50
Digital Internal Use Only

14-Apr~1989

}

state->index • sp - 1;
*event - R CONTINUE;
return(O) ;}

/* SUB */
if (code --

~x1A)

{

/* if already in escape or control sequence, cancel it */
if (state->class(sp] <- LAST SEQ)

-

{

while (state->value(sp] 1- SEQ_START) sp -- 1;
state->index - sp-1;

*event - R CONTINUE;
}
else
{
/* not in sequence, recognize SUB */
*event - R CONTROL;
*start - sp;
*final - sp;
state->index - sp;
}

return(O) ;
}

/* is it a C1 control? */
if (code> Ox7F)
{

/* if already in escape or control sequence, cancel it */
if (state->class[sp] <- LAST SEQ)
while (state->value(sp] T= SEQ_START) sp -- 1;
/* CSI */

if (code -- Ox9B)
(

./* switch to parameter seq" parser */
state->class(sp] = CSI;
state->value(sp] - SEQ START;
state->data(sp] - codei
state->index = SPI
*event - R CONTINUE;
return( 0) ;}

/* DCS */
if·(code -- Ox90)
{

/* switch to parameter seq parser */
state->class(sp] = DCS;
.

.

mDmOOmD™

EL-00070-03
VSRM - Code Extension Layer

14~Apr-1989

. Page 3-51
Digital Internal Use Only

state->value[sp] = SEQ START;
state->data[sp] = code;
state->index = SPi
*event = R CONTINUE;
return( 0) ;}

/* OSC, PM, APe */
if ( (code -- Ox9D)

II (code -- Ox9E) II (code -- Ox9F) )

{

/* switch to escape sequence parser */
state->class[sp] - ESEQ;
state->value[sp] - SEQ START;
state->data[sp] - code;
state->index - sp;
*event - R CONTINUE;
return( 0) ;}

}

/* end C1 control */

/* recognize other controls */
*event - R CONTROL;
state->data[sp] - code;
*start - sp;
*final - sp;
/* remove control character from parse stack */
state->index = sp - 1;
return(O);
}

momDDmo™

l4-Apr-l989
Page 3-52
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer

/*************************************

*

* pescseq - process escape sequences
*
that alter the parse state.

*

**************************************/
pescseq(state, event, start, final)
struct parse stack *state;
int *event; int *start;
int *final;
{

int sp;
/* ..................... */
sp - state->index;
/* two character escape sequence ? */
if (state->data(sp-l) -- OxlB)
{

/* convert 7-bit Fe sequences to el controls */
if «Ox40 <-"state->data(sp) && (state->data(sp) <- Ox5F»
(

/* store el control */
state->data(sp-1J - state->data(sp) + Ox40;
state->index - sp-l;
/* steal code from pcontrol */
pcontrol(state, event, start, final);
return(O);
}
}

II
I
I
I
I
I
I
I
I
I
I
I
I

/* recognize other escape sequences */
/* find start of sequence */
while (state->value(sp) !- SEQ START) sp -- 1;
*start - sp;
*final - state->index;
switch (state->data[*start)

-

{

case OxlB:
case Ox9D:
case Ox9E:
case Ox9F:
default:
}

state->index
return( 0) ;
}

-

*event
R ESC SEQ; break;
*event - R-OSe-SEQ; break;
*event - R:PM_SEQ; break;
*event - R APe SEQ; break;
R-PARSE ERROR; break;
*event

-

*start

-

1;

-

/* remove seq from parse stack */

/* end routine pescseq */

mDmDomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-53
Digital Internal Use Only

/********************** module ptexec.c **************

**
*

This module contains the parser test executive.
It reads characters from the keyboard and dumps the
* parse stack when a control function is recognized.

**
**
**
*
*
*
*
*
*
*
*

Environment:
Author:

VAX/VMS

Peter Sichel

24-Feb-1984

Modification history
8-May-1984
T. Lasko
Made Ay (power off) cleaner.
9-MAY-1984
T. Lasko
Fixed several protocols.
13-Nov-1984
P. Sichel
Added OSC, PM, and APC control strings
9-May-1988
P. Sichel
Cosmetic changes for inclusion in VSRM
.*/

"EL-00070-03
VSRM - Code Extension Layer
linclude 
linclude "qparse.h"
linclude "lparse.h"

/* qlobal parse definitions */
/* local parse definitions */

/* qlobal storaqe */

extern int poweron;

/* module wide storaqe */

struct parse_stack kbd_state;
static char *eseq_state[3] {

"SEQ START",
"CON-START",
"ES IN SEQ"
};

-

-

static char *pseq state[6] {
"SEQ START",
"CS PRIVATE",
"CS-PARAM",
"CS-INTER" ,
"CS-IGNORE",
-"CS-IGNORE P"
} ;

-

.

mOmDDmD™

14-Apr-1989
Paqe 3-54
.
Diqital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
page 3-55
Digital Internal Use Only

/*******************************************

*
*
*

*
*

ptstart()This is the startup routine for the parser tester.
It simply initializes the internal state and the terminal
screen, then calls the executive loop, which returns when
we give it a Ay (power turns off).

*
**********************************************/
ptstart()

{
unsigned short n;

/* erase screen, move cursor to home */
printf("\33[2J\33[H");
printf("A N S I P a r s e r
T e s t e r\n");
printf("
Press Ay to exit \n\n");
parse init(&kbd state);
poweron - 1;
/* ready .... */
set_passall();
execloop()i

/* go! */

set nopassall();
return(O);

/* when power off ... return */

}

EL-00070-03
.
VSRM - Code Extension Layer

I
I
I
I
I
I
I
I

14-Apr-1989
Page 3-56
Digital Internal Use Only

/*******************************************

*

* execloop - parser test executive

*

********************************************/
execloop ( )

{

l i n t c;
int event, start, final, ii

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

/* .............................................. */
while (poweron)

{
/* get character from KEYBOARD and parse it */
c - readkbd();
parse_ansi(c,

&kbd~state,

&event, &start, &final);

/* process recognized events */
switch (event)

{
case R CONTINUE:
break;
case R GRAPHIC:
prIntf( "\nR GRAPHIC:");
ptdump(&kbd-state, start,
break;case R CONTROLi
prIntf("\nR CONTROL:");
ptdump(&kbd-state, start,
break;case R ESC SEQ:
prIntfT"\nR ESC SEQ:");
ptdump(&kbd-state, start,
break;case R CSI SEQ:
prIntfT"\nR CSI SEQ:");
ptdump(&kbd-state, start,
break;case R DCS SEQ:
prIntfT"\nR DCS SEQ:");
ptdump(&kbd-state, start,
break;case R OSC SEQ:
prIntfT"\nR OSC SEQ:");
ptdump( &kbd-state, start,
break;case R PM SEQ:
prInt!("\nR PM SEQ:");
ptdump(&kbd-state, start,
break;-

~DmDDmDTM

final);

final);

final);

final);

final);

final);

final);

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-57
Digital Internal Use Only

case R APC SEQ:
prIntfT"\nR APC SEQ:");
ptdump(&kbd-state, start, final);
break;
default:
printf("\nR PARSE ERROR:");
ptdump(&kbd-state~ start, final);
break;
}
/* end switch case */

}

/* while (poweron) */

return(O);
}
/* end routine execloop */

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-58
Digital Internal Use Only

/**********************************

**

ptdump - parser test stack dump

*

***********************************/

ptdump( state, start, final)

-

struct parse stack *state;
int start, final;
{

int i;
for (i-start; i<=final; i++)
{

printf("\n
");
switch (state->class[i])
{

case ESEQ:
printf("ESEQ
break;
case CSI:
printf("CSI
break;
case DCS:
printf("DCS
break;
case CON:
printf("CON
break;
default:
printf("???

%-lls", eseq_state[state->value[i]]);
%-lls", pseq_state[state->value[i]]);
%-11s", pseq_state[state->value[i]])i
%-lls", eseq_state[state->value[i]]);
%02x

", state->value[i]);

if (state->data[i] < 16) printf(" %02x ", state->data[i]);
else printf("%4x ", state->data[l]);
if «Ox1F < state->data[l]) && (state->data[i] < Ox7F»
putchar«int)state->data[i);
}

r.eturn ( 0 ) ;

};

mDmDDmD™

EL-00070-03
VSRM - Code Extension Layer
3.6

14-Apr-1989
Page 3-59
Digital Internal Use Only

GRAPHIC CODE EXTENSION TECHNIQUES

In a 7-bit environment, the basic graphics' portion of the code
table consists of a single 94- or 96-character set.
In an 8-bit
environment, this is supplemented with an additional 94- or
96-character set, and the two sets are referred to as the GL set
(left half graphics, corresponding to the single set in 7-bits),
and the GR set (right half).
In both environments, the graphic
codes in the table can be further extended by the designation and
invocation of a potentially unlimited repertory of graphics sets.
This is implemented by the provisi~nof four sets of 94 or 96
graphic characters, referred to as the GO, G1, G2, and G3 sets.
Character sets may be designated to any of the four G-sets, which
may be currently or subsequently invoked into either the GL or GR
positions in the code table.
3.6.1

DESCRIPTION OF SHIFT FUNCTIONS

Shift functions are used to invoke one of the G-sets into the left
or right half side of the code table. There are two kinds of
shift functions:
lodking shifts and single shifts. Locking
shifts cause a G-set to be permanently invoked into the code
table, where it will remain until another shift function occurs to
replace it. Single shifts cause a G-set to be invoked only for
the occurrence of the single character code following the single
shift control in the code stream, after which the table reverts to
its previous state before the shift occurred.
.
For example, if on power-up the ASCII character set is designated
into GO and G1, and GO is invoked into GL, then any graphic codes
in the GL portion of the table (2/1 'through 7/14) will cause an
ASCII character to be generated. Subsequently, the Line Drawing
character set may be designated into G1 to replace ASCII in that
G-set. No visible effect will occur until G1 is invoked into GL
using a shift function.
Thereafter, any GL graphic codes received
will cause Line Drawing characters to be displayed.

~DmDDmDTM

Page 3-60
l4-Apr-l989
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
ASCII C

Supplemental_C

+--+

+--+

I
I
I
I
I

I

I
I
I
I
I

I
I

I

Control Sets

I

I
I

I
I

I

+--+

+--+
V

v

I
v

v

designate
& invoke:

I

C -> CO - ESC !
C -> Cl - ESC "

F
F

+--++-----+--++-----+
I ++
I ++
I

I I
ICOI
I I

I I
ICll
I I

GL

GR

I
I
I

In Use Table

I I
++
I
++
+--+-----++--+-----++

invoke:

I I

+--------+ +---+----+

I
I

+---+-----+---------+

I

I

I

I

+-----+ .++-----+
++
I ++
I

I
I

I
I

I
I

GO

I

I

I

I
I
I

I
I
I

++
+-----+

I
I

I

++-----+
++
I

++-----+
++
I

G2

G3

I
I
I
I

I

Gl

I

I

++
+-----++

I

I

I

I

++
+-----++

I
I

I
I

I
I
I

GO
Gl
G2
G3
Gl
G2
G3

->
->
->
->
->
->
->

GL
GL
GL
GL
GR
GR
GR

- LSO ( SI )
LSl (SO)
= LS2, SS2
- LS3, SS3
- LSlR
= LS2R
- LS3R
=

Designated
Graphic Sets

++
+-----++

+---------+----+----+---------+

I
I
I

designate: ESC

+---------+---------+----

I

I

I

+-----+
++
I

+------+

++-----+
++

I

I
I 94
I
I Char I

++
I
+-----+

I
I
I 96
I Char
I

+------+

I
I
I

++
I
+-----++

---+

++-----+
++
I

. . .

I
I

I
I

I
I
I

++
+---:---++

Repertory of Graphic Character Sets

I

94 Chars:
GO = (
Gl = )
G2 = *
G3 = +

F

96 Chars:

=
ASCII G
UPSS
=
Line Drawing
DEC Supplemental =
ISO-Latin-l
=
DRCS (as defined,
94 or 96)

Figure S. Designating and Invoking Control and Graphic
Character Sets into the Eight-bit In Use Table

mDmDomD™

Gl =
G2 =
G3 =

/

B

<

0
%5
A (96)

EL-00070-03
VSRM - Code Extension Layer
3.6.1.1

14-Apr-1989
Page 3-61
Digital Internal Use Only

Locking Shifts

Conforming terminal products will provide the following locking
shift functions in Level 1 operation.
Name

Code
LSO
LS1
LS2
LS3

*
*

Locking
Locking
Locking
Locking

Shift
Shift
Shift
Shift

Zero
One
Two
Three

G-set
invoked

Table
position

GO

GL
GL
GL
GL

G1
G2
G3

* Note - The functions Locking Shift Zero and Locking Shift One
have been previously referred to as Shift In (SI) and Shift Out
(SO). The effect of executing these controls has not been
changed.
Conforming terminals will provide the following additional locking
shift functions in Level 2 operation.
Code

Name

G-set
invoked

Table
position

LS1R
LS2R
LS3R

Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right

G1
G2
G3

GR
GR
GR

The following bit combinations are not affected by the use of the
locking shifts.
a.

Those corresponding to control characters in columns 00,
01, 08, and 09

b.

Those corresponding to the character Space (SP) in
position 2/0, and Delete (DEL) in position 7/15 when a
94-character set is invoked into GL

c.

Those corresponding to positions 10/0 and 15/15 when a
94-character set is invoked into GR

d.

Those included in any escape or control sequence (see
notes to subheadings 3.5.2 Escape Sequences and 3.5.3
Control Sequences for a full explanation of the use of
bit combinations within escape and control sequences)

e.

The bit combination following a single shift function
(SS2 or SS3)

EL-00070-03
VSRM - Code Extension Layer
3.6.1.2

14-Apr-1989
Page 3-62
Digital Internal Use Only

Single Shift Functions

Conforming terminal products will provide the following single
shift functions in both 7-bit and 8-bit environments.
Code

Name

G-set
invoked

Table
position

SS2
SS3

Single Shift Two
Single Shift Three

G2
G3

GL
GL

3.6.2

DESIGNATING CHARACTER SETS

Each terminal shall maintain a repertory of available character
sets, which may be designated to any of the four G-sets (note
there is no direct way to designate a 96 character set into GO).
Once a character set is designated to a G-set, it remains in that
set until explicitly replaced by another character set designator.
If the G-set is invoked into the code table at the time the
character set is designated, it immediately replaces the existing
set in the code table.
Note: For a complete description of conforming software use of
the designating and invoking controls, see DEC STD 070-1. DEC STD
70 addresses conformance of software when communicating directly
with a presentation device, or when writing data to a file that is
intended only for subsequent transmission to a presentation
device. It does not address conformance of software when
processing terminal input or when writing data to a file that is
intended for subsequent processing by application software.
DEC STD 169-0 DEC Standard Coded Graphic Character Sets for
Hardware and Software requires that when data is intended for
subsequent processing conforming software shall not use either
locking shift or single shift functions. This requirement is in
fact a subset of the conformance requirements defined in this
document, therefore the two documents do conflict.
3.6.3

THE USER PREFERENCE SUPPLEMENTAL SET (UPSS)

The User Preference supplemental Set is a logical character set
name similar in concept to a G-set (GO-G3) but at the next higher
level. The UPSS allows one level of software indirection for
deSignating supplemental character sets. The UPSS is designated
and invoked like any other character set, but the character set
used can be selected by the user as a SETUP option or by host
control function in response to a user request.
The UPSS was introduced to facilitate migration from DEC-MCS to
ISO Latin-1. Software applicati~ns that do not need to be
concerned with which supplemental character set is used can defer

·mDmODmD™

EL-00070-03
VSRM - code Extension Layer

l4-Apr-1989
Page 3-63
Digital Internal Use Only

the choice of a specific supplemental set to the user, thus not
imposing a choice that might interfere with the customers
migration plan. The designating sequence previously used for DEC
Supplemental was changed to designate the UPSS, providing
automatic transparent migration from DEC MCS to ISO Latin-l for
existing applications as soon as terminal devices can support ISO
Latin-I.
The concept of a User Preference Supplemental Set also accomodates
existing CSS Specials that used the old DEC Supplemental
designating sequence to designate a local country specific
character set.
Support for the UPSS is part of the 8-bit Interface Architecture
Extension to Level 2, and required for conformance to Level 3. As
a minimum, the UPSS must be selectable between DEC Supplemental
and ISO Latin-l supplemental. The UPSS also establishes the
initial supplemental set for display (defaults to G2 on power-up),
and determines the keyboard supplemental character set when 8-bit
multinational characters are enabled.
See DEC STD 070-6.
typedef enum

/* upss_type */

{
UPSS DEC SUPPLEMENTAL G, UPSS ISO LATINI SUPPLEMENTAL G
} upss type;
upss_type upss;
3.6.4

DEFAULT DESIGNATION AND INVOCATION

The following assignments will apply to the power-on and soft
reset states of the terminal.
3.6.4.1

Levell

In Level 1 operation, the default character set designations will
be ASCII in GO, Gl, G2, and G3.
Furthermore, the GO set (ASCII)
will be invoked into the GL position of the In Use Table.
Levell
operation is 7-bits only.
3.6.4.2

Level 2 (without a-bit Interface Architecture Extension)

In Level 2 operation, the default character set designations will
be ASCII in GO and Gl, and the DEC Supplemental graphics set in G2
and G3.
Furthermore, the GO set (ASCII) will be invoked into the
GL position of the In Use Table, and the G2 set (DEC Supplemental
graphics) will be invoked into the GR position of the In Use
Table.

EL-00070-03
VSRM - Code Extension Layer
3.6.4.3

Page 3-64
Digital Internal US& Only

14-Apr~1989

Level 3 (or Level 2 with 8-bit Interface Architecture
Extension)

In Level 3 operation, the default character set designations will
be ASCII in GO and G1, and the User Preference Supplemental Set
(UPSS) in G2 and G3. Furthermore, the GO set (ASCII) will be
invoked into the GL position of the In Use Table, and the G2 set
(UPSS, typically DEC Supplemental or ISO Latin-1 supplemental)
will be invoked into the GR position of the In Use Table.
Level 3 (or Level 2 with the 8-bit Interface Architecture
Extension) also recognizes the "Announce Subset Of Code Extension
Facilities" defined in ISO 4873 which re-initialize the designated
and invoked character sets as described later in this chapter.
3.6.4.4

NRCS Extension

When the NRCS Extension is present, ASCII may be replaced with a

I . National Replacement Character set as a Set-Up option. In this
I case, the default character set designations will be the NRCS in
I GO, G1, G2, and G3, with GO in GL. National Replacement Character
I Sets are intended for backward compatibility and may be used as
I above in Levell, Level 2, and Level 3 by selecting "7-bit NRCS
I Characters" in Set-Up or setting DECNRCM (National Replacement
I r.haracter set Mode) from the host. Setting this mode has the side
I effect of resetting the display character sets to their default
I state as described above. Note that the NRC Mode is 7-bits only,
I GR is not available: The actual NRC set used is determined by the
I "Keyboard Dialect", and the selection of "Typewriter" or "Data
I processing" keys. See DEC STD 070-6 for more information.

EL-00070-03
VSRM - Code Extension Layer
3.7

14-Apr-1989
Page 3-65
Digital Internal Use Only

STATE DESCRIPTIONS

3.7.1

CONTROL SETS

At the present time the CO and Cl control sets are fixed as the
ANSI control sets defined in ANSI X3.4 - 1986 and ISO 6429: 1988.
typedef enum

/* cO_control_set_type */

{
ASCII C
} cO_control_set_type;
typedef enum

/* cl_control_set_type */

{
SUPPLEMENTAL C
} cl_control:set_type;
3.7.2

G-SETS

Graphic character sets are defined for each service class.
(S~e
DEC STD 070-5 Video Systems Reference Manual
Character Cell
Display for a complete description of the available character sets
and designating sequences.) The actual character sets available
will vary for different conformance levels and extensions (NRCS,
8-bit lA, TCS) ).
Four character sets may be designated at any
time, each into one of th~ four G-sets, which may be subsequently
invoked into the In Use Table.

=

typedefenum

{
ASCII G,
LINE DRAWING G,
DEC SUPPLEMENTAL G,
ISO-LATIN! SUPPLEMENTAL_G,
/* a-bit IA */
UPSS G
/* a-bit IA */
} graphic_character_set_type;

3.7.3

IN USE TABLE

Mapping of received control functions and graphic character data
is provided by the 8-bit code table, as described above. Since
the 8-bit table is a superset of the 7-bit table, all references
will be to the 8-bit table in both environments.
typedef enum

/* gset_name_type */

{
GO, Gl, G2, G3
} gset_name_type;
typedef struct

/* in_use_table_type */

{
cO_control_set_type

cO;

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-66
Digi tal Internal Use On"ly

graphic character set type
gset_name_type
-

gl;
invoked_gl;

cl control set type
graphic character set type
gset name" type
} in:use_table_type;

cl;
gr;
invoked_gri

in_use_table_type in_use_table;
3.7.4

SINGLE SHIFT FUNCTIONS

Since single shift controls affect the processing of the next
graphic character in the received data stream, it is necessary to
retain their occurrence until subsequent processing occurs.
typedef enum

/* single_shift_type */

{

NONE, SS2, SS3
}single_shift_type;
single_shift_type single_shift;
3.7.5

ENVIRONMENTS

The environment of the host port can be selected for either a
seven or eight bit data path in set-up. The environment of the
printer port can be selected independently of the host environment
as a set-up function.
See DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension.
Note that the logical environment for which each port is set "is
independent of the actual physical hardware setting of the ports,
and may in fact be different.
For example, it may be possible to
set the host port for an 8-bit environment, even though the
physical channel is limited by the hardware to 7-bits.
The
architecture assumes that the physical and logical settings are
compatible, and does not define the results when this is not the
case. The terminal characteristics are dependent on both the
environment and the conformance level of operation. However,
there are only three possible states for the terminal to be in
that this architecture specifies:

*

Level 1 operation
Host Port

transmit receive -

(Printer Port transmit -

7-bit controls
7-bit controls

7-bit graphics
7-bit graphics

7-bit controls

7-bit graphics)

* Level 2 or Level 3 operation, 7-bit Cl controls
•

mamDomD™

EL-00070-03
VSRM -" Code Extension Layer
Host Port

*

transmit
receive -

-

page 3-67
14-Apr-19a9
Digital Internal Use Only
7-bit controls
a-bit controls

a-bit graphics
a-bit graphics

Level 2 or Level 3 operation, a-bit C1 controls
Host Port

3.7.5.1

transmit receive

-

a-bit controls
a-bit controls

a-bit graphics
a-bit graphics

Level 1 - Host Port

Level 1 operation provides only for 7-bit communications. Thus,
in Level 1 all control and graphic characters can only be received
and transmitted in seven bits. The high order bit of all a-bit
characters received will be stripped by the terminal before any
processing occurs. All Cl controls will be transmitted by the
terminal as ESC Fe sequences. Only 7-bit characters will be
generated from the keyboard -(that is, attempts to generate a-bit
characters will fail).
3.7.5.2

Level 2 or Level 3 - Host Port

In Level 2 or Level 3 operation both 7-bit and a-bit
communications are supported. The terminal will accept C1 control
characters and GR graphic characters in both 7-bit and a-bit C1
Transmission Modes.
When 7-bit communications is selected (7-bit host port
environment), C1 controls will only be transmitted as ESC Fe
sequences, and only 7-bit characters will be generated from the
keyboard (that is, attempts to generate a-bit characters on line
will fail).
When a-bit communications is selected (a-bit host port
environment), the terminal can be selected to transmit C1 control
characters either as 7-bit ESC Fe sequences, or as a-bit control
characters. The terminal will generate GR characters from the
keyboard in eight bits.

I
I
I
I
I
I
I
I
I

typedef enum

/* environment_type */

{
SEVEN BIT, EIGHT BIT
} envIronment_type;
environment type
host port environment,
printer port environment,
c1_transmissIon_mode;

momDomD™

EL-00070-03
VSRM - Code Extension'Layer
3.8

14-Apr-1989
Page 3-68
Digital Internal Use Only

CONTROL OPERATIONS

3.8.1

ANNOUNCE SUBSET OF CODE EXTENSION FACILITIES

ANNOUNCE SUBSET OF CODE EXTENSION FACILITIES
Levels:

2X, 3

(8-bit Interface Architecture Extension)

Purpose: To indicate which subset of code extension facilities
defined in ISO 4873 conforming interchange will use.
Format:

ESC

SP

1/11

2/0

 I



Level of conformance

---------+----------------------Level 1 of ISO 4873
L 4/12
M 4/13
N 4/14

Level 2 of ISO 4873
' Level 3 of ISO 4873

Description: This sequence announces the level of conformance
that the subsequent interchange will conform to. Conformance to
ISO 4873 requires some default designation and invocations on the
part of the terminal.
Upon receipt of a Levell, 2, or 3 announcer sequence, the
terminal will make the following desi9nations and invocations:
Level 1
ASCII is deSignated into GO
ISO Latin Alphabet Nr 1 supplemental is designated into Gl
GO is invoked into GL
Gl is invoked into GR
Level 2
ASCII is designated into GO
ISO.Latin Alphabet Nr 1 supplemental is designated into Gl
GO is invoked into GL
Gl is invoked into GR
Level 3
ASCII is designated into GO
GO is invoked into GL
NOTES:
Conformance to a subset of ISO 4873 code extension
and interchange is NOT equivalent to the Digital
conformance levels for Character Cell Display
terminals. These announcer sequences and DECSCL
both specify conformance levels, but to a
different standard (ISO 4873 in this case).
Any hard or soft terminal reset (receipt of RIS,

mDmDomD™ .

l4-Apr-l989
Page 3-69
Digital Internal Use Only

EL-00070-.03
VSRM - Code Extension Layer

DECSTR, or DECSCL, or issuing the RECALL function
from Set-Up), will cause the Terminal to reset the
"D~fault Designations And Invocations" as
described previously to conform with DEC STD
169-0.
Interchange conforming to ISO 4873 which issues a
RIS, DECSTR, or DECSCL, must subsequently send an
announcer sequence to regain the default ISO
designations and invocations.
State Affected:
graphic character set type
graphic-character-set-type
graphic-character-set-type
gset naie type
gse(=name:=type

designated graphic sets[4];
gl;
gr;
invoked g1;
invoked:=gr;

Algorithm:
void announce_level_l ()
{

if
{

(conformance level> 2) I I
(level 2 extensions[8bit ia])

- -

-

designated graphic sets[O) - ASCII G;
designated-graphic-sets[l) - ISO LATINl SUPPLEMENTAL G;
gl - designated graphic sets[O);invoked gl = GO;
gr = designated graphic sets[l);
invoked gr = Gl;
-

}

-

}

void announce_level_2 ()
{

if
{

(conformance level > 2) I I
(level 2 extensions[8bit ia))

- -

-

designated graphic sets[O) = ASCII G;
designated-graphic-sets[1] = ISO LATIN1 SUPPLEMENTAL G;
gl = designated graphic sets[O);invoked gl = GO;
gr = designated graphic sets[l]i
invoked gr = Gl;
-

}

-

void announce level_3 ()
{

if ( (conformance level> 2) I I
(level_2_extensions[8bit_ia])

~DmDDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-70
Digital Internal Use Only

{

designated graphic sets[O] - ASCII G;
gl - designated graphic sets[O]; invoked gl - GO;
.

}

-

}

Known Deviations:

mamaomD™

None

EL-00070-03
VSRM - Code Extension Layer
3.8.2

14-Apr-1989
Page 3-71
Digital Internal Use Only

COMMUNICATIONS ENVIRONMENT

SELECT 7-BIT C1 TRANSMISSION
Levels:

S7C1T

2, 3

Purpose: Cause the device to generate C1 controls in 7-bits as
two character ESC Fe sequences.
Format:

ESC

SP

F

1/11

2/0

4/6

The S7C1T control causes the terminal to use the
7-bit encoding for all C1 control characters transmitted.
Therefore, all C1 characters will be represented as two character
ESC Fe sequences.
~escription:

Notes:
1.

The coding of this control is defined in ISO and ANSI
standards, but is not assigned a name in those standards.

Stat.e Affected:

Algorithm:
void select 7 bit c1 transmission ()
{

if (conformance level 1= LEVEL 1)
c1 transmission mode = SEVEN_BIT;
}

Known Deviations:

mDmDomD™

None

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-72
Digital Internal Use Only
saCIT

SELECT a-BIT Cl TRANSMISSION
Levels:

2, 3

Purpose: Cause the device to generate Cl controls in 8-bits as
single character control codes.
Format:

ESC

SP

G

1/11

2/0

4/7

Description:
The S8CIT control causes the terminal to use the
8-bit encoding for all Cl control characters transmitted.
Therefore, all Cl characters will be represented as single
character control codes.
Notes:
1.

The coding of this control is defined in ISO and ANSI
standards, but is not assigned a name in those standards.

2.

If the Hos~ Port environment is set to Seven Bit, this
control wilI be Ignored by the terminal.
-

State Affected:

Algorithm:
void select_8_bit_cl_transmission ()
{

if

(conformance level != LEVEL 1) &&
(host port environment -- EIGHT BIT)
c1 transmission mode - EIGHT_BIT;

}

Known Deviations:

None

EL-00070-03
VSRM - Code Extension Layer
3.8.3

14-Apr-1989
Page 3-73
Digital Internal Use Only

SHIFT FUNCTIONS

3.8~3.1

Locking Shifts
SI
LSO

SHIFT IN
LOCKING SHIFT ZERO
1, 2, 3

Levels:

Purpose:
Invoke the GO graphic character set into the GL position
of the code table.
LSO

Format:

(SI)

1/15
Description:
The LSO or SI control invokes the set of graphic
characters currently designated as a GO set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 that is
entered into the display to be rendered according to the current
contents of the GO character set.

"I
I

NOTE

1
1
1
1
1
1
1

GO cannot normally be a 96-character set since
there is no control function to designate a
96-character set as GO. A 96 character UPSS could
be designated as GO in which case subsequent data
in the range 2/0 to 7/15 would be affected.
Conforming software shall not designate a 96
character UPSS as GO.

I
I

State Affected:

Algorithm:
void shift in ()
{

in use table.gl = designated graphic sets[O];
in-use-table.invoked gl = GO;
-

}-

-

Known Deviations:

momDomD™

-

None

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-74
. Digital Internal Use Only

SHIFT OUT
LOCKING SHIFT ONE

SO
LS1

-----------------------~------------------------------------------

Levels:

1, 2, 3

purpose: Invoke the G1 graphic character set into the GL position
of the code table.
Format:

LS1

(SO)

1/14
Description:
The LS1 or SO control invokes the set of graphic
characters currently designated as a G1 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current. contents of the G1
character set.
State Affected:

Algorithm:
void shift_out ()
{

in use table.gl - designated graphic sets[l];
in-use-table.invoked gl - G1;
}Known Deviations:

mDmDomD™

None

EL-00070-03
VSRM ~ Code Extension Layer

14-Apr-1989
Page 3-75
Digital Internal Use Only
LS2

LOCKING SHIFT TWO
Levels:

2, 3

Purpose:
Invoke the G2 graphic character set into the GL position
of the code table.
Format:

ESC

n

1/11

6/14

Description:
The LS2 control invokes the set of graphic
characters currently designated as a G2 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G2
. character set.
Notes:
1.

This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software.

State Affected:

Algorithm:
void locking shift two ()

{

if

-(conformance level =- LEVEL 2)
{
in use table.gl = designated graphic sets[2];
in-use-table.invoked gl = G2;
}-

}

Known Deviations:

momDomD™

None

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-76
Digital Internal Use Only

LOCKING SHIFT THREE
Levels:

LS3

2, 3 ,

Purpose:
Invoke the G3 graphic character set into .the GL position
of the code table.
Format:

ESC

o

1/11

6/15

Description:
The LS3 control invokes the set of graphic
characters currently designated as a G3 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G3
character set.
Notes:
1.

This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software. See DEC STD
070-1.

State Affected:

Algorithm:
void locking shift three ().

-

{

if (conformance level

-

{

==

LEVEL_2)

in use table.gl = designated graphic sets[3];
in-use-table.invoked gl = G3;
}

-

-

-

}

Known Deviations:

~DmDDmDTM

None

14-Apr-1989
Page 3-77
Digital Internal Use Only

EL-00070-03
VSRM - Code Extension Layer
LOCKING SHIFT ONE RIGHT
Levels:

LS1R

2

Purpose:
Invoke the G1 graphic character set into the GR position
of the code table.
Format:

ESC
1/11

7/14

Description:
The LS1R control invokes the set of graphic
characters currently designated as a G1 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G1
character set.
Notes:
1.

This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software.
(See DEC
STD 070-1.)

2.

Conformance to Level 3 of ISO 4873 requires the use of
LS1R to invoke the right-hand part of the eight-bit code
table.

State Affected:

Algorithm:
void locking shift one right ()

f

-

--

if (conformance level

-

{

==

LEVEL 2)

-

in use table.gr = designated graphic sets[l]i
in-use-table.invoked gr = G1;
-

}-

-

-

}

Known Deviations:

~DmDDmDTM

None

14-Apr-1989
Page 3-78
Digital Internal Use Only

~L-00070-03

VSRM - Code Extension Layer

LS2R

LOCKING SHIFT TWO RIGHT
Levels:

2, 3

Purpose: Invoke the G2 graphic character set into the GR position
of the code table.
Format:

ESC

}

1/11

7/13

Description:
The LS2R control invokes the set of graphic
characters currently designated as a G2 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets), that is entered into the
display to be rendered according to the current contents of the G2
character set.
State Affected:

Algorithm:
void locking shift two right ()

--

-

{

if (conformance level -- LEVEL 2)
{

-

-

in use table.gr • designated graphic sets[2];
in-use-table.invoked gr = G2;
}}

Known Deviations:

momDomD™

None

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989.
Page 3-79
Digital Internal Use Only

LOCKING SHIFT THREE RIGHT
Levels:

LS3R

2, 3

Purpose:
Invoke the G3 graphic character set into the GR position
of the code table.
Format:

ESC
1/11

7/12

Description:
The LS3R control invokes the set of graphic
characters currently designated as a G3 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G3
character set.
State Affected:

Algorithm:
void locking shift three right ()

-

-

{

if (conformance level

-

{

==

-

LEVEL 2)

-

in use table.gr = designated graphic sets[3];
in-use-table.invoked gr = G3;
-

}-

-

Known Deviations:

-

None

EL-00070-03
VSRM - Code Extension Layer
3.8.3~2

14-Apr-1989
Page 3-80
Digital Internal Use Only

Single Shifts

SINGLE SHIFT TWO
Levels:

SS2

1, 2, 3

Purpose: Temporarily invoke a single character from the
designated G2 set.
Format:

SS2
8/14

Description:
The SS2 control causes the next character in the
received data strea~, which must be in the range 2/0 through 7/15
or 10/0 through 15/15, to be rendered according to the current
contents of the G2 set. If the next character in the received
data stream is not a graphic character in this range, the single
shift function is ignored and the received character is processed
as if the single shift had not been received.
The only exception to this rule is that a single Shift Out (0/14)
or Shift In (0/15) control character may occur between the Single
Shift and the subsequent graphic character. The Shift Out or
Shift In character will be interpreted normally, but does not
cancel the Single Shift. The following bit combination shall be
interpreted as a character from the G2 set. This is done for
conformance to ISO 2022, and is intended to facilitate the design
of 8-bit to 7-bit transformation facilities.
State Affected:
single shift type single shift;
boolean_type-cancel_single_shift;
Algorithm:
(See "Single Shift Three" below.)

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
page 3-81
Digital Internal Use Only

SINGLE SHIFT THREE

SS3

1, 2, 3

Levels:

purpose: Temporarily invoke a single character from the
designated G3 set.
Format:

SS3
8/15

Description:
The SS3 control causes the next character in the
received data stream, which must be in the range 2/0 through 7/15
or 10/0 through 15/15, to be rendered according to the current
contents of the G3 set.
If the next character in the received
data stream is not a graphic character "in this range, the single
shift function is ignored and the received character is processed
as if the single shift had not been received.
The only exception to this rule is that a single Shift Out (0/14)
or Shift In (0/15) control character may occur between the Single
Shift and the subsequent graphic character. The Shift Out or
Shift .In character will be interpreted normally, but does not
cancel the Single Shift. The following bit combination shall be
interpreted as a character from the G3 set. This is done for
conformance to ISO 2022, and is intended to facilitate the design
of 8-bit to 7-bit transformation facilities.
State Affected:
sing-Ie shift type single shift;
boolean_type-cancel_single_shift;
Algorithm:
1
1

I

/* . . . main loop */
c = readcom();

1

parse_ansi(c, &com_state, &event, &start, &final);

1

if (single shift!s NONE)

I
1

"I
1
1

I
I
I
1
1

I
I

1

I

{-

.

if (cancel single shift) single shift
cancel single shift - IS TRUE; -

-

}

-

-

/* process recognized events . . . */
if (event == R CONTROL)

-

{

=

code

com_state->data[final];

if (code

==

OxOE)

{

shift_out( )i

~DmDDmDTM

/* SO (LS1) */

=

NONE;

EL-00070-03
VSRM - Code Extension Layer

14-Apr~19S9

Page 3-S2
Digital Internal Use Only

cancel single shift - IS_FALSE;
}

-

-

else if (code -- OxOF)

/*

51 (LSO)

*/

{

shift in();
canceI single shift - IS_FALSE;
}

-

-

else if (code -- OxSE)
{

single shift - SS2;
cancel-single shift - IS_FALSE;
}

-

-

else if (code -- OxSF)
{

single shift- SS3;
cancel-single shift - IS_FALSE;
}

-

-

/* . . . */
}

/* continue main loop . • • */

Known Deviations:
Previous versions of this standard incorrectly stated that an SO
or SI between a Single Shift and its operand would be ignored.
Since we do not normally translate between 7-bit and S-bit
environments within Digital; this has not been a problem. Future
implementations should conform to ISO 2022 as described above.

momDomD™.

-EL-00070-03
VSRM - Code Extension Layer
3.9

14-Apr-1989
Page' 3-83
Digital Internal Use Only

CHANGE HISTORY

3.9.1

REVISION 0.2 to 0.3
1.

The standard's title was changed from "Communications and
Coding Interchange" to "Code Extension La~er".

2.

The names of the Reference Standards were corrected.

3.

The conformance section was removed, and will later be
integrated into the section "Concepts and Conformance
Criteria".

4.

The terminology section was moved from the back of the
document to the front.

5.

A sentence was added to the section on graphic character
codes to clarify the handling of bit combinations in the
range 2/1 through 7/14 and 10/1 through 15/14 when
received within a control function.

6.

Qualifications were added to the section on rate limiting
in terminals.

7.

XON was removed from the definition of the Universal
Terminator.

8.

Sections were added to the notes on Escape Sequences and
Control Sequences to clarify the processing of 7/15 and
15/15 and C1 control characters within control functions.

9.

The section on processing of control sequence parameter
values was substantially rewritten.

10.

The section on Control Strings was moved ahead of the
parser design.

11.

A note was added on the non-conformance of the VT125 in
processing CAN within control strings.

12.

Global changes were made to the parser design to
incorporate the processing of DCS introducer sequences.

13.

A figure was added showing the logical relationship of
the C sets, G sets, In Use Table, and character sets.

14.

A note was added referencing DEC STD 169-0 and clarifying
the distinction between conforming Presentation
interchange and conforming Application interchange.

15.

The 8-bit locking shifts table was corrected for LS3R.

16.

All state descriptions were rewritten, and the names
changed for consistency with other parts of the SRM.

mDmDomo™

EL-00070-03
VSRM - Code Extension Layer

l4-Apr-1989
Page 3-84
Digital Internal Use Only

s~ction

17.

The environments

18.

The default character set designations were changed to
distinguish between Level 1 operation and Level "2
operation.

19.

The names of Select 7-bit C1 and Select 8-bit C1 were
changed to include "Transmission". These controls are
now called S7CIT and S8CIT.

20.

GR Transmission Mode and Send/Receive Mode were removed
from the architecture.

21.

The coding was changed for LSO, LS1, LS1R, LS2R, LS3R,
SS2 and SS3. Notes were added on conforming software use
of these controls.

22.

The character set designators were removed from this
section and will later be incorporated into the section
"Character Cell Display".

3.9.2

was substantially rewritten.

REVISION 0.3 to AxlO
1.

Removed reference to use of Delete as a pad character,
and made wording stronger that conforming software must
use NUL only.

2.

Added note to description of the processing of the 10/0
character to indicate that it is treated as Space (2/0)
within controL functions.

3.

Made minor corrections and changed a few variable names
in the parser algorithms to be consistent with other
sections of the SRM.

4.

Added a note to the section on environments indicating
that the "logical" environment might in fact be different
from the "physical" environment of the hardware, and if
this is the case the architecture does not define the
result.

5.

Changed descriptions of Single Shift Two and
Single Shift Three as well as the algorithms to indicate
that they wiTl be ignored if the next character in the
received data stream is not a graphic character.
(With
the exception that a single Shift Out or Shift In
character may occur.)

6.

Removed the notes which restricted conforming software
from using Single Shift Two and Single Shift Three.

mDmDomD™

EL-00070-03
,VSRM - Code Extension Layer

14-Apr-1989
Page 3-85
Digital Internal Use Only

7.

Added a note that rate limiting should be the factory
default in devices which have a capability of defeating
this feature.

8.

Changed the description of control characters occurring
within control strings to permit, but deprecate the use
of, any function other than String Terminator to
terminate a string.

9.

Added a note that GR (8-bit) graphic characters may occur
within control strings.

3.9.3

REVISION AX10 to Ax11
1.

Removed Rev AX10 change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

Changed GET NEXT CODE FROM INPUT BUFFER to strip
parity bit in Levell. ----

3.

Added statement that the inclusion of CO Controls 0/8 to
0/13 in control string data is intended for convenience
in formating and storing control strings.
It is
recommended that these characters not affect the
interpretation of the control string.

EL-00070-03
VSRM - Code Extension Layer
3.9.4

14-Apr-1989
Page 3-86
Digital Internal Use Only

REVISION AX11 to AX12
1.

Removed Rev AXll change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

Added description of 8-bit Interface Architecture
Extension including Support for 96-character graphic
character sets, ISO Latin-l Supplemental, and the User
Preference Supplemental Set (UPSS). The 8-bit Interface
Architecture Extension is required for Level 3
conformance, and strongly recommended for Level 2.
Modified rest of chapter to assume the 8-bit Interface
Architecture Extension is present. Graphic characters
can now be in the range 2/0-7/15 and 10/0-15/15 when
96-character graphic sets are used. Expanded description
of default designations and invocations for 8-bit
Interface Architecture.

3.

updated referenced standards section. Added dpANS
X3.134.1-1985, X3.134.2-1985, and ISO 8859-1:1987.

4.

Removed one page section on communication controls
(XON/XOFF, padding, and rate limiting) because they are
not really part of Code Extension. These will included
in chapter 12 on Terminal Synchronization.

5.

Changed recommendation for mlnlmum size of parameters
that should be supported. Was 255 (8-bits), changed to
16384 (14-bits).

6.

Added recommendation for handling parameters beyond the
device maximum. Parameters beyond the maximum number
supported should be ignored.

7.

Extended description of multiple selective parameters to
conform with current usage. Not all sequences containing
more than one selective parameter have the same effect as
a corresponding number of separate control sequences,
each with a single parameter.

8.

Clarified range of final characters for DeS sequences 7/0
t~ 7/14 (same as for private control sequences).

9.

Added description of Digital extended syntax for other
Control Strings (APC, OSC, PM). Syntax is patterned
after Private Escape Sequences.

10.

Added description of Character Strings (SOS) and
anticipatory guidelines compatible with ISO 6429.

11.

Clarified rules for 8-bit graphic characters within
control strings including exception for Des strings.
8-bit graphic characters are treated as their 7-bit

mamaomD™

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-87
Digital Internal Use Only

equivalents (8th bit ignored) in APC, OSC, PM strings,
and DCS introducer sequences.
Interpretation of 8-bit
characters in data portion of DCS strings is dependent on
the internal control string format.
12.

Added description of NRCS Extension allowing ASCII to be
replaced with NRC set (including default designations and
invocations). Removed previous description of British
NRCS as a special case.
Included reference to section 6
where DECNRCM is documented.

13.

Removed description of Printer Port Environment
(7-bits/8-bits) within Host Port Environment. Added
reference to "Printer Port Extension" chapter.

14.

Added description of "Announce Subset of Code Extension
Facilities" per ISO 4873 including algorithm and escape
sequences.

15.

Added note about the possibility of a 96-character UPSS
being designated as GO. Normally there is no way to
directly designate a 96-character set as GO.
Conforming
software shall not designate a 96-character UPSS as GO.

16.

Changed algorithms to use character re-entrant parser
coded in VAX-11 C. This table driven ANSI parser is
easier to follow, and is being used in actual products.

17.

Changed standard to show that SI or SO occurring between
a Single Shift and its operand does not cancel the Single
Shift (SS2 or SS3) but may still affect subsequent data.

EL-00070-03
VSRM - Code Extension Layer
3.10

14-Apr-1989
Page 3-88
Digital Internal Use Only

REFERENCED DOCUMENTS

DIGITAL STANDARDS
EL-00070-01

DEC STD 070-1 Video Systems Reference
Manual - Concepts and Conformance Criteria

EL-00070-05

DEC STD 070-5 Video Systems Reference
Manual- Character Cell Display

EL-00070-06

DEC STD 070-6 Video Systems Reference
Manual - Keyboard Processing

EL-00070-07

DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension

EL-00138-00

DEC STD 138-0 Registry of Control
Functions for Character Imaging Devices

EL-00169-00

DEC STD 169-0 DEC Standard Coded
Graphic Character Sets for Hardware
and Software

Copies of Digital Standards Can be obtained from Standards and
Methods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, or
CTS1-2/D4.
please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986

American National Standard Code for
Information Interchange (ASCII character set)

ANSI x3.41 - 1974

American National Standard Code Extension
Techniques for use with the 7-sit Coded
Character Set of the American National
Standard Code for Information Interchange

ANSI X3.64 - 1979

Additional Controls for use with American
National Standard Code for Information
Interchange

ANSI X4.23 - 1982

Keyboard Arrangement for Alphanumeric
Machines

mD~DDmDTM

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-89
Digital Internal Use Only

dpANS X3.134.1-1985 8-bit ASCII Structure and Rules
dpANS X3.134.2-1985

7~bit and 8-bit ASCII Supplemental
Multinational Graphic Character Set

ISO 646

Information Processing /
7-Bit Coded Character Set
for Information Interchange

ISO 2022:1986

Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques

ISO 6429:1988

Information Processing /
Control Functions for Coded Character Sets

ISO 8859-1:1987

Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;

Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.

~DmDDmDTM

,

EL-00070-03
VSRM - Code Extension Layer

l4-Apr-1989
Page 3-90
Digital Internal Use Only

This page deliberately left blank.

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page Index-1
Digital Internal Use Only
Section Index

10/0, 3-17
15/15, 3-17
within control function, 3-22,
3-23
2/0, 3-17
7/15, 3-17
within control function, 3-22,
3-23
Announce Subset of Code Extension
Facilities, 3-68
APC
introducer, 3-29
Application Program Command, 3-28
8-bit Character Set
within control function, 3-22,
3-24
7-bit Characters, 3-7, 3-64
8-bit Characters, 3-7
Bit Combination, 3-12, 3-61
definition, 3-10
parameter, 3-24
within control function, 3-16
C language, 3-31
CO Control Characters, 3-60, 3-65
7-bit encoding, 3-12
8-bit encoding, 3-14
CO Control Code
within control function, 3-22,
3-23
C1 Control Characters, 3-60, 3-65
7-bit encoding, 3-23, 3-71
8-bit encoding, 3-14, 3-72
wi thin control functions, 3-.19
within control strings, 3-30
C1 Control Code
within control function, 3-22,
3--24
C1 Transmission Mode, 3-67, 3-71,
3-72
Cancel, 3-19, 3-30
Character
defined, 3-10
Character Code, 3-12

control, 3-16
definition, 3-10
graphic, 3-16
Character Set, 3-59
7-bit, 3-12
8-bit, 3-14
definition, 3-10
designation, 3-62
repertory, 3-60
Code Extension, 3-16
control code, 3-18
control sequence, 3-23
definition, 3-10
escape sequence, 3-22
graphic code, 3-59
Code Table, 3-62
definition, 3-10
row and column, 3-11
structure, 3-13, 3-15
Command String, 3-29
Conformance
locking shifts, 3-61
single shifts, 3-62
software, 3-62
Control Character, 3-16
7-bit environment, 3-16
8-bit environment, 3-16
CO, 3-14
C1, 3-14, 3-19
C1 expansion, 3-23
cancel, 3-19
code extension techniques, 3-18 definition, 3-10
escape, 3-19
substitute, 3-19
unimplemented, 3-20
within control function, 3-22,
3-23
Control Function, 3-16
categories, 3-18
definition, 3-10
precedence, 3-18
Control Sequence, 3-18, 3-23
definition, 3-10
format, 3-23
introducer, 3-23

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page Index-2
Digital Internal Use Only

numeric parameter, 3-11, 3-25
parameter, 3-24
parameter string, 3-11, 3-24"
parsing, 3-31
private parameter, 3-26
selective parameter, 3-11, 3-25
termination, 3-18, 3-19
unimplemented, 3-20
Control Sets, 3-65
Control String, 3-18
definition, 3-10
string terminator, 3-28
termination, 3-19, 3-30
types, 3-28
unimplemented, 3-20
DEC STD 070-1, 3-62, 3-76, 3-77,
3-88
DEC STD 070-5, 3-65, 3-88
DEC STD 070-6, 3-7, 3-17, 3-63,
3-64, 3-88
DEC STD 070-7, 3-66, 3-88
DEC STD 138-0, 3-25, 3-88
DEC STD 169-0, 3-62, 3-68, 3-83,
3-88
DECNRCM, 3-7, 3-64
Default Designation and
Invocation, 3-63, 3-68, 3-69
Defaults
character set designation, 3-63,
3-68
character set invocation, 3-63,
3-68
Delete, 3-12, 3-14, 3-17
Designate, 3-60, 3-62
defaults, 3-63, 3-68
definition, 3-10
Designated Graphic Sets, 3-60
definition, 3-65
Device Control String, 3-28
format, 3-28
introducer, 3-28
numeric parameter, 3-11
parameter string, 3-11
parsing, 3-31
selective parameter, 3-11
dpANS X3.l34.1-1985, 3-89
Environment

7-bit and 8-bit, 3-12, 3-21,
3-59, 3-66
definition, 3-10
host port, 3-66
printer port, 3-66
transformation, 3-21
Escape, 3-19, 3-22, 3-30
Escape Sequence, 3-18, 3-22
definition," 3-10
expansion escape sequence, 3-11,
3-23
format, 3-22
parsing, 3-31
termination, 3-18, 3-19
unimplemented, 3-20
Expansion E~cape Sequence," 3-23
definition, 3-11
Final Character
APC, 3-29
control sequence, 3-23
definition, 3-11
device control string, 3-28
escape sequence, 3-22
OSC, 3-29
PM, 3-29
G-Sets, 3-59
GO, 3-60, 3-65
G1, 3-60, 3-65
G2, 3-60, 3-65
G3, 3-60, 3-65
GL, 3-14, 3-60, 3-65
GR, 3-14, 3-60, 3-65
GR Graphic Character
within control function, 3-24
Graphic Character, 3-16
code extension techniques, 3-59
definition, 3-11
GL, 3-14
GR, 3-14
within control function, 3-22
Host Port Environment Mode, 3-66,
3-67
In Use Table, 3-15, 3-60, 3-65
Interface
external, 3-9
internal, 3-9

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page Index-3
Digital Internal Use Only

Intermediate Character
control sequence, 3-23
definition, 3-11
device control string, 3-28
escape sequence, 3-22
Invoke, 3-60, 3-62
defaults, 3-63, 3-68
definition, 3-11
ISO 4873, 3-68
ISO 8859-1, 3-89

examples, 3-27
maximum length, 3-24
parsing, 3-31
PM
.
introducer, 3-29
Printer Port
environment, 3-66, 3-67
privacy Message, 3-28
Private parameter, 3-26
Referenced Documents, 3-88

Locking
Level
Level
Locking
Locking
Lo~king

Locking
Locking
Locking
Locking

Shift, 3-59
1, 3-61
2, 3-61
Shift One, 3-74
Shift One Right, 3-77
Shift Three, 3-76
Shift Three Right, 3-79
Shift Two, 3-75
Shift Two Right, 3-78
Shift Zero, 3-73

Modes
Cl transmission, 3-67, 3-71,
3-72
host port environment, 3-67
printer port environment, 3-67
Multinational Mode, 3-7
National Mode, 3-7, 3-64
National Replacement Character
Set (NRCS), 3-7, 3-64
Numeric Parameter
definition, 3-11
multiple, 3-25
Operating System Command (OSC),
3-28
introducer, 3-29
Parameter
device control string, 3-28
maximum value, 3-24
numeric, 3-11, 3-25
private, 3-26
selective, 3-11, 3-25
unimplemented, 3-20
Parameter String, 3-23
definition, 3-11
device control string, 3-28

S7C1T, 3-71
S8C1T, 3-72
Select 7-Bit C1 Transmission
control function, 3-71
Select a-Bit C1 Transmission
control function, 3-72
Selective parameter
definition, 3-11
multiple, 3-25
Shift Functions, 3-59
Shift In, 3-73
within control function, 3-21
Shift Out, 3-74
within control function, 3-21
Sing~e Shift, 3-59, 3-62, 3-66
Single Shift Three, 3-81
Single Shift Two, 3-80
Software Conformance
designating character sets,
3-62
invoking character sets, 3-62
pad characters, 3-17
terminating control strings,
3-30
Space, 3-12, 3-14, 3-17
Special Characters
10/0, 3-17
15/15, 3-17
7/15 (delete), 3-17
2/0 (space), 3-17
String Terminator, 3-19, 3-28
Substitute, 3-19, 3-30
Termination
C1 control codes, 3-19
cancel, 3-19
control sequence, 3-18
control string, 3-28, 3-30

EL-00070-03
VSRM - Code Extension Layer
esc~pe, 3-19
escape sequence, 3-18
substitute, 3-19
universal, 3-19
Transformation, 3-21

14-Apr-1989
page Index-4
Digital Internal Use Only
Unimplemented Functions
control character, 3-20
control sequence, 3-20
control string, 3-20, 3-30
escape sequence, 3-20
Universal Terminator, 3-19

EL-00070-03
14-Apr-1989
VSRM - Code Extension Layer

+-------------------------------------------------------------------+
I
READER COMMENTS
I
I
I
I Your comments and suggestions will help Standards and Methods I
I Control improve their services and documents.
I

+-------------------------------------------------------------------+
Did you request this document?
satisfactory period of time? _____

If so, did it arrive within
Please comment.

What are your impressions of this document?
Consider
organization, completeness, readability, and illustrations.

a

format,

- -- -- -- -- -- -- -- -- -- FOLD ON THIS LINE -- -- -- -- -- -- -Did you find technical or clerical errors in this document? If so,
please specify the page number(s) and the error(s).

Are the instructions for the update package clear?
Do you have other suggestions for improving this document?

The following information is optional:
Name

Mailstop

Department

Node

Send your comments to JOKUR::PROJECTS, or fold, staple, and send this
page through interoffice mail to:

+-------------------------------+
I
READERS' COMMENTS
I
I STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4
I

+-------------------------------+

EL-00070-04

Digital Internal Use Only

04-0ct-1990

DEC STD 070-4 Video Systems Reference
Manual - Terminal Management
DOCUMENT IDENTIFIER: A-DS-EL00070-04-0000 Rev A, 04-0ct-1990

ABSTRACT: This section describes device and service-class independent protocols for
performing identification and status functions, and for selecting syntax for interchange
compatibility.

APPLICABILITY: Mandatory for engineers designing hardware for terminal products and
software engineers designing programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts and Conformance
Criteria.

STATUS: APPROVED 04-0ct-1990; use VTX SMC for current status.

The material contained within this document is assumed to define mandatory
standards unless it is clearly marked as: a. not mandatory; or b. guidelines.
Material that is marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there are good
reasons for non-compliance. "Guidelines" define approaches and techniques
that are considered to be good practice, but should not be considered as
requirements.

This document is confidential and proprietary, and is the property of Digital
Equipment Corporation. It is an unpublished work protected under the Federal
copyright laws.
©Digital Equipment Corporation.

1990. All rights reserved.

Digital Internal Use Only

Digital Internal Use Only

EL-00070-04

04-0ct-1990

DEC STD 070-4 Video Systems Reference Manual - Terminal Management
DOCUMENT IDENTIFIER: A-DS-EL00070-04-0000 Rev A, 04-0ct-1990

Rev A

REVISION HISTORY:
Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:

04-001-1990
Terminal Interface Architecture (STI)
VIPS Terminals Architecture
Peter Sichel
Don Mehaffey

APPROVAL: This document has been reviewed and recommended for approval by the General
Review group for its category.

Peter Sichel - VIPS Terminals Architecture

Eric Williams - Standards Process Manager

Direct requests for further information to:
Peter Sichel
Use $ VTX ELF for the latest location information.

Use VTX SMC to order copies of this document from Standards and Methods Control. Send
distribution questions to JOKUR::SMC or call DTN: 287-3724.

DlgttallnternalUse Only

04·0ct·1990

EL-00070-04

CONTENTS
1 INTRODUC'l'ION ................................
1.1 SCOPE .............
1.2 RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)
0

0

2 TERMINOLOGY

0

•

•

•

•

•

•

•

•

•

•

0

•

••

•

•

o

•

•••

•

•

•

0

•

•••

•

•

•

00'

•

•

•

•••

•

•

•

0....

•

•

•

•

•

•

•

•••••

••

•

•

••

•

•

••

•

•

0

•

•

•

•

•••••••

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

••

•

0.......
•

•

•

•

•

•

•

•

1
1
1
2

•

3 STATE DESCRIPrIONS ................
3.1 DEVICE IDENTIFICATION ..........................................
3.2 TERMINAL STATE DECLARATIONS ...........
3.3 STATUS AND TEST ................ '
3.3.1 Virtual Terminal Configuration.
3.3.2 Data Integrity .......

3
3
5
12
12
12

4 DEVICE INITIALIZATION ..................................

12

0

0

0

0

5 CONTROL FUNCTIONS.

0

•

••

•

0

•

•

•

•

•

•••••

•••••••••••

0

•

•

0

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•••

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

0

••••

0

••••••••••

0

•

0

0

•

•••••••••••••••••••

0

•

0

0

•

•

•

•

•

•

0

•

•

•

0

••••••••••••••••••••••••

0

••

0

•••

0

0

•

•

•

•

•

0

•••••••••

•••••••••••••••••••••••••••••••••••••••••••••

0

6 CHANGE HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 REVISION 0.0 TO 0.1 ...............................................
6.2 REVISION 0.1 TO .AX10 o.
6.3 Rev AXI0 to .AXIl ..................................................
6.4 Rev AXIl to AX12 ..
0

0

Appendix A

••••

••••••

0

•

•

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

REFERENCED DOCUMENTS. . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .

A.I EL-Class Digital Documents .................................
Appendix B

RELATED DOCUMENTS ................

0

••

0

••

0

•

•

•

•

•

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

0

0

0

Bol EL-Class Digital Documents ........................................

B.2 Other Documents ................
Bo3 Ordering Information

0

••••••

0

0

••••

0

•••••

0

•

0

0

0

.' ••

0

•••

0

0

•

0

•••••••

0

••••••••••

0

0

0

0

0

0

••••

•••

0

•

•••••

•

•

•

•

•

•

•

•

•

•

0

•

•

•

•

•

•

17

38
38
38
39
39
43
43
45
45
45
45

INDEX
FIGURES
I
2

mOIODla'"

Structuring of the Terminal Interface Architecture
External and Internal Terminal Interfaces
o

••••

0

0

•

0

••

0

0

0

0

0

••

Digital Internal Use Only

0

0

0

••

••

0

0

•

•

••••••

•

•

•

•

•

•

•

0

0

0

•

0

0

•

1
2

III

EL"()0070"()4

04-Oct-1990

TABLES
1

Registered Extensions to the Character Cell Display Service Class

Digital Internal Use Only

19

04·0ct·1990

EL·00070·04

1

INTRODUCTION

This standard defines the interface to perform terminal management functions in all
terminal devices. Terminal management functions include device control operations
that are independent of any display service class and that are not associated with the
. presentation of data.
1.1

SCOPE

This standard applies to all Digital products that implement terminal management
interfaces and are to be certified as conforming to the Terminal Interface Architecture
(TIA). It also applies to software that is intended to use these interfaces in a conforming
manner.
1.2

RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)

The terminal management functions are a unique class of device controls that operate
across layers of the TIA.
Figure 1: Structuring of the Terminal Interface Architecture

USER
Input Processing

T M
e a
r n
m a

9

Presentation Service Class

n e
a m
I e
n

t
Code Extension Layer

APPLICATION PROCESS

To aid in understanding, functions described in this document are identified as intended
for either application, terminal management, or communications use when an external
communications interface is present (guideline). These different uses may not always be
separated. For example, applications may require their own terminal management. If
not otherwise indicated, functions described in this document are intended for terminal
management use.

Digital Internal Use Only

1

04-Oct-1990

EL-00070·04

The interfaces defined within this document apply to both internal and external product
interfaces. External interfaces are interfaces between a terminal, personal computer, or
workstation and a remote system. Internal interfaces are interfaces between a terminal
sub-system and software processes running within a terminal, personal computer, or
workstation.
Figure 2: External and Internal Terminal Interfaces
Terminal

System

,
,---------------------\

Host

System

\

Physical
Terminal

Virtual
Terminal

,


,
,
,
,
,
,
\

Application
Process

\



\

\





EXTERNAL INTERFACE

\

Physical
Terminal

Virtual
Terminal

\

Application
Process

\





,
\



\

iNTERNAL INTERFACE

2 TERMINOLOGY

Conformance Level - An architectural agreement that defines a number of functions
within a class of operations that must be adhered to in all products claiming to implement
that level. Conformance levels are defined to provide interface compatibility with other
devices at the same level. Selecting a particular conformance level automatically places the
terminal into a known state (the Soft Terminal Reset state on video terminals), without
affecting the data currently contained in the display.

Device Self-Test - A control provided as a means of invoking device specific diagnostic
tests, .and subsequently determining the device status by means of the Device Status
Report (DSR) control.
.

Device Status Report - A control used to inquire as to the current state of the terminal
device. Note that some Device Status Reports (DSRs) are properly part of terminal
management, while others pertain to presentation state or input processing.

Factory Default State - Digital specified default values for all state information. Factory
Defaults are also the initial configuration of all setable state when the unit is shipped from
the factory (manufacturing site) .

. Power-Up State - Factory defaults plus any non-volatile settings, such as Non-Volatile
Memory (NVM), customization switches. The initial configuration of all eetable state
immediately following power-up.

Digital Internal Use Only

EL-00070-04

04-Oct-1990

Primary Device Attributes Control - The control used to request or report the
implemented architectural conformance level and extensions.

Secondary Device Attributes Control - The control used to request or report the
identification code of the specific product in which the interface is implemented.
Tertiary Device Attributes Control - The control used to request the identification code
of the specific unit in which the interface is implemented.
Terminal Management Functions - A special class of device controls that operate
across all layers of the Terminal Interface Architecture (TIA) and are not related to the
presentation of data.
3

STATE DESCRIPTIONS

The algorithms in this standard provide a description of terminal state and how it is
affected by various functions. They have been compiled for accuracy, but have not been
formally certified. They should be viewed the same as other text in the standard.
3.1

DEVICE IDENTIFICATION

A conforming device shall provide an identification mechanism that returns the following
information upon request.
a.

The general characteristics (display service class) of the device, indicating the
architectural level to which the device conforms

b.
c.

The architectural extensions that the device implements
A product specific code registered by the architecture

d.

A revision level code, indicating the release level of the communicating firmware or
software implementing the terminal management functions

e.

A list, defined by each product implementation, of product specific options installed in
the device at the time the identification request is received

f.

For Level 4 and higher devices, a unique serial number to identify the specific unit

Digital Internal Use Only

3

04-Oct-1990

EL·00070-Q4

The following example illustrates the constants used for VT420 terminal identification.
/************** Module terminal identification.h *************/
/*

*
*

-

Constants used for terminal identification
VT420 example

*/

/*

*

*

Extensions to the terminal interface architecture
1-Feb-1990
Level 1 through Level 4

*/
Ide fine
'define
'define
Ide fine
'define
'define
'define
'define
Ide fine
Ide fine
'define
'define
'define
Ide fine
Idefine
Ide fine
Ide fine
'define
'define
'define
Ide fine
'define
'define
'define
'define
Idefine
Idefine
Idefine
Ide fine
Ide fine
Idefine
Idefine
Ide fine
Idefine
'define
Ide fine
'define

ONE THIRTY TWO COLUMN
PRINTER PORT REGIS GRAPHICS
SIXEL GRAPHICS
KATAKANA EXT
SELECTIvE ERASE
ORCS EXT
UDK EXT
NRCS EXT
KANJI EXT
STATUS DISPLAY EXT
SERBO CROATIONBLOCK MODE
EIGHT-BIT IA
TCS
LOCATOR_PORT
TSI
WINDOWING
MULTIPLE SESSIONS
APL
HORIZONTAL SCROLL
COLOR TEXTGREEK
TURKISH
ARABIC BILINGUAL M1
ARAB IC-BILINGUAL-M2
ARABIC BILINGUAL M3
RECTANGULAR EDITING
TEXT LOCATOR
HANZI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* Technical Char Set */
16
/* State Interrogation */
17
18
/* via TD/SMP */
19
20
21
22
23
24
25
26
27
28
29
30
/* 31 not assigned */
TEXT MACROS
32
33
HANGUL HANJA
ICELANDIC
34
ARABIC_BILINGUAL_TC
35
36
ARABIC BILINGUAL NOTC
THAI 37
38
CHARACTER OUTLINING

'define NUMBER_OF_EXTENSIONS

39

/* device identification */
Idefine PRODUCT ID
41
Idefine REVISION_LEVEL 10

/* VT420 */
/* Version 1.0 times 10 */

/* hardware options */
Idefine NUMBER_OF_OPTIONS 0

/* VT420 has no options */

OlgHal Internal Use Only

04-0ct-1990

EL-00070-04

3.2 TERMINAL STATE DECLARATIONS
The code example below illustrates type declarations for the terminal state. Type
declarations in C do not allocate any storage. All these types can be defined regardless of
the conformance level or extensions actually implemented.
/************** Module terminal_state_types.h *************/
/*
* type declarations for terminal state
PAS 1-Feb-1990
* VT420 example
*/

/*
* terminal management
*/
itinclude "terminal identification.h"
typedef short int conformance level t;
itdefine LEVEL 1 1
-itdefine LEVEL-2 2
itdefine LEVEL-3 3
itdefine LEVEL:4 4

/* DA definitions */

typedef enum
{
/* device status t */
READY,
MALFUNCTION
} device_status_t;

typedef enum
LIMITED, UNLIMITED } transmit_rate_limit_mode_t;
typedef enum
{
/* vt_configuration_t */
SINGLE SESSION,
SESSIONS_ON_COMM,
Sl HOST S2 PRINTER,
S2-HOST-S1-PRINTER
/*-VT330 with 2nd Host Port
SESSIONS_ON_COMM2,
Sl COMM1 S2 COMM2,
S2-COMM1-S1-COMM2 */
} Vt_confi~ration_t;
typedef enum
{
/* control_representation_mode_t */
INTERPRET_CONTROLS,
DISPLAY CONTROLS
} contrcl_representation_mode_t;

/*
* Code Extension Layer
*/
/* type declarations */
itinclude "gparse.h"
/* ANSI parser definitions */
typedef enum { ASCII_C }
cO_control_set_t;
typedef enum { SUPPLEMENTAL_C} c1_control_set_t;
typedef enum
{

ASCII_G,
LINE_DRAWING_G,
DEC_SUPPLEMENTAL_G,
ISO LATIN1 SUPPLEMENTAL_G,
DRCS_G,
NRCS_G,
UPSS_G,
TCS G

Digital Internal Use Only

5

EL·00070-o4

04-0ct-1990

} graphic_character_set_t;
typedef enum { GO, Gl, G2, G3 } gset_name_t;
typedef struct
{
/* in use table t */
cO_control_set t
cO;
graphic_character_set_t
gl;
gset_name_t
invoked_gl;
cO control set t
cl;
graphic_character_set_t
gr;
gset name t
invoked_gr;
} in:use_table_t;
typedef enum { NO SINGLE SHIFT, SS2, SS3
single_shift_t;
typedef enum
{
/* in control string t */
NOT_IN_CONTROL:STRING,REGIS,
SIXEL,
ORCS LOAD,
UDK_LOAD,
MACRO LOAD,
TERMINAL STATE_LOAD,
PRESENTATION_STATE_LOAD,
SET TERMINAL UNIT ID
} i~ control-stri~g t;
typedef enum { EIGHT_BIT, SEVEN_BIT } environment_t;
typedef enum { EIGHT BIT MULTINATIONAL, SEVEN BIT NATIONAL
character_set_mo'de_t;
ltinclude "char_cell_types.h"

/* character cell display */

/*

*

Status Display Extension

*/
t ypedef enum
typedef enum

MAIN DISPLAY, STATUS DISPLAY } active display t;
NO_STATUS_DISPLAY, INDICATOR, HOST } status_dlsplay_t;

/*

* keyboard processing
*/
typedef enum
UNLOCKED, LOCKED } keyboard_action_mode_t;
typedef enum
REPEAT_ON, REPEAT_OFF } auto_repeat_mode_t;
typedef enum
CURSOR, CK APPLICATION } cursor key mode t;
typedef enum
NUMERIC, KP APPLICATION} keypad mode t;typedef enum
TYFEWRITER,-DATA_PROCESSING}
keyboard usage mode t;
typedef enum-{ CAPS LOCK, SHIFT LOCK} caps shift lock mode t;
typedef enum { HOLD-OFF, HOLD ON } hold screen mode t;typedef enum { LOCK-OFF, LOCK-ON} lock-mode t ;
typedef enum { KEYCLICK OFF, KEYCLICK ON } keyclick mode t;
typedef enum { ECHO ON,-ECHO OFF} send receive mode t; typedef enum { DELETE, BACKSPACE } backarrow key mode t;
typedef enum { LOCAL, REPORT, IGNORE} local-key-mode-t;
typedef enum { LOCAL F5, SHIFTED ONLY, REPORT F5~ IGNORE F5
FS_key_mode_t; typedef enum { CHARACTER, POSITION } keyboard encoding mode t;
typedef short int keyboard dialect t;
-ltdefine KEYBOARD UNDEFINED-O
tdefine NORTH AMERICAN
1
ltdefine BRITISH
2
ltdefine FLEMISH
3
ltdefine CANADIAN FRENCH
4
ltdefine DANISH
5
ltdefine FINNISH
6
ltdefine GERMAN
7
ltdefine DUTCH
8
Digital Internal Use Only

04-0ct-1990

EL·OOO70·04

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

ITALIAN
SWISS FRENCH
SWISS GERMAN
SWEDISH
NORWEGIAN
BELGIAN FRENCH
SPANISHPORTUGUESE
CANADIAN ENGLISH
MAX NUM DIALECTS

9
10
11
12
13
14
15
16
17
18

/*

*

printer port

*/
typedef enum { PRINTER CONTROLLER OFF, PRINTER_CONTROLLER_ON }
printer_controller=mode_t;
typedef enum { AUTO_PRINT_OFF, AUTO_PRINT_ON } auto-print_mode_t;
typedef enum { PRINT FF OFF, PRINT FF ON } print form feed mode t;
typedef enum { PRINT-SCROLLING REGION; PRINT DISPLAY
print_extent~ode_t;
typedef enum { NO PRINTER TO HOST, PRINTER TO HOST
printer to host mode t; typedef enum {-SHARED, SESSIONl, SESSION2 }
printer_assignment_t;
typedef enum { NATIONAL_ONLY, NATIONAL_PLUS_LINE DRAWING,
MULTINATIONAL_ONLY, ALL CHARACTERS } printer_style_t;

T

-

-

/*

*

Graphics

*/
typedef enum { GRAPHICS CURSOR ON, GRAPHICS CURSOR OFF
graphics_cursor_enable_mode_t;
/* ReGIS */

/**************

module char_cell_types.h

*************/

/*

* type declarations for character cell display state

*

PAS 28-Jul-1989

*/
typedef enum
JUMP, SLOW} scrolling mode t i
typedef enum
NORMAL_SCREEN, REVERSE=SCREEN } screen mode t;
typedef enum
WRAP_OFF, WRAP_ON } auto_wrap_mode_t;
typedef enum
TEXT_CURS OR_OFF , TEXT_CURSOR_ON }
text cursor enable mode t;
typedef enum { INSERT,-REPLACE } insert replace mode t;
typedef enum { NEW LINE OFF, NEW LINE ON } new line ;ode_t;
typedef short int line_t;
typedef short int column_t;
typedef short int page_t;
typedef struct
{
/* character-position_t */
line t line;
column t column;
page t-page; /* L4 or Windowing */
} ch;racter-position_t;
typedef enum { TRUE, FALSE } boolean t;
typedef struct
/* character rendition t */
{
boolean t bold;
boolean t blink;
boolean-t underscore;
boolean-t reverse;
} character_rendition_t;
typedef struct

Digital Internal Use Only

1

04-00t-1990

EL-00070-04

/* character_attribute_t */
boolean t selective erase;
} character_attribute_t;
typedef enum
{
/* line_rendition_t */
DOUBLE HEIGHT TOP,
DOUBLE:HEI GHT:BOTTOM,
SINGLE_WIDTH,
DOUBLE WIDTH
} line-rendition t;
typedef struct
/* character t */
{
short int code;
character rendition t rendition;
character-attribute-t attribute;
graphic character s;t t character_set;
} character_t;
typedef struct
{
/* char_set_designator_t */
graphic character set t name;
short int first intermediate;
/* 0-47, O=no intermediate */
short int second intermediate;
/* 0-47 */
short int final;/* 0 indicates null entry */
} char set designator t;
typedef enUm {-ABSOLUTE, DISPLACED
typedef struct
{
/* save buffer t */
character-position_t position;
character rendition t rendition;
origin mode t origin mode;
graphic character set t left;
graphic-character-set-t right;
graphic-character-set-t gO;
graphic-character-set-t gl;
graphic-character-set-t g2;
graphic-character-set-t g3;
charact;r attribute t-attribute;
} save_buffer_t;
typedef enum { EIGHTY, ONE THIRTY TWO } column mode t;
typedef enum { UNCOUPLED, COUPLED-} cursor_coupling:mode_t;
typedef enum { FIXED, SETABLE } left right margins mode t;
typedef enum { STREAM, RECTANGULAR }-area ;xtent t ;
typedef short int lines-per-page_t;
/*-24, 25; 36, 72, 144 */
typedef short int columns-per-page_t; /* 80, 132 */
typedef short int number_of-pages_t;
/* 1, 2, 3, 4, 5, 6 */
/************ end of char_cell_types.h ****************/

8

momoulo'"

Digital Internal Use Only

EL-00070-04

04-0ct-1990

The following example illustrates storage declarations for the terminal state. Only those
state variables required for the desired conformance level and extensions need be present.
/**************

*

*

-

Module terminal state extern.h

-

/*

*************/

external storage declarations for terminal state
VT420 example
PAS 28-Feb-1989

*/
/*

*

*

This code can also used to allocate storage
by redefining "ext" to be null.

*/
tdefine ext extern
tinclude "terminal_state_types.h"

/*

*

terminal management

*/
ext conformance level t conformance level;
ext boolean t level l-extensions[NoMsER OF EXTENSIONS];
ext boolean-t level-2-extensions[NUMBER-OF-EXTENSIONS];
ext boolean:t level-3-extensions[NUMBER-OF-EXTENSIONS];
ext boolean t level-4-extensions[NUMBER-OF-EXTENSIONS];
/* VT420 has no optIons -ext boolean t product options[NUMBER OF OPTIONS];

--*/

-

-

-

-

long int terminal unit id;
/* Level 4, VT420 example */
device status t deVice-status;
transmIt rate-limit mode t transmit rate limit mode;
boolean_t pow;r_up_detected_flag; - /* Level 4" */
boolean t error detected flag; ,
/* Level 4 */
vt_confIguration_t vt_configuration; /* session mgmt ext */
control representation mode t
control representation mode;
/* Set-Up */
ext boolean_t lIne_local_mode;/* Set-Up */
ext
ext
ext
ext
ext
ext
ext

/*

*

Code Extension Layer

*/
ext
ext
ext
ext
ext
ext
ext
ext
ext

struct parse_stack comm_state;
/* ANSI parser state */
graphic character set t
designated graphic sets[4];
in use table t
in use table;
single-shift-t
Single-shift;
in control string t
in control string;
graphic character-set t
upS's;
/* Level 3 or 8-bit IA */
character set mode t character_set_mode;
character set mode t
environment thost-port_environment,
cl_transmission_mode;

tinclude "char_cell_extern.h"

mlllumr

/* character cell display */

Digital Internal Use Only

9

04·0ct·1990

EL·00070-04

1*
* keyboard processing

*1
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext

ext
ext
ext
ext

keyboard action mode t
keyboard action mode;
auto_repeat_mode_t auto_repeat_mode;
cursor key mode t
cursor_key_mode;
keypad-mode t keypad_mode;
keyboa;d us;ge mode t
keyboard usage mode;
1* Level 3
caps shift lock mode t
caps_shift_lock_mode;
hold-screen mode t hold screen mode;
lock-mode tlock-mode; keyclick ;ode t
keyclick mode;
send receive ;ode t
send receive mode;
send-receive-mode-t
r send recei;e mode;
back;rrow_key_mode_t
b;ckar;ow_key_;ode;
1* Level 3
local key mode t
1* Level 4
c;mpose_key_mode,
alt key mode,
Fl key,F2-key,
F3:key,
F4 key;
F5 key-mode t
F5 key mode;
1* Level 4
keyboa;d en~oding mode t k;ybo~rd encoding mode; 1* Level 4
keyboard-dialect t
- keyboard dialect; 1* NRCS
graphic_~haracte;_set_t nrcs_list[MAX_NUM_DIALECTS];I* NRCS

*1

*1
*1

*1
*1
*1
*1

1*

*

printer port extension

*1
ext
ext
ext
ext
ext
ext
ext
ext

printer_controller_mode_t
auto-print_mode_t
print form feed mode t
print-extent mode t printer to h;st m;de't
printer:assignment_tenvironment t
printer_style_t

printer controller mode;
auto-print_mode; print form feed mode;
print-extent mode;
printer to h;st mode; 1* Level 3
printer-assignment; 1* sessions
printer:port_environment;
printer_style;

*1
*1

1*
* Graphics
*1
ext graphics cursor enable mode t

graphics_cu~sor_en;ble_;ode;

1*
* communications layer
*1
ext int host-port;
ext int printer-port;

1* ReGIS *1

1* logical unit number for comm port *1

1************** module char- cell- extern.h
1*

*************1

* external storage declarations for character cell display state

* PAS 28-Jul-1989
*1

10

mDmDDID~

Digital Internal Use Only

04-0ct-1990

EL-00070-04

#define MAX NUM LINES 73
#define MAX NUM COLUMNS 133
#define EMPTY CHARACTER 0
#define MAX NUM CHAR SETS 8
1* character set table entries *1
#define TABLE ASCII 0
#define TABLE LINE DRAWING 1
#define TABLE DEC SUPP 2
#define TABLE-NRCS 3
#define TABLE LATINi 4
#define TABLE-UPSS 5
tdefine TABLE TCS 6
tdefine TABLE-DRCS 7
1* Note ORCS must be last in search order
to replace others if identical *1
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext

character t
display[MAX NUM LINES] [MAX NUM COLUMNS];
line renditIon[MAx NUM LINES];line rendItion t
acti~e-position; char;cter-position_t
line t
top margin;
line-t
bottom margin;
left m;rgin;
1* Horiz scroll ext *1
column t
column t
right margin;
1* Horiz scroll ext *1
last ;olumn flag;
boolean t
acti~e display; 1* L3 or Status Dsply*1
active display t
status-display; 1* L3 or Status Dsply*1
status:display:t
char s;t table[MAX NUM CHAR SETS];
char set designator t
save-buffer t
cursor s;ve buffer;
char;cter r;ndition t
current rendition;
character-attribute-t current-attribute; 1* Selective Erase*1
- horizontal tab stops [MAX NUM COLUMNS];
boolean t
column mod;; 1* 132-Column Ext *1
column mode t
lines-per-page_t
lines~er-Fage;
1* Windowing *1
columns-per-page_t
columns-Fer-Fage; 1* Windowing *1
number_of-Fages; 1* Windowing *1
number_of-pages_t
scrolling_mode;
scrolling mode t
screen mode t screen_mode;
origin_mode_t
origin_mode;
auto_wrap_mode_t
auto wrap mode;
text cursor enable mode t text ~ursor enable mode;
insert repl;ce mod; t Insert r;placem;nt mod;;
new line mode t
new_line_mode;
cur;or coupling mode t
horizontal ~ursor coupling,
1* Windowing *1
vertical cursor coupling,
1* Windowing *1
page cur;or coupling;
1* Windowing *1
ext left right margIns mode t
left_rIght_margins_mode; 1* Horiz Scroll *1
ext area extent t
;ttribute change extent; 1* L4 or rect editing *1
1********** end of char_~ell_extern.h *************1

-

-

Digital Internal Use Only

11

04-0ct-1990

EL-00070-04

3.3 STATUS AND TEST

Upon request, a conforming device shall provide at the terminal interface a means of
returning device status information. Status information consists of either "Device Ready"
or "Device Malfunction". (See subhead 5, DEVICE STATUS REPORT.) The device status
shall be set upon power-up initialization or receipt of RESET TO INITIAL STATE (RIS).
See Video Systems Reference Manual - Documented Exceptions.
The architecture does not define the nature or duration of specific device test sequences.
The architecture provides a registry of test invocation control functions (Refer to DEC STD
138-0 Registry of Control Functions for Character-Imaging Devices) that may have different
effects on different products. However, failure of any applicable test sequences shall set
the device status to the "Device Malfunction" state.
3.3.1

Virtual Terminal Configuration

If the Multiple Sessions extension is supported, a conforming device shall provide a means
at the terminal interface of returning information on whether the terminal is configured
to support virtual terminals. Status information returned shall be in the form of a Device
Status Report (DSR) (see subhead 5, Device Status Report) and consist of: "Virtual
Terminals Not Enabled", ''Virtual Terminals Enabled Over Physical Lines", "Vll'tual
Terminals Available Through TD/SMP".
This feature is intended for terminal management use. Specific information on the state of
the Terminal Device/Session Management Protocol (TD/SMP) or other session management
protocol should be ascertained through the protocol handler.
3.3.2 Data Integrity

At Conformance Level 4, a conforming device shall provide a means at the terminal
interface of returning the status of a data integrity flag. Status information returned shall
be in the form of a Device Status Report (DSR) (see subhead 5 Device Status Report) and
consist of: "OK, no comm error detected since last report", "Error, a comm error has been
detected since last report", or "Power-up, No request since last power-up or reset".
This is an application feature for defensive programming, and not intended for terminal
management or communications use.

4

DEVICE INITIALIZATION

On power up, all state information (state) in the terminal shall be set to a known value, or
value previously selected by the user and stored through non-volatile means. This state is
referred to as the Power-Up State.
Since the architecture allows the Power-Up State of certain features to be set and stored
under local control (Set-Up and non-volatile memory for example), software cannot rely
on the values of this state after an appropriate initialization sequence is executed or after
the device is powered up. The values given in the algorithm below apply only to those
implementations in which the state cannot be set and stored locally by the terminal user.
The state defined by the architecture to which this indeterminate condition may apply is
limited to the following:

Digital Internal Use Only

EL-00070-04

04-0ct-1990

conformance level
host-port_environment
vt configuration
cl-transmission mode
transmit rate limit mode
character set-mode
upss
columns-per-page
lines-per-page
number_of-pages
status_display
column mode
scrollIng_mode
screen mode
auto_wrap_mode
text cursor enable mode
new line mode
horIzontal_tab_stops
vertical cursor coupling
horizontal curs~r coupling
page_cursor_couplIng
auto_repeat_mode
cursor key mode
caps_shift:lock_mode
keyboard usage mode
backarrow_key_;ode
alt key mode
compose-key mode
Fl key;odeF2:key:mode
F3 key mode
F4:key:mode
auto-print_mode
printer_controller_mode
print_form_feed_mode
print extent mode
printer to h~st mode
printer=:style graphics cursor enable mode
UDK definitions-(see DEC-STD-070-11, UDK Extension)

State Affected:
All terminal state. See subhead 3.2, Terminal State Declarations.
The following code example illustrates terminal management routines.

Algorithm:
/**************
/*

Module terminal_management.c

*************/

* terminal management routines

*

VT420 example

*/
/* get access to global terminal state */
tinclude "terminal state extern.h"

Digital Internal Use Only

13

04-Oct-1990

EL-00070-04

/* function declarations */
void hardware init();
void comm init();
void setup init();
void host state init();
void soft-termi;al reset();
int send char(); int send-string();
int send- int () ;
int send~')ex () ;
void power_up_initialization()
(

hardware init();
comm init () ;
setup init();
host state init();
} 7* end-procedure

/* actual hardware as needed */
/* communications layer */
/* features that are not host setable */
/* all host setable state */
power_up_initialization */

void setup init()
/* initialize local features that are not host setable */
{

host-port_environment = EIGHT_BIT;
vt configuration
SINGLE SESSION;
co;trol_representation_mode =
INTERPRET CONTROLS;
printer-port_environment = EIGHT_BIT;
printer style = NATIONAL ONLY;
}
/* end procedure setup_init */

=

/* NVM */
/* NVM */

/* NVM */

/* NVM */

void host_state_init()
{

line t
x;
column t y;

/* .... :-.............. */
/* do initialization */
/* Terminal Management */
conformance level = LEVEL 4;
/* NVM */
transmit rate limit mode
LIMITED;
/* NVM */
power up-detected flag = TRUE;
error-detected flag = FALSE;
vt co;figuration = SINGLE SESSION;
/* NVM */
/*-VT420 terminal unit ID-example (different for each unit) */
terminal_unit_id = Ox01000001;
/* HKO unit 1, NVM *1

=

/* Code Extension *1
upss
DEC_SUPPLEMENTAL_G;

=

1*

NVM

*1

in_use_table.cO = ASCII_C;
in use table.gl = ASCII G;
in:use:tab1e.invoked_gl-= GO;
in use table.c1 = SUPPLEMENTAL C:
in-use-table.gr = upss;
in:use:table.invoked_gr = G2;
designated_graphic_sets[O]
designated_graphic_sets[l]

14

mBDIO'"

ASCII_G;

= ASCII_G:

Digital Internal Use Only

04-0ct-1990

EL·00070·04

switch (conformance_level)
{

case LEVEL 1:
in use table.gr = ASCII G;
de;ignated graphic sets[2]
ASCII_G;
designated-graphic-sets[3]
ASCII_G;
c1_transmi;sion_mode = SEVEN_BIT;
character set mode
SEVEN_BIT_NATIONAL;
break;
case LEVEL 2:
case LEVEL-3:
case LEVEL 4:
designated graphic sets[2]
upss;
designated-graphic-sets[3]
upss;
c1 transmi;sion mode = EIGHT_BIT;
character set mode = EIGHT_BIT_MULTINATIONAL;

1*
1*

NVM
NVM

*1
*1

};

parse init(comm state); 1* initialize ANSI parser
single shift = NO SINGLE SHIFT;
in_control_string-= NOT_IN_CONTROL_STRING;

*1

1*

NVM

*1

1*
1*
1*

NVM
NVM
NVM

*1
*1
*1

1*
1*
1*
1*

NVM
NVM
NVM
NVM

*1
*1
*1
*1

1*
1*
1*
1*

NVM
NVM
NVM
NVM

*1
*1
*1
*1

1*

NVM

*1

1*

character cell display *1
for (y=l; y
3/14

Fa
Fa

Default Fa: 0

c

6/3

Response Format:
CSI
9/11

>
3/14

Fa
Fa

c

6/3

Description: The DA2 control requests or reports the identification code of the specific
product in which the interface is implemented. The request consists of a DA control
sequence with the private parameter code 3/14 (» and an omitted parameter or a
parameter value of zero (0).
The response to the DA2 request consists of a DA control sequence with the private
parameter code 3/14 (» followed by a variable number of parameters. The first parameter
indicates the product specific identification of the device. This parameter value shall be
registered with the architecture.
The second parameter indicates the revision level of the firmware or software implementing
the terminal management functions. Revision levels are generally noted by a real number
with one significant decimal. This number should be (not mandatory) multiplied by 10 and
used as the value of the second parameter.
Additional parameters may be present to indicate options installed in the device. These
options are implementation defined, and the number and meaning of the additional
parameter values will be product dependent, however, these values shall be registered with
the architecture.
State Affected: None

24

mDmDamO'"

Digital Internal Use Only

EL-00070-04

04-0ct-1990

Algorithm:
void device attributes 2()
{
int n;
send_char (Ox9B, host-port);
/* CSI */
send_int(PRODUCT_ID, host-port);
send_char(';', host-port);
send_int(REVISION_LEVEL, host-port);
/* Device IDs and options must be registered */
/* VT420 has no options -for (n=l; n
 *
*
**

terminal

host system
application
process

I





EXTERNAL INTERFACE

*
*
system

--------------------------*--------------

*
I
* application I
* process I
*
I
--------------------------*-------------

firmware> *
** INTERNAL INTERFACE
I
I
I
I

physical
terminal

virtual
terminal

External and Internal Terminal Interfaces

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.1.4

Page 5-9
29-Jun-1990

Organization

To simplify
class, this
independent
of the ANSI

understanding the Character Cell Display service
section is divided into a number of largely
subsections which describe functionally related parts
host interface. These subsections are:

Display Coordinate System and Addressing
window Management
Visual Attributes and Renditions
Audible Indicator
Graphic Character Sets
Summary of Control Character Processing
Mode States
Editing Functions
OLTP Features
Saving and Restoring Terminal State
Other sections of the VSRM also describe parts of the ANSI host
interface.

5.2

TERMINOLOGY

Active Position - (1) The character position in a visual display
that is to image the graphic symbol representing the next graphic
or control character for which a graphic representation is
required (2) The character position in a logical display which
contains the character code, graphic rendition, and character set
of a graphic or control character for which a graphic
representation is required.
Advance - To move the active position in the direction of
increasing horizontal character position in a visual or logical
display.
Application - A hardware or software implementation of a process
or a device.
Application Program - A program that runs under control of an
operating system.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-10
29-Jun-1990

Audible Indicator - A warning "bell", or similar indicator
suitable to signal the operator's attention, primarily to warn of
certain error conditions. There are four functional categories of
bells in conforming terminals: Right Margin Bell, Warning Bell,
Required Error Bells, and Selectable Error Bells.
Backward - In the direction of decreasing horizontal character
position in a visual or logical display.
Blind Interchange - Information interchange in which no prior
agreements between sender and recipient are necessary in order to
achieve successful interpretation of the information, except
agreed-upon standards.

co

Set - A set of 32 control characters allocated to columns 0 and
1 of a code table.

C1 Set - A set of 32 control characters allocated to columns 8 and
9 of an 8-bit code table, or represented as ESCape Fe sequences in
7-bit environment with identical meaning.
Character Attribute - An attribute value which may be applied to a
character position, which affects its subsequent processing, as in
editing or retransmission.
Character Imaging Device - A device that gives a visual
representation of data in the form of graphic symbols using any
technology, such as a on a cathode ray tube.
In this
specification the term "character imaging device" does not apply
to hard copy devices (printers) which are not capable of dynamic
editing and reformatting of the displayed information.
Character Position - (1) The portion of a visual display that
images or is capable of imaging a graphic symbol.
(2) An
addressable element in a logical display containing sufficient
information to render a graphic symbol, including the character
code, visual attributes, logical attributes, and character set
designation.
Character Rendition - An attribute value which may be applied to a
character position, which affects its visual representation (see
Graphic Rendition) .
Control - A control character, an escape sequence, or a control
sequence that performs a control function.
Control Sequence Introducer (CSI) - The C1 control (represented by
a single character in 8-bits, or a two character ESC Fe sequence
in 7-bits) which initiates a control sequence. CSI is a prefix
affecting the interpretation of a limited number of contiguous bit
combinations.
Cursor, Cursor Symbol - A visual (blinking or non-blinking)

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-11
29-Jun-1990

symbol, usually a rectangle, diamond or underline that indicates
the Active Position on the display.
, Cursor Control - An editing function that moves the active
position.
Default - A function-dependent value that is assumed when no
explicit value, or a value of 0, is specified.
Delete - To remove displayed symbols and close up adjacent graphic
symbols to fill the gap.
Designate - To identify a set of characters that are to be
represented in a prescribed manner, in some cases immediately and
in others on the occurrence of a further control function.
Display - The area for visual presentation of data on cathode ray
tube and similar character imaging devices.
In this specification
the word "display" will always be qualified by the terms
"physical" (or "visual") and "logical", to differentiate between
the actual presentation surface and memory buffers containing
information to be presented.
Editor Function - A control that affects the layout or positioning
of previously entered or received information in a character
imaging device and is intended to be interpreted without remaining
in the data stream.
See Format Effector.
Empty Character - A character position in the logical display in
which no character code appears, and thus no character is rendered
in the visual display for this position.
In an empty character
position the character rendition, character attribute, and
character set values should be ignored.
Enter - To input information manually into a character imaging
device or to read information from an auxiliary device into a
character imaging device.
Erase - To remove displayed graphic symbols without closing up
adjacent symbols to fill the gap.
Fixed Space - A character that normally has no graphic
representation, occupies a character position in a visual display,
and is usually encoded as bit combination 2/0.
Following - Lines or character positions in the visual display
with larger numbered lines or larger numbered character positions
than that of the active position.
Font - A complete assortment of displayable graphic symbols in one
size or style.
Format Effector - A control that effects the layout or positioning

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-12
29-Jun-1990

of information in a character imaging device and may remain in the
data stream subsequent to interpretation and processing.
See
Editor Function.
Forward - In the direction of increasing horizontal character
position in a visual display.
Graphic Character - A character, other than a control character,
that has a visual representation normally handwritten, printed, or
displayed.
Graphic Rendition - A visual style of displaying a set of graphic
symbols.
Graphic Symbol - A visual representation of a graphic character or
a control for which a graphic representation is required.
Invoke - To cause a designated set of characters to be represented
by the prescribed bit combinations whenever those bit combinations
occur until an appropriate code extension function occurs.
Line - A set of adjacent character positions in a visual display
that have the same vertical position.
Logical Display - the lines and columns available for storing and
presenting graphic characters as seen by the application or host
computer. A Logical Display may be organized as a single
rectangular array of lines and columns (one page), or divided into
a number of identically sized pages, each of which is a
rectangular array of lines and columns.
Margin - A line which marks the upper or lower boundary of the
scrolling region (vertical scroll margin). A column which marks
the left or right boundary of the scrolling region (horizontal
scroll margin) .
Mode - A state of a device, or other sender or recipient, that
affects the interpretation of received information, the operation
of the sender or recipient, or the format of the transmitted
information.
Next - See Following.
Operating System - Software that controls the execution of
computer programs and may provide scheduling, debugging,
input/output control, accounting, compilation, storage assignment,
data management, and related services.
Page - An addressable area of a Logical Display organized as a
rectangular array of lines and columns.
The number of lines and
columns defines the Page Size.
Preceding - Lines or character positions in a visual display with

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-13
29-Jun-1990

smaller numbered lines or smaller numbered character positions
than that of the active position.
Private Use - A technique of encoding or representing information
in a prescribed, but nonstandard, way.
Received Data Stream - The stream of bit combinations received by
a character imaging device for purposes of information
interchange.
Represent - (1) To use a prescribed bit combination with the
meaning of a character in a set of characters that has been
designated and invoked.
(2) To use an escape sequence with the
meaning of an additional control character.
Scroll - An action whereby all of the graphic symbols of a visual
display are moved in a specified direction.
String Delimiter - A control that begins or ends a string of
characters in a data stream.
Tabulation - A technique of identifying character positions in a
visual display for the purpose of arranging information
systematically.
Tabulation Stop - An indication that a character position is to be
used for tabulation.
Transmit - To send data as a data stream for purposes of
information interchange.
Transmitted Data Stream - The stream of bit combinations sent by a
character imaging device when it is induced to transmit for
purposes of information interchange.

5.2.1

Code Extension Terms

This chapter also uses the following terms which are defined in
the "Code Extension Layer" section of the VSRM (DEC STD 70-3) :
Bit Combination
Character
Control Character
Control Function
Control Sequence
Control String
Escape Character (ESC)
Escape Sequence
Final Character
Intermediate Character
Numeric Parameter

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Parameter
Parameter String
Selective Parameter

Page 5-14
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.3

Page 5-15
29-Jun-1990

CHARACTER CELL DISPLAY STATE DECLARATIONS

/**************

module char_cell_types.h

*************/

/*

*
*

type declarations for character cell display state
PAS 28-Jul-1989

*/
typedef enum { JUMP, SLOW} scrolling mode t;
typedef enum { NORMAL SCREEN, REVERSE-SCREEN } screen mode t;
typedef enum { WRAP OFF, WRAP ON } auto wrap mode t;
typedef enum { TEXT-CURSOR OFF, TEXT CURSOR ON } text cursor enable mode t;
typedef enum { INSERT,-REPLACE } insert replace mode t;
typedef enum { NEW LINE OFF, NEW LINE ON } new line mode_t;
typedef short int Tine t;
typedef short int column t;
typedef short int page t ;
typedef struct
{
/* character position t */
line t line;
column t column;
page t-page;
} character position t;
typedef enum { TRUE, FALSE } boolean_t;
typedef struct
{
/* character rendition t */
boolean t bold;
boolean-t blink;
boolean-t underscore;
boolean-t reverse;
} character rendition t;
typedef struct {
/* character attribute t */
boolean t selective erase;
} character attribute t;
typedef enum
{
/* line rendition t */
DOUBLE HEIGHT TOP,
DOUBLE-HEIGHT-BOTTOM,
SINGLE-WIDTH,DOUBLE-WIDTH
} line-rendition t;
typedef struct
{
/* character t */
short int code;
character rendition t rendition;
character-attribute-t attribute;
graphic character set t character set;
} character t;
typedef struct {
/* char set designator t */
graphic_character_set_t name; -

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-16
29-Jun-1990

/* 0-47, O=no intermediate */
short int first intermediate;
short int second intermediate;
/* 0-47 */
short int final;/* 0 indicates null entry */
} char set designator t;
typedef enum {-ABSOLUTE, DISPLACED } origin_mode_t;
typedef struct
{
/* save buffer t */
character-position_t position;
character rendition t rendition;
origin mode t origin mode;
graphic character set t left;
graphic-character-set-t right;
graphic-character-set-t gO;
graphic-character-set-t gl;
graphic-character-set-t g2;
graphic-character-set-t g3;
character attribute t-attribute;
} save buffer t;
typedef enum { EIGHTY, ONE THIRTY TWO } column mode t;
typedef enum { UNCOUPLED, COUPLED-} cursor coupling-mode t;
typedef enum { FIXED, SETABLE } left right-margins mode t;
typedef enum { STREAM, RECTANGULAR }-area extent t ;
typedef short int lines-per-page_t;
/*-24, 25; 36, 72, 144 */
typedef short int columns-per-page_t;
/* 80, 132 */
typedef short int number_of-pages_t;
/* 1, 2, 3, 4, 5, 6 */
/************ end of char_cell_types.h ****************/

/************** module char cell extern.h *************/
/*
* external storage declarations for character cell display state
* PAS 28-Jul-1989
*/
tdefine MAX NOM LINES 73
tdefine MAX-NOM-COLUMNS 133
tdefine EMPTY CHARACTER 0
tdefine MAX NUM CHAR SETS 8
/* character set table entries */
tdefine TABLE ASCII 0
tdefine TABLE-LINE DRAWING 1
tdefine TABLE-DECSUPP 2
tdefine TABLE-NRCS 3
tdefine TABLE-LATINI 4
tdefine TABLE-UPSS 5
tdefine TABLE-TCS 6
tdefine TABLE-DRCS 7
/* Note DRCS must be last in search order
to replace others if identical */
ext character t

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-17
29-Jun-1990

display[MAX NUM LINES] [MAX NUM COLUMNS];
ext line rendition t
-line rendition[MAX NUM LINES];
ext character-position_t
active-position; ext line t
top margin;
ext line-t
bottom margin;
ext column t
left margin;
/* Horiz scroll ext */
ext column-t
right margin;
/* Horiz scroll ext */
ext boolean t
last column flag;
ext active display t
active display; /* L3 or Status Dsply*/
ext status-display-t
status-display; /* L3 or Status Dsply*/
ext char set designator t
char set table [MAX NUM CHAR SETS];
ext save-buffer t
cursor save buffer;
ext character rendition t
current rendition;
ext character-attribute-t current-attribute; /* Selective Erase*/
ext boolean thorizontal tab stops [MAX NUM COLUMNS];
ext column mode t
column mode; /* 132-Column Ext */
ext lines-per-page_t
lines-per-page;
/* Windowing */
ext columns-per-page_t
columns-per-page; /* Windowing */
ext number_of_pages_t
number_of-pages; /* Windowing */
ext scrolling mode t
scrolling mode;
ext screen mode t screen mode;
ext origin-mode-t
origin-mode;
ext auto wrap mode t
auto wrap mode;
ext text-cursor enable mode t
text cursor enable mode;
ext insert replace mode t
insert replacement mode;
ext new line mode t
new line mode;
ext cursor coupling mode t
horizontal cursor coupling,
/* Windowing */
vertical cursor coupling,
/* windowing */
page cursor coupling;
/* Windowing */
ext left right margins mode t
left rTght margins mode; /* Horiz Scroll */
ext area extent t attribute change extent; /* L4 or rect editing */
/********** end of char cell extern.h *************/
/* function declarations */ short int end of line(); void
scroll up(); void scroll down(); void scroll-left(); void
scroll-right(); void insert or replace character(); void
selectTve_erase_in_line(); void selective_erase_in_display();

5.3.1

Notes On Character Cell Display State
a.

An empty character is a character position in the Logical
Display in which no character code appears, and thus no
character is rendered in the visual display for this
position. In this implementation this is handled by a
null entry in the logical display structure, which should
be rendered as a space with normal rendition in the
visual display.
In other implementations this may be

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-18
29-Jun-1990

handled in a manner appropriate to the display list
structure, but the affect on the visual display should be
the same.
In an empty character position the character rendition,
character attribute, and character set values should be
ignored.
b.

The number of character sets available depends on the
conformance level and architecture extensions present.
See "Character Set Repertoire" in this chapter (DEC STD
70-5) .

See the "Terminal Management" Section (DEC STD 70-4) for a listing
of all terminal state, and initialization procedures.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4
5.4.1

Page 5-19
29-Jun-1990

DISPLAY COORDINATE SYSTEM AND ADDRESSING
Logical Display

A conforming device shall provide the capability of storing and
presenting single-width graphic characters in a rectangular array
of lines and columns called a Logical Display Page.
The number of
lines and columns shall define the size of the Logical Display
Page, or Page Size. The entire Logical Display may consist of a
single page, or a number of pages of identical size.
All conforming devices shall support a single Logical Display Page
of 24 lines by 80 columns, extendable to 24 lines by 132 columns
when the "132 Column Mode" extension is present (DECCOLM, see
"Page Size and Arrangement") .
Level 4 devices, and Level 3 devices with the "Windowing
Extension" shall support commands to change the Logical Display
Page Size (DECSLPP and DECSCPP, see "Page Size and Arrangement") .
The actual Page Sizes supported shall be clearly specified in the
product documentation, and means shall be provided for software to
interrogate the size of the Logical Display Page. The Page Size
and number of pages in the Logical Display may also be
configurable by the user under local control.
Each character position in the Logical Display will consist of the
following information: a character code, a character rendition,
character attributes, and a character set.
The first position in a logical display page shall be at line 1,
column 1. Frequently this will correspond to the upper left
corner of the physical display with line numbers increasing
downward, and column numbers increasing to the right, but this
need not be true.
The graphic representation of
display surface will occupy a
hand corner is at the logical
the position of the character

each character on the physical
rectangular cell whose lower left
screen coordinate corresponding to
in the the array.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
1

1

n
e
s

24

80

132

80

132

+----------------------------------------+---------------------+
I
1

1
i

columns

Page 5-20
29-Jun-1990

single-width line

1
double-width line
40
66
-------------------------------------------------------------1

1

double-height line 7 top
double-height line / bottom

40
40

66
66

+----------------------------------------+---------------------+
Display Structure and Addressing

5.4.2

Active Position And Cursor

A conforming device shall maintain the line and column coordinates
of a single character position, known as the "Active Position",
which serves as a reference point for character insertion and
replacement as well as various control functions.
The Active
Position indicates the character position at which the next
operation is to begin.
The Active position does not necessarily correspond to the visual
indicator in the physical display known as the "Cursor Symbol".
However, in this specification the terms "Active Position" and
"Cursor" are used interchangeably in order not to conflict with
previous usage.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET TEXT CURSOR ENABLE MODE
Levels:

Page 5-21
29-Jun-1990
DECTCEM

2-4

Purpose: Select whether the text cursor symbol in the display has
a visual representation.
Set Format:
Reset Format:

CSI ? 25 h
CSI ? 25 1

Description: A conforming device shall provide a means of
enabling or disabling the visible cursor symbol. This mode shall
apply only to the text cursor symbol implemented by the Character
Cell Display service class.
In the set state (Text Cursor On),
which is the default, the text cursor symbol will be displayed.
In the reset state (Text Cursor Off), the text cursor symbol will
not be displayed.
When a request is received to turn off the cursor, it will be done
immediately (if not already off).
If a request is received to
enable the cursor, and the cursor is not already on, the cursor
will remain off for a small "initial" cycle, after which it will
become visible and begin its normal blinking cycle. This makes
the cursor blink with a steady duty cycle regardless of how fast
it is turned on and off.
Notes:
1.

There is some concern that a program might inadvertently
leave the text cursor turned off. It is suggested that
entering SETUP mode will always turn on the text cursor
while in SETUP mode, but that normally it be restored to
its previous state upon exiting SETUP mode. Also, a
means should be provided in SETUP mode to force the text
cursor to be re-enabled.

State Affected:
text cursor enable mode

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void set text_cursor_enable_mode()
{

if (conformance level >= LEVEL 2)
text cursor-enable mode = TEXT_CURSOR_ON;
}

void reset_text_cursor_enable_mode()
{

if (conformance level >= LEVEL 2)
text cursor-enable mode = TEXT CURSOR_OFF;
}

Known Deviations:

None

Page 5-22
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4.3

Page 5-23
29-Jun-1990

Margins And Scrolling

A conforming device shall provide the capability of defining top
and bottom margins of a scrolling region. The top and bottom
marg~ns are two line numbers in a logical display page.
The top
margin must always have a lower line number than the bottom
margin.
Devices with the Horizontal Scrolling Extension shall provide the
ability to define left and right margins of a scrolling region.
The left and right margins are two column numbers in a logical
display page. The left margin must always have a lower column
number than the right margin.
Numerous editing and cursor control functions are defined relative
to the scrolling margins.
The default scrolling region at power-up or after reset is equal
to the size of the logical display page.
1
columns
80
132
+----------------------------------------+---------------------+
1
+
+
I
I
+left
+right
I
I
+margin
+margin I
I
+
+
I
I
+
top margin
+
I
I
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
+
/\
+
I
I
+
II
+
I
I
I
+
II
+
I
I
~
+
+
I
I
n
+/------ scrolling -------\+
I
I
e
+\------ region
-------/+
I
I
s
+
+
I
I
+
II
+
I
I
+
II
+
I
I
+
\/
+
I
I
1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
I
+
bottom margin
+
I
I
241
+
+
I
I
+----------------------------------------+---------------------+
Margins and Scrolling Region
A scrolling region is defined as the area bounded by the top,
bottom, left, and right margins, which are set by DECSTBM and
DECSLRM. All scrolling, both vertical and horizontal, is limited
to this area.
Several controls are ignored or behave differently if the active

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-24
29-Jun-1990

position is outside certain boundaries of the scrolling region.
The following table lists these controls:
margins
T/B
L/R

+------+------+
DCH
ICH

0
0

X
X

DL
IL

X
X

X
X

X
X

X
X

*
*
0

0
0

DECDC
DECIC
IND
RI
DECBI
DECFI

I
I
I
I
I
I
I
I
I
I
I
I
I

*
*
+------+------+
0

X

=

Is affected.
Does not work outside
these margins.

0

=

Not affected.
Continues to work outside
these margins.

* =

If active position is inside margins,
affect is limited by margins.
If active position is outside margins,
control still has an affect,
but no scrolling can occur.

The following functions described in this sUbsection are used to
control scrolling:
DECSTBM
DECSLRM
DECLRMM
DECOM
DECSCLM
IND
RI
DECFI
DECBI

Set Top and Bottom Margins
Set Left and Right Margins
Left Right Margin Mode
Origin Mode
Scrolling Mode
Index
Reverse Index
Forward Index
Back Index

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

DECSTBM

SET TOP AND BOTTOM MARGINS
Levels:

Page 5-25
29-Jun-1990

1-4

Purpose: Change the top and bottom margin settings for the
scrolling region.
Format:

CSI
9/11

Pt
Pt

;
;

Pb
Pb

r
7/2

default Pt: 1
default Pb: last line

Description:
The DECSTBM control sets the values of the Top and
Bottom Margins of the scrolling region.
The new settings are
determined by the parameter values. The first parameter sets the
value of the Top Margin, and the second parameter sets the value
of the Bottom Margin. The default settings if either or both
parameters are omitted are the boundaries of the Logical Display
Page: one (1) for the Top Margin and twenty-four (24) for the
Bottom Margin when the Page Size is 24 lines.
Notes:
1.

Execution of this control causes the Active position to
be set to the page origin obeying Origin Mode (DECOM):
First column of first line if Origin Mode is in the reset
(Absolute) state; Top and Left Margins if Origin Mode is
in the set (Displaced) state.

2.

If the value specified for the Top Margin is equal to or
greater than the value specified for the Bottom Margin,
this control will be ignored (not executed) .

3.

If the value specified for the Bottom Margin is greater
than the number of lines in the Logical Display Page,
this control will be ignored (not executed) .

State Affected:
active position
top margin
bottom~argin

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-26
29-Jun-1990

Algorithm:
void set top and bottom margins (parv)
short int parv[MAX_NUM_PARAMETERS];
{

/* use defaults for omitted parameters */
if (parv[O] == 0) parv[O] = 1;
if (parv[l] == 0) parv[l] = lines_per_page;

if «parv[O] < parv[l]) && (parv[l] <= lines_per_page»
{

top margin = parv[O];
bottom margin = parv[l];
if (origin mode == ABSOLUTE)
{
active-position.line = 1;
active position. column = 1;
}
else
{

active-position.line = top margin;
active position. column = left_margin;
}
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET LEFT AND RIGHT MARGINS
Levels:

Page 5-27
29-Jun-1990
DECSLRM

4x (Horizontal Scrolling)

Purpose: Change the left and right margin settings for the
scrolling region.
Format:

CSI
9/11

PI
PI

;
;

Pr s
Pr 7/3

default PI: 1
default Pr: Last Column

Description:
The DECSLRM control sets the values of the Left
and Right Margins of the scrolling region. The new settings are
determined by the parameter values.
The first parameter sets the
value of the Left Margin, -and the second parameter sets the value
of the Right Margin.
The default settings if either or both
parameters are omitted are the boundaries of the Logical Display
Page:
one (1) for the Left Margin and eighty (80) for the Right
Margin when the Page Size is 80 columns wide.
Notes:
1.

Execution of this control causes the Active position to
be set to the page origin obeying Origin Mode (DECOM):
First column of first line if Origin Mode is in the reset
(Absolute) state; Top and Left Margins if Origin Mode is
in the set (Displaced) state.

2.

If the value specified for the Left Margin is equal to or
greater than the value specified for the Right Margin,
this control will be ignored (not executed) .

3.

If the value specified for the Right Margin is greater
than the number of columns in the Logical Display Page,
this control will be ignored (not executed) .

4.

This control function is only recognized when DECLRMM
(Left Right Margin Mode) is set.

5.

Setting the margins to other than their default values
(the boundaries of the Logical Display Page) may disable
smooth scrolling (DECSCLM).

State Affected:
active-position
left margin
right_margin

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-28
29-Jun-1990

Algorithm:
void set left and right margins(parv)
short int parv[MAX_NUM_PARAMETERS];
{
if ( (conformance level == LEVEL 4) &&
(level 4 extensions[HORIZONTAL SCROLL] -- TRUE) &&
(left_right_margins_mode == SETABLE) )
{
1* use defaults for omitted parameters *1
if (parv[O] == 0) parv[O] = 1;
if (parv[l] == 0) parv[l] = columns_per-page;
if «parv[O] < parv[l]) && (parv[l] <= columns_per_page))
{
left margin = parv[O];
right margin = parv[l];
if (origin mode == ABSOLUTE)
{
active-position.line = 1;
active position. column = 1;
}
else
{
active position. line = top margin;
active-position. column = left_margin;
}
}
}

}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-29
29-Jun-1990

SET/RESET LEFT RIGHT MARGIN MODE
Levels:

DECLRMM

4x (Horizontal Scrolling)

Purpose: Change the state of Left Right Margin Mode between Not
Available (reset) and Available (set).
To set:
To reset:

CSI ? 69 h
CSI ? 69 1

(Available)
(Not Available - default)

Description: DECLRMM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, the left and right scrolling
margins in every page may not be moved through the DECSLRM
command, they are set to be at the extremes of the page.
In the
set state, DECSLRM commands are recognized, however, no line
attributes other than Single Wide may be used.
When DECLRMM is set, all line attributes currently in Page Memory
for the Session will be reset to Single Wide, Single High, and
DECDWL and DECDHL escape sequences, to change the line attribute
to Double Wide or Double Wide and High, will be ignored.
State Affected:
left right margins mode
line-rendition[MAX-NUM LINES]
left-margin
-right_margin

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-30
29-Jun-1990

Algorithm:
void set left right margins mode()

-

-

{

-

-

int i;
if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE) )
{

for (i=O; i end_of_line(active_position.line»
active-position.column = end_of_line(active_position.line);
}

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-35
29-Jun-1990

Known Deviations:
On the VT100 and VT125, Index is affected by the setting of New
Line Mode, in the same manner as Line Feed.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

RI

REVERSE INDEX
Levels:

Page 5-36
29-Jun-1990

1-4

Purpose:
Move the Active Position upward one line, scrolling if
necessary.
Format:

RI
8/13

(ESC M)

Description:
The RI control moves the Active position upward in
the display by one line.
If the Active Position is already at the
Top Margin the display will scroll downward by one line.
If the
display scrolls, a blank line with all attributes off will appear
at the top margin.
Notes:
1.

If the Active Position is below the Top Margin when this
control is executed, the Active Position will not move
beyond the Top Margin.
If the Active position is above
the Top Margin (as the result of absolute cursor
positioning) it will still move upward by one line and no
scrolling will occur.
In this case, the Active Position
will not move beyond the first line of the display.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-FositionAlgorithm:
void reverse_index()
{
if (active-Fosition.line == top margin)
scroll down(top margin, 1); else
if (active-F0sition.line > 1)
active-Fosition.line -= 1;
/* new line may have a different length - adjust column */
if (active-Fosition.column > end of line(active-Fosition.line»
active_position.column = end_of_line(active-F0sition.line);

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
FORWARD INDEX
Levels:

Page 5-37
29-Jun-1990
DECFI

4x (Horizontal Scrolling)

Purpose: Move the Active Position forward one column, scrolling
if necessary.
Format:

ESC
1/11

9
3/9

Description: The DECFI control causes the active position to move
forward one column.
If the active position was already at the
right margin, the contents of the Logical Display Page within the
right, left, top and bottom margins shifts left one column. The
column shifting beyond the left margin is deleted. A new column
is inserted at the right margin with all attributes turned off and
the cursor appears in this column.
If the active position is outside the left or right margin when
the command is received the active position moves forward one
column.
If the active position was at the right edge of the page,
the command is ignored.
Notes on DECFI:
1.

Lines of text are shifted one column regardless of their
line attributes. This means double-wide and double-size
lines will appear to shift twice as fast as single-width
lines.

State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
active-position--

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-38
29-Jun-l990

Algorithm:
void decfi()
{
if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE)
{
if (active position. column == right margin)
scroll left (left margin, 1);
else
if (active_position. column < columns-per-page)
active_position. column += 1;

)

/* active line may not be columns_per-page long */
if (active_position.column > end_of_line(active-position.line))
active_position.column = end_of_line(active_position.line);
}

}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-39
29-Jun-1990

BACK INDEX

DECBI

------------------------------------------------------------------

Levels:

4x (Horizontal Scrolling)

Purpose: Move the Active Position backward one column, scrolling
if necessary.
Format:

ESC
1/11

6

3/6

Description:
The DECBI control causes the active position to move
backward one column.
If the active position was already at the
left margin, the contents of the Logical Display within the left,
right, top and bottom margin shifts right one column.
The column
shifted beyond the right margin is deleted. A new column is
inserted at the left margin with all attributes turned off and the
cursor appears in this column.
If the active position is outside the left or right margin when
the command is received the active position moves backwards one
column.
If the active position was at the left edge of the page,
the command is ignored.
Notes on DECBI:
1.

Lines of text are shifted one column regardless of their
line attributes. This means double-wide and double-size
lines will appear to shift twice as fast as single-width
lines.

State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
activeyositionAlgorithm:
void decbi ()
{

if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE)
{

if (activeyosition.column == left_margin)
scroll right (left margin, 1);
else
if (activeyosition.column > 1)
activeyosition.column -= 1;
}
}

Known Deviations:

None

)

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.4

Page 5-40
29-Jun-1990

Cursor Movement

This section describes the following functions used to control the
cursor position within the Logical Display Page:
CUU
CUD
CUF
CUB
CUP
HVP
CPR
DECXCPR
LNM
CR
LF
VT
FF
BS
NEL

Cursor Up
Cursor Down
Cursor Forward
Cursor Backward
Cursor Position
Horizontal/Vertical position
Cursor Position Report
Extended Cursor Report
Line Feed/New Line Mode
Carriage Return
Line Feed
vertical Tab
Form Feed
Backspace
Next Line

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-41
29-Jun-1990

CURSOR UP

CUU

Levels:

1-4

Purpose:

Move the Active Position upward by n lines.

Format:

CSI
9/11

Pn
3/?

A
4/1

default Pn: 1

Description:
The CUU control moves the Active Position upward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
upward by one line. A parameter value of n moves the Active
Position upward by n lines.
Notes:
1.

If the Active Position is at or below the Top Margin when
the CUU control is executed, and an attempt is made to
move the Active Position above the Top Margin, the
control will be executed until the Active Position
reaches the Top Margin. The Active Position will not
move beyond the Top Margin.

2.

If the Active Line is above the Top Margin when the CUU
control is executed (due to absolute cursor positioning)
and an attempt is made to move the Active Position
outside of the addressable display, the control will be
executed until the Active Position reaches the first line
of the Page. The Active Position will not move beyond
the first line of the Page.

3.

No scrolling will occur as a result of this control.

4.

If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.
(This condition
will only occur if the Active Line is a single-width
line, and the line to which the Active Position is moved
is a double-width or double-height line. The Active
Column is not affected by the length of lines it moves
over by a repeat move caused by a parameter value greater
than one.)

State Affected:
active-position

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-42
29-Jun-1990

Algorithm:
void cursor up(parv)
short int-parv[MAX_NUM PARAMETERS];

{
short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active-position.line >= top_margin)

{

if «active-position.line - n) >= top_margin)
active-position.line -= n;
else
active-position.line = top_margin;

}
else

{

if «active-position.line - n) >= 1)
active-position.line -= n;
else
active-position.line = 1;

}

/* new line may have a different length - adjust column */
if (active-position.column > end_of_line(active-position.line))
active-position.column = end_of_line(active-position.line);

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-43
29-Jun-1990
CUD

CURSOR DOWN
Levels:

1-4

Purpose:

Move the Active Position downward by n lines.

Format:

CSI
9/11

Pn
3/?

B

default Pn: 1

4/2

Description:
The CUD control moves the Active Position downward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
downward by one line. A parameter value of n moves the Active
Position downward by n lines.
Notes:
1.

If the Active Position is at or above the Bottom Margin
when the CUD control is executed, and an attempt is made
to move the Active Position below the Bottom Margin, the
control will be executed until the Active Position
reaches the Bottom Margin.
The Active position will not
move beyond the Bottom Margin.

2.

If the Active Position is below the Bottom Margin when
the CUD control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
bottom line of the Page.
The Active Position will not
move beyond the bottom line of the Page.

3.

No scrolling will occur as a result of this control.

4.

If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.
(This condition
will only occur if the Active Line is a single-width
line, and the line to which the Active Position is moved
is a double-width or double-height line.
The Active
Column is not affected by the length of lines it moves
over by a repeat move caused by a parameter value greater
than one.)

State Affected:
activeyosition

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-44
29-Jun-1990

Algorithm:
void cursor down(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
if (parv[O) == 0) n = 1;
else n = parv[O);
if (active-position.line <= bottom~argin)
{
if «active-position.line + n) <= bottom_margin)
active-position.line += n;
else
active-position.line = bottom_margin;
}
else
{
if «active-position.line + n) <= lines-per-page)
active position. line += n;
else
active_position. line = lines-per-page;
}

/* new line may have a different length - adjust column */
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-45
29-Jun-1990

CURSOR FORWARD

CUF

Levels:

1-4

Purpose:

Move the Active Position forward by n columns.

Format:

CSI
9/11

Pn
3/?

C
4/3

default Pn: 1

Description:
The CUF control moves the Active Position forward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
forward by one column. A parameter value of n moves the Active
Position forward by n columns.
Notes:
1.

If the Active Position is at or inside the Right Margin
when the CUF control is executed, and an attempt is made
to move the Active Position beyond the Right Margin, the
control will be executed until the Active Position
reaches the Right Margin. The Active Position will not
move beyond the Right Margin.

2.

If the Active Position is beyond the Right Margin when
the CUF control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
last column of the Active Line. The Active Position will
not move beyond the last column of the Active Line.

3.

No scrolling will occur as a result of this control.

State Affected:
active_position

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-46
29-Jun-1990

Algorithm:
void cursor forward (parv)
short int-parv[MAX_NUM_PARAMETERS];
{

short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active position. column <= right_margin)
{
if «active position.column + n) <= right_margin)
active position. column += n;
else
active_position. column = right_margin;
}

else
{

if ( (active position. column + n) <=
end of Tine (active position.line)
active-position. column += n;
else
active_position.column = end of line(active_position.line);
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
CURSOR BACKWARD

Page 5-47
29-Jun-1990
CUB

Levels:

1-4

Purpose:

Move the Active Position backward by n columns.
CSI
9/11

Format:

Pn
3/?

D
4/4

default Pn: 1

Description:
The CUB control moves the Active Position backward
in the display. The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
backward by one one column. A parameter value of n moves the
Active Position backward by n columns.
Notes:
1.

If the Active Position is at or inside the Left Margin
when the CUB control is executed, and an attempt is made
to move the Active Position beyond the Left Margin, the
control will be executed until the Active Position
reaches the Left Margin. The Active position will not
move beyond the Left Margin.

2.

If the Active position is beyond the Left Margin when the
CUB control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
first column of the Active Line. The Active Position
will not move beyond the first column of the Active Line.

3.

No scrolling will occur as a result of this control.

State Affected:
active-position

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-48
29-Jun-1990

Algorithm:
void cursor backward(parv)
short int-parv[MAX_NUM_PARAMETERS];
{

short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active position. column >= left_margin)
{
if «active position.column - n) >= left_margin)
active position. column -= n;
else
active_position. column = left_margin;
}

else
{

if «active position.column - n) >= 1)
active-position.column -= n;
else
active-position.column = 1;
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-49
29-Jun-1990

CURSOR POSITION
Levels:

CUP

1-4

Purpose: To position the Active Position at an absolute line and
column address.
Format:

CSI
9/11

Pl ;
3/? ;

Pc
3/?

H

4/8

default Pl: 1
default Pc: 1

Description:
The CUP control moves the Active Position to an
absolute line and column address as specified by the parameter
values. The first parameter specifies the new line address, and
the second parameter specifies the new column address.
If either
parameter is omitted, or is explicitly set to zero (0), that
parameter value will default to one (1).
Notes:
1.

This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the top and
left margin) .

2.

If an attempt is made to move the Active Position outside
of the addressable display area (the entire screen if
Origin Mode is reset, or the scrolling region if Origin
Mode is set), the Active Position will be moved in the
direction indicated to the boundary of the addressable
area, but will not be moved beyond the boundary of the
addressable area.

State Affected:
activeyosition

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-50
29-Jun-1990

Algorithm:
void cursor-position(parv)
short int parv[MAX_NUM_PARAMETERS];
{

line t y;
column t X;
Y = parv[O];
X = parv[l];
if (y == 0) y = 1;
if (x == 0) x = 1;
if (origin mode -- DISPLACED)
{
if ( «top margin-1) + y) <= bottom margin
active-position.line = (top_margin-1) + y;
else
active-position.line = bottom_margin;
if ( «left margin-1) + x) <= right margin
active-position.column = (left_margin-1) + x;
else
active-position.column = right_margin;
}

else
{

if (y <= lines-per-page)
active-position.line = y;
else
active-position.line = lines_per-page ;
if (x <= end_of_line(active-position.line))
active-position.column = x;
else
active-position.column = end_of_line(active-position.line);
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-51
29-Jun-1990

HORIZONTAL/VERTICAL POSITION

HW

Levels:

1-4

Purpose:
address.

Move the Active Position to an absolute line and column
(fallback implementation)

Format:

CSI
9/11

PI
PI

;
;

Pc
Pc

f

6/6

default PI: 1
default Pc: 1

Description:
The HW control moves the Active Position to an
absolute line and column address as specified by the parameter
values.
The first parameter specifies the new line address, and
the second parameter specifies the new column address.
If either
parameter is omitted, or is explicitly set to zero (0), that
parameter value will default to one (1).
Notes:
1.

The HW control is provided for interface compatibility
with printing terminals.
This implementation is not in
conformance with existing standards.
Conforming software
will use the Cursor Position control to affect movement
of the cursor, since the operation of Horizontal/Vertical
Position may be redefined in future levels of the
architecture.

2.

This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the top and
left margin) .

3.

If an attempt is made to move the Active Position outside
of the addressable display area (the entire screen if
Origin Mode is reset, or the scrolling region if Origin
Mode is set), the Active Position will be moved in the
direction indicated to the boundary of the addressable
area, but will not be moved beyond the boundary of the
addressable area.

State Affected:
active-position

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void horizontal_vertical-position(parv)
short int parv[MAX_NUM_PARAMETERS];
{

/* steal code from CUP */
cursor-position(parv);
}

Known Deviations:

None

Page 5-52
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

CPR

CURSOR POSITION REPORT
Levels:

Page 5-53
29-Jun-1990

1-4

Purpose: Report the line and column address of the Active
Position.
Request Format: CSI
9/11
Report Format:

CSI
9/11

3/6

n
6/14

PI
3/?

;
;

6

Pc
3/?

R

5/2

default PI: 1
default Pc: 1

Description:
The CPR control is transmitted by the terminal in
response to a specific Device Status Report (DSR) control. The
parameter values indicate the Active Line and Active Column values
at the time the DSR control is received by the terminal.
Notes:
1.

This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the Top and
Left Margin) .

State Affected:
none

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void cursor_position_report()
{

line t y;
column t X;
if (origin mode == DISPLACED)
{
y = active position. line - top margin + 1;
X = active-position.column - left_margin + 1;
}

else
{

y
x

=
=

active position. line;
active-position.column;

}

send_char (Ox9B, host-port);
send_int(y, host-port);
send_char(';', host-port);
send_int(x, host-port);
send char('R', host port);
}
Known Deviations:

None

/* CSI */

Page 5-54
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-55
29-Jun-1990

EXTENDED CURSOR POSITION REPORT
Levels:

DECXCPR

3x (Windowing), 4

Purpose: Report the line, column, and page address of the Active
Position.
Request Format: CSI
9/11

?
3/15

6
3/6

n
6/14

Report Format:

?
3/15

PI
3/?

3/11

CSI
9/11

;

Pc
3/?

;

3/11

Pp
3/?

R
5/2

default PI, Pc, Pp: 1
Description:
The DECXCPR control is transmitted by the terminal
in response to a specific Device Status Report (DSR) control. The
parameter values indicate the Active Line, Column, and Page values
at the time the DSR control is received by the terminal.
The
default condition with no parameters present, or parameters of 0,
is equivalent to a cursor at the home position on the first Page.
Notes:
1.

This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the Top and
Left Margin) .

State Affected: None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:

void x cursor_position_report()
{

line t y;
column t x;
if (origin mode == DISPLACED)
{
y = active position. line - top margin + 1;
x = active position. column - left_margin + 1;
}

else
{

y = active position. line;
x = active position. column;
}

send_char (Ox9B, host-port);
/* CSI */
send char('?', host port);
send-int ( y , host-port);
send-char (' ; , , host-port);
send-int (x,
host-port);
send-char(';', host-port);
send-char(active position.page, host-port);
send-char('R', host port);
}
Known Deviations:

None

Page 5-56
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-57
29-Jun-1990

SET/RESET NEW LINE MODE
Levels:

LNM

1-4

Purpose: Change the state of New Line Mode between New Line Off
(reset) and New Line On (set).
CSI 20 h
CSI 20 I

Set Format:
Reset Format:

Description: A conforming device shall provide a means of
selecting whether a received Line Feed (LF), vertical Tab (VT), or
Form Feed (FF) character shall be treated as a single instance of
that character [reset state = no new line], or that each of these
characters is handled on receipt-by additionally returning the
Active Position to the first column of the display [set state =
new line].
It should be noted that setting of this mode also
affects the processing of the Carriage Return (CR) key, which
transmits a two-code sequence (CR LF) when New Line Mode is in the
set state.
(Note:
This mode should not be used in the set state by
conforming software.)
State Affected:
new line mode
Algorithm:
void set new_Iine_mode()
{

new line mode

=

NEW LINE_ON;

}

void reset_new_Iine_mode()
{

new line mode

= NEW_LINE_OFF}

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-58
29-Jun-1990

CARRIAGE RETURN

CR

Levels:

1-4

Purpose:

Move the Active Position to the Left Margin.

Format:

CR
0/13

Description: The CR control moves the Active Position to the Left
Margin.
If the Active Position is before the left margin, or
outside the top and bottom margins, the cursor moves to the first
column of the Active Line.
State Affected:
activeyosition
Algorithm:
void carriage return()
{-

-

if «activeyosition.column >= left_margin) &&
(active position. line >= top margin) &&
(activeyosition.line <= bottom_margin))
activeyosition.column = left_margin;
else
activeyosition.column = 1;
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
LINE FEED
Levels:

Page 5-59
29-Jun-1990
LF

1-4

Purpose: Move the Active Position downward one line, scrolling if
necessary.
Format:

LF
0/10

Description:
The LF control moves the Active Position downward
in the display by one line.
If the Active Position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.

If the Active position is above the Bottom Margin when
this control is executed, the Active Position will not
move beyond the Bottom Margin.

2.

If the Active Position is below the Bottom Margin when
this control is executed (as the result of absolute
cursor positioning) it will still move downward by one
line and no scrolling will occur. In this case, the
Active Position will not move beyond the bottom line of
the display.

3.

If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.

4.

This control is affected by the setting of New Line Mode.
If this mode is reset, no change will occur in the Active
Column unless the line below the Active Line is shorter
than the Active Line (see note 2). If the mode is set,
the control causes the Active Column to be set to the
first column of the line into which the Active Position
is moved.
Conforming software is recommended to use the
two character sequence (CR LF) rather than New Line mode
for widest compatibility.

5.

Note that the fundamental differences between this
control and the CUD control are the effect of New Line
Mode and the occurrence of scrolling on reaching the
Bottom Margin.

6.

The LF control is identical in function to the IND
(Index) control when New Line Mode is in the reset (No
New Line) state.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-60
29-Jun-1990

state Affected:
display[MAX NUM LINES] [MAX NOM COLUMNS]
active-position-Algorithm:
void line feed()
{
if (new line mode == NEW LINE ON) carriage_return();
if (active-position.line-== bottom~argin)
scroll up (top margin, 1);
else
if (active-position.line -< lines-per-page)
active-position.line += 1;
/* new line may have different length - adjust column */
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
VERTICAL TAB
Levels:

Page 5-61
29-Jun-1990
VT

1-4

Purpose: Move the Active Position downward one line, scrolling if
necessary.
(fallback implementation)
Format:

VT
0/11

Description:
The VT control moves the Active position downward
in the display by one line.
If the Active position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.

The implementation of the VT control is a fallback
mechanism for display terminals which is intended to
provide compatibility with printers which correctly
implement this function.

2.

This control is identical in function to the Line Feed
(LF) control.
It is provided for software compatibility
with printer output.
It should be noted, however, that
printers will implement this function differently.
It is
therefore recommended that software use the Line Feed
control to perform this function instead of vertical Tab.

State Affected:
display [MAX NUM LINES] [MAX NUM COLUMNS]
active-positionAlgorithm:
void vertical_tab()
{
line feed();
/* fallback implementation */
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
FORM FEED

Page 5-62
29-Jun-1990
FF

1-4

Levels:

Purpose: Move the Active Position downward one line, scrolling if
necessary.
(fallback implementation)
Format:

FF
0/12

Description:
The FF control moves the Active Position downward
in the display by one line.
If the Active position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.

The implementation of the FF control is a fallback
mechanism for display terminals which is intended to
provide compatibility with printers which correctly
implement this function.

2.

This control is identical in function to the Line Feed
(LF) control.
It is provided for software compatibility
with printer output.
It should be noted, however, that
printers will implement this function differently.
It is
therefore recommended that software use the Line Feed
control to perform this function instead of Form Feed.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-position-Algorithm:
void form feed ()
{
line feed();
/* fallback implementation */
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-63
29-Jun-1990

BACK SPACE

BS

Levels:

1-4

Purpose:

Move the Active Position one column to the left.

Format:

BS
0/8

Description:
The BS control moves the Active Position backward
in the display by one column.
Notes:
1.

If the Active Position is at or inside the Left Margin
and within the Scroll Area, it will not move beyond the
Left Margin.

2.

If the Active Position is already before the Left Margin,
the Active Position will move left one column unless it
is at the first column of the Active Line.
The Active
Position will not move beyond the beginning of the Active
Line.

3.

The BS control is not affected in any way by the setting
of Auto Wrap Mode. Under no circumstances does the
Active Position advance to the previous line on reaching
the beginning of the Active Line.

State Affected:
activeyosition
Algorithm:
void back space()

-

{

if (activeyosition.column > left margin)
activeyosition.column -= 1;
else
{

if ( «activeyosition.column != left margin) I I
(activeyosition.line < top margin) I I
(activeyosition.line > bottom_margin)) &&
(active position. column > 1)
)
activeyosition.column -= 1;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
NEXT LINE

Page 5-64
29-Jun-1990
NEL

Levels:

1-4

Purpose: Move the Active position to the Left Margin of the next
line, scrolling if necessary.
NEL
8/5

Format:

(ESC E)

Description:
The NEL control moves the Active position to the
Left Margin of the next line.
If the Active Line is equal to the
Bottom Margin, the Active Line is not incremented, but instead the
display scrolls upward by one line.
If the Active Position is
before the left margin, or outside the top and bottom margins, it
will move to the first column of the next line, but not beyond the
last line on the page.
Notes:
1.

This control is identical to sending Line Feed (LF) with
Line Feed New Line Mode set.
It is also identical to
sending Carriage Return (CR) followed by Line Feed (LF).
Software is recommended to always use the combination of
Carriage Return followed by Line Feed (CR LF) to achieve
this effect for widest compatibility.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active_position-Algorithm:
void next line()
{
carriage return();
line feed();

}

-

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.5

Page 5-65
29-Jun-1990

Horizontal Tabulation

A conforming device shall provide the ability to set a horizontal
tabulation stop at each display column. These boolean indicators
must be capable of being set or reset in any possible combination.
It should be noted that only tab stops are stored by the device,
not tab characters.
Setting of horizontal tab stops may be performed both as a remote
and local function, and therefore the settings at any point in
time is indeterminate. However, when no local provision is made
for the setting and/or storage of user defined tabulation stops,
the following default states shall be used by conforming devices.
These settings should also apply to the factory default settings
for a conforming device.
tab stops

=

columns 9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
TABULATION CLEAR

TBC

Levels:

1-4

Purpose:

Clear Horizontal Tab Stops.

Format:

Page 5-66
29-Jun-1990

CSI
9/11

Ps
3/?

g

default Ps: 0

6/7

Description:
The TBC control provides a means of clearing or
removing previously set Horizontal Tab Stops.
The range of
positions affected by this control is determined by the parameter
value. An omitted parameter or a parameter value of zero (0)
cause the control to clear only a tabulation stop set at the
Active Column. A parameter value of three (3) causes the control
to clear all Horizontal Tab Stops in the display.
State Affected:
horizontal_tab_stops[MAX_NUM_COLUMNS]
Algorithm:
void tabulation clear(parc, parv)
short int parc;
short int parv[MAX_NUM_PARAMETERS];
{

column t X;
short int n;
if (parc == 0) parc = 1;
for (n=O; n top margin) &&
(active-position.line < bottom_margin»
outside = FALSE;
else
outside = TRUE;
if ( (active-position.column <
end_of_line(active-position.line»
&&
«active-position.column != right_margin)

I I (outside==TRUE»

active-position.column += 1;
(active-position.column <
end_of_line(active-position.line»
&&
(horizontal_tab_stops[active-position.column]
«active-position.column != right margin) I I
(outside==TRUE»
);
active-position.column += 1);

for

(;

}

Known Deviations:

None

!= TRUE)

&&

Page 5-69
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

HTS

HORIZONTAL TABULATION SET
Levels:

1-4

Purpose:

Set a Horizontal Tab Stop at the Active Column.

Format:

HTS
8/8

(ESC H)

Description:
The HTS control causes a Horizontal Tab Stop to be
set at the column position indicated by the value of the Active
Column at the time this control is received.
Notes:
1.

None of the other Horizontal Tab Stop settings are
affected by execution of this control.

State Affected:

Algorithm:
void horizontal_tabulation_set()
{

horizontal tab stops[active position.column]
}

-

-

Known Deviations:

-

None

=

TRUE;

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4.6

Page 5-70
29-Jun-1990

Page Size And Arrangement

Levelland Level 2 conforming devices support a single Logical
Display Page of 24 lines by 80 columns, extendable to 24 lines by
132 columns when the "132 Column Mode" extension is present
(DECCOLM) .
Level 4 devices, and Level 3 devices with the "Windowing
Extension" shall support commands to change the Logical Display
Page Size (DECSLPP and DECSCPP). The actual Page Sizes supported
shall be clearly specified in the product documentation, and means
shall be provided for software to interrogate the size of the
Logical Display Page (see "Terminal State Interrogation"). The
Page Size and number of pages in the Logical Display may also be
configurable by the user under local control.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET COLUMN MODE
Levels:

lX,

2X,

3X,

Page 5-71
29-Jun-1990
DECCOLM

4X

Purpose: Change the state of Column Mode between Eighty (reset)
and One Thirty Two (set).
Set Format:
Reset Format:

CSI ? 3 h
CSI ? 3 1

Description: A conforming device may provide as an extension the
capability of selecting BO-column [reset state = eighty] or
132-column [set state = one_thirty_two] display format.
Selecting Eighty or One Thirty Two Column Mode causes the display
data to be cleared, the-scrolling region to be eliminated, and the
Active Position to be set to the display origin (1,1), even if the
terminal was already in the selected state.
Notes:
1.

The font used to display Page Memory may change when the
number of columns on the page changes to better match the
screen. Control of when the font changes may be provided
as a Set-Up option.

2.

If the Host Writable Status Line is enabled, receipt of
this sequence will clear both the main display and the
Host Writable Status Line.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line rendition[MAX NUM LINES]
active position
top margin
bottom margin
column-mode
left margin
right margin
columns-per_page
left_right_margins_mode

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void set column_mode()
{

line t y;
column t X;
column mode = ONE THIRTY TWO;
columns-per-page ~ 132;
for (y=l; y SO) active-position.column = SO;
if (right margin> SO) right margin = SO;
/* optional font change */if (columns-Fer_page > SO) select normal_font();
columns_per-page = SO;
}

else
/* set columns per page to 132 */
/* optional font change */
if (columns-Fer_page <= SO) select_condensed_font();
columns_per-Fage = 132;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET LINES PER PAGE

Page 5-75
29-Jun-1990
DECSLPP

Levels:

3X (Windowing), 4

Purpose:

Set the number of lines per page in the Logical Display.

Format:

CSI
9/11

Pn
3/?

t

7/4

Description:
This sequence sets the number of display lines per
page according to the numeric parameter.
If the parameter is
omitted or zero, the page length is defaulted to 24.
If the
number of lines specified is not one of the values supported by
the implementation, the next higher supported number of lines per
page is assumed.
If the number of lines specified exceeds the
maximum number supported, the maximum number supported will be
used.
DECSLPP does not cause Page Memory to be cleared, however,
information contained in a larger page may appear in successive
smaller pages, if the new height of the pages selected by the
DECSLPP is too small to hold the information.
DECSLPP does not cause the scrolling regions to be reset, or the
Active Position to move, except under the following circumstances:
The scrolling margins may be reset to the extremes of the new Page
Configuration if the current scrolling margin exceeds the physical
limits of the new Page height; and, the Active Position will move
to the same column in the maximum available line, if the Active
Position exceeds the available number of lines in the new page
size.
Conformance to Level 4 requires support for 3 pages of 24 lines.
Implementation Guideline
The VT420 can configure its off-screen memory to
either 3 pages of 24 lines, 2 pages of 25 lines, 2
pages of 36 lines, or I page of 72 lines in
double-session mode, or 6 pages of 24 lines, 5
pages of 25 lines, 4 pages of 36 lines, 2 pages of
72 lines, or I page of 144 lines in single-session
mode.

State Affected:
lines-per_page
number of pages
act ive-posit ion

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
top margin
bottom_margin
Algorithm:
void set lines per page (parv)
short int parv[MAX_NUM_PARAMETERS);
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING)==TRUE)
{
if (parv[O) <= 24)
{
lines-per-page = 24;
number_of-pages = 3;
}
else if (parv[O) == 25)
{
lines-per-page = 25;
number_of-pages = 2;
}
else if (parv[O) <= 36)
{
lines-per-page = 36;
number of pages = 2;
}
-else
{
lines-per-page = 72;
number_of-pages = 1;
}
if (active position. line > lines-per_page)
active position. line = lines_per_page;
if (active position.page > number of pages)
active-position.page = number_of-pages;
if (top_margin > lines-per-page)
top margin = 1;
if (bottom margin > lines per page)
bottom_margin = lines_per_page;
}
}

Known Deviations:

None

Page 5-76
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.7

Page Movement

NEXT PAGE
Levels:

Page 5-77
29-Jun-1990

NP
3x (Windowing), 4

Purpose: To move the Active Position ahead one or more pages in
the Logical Display.
Format:

CSI
9/11

Pn

U

3/?

5/5

Description:
This sequence causes the Active Position to move
ahead a number of pages, specified by the parameter.
If the
parameter value is zero (the default) or one, the active position
moves ahead 1 page.
If the sequence calls for a page beyond the
last page of display memory, the highest numbered page is used.
NP moves the Active Position to the home position in the new page
obeying Origin Mode.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
state Affected:
activeyosition

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-78
29-Jun-1990

Algorithm:
void next-page(parv)
short int parv[MAX_NUM PARAMETERS);
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING)==TRUE)
{
if (parv[O) == 0) parv[O) = 1;
if «active-position.page + parv[O) <= number_of-pages)
active-position.page += parv[O);
else
active-position.page = number_of-pages ;
if (origin mode = DISPLACED)
{
active-position.line = top margin;
active-position.column = left_margin;
}
else
{
active position. line = 1;
active-position.column = 1;
}
}
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PRECEDING PAGE
Levels:

Page 5-79
29-Jun-1990
PP

3x (Windowing), 4

Purpose:
To move the Active Position back one or more pages in
the Logical Display.
Format:

CSI
9/11

Pn
3/?

v
5/6

Description: This sequence causes the active position to move
back a number of pages, specified by the parameter.
If the
parameter value is zero (the default) or one, the active position
moves back 1 page.
If the sequence calls for a page before the
first page of display memory, the first page is used. PP moves
the active position to the home position in the new page obeying
Origin Mode.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
active_position

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void preceding page (parv)
short int parv[MAX_NDM_PARAMETERS];
{

if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{

if (parv[O] == 0) parv[O] = 1;
if (active-position.page > parv[O])
active-position.page -= parv[O];
else
active-position.page = 1;
if (origin mode = DISPLACED)
{
active position. line = top margin;
active-position.column = left_margin;
}

else
{

active position. line = 1;
active-position. column = 1;
}
}

}

Known Deviations:

None

Page 5-80
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

PPA

PAGE POSITION ABSOLUTE
Levels:

Page 5-81
29-Jun-1990

3x (Windowing), 4

Purpose:
To move the Active Position to the specified page in the
Logical Display.
Format:

CSI
9/11

Pn
3/?

SP
2/0

P

(default Pn: 1)

5/0

Description: This sequence moves the Active position to the
corresponding line and column on the n-th page. If there are
fewer than n pages in display memory, the highest numbered page is
used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void page position absolute(parv)
short int parv[MAX~UM_PARAMETERS];
{

if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{

if (parv[O] == 0) parv[O] = 1;
if (parv[O] <= number of pages)
activeyosition.page =-parv[O];
else
activeyosition.page = number_of_pages;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PAGE POSITION RELATIVE
Levels:

Page 5-82
29-Jun-1990
PPR

3x (Windowing), 4

Purpose: To move the Active Position forward to the n-th
succeding page in the Logical Display.
Format:

CSI
9/11

Pn

3/?

SP
2/0

Q

(default Pn:

1)

5/1

Description:
This sequence moves the active position to the
corresponding line and column of the n-th succeding page.
If the
sequence calls for a page beyond the last page of display memory,
the highest numbered page is used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void pageyosition relative(parv)
short int parv[MAX_NUM_PARAMETERS];
{

if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{

if (parv[O] == 0) parv[O] = 1;
if «activeyosition.page + parv[O]) <= number_ofyages)
activeyosition.page += parv[O];
else
activeyosition.page = number_ofyages;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PAGE POSITION BACKWARD
Levels:

Page 5-83
29-Jun-1990
PPB

3x (Windowing), 4

Purpose: To move the Active Position back to the n-th preceding
page in the Logical Display.
Format:

CSI
9/11

Pn

3/?

SP
2/0

R

(default Pn: 1)

5/2

Description:
This sequence moves the active position to the
corresponding line and column on the n-th preceding page.
If the
sequence calls for a page before the first page of display memory,
the first page is used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void pageyosition_backward(parv)
short int parv[MAX_NUM~ARAMETERS];
{

if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{

if (parv[O] == 0) parv[O] = 1;
if (activeyosition.page > parv[O])
activeyosition.page -= parv[O];
else
activeyosition.page = 1;
}

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.5

Page 5-84
29-Jun-1990

WINDOWING EXTENSION

The Windowing Extension supports Logical Display Page sizes that
are larger or smaller than the physical display. A rectangular
area of the screen (physical display) that displays information
from a Logical Display Page is called a window.
Conforming devices may provide local window management features
for creating and manipulating more than one window on the physical
display at a time (guideline).
The following functions described in this subsection are used to
control how an area of the Logical Display is mapped to a window
on the physical display.
DECHCCM
DECVCCM
DECPCCM
DECRQDE
DECSNLS
SU
SD

Horizontal Cursor Coupling Mode
Vertical Cursor Coupling Mode
Page Cursor Coupling Mode
Request Displayed Extent
Select Number of Lines per Screen (documented
exception)
Pan Down
Pan Up

The Windowing Extension also supports two commands for changing
the the size of the Logical Display Page (DECSLPP and DECSCPP, see
"Page Size and Arrangement"). Finally, if more than one page of
display memory is supported, the Windowing Extension includes
commands to move the active position among the pages (NP, PP, PPA,
PPR, and PPB, see "Page Movement") .
The Windowing Extension may be provided at Level 1 or higher of
the Character Cell Display service class, and is indicated by the
extension parameter 18 in the Device Attributes (DA) response.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-85
29-Jun-1990

SET/RESET HORIZONTAL CURSOR COUPLING MODE
Levels:

DECHCCM

3x, 4x (Windowing)

Purpose: Change the state of Horizontal Cursor Coupling Mode
between coupled (set state, page moves horizontally in the window
to keep cursor visible), and uncoupled (reset state).
To set:
To reset:

CSI ? 60 h
CSI ? 60 I

(coupled)
(uncoupled - default)

Description: DECHCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset (uncoupled) state, when the active
position within a page goes left or right of the borders of the
displayable area (window), the page does not move with respect to
the window to keep the cursor visible. The cursor is not shown in
this case. The cursor is said to be "uncoupled" from the display.
In the set state, when the active position within a page goes left
or right of the borders of the displayable area (window), the page
is moved the minimum amount to an 8 column boundary in the
horizontal direction to keep the cursor position visible. The
cursor is said to be "coupled" to the display.
Notes on DECHCCM:
1.

Horizontal Cursor Coupling does not need to be provided
when there is no way for a Logical Display Page to have
more columns than can be shown in the narrowest window.

2.

Horizontal Cursor Coupling may be enabled or disabled
under local control in Set-Up.

3.

If a Set Mode command setting DECHCCM is received while
the Active Column is not visible on the display, the page
is moved to include the Active Column.

4.

Whether or not the cursor is actually visible may also
depend on the state of Vertical and Page Cursor Coupling
(DECVCCM and DECPCCM) .

5.

Existing implementations move the page the minimum amount
to make the cursor visible. Experience suggests moving
the minimum amount to an 8 column boundary would make the
display easier to follow for the user (less frequent
movement) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET VERTICAL CURSOR COUPLING MODE
Levels:

Page 5-86
29-Jun-1990
DECVCCM

3x, 4x (Windowing)

Purpose: Change the state of Vertical Cursor Coupling Mode
between coupled (set state, page moves vertically in window to
keep cursor visible), and uncoupled (reset state).
To set:
To reset:

CSI ? 61 h
CSI ? 61 I

(coupled - default)
(uncoupled)

Description: DECVCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, when the active position
within a page goes above or below the borders of the displayable
area (window), the page does not move with respect to the window
to keep the cursor visible. The cursor is not shown in this case.
The cursor is said to be "uncoupled" from the display.
In the set
state, when the active position within a page goes above or below
the borders of the displayable area (window), the page is moved
the minimum amount in the vertical direction to keep the cursor
position visible. The cursor is said to be "coupled" to the
display.
Notes on DECVCCM:
1.

Vertical Cursor Coupling may be enabled or disabled under
local control in Set-Up.

2.

If a Set Mode command setting DECVCCM is received while
the Active Line is not visible on the display, the page
is moved to include the Active Line.

3.

Whether or not the cursor is actually visible may also
depend on the state of Horizontal and Page Cursor
Coupling (DECHCCM and DECPCCM) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET PAGE CURSOR COUPLING MODE
Levels:

Page 5-87
29-Jun-1990
DECPCCM

3x, 4x (Windowing)

Purpose: Change the state of Page Cursor Coupling Mode between
coupled (set state, switch page in window to keep cursor visible),
and uncoupled (reset state).
To set:
To reset:

CSI ? 64 h
CSI ? 64 1

(coupled - default)
(uncoupled)

Description: DECPCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, when the active position moves
to a new page in a multiple page configuration, the display is not
refreshed to keep the cursor visible. The cursor is not shown in
this case. The cursor is said to be "uncoupled" from the display.
In the set state, when the active position moves to a new page,
the destination page is refreshed on the Main Display to keep the
cursor position visible. The cursor is said to be "coupled" to
the display.
Notes on DECPCCM:
1.

Page Cursor Coupling may be enabled or disabled under
local control in Set-Up.

2.

If a Set Mode command setting DECPCCM is received when
the Active Page containing the cursor is not visible on
the display, the Active Page is refreshed on the Main
Display.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-88
29-Jun-1990

REQUEST/REPORT DISPLAYED EXTENT

DECRQDE/DECRPDE

Levels:

3x, 4x (Windowing)

Purpose:
To determine the area of page memory currently visible
in the display window.
Request form:
Report

form:

CSI
9/11

2/2

CSI
9/11

Ph ; Pw ; Pml ; Pmt ; Pmp
Pmp
Pw ; Pml
Pmt
Ph

"

v

7/6

"

2/2

w
7/7

Description:
The DECRQDE sequence, which takes no parameters,
causes the device to respond with a DECRPDE control function
describing the area of Page Memory being displayed on the physical
screen.
The DECRPDE parameters provide the following information:
Ph

- The number of lines (height) of Page Memory being
displayed in the window.
This does not include any
status line (see "Status Display").
If no lines from
the active session are visible, 0 is returned (see
"Session Management") .

Pw

- The number of columns (width) of Page Memory being
displayed in the window. Pw is not necessarily 0
when Ph is O.
Ph should be used to determine whether
any lines are visible.

Pml - The column in Page Memory that is displayed in the
leftmost column of the window.
Pmt - The line in Page Memory that is displayed in the
topmost line of the window.
Pmp - The page of Page Memory that is being displayed
through the window.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SELECT NUMBER OF LINES PER SCREEN
Levels:

Page 5-89
29-Jun-1990
DECSNLS

Documented Exception (Windowing)

Purpose: To select a font size and corresponding maximum number
of lines that will fit on the physical display.
Format:

CSI
9/11

Pn
Pn

*

2/10

I
7/12

Description: DECSNLS selects the maximum number of lines which
can be displayed on the screen by choosing a corresponding font
size.
Pn is a numeric parameter between 1 and 255 which indicates the
number of lines which can be displayed on the screen at one time.
If a value not directly supported by the terminal is selected, the
next larger size supported will be used.
If Pn is greater than
the largest number of lines available, the largest number
supported will be used.
The number of lines per screen that can
be supported will be clearly specified in the product
documentation.
Although DECSNLS selects a font height which determines the
maximum number of lines which can be displayed, the actual number
of data lines displayed can be limited by other factors including
the Page Size, whether there is a Status Display, and local window
management functions if any. Applications can determine the
actual number of lines displayed using the Request Display Extent
(DECRQDE) control sequence.
Notes on DECSNLS:

I
I
I
I
I
.I
I
I
I
I
I
I

1.

The terminal will not display more lines than are
contained on a single page within a single window.

2.

A Status Display, if enabled, may occupy lines that would
otherwise be available for showing data from the Logical
Display Page.

3.

Unused lines will be left blank at the bottom of the
window, or screen.

4.

DECSNLS is a "User Preference Feature" intended for
terminal management use.
It should not be modified by
application software except in response to a user
request.
The terminal may provide a means to lock
DECSNLS under local control (User Features Lock in
Set-Up) to prevent host modification.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-90
29-Jun-1990

5.

It is suggested that software specify Pn to match the
Logical Display page sizes supported. This will provide
the best compatibility between implementations.

6.

The terminal may provide a local mechanism to change
DECSNLS automatically when the Page Size is changed
("auto resize window") .
Implementation Guideline
The VT420 supports three different font heights
which allow either 24, 39 or 49 data lines to be
displayed on the screen, plus a status line.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-91
29-Jun-1990

PAN DOWN (SCROLL UP)
Levels:

SU

3x, 4x (Windowing)

Purpose: To cause the current page to move up with respect to the
window making another line visible at the bottom.
Format: CSI
9/11

Pn
Pn

S
5/3

(default Pn: 1)

Description: Causes the entire visible contents of the current
page to move up one or more lines on the physical displ~y
according to the parameter. The line at the top border of the
window is no longer seen, and a new line appears at bottom border
of the window for each position moved. A numeric parameter of
zero or one causes the page to move one line.
The window cannot be moved beyond the boundaries of the page.
This control affects what is visible on the physical display only.
No movement of data within the Logical Display occurs. The Active
position does not change.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-92
29-Jun-1990

PAN UP (SCROLL DOWN)
Levels:

SD

3x, 4x (Windowing)

Purpose: To cause the current page to move down with respect to
the window making another line visible at the top.
Format:

CSI
9/11

Pn
Pn

T
5/4

(default Pn: 1)

Description: Causes the entire visible contents of the current
page to move down one or more lines on the physical display
according to the parameter. The line at the bottom border of the
window is no longer seen, and a new line appears at top border of
the window for each position moved. A numeric parameter of zero
or one causes the page to move one line.
The window cannot be moved beyond the boundaries of the page.
This control affects what is visible on the physical display only.
No movement of data within the Logical Display occurs. The Active
position does not change.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6

Page 5-93
29-Jun-1990

VISUAL RENDITIONS

This subsection describes functions used to control the visual
appearance of characters on the display. Attributes to be
controlled include screen background (light or dark), character
size (double wide and double size line attributes), character
emphasis (bold, blink, underline, reverse), and character color
when the Color Text Extension is implemented.
The following control functions are described herein:
DECSCNM - Screen Mode
Line Renditions
DECSWL - Single width Line
DECDWL - Double-Width Line
DECDHLT - Double-Height Line Top
DECDHLB - Double-Height Line Bottom
Character Renditions
SGR - Select Graphic Rendition
Color Text Extension (SGR parameters)
DECCTR - Color Table Report
DECSTGLT - Select Text/Graphics Look-Up Table
(Documented Exception)

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET SCREEN MODE
Levels:

Page 5-94
29-Jun-1990
DECSCNM

1-4

Purpose: Change the state of Screen Mode between Normal (reset)
and Reverse (set) screen.
CSI ? 5 h
CSI ? 5 1

Set Format:
Reset Format:

Description: A conforming device shall provide the capability of
operating the physical display in either "normal" [reset state =
normal] or "reverse" [set state = reverse] screen. The Screen
Mode setting al-lows the terminal operator to define his screen
state with respect to normal character rendition. Changing the
mode reverses the definitions of the foreground and background
colors.
The actual color values are not specified by the
architecture, and are implementation defined. All character
renditions must be achievable as defined on both normal and
reverse screens.
Note: Conforming software should not depend on the speed of
execution when changing Screen Mode.
It may take as long as the
time required to repaint the entire screen, depending on the
hardware implementation.
State Affected:
screen mode
Algorithm:
void set screen_mode()
{

screen mode

=

REVERSE_SCREEN;

}

void reset_screen_mode()
{

screen mode

= NORMAL_SCREEN;

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.1

Page 5-95
29-Jun-1990

Line Renditions

A conforming device shall support the following line renditions:
o
o
o
o

single-height,
single-height,
double-height,
double-height,

single-width
double-width
double-width top
double-width bottom

Only one rendition may be set per line (they are mutually
exclusive). Setting double-width or double-height renditions
doubles the character cell width within the line, but does not
affect the addressing of characters in the line (within the
constraints of the physical display). For example, the character
in column 5 of a single-width line will still be addressed as
column 5 if the line rendition is changed to double-width,
although the character field will now start in column 9 of the
physical display. Furthermore, when the line rendition is set to
double-width or double-height, character positions cannot be
addressed which are more than half the current value of the right
edge of the display.
Note: Conforming software will not draw only the top or the
bottom of double-height lines. When double-height lines are used,
both the top and bottom must be displayed in adjacent line
positions. Otherwise, the visual display of the line and the
cursor symbol registration is UNDEFINED.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-96
29-Jun-1990

SINGLE-WIDTH LINE
Levels:

DECSWL

1-4

Purpose: Set the Line Rendition of the Active Line to
single-width
Format:

ESC
1/11

#

2/3

5

3/5

Description:
Setting this attribute causes all characters
indicated by the codes contained in the Active Line to be
displayed in single-width rendition.
Notes:
1.

Setting this attribute on a line which was previously
double-width will cause the line length to be doubled.

2.

Setting this attribute does not cause data contained in
the Active Line to be lost.

State Affected:
line rendition[MAX NUM LINES]
active_position
Algorithm:

{
short int base;
base = (active position.page-1) * lines per page;
line renditionTactive position. line + base]-= SINGLE_WIDTH;
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-97
29-Jun-1990

DOUBLE-WIDTH LINE
Levels:

DECDWL

1-4

Purpose:
Set the Line Rendition of the Active Line to
double-width.
Format:

ESC
1/11

#

2/3

6

3/6

Description:
Double-width characters are achieved by displaying
the characters indicated by the codes contained in the Active Line
in double-width rendition.
Notes:
1.

Setting this attribute causes the length of the Active
Line to be reduced by half.

2.

Setting this attribute causes data which is beyond the
end of the Active Line after execution of the control to
be lost.

3.

This control does not operate when DECLRMM (Left Right
Margin Mode) is set.

State Affected:
line rendition[MAX NUM LINES]
active position
display [MAX_NUM_LINES] [MAX_NUM_COLUMNS]

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-98
29-Jun-1990

Algorithm:
void double_width_line()
{

column t X;
short int base;
base = (active-position.page-l) * lines-per-page;
line_rendition[active-position.line + base] = DOUBLE_WIDTH;
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
for (x=end_of_line(active-position.line)+l;
x<=colurnns_per-page ;
x++)
{

display[active-position.line + base] [x] .code = EMPTY_CHARACTER;
}

}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-99
29-Jun-1990

DOUBLE-HEIGHT LINE

DECDHLT,DECDHLB

Levels:

1-4

Purpose:
Set the Line Rendition of the Active Line to
double-height top or double-height bottom.
Format:

#

ESC
1/11

3
3/3

top

2/3

ESC
1/11

#

4
3/4

bottom

2/3

Description:
Double-height characters are achieved by setting
the Line Rendition of adjacent lines to double-height top and
double-height bottom.
Setting double-height top causes the upper
half of the characters indicated by the codes contained in the
Active Line to be displayed in double-height and double-width
rendition.
Setting double-height bottom causes the lower half of
the characters contained in the Active Line to be displayed in
double-height and double-width rendition.
Notes:
1.

Conforming software will not draw only the top or the
bottom of double-height lines. When double-height lines
are used, both the top and bottom must be displayed in
adjacent line positions.
Otherwise, the visual display
of the line and the cursor symbol registration is
UNDEFINED.

2.

Since double-height also implies double-width, setting
this attribute causes the length of the Active Line to be
reduced by half.

3.

Setting this attribute causes data which is beyond the
end of the Active Line after execution of the control to
be lost.

4.

This control does not operate when DECLRMM (Left Right
Margin Mode) is set.

State Affected:
line rendition[MAX NUM LINES]
active position
display [MAX_NUM_LINES] [MAX_NUM_COLUMNS]

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-100
29-Jun-1990

Algorithm:
void double height line top()

-

{

--

column t X;
short int base;
base = (active-position.page-1) * lines~er-page;
line rendition[active position. line + base] = DOUBLE HEIGHT TOP;
if (active-position.column > end_of line(active-position.line»
active-position.column = end_of_lrne(active-position.line);
for (x=end of line (active position. line) +1;
x<=columns-per-page;x++)
{

display[active-position.line + base] [x] . code = EMPTY_CHARACTER;
}
}

void double_height_line_bottom()
{

column t X;
short int base;
base = (active-position.page-1) * lines-per_page;
line_rendition[active-position.line + base] = DOUBLE_HEIGHT_TOP;
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
for (x=end_of_line(active-position.line)+l;
x<=columns-per-page;
x++)
{

display[active-position.line + base] [x] . code = EMPTY_CHARACTER;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.2

Page 5-101
29-Jun-1990

Character Renditions

Each character cell in the display has a set of visual attributes
associated with it. These attributes can be defined using the
concept of foreground and background values. A character cell
consists of a rectangular area filled with a background color, and
a character pattern written in a foreground color. Background and
foreground values are at least binary in nature (i.e., they must
have at least two clearly distinguishable visual states) .
Characters are rendered in the physical display by some
combination of the background and foreground states.
The actual
values and meanings of the background and foreground colors are
not specified by the architecture, and are implementation defined.
A conforming device shall provide normal, bold, underline, blink,
and reverse renditions for each character in the display.
These
renditions can be combined in any manner for each character
position independently. The architecture requires that each
rendition and every possible rendition combination be individually
distinguishable one from the other, without affecting the ability
to recognize the character pattern within the cell. Graphic
renditions apply to all graphic character codes (2/1 to 7/14
inclusive, and 10/0 to 15/15 inclusive) as well as to the Space
character (2/0).

5.6.2.1

Normal Rendition -

Normal rendition defines the rendering of characters in the
physical display in its "natural" state, that is, where the
character is rendered in the display foreground against a field of
display background. Normal rendition is the absence of any
special rendition of the character cell.
(Note: Normal rendition
of characters is dependent on the state of the Screen Mode, which
is used to define the values of the foreground and background
colors.)

5.6.2.2 Bold Rendition - Bold rendition of characters may be
achieved either by emphasizing the display foreground without
changing the background characteristics of the cell, or by
intensifying the background color while holding the foreground
value constant.

5.6.2.3 Blink Rendition - Blink rendition is achieved by
alternating the stable rendition of a character with a different
rendition at a fixed rate, with a duty cycle of approximately one
second.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-102
29-Jun-1990

5.6.2.4 Underscore Rendition - Underscore rendition is achieved
by the addition of a single horizontal bar extending the full
width of the character field and rendered in the display
foreground.
The bar must be easily distinguishable from the
underline character (5/15).

5.6.2.5 Reverse Rendition - Reverse rendition is achieved by
using the current value of the foreground color as the cell
background, and the current value of the background color as the
foreground.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-103
29-Jun-1990

SELECT GRAPHIC RENDITION
Levels:

SGR

1-4

Purpose: Designate the graphic rendition to be applied to all
subsequent characters entered into the display.
Format:

CSI
9/11

Ps ;
Ps ;

; Ps
; Ps

m

default Ps: 0

6/13

Description:
The SGR control selects the graphic rendition
(visual attribute) to be applied to all subsequent characters
entered into the display. The parameter values indicate the
combination of renditions to be selected as indicated in the
following table (for both Levelland Level 2)
Parameter

Rendition

o

All renditions off
Bold
Underscore
Blink
Negative (reverse) image

1

4
5

7

The following additional values are recognized in Level 2
operation. Although these values may be recognized when the
terminal is operating as a Level 1 device, conforming software
shall not rely on this feature.
Parameter

Rendition

22
24
25
27

Normal intensity (Bold off)
Not Underscore
Steady (not Blink)
Positive image

Notes:
1.

All other parameter values shall be ignored unless they
are part of a well defined extension to the architecture.

2.

Renditions may be selected in any combination, and will
be rendered appropriately. Selecting additional
renditions does not affect the setting of previously
selected renditions (newly selected renditions will be
combined with previously selected renditions) unless all
renditions are turned off (parameter value zero (0».

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
3.

Page 5-104
29-Jun-1990

In no way does the selection of current rendition affect
the rendition of characters already entered into the
display.

State Affected:

Algorithm:
void select graphic rendition(parc, parv)
short int-parc; short int parv[MAX_NUM~ARAMETERS];
{

short int n;
if (parc == 0) parc = 1;
for (n=O; n

40
41
42
43
44
45
46
47
49

background color 0
background color 1
background color 2
background color 3
background color 4
background color 5
background color 6
background color 7
default background color

black
red
green
yellow
blue
magenta
cyan
white


A device may provide means, either under software or local
control, to modify these colors and may provide means to save the
modified colors in non-volatile memory.

5.6.3.2

Interaction with Other Visual Renditions -

The foreground color and background color are maintained as part
of the current rendition. As new characters are written to the

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-107
29-Jun-1990

display, the current rendition is used to update the attribute
bits associated with-each character in display memory.
Selecting the Reverse Rendition (SGR parameter 7) will, if the
Reverse Rendition is not already set, be- equivalent to invoking
the current foreground color as the new background color, and the
current background color as the new foreground color.
Likewise,
selecting the Positive Rendition (SGR parameter 27) will, if the
positive Rendition is not already set, be equivalent to invoking
the current foreground color as the new background color, and the
current background color as the new foreground color.
SGR parameters 30-37 and 39, the nine foreground color specifiers,
will set the foreground color without regard to whether the
Reverse Rendition is set. Likewise, SGR parameters 40-47 and 49,
the nine background color specifiers, will set the background
color without regard to whether the Reverse Rendition is set.
SGR parameter 0 (all renditions off) will reset the foreground and
background color attributes to their defaults (equivalent to SGR
parameters 39 and 49).
SOFT TERMINAL RESET (DECSTR) will
similarly cause the foreground and background color attributes to
be reset.
When the Color Text Extension is present, the Bold Rendition (SGR
parameter 1) should be distinguished by a heavier weight font
(Guideline).
It is preferable not to use a separate color
(increased intensity) for bolding in order to keep it distinct
from the other color text attributes.
Changing between normal and reverse screen mode (DECSCNM) will
affect which attribute bits from display memory are used to render
the text foreground and background color.
It does not affect the
current rendition, or how the current rendition is applied to the
character attribute bits associated with each character in display
memory.
The architecture does not specify the default text foreground or
background colors.
It is recommended however that normal screen
mode correspond to lighter text on a darker background (not
mandatory).
The factory default for screen mode is device
dependent. A device may provide means to save the screen mode in
non-volatile memory so as to override the factory default at
power-up.

5.6.3.3 Color Maps - A color map is a table that associates a
binary value in display memory with a color that can be produced
on the display. During display refresh, the active color map is
used to translate color values from display memory to colors that
appear on the screen. The size of the active color map cannot
exceed 2**N entries where N is the number of bits used to

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-108
29-Jun-1990

represent a color in display memory (often the number of bit
planes) .
A device can have many color maps of which only one is active at
time, or can assign color map entries from a single color map to
different applications, limiting the size of each application's
color map.
Color maps can be read-only (fixed), or read-write
(modifiable under software control).
Applications often model color selection as asking for a
particular color (non-indexed, absolute color specification,
read-only), or asking for a particular color map entry (indexed
color, read-write). When using indexed color, it is normal to
allow the application to modify a color map entry causing all
objects written with that color index to change color on the
display.
Conforming devices may implement the ANSI SGR colors as indexed or
non-indexed, and may allow selecting between these two models
under local control.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.3.4

Page 5-109
29-Jun-1990

Color Table Report (DECCTR) -

A conforming device that supports the TSI and Color Text
Extensions, and has a color table shall be capable of reporting
the color table in the form of a DECCTR sequence as follows.
Color Table Request/Report/Restore

DECCTR

Levels:

2x, 3x, 4x (TSI and Color Text)

Purpose:

To Request, Report, and Restore the contents of
the color table.

Request
Format:

CSI 2
;
Pu $
9/11 3/2 3/11 3/? 2/4

Report
Format:

DCS 2
s D ... D ST
$
9/0 3/2 2/4 7/3 D ... D 9/12

(DECTSR Ps=2)

Restore
Format:

DCS 2
D ... D ST
$
P
9/0 3/2 2/4 7/0 D ... D ST

(DECRSTS Ps=2)

u
7/5

(DECRQTSR Ps=2)

Where D ... D consists of groups of 5 parameters as follows:
Pc; Pu; Px; Py; Pz / Pc; Pu; Px; Py; Pz /

...

Pc is the color number 0-255.
Pu is the color coordinate system
o = illegal
1 = HLS (hue 0-360, lightness 0-100, saturation 0-100)
2 = RGB (red 0-100, green 0-100, blue 0-100)
Px, Py, Px are values in the color coordinate
system specified by Pu.
T
is the semicolon character (3/11)
/ is the slach character (2/15)

Description: DECRQTSR with parameter 2 is sent from the host to
the terminal to request a color table report.
The terminal
responds with a DECTSR control with parameter 2 and each color
table entry given as a group of 5 parameters in the data string.
To load or restore a previously reported color map, the host
transmits the DECRSTS control with parameter 2 and the desired
color map definitions in the data string. When loading the color
map, only the index entries specified are changed.
When using DECRQTSR to request a color table report, you can
include an additional parameter Pu to select the color coordinate

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-110
29-Jun-1990

system the terminal uses to report the color map (O=default,
l=HLS, 2=RGB).

5.6.3.5

Default Color Assignment (Guideline) -

When indexed color is used, the following color map assignments
are recommended to maximize compatibility among implementations
when the colors are not specified explicitly (not mandatory) .
"Normal" text foreground and background refers to when Screen Mode
is reset.
Four or more plane (16 or more color) color map:
Color
----0 black
1 blue
2 red
3 green
4 magenta
5 black
6 white
7 gray 50%

Mono

Text Use

black
gray-2
gray-4
gray-6
gray-l
gray-3
gray-5
white

normal background

8 gray 25%

black
gray-2
gray-4
gray-6
gray-l
gray-3
gray-5
white

9
10
11
12
13
14
15

blue*
red*
green*
magenta*
cyan*
yellow*
gray 75%

black text
white text
normal foreground
blue text
red text
green text
magenta text
cyan text
yellow text
bold text (VT340)

* = may be less saturated
If more than four planes are supported, this series of 16 colors
can be repeated as needed.
Explainatory Note
DECterm uses these assignments directly, though
colors corresponding to map entries 9-14 are not
less saturated.
The VT340 uses these assignments except that color
5 is cyan, and color 6 is yellow. These were
changed to black and white to make black and white
ANSI text colors not dependent on the default
foreground and background colors in DECterm.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-111
29-Jun-1990

Color map entries 0-3 match the VT240 default
colors.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.3.6

Page 5-112
29-Jun-1990

Color Interaction Among Modes And Data Syntaxes
(Guideline) -

ANSI Color Text, Sixels, and ReGIS can all support indexed color
using a similar color model. A conforming device may share a
single color map among these protocols so that changing a color
definition in one protocol will affect the color map used by the
other protocols. Support for the option of sharing the same color
map is recommended, but not mandatory. Conforming software should
not depend on cross protocol side effects if maximum portability
is desired.

5.6.3.7

Alternative Text Rendition Mapping (Guideline) -

Some previous terminals which do not support ANSI Color Text
allowed other SGR parameters to select text colors.
VT241
Color Entry

o

1
2
3

normal text background
reverse graphic rendition (SGR 7)
bold
graphic rendition (SGR 1)
normal text foreground

For backward compatibility, the VT340 provides an alternative text
rendition mapping mode selectable from Set-Up.
VT340 Alternative Text Rendition Mapping
Color Entry

o

8
15
7

normal text background
reverse graphic rendition (SGR 7)
bold
graphic rendition (SGR 1)
normal text foreground

When alternative text rendition mapping is not selected, the
reverse attribute is rendered by exchanging the text foreground
and background colors.
A conforming device may provide an alternative text rendition
mapping mode selectable in Set-Up, but this is not part of the
Color Text Extension. The factory default behavior should be to
treat bold and reverse graphic renditions independently of color
selection (not mandatory) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-113
29-Jun-1990

Select Text/Graphics Look-Up Table

DECSTGLT

Levels:

3 (Documented Exception)

Purpose:

To select color look-up table used and the mapping
of text renditions to look-up table entries.

Format:

CSI
9/11

Ps
3/?

Ps

Look-Up Table

o

monochrome look-up table (default)
color look-up table,
standard text rendition mapping
color look-up table,
alternative text rendition mapping

1
2

)

{

2/9

7/11

Description: DECSTGLT permits host selection of the video color
look-up table used in the device, and the mapping of text
renditions to look-up table entries. This control function
assumes the existence of two color look-up tables: monochrome and
color. When a color look-up table is selected, two text rendition
mappings can be defined, called "standard" and "alternative". The
"standard" mapping permits the reverse video rendition to use a
different color look-up table entry for the background of
displayed text. The "alternative" mapping restricts text
rendition mapping to a single background entry, and one or two
foreground entries (two if the bold graphic rendition is effected
through increased intensity).
In other words, the alternative
mapping supports the use of bold and reverse graphic renditions to
select text foreground colors.
This control function is not intended to supplant the Color Text
Extension, but instead provide a means ot backward compatibility
to earlier video devices which provided several different text
rendition mappings based on different monitor configurations.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.7

Page 5-114
29-Jun-1990

AUDIBLE INDICATOR

A conforming device shall provide a warning "bell", or some
similar audible indicator suitable to signal the operator's
attention.
It may be possible to change the volume of the bell
sound, or disable it entirely, as a local Setup function.

WARNING BELL

BEL

Levels:

1-4

Purpose:

Rings the terminal bell.

Format:

BEL
0/7

Description:
The BEL control causes the terminal to emit an
audible tone of brief duration.
Notes:
1.

It may be possible to change the volume of the bell
sound, or disable it entirely, as a local Setup function.

State Affected: none

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.8

Page 5-115
29-Jun-1990

GRAPHIC CHARACTER SETS

The terminal shall maintain a repertory of available character
sets which may be used to interpret received data characters to be
displayed. The character sets must be selectable on a per
character basis, and are mutually exclusive (that is, there can be
only one character set value for each character position in the
Logical Display). Refer to the Code Extension Chapter of this
standard (DEC STD 70-3) for more information on designating and
invoking character sets, G-sets, and the structure of the in-use
table.

5.8.1

Character Set Repertoire

The table below shows the graphic character sets required at each
Conformance Level, and those available as Extensions.
Character Set{s)

Level at which required,
or availabe as Extension

U.S. ASCII
DEC Line Drawing
DEC Supplemental Graphic
ISO Latin-1 Supplemental
UPSS
UK set (United Kingdom)
NRCS
JIS ROMAN, JIS KATAKANA
DRCS
DEC Technical

1-4
1-4
2-4
2x,
2x,
1x
lx,
2x,
2x,
3x,

3-4
3-4
2x, 3x, 4x
3x, 4x
3x, 4x
4x

Notes:
1.

ISO Latin-1 Supplemental is available at Level 2 as part
of the 8-bit Interface Architecture Extension.

2.

UPSS (User Preference Supplemental Set) is not actually a
character set in itself, but a pointer to one of the
supplemental sets (usually DEC Supplemental or ISO
Latin-1 Supplemental). UPSS is available at Level 2 as
part of the 8-bit Interface Architecture Extension.

3.

The UK set is an optional extension to Levell which if
present, may be selected in Set-Up to replace ASCII
(ASCII and UK cannot be designated simultaneously). This
extension was implemented on the VT100, but has since
been replaced by the NRCS Extension.

4.

NRCS (National Replacement Character Set) is an extension
which provides twelve 7-bit NRC sets, one of which may be
selected under local user control (Set-Up) to replace

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-116
29-Jun-1990

U.s. ASCII as the default set. See DECNRCM. Depending
on the implementation, only one NRC set corresponding to
the keyboard dialect may be selectable at a time.
5.

JIS ROMAN and JIS KATAKANA are part of the Katakana
Extension.
-

6.

DRCS (Dynamically Redefinable Character Set) is an
extension which allows a soft character set to be
downloaded from the host and assigned a designating
sequence possibly replacing an existing character set.
See Chapter 10 of this standard (DEC STD 70-10), DRCS
Extension.

The character sets themselves are described in DEC STD 169 Digital
Standard Coded graphic Character Sets for Hardware and Software.

5.8.2

Character Set Selection

Character sets are identified to the terminal using designating
escape sequences which must be registered in DEC Standard 138.
Each sequence consists of zero, one, or two intermediate
characters in the range 2/0 through 2/15, followed by a final
character in the range 3/0 through 7/15, the combination of which
uniquely identifies the character set to be designated.
(Note:
the designating sequence is preceded by the Escape character
(1/11) and a single intermediate value 2/8, 2/9, 2/10, or 2/11
indicating which of the four G-sets the specified character set is
to be designated into. For a complete description of the
designating and invoking process, see the section "Code Extension
Layer", DEC STD 70-3.)

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-117
29-Jun-1990
SCS

DESIGNATE CHARACTER SET
Levels:

1-4

Purpose:

Designate the graphic character sets.

Format:

ESC





The G-Set designators are:
94 character sets
GO
(
2/8
Gl
)
2/9
2/10
G2
*
G3
+
2/11
96 character sets
Gl
2/13
G2
2/14
2/15
G3
/
The Character set designators are:
ASCII G
LINE DRAWING G
DEC SUPPLEMENTAL G
ISO-LATINI SUPPLEMENTAL G
UPSS G
DRCS-G
TCS G
JIS-Roman
JIS Katakana
NRCS
British
Dutch
Finnish
French
French Canadian
German
Italian
Norwegian/Danish
Portuguese
Spanish
Swedish
Swiss

B
0
%5
A
<
I I F
>
J
I
A
4
5 or C
R

4/2
3/0
2/5 3/5
4/1
3/12
2/? 2/? ?/?
4/10
4/9

(discontinued in L3)

Q

K
Y

E or 6
%6

z

7 or H

=

For example,
ESC ( B
ESC ) 0
ESC * <

designates ASCII G to GO
designates Line Drawing to Gl
designates the UPSS to G2

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-118
29-Jun-1990

Description:
The character set designating escape sequences
provide the means of selecting the GO, G1, G2, and G3 character
sets, which can be invoked into the left (GL) and right (GR) sides
of the In Use Table.
(For a complete description of the G-sets
and the In Use Table, see the section "Code Extension Layer".)
Notes:
1.

In Levell operation character sets can only be
designated into GO and G1, with G2 and G3 containing the
ASCII character set by default.

2.

Conforming software will not change the default
designations of the GO and G2 character sets. The G1 and
G3 sets will be used when it is desired to designate
alternate character sets. Furthermore, conforming
software will not designate ASCII G to either G2 or G3,
and will not designate Supplementa1_G to either GO or G1.

3.

Designating a character set which is invoked into the In
Use Table at the time the control is executed causes the
In Use Table to be changed to reflect the change to the
designated set.

4.

As a Levell extension, the UK (United Kingdom) Character
Set may be provided, and designated with the sequence ESC
I A (1/11 I 4/1).
If this extension is supported, it may
also be possible to locally select the UK set to replace
ASCII as the default 7-bit set.
In this case, the UK set
will be used in all instances in which ASCII is employed
throughout the Video Systems Reference Manual when the
terminal is in Levell operation.

5.

On traditional video terminals with the NRCS extension,
it is permissable to only recognize the one NRC set
corresponding to the keyboard dialect at a time.
Workstation terminal emulators may extend the character
set table to recognize all NRC sets regardless of the
current keyboard dialect (not mandatory) .

State Affected:
designated graphic sets[4]
in use table
-

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-119
29-Jun-1990

Algorithm:

/***************

**

*
*
*
*

Initialize the character set table
This procedure should be called on power-up or
reset to initialize the character set table
with the appropriate designating sequences.

**************/

void intialize character_set_table()
{
char set table[TABLE ASCII] .name = ASCII G;
char-set-table[TABLE-ASCII] .first intermediate = 0;
char-set-table[TABLE-ASCII] . second intermediate = 0;
char=set table[TABLE ASCII] . final ~ 'B';
char set table[TABLE LINE DRAWING]
char-set-table[TABLE-LINE-DRAWING]
char-set-table[TABLE-LINE-DRAWING]
char=set table[TABLE LINE DRAWING]

. name = LINE DRAWING G;
.first intermediate ~ 0;
. second intermediate = 0;
.final ~ '0';

if (conformance level >= LEVEL 2)
{
char set table[TABLE DEC SUPP] .name = DEC SUPPLEMENTAL G;
char-set-table[TABLE-DEC-SUPP] .first intermediate = '%';
char-set-table[TABLE-DEC-SUPP] . second intermediate = 0;
char=set table[TABLE DEC=SUPP] . final ~ '5';
if (level 2 extensions[DRCS EXT]==TRUE)
{-char set table[TABLE DRCS] .name = DRCS G;
char-set-table[TABLE-DRCS] .first intermediate = 0;
char-set-table[TABLE-DRCS] . second intermediate = 0;
char-set-table[TABLE-DRCS] .final ~ 0;
}
if (level 2 extensions[NRCS EXT]==TRUE)
{-/*
This entry is initialized to correspond
with the keyboard dialect whenever it
is changed in Set-Up.
*/
char set table[TABLE NRCS] .name = NRCS G;
char-set-table[TABLE-NRCS] .first intermediate = 0;
char-set-table[TABLE-NRCS] . second intermediate = 0;
char-set-table[TABLE-NRCS] . final ~ 0;
}
}
if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA]==TRUE»
{
char_set_table[TABLE_LATIN1] .name = ISO LATIN1_SUPPLEMENTAL_G;

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-120
29-Jun-1990

char set table[TABLE LATINI] .first intermediate = 0;
char-set-table[TABLE-LATINl] . second intermediate = 0;
char set table[TABLE LATINI] . final ~ 'A';
char set table[TABLE UPSS] .name = UPSS G;
char-set-table[TABLE-UPSS] . first intermediate = 0;
char-set-table[TABLE-UPSS] . second intermediate = 0;
char-set-table[TABLE-UPSS] . final ~ '<';
}
if (level 3 extensions[TCS]==TRUE)

--

{

char set table[TABLE TCS]
char-set-table[TABLE-TCS]
char-set-table[TABLE-TCS]
char-set-table[TABLE-TCS]

}

-

-

-

. name = TCS G;
. first intermediate = 0;
. second intermediate = 0;
. final ~ '>';

}

void designate character set (parc, parv)
/* parc and parv contain the count and values
of the indermediate characters of the
designating sequence */
short int parc;
short int parv[MAX_NUM_INTERMEDIATES];
{

short int
short int
short int
boolean t

n;
gset_number;
set size;
compare designator();

/* function declaration */

/* ....... -:- ......... -:- ... */
/* find which set we're designating */
switch (parv[O])
{

case ')':
/* 2/8
gset number = 0;
set size = 94;
break;
case' (':
/* 2/9
gset number = 1;
set size = 94;
break;
case '*':
/* 2/10
gset number = 2;
set size = 94;
break;
case '+':
/* 2/11
gset number = 3;
set size = 94;
break;

designate 94 into GO */

designate 94 into Gl */

designate 94 into G2 */

designate 94 into G3 */

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-121
29-Jun-1990

case '-':
/* 2/13 designate 96 into G1 */
gset number = 1;
set size = 96;
break;
case'.':
/* 2/14 designate 96 into G2 */
gset number = 2;
set size = 96;
break;
case ' / ' :
/* 2/15 designate 96 into G3 */
gset number = 3;
set size = 96;
break;
}

/* look for the designator in the table */

/*
Note that because the DRCS designator is processed last,
it will replace an installed set if the designator is
identical.

*/
for (n=O; n= LEVEL 2)
-

{
in use table.gr =
designated_graphic_sets[in_use_table.invoked_gr];
}

/* perform hardware specific actions needed
to update the character set displayed */
}

/* end procedure designate_character_set */

/*

*

compare sequence designator to table entry n

*/
boolean t compare designator(parc, parv, n)
short-int parc;- /* number of sequence characters */
short int parv[MAX NUM INTERMEDIATES];
short int n;
/* char set table entry */
{

boolean t

status;

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-122
29-Jun-1990

status = TRUE;
if (char set table[n] . final != parv[parc-1])
status-= FALSE;
else
{

if (parc > 2)
{

if (char set table[n] .first intermediate != parv[l])
status-= FALSE;
else
{

if (parc >= 3)
if (char set table[n] . second intermediate != parv[2])
status-= FALSE;
}
}
}

return (status) ;
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-123
29-Jun-1990

ASSIGN USER-PREFERENCE SUPPLEMENTAL SET

DECAUPSS

Levels:

2x (a-bit Interface Architecture), 3-4

Purpose:

To assign a user preferred supplemental set

Format:

DCS
9/0

Ps

!
2/1

u
7/5

Dscs

ST
9/12

Description: This control string assigns a character set to be
the User-Preference Supplemental Set (UPSS).
The User-Preference
Supplemental Set serves the following functions:
1.

It acts as the default supplemental set for reception.
On soft terminal reset, the UPSS is designated as G2.

2.

It acts as the keyboard supplemental set, that is, it
determines which supplemental characters can be generated
from the keyboard (including valid compose sequences).

3.

It provides a level of indirection for application
software. The UPSS can be explicitly designated without
needing to know the actual character set assigned.

Currently DEC Supplemental and ISO Latin-1 supplemental may be
used as the UPSS.
The default User-Preference Supplemental Set is
determined through a Set-Up feature.
The value of Ps and Dscs
denote which set from the terminal's repertory of character sets
is to be the User-Preference Supplemental Set.
Ps selects between 94 and 96 character sets (Ps = 0 selets a 94
character set). Dscs is the intermediate and final characters of
the SCS escape sequence used to explicitly designated that
character set. For example a value of "% 5" for Dscs indicates
that the DEC Supplemental character set is the User-Preference
Supplemental set.
See the SCS command for more information on the
designating intermediate and final characters. Attempts to assign
an invalid supplemental set will be ignored.
Notes on DECAUPSS:
1.

The DRCS can be used as the UPSS by naming it as DEC
Supplemental or ISO Latin-1 supplemental.

2.

Assigning a new UPSS will immediately update the In-Use
table if the UPSS is currently designated and invoked.

3.

This sequence is sent from the terminal to the host in
response to a DECRQUPSS request.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-124
29-Jun-1990

Implementation Guideline
The valid combinations for the VT320 are:
Ps
Ps

=

0, Dscs
Dscs

= 1,

=%5
=A

DEC Supplemental
ISO Latin-l supplemental graphic

State Affected:
upss

/* defined in code extension layer */

Algorithm:
void assign_user-preference_set(parv, string)
short int parv[MAX NUM PARAMETERS];
char string [ ] ;
-{

if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA]

==

TRUE»

{

/* update upss state in Code Extension Layer */
if «parv [0] = 0) && (strcmp (string, "%5") == 0»
{

/* size is 94 characters */
upss = DEC SUPPLEMENTAL G;

}
else if «parv[O]

-

=

1)

&&

(strcmp(string, "A") -- 0»

{

/* size is 96 characters */
upss = ISO LATINI SUPPLEMENTAL G;
}

-

-

-

/* update in use table */
if (in use table.gl == UPSS G)

{
; /* perform hardware dependent actions as needed */
.

}

== UPSS- G)
{
; /* perform hardware dependent actions as needed */

if (in use table.gr
}
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-125
29-Jun-1990
DECRQUPSS

REQUEST USER-PREFERENCE SUPPLEMENTAL SET
Levels:

2x (a-bit Interface Architecture), 3-4

Purpose:

To request the user preferred supplemental set

Format:

&

CSI
9/11

2/6

u
7/5

Description: Upon receipt of this sequence, the terminal will
return a DECAUPSS sequence which specifies which coded character
set is assigned to be the User-Preference Supplemental Set.
State Affected:

none

Algorithm:
void request_user-preference_set()
{

if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA] -- TRUE»
{

send char(Ox90, host port);
/* DCS */
if (upss = DEC SUPPLEMENTAL G)
{

-

-

send_int(O, host-port);
send_string("!u%5", host-port);
}

else if (upss
{

=

ISO LATIN1 SUPPLEMENTAL G)

-

-

-

send_int(l, host-port);
send_string("!uA", host-port);
}

send char(Ox9C, host-port);
}
}

Known Deviations:

None

/* ST */

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-126
29-Jun-1990

SET/RESET CHARACTER SET MODE
Levels:

DECNRCM

lx, 2x, 3x, 4x (NRCS Extension)

Purpose: To select 8-bit Multinational Characters, or 7-bit NRCS
Characters for transmission (keyboard) and reception (display).
To set:
To reset:

CSI? 42 h
CSI? 42 I

(7-bit NRCS Characters)
(8-bit Multinational Characters)

Description: This parameter is applicaple to the Set Mode and
Reset Mode control sequence. When 8-bit Multinational Characters
is selected (factory default), the terminal uses ASCII in GL and
either DEC Supplemental or ISO Latin-1 Supplemental in GR
(depending on the UPSS). When 7-bit NRCS Characters is selected,
a 7-bit National Replacement Character set is used for
transmission and reception in GL (GR is not used). The NRCS used
is determined by the Keyboard Dialect chosen in Set-Up (see
"Keyboard Processing", DEC STD 70-6) .
Notes on DECNRCM:
1.

Changing this mode
the designated and
default state (the
NRCS Characters is
U.S. ASCII in the

has the side effect of re-initializing
invoked character sets to their
state at power-on or reset).
If 7-bit
selected, a 7-bit NRC Set may replace
default designations.

2.

8-bit Characters are temporarily disabled when in Levell
(VT100 mode), or a 7-bit host line environment is
selected. The DECNRCM sequence will still be recognized,
but in the case of the reset sequence, 8-bit characters
will remain disabled until the restrictive conditions are
removed.

3.

This sequence is ignored when the North American or Dutch
Keyboard Dialect is selected. These keyboard dialects
use U.S. ASCII as their 7-bit set, so there is no need
to disable the multinational set (which includes U.S.
ASCII as its left half) to access 7-bit NRC characters.
U.S. ASCII may be considered the NRC set for North
America.

State Affected:
character set mode
r character set mode
- /* used to keep track of character set mode
when a restrictive condition (7-bit Host Line,

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-127
29-Jun-1990

or VT100 mode) is in effect */
in use table
designated_graphic_sets[4]
Algorithm:
void set character_set_mode()
{

if (level 1 extensions[NRCS EXT]==TRUE)

- -

{

-

character set mode = SEVEN BIT NATIONAL;
/* keep track-of mode if there-are restrictions in effect */
r character set mode = SEVEN BIT NATIONAL;
if (keyboard usage mode == TYPEWRITER)

--

{

in use table.gl = nrcs list [keyboard dialect];
in-use-table.gr = nrcs-list[keyboard-dialect];
in-use-table.invoked gl = GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = nrcs list[keyboard dialect];
des ignated-graphic-set s [1] = nrcs-list[keyboard-dialect];
des ignated-graphic-set s [2] = nrcs-list[keyboard-dialect];
designated-graphic-sets[3] = nrcs-list[keyboard-dialect];

-

}

else

-

-

-

/* keyboard usage mode is Data Processing */

{

in use table.gl = ASCII_G;
in-use-table.gr = ASCII G;
in-use-table.invoked gl-= GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = ASCII G;
designated-graphic-sets[l] = ASCII-G;
designated-graphic-sets[2] = ASCII-G;
des ignated-graphic-set s [3] = ASCII-G;
}
}
}

void reset_character_set_mode()
{

if (level 1 extensions[NRCS EXT]==TRUE)

- -

{

-

/* keep track of mode if there are restrictions in effect */
r character set mode = EIGHT BIT MULTINATIONAL;
/* ignore if 7-bit host line-or VT100 mode */
if «host-port_environment != SEVEN_BIT) &&
(conformance_level != LEVEL_I»
{

character set mode = EIGHT BIT MULTINATIONAL;
in use table.gl = ASCII G;in use table.gr = UPSS_G;

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-128
29-Jun-1990

in use table. invoked gl = GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = ASCII G;
designated-graphic-sets[l] = ASCII-G;
designated-graphic-sets[2] = UPSS G;
designated-graphic-sets[3] = UPSS G;

-

}

-

}
}

Known Deviations:

5.9

None

SUMMARY OF CONTROL CHARACTER PROCESSING

This subsection provides a summary of control character processing
as a convenience to the reader, and to include control characters
which are not described in detail in their corresponding
functional sUbsection of this chapter (DEC STD 70-5) .

5.9.1

CO Control Characters

CO control characters are those with
7/15 (0 - 31, and 127 decimal). The
the control characters recognized by
other CO control characters cause no

values of %
to 1/15, and
following is a description of
conforming devices. All
action to be taken.

Control Col/Row Action Taken
NUL

%

Ignored on input (not
stored in input buffer) .
May be used as a time fill
character. Note: When
Control Representation Mode
is Set, NUL is not ignored,
but displayed, and may not
be used as a time fill
character.

ENQ

0/5

Transmit answerback message.

BEL

0/7

Causes bell tone to sound
from keyboard.

BS

0/8

Causes the cursor to move
to the left one character
position, unless it is at
the left margin. Does not
cause wrap.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-129
29.,..Jun-1990

HT

0/9

Causes the cursor to move
to the next tab stop, or
the right margin if no
further tab stops. Does
not cause wrap.

LF

0/10

Causes a line feed or a new
line operation depending on
the setting of Line Feed/New
Line Mode (LNM). LF causes
a line to be printed if in
auto print mode.

VT

0/11

Interpreted as a LF.

FF

0/12

Interpreted as a LF.

CR

0/13

Cursor goes to left margin.
If cursor is already left of the left
margin, cursor goes to column 1.

SO
(LSI)

0/14

Invoke G1 character set into GL.

SI
(LSO)

0/15

Invoke GO character set into GL.

XON

1/1

Causes terminal to resume
transmitting, if XOFF
handling is enabled.

XOFF

1/3

CAN

1/8

Causes terminal to stop
transmitting all codes
except XOFF and XON, if
XOFF handling is enabled.
If received during an escape or
control sequence, the sequence
is immediately terminated and
not executed. No character is
displayed.

SUB

1/10

If received during an escape or
control sequence, the sequence
is immediately terminated and
not executed. The error
character (reverse question mark)
is displayed.

ESC

1/11

Introduces an escape sequence.
Terminates any escape, control sequence,
or control string in progress.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DEL

5.9.2

7/15

Page 5-130
29-Jun-1990

Ignored on input (not
stored in input buffer) .
May not be used as a time fill
character.

C1 Control Characters

C1 control characters are those with positions of 8/0 to 9/15.
The following is a description of the C1 control characters which
are recognized by conforming devices. All other C1 control
characters cause no action to be taken.
Note C1 controls can be represented by ESC Fe sequences in 7-bits.
See "Code Extension Layer" (DEC STD 70-3).
Control Col/Row Action Taken

IND

8/4

INDEX - Causes the active
position to move downward
one line without changing
the horizontal position.
If the active position is
at the bottom margin, a
scroll up is performed.

NEL

8/5

NEXT LINE - Causes the
active position to move
to the first position on
the next line downward.
If the active position is
at the bottom margin, a
scroll action is performed.
(a CR LF is executed) .

HTS

8/8

HORIZONTAL TABULATION SET
Sets one horizontal
tabulation stop at the
column of the active
position (See also, TBC).

RI

8/13

REVERSE INDEX - Moves the
active position to the
same horizontal position
on the preceding line.
If the active position is
at the top margin, a
scroll down is performed.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
SS2

8/14

SINGLE SHIFT 2 - Causes
the G2 set to be invoked
for the next single
displayed character.

SS3

8/15

SINGLE SHIFT 3 - Causes
the G3 set to be invoked
for the next single
displayable character.

DCS

9/0

DEVICE CONTROL STRING Introduces a Device
Control String.

SOS

9/8

START OF STRING This control is ignored.

Page 5-131
29-Jun-1990

DECID
9/10
(reserved)

DEC PRIVATE IDENTIFICATION Causes the same response as
the ANSI device attributes
(see DA).
This sequence is
not recognized a Level 3 or
above. Conforming software
shall use DA. Note:
If
printer controller mode is
enabled, the sequence will be
sent to the printer.

CSI

9/11

CONTROL SEQUENCE INTRODUCER Introduces a control sequence.

ST

9/12

STRING TERMINATOR Terminates Control
Strings introduced by
DCS, APC, OSC, and PM.

OSC

9/13

Operating System Command A control string.

PM

9/14

Privacy Message A control string.

.APC

9/15

Application Program Command A control string.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-132
29-Jun-1990

SUBSTITUTE

SUB

Levels:

1-4

Purpose:

Place a reversed question mark symbol in the display.

Format:

SUB
1/10

Description:
The SUB control is used to
of characters in the data stream for which
representation.
This control is processed
question mark in the display at the Active

indicate the presence
there is no graphic
by placing a reversed
Position.

Notes:
1.

The character to be displayed in cases where the reversed
question mark cannot be used is a "half-tone blotch",
which is rendered by filling the entire character cell in
the display with a cross-hatched pattern.

2.

Receipt of the Substitute character within an escape or
control sequence causes the sequence in progress to be
aborted and the Substitute control function to be
executed instead (that is, the reversed question mark
symbol will be displayed) .
(See the section "Code
Extension Layer" for a complete description of the
handling of control characters within escape and control
sequences. )

State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
active-position-Algorithm:
void substitute()
{

short int sub = Ox1A;
/* .......... */
/* place a reversed question mark in the display */
insert or replace character(&sub);
}

-

-

-

Known Deviations:
Most existing terminals (VT100, VT101, VT102, VT125, VT131, VT132)
display the blotch character instead of the reversed question
mark.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.10

Page 5-133
29-Jun-1990

MODES STATES (AND MODE DESCRIPTIONS)

A conforming device shall provide certain programmable state
capabilities or modes as described below.
It should be noted that
some modes are identified as User Preference Features (see the
section "Concepts and Conformance Criteria" for a list of the
modes which are classified as User Preference Features).
The
state of these features should not be changed by conforming
software, except in response to an explicit user request (for
example, a request to change the screen width) .

5.10.1

SM/RM - Set Mode, Reset Mode Sequence

The Set Mode/Reset Mode control sequence is used to control the
state of various settable modes in the terminal.
Set Format:

CSI
9/11

PS ... Ps
PS ... Ps

I
6/12

Reset Format:

CSI
9/11

PS ... Ps
PS ... Ps

h
6/8

Sets/Resets one or more modes of the terminal as specified by each
selective parameter in the parameter string. Each mode to be
set/reset is specified by a separate parameter.
Note that ANSI specified mode parameters and DEC private mode
parameters may not be mixed within the same SM or RM sequence.

5.10.1.1
Mode
Parameter

ANSI Specified Modes: Mnemonic

Mode Function

KAM
IRM
SRM
LNM

Error (ignored)
Keyboard Action Mode
Insert Replacement Mode
Send-Receive Mode
Line Feed New Line Mode

o
2

4
12
20

5.10.1.2

DEC Private Modes: -

If the first character in the parameter string is 3/15 (?), the
parameters are interpreted as DEC private parameters, according to
the following table.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Mode
Parameter

Mnemonic

Mode Function

DECCKM
DECCOLM
DECSCLM
DECSCNM.
DECOM
DECAWM
DECARM
DECPFF
DECPEX
DECCEM
DECTEK
DECNRCM
DECVCCM
DECPCCM
DECKBUM
DECLRMM
DECXRLM

Error (ignored)
Cursor Key Mode
Column Mode
Scrolling Mode
Screen Mode
Origin Mode
Autowrap Mode
Autorepeating Mode
Print Form Feed
Pr:nt Extent
Cursor Enable Mode
Tektronix 4010/4014 Mode
National Character set mode
Vertical Coupling
Page Coupling
Keyboard Usage Mode
Left Right Margin Mode
Transmit Rate Limiting

o
1
3
4
5
6

7
8

18
19
25
38
42
61
64
68
69
73

Page 5-134
29-Jun-1990

Any other parameter values are ignored.

5.10.1.3 Modes That Cannot Be Changed - The following modes which
are specified in the ANSI X3.64-1979 standard may be considered to
be permanently set, permanently reset, or not applicable, as
noted. Refer to that standard for further information concerning
these modes.
Mode
Mnemonic
EBM
FEAM
FETM
HEM
MATM
PUM
SATM
SRTM
TSM
VEM

5.10.2

Mode Function

State

Editing Boundary Mode
Format Effector Action Mode
Format Effector Transfer Mode
Horizontal Editing Mode
Multiple Area Transfer Mode
Positioning Unit Mode
Selected Area Transfer Mode
Status Reporting Transfer Mode
Tabulation Stop Mode
Vertical Editing Mode

Reset
Reset
NA
Reset
NA
Reset
NA
Reset
Reset
Reset

Mode Descriptions

The detailed descriptions for many of the modes that use the SM/RM
sequences are included in other parts of this standard (DEC STD

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-135
29-Jun-1990

70) to keep related functions together.

SET/RESET SEND RECEIVE MODE

SRM

Levels:

1-4

Purpose:

To turn the local echo feature ON or OFF

Set Format:
Reset Format:

CSI 12 h
CSI 12 I

(local echo off, default)
(local echo on)

Description: SRM is a parameter applicable to the Set Mode and
Reset Mode control sequences. The reset state causes local echo
to be ON. The set state causes local echo to be OFF.
NOTE
Local echo is temporarily disabled when either or
both of the following conditions are true:
The terminal is in printer controller mode
The terminal is in local mode

State Affected:
send receive mode
/* See Keyboard Processing */
r send receive mode

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-136
29-Jun-1990

Algorithm:
void set send receive_mode()
{
send receive mode = ECHO OFF;
/* remember state in case there are restrictions */
r send receive mode = ECHO OFF;

-

}

void reset send receive_mode()
{
/* remember state in case there are restrictions */
r send receive mode = ECHO ON;
if «printer controller mode != PRINTER_CONTROLLER_ON) &&
(line local mode !=-LOCAL»
send receive mode = ECHO_ON;
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.11

Page 5-137
29-Jun-1990

EDITING FUNCTIONS

This subsection describes the following functions used to edit
data, or control editing in the Logical Display.
IRM - Insert/Replacement Mode
ICH - Insert Character
DCH - Delete Character
IL - Insert Line
DL - Delete Line
DECIC - Insert Column
DECDC - Delete Column
ECH - Erase Character
EL - Erase in Line
DECSEL - Selective Erase in Line
ED - Erase in Display
DEC SED - Selective Erase in Display
Character Attributes (selective erase)
DECSCA - Select Character Attribute

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET INSERT/REPLACEMENT MODE
Levels:

Page 5-138
29-Jun-1990
IRM

lX, 2-4

Purpose: Change the state of Insert/Replacement Mode between
Replace (reset) and Insert (set) graphic characters.
Set Format:
Reset Format:

CSI 4 h
CSI 4 1

Description: A conforming device shall provide the ability to
select whether characters entered into character positions which
already contain data shall overwrite the character at that
position [reset state = replace], or shall be inserted by causing
all data on the line starting at the Active Position to be shifted
one column to the right to accommodate the new character [set
state = insert].
Notes:
1.

The IRM controls are part of the Levell Editing
Extension. This extension is required in all new Levell
implementations. They are required functions in Level 2.

State Affected:

Algorithm:
void set insert replacement mode()
{

-

-

-

insert replacement mode
}
-

=

INSERT;

void reset_insert_replacement_mode()
{

insert replacement mode
}
Known Deviations:

None

=

REPLACE;

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-139
29-Jun-1990

INSERT OR REPLACE GRAPHIC CHARACTER
Levels:

1-4

Purpose: To place a graphic character in the display at the
Active Position.
Format:

implied on receipt of graphic character data

Description:
This procedure is called on receipt of graphic
character data to place the data in the appropriate position in
the display structure. The character code, as well as the values
of the Current Rendition, Current Attribute, and the character set
indicated by the In Use Table (left side if code <= 7/14,
otherwise right side) are stored in the display list.
The Active Position is advanced by one column each time this
operation is performed until it reaches the Right Margin, or the
last column of the Active Line.
If the Active Position is within
the Scroll Area, it will advance to the Right Margin.
If the
Active Position is outside the Scroll Area, it will advance to the
last column of the Active Line.
If Auto Wrap mode is off, the Active Position will not advance
beyond the Right Margin or last column of the Active Line.
Additional graphic characters received will overwrite this
position.
If Auto Wrap Mode is on and the Active Position is within the
vertical Scroll Margins, the Active Position will advance from the
Right Margin or last column of the Active Line, to the Left Margin
of the next line (causing the display to scroll if necessary) when
a graphic character is received and the Last Column Flag is set
(see Auto Wrap Mode, DEC STD 70-D for details) .
If Auto Wrap Mode is on and the Active position is outside the
Vertical Scroll Margins, the Active Position will advance from the
last column of the Active Line, to the first column of the next
line when a graphic character is received and the Last Column Flag
is set (see Auto Wrap Mode, DEC STD 70-D for details). No
scrolling will occur.
Notes:
1.

This operation is affected by the setting of
Insert/Replacement Mode. When this mode is in the reset
state (Replace) the new data will overwrite existing data
at the Active Position. When this mode is in the set
state (Insert) the contents of the active line will be
shifted right one column starting at the Active Position
to accommodate the new data. Data shifted past the Right

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-140
29-Jun-1990

Margin within the Scroll Area, or the last column of the
Active Line outside the Scroll Area is lost.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-position-Algorithm:
void insert or replace character(parv)
short int- parv [] ;
{

column t X;
short int line;
/* actual line in logical display */
short int margin;
/* effective right boundary */
line = (active-position.page * lines~er-page) +
active-position.line;
if (insert replacement mode == INSERT)

{
/* determine right boundary for shifting characters */
if ( (active-position.column <= right_margin) &&
(active-position.line >= bottom_margin) &&
(active-position.line <= top_margin)
&&
(right margin < end of line(line»
margin = right margin;- else
margin = end of line(line);
/* make room for character to be inserted */
for ( x=margin;
X > active-position.column;
x-- )
strncpy( display [line] [x], display [line] [x-1],
sizeof(character_t) );
}

/* put code in the display, strip 8th bit */
display [line] [active-position.column] . code = parv[O] & Ox7F;
display [line] [active-position.column] . rendition =
current rendition;
display[line] [active-position.column] . attribute =
current_attribute;

/* write the character set */
if (single shift == NO SINGLE SHIFT)
{

-

--

if (parv(O] <= 126)
display [line] [active-position.column] . character_set =
in use table.gl;
else -

V8RM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-141
29-Jun-1990

display [line] [active position. column] . character set
in_use_table.gr; -

=

}

else if (single shift == 882)
display [line][active-position. column] . character_set
designated graphic sets[2];
else if (single shift ~= 883)
display[line][active position. column] . character set
designated_graphic=sets[3];
-

=
=

/* advance the active position after entering character */
if (active position.column < margin)
active position. column += 1;
else /*-active position is at effective margin *1
if (auto wrap mode = WRAP ON)
-

{

-

-

if (last column flag)

-

{

-

carriage return();
line feed () ;
last-column flag = FAL8E;
}

-

-

else
last_column_flag

=

TRUE;

}

}

/* end insert_or_replace_character() */

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INSERT CHARACTER

Page 5-142
29-Jun-1990
ICH

Levels:

2-4

Purpose:

Insert empty characters at the Active Position.

Format:

CSI
9/11

Pn
Pn

@
4/0

default Pn: 1

Description:
The ICH control causes empty characters to be
inserted at the Active Position. A parameter value of zero or one
causes a single empty character to be inserted. A parameter value
of n causes n empty characters to be inserted. Data on the Active
Line from the Active Column to the Right Margin is shifted forward
as in character insertion. Characters shifted beyond the Right
Margin are lost.
Notes:
1.

The extent of the display affected by execution of this
control is limited to the Active Line within the left and
right margins. Data which is shifted beyond the Right
Margin is lost.

2.

If the active position is outside the left or right
margin, this control is ignored.

3.

The Active Position is not affected by execution of this
control.

4.

Execution of this control is not affected by the setting
of Insert/Replacement Mode.

State Affected:

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-143
29-Jun-1990

Algorithm:
void insert character(parv)
int parv[MAX_NDM_PARAMETERS];

{
column t X;
short int line;
short int margin;
short int n;

/* actual line in logical display */
/* effective right boundary */

/ * ....................... * /
/* ignore if we're outside the scrolling area */
if
(active-position.line >= bottom~argin) &&
(active-position.line <= top_margin)
&&
(active-position.column >= left_margin) &&
(active_position. column <= right_margin)
)

{

line = (active-position.page * lines-per-page) +
.
active-position.line;
/* determine right boundary for shifting characters */
if (right margin < end of line(line»
margin ~ right margin; else
margin = end_of_line(line);

if (parv[O] == 0) n = 1;
else n = parv[O];
if «active-position.column + n) > margin)
n = margin - active-position.column + 1;
/* make room for characters to be inserted */
for ( x=margin;
X > active-position.column + n;
x-- )
strncpy( display [line] [x], display [line] [x-n],
sizeof(character t) );
for (x=l; x<=n; x++)
{
display [line] [active-position.column+(x-1)] . code =
EMPTY_CHARACTER;

}
}
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05.
Digital Internal Use Only
For Review Only

_
Page 5-144
29-Jun-1990
DCH

DELETE CHARACTER
Levels:

lX, 2-4

Purpose:

Delete characters at the Active Position.

Format:

CSI
9/11

Pn
Pn

P
5/0

default Pn: 1

Description:
The DCH control causes characters to be deleted at
the Active Position. A parameter value of zero or one causes a
single character to be deleted. A parameter value of n causes n
characters to be deleted. Data on the Active Line between the
Active Column and Right Margin is shifted left to close up the
deleted character positions, and empty characters are inserted at
the Right Margin to accommodate the shift.
Notes:
1.

The DCH control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations. It is a required function in Level 2.

2.

The extent of the display affected by execution of this
control is limited to the Active Line within the left and
right margins.

3.

If the Active Position is outside the left or right
margins, this control is ignored.

4.

The Active Position is not affected by execution of this
control.

5.

Execution of this control is not affected by the setting
of Insert/Replacement Mode.

State Affected:

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-145
29-Jun-1990

Algorithm:
void delete character(parv)
int parv[MAX_NUM_PARAMETERS];

{
column t X;
short int line;
short int margin;
short int n;

/* actual line in logical display */
/* effective right boundary */

/ * ....................... * /
/* ignore if we're outside left or right margin */
if ( (active position. column >= left margin) &&
(active-position.column <= right_margin)
)

{

line = (active-position.page * lines_per-page) +
active position. line;
/* determine right boundary for shifting characters */
if (right margin < end of line(line»
margin ~ right margin; else
margin = end_of_line(line);
if (parv[O] == 0) n = 1;
else n = parv[O];
if ((active-position.column + n) > margin)
n = margin - active-position.column + 1;
/* make delete characters */
for ( x=active-position.column;
X <= margin-n;
x++ )
strncpy( display [line] [x], display [line] [x+n] ,
sizeof(character t) );
for (x=l; x<=n; x++)
-

{
display [line] [margin-(x-1)] . code =
EMPTY_CHARACTER;

}
} /* end active position within the left and right margins */
} /* end delete_character() */
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INSERT LINE

Page 5-146
29-Jun-1990
IL

Levels:

lx, 2-4

Purpose:

Insert lines of empty characters at the Active Position.

Format:

CSI
9/11

Pn
Pn

L
4/12

default Pn: 1

Description:
The IL control causes lines of empty characters to
be inserted at the Active Position. A parameter value of zero or
one causes a single line to be inserted. A parameter value of n
causes n lines to be inserted. Data in the display is scrolled
downward to the Bottom Margin from the active line to accommodate
the insertion. Only that portion of the display between the top,
bottom, left, and right margins is affected.
IL is ignored if the
Active Position is outside the Scroll Area.
Notes:
1.

The IL control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations.
It is a required function in Level 2.

2.

The Active Position is set to the Left Margin in the
active line after execution of this control. The active
line does not change.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line rendition[MAX NUM LINES]
active-position
-

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-147
29-Jun-1990

Algorithm:
void insert line(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;

/ * ...................... * /

/* ignore if we're outside the scrolling area */
if ( (active-position.line >= bottom_margin) &&
(active-position.line <= top margin)
&&
(active-position.column >= left margin) &&
(active-position.column <= right_margin)
)
{
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active position.line + n) > bottom margin)
n = (bottom margin - active position. line) + 1;
scroll_down (active-position.line, n);
active-position.column = left_margin;
}
}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DELETE LINE

DL

Levels:

lx, 2-4

Purpose:

Delete lines at the Active Position.

Format:

Page 5-148
29-Jun-1990

CSI
9/11

Pn
Pn

M
4/13

default Pn: 1

Description:
The DL control causes lines of characters to be
deleted at the Active Position. A parameter value of zero or one
causes a single line to be deleted. A parameter value of n causes
n lines to be deleted. Data in the display is scrolled upward
from the Bottom Margin to the active line to accommodate the
deletion. Only that portion of the display between the top,
bottom, left, and right margins is affected. DL is ignored if the
active position is outside the scroll area.
Notes:
1.

The DL control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations.
It is a required function in Level 2.

2.

The Active Position is set to the Left Margin in the
active line after execution of this control. The active
line does not change.

State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
line rendition[MAX NOM LINES] active-position
-

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-149
29-Jun-1990

Algorithm:
void delete line(parv)
short int-parv[MAX_NUM_PARAMETERS];

{
short int n;

/ * ...................... * /

/* ignore if we're outside the scrolling area */
if ( (active-position.line >= bottom margin) &&
(active-position.line <= top margin)
&&
(active-position.column >= left margin) &&
(active-position.column <= right_margin)
)

{

if (parv[O] == 0) n = 1;
else n = parv[O];
if «active-position.line + n) > bottom_margin)
n = (bottom_margin - active-position.line) + 1;
scroll_up (active-position.line, n);
active position. column = left margin;

}

-

-

}
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-150
29-Jun-1990
DECIC

INSERT COLUMN
Level:

4x (Horizontal Scrolling)

Purpose:
Insert columns of empty characters at the Active
Position.
Format:

CSI
9/11

Pn
Pn

}

2/7

default Pn: 1

7/13

Description: The DECIC control causes Pn columns to be inserted
at the active column position. The contents of the display are
shifted to the right from the active column to the right margin.
The inserted columns are set to blank with normal rendition.
Only
that portion of the display between the top, bottom, left, and
right margins is affected. DECIC is ignored if the active
position is outside the Scroll Area.
State Affected:
display[MAX_NUM LINES] [MAX NUM COLUMNS]
Algorithm:
/* routine insert_column(parv) to be supplied */
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-151
29-Jun-1990
DECDC

DELETE COLUMN
Level:

4x (Horizontal Scrolling)

Purpose:
Format:

Delete columns at the Active Position
CSI
9/11

Pn
Pn

default Pn: 1
2/7

7/14

Description: The DECDC control causes Pn columns to be deleted at
the active column position. The contents of the display are
shifted to the left from the right margin to the active column.
Columns containing blank characters with normal rendition are
shifted into the display from the right margin. Only that portion
of the display between the top, bottom, left, and right margins is
affected. DECDC is ignored if the active position is outside the
Scroll Area.
State Affected:
display[MAX_NUM LINES] [MAX NUM COLUMNS]
Algorithm:

/* routine delete_column(parv) to be supplied */
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-152
29-Jun-1990

ERASE CHARACTER

ECH

Levels:

2-4

Purpose:

Erase characters at the Active Position.

Format:

CSI
9/11

Pn
Pn

X
5/8

default Pn: 1

Description:
The ECH control causes the character at the Active
Position and the next n-l characters to be erased and their
attributes set to normal. A parameter value of zero causes a
single character to be erased. No reformatting of data on the
line occurs, and the Active Position does not move.
Notes:
1.

The extent of the display affected by execution of this
control is limited to the Active Line.
If a parameter
value is given which is greater than the distance from
the Active Position to the end of the Active Line, only
character positions up to the end of the Active Line will
be erased. This control is not affected by the margins.

2.

Execution of this control is not affected by the setting
of Insert/Replacement Mode.

State Affected:

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-153
29-Jun-1990

Algorithm:
void erase character(parv)
short int parv[MAX_NUM_PARAMETERS];
{

column t X;
short int line;
short int n;

/* actual line in logical display */

/ * ......... * /

line = active-position.page * lines_per-page +
active-position.line;
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active position.line + n) > end of line(line»
n = (end of line(line) - active position.column) + 1;
for (x=active-position.column;
X <= active-position.column + (n-1);
x++)
{

display [line] [x] . code = EMPTY CHARACTER;
}
}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-154
29-Jun-1990
EL

ERASE IN LINE
Levels:

1-4

Purpose:

Erase character positions within the Active Line.

Format:

CSI
9/11

Ps
Ps

K
4/11

default Ps: 0

Description:
The EL control causes a set of adjacent character
positions in the Active Line to be set to the empty state, that is
the empty character (imaged as SPACE), the empty rendition, and
the empty character attribute. The set of character positions
affected by this control is determined by the parameter value. An
omitted parameter or a value of zero (0) cause the control to
affect character positions from the Active Column to the end of
the Active Line (inclusive). A parameter value of one (1) causes
the control to affect character positions from the beginning of
the Active Line to the Active Column (inclusive). A parameter
value of two (2) causes the control to affect all character
positions in the Active Line (inclusive).
Notes:
1.

The line renditon is not affected by execution of this
control.

2.

The syntax of the EL control is identical to the
Selective Erase in Line (DECSEL) control, except that
DECSEL includes a private parameter specifier?
(3/15).

3.

This control is not affected by the margins.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line_rendition[MAX~UM_LINES] -

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-155
29-Jun-1990

Algorithm:

/*

*

erase in line
both standard and selective erase

*
*/

void erase in line(parc, parv, private)
short int parc;
short int parv[MAX NUM PARAMETERS];
boolean t private;column t X;
short int line;
short int n;

/* actual line in logical display */

/ * ................ * /
if (private)
else

selective erase in_Iine(parc, parv);

{

line = active-position.page
active-position.line;
if (parc == 0) parc = 1;
for (n=O; n= 2)
{
if (parc == 0) parc = 1;
for (n=O; n= LEVEL 2) {
cursor save buffer.right = in use table.gr;
cursor-save-buffer.attribute.selective erase =
current attribute. selective_erase;
}

} /* end save cursor */
Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE CURSOR
Levels:

Page 5-189
29-Jun-1990
DECRC

1-4

Purpose: Restores the previously saved values of the Active
Position and other selective state information.
Format:

ESC
1/11

8
3/8

Description:
In Levell operation, the DECRC control provides a
means of restoring the values of the Active Position, the Current
Rendition, Origin Mode, the currently designated GO, G1, G2, and
G3 sets, and the currently invoked GL set.
In Level 2 or higher it also restores the currently invoked GR
set. The Current Attribute value is also saved if the Level 2
extension for Selectively Erasable Characters is supported.
These
values are the ones which were previously stored using the Save
Cursor (DECSC) control function.
Notes:
1.

The values of the specified state information (see above)
at the time this control is received by the terminal are
lost.

2.

The values stored in the Cursor Save Buffer are not
affected by execution of this control.

3.

If the restored cursor position lies outside of the
scrolling region, and the restored value of Origin Mode
is set, the Active position will be moved to the closest
position within the scrolling region.
That is, if the
restored cursor position is above the Top Margin, the
Active position will be set to the Top Margin, and if the
restored position is below the Bottom Margin, the Active
position will be set to the Bottom Margin.
In either
case, the Active Column will not change, but will remain
as the stored column value. For example: the Active
position is at line 5, column 5 when the cursor is saved,
and Origin Mode is set; the scrolling region is
subsequently changed to 10,15; when the cursor is
restored, the Active position will be moved to line 10,
column 5, to insure that it will lie inside the scrolling
region.
This reason for this recovery is to guarantee
that the Active Position will always be within the bounds
of the scrolling region, and will never have a negative
value.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-190
29-Jun-1990

State Affected:
active position
current rendition
origin mode
in use-table
designated graphic sets[4]
current attribute Algorithm:
void restore_cursor()
{

short int base;
/* first line(-l) of page */
if (cursor_save_buffer.position.page > number_of-pages)
active-position.page = number_of-pages ;
else active-position.page = cursor_save_buffer.position.page;
base = (active-position.page-1) * lines-per_page;
if (cursor save buffer.position.column >
end_of-line(active-position.line + base»
active_position.column = end_of_line(active-position.line +
base);
else
active position.column = cursor save buffer.position.column;
active_position. line = cursor_save_buffer.position.line;
current rendition.bold =
cursor save buffer.rendition.bold;
current rendition. underscore =
cursor save buffer.rendition.underscore;
current rendition.blink =
cursor save buffer.rendition.blink;
current rendition.reverse =
cursor_save_buffer.rendition.reverse;
origin mode = cursor save buffer.origin mode;
if (origin mode == DISPLACED)
{
if (active-position.line < top_margin)
active-position.line = top_margin;
if (active-position.line > bottom_margin)
active-position.line = bottom_margin;
if (active position. column < left margin)
active-position.column = left_margin;
if (active-position.column > right_margin)
active-position.column = right_margin;
}

in use table.gl = cursor save buffer. left;
designated graphic sets[O] = cursor save buffer.gO;
designated-graphic-sets[l] = cursor-save-buffer.gl;
designated graphic-sets [2] = cursor save buffer.g2;

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-191
29-Jun-1990

designated_graphic_sets[3] = cursor_save_buffer.g3;
if (conformance level >= LEVEL 2)
{
in use table.gr = cursor save buffer.right;
if-(level 2 extensions [SELECTIVE ERASE]==TRUE)
current-attribute. selective erase =
cursor_save_buffer. attribute. selective_erase;
}
}

Known Deviations:
In the VT100, VT101, VT102, VT125, VT131, and VT132, if the
restored cursor position lies outside of the scrolling region, and
the restored value of Origin Mode is set, the Active Position will
not be moved into the scrolling region, and an illegal (e.g.,
negative) cursor position value may result.

5.13.2

Terminal State Interrogation

Terminal State Interrogation (TSI) allows a host computer to query
most of the settable state in the terminal. Terminal state is
divided into three general catagories based on the ANSI syntax
used to control it:
(1) modes controlled by
set mode/reset mode; (2) selections and settings such as current
graphic rendition, and scroll margins.
(3) presentation state
such as tab stops and character sets. The terminal provides
control functions to query state in each of these catagories, as
well as a compact report that allows most settable state to be
saved and later restored in one operation.
All TSI controls operate at Levels 2, 3 and 4. Level 3 defines
TSI as an implicit extension at Level 2.
The following control
functions are provided to support Terminal State Interrogation.
DECRQM - Request Mode
Sequence sent from host to terminal to request the state of a
single mode.
DECRPM - Report Mode
Sequence sent from terminal to host to report the state of
the mode requested by DECRQM.
DECNKM - Numeric Keypad Mode
This is a selectable mode sequence which controls the keypad
allowing its state to be reported by DECRPM above.
See
"Keyboard Processing", DEC STD 70-6.
DECRQSS - Request Selection or Setting

VSRM - Character Cell Display EL~00070-05
For Review Only
Digital Internal Use Only

Page 5-192
29-Jun-1990

Sequence sent from host to terminal to request the state of a
selection or setting which is not encoded as a selectable
mode (example:
SGR).
DECRPSS - Report Selection or Setting
Sequence sent from terminal to host to report settings and
selections in response to DECRQSS.
DECRQPSR - Request Presentation State Report
Sequence sent from host to terminal to request presentation
state (cursor information and tab stops)
DECPSR - Presentation State Report
Control string sent from terminal to host in response to
DECRQPSR.
Two presentation state reports are defined:
(1)
Cursor Information Report - DECCIRi (2) Tabulation Stop
Report - DECTABSR
DECRSPS - Restore Presentation State
Control string sent from host to terminal to restore the
presentation state reported by DECPSR.
DECRQTSR - Request Terminal State Report
Sequence sent from host to terminal to request a compact
report of most settable state.
DECTSR - Terminal State Report
Control string sent from terminal to host which reports most
terminal state in one compact sequence.
DECRSTS - Restore Terminal State
Control string sent from host to VT420 to restore the
terminal state reported by DECTSR.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

DECRQM

REQUEST MODE
Levels:

Page 5-193
29-Jun-1990

2x (TSI), 3-4

Purpose:
To request the state of modes controlled by Set
Mode/Reset Mode sequences.
Format:

CSI
CSI
9/11

?
3/15

Ps
Ps
Ps

$

p

$
2/4

p
7/0

(ANSI modes)
(DEC private modes)

Description: This sequence takes one selective parameter
specifying a single selectable mode controllable using the Set
Mode and Reset Mode sequences. The terminal responds with a
Report Mode control sequence (DECRPM) which specifies the state of
the mode as follows:
(0) Unknown (mode is not recognized by
terminal); (1) Set; (2) Reset; (3) Set and cannot be changed; or
(4) Reset and cannot be changed.
All ANSI standard modes defined in X3.64-1979 are reported as
either Set or Reset. DEC Private modes that cannot be set or
reset from the host will report as unknown [Reason: the list is
long and changes frequently.
Since DEC defines these modes,
applications can infer how to handle unknown modes as needed] .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-194
29-Jun-1990

Implementation Guideline
The VT420 allows the following selectable modes to
be queried through the use of the DECRQM control:
ANSI Specified
Mode Parameter
1
2
3
4
5
7
10
11
12
13
14
15
16
17
18
19
20

*

**
***

Mnemonic
GATM

*

KAM

CRM **
IRM
SRTM *
VEM
HEM
PUM
SRM
FEAM
FETM
MATM
TTM
SATM
TSM
EBM
LNM

*
*
*
*
*
*
*
*
*
*

DEC Private
Mode Parameter

Mnemonic

?1
?2
?3
?4
?5
?6
?7
?8

DECCKM
DECANM ***
DECCOLM
DECSCLM
DECSCNM
DECOM
DECAWM
DECARM

?18
?19
?25

DECPFF
DECPEX
DECTCEM

?42
?60
?61
?64
?66
?67
?68
?69
?73

DECNRCM
DECHCCM
DECVCCM
DECPCCM
DECNKM
DECBKM
DECKBUM
DECVSSM
DECXRLM

*

This mode is always Reset in the VT420 and
can not be changed.
The terminal will not respond to a DECRQM sequence
while in Control Representation Mode (this mode can
only report RESET). CRM can not be changed from
the host.
The terminal will not respond to a DECRQM sequence
when not in ANSI mode (this mode can only report SET) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-195
29-Jun-1990

REPORT MODE
Levels:

DECRPM

2x (TSI), 3-4

Purpose:
To report the state of modes controlled by Set
Mode/Reset Mode sequences (terminal to host) .
Format:

CSI
CSI
9/11

?
3/15

Ps1 ; Ps2
PsI ; Ps2
PsI; Ps2

$
$

y

2/4

7/9

Y

(ANSI modes)
(DEC private modes)

Description: This sequence is returned to the host upon receipt
of a valid DECRQM control sequence. This sequence reports the
state of a particular selectable mode to the host.
The first
selective parameter (PsI) is the selectable mode number (the
question mark ("?") must be added for DEC private selectable
modes), that was requested from the DECRQM sequence. The second
selective parameter (Ps2) indicates the state of that mode:
Ps2
0
1
2
3
4

State of mode

-------------

UNKNOWN
Mode is
Mode is
Mode is
Mode is

(mode not recognized by terminal) .
in SET state
in RESET state
in SET state, and cannot change
in RESET state, and cannot change

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-196
29-Jun-1990

REQUEST SELECTION OR SETTING
Levels:

DECRQSS

2x (TSI), 3-4

Purpose:
To request the state of a selection or setting which is
not encoded as a Set Mode/Reset Mode sequence.
Format:

DCS
9/0

$
2/4

q

D •.• D

7/1

D ... D

ST
9/12

Description: Request Selection or Setting is sent to the terminal
to determine the selection or setting of a single device feature,
such as the current Graphic Rendition (SGR). The data of the
device control string for DECRQSS contains the identifying
intermediate and final characters of the control sequence used to
make the selection. For example, if the command is to request the
state of SGR, the data would consist of a single character 'm',
which is the final character (no intermediates) in the control
sequence for SGR.
The terminal responds with a Report Selection
or Setting (DECRPSS) sequence.
Only one setting or selection may be queried per request.
Implementation Guideline
The VT420 allows the state of features selectable
through the following sequences to be determined
through DECRQSS:
Setting Control Sequence

Abbreviation

Select Active Status Display
Select Attribute Change Extent
Set Character Attribute
Set Conformance Level
Set Columns Per Page
Set Lines Per Page
Set Number of Lines per Screen
Set Status Line Type
Set Left and Right Margins
Set Top and Bottom Margins
Set Graphic Rendition

DECSASD
DECSACE
DECSCA
DECSCL
DECSCPP
DECSLPP
DECSNLS
DECSSDT
DECSLRM
DECSTBM
SGR

Final Character(s)

$ }

*

x

" q

" p
$ I
t
* I
$ '"
s
r
m

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
REPORT SELECTION OR SETTING
Levels:

Page 5-197
29-Jun-1990
DECRPSS

2x (TSI), 3-4

Purpose:
To report the state of a selection or setting which is
not encoded as a Set Mode/Reset Mode sequence (terminal to host) .
Format:

DCS
9/0

Ps
Ps

$

r

2/4

7/2

D ••• D
D .•• D

ST
9/12

Description: The Report Selection or Setting device control
string is issued from the terminal in response to a Request
Selection or Setting command.
The value of Ps indicates whether
the Request was successful:
Ps

meaning

o

UNKNOWN selection or setting, request unsuccessful
request successful, data contains selection information

1

The data returned by the DECRPSS control string is the entire
control function that the host would send to the terminal to
select or set the parameter being inquired, based on the current
setting or selection of that parameter, with the single exception
of the leading Control Sequence Introducer character (9/11, or
1/11 5/11 in 7 bits) .
The returned control function will contain no omitted parameters,
even if the inquired value is the default value.
In the case
where there is no default value for the inquired parameter, the
returned control function will be constructed so as to overwrite
the existing setting or selection, if and when that information is
returned to the device.
For example, if the current Graphic Rendition is blinking, and
reversed, the data would consist of the characters '0;5;7m', which
is the parameter string and final character necessary to change
the graphic rendition to that state.
Note that the coding of the DECRPSS control string which indicates
UNKNOWN, is always coded as follows:
DCS

0

$

r

ST

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
REQUEST PRESENTATION STATE REPORT
Levels:

Page 5-198
29-Jun-1990
DECRQPSR

2x (TSI), 3-4

Purpose:
To request presentation state (cursor information and
tab stops).
Format:

CSI Ps
9/i1 Ps

$
2/4

w

7/7

Description:
DECRQPSR causes the terminal to respond with a
Pre$entation State Report (DECPSR).
The control sequence takes
one selective parameter which specifies the type of Presentation
State Report to be returned.
Ps

Type of DECPSR

o

ignored, no report sent
Cursor Information Report
(DECCIR)
Tabulation Stop Report
(DECTABSR)

1
2

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-199
29-Jun-1990

PRESENTATION STATE REPORT
Levels:

DECPSR

2x (TSI), 3-4

Purpose: To report the presentation state (cursor information and
tab stops, terminal to host) .
Format:

DCS
9/0

Ps
Ps

$

u

2/4

7/5

D ••• D
D ••. D

ST
9/12

Description: The Presentation State Report is a device control
string containing data which represents the settings of
presentation attributes in the terminal. A Presentation State
Report is sent in response to a Request Presentation State Report
control sequence (DECRQPSR).
The type of Presenation State Report is specified by the value of
Ps:
Ps
Type of DECPSR

o
1
2

illegal
Cursor Information Report
Tabulation Stop Report

(DECCIR)
(DECTABSR)

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-200
29-Jun-1990
DECCIR

CURSOR INFORMATION REPORT
Levels:

2x (TSI), 3-4

Purpose:

To report the presentation state cursor information

Format:

DCS
9/0

1

3/1

$
2/4

u

D ••• D

7/5

D ... D

ST
9/12

Description:
The data of a device control string for a Cursor
Information Report consists of a string of parameters containing
the information saved through a Save Cursor (DECSC) command,
according to the following format:
Pr ; Pc ; Pp ; Srend ; Satt ; Sflag ; Pgl

Pgr

Scss ; Sdesig

where:
Pr, Pc

The cursor position (example:

24;132)

Pp

The current page (example:
3)
Note that in a single page configuration, the
Pp parameter would be 1.

Srend

One or more bytes containing the encoded
Graphic Renditions that must be saved,
according to the following bit-encoded format:
bit 8: always reset (0)
bit 7: always set (1)
bit 6: extension indicator: if this bit is
set (1), another byte of rendition
information follows (always reset on
VT420) .
bit 5: always reset (0)
bit 4: reverse video rendition
bit 3: blink rendition
bit 2: underline rendition
bit 1: bold rendition
For the actual rendition bits (1 through 5,
above) if the bit is set (1), it indicates
that the rendition has been selected.
Example:
if bold and underline are set the
terminal would report a single byte, coded in
binary as 01000011, or a hex 43, ASCII "C".

Satt

One or more bytes containing the encoded
Character Attributes that must be saved,
according to the following bit-encoded format:

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-201
29-Jun-1990

bit 8: always reset (0)
bit 7: always set (1)
if this bit is
bit 6: extension indicator:
set (1), another byte of character
attribute information follows
(always reset on VT420) .
bit 5: reserved for future use
bit 4: reserved for future use
bit 3: reserved for future use
bit 2 : reserved for future use
bit 1 : selectively erasable attribute
For the actual character attribute bits (1
through 5, above) if the bit is set (1), it
indicates that the character attribute has
been selected. Example:
if the selective
erase attribute is set, the terminal would
report a single byte, coded in binary as
01000001, or a hex 41, ASCII "A".
Sflag

One or more bytes containing several flags and
modes that must be saved, according to the
following bit-encoded format:
bit 8: always reset (0)
bit 7: always set (1)
bit 6: extension indicator:
if this bit is
set (1), another byte of flags follows
(always reset on VT420) .
bit 5: reserved for future use
bit 4: auto-wrap pending (1 if pending)
bit 3: SS3 pending (1 if SS3 received)
bit 2: SS2 pending (1 if SS2 received)
bit 1: origin mode (1 = set 0 = reset)
For the flags above, if the bit is set (1) it
indicates that the mode or state is set (as
indicated). Example:
if origin mode DECOM is
set, auto-wrap is pending, and an SS3 has been
received, the terminal would report a single
byte, coded in binary as 01001101, or a hex
4D, ASCII "M".

Pgl, Pgr

Character G-sets which are currently invoked
into GL and GR.
These parameters are
characters from 0 through 3, depending on
which of GO, G1, G2, or G3 are invoked into GL
and GR, respectively.

Scss

One byte containing the encoded information
regarding the size of the character sets
designated into GO through G3 according to the
following bit-encoded format:

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-202
29-Jun-1990

bit 8 : always reset (0)
bit 7 : always set (1)
bit 6 : extension indicator: if this bit is
set (1) , another byte of character
size information' follows (always
reset on VT420) .
bit 5: reserved for future use
bit 4 : size of G3 set
bit 3 : size of G2 set
bit 2: size of G1 set
bit 1: size of GO set
For the character set size bits (1 through 4,
above) if the bit is set (1), it indicates
that the graphic set contains a 96-character
character set.
If the bit is reset, the
graphic set contains a 94-character character
set. Example:
if ISO Latin Alphabet Nr 1
Supplemental, a 96-character character set is
designated into G2 and G3, and ASCII, a
94-character character set is designated into
GO and G1, the terminal would report a single
byte, coded in binary as 01001100 = hex 4C =
ASCII "L".
Sdesig

A string of bytes which consist of the strings
of designating tails of the character sets
designated into GO, G1, G2, and G3, in that
order. The designating tail consists of the
intermediate and final characters of the
Select Character Set (SCS) designating escape
sequence for the character set.
(Example:
If ASCII were designated into GO,
the Line Drawing (DEC Special Graphics) set
into G1, and the DEC Supplemental Set into G2
and G3, the value of Sdesig would be:
'BO%5%5' )
Note: this string is deliberately placed at
the end of the data of the DECCIR control
string, because the semicolon (;) separator
character used between the previous parameters
is a valid character in a SCS escape sequence.
Note:
This string will report the
Preference Supplemental Set (UPSS)
if that is how a character set was
DECRQUPSS can be used to determine
UPSS if needed.

User
designator
designated.
the actual

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-203
29-Jun-1990

Example

An example DECCIR report, assuming the default
state of the terminal would be:
1$u1;1;1;@;@;@;0;2;@;BB«



indicating that:
"1;1;1" - cursor home on first page
"@;@" - no graphic rendition or character
attribute active; DECOM reset, no SS2, SS3, or
auto-wrap is pending
(ASCII @ is binary 01000000)
"0;2" - GO in GL and G2 in GR
"@" - all character sets designated are
94-character character sets
"BB«" - ASCII in G1 and G2, User Preference
Supplemental Set in G2 and G3

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-204
29-Jun-1990

TABULATION STOP REPORT

DECTABSR

Levels:

2x (TSI), 3-4

Purpose:

To report the presentation state tab stops

Format:

DCS
9/0

2

3/2

$
2/4

u

D ••• D

7/5

D ... D

ST
9/12

Description: The data of a device control string for a Tabulation
Stop Report consists of ' a string of numeric parameters specifying
where tabulation stops are currently set in the terminal,
separated by slash ("/") characters. An example of a DECTABSR
when the terminal has 8 column tabs set would be as follows:
DCS 2 $ u 9 / 17 / 25 / 33 / 41 / 49 / 57 / 65 / 73 ST

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE PRESENTATION STATE
Levels:

Page 5-205
29-Jun-1990
DECRSPS

2x (TSI), 3-4

Purpose: To report previously reported presentation state (cursor
information or tab stops).
Format:

DCS
9/0

Ps
Ps

$

t

D ••• D

2/4

7/4

D ••• D

ST
9/12

Description: This device control string is sent to reset the
terminal to the presentation state described in the data of the
control string. This DCS takes one selective parameter, which
indicates the format of the data of the DCS. The data of the DCS
must be in the format of one of the Presentation State Reports
(DECPSR). The type of DECPSR format that the data consists of is
specified by the selective parameter:
Ps

Type of DECPSR

o

error, restore ignored
Cursor Information Report
(DECCIR)
Tabulation Stop Report
(DECTABSR)

1

2

When this sequence is received by the terminal, the terminal will
begin to change the terminal state according to the state encoded
in the data of the control string.
If an invalid value is detected, the terminal will ignore the
error, if possible, and if not will ignore the remainder of the
data, parsing until a ST control is encountered. This may leave
the terminal state partially unrestored. No error indication is
returned to the host.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
REQUEST TERMINAL STATE REPORT

Page 5-206
29-Jun-1990
DECRQTSR

Levels:

2x (TSI), 3-4

Purpose:

To request a compact report of most settable state.

Format:

CSI
9/11

Ps
Ps

$
2/4

u

7/5

Description: DECRQTSR causes the terminal to issue a Terminal
State Report (DECTSR). Terminal State Reports transmit
information on global state within the terminal.
The type of
DECTSR returned depends on the value of the selective parameter.
Ps

Type of DECTSR

o

ignored, no report sent
Terminal State Report
(DECTSR)

1

If the terminal does not recognize the type of DECTSR requested,
the entire command is ignored.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-207
29-Jun-1990

TERMINAL STATE REPORT (1)
Levels:

DECTSR

2x (TSI) , 3-4

Purpose:
To report most settable terminal state in one compact
sequence.
Format:

DCS 1
9/11 3/1

$

2/4

s
7/3

D ... D
D ... D

ST
9/12

Description: The Terminal State Report is a device control string
containing a collection of terminal device attributes. A Terminal
State Report is sent in response to a Request Terminal State
Report control sequence (DECRQTSR) with Selective Parameter "1".
The data of the device control string for a Terminal State Report
consists of a Sixel encoded, string of a-bit bytes which contains
the the state information for the device.
This string is
guaranteed not to be longer than 256 characters, including the DCS
control character, introducer sequence, and ST control character.
The state information reported is the same as the state
information available through the other discrete TSI controls.
This generally represents all settable state in the terminal with
the exception of large data items that are not practical to report
(the contents of the logical display, DRCS, UDK definitions, and
Macros) .
The format of the data is firmware revision dependent.
Software
should not expect the format to remain the same across firmware
revisions or different members of a terminal family.
The format of DECTSR is: DCS 1 $ s D1 ... Dn   ST
Where Dl ... Dn are data reported
  is a two bytes check sum of Dl ... Dn
(checksum = 2's complement of D1 + D2 + ... + Dn;
8-bit addition with no Carry)
Implementation Guideline:
On the VT420, there are 110 bytes in D1 ... Dn,
system parameters are contained in low nibble of
each byte, and Dl ... Dn are in the range 4/0 to
4/15 (bit 6 of Dn always set, bit 7,5,4 of Dn
always reset).

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE TERMINAL STATE

Page 5-208
29-Jun-1990
DECRSTS

------------------------------------------------------ ------~-----

Levels:

2x (TSI), 3-4

Purpose:

To restore previously reported terminal state (DECTSR).

Format:

DCS
9/0

Ps
Ps

$
2/4

p D ... D
7/0 D ... D

ST
9/12

Description: This device control string is sent to reset the
terminal to the state described in the data of the control string.
This DCS takes one selective parameter, which indicates the format
of the data of the DCS. The data of the DCS must be in the format
of one of the Terminal State Reports (DECTSR). The type of DECTSR
format that the data consists of is specified by the selective
parameter:
Ps

Type of DECTSR

o

illegal, restore ignored
Terminal State Report (DECTSR)

1

When this sequence is received, buffered, and checksummed by the
terminal, the terminal will begin to change the terminal state
according to the state encoded in the data of the control string.
If the checksum fails, the entire sequence is ignored.
If an
invalid value is detected, the terminal will ignore the error if
possible, and if not, ignore the remainder of the data, parsing
until a ST control is encountered. This may leave the terminal in
a partially unrestored state. No error indication is returned to
the host.
Note
Software should not depend on the format of the
Terminal State Report (DECTSR) to be the same
across members of the VT400 family, nor even
across different firmware revisions of a single
terminal model. Software should not use DECRSTS
to restore a terminal to a saved state unless that
state was previously read from the terminal.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14
5.14.1

Page 5-209
29-Jun-1990

INTERNAL FUNCTIONS AND PROCEDURES
End Of Line

/*************

**

*
*

end of line
This function returns the last position of the line
based on its line attributes and column ,mode.

**

assumes line is on the current page

*************/
short int end of line (line)
line t line; {

line_t base;
/* first line(-l) of page */
column t end line;

/* ...... -: .... *7

if (column mode = ONE THIRTY TWO) end line
else end_line = 80; base = (active-position.page-1)
if (line rendition[line + base]
end line /= 2;
return(end line);

}

-

*

=

132;

lines-per-page;

!= SINGLE_WIDTH)

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.2

Page 5-210
29-:Jun-1990

Scroll Up

/****************

**
**

scroll_up
This procedure causes the scroll area between the line

* designated and the Bottom Margin (inclusive) on the
* active page to scroll upward by the number of lines

*

*
*
*
*

designated in the count. Line and Character Rend~tions
are scrolled with the data. A new single-width line with
all character positions empty is inserted at the Bottom Margin.
Lines scrolled off the top of the scrolling region are lost.

******************/

void scroll up(top line, count)
line t top line;line-t count;
{

line t y;
column t X;
line t-base;

/* first line(-l) of page */

/* .... -:- .......... */
base = (active_position.page-1)
while (count > 0)

*

lines-per-page;

{

for (y=top line+base; y-0)

* lines_per_page;

{

for (y=bottom_margin+base; y>top_line+base; y--)
{

line rendition[y] = line rendition[y-1];
for (x=left margin; x<=right margin; x++)
strncpy( display[y] [x], display[y-1] [x],
sizeof(character_t»;
}

line rendition[top line+base] = SINGLE WIDTH;
for (x=left margin; x<=right margin; x++)
display[top line] [x] . code ~ EMPTY CHARACTER;
count -= 1; }

} /* end scroll down */

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.4

Page 5-212
29-Jun-1990

Scroll Left

/****************

**
**
*
*

*
*

*
*

scroll left
This procedure causes the scroll area between the column
designated and the Right Margin (inclusive) on the
active page to scroll leftward by the number of columns
designated in the count. A new column with all character
positions empty is inserted at the Right Margin.
Characters scrolled past the scrolling region are lost.

******************/
void scroll left(left column, count)
column t left column;
column t count;
{

line t Yi
column t X;
line t-basei

/* first line(-l) of page */

/* .... -:-.......... */
base = (active-position.page-l)
while (count > 0)

*

lines per-page;
-

{

for (y=top margin+base; y<=bottom margin+base; y++)
{for (x=left column; x 0)

*

lines-per-page;

{

for (y=top margin+base; y<=bottom margin+base; y++)
{for (x=right margin; x>left column; x--)
strncpy( display[y] [x], display[y] [x-I],
sizeof(character t));
display[y] [left column] . code = EMPTY CHARACTER;
}
count -= 1;
}

} /* end scroll_right */

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.15

Page 5-214
29-Jun-1990

CONTROL FUNCTION REFERENCE TO OTHER CHAPTERS

This subsection lists ANSI control functions that are not
described in this chapter (DEC STD 70-5, Character Cell Display)
and indicates where in the VSRM they are described as a reference
to the rest of ANSI host interface.
Control Function Reference
Terminal Management Functions
DA
- Device Attributes
DECRPTUI
Report Terminal Unit ID
DSR
Device Status Report
DECID
Identify Device
DECSCL
Select Conformance Level
DECSR
- Secure Reset
DECSRC
- Secure Reset Confirmation
DECSTR
-Soft Terminal Reset
DECSTUI - Set Terminal Unit ID (Restricted)
RIS
- Reset to Initial state
Code Extension Functions
Announce Subset of Code Extension Facilities
Locking Shifts: LSO, LS1, LS2, LS3, LS1R, LS2R, LS3R
Single Shifts: SS2, SS3
S7C1T - Select 7-bit Cl Transmission
S8C1T - Select 8-bit Cl Transmission
Keyboard Processing Functions
DECARM
- Autorepeat Mode
DECBKM
- Backarrow Key Mode
DECCKM
- Cursor Keys Mode
DECKBUM - Keyboard Usage Mode
DECKPAM - Keypad Application Mode
DECKPNM - Keypad Numeric Mode
DECNKM
- Numeric Keypad Mode
DSR
- Device Status Report (keyboard status)
KAM
- Keyboard Action Mode
DECLFC
- Local Functions Control
DECLFKC - Local Function Key Control
DECSMKR - Select Modifier Key Reporting
DECKPM
- Key position Mode
DECEKBD - Extended Keyboard Report
Terminal Synchronization
XON
XOFF
BREAK
DECXRLM - Transmit Rate Limiting Mode
Extensions
DRCS
DECDLD - Downline Load
UDK
DECUDK - User Defined Keys

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-215
29-Jun-l990

DSR
- Device status Report (UDK lock)
Session Management Extension
DECES - Enable Sessions
Printer Port
DECPEX - Print Extent Mode
DECPFF - Print Form Feed Mode
DSR
Device Status Report (printer port)
MC
- Media Copy
Status Display
DECSASD - Select Active Status Display
DECSSDT - Select Status Display Type
Documented Exceptions
DECANM - ANSI/VT52 Mode
DECALN - Screen Alignment
DECAWM - Autowrap Mode
DECTST - Invoke Confidence Test
CRM
- Control Representation Mode

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.16

Page 5-216
29-Jun-1990

CHANGE HISTORY

5.16.1

Rev 0.4 To 0.5

The following changes were made at this revision to properly
integrate this section with the rest of the Video Systems
Reference Manual:
1.

The name was changed from "Character Cell Display Level
1" to "Character Cell Display". All references to Level
1 operation only were removed, and explicit reference to
both Levelland Level 2 operation was added for all
functions.

2.

The Reference Standards section was updated.

3.

The Conformance section, the list of conforming products,
and the tables of required functions were removed and
made a separate chapter in the Video SRM ("Conformance
Requirements") .

4.

The program flow diagrams and the executive routines were
moved to the chapter "Specification Program Structure".

5.

The Reset to Initial State control was moved to the
chapter "Terminal Management".

6.

Some variable names were changed to be consistent with
their use throughout the rest of the Video SRM.

7.

The algorithm for Insert or Replace Character was
corrected to include the processing of Single Shift
control functions.

8.

The Set Mode and Reset Mode control functions were moved
to the chapter "Specification Program Structure", and
their detailed implementation was broken out into a
separate section for each mode related to Character Cell
Display operation.

9.

The description of Blink rendition was changed.

10.

A note was added concerning software dependence on the
speed of implementing changes of state in Screen Mode.

11.

The purpose section for Line Feed, Vertical Tab, Form
Feed, Index, Reverse Index, and Next Line was reworded to
indicate scrolling if necessary, and to indicate (where
appropriate) the use of fallback implementation in video
terminals.

12.

The section on Substitute was reworded to remove the
reference to "fallback" character.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-217
29-Jun-1990

13.

The note on software use of Horizontal and Vertical
Position was changed to remove the reference to
retransmission.

14.

A definition was added for the term "Margin".

15.

Beginning of line and end of line conditions were added
to the Erase In Display algorithm.

16.

Clearing of the Last Column Flag was added to the
algorithms for Delete Character and Reset Auto Wrap Mode.

17.

A note was added to the section on slow scrolling to
indicate that it must render text "recognizable", but not
necessarily "readable".

18.

A note was added on conforming software use of Double
Height lines.

19.

A section was added for Character Set Selection, which
was previously a part of the chapter "Code Extension
Layer".

20.

A section was added for the Warning Bell, which was
previously a part of the "Terminal Management" chapter.

21.

A section was added for Text Cursor Enable Mode, which
was previously a part of the "Terminal Management"
chapter.

22.

A section was added for Control Representation Mode,
which is currently planned for Level 2 terminals (subject
to review) .

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.16.2
1.

Page 5-218
29-Jun-1990

Revision 0.5 To AX10
Added the Selectively Erasable Characters extension,
which required the following:
1.

A state description for Character Attributes.

2.

New entries in the state tables.

3.

Addition of the Select Character Attribute (DECSCA)
control function.

4.

Modification of the Erase In Line (EL) and Erase In
Display (ED) control functions.

5.

Addition of the Selective Erase In Line (DECSEL) and
Selective Erase In Display (DECSED) control
functions.

It also required changes to the following routines:
Insert or Replace Graphic Character
Save Cursor
Restore Cursor
2.

Removed Control Representation Mode (CRM) to an appendix
to the SRM.
It will not be invokable from the host.

3.

Added the Erase Character (ECH) and Insert Character
(ICH) control functions.

4.

Added a note to the description of Auto Wrap Mode to
indicate that Space characters also affect the wrap
condition.

5.

Added the following control functions to the list of
functions which clear the Auto Wrap state (Last Column
Flag) :
Erase Character
Insert Character
Erase In Line
Selective Erase In Line
Erase In Display
Selective Erase In Display

6.

Added a note that the Current Attribute is saved in the
Cursor Save Buffer if the Selectively Erasable Characters
extension is supported.

7.

Added values to the Select Graphic Rendition (SGR)
control function for Level 2 to turn off Bold, Blink,

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-219
29-Jun-1990

Underscore, and Reverse renditions.
8.

Made minor corrections to the algorithms for Double Width
and Double Height lines.

9.

Added a note to the Substitute control function referring
to the section "Code Extension Layer" for the handling of
Substitute within escape and control sequences.

10.

Added a deviation note to the Index control function for
the VT100 and VT125 to indicate that in these terminals
the control is affected by the setting of New Line Mode.

11.

Changed the algorithm for Tabulation Clear (TBC) to
process multiple selective parameters.

12.

Made extensive changes to the algorithms for Erase In
Line (EL) and Erase In Display (ED) to provide the
following:
o processing of multiple selective parameters.
o setting of line rendition to single width when all
characters are erased.
o processing of private parameter for selective
erase function.

13.

Corrected the coding of Delete Character (DCH), which is
CSI Pn P.

14.

Added a note on the use of User Preference Features
(modes) which are not to be used by software except in
response to an explicit user request.

15.

Made notes that setting and resetting Column Mode
(DECCOLM) will clear the screen, etc., even if the
terminal was already in the selected state.

16.

Noted that the Warning Bell may be disabled in Setup.

17.

Modified the descriptions of Vertical Tab (VT) and Form
Feed (FF) to point to the Line Feed algorithm.

18.

Made Insert Replacement Mode (IRM), Delete Character
(DCH), Delete Line (DL), and Insert Line (IL) a Levell
Editing Extension, which is required in all future Level
1 implementations, and in Level 2. Removed all VT100
family deviation notes on these functions.

19.

Made Auto Wrap Mode an exception to Levell, and removed
all references to this and the Last Column Flag. Also
removed all VT100 family deviation notes on this
function.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-220
29-Jun-1990

20.

Modified the Save Cursor (DECSC) and Restore Cursor
(DECRC) descriptions to differentiate between Levelland
Level 2 functionality.

21.

Added a character set table to the state descriptions and
modified the algorithms for Designate Character Set to
accommodate redefinition of the designator sequences
using DRCS.

22.

Corrected dual coding in the algorithm for Insert or
Replace Graphic Characters.

23.

Added a note to the Restore Cursor control indicating the
handling of the condition in which the cursor is restored
outside of the scrolling region with Origin Mode set.

24.

Made corrections in the algorithms for Erase Character,
Delete Character, Insert Character, Delete Line, and
Insert Line.

25.

Added a note on the use of the UK character set in Level
1 operation to the section on character set designation.

5.16.3

Rev AX10 To AXIl

1.

Removed Rev AX10 change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

Added note that level 2 SGR parameters may be recognized
when device is operating in level 1 mode, but that
conforming software shall not rely on this feature.

3.

Corrected sense of Selectively Erasable Attribute (set
using DECSCA). The default or attribute off condition is
that characters are selectively erasable.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.16.4

Page 5-221
29-Jun-1990

Rev AXIl To AX12

1.

Removed Rev AXIl change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

Updated Reference Standards section and put at end after
Change History per convention for other chapters.

3.

Added section to Introduction explaining chapter
organization as a number of small sections. Re-organized
entire chapter to group related controls by function
instead of syntax.

4.

Modified all code to operate on the current page.

Terminology Section:
5.

Removed definitions of the following terms which are
defined in the Code Extension section:
Bit Combination
Character
Control Character
Control Function
Control Sequence
Control String
Escape Character (ESC)
Escape Sequence
Final Character
Intermediate Character
Numeric Parameter
Parameter
Parameter String
Selective Parameter

6.

Added definition of Logical Display - the lines and
columns available for storing and presenting graphic
characters as seen by the application or host computer.
A Logical Display may be organized as a single
rectangular array of lines and columns (one page), or
divided into a number of identically sized pages, each of
which is a rectangular array of lines and columns.

7.

Added definition of Page - An addressable area of a
Logical Display organized as a rectangular array of lines
and columns.
The number of lines and columns defines the
Page Size.

8.

Added subsection titled "Code Extension Terms" listing
terms defined in the Code Extension chapter of the VSRM
(DEC STD 70-3) .

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
9.

Page 5-222
29-Jun-1990

Removed the following terms which do not appear in the
text of the chapter:
Introducer; Transfer; Transmission
Control.

10.

Clarified definition of Control Sequence Introducer (CSI)
- The C1 control (represented by a single character in
8-bits, or a two character ESC Fe sequence in 7-bits)
which initiates a control sequence. CSI is a prefix
affecting the interpretation of a limited number of
contiguous bit combinations.
[This should be in the Code
Extension chapter as well, but isn't at this time]

11.

Clarified definition of Default - A function-dependent
value that is assumed when no explicit value, or a value
of 0, is specified.

12.

Clarified definition of Margin - A line which marks the
upper or lower boundary of the scrolling region (vertical
scroll margin). A column which marks the left or right
boundary of the scrolling region (horizontal scroll
margin) .

Display Coordinate System and Addressing
13.

Logical Display: Described concept of Logical Display
and Page Size, default sizes, and ability to change it.

14.

Margins and Scrolling: Re-organized text to combine
syntax and semantics to be easier to follow. Added
section summarizing interaction of controls with
scrolling region. Added list of controls defined in this
section. Added descriptions for: DECSLRM, DECLRMM,
DECFI, DECBI to support left and right margins.

15.

Cursor Movement: Added DECXCPR extended cursor position
report for use at Level 4, or with the Windowing
Extension. Updated algorithms for CUF and CUB to check
right and left margins.

Page Size and Arrangement:
16.

Added description of DECSCPP and DECSLPP to support Level
4, or Windowing Extension.

Page Movement:
17.

New Subsection describing page movement controls for use
at Level 4, or with the Windowing Extension.

Windowing Extension:
18.

Completely new subsection describing Windowing Extension.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-223
29-Jun-1990

Visual Renditions
19.

Added new subsection on ANSI Color Text Extension.
SGR
parameters 31-37, 39, 41-47, 49. Color Maps. DECCTRcolor table report.
Interactions with other visual
attributes. Guidelines for default color assignment.
DECSTGLT - Select Text Graphics Look-Up Table (for
alternate text rendition mapping) .

Graphic Character Sets
20.

Expanded section on Grahic Character sets including which
sets are required at different conformance levels and
extensions. Designating sequences for character sets.
8-bit Interface Architecture Extension. NRCS Extension.

Editing Functions:
21.

Modified description of character insertion to cover
behavior with respect to the margins.

22.

Modified description of ICH, IL, and DL to be restriced
to text within the Left Right Margins.

23.

Added descriptions of DECIC and DECDC to support left and
right margins.

24.

Noted ECH, ELf DECSEL, ED, and DECSED are not affected by
the margins.

OLTP Features
25.

Completely new subsection describing VT420 OLTP features.

Saving and Restoring Terminal State
26.

Terminal State Interrogation:
describing TSI

Completely new subsection

27.

Modified note on DECCIR (Cursor Information Report) to
specify sequence returns UPSS designator if G-set was
designated that way.

Internal Functions and Procedures
28.

Modified routines scroll up and scroll down to operate
within the left and right margins.

29.

Added routines scroll left and scroll_right.

Control Function Reference to Other Chapters

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
30.

Page 5-224
29-Jun-1990

Completely new subsection- listing control functions and
what chapter of the VSRM they are described in.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.17

Page 5-225
29-Jun-1990

REFERENCE STANDARDS

DIGITAL STANDARDS
EL-00138-00

DEC STD 138 Registry of Control
Functions for Character-Imaging Devices

EL-00169-00

DEC STD 169 Digital Standard Coded
Graphic Character Sets for Hardware
and Software

Copies of Digital Standards Can be obtained from Standards and
Methods Control, CTSl-2/D4, DTN 287-3724, JOKUR::SMC
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986

American National Standard Code for
Information Interchange (ASCII character set)

ANSI X3.41 - 1974

American National Standard Code Extension
Techniques for use with the 7-Bit Coded
Character Set of the American National
Standard Code for Information Interchange

ANSI X3.64 - 1979

Additional Controls for use with American
National Standard Code for Information
Interchange

dpANS X3.134.1-1985 8-bit ASCII Structure and Rules
dpANS X3.134.2-1985 7-bit and 8-bit ASCII Supplemental
Multinational Graphic Character Set
ISO 646

7-Bit Coded Character Set
for Information Interchange

ISO 2022:1986

Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques

ISO 6429:1988

Information Processing /
Additional Controls for use with
Character Imaging Devices

ISO 8859-1:1987

Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;

Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-226
29-Jun-1990

Section Index
Active Position, 5-20
definition, 5-9
Alternative Text Rendition
Mapping, 5-113
Application
definition, 5-9
Application Program
definition, 5-9
ASCII, 5-115
Assign User-Preference
Supplemental Set, 5-123
Audible Indicator
definition, 5-10
Audible Indicators, 5-114
Back Index
control function, 5-39
Back Space
control function, 5-63
BEL, 5-114
Bell
definition, 5-10
8-bit Architecture Extension,
5-115
8-bit Multinational Characters,
5-126
7-bit NRCS Characters, 5-126
Blink Rendition, 5-101
Bold Rendition, 5-101
Bottom Margin, 5-25
default value, 5-25
BS, 5-63
Carriage Return
control function, 5-58
Change Attributes Rectangular
Area
control function, 5-173
Character
attribute, 5-165
rendition, 5-101
Character Attribute, 5-165
definition, 5-10
normal, 5-165
selection, 5-166
selectively erasable, 5-165
Character Cell, 5-19
Character Cell Display
definition, 5-6
Character Imaging Device
definition, 5-10

Character Position, 5-19
definition, 5-10
Character Rendition
definition, 5-10
Character Set
designation, 5-117
Character Set Mode, 5-126
Character Set Selection
DECNRCM, 5-126
UPSS, 5-123, 5-125
Character Sets, 5-115
Checksum Report, 5-181
Color Table Report, 5-109
Color Table Request, 5-109
Color Table Restore, 5-109
Color Text Extension, 5-106
Column, 5-19
132-Column Extension, 5-19, 5-71
Column Mode
control function, 5-71
Control Code
back index, 5-39
back space, 5-63
carriage return, 5-58
form feed, 5-62
forward index, 5-37
horizontal tab, 5-67
horizontal tabulation set, 5-69
index, 5-34
line feed, 5-59
next line, 5-64
reverse index, 5-36
substitute, 5-132
vertical tab, 5-61
Control Codes
warning bell, 5-114
Copy Rectangular Area
control function, 5-169
CPR, 5-53
CR, 5-58
CUB, 5-47
CUD, 5-43
CUF, 5-45
CUP, 5-49
Cursor, 5-20
definition, 5-10
Cursor Backward
control function, 5-47
Cursor Control
definition, 5-11
Cursor Down

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
control function, 5-43
Cursor Forward
control function, 5-45
Cursor Information Report, 5-200
Cursor Movement
cursor backward, 5-47
cursor down, 5-43
cursor forward, 5-45
cursor position, 5-49
cursor position report, 5-53
cursor up, 5-41
extended cursor position report,
5-55
horizontal/vertical position,
5-51
Cursor Position
control function, 5-49
Cursor Position Report
control function, 5-53
Cursor Save and Restore
restore cursor, 5-189
save cursor, 5-187
Cursor Save Buffer, 5-186
Cursor Symbol, 5-21
definition, 5-10
Cursor Up
control function, 5-41
CUU, 5-41
DCH, 5-144
DEC STD 169, 5-225
DEC Supplemental, 5-115
DEC Technical, 5-115
DECAUPSS, 5-123
DECBI, 5-39
DECCARA, 5-173
DECCIR, 5-200
DECCKSR, 5-181
DECCOLM, 5-71
DECCRA, 5-169
DECCTR, 5-109
DECDC, 5-151
DECDHLB, 5-99
DECDHLT, 5-99
DECDMAC, 5-182
DECDWL, 5-97
DECERA, 5-171
DECFI, 5-37
DECFRA, 5-170
DECHCCM, 5-85
DECIC, 5-150
DECINVM, 5-184
DECMSR, 5-185
DECNRCM, 5-126
DECOM, 5-29, 5-31

Page Index-1
29-Jun-1990

DECPCCM, 5-87
DECPSR, 5-199
DECRARA, 5-175
DECRC, 5-189
DECRPDE, 5-88
DECRPM, 5-195
DECRPSS, 5-197
DECRQCRA, 5-179
DECRQDE, 5-88
DECRQM, 5-193
DECRQPSR, 5-198
DECRQSS, 5-196
DECRQTSR, 5-206
DECRQUPSS, 5-125
DECRSPS, 5-205
DECRSTS, 5-208
DECSACE, 5-177
DECSC, 5-187
DECSCA, 5-166
DECSCLM, 5-32
DECSCNM, 5-94, 5-107
DECSCPP, 5-73
DECSED, 5-162
DECSEL, 5-159
DECSERA, 5-172
DECSLPP, 5-75
DECSLRM, 5-27
DECSNLS, 5-89
DECSTBM, 5-25
DECSTGLT, 5-113
DECSWL, 5-96
DECTABSR, 5-204
DECTCEM, 5-21
DECTSR, 5-207
DECVCCM, 5-86
DECXCPR, 5-55
Default
definition, 5-11
left and right margins, 5-27
scrolling region, 5-25, 5-27
top and bottom margins, 5-25
default colors, 5-110
Define Macro
control function, 5-182
Delete
character, 5-144
definition, 5-11
line, 5-148
Delete Character
control function, 5-144
Delete Column
control function, 5-151
Delete Line
control function, 5-148
Designate

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
character set, 5-117
definition, 5-11
Designate Character Set
control function, 5-117
Device Status Report
memory checksum, 5-180
Display, 5-19
definition, 5-11
Display Attributes
select character attribute,
5-166
select graphic rendition, 5-103
DL, 5-148
Double Height Line, 5-95
control function, 5-99
Double Width Line, 5-95
control function, 5-97
dpANS X3.134.1-1985, 5-225
DRCS, 5-115
DSR, 5-180
macro space report, 5-185
ECH, 5-152
ED, 5-156
Editor Function
definition, 5-11
EL, 5-154
Empty Character
definition, 5-11
End Of Line
internal function, 5-209
Enter
definition, 5-11
Erase
character, 5-152
definition, 5-11
in display, 5-156
in line, 5-154
(selective) in display, 5~162
(selective) in line, 5-159
Erase Character
control function, 5-152
Erase In Display
control function, 5-156
Erase In Line
control function, 5-154
Erase Rectangular Area
control function, 5-171
Extended Cursor Position Report
control function, 5-55
Extension
Color Text, 5-106
132-Column, 5-19
132-column, 5-19, 5-71
Horizontal Scrolling, 5-23

Page Index-2
29-Jun-1990

Levell, 5-19
Level 2, 5-19
FF, 5-62
Fill Rectangular Area
control function, 5-170
Fixed Space
definition, 5-11
Font
definition, 5-11
Form Feed
control function, 5-62
Format Effector
definition, 5-11
Forward Index
control function, 5-37
G-Sets, 5-118
GO, 5-118
G1, 5-118
G2, 5-118
G3, 5-118
GL, 5-118
GR, 5-118
Graphic Character
definition, 5-12
insertion, 5-139
replacement, 5-139
Graphic Rendition, 5-101
blink, 5-101
bold, 5-101
definition, 5-12
normal, 5-101
reverse, 5-102
selection, 5-103
underscore, 5-102
Graphic Symbol
definition, 5-12
Horizontal Cursor Coupling Mode
control function, 5-85
Horizontal Scrolling
Extension, 5-23
Horizontal Tab
control function, 5-67
Horizontal Tabulation, 5-65
clearing, 5-66
default, 5-65
Horizontal Tabulation Set
control function, 5-69
Horizontal/Vertical Position
control function, 5-51
HT, 5-67
HTS, 5-69
HVP, 5-51

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
ICH, 5-142
IL, 5-146
In Use Table, 5-118
IND, 5-34
Index
control function, 5-34
indexed color, 5-107
Insert
character, 5-142
Insert Character
control function, 5-142
Insert Column
control function, 5-150
Insert Line
control function, 5-146
Insert/Replacement Mode
control function, 5-138
Insertion
character, 5-139
Interfaces
external, 5-8
internal, 5-8
Internal Functions
end of line, 5-209
scroll down, 5-211
scroll left, 5-212
scroll right, 5-213
scroll up, 5-210
Invoke
definition, 5-12
Invoke Macro
control function, 5-184
IRM, 5-138
ISO 8859-1, 5-225
ISO Latin-1 Supplemental, 5-115
Left Margin, 5-27
default value, 5-27
Left Right Margin Mode
control function, 5-29
LF, 5-59
Line, 5-19
definition, 5-12
rendition, 5-95
Line Drawing, 5-115
Line Feed
control function, 5-59
Line Rendition, 5-95
double-height line, 5-99
double-width line, 5-97
single-width line, 5-96
LNM, 5-57
Logical Display, 5-19, 5-70
definition, 5-12

Page Index-3
29-Jun-1990

Macro Space Report, 5-185
DSR, 5-185
Margin
definition, 5-12
Margins, 5-23
Memory Checksum
DSR, 5-180
Modes, 5-133
column, 5-71
definition, 5-12
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
Send-Receive, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
National Replacement Character
Set Mode, 5-126
NEL, 5-64
New Line Mode, 5-57
control function, 5-57
Next Line
control function, 5-64
Next Page
control function, 5-77
Normal Rendition, 5-101
NP, 5-77
NRCS, 5-115
Operating System
definition, 5-12
Origin Mode
control function, 5-31
Page, 5-19
definition, 5-12
Page Arrangement, 5-70
Page Cursor Coupling Mode
control function, 5-87
Page Position Absolute
control function, 5-81
Page position Backward
control function, 5-83
Page Position Relative
control function, 5-82
Page Size, 5-19, 5-70
Pan Down, 5-91
Pan Up, 5-92

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
Preceding Page
control function, 5-79
Presentation State Report, 5-199
Received Data Stream
definition, 5-13
Reference Standards, 5-225
ReGIS, 5-112
Replacement
character, 5-139
Report Displayed Extent, 5-88
Report Mode, 5-195
Report Selection or Setting,
5-197
Request Checksum of Rectangular
Area
control ~unction, 5-179
Request Displayed Extent, 5-88
Request Mode, 5-193
Request Presentation State Report,
5-198
Request Selection or Setting,
5-196
Request Terminal State Report,
5-206
Request User-Preference
Supplemental Set, 5-125
Reset Mode
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
Restore Cursor
control function, 5-189
Restore Presentation State, 5-205
Restore Terminal State, 5-208
Reverse Attribute, 5-112
Reverse Attributes Rectangular
Area
control function, 5-175
Reverse Index
control function, 5-36

Page Index-4
29-Jun-1990

Reverse Rendition, 5-102
RI, 5-36
Right Margin, 5-27
default value, 5-27
Save Cursor
control function, 5-187
Screen Mode
control function, 5-94
Scroll
definition, 5-13
Scroll Down, 5-92
internal function, 5-211
Scroll Left
internal function, 5-212
Scroll Right
internal function, 5-213
Scroll Up, 5-91
internal function, 5-210
Scrolling, 5-23
Scrolling Mode
control function, 5-32
Scrolling Region, 5-23, 5-25,
5-27, 5-31, 5-32
default value, 5-25, 5-27
SD, 5-92
Select Attribute Change Extent
control function, 5-177
Select Character Attribute
control function, 5-166
Select Graphic Rendition
control function, 5-103
Select Number of Lines per Screen,
5-89
Select Text/Graphics Look-Up
Table, 5-113
Selective Erase In Display
control function, 5-162
Selective Erase In Line
control function, 5-159
Selective Erase Rectangular Area
control function, 5-172
Selectively Erasable Characters,
5-165
Send-Receive Mode
control function, 5-135
Service Class
character cell display, 5-6
Set Columns Per Page
control function, 5-73
Set Left and Right Margins
control function, 5-27
Set Lines Per Page
control function, 5-75
Set Mode

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
vertical Cursor Coupling, 5-86
Set Top and Bottom Margins
control function, 5-25
SGR, 5-103, 5-106, 5-107
Single Width Line, 5-95
control function, 5-96
Sixels, 5-112
Software Conformance
designate character sets, 5-118
double-height lines, 5-95, 5-99
horizontal/vertical position,
5-51
new line mode, 5-57
screen mode, 5-94
SRM, 5-135
String Delimiter
definition, 5-13
SU, 5-91
SUB, 5-132
Substitute
control function, 5-132
Tabulation
clearing, 5-66
definition, 5-13
horizontal, 5-65
stop, 5-13
Tabulation Clear, 5-66
control function, 5-66
Tabulation Stop
definition, 5-13
Tabulation Stop Report, 5-204
Tabulation Stops
clearing, 5-66
default, 5-65
horizontal, 5-65
TBC, 5-66
Terminal State Report (1), 5-207
Text Cursor Enable Mode
control function, 5-21
Top Margin, 5-25
default value, 5-25
Transmit

Page Index-5
29-Jun-1990

definition, 5-13
Transmitted Data Stream
definition, 5-13
TSI, 5-109
cursor information report,
5-200
Presentation State Report,
5-199
report mode, 5-195
report selection or setting,
5-197
request Mode, 5-193
request presentation state
report, 5-198
request selection or setting,
5-196
request terminal state report,
5-206
restore presentation state,
5-205
restore terminal state, 5-208
tabulation stop report, 5-204
terminal state report (1),
5-207
UK set, 5-115
Underscore Rendition, 5-102
UPSS, 5-123, 5-125
User-Preference Supplemental Set,
5-123, 5-125
vertical Cursor Coupling Mode
control function, 5-86
vertical Tab
control function, 5-61
VT, 5-61
Warning Bell
control function, 5-114
Windowing Extension
DECHCCM, 5-85
DECPCCM, 5-87
DECRQDE/DECRPDE, 5-88
DECSCPP, 5-73
DECSLPP, 5-75
DECVCCM, 5-86
DECXCPR, 5-55
NP, 5-77
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
SD, 5-92
SU, 5-91

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
Set Top and Bottom Margins
control function, 5-25
SGR, 5-103, 5-106, 5-107
Single Width Line, 5-95
control function, 5-96
Sixels, 5-112
Software Conformance
designate character sets, 5-118
double-height lines, 5-95, 5-99
horizontal/vertical position,
5-51
new line mode, 5-57
screen mode, 5-94
SRM, 5-135
String Delimiter
definition, 5-13
SU, 5-91
SUB, 5-132
Substitute
control function, 5-132
Tabulation
clearing, 5-66
definition, 5-13
horizontal, 5-65
stop, 5-13
Tabulation Clear, 5-66
control function, 5-66
Tabulation Stop
definition, 5-13
Tabulation stop Report, 5-204
Tabulation Stops
clearing, 5-66
default, 5-65
horizontal, 5-65
TBC, 5-66
Terminal State Report (1), 5-207
Text Cursor Enable Mode
control function, 5-21
Top Margin, 5-25
default value, 5-25
Transmit

Page Index-5
29-Jun-1990

definition, 5-13
Transmitted Data Stream
definition, 5-13
TSI, 5-109
cursor information report,
5-200
Presentation State Report,
5-199
report mode, 5-195
report selection or setting,
5-197
request Mode, 5-193
request presentation state
report, 5-198
request selection or setting,
5-196
request terminal state report,
5-206
restore presentation state,
5-205
restore terminal state, 5-208
tabulation stop report, 5-204
terminal state report (1),
5-207
UK set, 5-115
Underscore Rendition, 5-102
UPSS, 5-123, 5-125
User-Preference Supplemental Set,
5-123, 5-125
vertical Cursor Coupling Mode
control function, 5-86
Vertical Tab
control function, 5-61
VT, 5-61
Warning Bell
control function, 5-114
Windowing Extension
DECHCCM, 5-85
DECPCCM, 5-87
DECRQDE/DECRPDE, 5-88
DECSCPP, 5-73
DECSLPP, 5-75
DECVCCM, 5-86
DECXCPR, 5-55
NP, 5-77
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
SD, 5-92
SU, 5-91

EL-00070-06
VSRM -Keyboard processing

19-Apr-1988

Page 6-1
Digital Internal Use Only

DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING
Document Identifier: A-DS-EL00070-06-0 Rev A, 19-Apr-1988

ABSTRACT: This specification describes the interfaces to
terminals using the Digital Standard Keyboard of 1980 (Level 1)
and the corporate standard keyboard (LK201 and future) (Level 2
and Level 3). It specifies both the coding interface between the
application program and the terminal and the human interface
between the terminal user and the keyboard.
Furthermore, the same
coding interface is provided to the application program whether it
is running in a host computer or inside a personal computer or
workstation, thereby achieving transportability of application
programs.
APPLICABILITY: Mandatory for engineers designing hardware for
terminal products and software engineers designing programs using
terminal interfaces. Additional requirements are defined in the
section on "Concepts and Conformance Criteria".
STATUS:

APPROVED 19-Apr-1988; see EL-INDEX-OO for expiration date.

+----------------------------------------------------------------+
I The material contained within this document is assumed to
I
I
I
I
I
I
I
I

define mandatory standards unless it is clearly marked as:
(a) not mandatory, or (b) guidelines. Material which is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques which are considered to be good
practice, but should not be considered as requirements.

I
I
I
I
I
I
I

+----------------------------------------------------------------+
+----------------------------------------+
I The information in this publication is I
I for DIGITAL INTERNAL USE ONLY; do not I
I distribute this information to anyone I
I who is not an employee of Digital.
I

+----------------------------------------+

Digital Internal Use Only

19-Apr-1988

EL-00070-06
VSRM - Keyboard Processing

Page 6-2

TITLE: DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING
DOCUMENT IDENTIFIER: A-DS-EL00070-06-0 Rev A, 19-Apr-1988
REVISION HISTORY: Original
Revision
Revision
Revision
Revision
Revision
Revision

Draft
0.1
0.2
AX01
AX11
AX12
A

FILES: User Documentation

04-Sep-1982
09-Nov-1982
14-Jan-1983
28-Feb-1983
18-Mar-1985
19-Feb-1988
19-Apr-1988

EL070S6.mem

Internal Documentation EL070S6.rno
EL070S6.rnt
EL070S6.rnx
Document Management Category:
Responsible Department:
Responsible Person:
Authors:
SMC Writer:

Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Peter Sichel, Ram Sudama
Patricia Winner

APPROVAL: This document, prepared by the Desktop Systems Group,
has been reviewed and recommended for approval by the
General Review Group for its category for use throughout
Digital.

B ter Conklin, Technical Director,
Desktop Systems Group

Peter Sichel, Desktop Systems Group

£lJu~

Eric Williams, Standards Process Manager
Direct requests for further information to Peter Sichel,
PK03-1/10C, DTN 223-5162, VIDEO::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, CTSl-2/D4, DTN 287-3724, JOKUR::SMC
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.

mDmDomD

m

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Process'ing

19-Apr-1988

Page 6-3

CONTENTS

CHAPTER 6

KEYBOARD PROCESSING

.

6-7
6-7
. 6-8
. . . 6-9
6-12
6-13
6-14

6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6

CONFORMANCE REQUIREMENTS . . . . .
Level 1 Conformance Requirements
Level 2 Conformance Requirements .
Level 3 Conformance Requirements .
Level 1 Operation . . . . . .
Level 2 And Level 3 Operation
Keyboard Character Encoding . . .

6-15
6-16
6-17
6-18
6-19
6-20
6-21

6.3

REFERENCED STANDARDS AND RELATED PUBLICATIONS 6-23

6.4

TERMINOLOGY

6.1
INTRODUCTION . . . . . . . . . . .
Keyboard Overview . . . . . . .
6.1.1
Keyboard Product Classes . . .
6.1.1.1
6.1.1.2
Keyboard Versions And Dialects
6.1. 2
Scope . . . . . . .
Relationship To TIA
6.1. 3
Coding Interface . . . . . . . .
6.1. 4

.
.
.

PHYSICAL KEYBOARD DESCRIPTION
6.5
6.5.1
.Physical Keyboard Map
Keyboard Map By Logical Key Name .
6.5.2
6.5.2.1
Application Function Key Labels
Editing Keypad Labels
6.5.2.2
6.5.2.3
Cursor Keypad Legends
6.5.2.4
Numeric Keypad Legends .
6.5.2.5
Permanent Label Strips .
6.5.3
Recommended Labeling For System Label
Strips . . . . .
. . . . . .
6.6
6.6.1
6.6.2
6.6.3
6.6.3.1
6.6.3.2
6.6.4
6.6.4.1
6.6.4.2
6.6.4.3
6.6.4.4
6.6.5

~DmDDmDTM

KEYBOARD OPERATION AND STATE THAT AFFECTS
USER INTERACTION .
Keyboard Output Silo
Keyboard Action Mode
Set/Reset Keyboard Action Mode
Auto Repeat Mode . . . . . . .
Set/Reset Auto Repeat Mode
Keys Which Do Not Auto Repeat
Auto Repeat Guidelines
Visual Indicators
Hold Screen Indicator
Lock Key Indicator . . . . .
Compose Indicator
Keyboard Lock (Wait) Indicator .
Audible Indicators . . . . . . . .

Digital Internal Use Only

6-25
6-28
6-28
6-30
6-32
6-32
6-33
6-33
6-35
6-36
6-37
6-37
6-38
6-40
6-42
6-43
6-44
6-44
6-44
6-44
6-44
6-45

EL-00070-06
VSRM - Keyboard Processing
6.6.5.1
6.6.5.2
6.6.5.3
6.6.5.3.1

19-Apr-1988

Warning Bell . . . . . . . . . . . .
Margin Bell
. . . . . . . . . . . .
Keyclick . . . . . . . . . . . . . .
Interaction Of Keyclick And Bells

KEYBOARD STATE AND OPERATING MODES THAT
AFFECT KEYBOARD ENCODING . . . . . . . . . .
VT52 And VT100 (Levell) Emulation Mode
6.7.1
VT200 (Level 2) And VT300 (Level 3)
6.7.2
Emulation Mode . . • . . . . . . . . .
C1 Transmission Mode • . . . .
6.7.3
6.7.4
Character Set Mode • . . . . . .
Set/Reset Character Set Mode
Keyboard Usage Mode
6.7.5
Set/Reset Keyboard Usage Mode
Keyboard Dialect . . . . . .
6.7.6
British Pound Sign 
6.7.6.1

Page 6-4

6-45
6-45
6-46
6-47

6.7

6.8
6.8.1
6.8.2

CURSOR KEYS
. . • . .
Cursor Key Mode
. • • • .
Cursor Key Codes . • . . .
Set/Reset Cursor Key Mode

··· · ·· · ·
· · · ·
· · · ·
· · · · · · · ·

NUMERIC KEYPAD KEYS
• . . .
6.9
Keypad Application/Numeric Mode
6.9.1
6.9.1.1
Numeric Keypad Mode
6.9.1.2
Application Keypad Mode
6.9.1.3
Numeric Keypad Key Codes
6.9.2
Enter Key Operation
Set Keypad Application Mode
Set Keypad Numeric Mode
Set/Reset Numeric Keypad Mode

6-48
6-49
6-50
6-50
6-51
6-54
6-58
6-58
6-60
6-60
6-61
6-63
6-63
6-63
6-63
6-64
6-65

6.10

EDITING KEYPAD KEYS

6-69

.6.11

APPLICATION FUNCTION KEYS

6-70

6.12
LOCAL FUNCTION KEYS
. . . . . . . . . . . .
6.12.1
Hold Screen Key Operation
6.12.2
Print Screen Key Operation .
Set-Up Key Operation . . .
6.12.3
Local Function Key F4
. . . .
6.12.4
6.12.4.1
Switch Session Key Operation
6.12.4.2
Data/Talk Key Operation
6.12.4.3
F4 Operation When Not Used For Local
Function ~ . . . . . . . . . .
6.12.5
Break Key Operation . . . .

6-72
6-72
6-73
6-73
6-73
6-73
6-73

MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS
6.13
6.13.1
Control Key Operation . . . .
Shift Key Operation
6.13.2
6.13.3
Lock Key Operation . .
Shift Lock Operation .
6.13.3.1

6-75
6-75
6-77
6-77
6-78

momoomD™

Digital Internal Use Only

6-74
6-74

EL-00070-06
VSRM - Keyboard Processing
6.13.3.2
6.13.4
6.13.5
6.13.5.1
6.13.6
6.13.7
6.13.8
6.13.9

19-Apr-1988

Page 6-5

Caps Lock Operation
SPACE Bar Operation
Return Key Operation . .
New Line Mode
. . . .
.....
Tab Key Operation
. • .
Delete Key Operation .
. . . • •
Compose Key Operation
. • . . . . •
Non-Spacing Diacritical Keys . . . . .

6-78
6-79
6-79
6-79
6-80
6-80
6-80
6-80

MAIN KEY ARRAY - GRAPHIC CHARACTER KEYS
North American Keyboard (LK201-EE US/UK,
LK201-NA, LK201-AA)
.......
British Keyboard (LK201-EE US/UK)
6.14.2
6.14.3
British Keyboard (LK201-AE)
Flemish Keyboard (LK201-AB)
6.14.4
6.14.5
Canadian (French) Keyboard (LK201-AC)
6.14.6
Danish Keyboard (2nd, LK201-ED)
.....
Danish Keyboard (1st, LK201-AD)
. • .
6.14.7
6.14.8
Finnish Keyboard (3rd, LK201-NX) . . .
6.14.9
Finnish Keyboard (2nd, LK201-NF) . . .
6.14.10
Finnish Keyboard (1st, LK201-AF) • . .
6.14.11
Austrian/German Keyboard (2nd, LK201-NG) .
6.14.12
Austrian/German Keyboard (1st, LK201-AG) .
6.14.13
Dutch Keyboard (2nd, LK201-NH) . .
..
6.14.14
Dutch Keyboard (1st, LK201-AH) . .
..
6.14.15
Italian Keyboard (LK201-AI)
..
6.14.16
Swiss (French) Keyboard (LK201-AK) . . . .
6.14.17
·Swiss (German) Keyboard (LK201-AL) . . . .
6.14.18
Swedish Keyboard (2nd, LK201-NM) . . . . .
Swedish Keyboard (1st, LK201-AM) . . . . .
6.14.19
6.14.20
Norwegian Keyboard (2nd, LK201-EN) . . . .
6.14.21
Norwegian Keyboard (1st, LK201-AN) . . . .
6.14.22
Belgian/French Keyboard (LK201-AP).
.
6.14.23
Spanish Keyboard (LK201-AS)
.......
6.14.24
Portuguese Keyboard (LK201-AV)
..
6.14.25
DECmate/WPS Main Key Array
. . ..
6.14.25.1
English WPS- LK201- {PA, PEl .
. .

6-81

6.14
6.14.1

6.15
6.15.1
6.15.2

COMPOSE OPERATION
. . . . .
. .
Compose with The Use Of The COMPOSE Key .
Compose with The Use Of Non-Spacing
Diacritical Marks . . . . . . . . . . . .
6.15.3
Composing Arbitrary 8-bit Characters
(VT330/340 Only, Not Mandatory)
.....
6.15.4
Use Of The COMPOSE Key When A Compose Is
Already In Progress . . . . • . . . . . •
6.15.5
Use Of The DELETE Key When A Compose Is
Already In Progress . . . . . . . . . . .
6.15.6
Keystrokes Which Abort Compose Immediately
6.15.7
Keystrokes Which Do Not Affect Compose
Di rectly .
...... . . . . . . . ·
6.15.8
Order And Case within Compose Sequences
·
6.15.8.1
Order
............ . ·

~D~DDmDTM

Digital Internal Use Only

6-83
6-85
6-87
6-89
6-91
6-93
6-95
6-97
6-99
6-101
6-103
6-105
6-107
6-108
6-110
6-112
6-114
6-116
6-118
6-120
6-122
6-124
6-126
6-128
6-130
6-132
6-134
6-134
6-135
6-136
6-138
6-138
6-139
6-140
6-140
6-140

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-6

6.15.8.2
Case . . . . . . • . . . . • . • . . • .
6.15.9
Composition Conventions . . . . • . . . .
6.15.9.1
Compose Sequence Error Conditions . . .
6.15.9.2
Syntax Of Compose Sequences . • . . . .
6.15.9.2.1
Compose Sequence Processing
•
6.15.10
8-bit Characters Mode Valid Compose
Sequences • • • • • • • • • • • •
••
6.15.10.1
Compose Sequences For Characters Without
Diacritical Marks • • . . . • • • . • •
6.15.10.2
Compose Sequences For Characters With
Diacritical Marks • • • . . • • • . • •
6.15.10.3
Non-Spacing Diacritical Marks By
Keyboard • • • • • . . • • • • • . . • •
6.15.10.4
valid Compose Sequences And The
Supplemental Character Sets
. .
6.15.11
7-bit Characters Mode Valid Compose
Sequences • . • • • • . • • • • • • . • .
6.15.11.1
Typewriter Keys Valid Compose Sequences
By Keyboard (7-bit Characters) • • • • •
6.15.11.2
Typewriter Keys Non-Spacing Diacritical
Marks By Keyboard (7-bit Characters) • •
6.15.11.3
Data Processing Keys Valid Compose
Sequences • • • • • • • • • • . • •
6.15.11.4
Data Processing Keys, Non-Spacing
Diacritical Marks • . • .
. ...

6-140
6-141
6-141
6-143
6-145
6-149
6-149
6-151
6-152
6-154
6-157
6-157
6-167
6-169
6-169

6.16

CONTROL CODES AND KEYSTROKES .

·

6.17

SUMMARY OF MODES . • .

· • 6-172

6.18
6.18.1
6.18.2
6.18.3
6.18.4
6.18.5

CHANGE HISTORY • . . . •
Revision 0.0 To 0.1
Revision 0.1 To 0.2
Revision 0.2 To AX10
Revision AX10 To AXIl
Revision AXIl To AX12

mDmDomD™

Digital Internal Use Only

. 6-170

.
• •••
· .•.
• ••.
· .
· . . •

6"':173
6-173
6-176
6-179
6-181
6-183

EL-00070-06
VSRM - Keyboard Processing
6.1

19-Apr-1988

Page 6-7

INTRODUCTION

6.1.1

Keyboard Overview

The terminal interface described in this specification applies
specifically to handlin~ of the LK201 corporate standard keyboard
and all future corporate standard keyboards.
Logically, the keyboard is part of the terminal; however, it is
physically and electrically packaged separately. This
specification does not specify the interface between the keyboard
and the rest of the terminal. That interface is described in full
in the LK201 Functional Specification.
This specification describes the keyboard layouts for two
different product classes:
1.
2.

LK201- { Ax, Ex, Nx } DEC Standard Keyboard
LK201- { Bx, Fx, Px } DECmatejWPS

The physical layout is the same; only the key legends and the
Permanent Label Strip differ between the product classes.
Keyboards operate in one of two usage modes:
typewriter or data
processing which changes the meaning of a small number of keys as
indicated by dual legends on the key cap. Some keyboards are used
for both typewriter and data processing with the same legends.
Differences b~tween these modes are examined in detail in the
tables of the Main Key Array section.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.1.1.1

19-Apr-1988

Page 6-8

Keyboard Product Classes -

The Digital standard keyboard product class includes the LK201{Ax, Ex, Nx}. The "E" designation, as in LK201- Ex, is used
because letter variations for "Ax" were exhausted. The "Ex"
subfamily consists of upgraded keyboards which have a predecessor
in the "Ax" subfamily and also keyboards which are entirely new
and have no predecessor in the "Ax" subfamily. Examples of the
former are the LK201- ED, LK201- AD Danish Keyboard and the LK201EN, LK201- AN Norwegian Keyboard. Examples of keyboards with no
predecessor in the "Ax" subfamily are the LK201- EH, Greek, and
the LK201- ER Arabic Keyboards.
The LK201- Nx subfamily is for the VT300 series terminals. The
LK201- NA is unique in that it has front legends on the numeric
and editing keypads that other LK201 keyboards do not.
In detail,
the LK201- {NA, NF, NH} are to be used with the VT330/340 series
and the LK201- {NG, NM, NX} are to be used with the VT320 series
terminals.
The DECmate/WPS keyboard product class includes the LK201- {Bx,
Fx, PX}. The "F" designation, as in LK201- Fx, is used because
letter variations for "Bx" were exhausted. TheLK201- Px is used
with the VT300 series terminals.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.1.1.2

19-Apr-1988

Page 6-9

Keyboard Versions And Dialects -

The LK201 is manufactured in a number of versions to accomodate
local language and application specific requirements. These
versions differ only in the labeling of keys and visual
indicators.
To the terminal system all the keyboards will appear
identical. With the exception of the Main Key Array, the codes
transmitted by the terminal for all key positions are the same for
all versions of the keyboard and the only differences are the
languages of the legends and label strips.
Digital terminals support a number of keyboard layouts
corresponding to different keyboard versions. Within the
terminal, these different layouts are actually different mappings
from keystrokes on the main key array to character codes produced,
and are called "Keyboard Dialects".
The terminal user selects the
desired Keyboard Dialect in Set-up, usually corresponding to the
keyboard version.
It is this selection of Keyboard Dialect that
controls the characters produced for a given series of keystrokes,
not the physical keyboard layout. The names of the Keyboard
Dialects are based on the geographical region, country, or
language for which the keyboard is primarily intended.
The following is a list of the Keyboard Dialects and corresponding
keyboard versions or layouts defined within this specification.
Some of the dialects have changed to accomodate more recent
country requirements.
The most recent or recommended variation
within each dialect is listed first.

Digita1 Interna1 Use On1y

EL-00070-06
VSRM - Keyboard Processing
Keyboard Dialect

Version

North American

LK201-EE
LK201-NA

-----=------=-=-

I
I
I
I

Page 6-10

----_.".

LK201-AA

Combined U.S./U.K. (VT320, VT220CR)
Combined U.S./U.K. (VT330/VT340
with local editing legends)
1st u.S. (VT200)

British

LK201-EE
LK201-AE

Combined U.S./U.K.
1st U.K. (VT200)

Flemish (Belgium)

LK201-AB

Same as Belgian/French (LK201-AP)

Canadian (French)

LK201-AC

Danish

LK201-ED
LK201-AD

2nd Danish (VT300)
1st Danish (VT200)

Finnish

LK201-NX
LK201-NF
LK201-AF

3rd Finnish
2nd Finnish
1st Finnish
Same as 1st

Austrian/German

LK201-NG
LK201-AG

2nd Austrian/German (VT300)
1st Austrian/German

Dutch

LK201-NH

2nd Dutch (VT320)
Same as North American (LK201-EE)
1st Dutch

LK201-AH

t

19-Apr-1988

(VT320)
(VT330/VT340)
(VT200)
Swedish (LK201-AM)

Italian

LK201-AI

Swiss (French)

LK201-AK

Swiss (German)

LK201-AL

Swedish

LK201-NM
LK201-AM

2nd Swedish (VT300)
1st Swedish
Same as 1st Finnish (LK201-AF)

Norwegian

LK201-EN
LK201-AN

2nd Norwegian (VT300)
1st Norwegian

Belgian/French

LK201-AP

Same as Flemish (LK201-AB)

Spanish

LK201-AS

Portuguese

LK201-AV

mDmDomD™

Digital Internal Use Only

page 6-11

19-Apr-1988
VSRM - Keyboard processing
Notes:
1.

Many keyboards can be ordered with or without country
power cords (to form "country kits"). The following
keyboard series are generally equivalent:
W/PWR
Cord

Keyboard
Alone

Ax
Bx
Ex

Lx
Mx
Rx

-

This specification uses the keyboard with power cord
designations (most common on video terminals) wherever
possible.
2.

WPS or Gold keyboard layouts add gold legends to the
alpha-numeric layouts above. Gold layouts corr~sponding
to the keyboard versions above, where -Ax is regular, and
-Bx is WPS, are:
-BA
-BD
-BG
-BK
-BN
-PE

mDmoomo

1M

to
to
to
to
to
to

AA, -BB to AB, -BC to AC,

AD,
AG,
AK,
AN,
EE,

-BE
-BH
-BL
-BP
-PA

to
to
to
to
to

AE,
AH,
AL,
AP,
NA.

-BF
-BI
-BM
-BS

to
to
to
to

Digital Internal Use Only

AF,
AI,
AM,
AS,

EL-00070-06
VSRM - Keyboard processing
6.1.2

19-Apr-1988

Page 6-12

Scope

This specification defines the coding interface between terminals
and software application processes and the logical part of the
human interface between the keyboard and the terminal user.
The coding interface is defined to be the hardware or software
interface across which coded control functions and graphic
characters are passed. The same coding interface shall exist:
1.
2.
3.

Between a fixed function terminal and a host computer.
Between a personal computer/workstation simulating a
fixed function terminal and a host computer.
Between a personal computer/workstation and an
application program running inside the personal
computer/workstation.

By making the coding interface the same in the above three
situations, transportability of application programs is possible.
This specification also defines the logical part of the interface
between the keyboard and the terminal user not covered in any
section of DEC STD 107 Digital Standard for Terminal Keyboards and
its revisions, specifically the operation of the Compose key and
Non-Spacing Diacritical keys for all national keyboards.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.1.3

19-Apr-1988

Page 6-13

Relationship To TIA

The Keyboard Processing interface forms a service class of the
Input Processing layer of the Terminal Interface Architecture. It
is backwards compatible at the coding interface with the Level 1
Keyboard previously described in DEC STD 107-0, of which it is a
complete super set.

TERMINAL USER

* * * * * * * * * * * * * * * * * * * * * * * Human interface

I I Keyboard
II
I I Processing I I
__ =_=_=_a.a ___ ===
T

M

e
r
m

a
n
a

i

g

n
a

e
m
e

1

n
t

Input Processing

Presentation
Service Class

-----------------------------------------------

Code Extension
Layer

* * * * * * * * * * * * * * * * * * * * * * * Coding Interface
APPLICATION PROCESS

Structuring of the Terminal Interface Architecture

mDmDomo™

Digital Internal Use Only

19-Apr-1988

EL-00070-06
VSRM - Keyboard Processing
6.1.4

Page 6-14

Coding Interface

The coding interface defined within this specification applies to
both internal and external product interfaces. External
interfaces are interfaces between a terminal, personal computer or
workstation and a remote system. Internal interfaces are
interfaces between a terminal sub-system and software application
processes running within a personal computer or workstation. An
application process consists of the following software components:
terminal driver, operating system, layered application subroutine
package, and the application program. This specification does not
deal with which of these components convert the coded information
to other forms, if any, before it is processed by the application
program.
keyboard

*

**

• terminal system

host system

---------------------------**
physical
terminal

virtual
terminal

I
I application
.............. I process

*. ... .. ... .

*
*

--------------------------*
 *





*

**

EXTERNAL CODING INTERFACE

keyboard
terminal

*
*
system

--------------------------*-------------*
I
* application I
* process
I
*
I
-------------~------------*-------------

firmware> *
physical
terminal

virtual
terminal

** INTERNAL CODING INTERFACE

External and Internal Terminal Coding Interfaces

mDmDDmD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2

19-Apr-1988

Page 6-15

CONFORMANCE REQUIREMENTS

All conforming terminal keyboard implementations will provide at
least two compatibility levels, or modes of operation (part of
terminal conformance level). Levell provides backward
compatibility with previous keyboards designed in conformance with
DEC STD 107 (VT100, LA36, and so on) and provides the 7-bit ASCII
control and graphic characters. Level 2 is a compatible super set
of Levelland provides the a-bit DEC STD 169 Multinational
Character Set, the Edit.ing Keypad,and the Application Function
Keys.
Lever-3 is a compatible super set of Level 2 which offers
more flexible control over the keyboard encoding (ISO Latin
Alphabet Nr. 1, DECKBUM to switch between Typewriter and Data
Processing Mode).
A terminal conforming to Levell shall be able to transmit to a
7-bit host communication port and may optionally provide a local
Set-Up feature to transmit to an a-bit host port (with the 8th bit
always zero). A terminal conforming to Level 2 shall provide a
local Set-Up feature to transmi~ to a 7-bit or 8-bit host
communication port.
A terminal conforming to Level 2 shall be able to switch to Level
1 operation. When a Level 2 terminal is operating in Level 2 mode
and 7-bit host communication port mode, only a subset of Level 2
functionality shall be transmitted.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.1

19-Apr-1988

page 6-16

Level 1 Conformance Requirements

Terminals, workstations, and personal computers conforming to
Level 1:
a.

Shall implement all keys indicated in Level 1 Operation.

b.

Shall neither implement additional keys nor make
operative keys that are not part of Level 1 Operation.

c.

Shall make inoperative all keys that are part of Level 2
operation only.

d.

Shall implement the following control functions for
receipt from software application processes and as a
local Set-up feature:
1.
2.
3.
4.

e.

Auto Repeat Mode (DECARM)
Cursor Key Mode (DECCKM)
Keypad Mode (DECKPAM/DECKPNM)
Line Feed/New Line Mode - see the chapter "Character
Cell Display"

Shall implement the following control function for
receipt from software application processes:
Keyboard Action Mode (KAM)

f.

Shall implement the following local Set-up features:
Caps/Shift Lock Mode as Caps Lock Operation; may
optionally implement a local Set-up feature to change
the mode to Shift Lock Operation.
.
May optionally provide means to switch Host Port
Environment Mode to 8-bits.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.2

19-Apr-1988

Page 6-17

Level 2 Conformance Requirements

Terminals, workstations, and personal computers conforming to
Level 2:
a.

Shall implement all keys indicated in Level 2 Operation.

b.

Shall implement no additional keys.

c.

May implement the 8-bit Architecture Extension.

d.

May implement the NRCS Extension.

e.

Shall implement the following control function for
receipt from a software application process and as local
Set-up features:
All Levell control functions.

f.

Shall implement the following control functions for
receipt from a software application process:
1.
2.

g.

Shall implement the following local Set-up features:
1.
2.

3.
4.

mDmDomD

TM

All Levell functions.
Select Conformance Level (DECSCL) to switch between
Level 1 Operation and Level 2 Operation.

Keyclick Mode.
Caps/Shift Lock Mode. The terminal user shall be
able to set the Caps/Shift Lock Mode to either Caps
Lock Operation or Shift Lock Operation. The factory
default shall be Caps Lock operation.
May optionally implement means to disable the
"warning bell", or "margin bell" indicator as a Level
2 extension.
May optionally implement additional local Set-up
features not specified by the architecture, for
example, volume of bell, volume of keyclick.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.3

19-Apr-1988

Page 6-18

Level 3 Conformance Requirements

All Level 2 conformance requirements plus the following:
a.

Shall implement the 8-bit Architecture Extension.

b.

Shall implement the following control function for
receipt from a software application process and as local
Set-Up features:
Keyboard Usage Mode (DECKBUM) to select between
Typewriter and Data Processing keys.

c.

Shall implement the following control function for
receipt from a software application process:
Select Conformance Level (DECSCL) to switch between
Level 1 Operation, Level 2 Operation, and Level 3
Operation.

d.

mDmDomD

TM

May implement the Keypad Compose mechanism for "Composing
Arbitrary 8-bit Characters" described later in this
document.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.4

19-Apr-1988.

Page 6-19

Levell Operation

For purposes of conformance, inoperative means that the key shall
not transmit anything, and shall not keyclick.
When Level 1 operation is selected, the following restrictions
shall apply:
a.

Only 7-bit ASCII character codes shall be transmitted
with the 8th bit omitted or zero depending on whether the
host port environment is set to 7-bits versus 8-bits
respectively. Keys which would normally produce an 8-bit
code with the 8th bit set shall be inoperative.

b.

The Editing Keypad keys with generic names E1, E2, E3,
E4, ES, and E6 are inoperative.

c.

The Function keys with generic names F6, F7, F8, F9, and
FlO are inoperative.

d.

Function key with generic name F11 shall transmit the ESC
code (1/11).

e.

Function key with generic name F12 shall transmit the BS
code (0/8).

f.

Function key with generic name F13 shall transmit the LF
code· (0/10).

g.

Function keys with generic names F14, F1S, F16, F17, F18,
F19, and F20 are inoperative.

h.

The only valid Compose sequences shall be those which
generate 7-bit ASCII characteI codes. Those sequences
that would produce an 8-bit code with the 8th bit set,
shall not transmit anything, and shall echo the error
bell after the final key stroke of the sequence.

mDmDomD

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.5

19-Apr-1988

Page 6-20

Level 2 And Level 3 Operation

When Level 2 or Level 3 operation is selected and the Host Port
Environment Mode is set to 8-bits, the following conditions shall
apply:
a.

All keyboard keys are live.

b.

The Function keys with generic names FII, F12, and Fl3
transmit their designated control sequences (i.e., ESC,
BS, and LF can only be generated as control character
combinations from the main key array).

c.

All valid 7-bit and 8-bit Compose sequences may be typed
by the terminal user.

d.

No additional Compose sequences for existing or new
characters may be typed by the terminal user.

When Level 2 or Level 3 operation is selected and Host Port
Environment Mode is set to 7-bits, the following conditions shall
apply:

mamDomD

o

Shall make inoperative all explicit or implied compose
sequences that would generate an 8-bit code with the 8th
bit one.

o

Shall transmit all explicit or implied compose sequences
that would generate an 8-bit code with the 8th bit zero.

1M

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.2.6

19-Apr-1988

Page 6-21

Keyboard Character Encoding

In Levell operation the keyboard shall transmit ASCII from GL, no
supplemental characters are available.
In Level 2 operation the keyboard shall transmit ASCII from GL and
the DEC Supplemental Set from GR.
If the Level 2 8-Bit Architecture Extension is supported (refer to
DEC STD 070-3 Code Extension Layer), the keyboard shall transmit
ASCII from GL ana-the User Preference Supplemental Set (UPSS, DEC
Supplemental or ISO Latin-I) from GR (same as Level 3 operation
below).
In Level 3 operation the keyboard shall transmit ASCII fromGL and
the User Preference Supplemental Set (UPSS, DEC Supplemental or
ISO Latin-I) from GR.
Level 3 terminals, and Level 2 terminals with the 8-bit
Architecture Extension, support at least two different 8-bit
multinational character encodings. Level 2 and Level 3 terminals
with the NRCS Extension also support a number of 7-bit country
specific (National) character encodings. At any time, only one of
these character encodings is in use. No character set shift
functions (SO, 51, etc.) will be transmitted as a side effect of
typing a keyboard key (except if ctrl-N or ctrl-O are explicitly
typed). The user can choose one of the following keyboard
encodings vi~ Set-Up:
- DEC Multinational (factory default)
SET-UP: 8-bit Characters, UPSS DEC Multinational
Primary keyboard set is ASCII
Supplemental keyboard set is DEC Supplemental
- ISO Latin Alphabet Nr 1
SET-UP: a-bit Characters, UPSS ISO Latin-l
Primary keyboard set is ASCII
Supplemental keyboard set is ISO Latin-l supplemental
- 7-bit ASCII character set
SET-UP: 7-bit Characters, Data Processing Keys
Primary keyboard set is ASCII
No supplemental characters available
- 7-bit National Replacement Character Set (NRCS)
SET-UP: 7-bit Characters, Typewriter Keys
Primary keyboard set is one of 12 NRCS
No supplemental characters available
The selection of a particular 7-Bit.NRCS is bound to the selection
of the keyboard dialect. See guideline under heading "Keyboard
Dialect".
In 7-bit Characters mode, choosing Data Processing Keys
always uses ASCII as the primary keyboard set.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-22

Deviation Note
Older Level 2 terminals with the NRCS Extension
did not always use ASCII as the primary keyboard
set when Data Processing Keys was selected (prior
to the VT220CR). This use of a 7-bit NRCS other
than ASCII in 7-bit Characters Data Processing
mode has been deprecated.
Explanatory Note
The character set mode, 7-bit/8-bit Characters
corresponds to National/Multinational Mode (NRCS
Extension) on the VT200 but with two
simplifications. 8-bit Characters are temporarily
disabled when in "VT100 mode", or a "7-bit host
line" is selected.
In practice, this means the terminal no longer
supports ASCII with the Typewriter Keys layout
except on the North American Keyboard. This makes
sense. The typewriter layout has no inherent
advantage when using ASCII, it simply has more
dead keys.
Confusing distinctions like VT100
Multinational mode have been eliminated.
The remainder of this specification documents keyboard behavior
with both the 8-bit Architecture and NRCS Extensions.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.3

19-Apr-1988

Page 6-23

REFERENCED STANDARDS AND RELATED PUBLICATIONS

DIGITAL STANDARDS
DEC STD 070-3

Code Extension Layer

DEC STD 070-4

Terminal Management

DEC STD 070-7

Printer Port Extension

DEC STD 070-12

Terminal Synchronization

EL-00107-00

DEC STD 107-0 Digital Standard for Terminal
Keyboards Standard Keyboard Layouts

EL-00138-00

DEC STD 138-0 Registry of Control
Functions for Character-Imaging Devices

EL-00169-00

DEC STD 169-0 Digital Standard Coded
Graphic Character Sets for Hardware
and Software

A-SP-LK200-A-0

LK200 Functional Specification

A-SP-LK201-A-2

LK201 Keyboard Design Specification

Copies of Digital Standards Can be obtained from Standards and
Methods Contral, CTS1-2/D4, DTN 287-3724, JOKUR::SMC
please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986

American National Standard Code for
Information Interchange (ASCII character set)

ANSI X3.41 - 1974

American National Standard Code Extension
Techniques for use with the 7-Bit Coded
Character Set of the American National
Standard Code for Information Interchange

ANSI X3.64 - 1979

Additional Controls for use with American
National Standard Code for Information
Interchange

ANSI X4.23 - 1982

Keyboard Arrangement for Alphanumeric
Machines

ISO 2022-1982

Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard'Processing

19-Apr-1988

Page 6-24

ANSI AND ISO STANDARDS (continued)
ISO 6429-1982

Information Processing /
Additional controls for use with
Character Imaging Devices

ISO 8859-1:1987

Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1

Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.4

19-Apr-1988

Page 6-25

TERMINOLOGY

Application Label strip - A removable label strip associated with
an application software package that runs under control of an
operating system or runs stand-alone.
Application Process - The collection of software consisting of a
terminal driver, an operating system, layered application
subroutiries or packages, and application programs running inside a
personal computer, workstation, or host computer.
Byte - A bit string that is operated on as a unit and whose size
is independent of redundancy or framing techniques. In this
specification, bytes are 7-bit or 8-bit.
Coded Character (or more simply "Character") - The coded
representation of a member of a coded character set used for the
organization, control or representation of data. Note: In ISO
and ANSI standards, the term "character" does not imply coding.
The terms "character" and "coded character" are used
interchangeably in this document. The term "legend" refers to the
unencoded character.
Coding Interface - A software or hardware interface through which
bytes of character-coded information are passed between terminal
equipment and an application process across a host port or between
terminal equipment and a printer across a printer port.
Compose Sequence - A sequence of two or three keys used to input a
single graphic character that may not be available as a single
key.
Control Character - A control function; the coded representation
of which consists of a single byte.
Control Function - An action 'that effects the recording,
processing, transmission, or interpretation of data and that has a
coded representation consisting of one or more bytes.
Non-Spacing Diacritical Key - A key with a diacritical mark as a
key legend that is used as the first key of a two-keystroke
sequence to create an accented letter.
Diacritical Mark - A symbol used in combination with the letters A
through Z or a through z to form an accented letter or umlaut.
Environment - The number of bits (7 or 8) used to transmit or
receive data across a coding interface independent of framing or
parity across a host or printer port.

~DmDDmDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-26

Explicit Compose Sequence - A three-key compose sequence starting
with the Compose key.
Graphic Character - A character, other than a control function,
that has a visual representation normally handwritten, printed, or
displayed.
Host Port - The coding interface between a terminal and an
application process whether the application process is running
inside the terminal or in a host computer.
Implied Compose Sequence - A two-key compose sequence starting
with a Non-Spacing Diacritical key.
Inoperative - A key which does not cause the terminal to take any
action or modify the effect of other keys. An inoperative key
does not transmit any bytes, and does not key click.
Key - The physical part of a keyboard that the terminal user
presses to input control and graphic character information.
Key Legend (or more simply "Legend") - The visual symbol embossed
or engraved on a key.
Key Position 10 - A standard 10 that identifies the physical
position of a key on the keyboard. Note:
taken from ANSI and ISO
keyboard standards. See DEC STD 107 which specifies the physical
interface between keyboard and the rest of the terminal.
Keyboard Dialect - A mapping from keystrokes on the main key array
to character codes produced. A supported keyboard layout
(arrangement of keycap labels) corresponding to a keyboard version
(manufactured model such as LK201-AA). The names of Keyboard
Dialects are based on the geographical region, country, or
language for which the keyboard is primarily intended (example:
North American).
Keyboard Usage Mode - One of "Typewriter" or "Data Processing".
Selects a variation of the keyboard layout intended for office or
data processing use.
Data processing legends appear to the right
of the typewriter legends on those keys where they are different.
Permanent Label Strip - A label strip that is permanently fastened
to the keyboard in manufacturing that labels the top row of keys
on the keyboard (Local Function Keys and Application Function Key
Row) .
Printer Port - The coding interface between a terminal and a
printer.

mDmDomDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-27

Receive - To accept coded character information from an
application process sent to a terminal across the coding
interface.
Removable Label Strip - A removable label strip that labels the
top row of keys on the keyboard (Local Function Keys and
Application Function Keys).
set-up - A mode of operation of the terminal in which the terminal
user communicates directly with the terminal to change certain
operational modes. Note: the human interface for Set-up mode is
beyond the scope of this specification; only the Set-up features
required for conformance are specified along with some optional
ones.
SPACE - A character that is both 1) a graphic character with a
visual representation consisting of the absence of a graphic
symbol and 2) a control character that acts as a format effector
that causes the active position to be advanced one character
position.
System Label Strip - A removable label strip associated with an
operating system.
Terminal User - The human user of the terminal (as distinguished
from an application process or program).
Transmit - To transfer coded character information from a terminal
to an application process across the coding interface.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.5

19-Apr-1988

Page 6-28

PHYSICAL KEYBOARD DESCRIPTION

The keyboard is broken down into six distinct functional, as well
as physical, areas. The rest of the specification is organized
according to these areas.
In the following, the key position IDs
are indicated in parentheses:

6.5.1

1.

The Main Key Array (EOO-E13, DQO-D12, C99-C13,B99-B11,
A99-A09)

2.

The Cursor Keys (B16-B18, C17)

3.

The Numeric Keypad (E20-E23, 020-023, C20-C23, B20-B22,
A20-A23)

4.

The Editing Keypad (E16-E18, 016-018)

5.

The Application Function Keys (G05-G23)

6.

The Local Function Keys (G99-G03)

Physical Keyboard Map

The physical keyboard map provides a means to identify the
physical position of keys independent of the keyboard version or
operating mode. Each key is given a physical Key Position 10.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing

page 6-29·

19-Apr-1988

Keyboard Map by Physical Key Position ID
Left Half - Keyboard Position Map

I GIG I GIG I G I
I 991 001 011 021 031
Local Function Keys

I GIG I GIG I G I
I 051 061 071 081 091

I GIG I GIG I
I 111 121 131 141

•••••• Application Function Key Row •••••

I E I E I E I E I E I E I E I E I E I E I E I E I E I E
I 001 011 021 031 041 051 061 071 081 091 101 111 121 13

I
I

~----------------------------------------------------- ------

I DID I DID I DID I DID I 0 I DID I DID I
I 00 I 011 021 031 041 051 061 071 081 901 101 111 121

----------------------------------------------------------I
I C I C
I C I C I C I C I C I C I C I C I C I C I C I C I
I 991 00

I
I

I

C I
I 011 021 031 041 051 061 071 081 091 101 111 121 131

I B I B I BIB I BIB I BIB I BIB I BIB I B
I 99
I 001 011 021 031 041 051 061 071 081 091 101 11

-----I~i~~~~I~~~~~~::~~~~~e~~~~~~~~~~~~~I----------Main Key Array
Right Half - Keyboard Position Map

I GIG
I 151 16

I GIG I GIG I

_ I 20 I 211 221 231

.•..........•. Application Function Key Row (cont.) ..•.

Editing
Keypad

I E I E I E I
I 161 171 181

I E I E I E I E I
I 201 211 221 231

I DID I D I
I 161 171 181

I DID I DID I
I 201 211 221 231

I C I
I 171

I C I C I C I C I
I 201 211 221 231

-----_ .... _----Cursor
Keypad

I BIB- I B -I
I 161 171 181

I BIB I B I
I 201 211 221

------------1
I
I

mDmDomD™

Digital Internal Use Only

A
20

I
I

I

I A I A I
I 221 231

Numeric
Keypad

EL-00070 ... 06
VSRM - Keyboard Processing·
6.5.2

19-Apr-1988

Page 6-30

Keyboard Map By Logical Key Name

The following maps are provided to relate the des~ription of the
keyboard operations described in this specification to the actual
codes generated at the coding interface. These maps identify
those keys which have explicit names as legends on the key caps or
Permanent Label Strip, and leave the alpha-numeric keys blank.
The blank keys on the main array all have multiple mappings
depending on the Keyboard Dialect and Keyboard Usage Mode. The
names provided in this specification are the English equivalents,
but on the various national keyboards they are translated into
different forms. See DEC STO 107-2 when revised.
On all Permanent Label strips, the legends above the G1S and G16
keys are replaced with the legends for the four LEOs that are
physically located there or are blank for those product classes
that do not actuate ~he LED. The LED legends are Hold Screen,
Lock, Compose, and wait. On all product classes of the keyboard,
the Local Function keys and the Application Function Keys are
blank, except for the G1S and G16 keys. The following keys have
legends that depend on the keyboard product class: G1S, G16, E16,
E17, E18,D16, 017, 018, all numeric keypad keys.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

Page 6-31

19-Apr-1988

Left Half - Keyboard Named Key Map
IHldlPrniSetlF4 IBr-1
I Scr I Scr I-Up I
I eak I

IF6 IF7 IF8 IF9 IFIOI
I
I
I
I
I
I

IFllIF12IF131F141
I ESC I BS I LF I
I

Local Function Keys

.••• Application Function Key Row •••••••
1<-- I
IDeletl

I Tab I
I
I

I

I

I

I

I

I

I

I

I

I

I Ret I
I
I

I

----------------------------------------------------------I
I Ct-I Lock I
I
I
I
I
I
I
I
I
I
I
I
I
I rll

I

I

I

I

I

I

I

I

I

I Shift I
I
I

I

I

I

II

I

I

I Shift I

I
I

I

I

------------------------------------------------------------ICompose I
ICharactl



I
I

Main Key Array
Right Half - Keyboard Named Key Map
I F I F
I 151 16

I F I F I F I F I
I 171 181 191 201

•••••••••••••• Application Function Key Row (cont.) ••••

Editing
Keypad

I Ell E21 E31
I
I
I
I

IPFIPF2IPF31PF41
I
I
I
I
I

I E41 E51 E61
I
I
I
I

I 7 I 8 I 9 I - I
I
I
I
I
I

------------Cursor
Keypad

I
I

A

I
I

1<- I V I ->1
I
I
I
I

I 4 I 5 I 6 I , I
I
I
I
I
I

-----------------

11121 3 I E I
I
I
I
I N I

------------1
I
I

mDmDomD™

Digital Internal Use Only

0

T

I

I· I E I
I
I R I

Numeric
Keypad

EL-00070-06
VSRM - Keyboard Processing
6.5.2.1

19-Apr-1988

Page 6-32

Application Function Key Labels -

The Application Function Keys do not have any legends on them for
any of the keyboard product classes, except for the two keys that
have no corresponding room on the label strip for legends because
of the LED legends.
Application Function Key Legends

-------------------------------Key Id
G15
G16

6.5.2.2

DEC
Standard

DECmate/WPS

Help
Do

Help
Do

Editing Keypad Labels -

The Editing Keypads for the product classes have the following
keycap legends:
Editing Keypad Legends

---------------------Key· Id

DEC
Standard

E16
E17
E18
016
017
018

Find
Insert Here
Remove
Select
Prev Screen
Next Screen

DECmate/WPS
Find
Insert Here
Remove
Select
Prev Screen
Next Screen

Editing Keypad Front Legends

----------------------------

(Used for Local Editing Extension on VT330/VT340)
Key Id
E16
El7
E18
016
017
018

mDmDomD™

LK201- {NA, PAl

---------------

Home
Cursor
Insert/
Overstrike
CLR PAGE
Clr Field
(EDIT)
Prev
Page
Next
Page

Digital Internal Use Only

19-Apr-1988

EL-00070-06
VSRM - Keyboard Processing
6.5.2.3

Cursor Keypad Legends -

The legends for the Cursor Keypad as shown below:
Cursor Keypad Legends

--------------------Key Id
C17
B16
B17
B18

6.5.2.4

Legend





Numeric Keypad Legends -

The legends for the Numeric Keypad are shown below:
Numeric Keypad Legends

---------------------Key Id

mDmDDmD™

DEC
Standard

DECmate/WPS

----------

----------

E20
E21
E22
E23

PF1
PF2
PF3
PF4


page
Del Word
Del Char

020
021
022
023

7
8
9

(minus)

Sent
Tab Pos
Underline
Cut

(comma)

Word
Para
Bold
Paste

-

C20
C21
C22
C23

4
5
6

B20
B21
B22

1
2
3

Back Up
Line
Upper Case

A2P
A22
A23

0

Advance
Sel
Enter <>

,

. (period)
Enter

Digital Internal Use Only

Page 6-33

EL-00070-06
VSRM - Keyboard processing

19-Apr-l988

Page 6-34

Numeric Keypad Front Legends

-------------------==-======
Key Id

LK20l- {NA, PAl

E20

TAB

E2l

Insert
Line
Delete
Line
Delete
Char
(Space)
Transmit

E22
E23
C23
A23

1<----->1

*

* The VT330/VT340 provides a Set-up option which allows C23 to
transmit COMMA or SPACE (not mandatory).
This is not a local
editing feature.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.5.2.5

19-Apr-1988

page 6-35

Permanent Label strips -

The following table describes the legends on the permanent label
strips:
Permanent Label Strips

---------------------Key Id

momDomD™

DEC
Standard

DECmate/WPS

----------

----------

G99
GOO
GOI
G02
G03

FI
F2
F3
F4
F5

Hold Screen
Print Screen
Set-up
F4
Break

G05
G06
G07
G08
G09

F6
F7
F8
F9
FlO

F6
F7
F8
F9
FlO

GIl
G12
G13·
Gl4

FII
Fl2
Fl3
Fl4

FII (ESC)
Fl2 (8S)
Fl3 (LF)
F14

LED:
LED:
LED:
LED:

Hold Screen
Lock
.Compose
wait

Hold Screen
Lock
Compose
wait

G20
G21
G22
G23

Fl7
Fl8
F19
F20

Fl7
Fl8
Fl9
Hyph Push
Hyph Pull

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.5.3

19-Apr-1988

Page 6-36

Recommended Labeling For System Label Strips

The following labeling is recommended as a guideline to product
implementors in designing System Label Strips, but is not required
for conformance:
Key
Id

Legend

G99
GOO
GOl
G02
G03

Hold Screen (or Hold Session)
Print Screen (or Local Print)
Set-up
F4
Break

GOs
G06
G07
G08
G09

Interrupt
Resume
Cancel
Main Screen
Exit

G1l
G12
G13
. G14

F11 (ESC)
F12 (BS)
F13 (LF)
Additional Options

LED:
LED:
LED:
LED:

Hold Screen (or Hold Session)
Lock
Compose
wait

G20
G21
G22
G23

F17
F18
F19
F20

Notes
1.

GOO is labelled "Local Print" on the VT330/VT340 since
these terminals can support two sessions with windows on
the screen at one time. Local Print in this case may
print the logical display (virtual screen) for one
session which is not the same as the physical screen.

2.

G02 (F4) is labelled "Switch Session" on the VT330/VT340.

3.

G02 (F4) is labelled "Data/Talk" on the VT200 series for
use with an integral modem option.

mDmDomD

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6

19-Apr-1988

Page 6-37

KEYBOARD OPERATION AND STATE THAT AFFECTS USER INTERACTION

This section describes those functions and state that pertain to
all keyboard areas and affect user interaction with the keyboard
(but not keyboard encoding). Subsequent sections describe
functions and state that pertain to particular keyboard areas or
modify the cod~s transmitted by keystrokes.
The keyboard is sensitive to the following operating modes that
affect user interaction:
Keyboard Action Mode (KAM): locked or unlocked. When
locked, all but the local function keys F1-FS are
disabled.
Preference modes of Auto Repeat, Keyc1ick, Margin Bell,
and Warning Bell. Choices are Enable, or Disable.

6.6.1

Keyboard Output Silo

The terminal shall maintain a silo for keyboard output.
In the
event that the keyboard produces characters faster than they can
be transmitted by the terminal, the silo shall buffer at least 9
keystrokes. Note that function keys may produce up to five bytes
per keystroke; while alpha-numeric input will produce only one
byte.
For the purpose of buffering, a compose sequence will be
treated as a single keystroke and shall use only one silo
position. Therefore function keys, composed sequences, and
alpha-numeric input will each take one silo position per
occurrence.
(Guideline: the VT320 provides a 25 keystroke silo.)

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6.2

19-Apr-1988

Page 6-38

Keyboard Action Mode

The keyboard shall lock when one of the following conditions
occur:
o

The keyboard output silo is full.

o

Keyboard Action Mode (KAM) is placed in the set state by
execution of a SM (SET MODE) control sequence.

When the keyboard is locked, the Wait indicator is turned on, and
all keyboard keys except F1, F2, F3, F4 and F5, that is, the local
function keys, are disabled.
F5, break, may be disabled by other
means and is unaffected by setting or resetting KAM. Entering
Set-up unlocks the keyboard for the time the terminal is in
Set-up, then upon exiting Set-up the keyboard is locked again,
unless the terminal user had explicitly executed a control
function that unlocks the keyboard.
The keyboard will unlock when one of the following conditions
occur and the keyboard output silo is not full:
1.

The keyboard output silo has been partially emptied
(while KAM is in the reset (unlocked) state).

2.

Keyboard Action Mode (KAM) is placed in the reset state
by execution of a RM (RESET MODE) control sequence.

3.

The SELECT CONFORMANCE LEVEL (DECSCL) control sequence is
executed (any level selected by the parameter).

4.

The RESET TO INITIAL STATE (RIS) control function is
executed.

5.

The power up self-test is executed.

6.

Entering Set-up in Levell.

7.

Executing Clear Comm or Reset Terminal in Set-Up.

8.

The SOFT TERMINAL RESET (DECSTR) control sequence is
executed.

mDmDDmD

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

SET/RESET KEYBOARD ACTION MODE
Levels:

Page 6-39

KAM

1, 2

Purpose:

Lock or unlock the entire keyboard.

Set r,ormat:

Reset Format:

CSI

2

h

9/11

3/2

6/8

CSI

2

1

9/11

3/2

6/12

Description:
The KAM control is used to set or reset the state
of Keyboard Action Mode. When Keyboard Action Mode is reset
(Unlocked), all keys on the keyboard transmit their defined codes
or codes sequences~ When Keyboard Action Mode is set (locked),
the entire keyboard shall not transmit any codes and shall not
keyclick, if enabled, until the state is reset.
State Affected:
KEYBOARD ACTION MODE:

(UNLOCKED,LOCKED);

Algorithm:
PROCEDURE SET_KEYBOARD_ACTION_MODE;
BEGIN
KEYBOARD ACTION MODE:- LOCKED;
END;
PROCEDURE RESET_KEYBOARD_ACTION_MODE;
BEGIN
KEYBOARD ACTION MODE:- UNLOCKED;
END;
Known Deviations:
This control is ignored by the VT100 and VT12S.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6.3

19-Apr-1988

page 6-40

Auto Repeat Mode

The terminal shall provide the ability to select whether the
keyboard keys will automatically transmit codes at a periodic rate
when held down [set state] or will transmit only one code each
time they are depressed [reset state].
Auto-repeat can be disabled or set to a variable rate as a Set-up
feature.
(Note: Provision of variable auto-repeat rates is an
option, and is not required for conformance.) One of the rates
provided shall be 30 keystrokes per second, continuous. Keys
which can auto-repeat will start auto-repeating within ~ second of
the time the initial key depression occurs.
If the control
sequence to turn auto-repeat off (DECARM) is received while an
auto-repeat is in progress, the key will stop auto-repeating.
If
the control sequence to turn auto-repeat on is received when a key
which had previously been auto-repeating is still held down, the
key will immediately auto-repeat without delay.
Except for the
above, the effect of auto-repeating a key shall be the same as
pushing the key a number of times. While any key is auto
repeating, the affect of shift or control apply immediately. No
new "start-up delay" results.
Note
The interval between the time the DECARM control
is received and the time a key which was already
auto--repeating actually stops repeating is
UNDEFINED, and should not be depended upon by
conforming software. For the purpose of testing
complIance with the architecture, auto-repeat must
stop within five seconds of receiving the DECARM
control when the terminal is processing host
output (not blocked by hold screen or alternate
session) .

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

SET/RESET AUTO REPEAT MODE

DECARM

Levels:

1, 2

Purpose:

Turn auto-repeating of keys on and off.

Set Format:

Reset Format:

CSI
9/11

?

CSI
9/11

?

3/15

3/15

Page 6-41

8
3/8

h
6/8

8
3/8

I
6/12

Description:
The DECARM control is used to set or reset the
state of Auto Repeat Mode. When Auto Repeat Mode is reset
(Repeat Off), none of the keyboard keys will auto repeat as a
result of being held down. When Auto Repeat Mode is set
(Repeat On) certain keys will repeat at a fixed rate as a result
of being held down (see description above).
NOTE
Auto Repeat Mode is a User Preference Feature and
should only be used by conforming software in
response to explicit requests of the terminal
user.

State Affected:
AUTO REPEAT MODE: (REPEAT_OFF,REPEAT_ON);
Algorithm:
PROCEDURE SET_AUTO_REPEAT_MODE;
BEGIN
AUTO REPEAT MODE:- REPEAT_ON;
END;
PROCEDURE RESET_AUTO_REPEAT_MODE;
BEGIN
AUTO REPEAT MODE:- REPEAT_OFF;
END;
Known Deviations:

mDmDomo

TM

None

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6.3.1

19-Apr-1988

Page. 6-42

Keys Which Do Not Auto Repeat -

All keys that transmit bytes across the coding interface shall be
auto-repeatable, with the exception of the Return and Escape key.
Only keys that do not t.ransmi timmediately shall not auto-repeat.
The keys that do not auto-repeat are:
1.

Return Key

2.

Escape Key

3.

The Local Function Keys

4.

Control key by itself (control characters auto-repeat)

5.

Shift key by itself (shifted characters auto-repeat)

6.

Lock

7.

Compose

8.

Non-Spacing Diacritical keys

9.

Keys in an explicit or implied compose sequence

momDomo

1M

Digita~

Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6.3.2

19-Apr-1988

Page 6-43

Auto Repeat Guidelines -

In order to give a constant repeat rate at each transmission
speed, the speed of auto repeat is a function of the Host Transmit
Speed. At speeds of 2400 Baud or above, all keys will auto repeat
at 30 keystrokes per second.
The following table is provided as a guideline and is not required
for conformance.
For the purpose of auto repeat, the keyboard is separated into
three groups:
1.
2.
3.

Group A - Main typing array
Group B - Cursor keys and numeric keypad keys
Group C - Top row function keys and editing keys

Ev~ry key in each group will auto repeat at the fixed

rate set by
the transmit speed, regardless of how many codes the key actually
transmits.
Auto Repeat Rates

Host Port
transmit Speed
2400 Baud or above
1200
600
300
150
110
75

Group A

Group B

Group C

30 keys/sec
30
30
30
13
10

30 keys/sec
30
20
10
6
6

30 keys/sec
24
12

6

6

6

6
6
6

These repeat rates assume that an 8-bit character is used, either
8-bit data with no parity, or 7-bit data plus a parity bit. Also
for speeds of 300 baud or above 1 stop bit is assumed, for 150
baud or below, 2 stop bits are assumed. other settings of these
parameters will not change the repeat rate, however selecting
8-bits plus parity and/or 2 stop bits will, in some cases, cause a
slight irregularity in the repeat rate as the keyboard transmit
silo fills up. The "Limited Transmit" feature will not affect
auto repeat rates 7 since all five codes can be transmitted at the
limited speed of 150 characters per second.
In local mode, keys
will auto repeat at 30 keystrokes per second.

mDmnomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.6.4

19-Apr-1988

Page 6-44

Visual Indicators

6.6.4.1

Hold Screen Indicator -

The Hold Screen LED will be lit whenever the screen image (or
display of one or more sessions) is being held.
It will be off
whenever the screen is not being held. When the HOLD SCREEN (HOLD
SESSION) key is pressed the LED shall toggle along with the
function.

6.6.4.2

Lock Key Indicator -

The LOCK LED lights whenever the Shift Lock mode or Caps Lock mode
is in effect. The LED will toggle along with the corresponding
mode.
If a Shift Lock keyboard is selected in Set-up, Shift Lock mode is
turned on by pressing the LOCK key, and turned off by pressing
either the LOCK key or a SHIFT key.
If a Caps Lock keyboard is
selected in Set-Up: Caps Lock mode is toggled on or off by
pressing the LOCK key.

6.6.4.3

Compose Indicator -

The COMPOSE LED is turned on at the start of a compose. A compose
is initiated either by typing the Compose Key or by typing a
non-spacing diacritical mark.
It remains on until one of the
following occurs:
1.

The character has been composed.

2.

An error occurs.

3.

The delete key is pressed.

Errors during compose terminate the compose and turn off the LED.

6.6.4.4

Keyboard Lock (Wait) Indicator -

The Wait LED lights when· the keyboard is locked either because of
data overrun (XOFF synchronization control code received from the
host) or because of receipt of the control sequence which locks
the keyboard (KAM). The LED is off whenever the keyboard is not
locked.
If th~ keyboard is locked during a compose, the compose
is suspended until the keyboard is unlocked or until an action,
such as enter Set-Up, is taken.

Digital Internal Use Only

EL-000~0-06

19-Apr-l988

Page 6-45

VSRM - Keyboard Processing
6.6.5

Audible Indicators

6.6.5.1

Warning Bell -

The Warning Bell will be sounded (if it is enabled in Set-up)
whenever one of the following occur:
a.
b.
c.

A CTRL-G (BEL) is received by the terminal - ring when
the character would have gone to the screen had it been
printable.
When a compose error is made.
When the margin is reached (subject to Set-Up).

Closely spaced bell codes will be sounded individually at a rate
of 4-5 per second. As bell characters arrive, they are stored in
a bell buffer until they can be sounded. The bell buffer will
have 10 entries.
If the bell buffer fills, additional bell
characters will be discarded until there is space in the bell
buffer.
No control function is provided to enable/disable the Warning Bell
from the host. It may be possible to change the volume of the
warning Bell, or disable it entirely, as a local Set-up function
(not mandatory).

6.6.5.2

Marg·in Be11-

The Margin Bell is set to RING ENABLED when the all of the
following conditions are true:
1.
2.

Margin Bell is enabled in Set-Up ("Margin Bell").
A "normal keystroke" is typed (while not in SET~UP mode).
NOTE
In this context, a normal keystroke is any
keystroke which does not generate one of the
following characters as the first character:
ESC, CSI, DCS. A COMPOSE is a "normal keystroke"
(even though it is 2 or 3 keystrokes) since it
results in one displayable character. Examples
of normal keystrokes are "A", "a" and "COMPOSE e
," «e'», and (usually) the UDKs (i.e.
Shift-F6).

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-46

The Margin Bell is rung under the following conditions:
a.
b.

The MARGIN BELL is RING ENABLED.
Any character is printed to the screen which causes the
cursor to move from a column -< (RIGHT MARGIN - 8) to any
column on the same line> (RIGHT MARGIN - 8). Note
horizontal positioning controls do not ring the bell or
affect whether the bell is ring enabled (these characters
are not "printed" to the screen).

The Margin Bell is set to RING DISABLED when:
1.
2.
3.
4.

Margin Bell is disabled in Set-up ("No Margin Bell").
The Margin Bell has been rung.
The cursor moves to a new line.
The terminal is in Set-Up

The MARGIN BELL conditions described above are dynamic.
of this the following might occur:

Because

with the cursor at column RIGHT MARGIN - 8 an 'A' (or any normal
keystroke) is typed, thus setting the MARGIN BELL to RING ENABLED
(assuming that Margin Bell is enabled in Set-Up).
A linefeed is now sent to the screen which will leave the cursor
in column RIGHT MARGIN - 8 but on the next line. This will cause
the the Margin Bell to be set to RING DISABLED.
The 'A' is now sent to the screen causing the cursor to move from
RIGHT MARGIN - 8 to RIGHT MARGIN - 7, but the MARGIN BELL does not
ring because it is RING DISABLED.
Had the 'A' been sent to the screen before the linefeed, the
MARGIN BELL would have rung.
It depends on the status of RING
ENABLED/DISABLED at the instant the other condition for ringing
the Margin Bell is satisfied.
No control function is provided to enable/disable the Margin Bell
from the host.
It may be possible to change the volume of the
Margin Bell, or disable it entirely, as a local Set-up function
(not mandatory).

6.6.5.3

Keyclick-

Keyclick may be enabled or disabled in Set-Up.
If Keyclick is
enabled, the keyboard will "click" once for each depression of a
key.
If a key is auto-repeating, the click will occur once for
each key sent, (that is, once for each alphabetic character and
once for each control sequence from a function· key).
The keyclick
shall be synchronized with the actual keystroke or auto-repeat
rate. All keys which transmit codes or cause the terminal to take
some immediate action click.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-47

set-up, Hold Screen, Lock, and Compose all click since they invoke
immediate actions (Lock and Compose change the input mode). The
Shift key will click if exiting the Shift Lock state, otherwise it
does not click. The Shift (except for the above noted exception)
and the Control keys do not click since these keys do not cause
any immediate action by themselves, but are intended to be pressed
in conjunction with another key.
Keys that form invalid control
combinations do not click. Keys which are inoperative due to
Level 1 operation or because the Host Port Environment Mode is
7-bits also do not click.
No control function is provided to affect the state of keyclick
from the host.
It may be possible to change the volume of the
keyclick sound, or disable it entirely, as a local Set-up function
(not mandatory).

6.6.5.3.1 Interaction Of Keyclick And Bells - If a keyclick and a
bell are generated by the same action, for example typing the
second character in some invalid compose sequences, then either
bell (Warning or Margin) takes precedence over the keyclick, and
the keyclick is not generated.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.7

19-Apr-1988

Page 6-48

KEYBOARD STATE AND OPERATING MODES THAT AFFECT KEYBOARD
ENCODING

The keyboard is sensitive to the following operating modes that
affect what codes are transmitted:
Emulation mode: Primarily affects codes transmitted by
function keys: One of VTS2, VT100 or VT300.
Cl Transmission mode: Affects how Cl controls are.
transmitted. One of "7-bit controls", or "8-bit
controls".
Character Set Mode: Primarily affects keyboard encoding.
Choices are "7-bit Characters", or "8-bit Characters".
User Preference Supplemental Set (UPSS): Determines
keyboard supplemental set when 8-bit characters are
enabled. Also establishes initial supplemental set for
display (defaults to G2 on power-up), and allows one
level of software indirection for designating
supplemental character sets. Choices are "DEC
Supplemental" or "ISO Latin-I".
Keyboard Dialect: Primarily affects keyboard layout by
specifying which country keyboard to use. When 7-bit
Characters and Typewriter mode are in effect, the
Keyboard Dialect also selects the corresponding National
Replacement Character Set.
Keyboard Usage Mode: Primarily affects keyboard layout.
In 7-bit Characters mode, also affects character
encoding. Choices are "Data Processing Keys" or
"Typewriter Keys".
Host line environment: Establishes frame size for
character transmission. May restrict terminal to 7-bit
characters. Choices are "7-bit host line", or "8-bit
host line".
Lock key mode:

One of Caps Lock or Shift Lock.

BackArrow key mode:
mandatory).

One of Delete or Backspace (not

Set-Up feature to disable break. Choices are Break, or
No Break. Disables generating break signal when Break
Key alone is pressed. Does not affect Shift-Break, or
Control-Break.
Set-Up feature to disable Compose key (not mandatory).
Does not disable auto-compose sequences which do not use
the Compose key.
Set-Up feature to remap shifted comma and period to send
< and> (not mandatory).

mDmDomD™

Digita~

Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-49

set-up feature to remap <> key to send ,- (not
manda to ry) .
set-up feature to remap ,- key to send ESC (not
manda to ry) •
Set-up feature to remap KP, (keypad comma) to send SPACE
(not mandatory).
Cursor Key Mode: selects between having the four cursor
(arrow) keys transmit ANSI standard cursor movement
escape sequences, or Application Function Codes. See
"Cursor Keys" section below.
Numeric Keypad Mode: selects between having the
auxiliary keypad keys transmit ASCII decimal digits (3/0
to 3/9) 'Numeric' mode, or application control functions
'Application Mode'. See "Numeric Keypad Keys" section
below.

6.7.1

VTS2 And VT100 (Levell) Emulation Mode

In VTS2 and VT100 Emulation modes, the following restrictions
apply to the keyboard. Keys which are dead are completely ignored
by the terminal. They do not click, transmit any code, or cause
the terminal to perform any action. The keys are referred to by
their names. See the "Named Key Map".
a.

Only 7-bit character codes may be produced. This
restricts DEC Multinational and ISO Latin-1 to their
7-bit ASCII subset.
The six "Edit Keys" E1, E2, E3, E4, ES, and E6 are dead.
Function Keys F6, F7, F8, F9, and FlO are dead.
Function Key F11 will transmit ESC. This key will not
auto-repeat.
Function Key F12 will transmit BS
Function Key F13 will transmit LF
Function Keys F14, F1S, F16, F17, F18, F19, and F20 are
dead.
There will be no eight bit characters generated. Keys
which would normally produce an 8-bit code will be dead
(exception is British pound sign which transmits 10/3 in
8-bits, and shall transmit 2/3 for VT100 compatibility).
Compose will work only to produce 7-bit codes. Any
attempt to compose an 8-bit code will result in the
compose error recovery.
Eight bit control characters (Cl characters) cannot be
generated.

b.
c.
d.
e.
f.
g.
h.

i.
j.

mDmDomD

1M

Digital Internal Use Only

EL-OQ070-06
VSRM - Keyboard Processing
6.7.2

19-Apr-1988

Page 6-50

VT200 (Level 2) And VT300 (Level 3) Emulation Mode

All function keys are live. The Function Keys, including FIl,
F12, and Fl3 all transmit control sequences. ESC, BS, and LF are
not available on Fll, Fl2, and Fl3. BS may be available if
Backspace mode of Backarrow key is selected.
If the host line
environment is 8-bits, the full repertoire of currently selected
character encodings is available.
If the host line environment is
7-bits, there are restrictions:
a.

Functions keys and other 8-bit controls are sent using
ESC Fe sequences instead of CSI sequences, regardless of
the Cl Transmission Mode.
Only the 7-bit ASCII subset of DEC Multinational or ISO
Latin-l may be generated. Keystrokes that would produce
8-bit codes are dead. Compose only works when used to
produce 7-bit'codes.

b.

Local mode operation is never subject to the restrictions of the
7-bit host line environment.

6.7.3

Cl Transmission Mode

This mode selects how Cl controls are transmitted in Level 2 or
Level 3.
"7-bit Controls" forces all function keys and other Cl
controls to be sent in their 7~bit format as ESC Fe sequences.
"a-bit Cont~ols" causes Cl controls to be sent in their a-bit
format (from columns 8 and 9 in the c0ge table) when operating in
Level 2 or Level 3, 8-bit Characters. If the host line
environment is 7-bits, CI controls are restricted to their 7-bit
format regardless of the CI Transmission mode.
The following control functions can also be used to set the Cl
Transmission mode.
S7CIT - Select 7-bit Cl Transmission
ESC 2/0 4/6 (ESC SPF)
S8CIT - Select a-bit Cl Transmission
ESC 2/0 4/7 (ESC SP G)

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.7.4

19-Apr-1988

Page 6-51

Character Set Mode

The Character Set Mode selects between "8-bit Characters" or
"7-bit Characters" for keyboard character encoding.
When 8-bit Characters is selected, the keyboard will transmit
8-bit graphic characters as ASCII from GL and either DEC
Supplemental or ISO Latin-1 supplemental from GR. The use of DEC
Supplemental or ISO Latin-1 supplemental is determined by the User
Preference Supplemental Set (UPSS). Note: If the host line
environment is set to 7-bits, the keyboard is restricted to 7-bit
Characters.
When 7-bit Characters is selected, the keyboard shall only
generate 7-bit characters. All attempts to generate 8-bit codes
when in 7-bits (such as COMPOSE sequences) will fail.
The
keyboard character set is determined by the Keyboard Usage Mode
(Typewriter or Data Processing), and Keyboard Dialect. See below.
Explanatory Note
The character set mode, 7-bit/8-bit Characters
corresponds to National/Multinational Mode on the
VT200 but with two simplifications. a-bit
Characters are temporarily disabled when in "vT100
mode", or a "7-bit host line" is selected.
In
practice, this means the terminal no longer
suppo~ts ASCII with the Typewriter Keys layout
except on the North American Keyboard.
This makes
sense. The typewriter layout has no inherent
advantage when using ASCII, it simply has more
dead keys. Confusing distinctions like VT100
Multinational mode have been eliminated.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-52

SET/RESET CHARACTER SET MODE

DECNRCM

Levels:

2x, 3x

Purpose:

Select 7-bit or 8-bit Characters for keyboard encoding

Set Format:

Reset Format:

CSI
9/11

3/15

CSI
9/11

3/15

?

?

4
3/4

2
3/2

h
6/8

(7-bit Characters)
(National)

4
3/4

2
3/2

1

(8-bit Characters)
(Multinational)

6/12

Description: The DECNRCM control is used to select between 7-bit
or 8-bit Character sets for keyboard encoding. Note: Setting
this mode has the side effect of resetting the display character
sets to their default state, i.e.
the state at power-on or reset.
State Affected:
CHARACTER SET MODE:
(EIGHT BITS, SEVEN BITS);
R CHARACTER SET MODE: (EIGHT-BITS, SEVEN-BITS);
(* used to keep track of character set-mode
when a restrictive condition (7-bit Host Lirie,
or VT100 mode) is in effect. *)
IN USE TABLE
DESIGNATED GRAPHIC SETS
Algorithm:

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

PROCEDURE SET_CHARACTER_SET_MODE;
BEGIN
CHARACTER SET MODE:= SEVEN BITS;
(* keep track-of mode if there are restrictions in effect *)
R CHARACTER SET MODE:- SEVEN BITS;
IF KEYBOARD-USAGE MODE - TYPEWRITER THEN
BEGIN
IN USE TABLE.GL:a NRCS LIST[KEYBOARD DIALECT];
IN-USE-TABLE.GR:= NRCS-LIST[KEYBOARD-DIALECT];;
DESIGNATED GRAPHIC SETS[GO]:- NRCS LIST[KEYBOARD DIALECT];
DESIGNATED-GRAPHIC-SETS[G1]:= NRCS-LIST[KEYBOARD-DIALECT];
DESIGNATED-GRAPHIC-SETS[G2]:- NRCS-LIST[KEYBOARD-DIALECT];
DESIGNATED-GRAPHIC-SETS[G3]:= NRCS-LIST[KEYBOARD-DIALECT];
END;
ELSE
(* keyboard usage mode is Data Processing *)
BEGIN
IN_USE_TABLE.GL:= ASCII_G;
IN USE TABLE.GR:= ASCII G:
DESIGNATED GRAPHIC SETSTGO]:= ASCII G;
DESIGNATED-GRAPHIC-SETS[G1]:= ASCII-G;
DESIGNATED=GRAPHI()ETS[G2]:= ASCII=G;

mDmDomD™ _

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-53

DESIGNATED_GRAPHIC_SETS[G3):= ASCII_G;
END;
END;
PROCEDURE RESET_CHARACTER_SET_MODE;
BEGIN
CASE CONFORMANCE LEVEL OF
(* keep track of-mode if there are restrictions in effect *)
R CHARACTER SET MODE:- EIGHT BITS;
(* ignore if 7-bit host line-or VT100 mode *)
IF (ENVIRONMENT TYPE <> SEVEN BITS) AND
(CONFORMANCE-LEVEL <> LEVEL 1) THEN
BEGIN
CHARACTER SET MODE:= EIGHT BITS;
IN USE TABLE.GL:= ASCII G;IN-USE-TABLE.GR:= UPSS G;
DESIGNATED GRAPHIC SETS[GO):- ASCII G;
DESIGNATED-GRAPHIC-SETS[G1):- ASCII-G;
DESIGNATED-GRAPHIC-SETS[G2):- UPSS G;
DESIGNATED-GRAPHIC-SETS[G3):- ~PSS=G;
END;
END;
Known Deviations:

mDmDomD

TM

None

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard
6.7.5

19-Apr-1988

Page 6-54

proc~ssing

Keyboard Usage .Mode

Each version of the keyboard is oriented toward a particular
language and/or country. The North American version, for example,
has all 94 characters of ASCII on separate keys. Therefore,
compose sequences are not needed to transmit ASCII characters,
only to transmit Supplemental characters. Many of the keyboards
have one or more keys which generate different characters
depending on whether the keyboard is set to Data Processing mode
or Typewriter mode (for data processing versus office use). The
data processing legends appear to the right of the typewriter
legends, if different. When in Data Processing mode, these keys
generate the character codes for the data processing legends.
When in Typewriter mode, these keys ~enerate character codes for
their typewriter legends.
When the terminal is in 7-bit Characters Mode, selecting Data
Processing Keys also selects the ASCII character set instead of
the National Replacement Character Set (NRCS) corresponding to the
Keyboard Dialect, as would be the case if Typewriter keys were
selected.
The keyboard usage mode is selectable from Set-up, or by host
control function (DECKBUM) in Level 3.
The tables later in this section list all the keys and characters
produced for each mode. The following list summarizes the Data
Processing ch"aracters by key posi tion for each country keyboard.
The most recent or recommended variation for each dialect is
listed first. Note this list applies to the Keyboard Dialect
(keyboard mapping tables) chosen in Set-Up, not the physical
keyboards.
1.

North American - none

2.

British (LK20l-EE US/UK)
E03 has "i"

3.

British (LK20l-AE)
E03 has "i"
Dll has "\."

4.

Flemish (Belgium)
E06 has II [ II
E07 has " ] "
Cll has "\."

5.

Canadian (French)
Dll has II ] II and "["

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

6.

Danish (2nd, LK201-EO)
EOa has "@"
E03 has "i"
011 has "}" and "]"
e1a has "{" and "["
ell has "1" and "\"

7.

Danish (1st, LK201-AO)
E03 has "@"
011 has "]" and "["
ell has "i" and "\"

8.

Finnish
E03 has
011 has
012 has
e1a has
ell has

19-Apr-1988 .

page 6-55

(3rd, LK201-NX)

"i"
"}"
,,-It
"I"
"{"

and " ] "
and "All
and "\"
and II [ "

9.

Finnish (2nd, LK201-NF)
E03 has "@"
011 has II ] II and II [ II
012 has "i" and "\"

10.

Finnish (1st, LK201-AF)
E03 has "@"
011 has II ] " and II [ II
012 'has "i" and "\"

11.

Austrian/German (2nd, LK201-NG)
Ell has "I"
011 has "@" and "\"
e10 has II } " and II { II
ell has II ] " and " [ "

12.

Austrian/German (1st, LK201-AG)
011 has "@" and "\"
ell has "]" and "["

13.

Dutch (2nd, LK201-NH equivalent to LK201-EE) - none

14.

Dutch (1st, LK201-AH)
E02 has "["
E03 has "]"
E10 has "\"

15.

Italian
E01 has
E02 has
E09 has
E10 has
e12 has

~DmDDmDTM

"@"

"i"
"["
"]"
"\"

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

16.

swiss (French)
E04 has "@"
011 has .,\.,
e10 has ., [ .,
ell has ., ] "
e12 has "i"

17.

Swiss (German)
E04 has "@"
011 has "\"
e10 has " [ "
ell has " ] "
e12 has "i"

18.

Swedish
E03 has
011 has
012 has
e10 has
ell has

(2nd, LK201-NM)
"@"
" ] " and " [ "
"i" and "\"
"}" and "{"

Swedish
E03 has
011 has
012 has

"@"

19.

20.

"I"
(1st, LK201-AM)
" J" and " [ "

"i" and "\"

Norwegian (2nd,
011 has "}" and
e10 has "I" and
ell has "{ " and

LK201-EN)

"]"

"\"

"[ "

21.

Norwegian (1st, LK201-AN)
E03 has "@"
011 has " J " and " [ "
ell has "i" and "\"

22.

Belgian/French
E06 has " [ .,
E07 has ."]"
ell has "\"

23.

Spanish
EOO has "@" and "\"
E12 has " ] " and " [ "

24.

Portuguese - none

mDmDomD™

Digital Internal Use Only

page 6-56

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-57

SET/RESET KEYBOARD USAGE MODE

DECKBUM

Levels:

2x, 3

Purpose:

Select Data Processing or Typewriter Keys mode.

Set Format:

Reset Format:

CSI
9/11

3/15

CSI
9/11

3/15

?

?

6
3/6

8
3/8

h
6/8

6
3/6

8
3/8

1
(Typewriter)
6/12

(D.P.)

Description: The DECKBUM control is used to select between Data
Processing or Typewriter Keys mode.
Note:
Keyboard Usage Mode is a User Preference Feature and
should only be used by conforming software in response to
explicit requests of the terminal user.

State Affected:
KEYBOARD USAGE MODE:

(TYPEWRITER_KEYS,DATA_PROCESSING_KEYS);

Algorithm:
PROCEDURE SET_KEYBOARD_USAGE_MODE;
BEGIN
KEYBOARD USAGE MODE:= DATA PROCESSING_KEYS;
END;
PROCEDURE RESET_KEYBOARD_USAGE_MODE;
BEGIN
KEYBOARD USAGE MODE:- TYPEWRITER_KEYS;
END;
Known Deviations:

mDmDomD

1M

None

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Proce,ssing
6.7.6

19-Apr-1988

Page 6-58

Keyboard Dialect

The Keyboard Dialect primarily effects the keyboard -layout by
specifying which country keyboard to use. When 7-bit Characters
and Typewriter mode are in effect, the Keyboard Dialect also
sele'cts the corresponding National Replacement Character Set (new
for Level 3).
When 7~bit Characters and Typewriter Keys mode are selected, the
terminal generates characters from the current National
Replacement Character Set (NRCS) determined by the Keyboard
Dialect. This applies in all emulation modes: VT52, VT100 (Level
1), and VT200 (Level 2). NRCS are by definition 7-bit sets, thus
only 7-bit codes will be generated. Additional compose sequences
are available in this mode to generate characters that are in the
current NRCS but not on the corresponding country keyboard.
Guideline: On the VT320, the national replacement character set
for each keyboard is as follows:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

North American - 7-bit Characters mode is not available.
(ASCII is the left hand graphic set for both DEC
Multinational and ISO Latin-1)
Flemish -'French NRCS/AFNOR NF Z 62-010 [1973]
Canadian (French) - DEC French Canadian NRCS
British - British NRCS/BS 4730
Danish - Norwegian/Danish NRCS 3/NS 4551-1, DS 2089
Finnish - DEC Finnish NRCS
Austrian/German - GetmanNRCS/DIN 66 003
Dutch - 7-bit Characters mode is not available (same as
North American).
Italian - ISO Italian NRCS
Swiss (French) - DEC Swiss NRCS
Swiss (German)- DEC Swiss NRCS
Swedish - DEC Swedish NRCS
Norwegian - Norwegian/Danish NRCS 3/NS 4551-1, DS 2089
Belgian/French - French NRCS/AFNOR NF Z 62-010 [1973]
Spanish - ISO Spanish NRCS
Portuguese - DEC Portuguese NRCS

For more information on character sets and coding, refer to DEC
STD 169 Digital Standard Coded Graphic Character Sets for HardWare
and SOftware.
---- ---

6.7.6.1

British Pound Sign  -

The North American keyboard dialect differs from the British
keyboard dialect only in the meaning of the Shift-3 (E03) key.
single keyboard model (LK201-EE) accomodates both of these
keyboard dialects.

A

When "North American Keyboard" is selected, the Shift-3 key always
sends 2/3 ("i" from ASCII character set).

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-59

When "British Keyboard" is selected, the setting of Character Set
Mode, 8-bit Characters/7-bit Characters (DECNRCM) determines
whether the British Pound Sign character is sent as 10/3 or 2/3.
In the former case, from the DEC (or ISO) Supplemental character
set, in the latter case from the UK national character set. When
in 7-bit Characters mode, and the Keyboard Usage Mode is set to
Data Processing Keys, the Shift-3 key sends 2/3 ("I" from ASCII
character set).
The possible combinations are summarized in the chart below:
Keyboard
Dialect

DECNRCM
setting

Keyboard
Usage Mode

Code sent
Character
by terminal and set

British

8-bit Chars.

either

10/3

£ - DEC or ISO

British
British
N. America

7-bft Chars.
7-bit Chars.
N/A *

Type.wri ter
Data Proc.
either

2/3
2/3
2/3

£ - British NRC
I - ASCII
I - ASCII

Supplemental

*

when "North American" dialect is selected,
7-bit characters mode is not available.

The legend for the shift 3 (E03) key is If.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.8

19-Apr-1988

Page 6-60

CURSOR KEYS

The four cursor arrow keys are intended for use by the terminal
user to indicate movement of the cursor symbol in the display. No
action to move the cursor is performed by the terminal unless it
is in Local Mode or Local Editing Mode. The cursor movement
controls must be transmitted to the terminal on receipt of these
sequences in order for a corresponding movement of the cursor
symbol to occur.

6.8.1

Cursor Key Mode

The device shall provide four keys specifically designated for
cursor movement as up, down, left and right.
If the Cursor Key
Mode is in the reset state, these keys will transmit the
appropriate ANSI escape sequence codes (CSI A, CSI B, CSI 0, CSI
C).
If the Cursor Key Mode is in the set state, these keys will
transmit applications function codes (SS3 A, SS3 B, SS3 0, SS3 C).
Note that when Cursor Key Mode is in the reset state the control
sequences transmitted by these keys are in fact the cursor
movement control functions, and if echoed back to the terminal
will cause cursor movement to occur.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.8.2

19-Apr-1988

Page 6-61

Cursor Key Codes

The codes transmitted by the Cursor Keys are not effected in any
way by the depression of the Shift or Lock keys.
In the following table, the first entry indicates the code
sequence transmitted when the C1 Transmission Mode is in the reset
state (SEVEN-BIT). The second entry indicates the code sequence
transmitted when the C1 Transmission Mode is in the set state
(EIGHT_BIT).
Codes Transmitted by Cursor Keypad Keys

--------------------------------------Key

Legend

C17

A

DECCKM reset

(up arrow)
1/11 5/11 4/1 (ESC [ A)
9/11 4/1 ( CSI A)

B17

V

1/11 4/15 4/3 (ESC 0 C)
8/15 4/3 ( SS3 C)

<- (left arrow)
1/11 5/11 4/4 (ESC [ D)
CSI D)
9/11 4/4 (

~DmDDmDTM

1/11 4/15 4/2 (ESC 0 B)
8/15 4/2 ( SS3 B)

-> (right arrow)
1/11 5/11 4/3 (ESC [ C)
9/11 4/3 ( CSI C)

B16

1/11 4/15 4/1 (ESC 0 A)
8/15 4/1 ( SS3 A)

(down arrow)
1/11 5/11 4/2 (ESC [ B)
9/11 4/2 ( CSI B)

B18

DECCKM set

Digital Internal Use Only

1/11 4/15 4/4 (ESC 0 D)
8/15 4/4 ( SS3 D)

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

SET/RESET CURSOR KEY MODE
Levels:

page 6-62

DECCKM

1, 2

Purpose: Cause the Cursor keys to transmit cursor control
functions or application function codes.
Set Format:

Reset Format:

CSI

?

1

h

9/11

3/15

3/1

6/8

CSI

?

1

I

9/11

3/15

3/1

6/12

Description:
The DECCKM control is used to set or reset the
state of Cursor Key Mode. When Cursor Key Mode is reset (Cursor),
the Cursor keys will transmit ANSI standard cursor control
sequences. When Cursor Key Mode is set (Ck Application), the
Cursor keys will transmit applications function codes similar to
those transmitted by the Numeric Keypad when Keypad Mode- is set
(Kp_Application).
Note:
In Level 1 operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
Level 2 operation, however, it is required that these
modes be independent of one another (i.e., it is not
necessary to have one set in order to set the other).
State Affected:
CURSOR KEY MODE: (CURSOR,CK_APPLICATION)i
Algorithm:
PROCEDURE SET_CURSOR_KEY_MODE;
BEGIN
CURSOR KEY MODE:- CK_APPLICATIONi
END;
PROCEDURE RESET_CURSOR_KEY_MODE;
BEGIN
CURSOR KEY MODE:- CURSOR;
END;
Known Deviations:

momDomD

TM

None

Digital Internal Use Only

In

EL-00070-06
VSRM - Keyboard
6.9

19-Apr-1988

Page 6-63

pro~essing

NUMERIC KEYPAD KEYS

The codes transmitted by these keys are not effected in any way by
the depression of the Control, Shift or Lock keys.

6.9.1

Keypad Application/Numeric Mode

There are two modes of operation for the Numeric Keypad keys.
These modes are referred to as Keypad Application Mode and Keypad
Numeric Mode. Since they are mutually exclusive (setting one mode
causes the other to be reset) they can be considered as two states
of the same mode.

6.9.1.1

Numeric Keypad Mode -

When Keypad Numeric Mode is set, the keys in the Numeric Keypad
transmit ASCII codes for the numbers 0 to 9 (3/0 to 3/9 inclusive)
and the ASCII codes for comma, minus/hyphen, period, and carriage
return. This setting of the mode permits the terminal user to use
the keypad for inputting certain numeric information without
change to application software that normally expects input from
the main key array only.
The other keys on the keypad transmit
the SINGLE SHIFT THREE (SS3) control code followed by a single
ASCII character indicating the key which was depressed.
See the
Numeric Keypad code tables.

6.9.1.2

Application Keypad Mode -

When Keypad Application Mode is set, all keys on the keypad
transmit the SINGLE SHIFT THREE (SS3) control code followed by a
single ASCII character indicating the key which was depressed.
Note that SS3 will be transmitted as a single character code
(8/15) when Cl Transmission Mode is set to 8-bit and as a two
character ESC Fe sequence (ESC 0, 1/11 4/15) when set to 7-bit.
This setting of the mode permits application software to be able
to distinguish a keypad key from a main key array key, which is
especially useful for applications that use the keypad as a set of
function keys.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-64

Numeric Keypad Key Codes -

6.9.1.3

In the following table, the first entry indicates the code
sequence transmitted when C1 Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted when C1 Transmission Mode is in the set (EIGHT_BIT)
state.
Codes Transmitted by Numeric Keypad Keys

---------------------------------------Key

Legend

DECKPNM set

A20

0

3/0

DECKPAM set

-----------------------------------------------------------------(0)

1/11

B20

1

3/1

(1 )

1/11

B21

2

3/2

(2 )

1/11

B22

3

3/3

(3)

1/11

C20

4

3/4

(4)

1/11

C21

5

3/5

(5)

1/11

C22

6

3/6

(6 )

1/11

D20

7

3/7

(7)

1/11

D21

8

3/8

(8 )

1/11

D22

9

3/9

(9 )

1/11

C23

,

,)

1/11

D23

- (minus/hyphen) 2/13

(- )

1/11

A22

.

2/14 ( )

.

1/11

A23

ENTER

same as Return

1/11

E20

PF1

(comma)

(period)

2/12 (

1/11

E21

PF2

1/11

E22

PF3

1/11

E23

PF4

1/11

mDmDomD™

4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15

5/0
5/0
5/1
5/1
5/2
5/2
5/3
5/3

1/11
1/11
1/11
1/11

Digital Internal Use Only

4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15.
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
.8/15
4/15
8/15
4/15
8/15

7/0
7/0
7/1
7/1
7/2
7/2
7/3
7/3
7/4
7/4
7/5
7/5
7/6
7/6
7/7
7/7
7/8
7/8
7/9
7/9
6/12
6/12
6/13
6/13
6/14
6/14
4/13
4/13

4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15

5/0
5/0
5/1
5/1
5/2
5/2
5/3
5/3

(ESC 0
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3

p)
p)
q)
q)
r)
r)
s)
s)
t)
t)
u)
u)
v)
v)
w)
w)
x)
x)
y)
y)
1)
1)
m)
m)
n)
n)
M)
M)

(ESC 0
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3

P)
P)
Q)
Q)
R)
R)
S)

(

(

S)

EL-00070-06
VSRM - Keyboard Processing
6.9.2

19-Apr-1988

Page 6-65

Enter Key Operation

when Keypad Mode is in the Numeric state, depressing the Enter key
causes either a Carriage Return (CR, 1/13) or a Carriage
Return/Line Feed pair (CR LF, 0/13 0/10) to be transmitted,
depending on the state of New Line Mode.
When Keypad Mode is in the Application state, depressing the Enter
key causes an escape sequence (ESC 0 M, 1/11 4/15 4/13) to be
transmitted. See the table of Numeric Keypad keys and their
associated codes.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

SET KEYPAD APPLICATION MODE

Page 6-66

DECKPAM

1,2

Levels:

Purpose: Cause the auxiliary keypad keys to transmit control
functions.
Format:

ESC
1/11

-

3/13

Description:
The DECKPAM control places Keypad Mode into the
set, or 'Application' state.
In this state .the keys of the
Numeric Keypad on the terminal keyboard will transmit a SINGLE
SHIFT THREE (SS3) code followed by a single graphic code
indicating the key wh{ch was struck.
Notes:
1.

SINGLE SHIFT THREE (SS3) is a C1 control code which is
transmitted as 8/15 when the C1 Transmission Mode is set
to EIGHT BIT, and as 1/11 4/15 ( ESC 0 ) when set to
SEVEN BIT.

2.

If the transmitted codes are echoed back to the terminal,
or i~ the terminal is in local mode, the indicated
character from the currently designated G3 set will be
displayed; for example, when ASCII is designated as the
G3 set, the PF1 key sequence would display as "pH.

3.

In Levell operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
In
Level 2 operation, however, it is required that these
modes be independent of one another (that is, it is not
necessary to have one set in order to set the other).

State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_APPLICATION_MODE;
BEGIN
KEYPAD MODE:- KP APPLICATION;
END; Known Deviations:

mamooma

1M

None

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19':"Apr-1988

SET KEYPAD NUMERIC MODE
Levels:

Page 6-67

DECKPNM

1,2

purpose: Cause the auxiliary keypad keys to transmit ASCII
decimal digits (3/0 to 3/9).
Format:

ESC

>

1/11

3/14

Description:
The DECKPNM control places Keypad Mode into the
reset, or 'Numeric' state. In this state the keys of the Numeric
Keypad on the terminal keyboard will transmit a combination of
graphic and control codes.
Notes:
1.

In Levell operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
Level 2 operation, however, it is required that these
modes be independent of one another (i.e., it is not
necessary to have one set in order to set the other).

State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_NUMERIC_MODE;
BEGIN
KEYPAD MODE:- NUMERIC;
END;
Known Deviations:

mDmDomD

TM

None

Digital Internal Use Only

In

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-68

SET/RESET NUMERIC KEYPAD MODE
Levels:

DECNKM

2x, 3

Purpose: Select between numeric and application keypad mode.
This set/reset mode sequence was added to simplify inquiring the
state of the auxiliary keypad using Terminal State Interrogation
(TSI) functions.
Set Format:
Reset Format:

CSI
9/11

3/15

CSI
9/11

3/15

?

?

6
3/6

6
3/6

h
6/8

(Application)

6
3/6

6
3/6

1
(Numeric)
6/12

Description: This Set/Reset mode sequence selects between having
the auxiliary keypad keys transmit ASCII decimal digits (3/0 to
3/9) 'Numeric' mode, or application control functions 'Application
Mode'. The set mode sequence is equivalent to DECKPAM, and the
reset mode sequence is equivalent to DECKPNM.
State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_APPLICATION_MODE;
BEGIN
KEYPAD MODE:- KP_APPLICATION;
END;

PROCEDURE SET_KEYPAD_NUMERIC_MODE;
BEGIN
KEYPAD MODE:- NUMERIC;
END;
Known Deviations:

mDmDomD

TM

None

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.10

19-Apr-1988

Page 6-69

EDITIN.G KEYPAD KEYS

These keys transmit designated control sequences which are
intended for editing applications. The Editing Keypad Keys are
inoperative when pressed in combination with either the Shift or
Control keys.
In the following table, the first entry indicates the code
sequence transmitted when C1 Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted when C1 Transmission Mode is in the set (EIGHT BIT)
state.
In Levell operation, the Editing Keypad keys are inoperative
(transmit nothing, and do not keyclick). In Level 2 operation,
the Editing Keypad keys transmit a control sequence with a single
digit parameter indicating the key.
Codes Transmitted by Editing Keypad Keys

---------------------------------------Key
Id

Legend

E16

Find

1/11

5/11
9/11

3/1
3/1

7/14
7/14

(ESC [ 1 -)
( CSI 1 "')

E17

Insert
Here

1/11

5/11
9/11

3/2
3/2

7/14
7/14

(ESC [ 2 -)
( CSI 2 -)

E18

Remove

1/11

5/11
9/11

3/3
3/3

7/14
7/14

(ESC [ 3 -)
( CSI 3 -)

016

Select

1/11

5/11
9/11

3/4
3/4

7/14
7/14

(ESC [ 4 -)
( CSI 4 -)

017

Prev
Screen

1/11. 5/11
9/11

3/5
3/5

7/14
7/14

(ESC [ 5 "')
( CSI 5 -)

018

Next
Screen

1/11

3/6
3/6

7/14
7/14

(ESC [ 6 -)
( CSI 6 -)

momDomD™

Codes Generated (Level 2 only)

5/11
9/11

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.11

19-Apr-1988

Page 6-70

APPLICATION FUNCTION KEYS

Application Function Keys are all the keys in the upper row which
are not explicitly designated as Local Function Keys (all keys but
the left five keys in the row). These keys t.ransmit designated
control sequences which are intended for use by operating systems
and applications programs. The Permanent and Removable (System
and Application) Label Strips serve as legends for these keys.
The specific meaning of these keys is not defined by the
architecture, and will vary from product to product. However, the
codes transmitted by these keys will not change due to their
usage.
When the Application Function keys are depressed in combination
with the Shift Key, they transmit User Defined Key (UDK) sequences
whose definitions have been previously received. See the section
"User Defined Keys Extension" for a complete description of this
Level 2 function. Note that if the UDK extension is not
supported, the Application Function Keys in combination with Shift
will not transmit anything. The codes transmitted by the
Application Function keys are not affected in any way by the
depression of the Lock key. When the Application Function keys
are pressed in combination with the Control key, they are
inoperative (no code is transmitted).
In the following table, the first entry indicates the code
sequence transmitted when Cl Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted whenC1 Transmission Mode is in the set (EIGHT BIT)
state.
In Level 1 operation, only the G1l, Gl2, and Gl3 keys are active
as ESC, BS, and LF, respectively; the remaining Application
Function Keys are inoperative (transmit nothing, and do not
keyclick). In Level 1 operation Gll, Gl2 and Gl3 transmit nothing
and do not click if either the shift key or control key are
.
depressed when either ESC, BS, or LF are also depressed. When the
operating mode is set t.o Level 2, the Application Function Keys
transmit a control sequence with a two-digit parameter indicating
the key.

momoomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-71

Codes Transmitted by Application Function Keys

------====------=--=---====------------------Key

Permanent
Label strip

G05

F6

Level 1

Level 2

-----------------------------------------------------------------G06

F7

G07

F8

G08

F9

G09

FlO

G11

F11 (ESC)

1/11

G12

F12 (8S)

0/8

G13

F13 (LF)

0/10

G14

F14

G15

(F15)

G16
G20

(F16)
F17

G21

F18

G22

F19

G23

F20

mDmoomD™

H't'L,\>

1)0

1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11

3/1
3/1
3/1
3/1
3/1
3/1
3/2
3/2
3/2
3/2

3/7
3/7
3/8
3/8
3/9
3/9
3/0
3/0
3/1
3/1

7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14

1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11

3/2
3/2
3/2
3/2
3/2
3/2
3/2
3/2

3/3
3/3
3/4
3/4
3/5
3/5
3/6
3/6

7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14

1/11 5/11
9/11
1/11 5/11
9/11

3/2
3/2
3/1
3/2

3/8
3/8
3/9
3/9

7/14
7/14
7/14
7/14

1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11

3/3
3/3
3/3
3/3
3/3
3/3
3/3
3/3

3/1
3/1
3/2
3/2
3/3
3/3
3/4
3/4

7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14

Digital Internal Use Only

-

(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI

17
17
18
18
19
19
20
20
21
21

--

(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI

23
23
24
24
25
25
26
26

----)
--

(ESC [
CSI
(ESC [
(
CSI

28
28
29
29

(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI

31
31
32
32
33
33
34
34

(

(

(

(

--

)
)
)
)
)
)
)
)

-

-- ))
)
)
)
)
)
)
)

---)
)
)

--)
---)
)
)

)
)
)
)

-)

EL-00070-06
VSRM - Keyboard Processing
6.12

19-Apr-1988

Page 6-72

LOCAL FUNCTION KEYS

The Local Function Keys are the left five keys in the Function Key
Row, having positions G99, GOO, G01, G02, and G03.
The codes for
these keys shall not be transmitted by any terminal products to a
host system. Their use is reserved exclusively for product
specific local functions.
The use of Local Function Keys shall be implementation defined and
registered with the architecture. When a previously defined
function is implemented in a product, it shall be implemented as
defined, and in the defined key position (insofar as this is
possible where multiple definitions do not produce conflict).
See Appendix D "Documented Exceptions" for a description of the
designated codes to be used for the Local Function Keys when they
are implemented internally to a product, such as a Personal
Computer or Workstation.

6.12.1

Hold Screen Key Operation

When the currently selected communications protocol supports some
form of flow control, typing this key will toggle the screen
hold/no hold. When the toggle is set to "no hold", the Hold
Screen LED will be off, and screen operation will be normal. When
the toggle is ·set to "Hold", the Hold Screen LED will be on, and
the screen will freeze.
(The screen will not be updated further
and no more scrolling will occur). Typing the Hold Screen key
when the screen is held will allow scrolling to begin again.
The Hold Screen function should be implemented so that it operates
regardless of whether the Hold Screen key is depressed alone, or
in combination with the Shift or control Keys.
In terminals that
implement the Multiple Sessions extension, such as the VT330/340,
pressing Hold Screen in combination with the CTRL Key will hold
all sessions.
If the currently selected communications protocol does not support
the Hold Screen function, the Hold Screen key will be inoperative.
See DEC STD 070-12 Terminal Synchronization for information on the
interaction between Hold Screen and communications flow control.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.12.2

19-Apr-1988

Page 6-73

Print Screen Key Operation

For a complete description of the printer modes and data transfer
operations, see DEC STD 070-7 Printer Port Extension.
a.

PRINT alone prints a copy of the cell text data in the
region of the character cell display defined by Print
Extent Mode (either the entire character cell display, or
the character cell display scrolling region) to the
printer port.

b.

SHIFT/PRINT prints a copy of the entire character cell
display bitmap to the printer port (binary transfer).

c.

CONTROL/PRINT toggles Auto Print Mode.

6.12.3

Set-up Key Operation

Depression of the Set-up Key, either alone or in combination with
the Shift or Control Keys, causes the terminal to enter into a
local mode of operation in which certain terminal state may be
changed by the User.
Keyboard operation and screen display in
s~t-up Mode is beyond the scope of this architecture
specification, as is the means by which the terminal returns to
normal operation, and the state which gets restored.

6.12.4

Local Function Key F4

6.12.4.1 ~witch Session Key Operation - The Switch Session Key
(F4) is used by terminals with the Multiple Sessions extension
(VT330/340) to switch between sessions.
a.

Switch Session or Shift/Switch Session instructs the
terminal to activate another session. Refer to the
Session Management chapter.

b.

CTRL/Switch Session instructs the terminal to select one
of a number of presentation states. Refer to the
Pre septation Management chapter.

6.12.4.2 Data/Talk Key Operation - Terminals with an integral
modem (option on VT220), may use F4 as a Data/Talk switch for the
modem.
Pressing F4 alone will toggle between the Data and Talk
modes. The Data mode is used for data communications once a
connection is established. Talk mode is used for dialing or
normal conversation with the attached telephone.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-74

6.12.4.3 F4 Operation When Not Used For Local Function - If not
used for a local function, F4 shall be dead (shall not transmit
anything to the host).

6.12.5

Break Key Operation

For a complete description of the communications functions, see
DEC STD 070-12 Terminal Synchronization, DEC STD 070-4 Terminal
Management, and DEC STD 070-3 Code Extension Layer.
1.

BREAK alone transmits a break if break is enabled (an
optional set-up feature may be provided to disable the
break function).

2.

SHIFT/BREAK performs a disconnect if disconnects are
enabled.

3.

CONTROL/BREAK sends the terminal answerback message to
the host.

mDmDomD

TM

Digital Internal Use Only

EL-00070-06
- Keyboard Processing

Page 6-75

19-Apr-1988

VS~M

6.13

MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS

The following keys are "special keys" on the Main Key array.
They
perform special actions or are otherwise unique. They are each
found on all versions of the keyboard.
Four of the keys do not cause bytes to be immediately transmitted
across the coding interface; rather, they condition the effect of
other keys at the same time and/or subsequently. These keys are
not auto-repeatable. The keys are:
1.

Control

2.

Shift

3.

Lock

4.

Compose

The remaining four keys send a particular ASCII control character
or SPACE. All but the Return key are auto-repeatable. They are:
Normal

Control Shift

Lock

1.

Space Bar

2/0

0/0

2/0

2/0

2.

Return

0/13*

0/13*

0/13*

0/13*

3.

Tab

0/9

0/9

0/9

0/9

4.

Delete

7/15

1/8

7/15

7/15

* When New Line Mode is set (New Line On) , the two-byte sequence
0/13 0/10 is transmitted.

6.13.1

Control Key Operation

When the Control key is held down while another key is depressed
which forms a legal control combination, there is one keyclick and
the appropriate control code is transmitted. All of the 32 ASCII
CO control codes plus DELETE (7/15) can be generated by typing the
A-Z keys or the 2-8 keys independent of the Shift key or Lock key.
In addition to the 2-8 keys, the keyboard provides alternative
forms for keying the CO controls for backward compatibility with
DEC STD 107 and ANSI x4.14 (now superseded by X4.23-1982). On
non-US keyboards, these alternate forms are provided whenever the
keys involved in these combinations are present.

mDmDomDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-76

Valid control combinations auto repeat the same as other
repeatable keys.
If Control is pressed while a key is repeating,
and the key forms a valid control combination, the key will
continue to repeat but transmit the control combination while the
Control key is pressed.
If the key does not form a valid control
combination, the key will stop repeating while the Control key is
pressed.

I
I
I
I
I
I
I
I
I
I
I
I

When the Control key is depressed, the Shift key is ignored. On
European keyboards with the numbers in shifted positions, the
Ctrl-number construction does not require the use of shift. This
applies to the number keys only.
In the case where the numeral
legends are shifted, and the number forms a valid control code,
the unshifted legend is ignored.
If the number has no meaning
with CTRL, then the lower character on the key (such as [ ) is
used.
Exception: Tilde (EOO) on the North American keyboard is
used even though it is the upper character.
Guideline:

On the French keyboard, typing CTRL/E06 (unshifted

I· legend "[", shifted legend "6") will generate the control code for

I
I
I
I

CTRL-6. On the Italian Keyboard in DP mode, CTRL-9 is not
defined, so the key sends CTRL-[ (ESC) because that is the
unshifted legend on the key, and the "[" charact~r forms a valid
control combination.
The valid control combinations are standard across all keyboards.
Refer to the "Control Codes and Keystrokes" section later in this
chapter.
Invalid control combinations (any not listed below) will result in
no keyclick occurring and no code being transmitted.
Note 1: E1 to E6 (the editing keypad), F6 to F20 (the top row
function keys) and the cursor keys are dead when used with the
CTRL key.
Note 2:
keys.

The CTRL key is ignored when us.ed with the numeric keypad

Note 3: When using some communications protocols, certain of the
control characters may not be allowed, for example, ctrl/S and
ctrl/O (XON and XOFF).
In this case the control characters are
considered as Local Function Keys. Conforming software should not
use ctrl/S and ctrl/O because of their possible use in
communications flow control. See DEC STD 070-12 Terminal
Synchronization for a complete description of the use of these
characters.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.13.2

19-Apr-1988

Page 6-77

Shift Key Operation

In order to obtain a shifted character, the Shift key and the
graphic character key must be depressed together.
Shift only
applies to keys which produce graphic characters on the main key
array. The state of the Shift key is ignored when any other key
on the main array is depressed, including the Space Bar, Return,
Tab, Delete keys.
The use of the Control key supersedes the Shift
key, so that the same control characters are generated whether the
key is also shifted or not.
Shift has no effect on the codes transmitted by the Numeric Keypad
keys and the Cursor Keys. When Function keys are depressed in
combination with the Shift key, they transmit User Defined Key
(UDK) sequences whose definitions have been previously received.
The Editing keypad keys are inoperative when pressed in
combination with the Shift key.

6.13.3

Lock Key Operation

The LOCK key is used to enter Shift Lock Mode or Caps Lock Mode.
If a Shift Lock keyboard is selected in Set-Up: Shift Lock mode
is turned on by pressing the LOCK key, and turned off by pressing
either the LOCK key or a SHIFT key.
If a Caps Lock keyboard is
selected in Set-Up: Caps Lock Mode is toggled on or off by
pressing the LOCK key.
The LOCK key operates at all times regardless of any other keys
being held down.
The terminal user may set Caps/Shift Lock Mode to either Caps Lock
Operation or Shift Lock. Operation as a Set-Up feature.
The
factory default is Caps Lock Operation to be compatible with the
VT100.

mDmDomDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.13.3.1

19-Apr-1988

Page 6-78

Shift Lock Operation -

When Caps/Shift Lock Mode is set to Shift Lock Operation all
normal char~cters a~e acted on as if the Shift key were being
depressed at the same time as the keystroke. The normal
characters are those characters which are listed in the tables of
alpha-numeric keyboard maps. Not included are control characters,
tab, function keys, delete, return, compose, enter, lock, and
shift keys. Note: when Shift Lock Operation is in effect, unless
an implied or explicit compose sequence is used, it is not
possible to generate the upper case characters using:
a.
. b.

6.13.3.2

The keys that have one lower case letter legend and
another legend .
The keys that have two lower case letter legends.

Caps Lock Operation -

When Caps/Shift Lock Mode is set to Caps Lock Operation, keys
whose shifted and unshifted characters are the upper and lower
case form of a single alphabetic letter transmit the shifted
(upper case) ch~racter (as if the Shift key were being held down).
Keys affected-by Caps Lock are those with upper case alphabetic
legends on the corresponding keyboard. Keys with one or two lower
case (small letter) legends are not effected by Caps Lock
Operation.

mDMDomo™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.13.4

19-Apr-1988

page 6-79

SPACE Bar Operation

The Space Bar usually causes the SPACE code (SP 2/0) to be
transmitted.
It can also be used in some explicit and implied
compose sequences in order to represent a free standing accent as
the equivalent ASCII code for a spacing character. Ctrl-space
will send a NUL.

6.13.5

Return Key Operation

Depressing the Return key causes either a Carriage Return (CR,
0/13) or a Carriage Return/Line Feed pair (CR LF, 0/13 0/10) to be
transmitted, depending on the state of New Line Mode.

6.13.5.1

New Line Mode -

A conforming device shall provide a means of selecting the codes
transmitted as a result of depressing the Return and Enter keys on
the keyboard. Normally these keys will both transmit a Carriage
Return character (0/13) [reset state - no new line]. When this
mode is in the set state [set state - new-line] these keys will
bQth generate a two-code sequence 1/13 1/10 ( CR LF ).
NEW_LINE_MODE: (NEW_LINE_OFF,NEW_LINE_ON)i
Note that New Line Mode is a function of the Character Cell
Display architecture since it also causes receipt of LF to be
interpreted as if it were CR LF, and is fully defined in that
specification.
Note also that New Line Mode does not effect the code transmitted
when the M key is pressed while holding the Control key.
ctrl/M
always transmits just 0/13.
Deviation Note:
In the VT100, VT101, VT102, VT125, VT131, and
VT132, the M key in combination with the Control Key IS effected
by New Line Mode, and sends the sequence 0/13 0/10 when New Line
Mode is in the set (New Line On) state.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.13.6

19-Apr-1988

page 6-80

Tab Key Operation

Typing the Tab key causes a horizontal tabulation code (HT, 0/9)
to be transmitted.

6.13.7

Delete Key Operation

The Delete key usually causes a Delete code (DEL, 7/15) to be
generated. The exception is that during an explicit or implied
compose sequence it aborts the compose sequence in progress,
cancels compose mode, and no code is transmitted. The delete key
still clicks if keyclick is enabled.
Guideline: VT300 series terminals provide a set-up option to
allow the Backarrow key " Greater than

Z
X

C
V
B
N
M

Comma
Period
? Question mark

.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-84

North American Keyboard, 8-bit Characters, Data processing Keys
Equivalent to 8-bit Characters, Typewriter Keys
North American Keyboard, 7-bit Characters, Typewriter Keys
7-bit Characters mode is not available with the North American
keyboard dialect, although certain conditions can restrict the
keyboard to sending 7-bit characters. In this case, the layout is
the same as for 8-bit Characters.
North American Keyboard, 7-bit Characters, Data processing Keys
Equivalent to 7-bit

Cha~acters,

Typewriter Keys

The LK201-NA is for use with the VT330/340 series terminals and
has front legends on the editing and numeric keypad not found on
the LK201-EE.
There are three legends on E03 (LK201-EE LK20l-NA combined US/UK),
the shifted code generated by this key is dependent upon which
dialect, North American or British, is selected in set-up.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.'2

19-Apr-1988

Page 6-85

British Keyboard (LK201-EE US/UK)

8-bit Characters, Typewriter Keys
Position

-------EOO
E01
E02
E03**
E04
EOs
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
BOs
B06
B07
B08
B09
B10

mDmDomD™

Unshifted

--------,

Open quote
1
2
3
4
5
6
7
8
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t
Y
u
i
·0

P
[

J

Shifted

------Tilde character
1 Exclamation point
@ Commercial at
£ British pound
(10/3)
$ Dollar sign
% Percent sign
... Circumflex character
& Ampersand
* Asterisk
( Opening parenthesis
) Closing parenthesis
Underline
+ Plus
Q
W
E
R
T
y
U
N

I
0

P
Opening bracket
Closing bracket

a
s
d

{ Opening brace
} Closing brace

A
S
0

f

F

9
h
j
k
I

G
H

Semicolon
Apostrophe
\ Backslash
< Less Than

Colon
" Quotation marks
I vertical line
> Greater than

J

K
L

,;

z

z

x
c

X

C
V
B

v
b
n
m

,

.

/

N
M

Comma
Period
Slash

,

Comma
Period
? Question mark

.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-86

British Keyboard, 8-bit Characters, Data Processing keys
Equivalent to 8-bit Characters, Typewriter keys
British Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

E03

3

£ British pound

(2/3)

British Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bi t Characters, Typewriter .keys)
Position

unshifted

Shifted

E03

3

t Number sign

(2/3)

There are three legends on E03, the shifted code generated by this
key is dependent upon which dialect, North American or British, is
selected in set-up.

mDmDO!D™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.14.3

19-Apr-1988

Page

British Keyboard (LK201-AE)

8-bit Characters, Typewriter Keys
position

Unshifted

Shifted

EOO

[Tilde mark]
1
2
3

Degree sign
Exclamation point
" Double quote
£ British pound (10/3)
$ Dollar sign
% Percent sign
& Ampersand
, Apostrophe
Open parenthesis
Close parenthesis
.. Equals
underline
1.i one-qrtr

E01
E02
E03
E04

4

EOS

5

E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

6
7
8
9

DOS
006
D07
008
009
010
011
012

COl
C02
C03
C04

o

- Hyphen, Minus
~ one-half
q

w
e
t
y

BOS
B06
B07
B08
B09
B10

mDmDomD™

o

@ Commercial at
] Close bracket

a
s

P
§

Section sign
[ Open bracket

A

S

o

d
f
h
j
k

BOO

U
I

i
o
P

C06
C07
C08
C09
C10
C11
C12
B01
B02
B03
B04

Y

U

g

Q
W
E
R
T

r

COS

o

F
G

I
; Semicolon
Colon
[Circumflex accent]
< Less Than

z

H
J
K
L

+ Plus
* Asterisk
[Grave accent]
> Greater than
Z

x

x

c
v

V

C

b
n

B

m
, Comma
. Period
/ Slash

N
M

, Comma
. Period
? Question mark

Digital Internal Use Only

6~87

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-88

British Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

E03
011

@

Shifted

* Number
sign
Backslash

3

(2/3)

\

British Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E03
C12

Unshifted

Shifted

---------

-------

3

£ British pound

- Tilde
A

Circumflex Character

Dead

,

(2/3 )

Open quote

British Keyboard, 7-bit Characters, Data Processing keys
(Where ~ifferent from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E03
011
C12

3

-------1
.1

---------

@
A

Shifted

-------

Tilde

. Dead
~ Dead
\ sackslash
Circumflex Character , Open quote

<;.:

mDmDomO™.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.4

19-Apr-1988

Page 6-89

Flemish Keyboard (LK201-AB)

8-bit Characters, Typewriter Keys
Position

Unshifted

EOO

[Grave accent)
ADlpe r s.and
e Small e with acute
n Quotation marks
, Apostrophe
( Opening parenthesis
S Section sign
e small e with grave
Exdlamation point
9 Small c with Cedilla
a Small a with grave
) Closing parenthesis
Hyphen, Minus
a
z
e

E01
E02
E03
E04

EOs

E06
E07
E08
E09
E10
Ell
E12
DOl
D02
D03
D04
DOS
D06
007
D08
D09
D10
D11
D12
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12

Shifted
[Tilde mark)

&

(14/9 )

1
2
3
4

5

(10/7)
(14/8)
(14/7)
(14/0 )

6

7
8
9

o
o

A
z

Degree sign (11/0)
underline

E

r

R

t

T

y

Y
U
I

u
i
o

o

p
[Circumflex accent)
$ Dollar sign
q
s

P

[Dieresis)
Asterisk

*
Q

S

d

D

f
9
h
j
k

F
G

H
J
K
L
M

1
m

u Small

u with grave

(15/9)

# Number sign

% Percent sign
@ Commercial at sign

BOO

< Less Than

> Greater than

B01
B02
B03
B04

w

W
X

BOs

b

B

B06
B07
B08
B09
B10

n
, Comma
; Semicolon
Colon
= Equals

N

mDmDomD™

x
c

C

v

V

Dig1tal Internal Use Only

? Question mark

Period
/ Slash
+ Plus

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-90

Flemish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
position

-------E06
E07
C1l

unshifted

Shifted

---------

-------

[ Opening bracket
] Closing bracket

6
7

\ Backslash

% Percent sign

Flemish Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
position

Unshifted

Shifted

--------

---------

-------

EOO
E02
E06
E07
E09
E10
Ell
Cll
C12

[Grave accent]
Small e with acute
Section sign
small e with grave
Small c with Cedilla
Small a with grave
) Closing parenthesis
u Small u with grave
Dead

e
§
e
9
a

(7/11)
(5/13)
(7/13)
(5/12)
(4/0 )
(7/12)

Dead
2
6
7
9
0
0
Degree sign (5/11)
% Percent sign
Dead

Flemish Keyboard, 7-bit Characters, Data Processing Keys
(Where differ~nt from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E02
E06
E07
E09
ElO
Ell
011
C11

, Open quote
Dead
[ Opening bracket
] Closing bracket
Dead·
Dead
) Closing parenthesis
Circumflex character
\ Backslash

mDmDomD™

A

Digital Internal Use Only

Shifted
- Tilde character
2
6
7
9

o

Dead
" Quotation marks
% Percent sign

EL-00070-06
VSRM - Keyboard Processing
6.14.5

19-Apr-1988

Page 6-91

Canadian (French) Keyboard (LK201-AC)

a-bit Characters, Typewriter Keys
Position
-------EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
Cl1
Cl2
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

Unshifted

Shifted

[Tilde mark]
1
2
3
4
5
6
7
a
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t
Y
u
i

o

---------

0

"
/
$
%
?

&

*

+

Degree sign
(11/0)
Exclamation mark
Quotation marks
Slash
Dollar sign
Percent sign
Question mark
Ampersand
Asterisk
Opening parenthesis
Closing parenthesis
Underline
plus

Q

W
E
R

T
Y
U
I

o
P

P

Small c w/Cedilla (14/7)
Number
sign
#
a
s
d
~

~

Capital C w/Cedilla (12/7)
@ Commercial at

A

S

o

f

F

g
h

G
H

j

J

k
1

K
L

; Semicolon
[Grave accent]
" Backslash
< Less Than

Colon
[Circumflex accent]
I vertical line
> Greater than

z

z

x
c
v
b
n

X
C
V

B
N
M

4ll

.

e

Comma
Period
Small e with acute (14/9)

Digital Internal Use Only

, Apostrophe
• Period
E Capital E with acute (12/9)

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-92

Canadian (French) Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

011

) Closing bracket

[ Opening bracket

Canadian (French) Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

EOO

Dead
~ Small c wlCedilla (5/12)
# Number sign
Dead
e Small e with acute (7/11)

Dead
Dead
Dead
Dead
Dead

011
012
C12
B10

Canadian (French) Keyboard, 7-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO

- Tilde char
) Closing bracket
, Open Quote
Dead

D11
C11
B10

mamDDmD™

Digital Internal Use Only

Dead
[ Opening bracket
Circumflex Char
Dead
A

EL-00070-06
VSRM - Keyboard Processing
6.14.6

19-Apr-1988

Page 6-93

Danish Keyboard (2nd, LK201-EO)

8-bit Characters, Typewriter Keys
Unshifted

Shifted

EOO

.. Tilde Char

S Section sign (10/7)

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

1
2

Exclamation mark
" Quotation marks
£ Pound sign
(10/3)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
, Open Quote

Position

DOS
006
007
008
009
010
011
012

COl

3
4

5
6

7
8
9

o

+ plus
, Apostrophe
q
w

Q

e

W
E

r
t

R
T

y

Y

u
i

U
I

o

o

p

P

a

Small a with ring (14/5)
" Quotation marks
a

s

A Capital
A

A

C02
C03
C04

d
f

o

COS

g

C06
C07
C08
C09
C10
C11
C12
800
801
802
803
804
805
806
807
808
s09
810

h
j
k
I

G
H

mDmoomD™

A with ring (12/5)
Circumflex Char

S

F
J
K
L

~
~

Small ae dipthong (14/6)
Small 0 with slash (15/8)
, Apostrophe
< Less Than
z

x
c
v
b

~

o

*

>

Capital AE dipthong (12/6)
capital 0 with slash(13/8)
Asterisk
Greater than

Z
X

C
V

8

n
m

N
M

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

P,age 6-94

Danish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

I
I
I
'1
I

-------EOO
E03
011
C10
C11

Unshifted

---------

- Tilde

Char

3

Closing brace
Opening brace
I Vertical bar

}
{

Shifted

-------

Commercial at
Number sign
] Closing bracket
[ Opening bracket
\. Back slash
@

*

Danish Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
position
--------

EOO
E03
011
C10
C11

Unshifted

---------

-3 Tilde

a
iI!
/21

Char

Small a with ring (7/13)
Small ae dipthong (7/11)
Small o with slash (7/12)

Shifted

-------

Commercial at
Number sign
A Capital A with ring (5/13)
.IE Capital AE dipthong (5/11)
fa Capital 0 with slash (5/12)
@

*

Danish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

-------EOO
E03
011
C10
Cl1

mDmDomD™

Unshifted

Shifted

-3 Tilde

------@ Commercial

---------

Char

Closing brace
Opening brace
I Vertical bar

}
{

Digital Internal Use Only

at

it Number sign

Closing bracket
Opening bracket
\. Back slash
]
[

EL-00070-06
VSRM - Keyboard Processing
6.14.7

page 6-95

19-Apr-1988

Danish Keyboard (1st, LK201-AD)

8-bitCharacters, Typewriter Keys
Unshifted

Shifted

EOO

[Tilde accent]

E01
E02
E03
E04
E05
E06
E07
E08
E09
.E10
Ell
E12
001
002
003
004

1
2

Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
- Equals
? Question mark
[Grave accent]

position

3
4
5
6
7
8
9

o

+ Plus
[Acute accent]
q

t

y

C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

E
R

r

DOS

COl

Q
W

w
e

006
D07
008
009
010
011
012

o

T
Y
U
I

u
i
o
p

o
P

a

Small a with ring (14/5)
[Dieresis]

A capital

a
s

A

A with ring (12/5)
[Circumflex accent]

S

d
f
9
h
j
k
I

o

e Small ae dipthong (14/6)

~

F
G
H

J
K
L

Capital AE dipthong (12/6)
Capital 0 with slash(13/8)
* Asterisk
> Greater than

e Small 0 with slash (15/8)
, Apostrophe
< Less Than

o

z

Z
X
C
V
B

x

c
v
b
n
m

N
M

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-96

Danish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

unshifted

E03
D11
C11

--------

Shifted

---------

-------

3

@

] Closing bracket

[ Opening bracket

* Number

\ Back slash

sign

Commercial at

Danish Keyboard, 1-bit Characters, Typewriter Keys
(Where different from a-bit Characters, Typewriter keys)
position

-------EOO
E03
E12
D11
D12
C10
C11

Unshifted

Shifted

---------

-------

Dead
3
Dead
A Small a with ring (7/13)
[Dieresis]
~Small ae dipthong (7/11)
~-Small 0 with slash (7/12 )

[Ring mark]
Dead
Dead
A Capital A with ring ( 5/13)
Dead
1£ Capital AE dipthong (5/11)
fa Capital o with slash (s/12)

Danish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
EOO
E03
E12
D11
D12
C10
C11

mDmDomDTM

- Unshifted

Shifted

Dead
3
Dead
Dead
[Dieresis]
~ Small ae dipthong (7/11)
Number sign

*

,

Digital Internal Use Only

[Ring mark]
Dead
Dead
Dead
Dead
1£ Capital AE dipthong (5/11)
Dead

EL-00070-06·
VSRM - Keyboard Processing
6.14.8

19-Apr-1988

Page 6-97

Finnish Keyboard (3rd, LK201-NX)

8-bit Characters, Typewriter Keys
Position

Unshifted

Shifted

EOO

... Tilde Char
1
2
3
4
5
6
7
8

@ Commercial at

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10

Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

momoomD™

9

a
A

r
t

?

,

Quotation marks
Section sign (10/7)
Dollar sign
Percent sign
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open Quote

Q
W
E
R
T
Y
U
I

y
u
i
o

o

p

ij

&
/
(
)
=-

+ Plus
Circumflex Char
q
w
e

a

! Exclamation mark

"
5
$
%

P

Small a with ring (14/5)
small u w/umlaut (15/12)

a
s

A Capital

o Capital

A with ring (12/5)
U w/umlaut (13/12)

A

S

d
f
g
h
j
k
I
:a"small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than

a
z

o
F
G
H

J
K

L

o Capital

0 w/umlaut (13/6)

A capital A w/umlaut (12/4)

*

Asterisk

> Greater than
Z
X

x

c

C
V

v

b

B

n

N
M

m
Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-"-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-98

Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------E03
011
012
C10
C11

Shifted

Unshifted

---------

-------

# Number sign
] Closing bracket
Circumflex character
\ Backslash
[ Opening bracket

~

} Closing brace

N

A

Tilde character
I Vertical line
{ Opening brace

Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E03
E12
011
012
C10
C11

Shifted

Unshifted

-------

---------

@ Commercial at
Dead
3
# Number Sign
Dead
Dead
a Small a with ring (7/13) A Capital A with ring ( 5/13 )
Capital U w/umlaut ( 5/14)
ii small u with umlaut (7/14)
capital 0 w/umlaut (5/12)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11) A Capital A w/umlaut (5/11)

o
o

Finnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

E03
011
012
C10
C11

3
} Closing brace
Tilde character
I vert bar
{ Opening brace

mDmDomD™

Shifted
# Number sign
] Closing bracket
Circumflex character
. \ Back slash
[ Opening bracket

Digital Internal Use Only

A

EL-00070-06
VSRM - Keyboard Processing
6.14.9

19-Apr-1988

Page 6-99

Finnish Keyboard (2nd, LK201-NF)

8-bitCharacters, Typewriter Keys
Unshifted

Shifted

EOO

[Tilde mark]

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

1
2
3
4

@ Commercial at
Exclamation mark
" Quotation marks
§ Section sign (10/7)
$ Dollar sign
% Percent sign
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]

Position

DOS
006
007
008
009
010
D11
012

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

5
6
7
8
9

o

+ Plus
[Circumflex accent]
q
w
e
r
t

y
u
i
o

Q
W
E
R
T
Y
U
I

o

P

P

A Small a with ring (14/5)

A Capital

U small u w/umlaut (15/12)
a

A

s

U Capital

A with ring (12/5)
U w/umlaut (13/12)

S

o

d
~

F

9
h
j
k
1

G
H

J
K
L

o
a

o Capital

x

X
C

small 0 with umlaut (15/6)
small a with umlaut (14/4) A
, Apos·t rophe
*
< Less than
>
z
Z

c

0 w/umlaut (13/6)
Capital A w/umlaut (12/4)
Asterisk
Greater than

v
b

V

n

m

N
M

Comma
Period
- Hyphen, Minus

; Semicolon
Colon
Underline

B

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

Page 6-100

19-Apr-1988

Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------E03
011
C10
ell

Unshifted

Shifted

---------

-------

3

# Number sign

} Closing brace

] Closing bracket
\ Backslash
[ Opening bracket

I Vertical line
{ Opening brace

Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E03
E12
011
012
C10
C11

Unshifted

Shifted

---------

-------

Dead
3
Dead
6 Small a with ring (7/13)
i.i small u with umlaut (7/14 )
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)

@ Commercial at
# Number sign
Dead
A Capital A with ring (5/13)
U Capital U w/umlaut (5/14)
Capital 0 w/umlaut (5/12)
A Cap.ital A w/umlaut (5/11)

o

Finnish Keyboard, 7-bit Characters, Data Pr6cessing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

EOO
E03
E12
011
012
C10
C11

.. Tilde
3
A
Circumflex
} Closing brace
Dead
I Vertical line
{ Opening brace

@ Commercial at
# Number sign
, Open Quote
] Closing bracket
Dead
\ Backslash
[ Opening bracket

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.14.10

19-Apr-1988

Page 6-101

Finnish Keyboard (1st, LK201-AF)

8-bit Characters, Typewriter Keys
Position
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
DOl
D02
D03
D04
D05
D06
D07
D08
D09
D10
D11
D12
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

Unshifted

Shifted

[Tilde mark]

Degree sign
Exclamation mark
n Quotation marks
§ Section sign (10/7)
$ Dollar sign
% Percent sign
& Ampersand
1 Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]

1
2

3
4
5
6

7
8
9

o

+ Plus
[Circumflex accent]
q
w

e

a

Q

W
E
R
T
Y
U
I

r
t

y
U

i

o

-0

P

P

a Small a with ring (14/5)
u small u w/umlaut (15/12)

A Capital A with ring (12/5)
ij Capital U wlumlaut (13/12)

a

A

s

S

d
f

D
F

g

G
H
J
K
L

h
j
k

I

o

with umlaut (15/6) 0 Capital 0 w/umlaut (13/6)
A Capital A w/umlaut (12/4")
, Apostrophe
* Asterisk
< Less Than
> Greater than
z
z
x
X
c
C
small

0

ii small a with umlaut (14/4)

v

V

b

B
N
M

n
m

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-06
VSRM -Keyboard processing

19-Apr-1988

Page 6-102

Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

E03
011
012

3

@ Commercial at
[ Opening bracket
\ Backslash

] Closing bracket
i Number sign

Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E03
E12
011
012
C10
C11

Dead
3
Dead
a Small a with ring (7/13 )
ii small u with umlaut (7/14)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)

--------

---------

Shifted

-------

Dead
Dead
Dead
A Capital A with ring (5/13)
U Capital U w/umlaut (5/14)
Capital 0 w/umlaut (5/12)
A Capital A w/umlaut (5/11)

o

Finnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
EOO
E03
E12
011
012
C10
C11

mDmoamo™

. unshifted

Shifted

Dead

Dead
Dead
Dead
Dead
Dead
Dead
i Number sign
Dead
o small 0 with umlaut (7/12) Capital 0 w/umlaut (5/12)
a small a with umlaut (7/11) A capital A w/umlaut (5/11)
3

o

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.11

19-Apr-1988

Page 6-103

Austrian/German Keyboard (2nd, LK201-NG)

8-bit Characters, Typewriter keys
Position

--------

EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
,007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09

Bio

mDmDomD™

Unshifted

---------

Shifted

-------

... Tilde char
...
1
2
"
3
S
4
$
%
5
6
&
7
/
(
8
)
9
0
B German small sharp s (13/15) ?
,
' Apostrophe
q
Q
w
W
e
E
r
R
t
T

z

Z

u
i
o·
P

U

Circumflex char
Exclamation mark
Quotation marks
Section sign ( 10/7)
Dollar sign
Percent
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open Quote

I

0
P

small u w/umlaut (15/12)
+ Plus
a
s
d
f
g
h

ij

U Capital U w/umlaut (13/12)

*

F

G
H

j

J

k
1

K
L

0 small 0 with umlaut (15/6)

a

small a with umlaut (14/4)
# Number sign
< Less Than
y
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Asterisk

A
S
0

0 Capital 0 w/umlaut (13/6)

A Capital A w/umlaut (12/4)
' Apostrophe

> Greater than
Y
X

C
V
B
N
M
Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-104

Austrian/German Keyboard, a-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

--------

---------

-------

Commercial at
} Close Brace
) Closing bracket

\ Backslash

Ell
011
C10
C11

I Vertical bar

? Question mark

@

{
[

Open brace
Opening bracket

Austrian/German Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E03
Ell
011
C10
C11

Unshifted

Shifted

---------

Dead
3
B German small
ij small u with
0 small 0 with
a small a with

-------

Circumflex Char
Section sign (4/10)
Question mark
ij Capital U w/umlaut (5/13)
6 Capital Ow/umlaut (5/12)
A Capital A w/umlaut (5/11)
A

sharp s (7/14)
umlaut (7/13)
umlaut (7/12)
umlaut (7/11)

§
?

Austrian/German Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------E03
Ell
011
C10
C11

mDmDomD™

Unshifted

--------3

I Vertical bar

@

Commercial at

} Closing Brace
) Closing bracket

Digital Internal Use Only

Shifted

-------

Dead
? Question mark
\ Backslash
{ Opening Brace
[ Opening bracket

EL-00070-06.
VSRM - Keyboard Processing
6.14.12

19-Apr-1988

Page 6-105

Austrian/German Keyboard (1st, LK201-AG)

8-bit Characters, Typewriter keys
Position
-'------EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
ooa
009
010
011
012
COl
CO2
C03
C04
C05
C06
C07
coa
C09
ClO
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
BOa
B09
B10

mDmDomD™

Unshifted

Shifted
------[Tilde mark]
[Circumflex accent]
Exclamation mark
1
n Quotation marks
2
3
S Section sign (10/7)
4
$ Dollar sign
% Percent
5
& Ampersand
6
7
/ Slash
( Opening parenthesis
a
) Closing parenthesis
9
= Equals
0
B German small sharp s (13/15) ? Question mark
[Grave accent]
[Acute accent]
Q
q
w
w
e
E
R
r
T
t

---------

z

Z

u
i

U

0

0
P

I

P

small u w/umlaut (15/12)
+ Plus
a
s
d
f
g
h
j
k

ij

I

0 small o with umlaut (15/6)
a small a with umlaut (14/4)
# Number sign
< Less than
y
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus

Digital Internal Use Only

U Capital U w/umlaut (13/12)

* Asterisk

A
S
0
F

G
H
J

K
L
(; Capital 0 w/umlaut (13/6)

A
, capital A w/umlaut (12/4)

>

Apostrophe
Greater than

y
X

C
V
B
N
M
Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-106

Austrian/German Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

Unshifted

Shifted

011
C11

@ Commercial at
] Closing bracket

'\ Backslash
[ Opening bracket

Austrian/German Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position

-------EOO
E03
Ell
E12
011
C10
C11

Unshifted

---------

Dead
3
~ German small sharp s (7/14)
Dead
ij small u w/umlaut (7/13)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)

Shifted

------A

§

?

,

U
0

A

Circumflex char
Section sign (4/10)
Question mark
Open quote
Capital U w/umlaut (5/13)
Capital Ow/umlaut (5/12)
Capital A w/umlaut (5/11)

Austrian/German Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
--------

EOO
E03
Ell
E12
011
C10
C11

mDmDomD™

Unshifted

Shifted

Dead
3
~ German small sharp s (7/14)
Dead
Dead
0 small o with umlaut (7/12)
Dead

Circumflex char
Section sign (4/10)
? Question mark
, Open quote
Dead
Capital 0 w/umlaut (5/12)
Dead

---------

Digital Internal Use Only

A

§

o

EL-00070-06
VSRM - Keyboard Processing
6.14.13

19-Apr-1988

Page 6-107

Dutch Keyboard (2nd, LK201-NH)

The Dutch keyboard is equivalent to the North American keyboard.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard
6.14.14

19-Apr-1988

Page 6-108

~rocessing

Dutch Keyboard (1st, LK201-AH)

8-bit Characters, Typewriter Keys
Position

EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

DOS
006

D07
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

Unshifted

Shifted

[Tilde mark]

, Apostrophe
/ Slash

D Degree sign
'" one-qrtr
~ one-half
£ British pound
$ Dollar sign
% Percent sign
# Number sign
& Ampersand
( Opening parenthesis
( Closing parenthesis
§ Section sign
" Quotation marks
Colon

q
w

w

1
2
3
4

5
6
7
8
9

o

Q

e

E

r
t

R

.,

T
Y
U
I

u
i
o
p

o
P

[Circumflex accent]
* Asterisk

[Dieresis]
Exclamation mark

a

A

s

S

o

d
f
g
h
j
k.
I

F
G
H

J
K
L

- Hyphen, Minus
[Grave accent]
@ Commercial at
< Less Than
z

Underline
TAcute accent]
I Vertical line
> Greater than

x

X
C

c
v

Z

b

V
B

n

N

m

M

, Comma
Period
+ plus

? Question mark

semicolon

= Equals

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-109

Dutch Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

--------

---------

-------

E02
E03
E10

2
3

0

Opening bracket
Closing bracket
\ Backslash
[
]

Dutch Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshi:eted

--------

---------

EOO
E01
E02
E03
E06
E10
011
C11
Cl2

Dead
1
2
3
6
0
Circumflex Character
, Open
quote
Dead
A

Shifted
------Dead
~ one-qrtr (7/13)
~ one-half (5/12)
£ British pound (2/3 )
Dead
Dead
", Dieresis
Apostrophe
I Vertical line

Dutch Keyboard, 7-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E01
E02
E03
E06
E10
Cll
Cl2

unshifted

Shifted

Dead

Dead
~ one-qrtr (7/13)
Dead
Dead
Dead
Dead
, Apostrophe
I vertical line

--------1

2
3
6
0

,

Open quote
Dead

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.1~

Page 6... 110

19-Apr-1988

Italian Keyboard (LK201-AI)

8-bit Characters, Typewriter keys
Shifted

position

Unshifted

EOO

[Grave accent]
£ British pound sign (10/3)
, Small e with acute (14/9)
" Quotation marks
, Apostrophe
Opening parenthesis
Underline
e small e with grave (14/8)
[Circumflex accent]
g Small c with Cedilla (14/7)
a Small a with grave (14/0)
) Clo'sing parenthesis
- Hyphen, -Minus

+ plus

q

Q

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

DOS

006
007
008
009
D10
011
012

[Tilde mark]
1
2
3

4
5
6
7
8
9

o
o

z

Z

e

E
R

r
t

Degree sign (11/0)

T
Y

y
u
i
o

U
I

o
P

P
i Small i with grave (14/12)
$ Dollar sign

- Equals
& Ampersand

COl

a

A

C02
C03
C04

s

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
803
B04
B05
B06
'507
B08
B09
B10

mDmaomD™

5

o

d
f
g
h
j
k
I

F
G
H

J
K
L

m

M

u with grave (15/19)
* Asterisk
<.Less Than
w

% Percent sign
§ Section sign (10/7)
> Greater than

u Small
x
c

v
b
n

W
X
C
V
B
N

, Comma
; Semicolon
. Colon
o Small 0 with grave (15/2)

Digita~

Interna~

Use

On~y

? Question mark
Period
/ Slash
Exclamation point

EL-0007Q--06
VSRM - Keyboard Processing

, 19-Apr-1988

Page 6-111

Italian Keyboard, 8-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position

-------EOI
E02
E09
ElO
C12

Unshifted

---------

Commercial at
Number sign
[ Opening bracket
] Closing bracket
* Asterisk

@

*

Shifted
-------

1
2
9
0

\ Backslash

Italian Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position

-------EOO
EOI
E02
E07
E09
E10
Ell
Dll
ell
C12
B09
B10

Unshifted

---------

[Grave accent]

£ British pound sign (2/3)

e
e
c;:
a

Small e with acute (5/13)
small e with grave (7/13)
Small c w/Cedilla (5/12)
Small a with grave (7/11)
) Closing parenthesis
i Small i with grave (7/14)
U Small u with grave (6/0)
* Asterisk
Colon
0 Small 0 with grave (7/12)

.

Shifted

------Dead
1
2
7
9
0
0
Degree sign (5/11)
== Equals
% Percent sign
§ Section sign (4/0)
/ Slash
Exclamation point

Italian Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position

Unshifted

EOO
EOI
E02
E07
E08
E09
ElO
Ell
D1l
Cll
C12
B09
BlO

, Open Quote
@ Commercial at
Number sign
Dead
Circumflex Character
[ Opening bracket
] Closing bracket
) Closing parenthesis
Dead
Dead
* Asterisk
: Colon
Dead

mD~DDmDTM

*
A

Digital Internal Use Only

Shifted
- Tilde Char
1
2

7

a
9
o
Dead

= Equals
% Percent sign
\ Backslash
/ Slash
Exclamation point

EL-00070-06
VSRM - Keyboard Processing
6.14.16

19-Apr-1988

Page 6-112

Swiss (French) Keyboard (LK201-AK)

8-bit Characters, Typewriter keys
Posi tion .

Unshifted

EOO

! Exclamation mark
1
2
3
4

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

DOS
006
007

DOe
009
010
011
012

COl

5
6
7
8
9

o

, Apostrophe
[Circumflex accent]
q
w

e
r

Shifted
a

Degree sign (11/0)

+ Plus
" Quotation marks
Asterisk
9 Small c w/Cedilla (14/7)
% Percent sign
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]

*

Q
W
E
R
T

t

z

Z

u
i
o

U
I

o

p

P

e

small e with grave (14/8)
[Dieresis]
a

s

small u w/umlaut (15/12)
[Tilde mark]

ij

A

C02
C03
C04

d
f

o

COS

g

G

C06
C07
C08
C09
C10
C11
C12
800
801
802
803
804
805
806
807

h
j
k
I

H

Small e with acute (14/9)
Small a with grave (14/0)
$ Dollar sign
< Less Than

small 0 w/umlaut (15/6)
small a w/umlaut (14/4)
£ U.K. Pound (10/3)
> Greater than

80e

Comma
Period
- Hyphen, Minus

809
810

momDomD™

S
F

J
K

L

e
a

o
a

y

y

x

X

c

C

v
b

V
8
N

n
m

M

Digital Internal Use Only

Semicolon
Colon
Underline

19-Apr-1988

EL-00070-06
VSRM - Keyboard Processing

Page 6-113

Swiss (French) Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

unshifted

Shifted

--------

---------

-------

E04
011
C10
C11
C12

4

@

small e with grave ( 14/8)
Small e with acute (14/9)
Small a with grave (14/0 )
$ Dollar sign

\

e
e
a

[
]

i

Commercial at
Backslash
Opening bracket
Closing bracket
Number sign

Swiss (French)' Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position

-------EOO
E04
011
012
C10
C11
C12
B10

Unshifted

Shifted

-------

---------

! Exclamation mark

4

e small e with
[Dieresis]
e Small e with
a Small a with

grave (5/15)
acute (5/11)
grave (4/0)

$ Dollar sign
- Hyphen, Minus

Dead
9 Small
U small
Dead
0 small
a small
Dead
Dead

c w/Cedilla (5/12)
u with umlaut (7/13)
ow/umlaut (7/12 )
a w/umlaut (7/11)

Swiss (French") Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

-------EOO
E04
E12
011
012
C10
C11
C12

mDmDomD™

Unshifted

Shifted

---------

-------

!

Exclamation mark

4
A

Circumflex Char
Dead
" Quotation marks
Dead
Dead
$ Dollar sign

Digital Internal Use Only

Dead
@ Commercial at
'Open Quote
\ Backslash
T~lde Char
[ Opening bracket
] Closing bracket
i Number sign

-

EL-00070-06
VSRM - Keyboard Processing
6.14.17

19-Apr-1988

page 6-114

Swiss (German) Keyboard (LK201-AL)

8-bit Characters, Typewriter keys
Position

Unshifted

Shifted

EOO

1 Exclamation mark

o

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

1

+ Plus

2
3
4

Quotation marks
Asterisk
9 Small c w/Cedilla (14/7)
% Percent
& Ampersand
/ Slash
( opening parenthesis
) Closing parenthesis
- Equals
? Question mark
[Grave accent]

DOS
006
007
008
009
010

011
012
COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12
800
801
,802
803
804
805
806
807
808
809
810

mDmDDmD™

(11/0)

n

*

5
6
7
8
9

o

, Apostrophe
[Circumflex accent]

q

Q

w
e

W

r
t

R

E

T

z

Z

u
i
o

U
I

o
P

P

ij

small u w/umlaut (15/12)
[Dieresis]

e

a

A

small e with grave (14/8)
[Tilde mark]

s

S

d
f
9
h
j
k

D
F

G
H

J
K
L

I

o

Degree sign

small 0 with umlaut (15/6)

it small a with umlaut (14/4)
$ Dollar sign
< Less Than
y
x
c

e
a

Small e
Small a
£ 8ritish
> Greater

with acute (14/9)
with grave (14/0)
pound sign (10/3)
than

y
X

C

v

V
8
N
M

b

n
m

Comma
Period
- Hyphen, Minus

Digital. Internal. UseOnl.y

Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-115

Swiss (German) Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

Unshifted

--------

---------

E04
011
C10
C11
C12

Shifted
-------

4

@

ii small u w/umlaut (15/12)

\

0 small 0 with umlaut (15/6) [
a small a with umlaut (14/4) ]
$ Dollar sign
#

Commercial at
Backslash
Opening bracket
Closing bracket
Number sign

Swiss (German) Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position

Unshifted

Shifted

--------

---------

-------

EOO
E04
011
012
C10
C11
C12
B10

! Exclamation mark

Dead
Small
~
ii small u with umlaut ( 7/13) e small
[Dieresis]
Dead
0 small o with umlaut (7/12) e Small
a small a with umlaut (7/11) a Small
Dead
$ Dollar sign
- Hyphen, Minus
Dead
4

c w/Cedilla (5/12)
e with grave (5/15)
e with acute ( 5/11 )
a with grave (4/0 )

Swiss (German) Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
--------

EOO
E04
E12
011
012
C10
C11
C12

mDmDomo™

Unshifted

--------!

Exclamation mark

4
"

Circumflex Char
Dead
" Quotation marks
Dead
Dead
$ Dollar sign

Digital Internal Use Only

Shifted
-------

Dead
@ Commercial at
, Open Quote
\ Backslash
Tilde Char
[ Opening bracket
] Closing bracket
# Number sign

-

EL-00070-06
VSRM - Keyboard processing
6.14.18

19-Apr-1988

Page 6-116

Swedish Keyboard (2nd, LK201-NM)

8-bit Characters, Typewriter keys
Position

Unshifted

Shifted

EOO
EOl
E02
E03
E04
E05
E06
E07
E08
E09
ElO
Ell
El2
DOl
D02
D03
D04
DOS
D06
007
DOS
D09
D10
Dl1
Dl2
COl
C02
C03
C04
COS
C06
C07
COS
C09
C10
C11
Cl2
800
801
802
803
804
805
806
807
808
809
810

... Tilde Char
1

Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
, Open Quote

mDmDDmD™

2

3
4
5
6
7
8
9

o

+ plus
A

Circumflex Char

q
w

o

Q
W
E

e
r
t

R

y

Y
U
I

T

u
i
o
p

o
P

a

Small a with ring (14/15)
U small u with umlaut (15/12)

A Capital

a

A

o Capital

s

S

d
f

D
F
G
H
J
K
L

g
h
j
k
1

o
a

small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than
z
x
c

o Capital
*

Z

n

M

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Asterisk

> Greater than

m

b

0 w/umlaut (13/6)

A capital A w/umlaut (12/4)

X
C
V
8
N

v

A with ring (12/5)
U w/umlaut (13/12)

Semicolon
Colon
Underline

EL-00070-06
. VSRM - Keyboard Processing

19-Apr-1988

Page 6-117

Swedish Keyboard, 8-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

E03
D11
D12
C10
C11

3
] Closing bracket
i Number sign
} Close brace
I Vertical line

@ commercial at
[ Opening bracket
\ Backslash
{ Open brace
I Vertical line

Swedish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E03
E12
D11
D12
C10
C11

Unshifted

--------..

Dead
3
Dead
a Small a with ring (7/13)
ii small u with umlaut (7/14 )
0 small 0 with umlaut (7/12 )
a small a with umlaut (7/11 )

Shifted
-------

Dead
Dead
Dead
A Capital A with ring (5/13)
ij Capital U w/Umlaut (5/14 )
0 Capital 0 w/umlaut ( 5/12)
A Capital A w/umlaut (5/11)

Swedish Keyboard, 7-bit Characters, Data Processing keys
(Where differ-ent from a-bit Characters, Typewriter keys)
Position

-------EOO
E03
D11
D12
C10
C11

mDmDomD™

Unshifted

--------..

Tilde Char

3
] Closing bracket

# Number sign
} Close Brace

I Vertical line

Digital Internal Use Only

Shifted

-------

Dead
@ Commercial at
[ Opening bracket
\ Backslash
{ Open Brace
I Vertical line

EL-00070-06
VSRM - Keyboard Processing
6.14.19

19-Apr-1988

Page 6-118

Swedish Keyboard (1st, LK201-AM)

8-bit Characters, Typewriter keys
Position

Unshifted

Shifted

EOO

[Tilde mark]
1
2
3

Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004

4

5
6
7

8
9

o

+ plus
[Circumflex accent]

o

q

Q

w
e

DOS

t

006
D07
008
009
010
011
012

y
u
i

W
E
R
T
Y
U
I

o

o

p

P

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

r

a

Small a with ring (14/15)
A Capital A with ring (12/5)
U small u with umlaut (15/12)
Capital U w/Umlaut (13/12)
a
A
s
S

o
o

d
f
9
h
j
k
1

F

G
H
J
K
L

a

small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than
Z

a
x

o Capital

0 w/umlaut (13/6)
w/umlaut (12/4)

A Capital A
* Asterisk

> Greater than

Z

X
C

c
v

V
B
N

b
n
m

M

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-119

Swedish Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

E03
011
012

3
] Closing bracket
• Number sign

@ Commercial at
[ Opening bracket
\ Backslash

Swedish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E03
E12
011
012
C10
C11

Dead
3
Dead
a Small a with ring (7/13)
il small u with umlaut (7/14)
o small 0 with umlaut (7/12)
a small a with umlaut (7/11)

--------

---------

Shifted

-------

Dead
Dead
Dead
A Capital
(j Capital
0 Capital
A Capital

A with ring (5/13)
U w/umlaut ( 5/14 )
0 w/umlaut (5/12)
A w/umlaut ( 5/11)

Swedish Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
EOO
E03
E12
011
012
C10
C11

mDmDomD™

-Unshifted
Dead
3
Dead
Dead
i Number sign
o small 0 with umlaut (7/12)
a small a with umlaut (7/11)

Digital Internal Use Only

Shifted
Dead
Dead
Dead
Dead
Dead
Capital 0 w/umlaut (5/12)
A Capital A w/umlaut (5/11)

o

EL-00070-06
VSRM - Keyboard Processing
6.14.20

19-Apr-1988

Page 6-120

Norwegian Keyboard (2nd, LK201-EN)

8-bit Characters, Typewriter keys
Position

Unshifted

--------

-1 Tilde

EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
CO2
C03
C04
C05
C06
C07
C08
C09
e10
ell
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

~DmDDmDTM

---------

Char

2
3
4
5
6
7
8
9
0
+, Plus
Apostrophe
q
w
e
r
t
Y
u
i

a

@

"
#
$
%
&

/
(
)

=
?
,

Commercial at
Exclamation mark
Quotation marks
Number sign
Dollar sign
Percent
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open quote

Q

w
E
R
T
y

U
I

0
P

0

P

Shifted

-------

Small a with ring (14/5)

" Quotation marks

A Capital A wiring (12/5)
A

a
s
d
f
g
h

A
S
0

Circumflex Character

F

G
H

j

J

k
1

K

~
12

".IE Capital
Capital

L

Small 0 with slash (15/8)
Small ae dipthong (14/6)
, Apostrophe
< Less Than
z
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus

Digital Internal Use Only

*

0 w/slash (13/8)
AE dipthong(12/6)

Asterisk

> Greater than
Z
X

C
V
B
N
M
Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-121

Norwegian Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

011
C10

} Closing brace
I Vertical bar
{ Opening brace

] Closing bracket
\ Backslash
[ Opening bracket

ell

Norwegian Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

--------

--------a Small a

with ring (7/13)
f2I Small o with slash
(7/12)
a! Small ae dipthong (7/11 )
Comma
period
- Hyphen, Minus

011
C10
C11
B08
B09
B10

Shifted

-------

A Capital A w/ring (5/13)
Capital 0 w/slash (5/12)
Capital AE dipthong (5/11)
; Semicolon
Colon
Underline

fa

1£

..

Norwegian Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------011
C10
C11

mDmDomD™

.

Unshifted
--------} Closing brace
I vertical bar
{ Opening brace

Digital Internal Use Only

Shifted

-------

] Closing bracket

\
[

Backslash
Opening bracket

EL-00070-06
VSRM - Keyboard Processing
6.14.21

19-Apr-1988

Page 6-122

Norwegian Keyboard (1st, LK201-AN)

8-bit Characters, Typewriter keys
Position

unshifted

Shifted

EOO

[Tilde mark]
1
2
3

Degree sign
Exclamation mark
" Quotation marks
S Section sign
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]

E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

momDomD™

4

5
6
-7
8
9

o

+ plus
[Acute accent]

o

q

Q

w
e

W
E
R

r
t

u
i

T
Y
U
I

o

o

y

p

p

a

Small a with ring (14/5)
[Dieresis]
a

A Capital

s

S
D

d
f
g
h
j
k
I

A wiring (12/5)
[Circumflex accent]

A

F

G
H

J
K
L

m Small

0

with slash (15/8)

m Small ae dipthong (14/6)
, Apostrophe

< Less Than
z

e

Capital 0 w/slash (13/8)
Capital AE dipthong(12/6)
* Asterisk
> Greater than

~

c

Z
X
C

v
b
n

V
B
N

m

M

x

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070;;..06
VSRM - Keyboard processing

19-Apr-1988

Page 6-123

Norwegian Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

-------E03
D11
C11

Unshifted

Shifted

---------

-------

3

@

Closing bracket
# Number sign

[ Opening bracket

]

Commercial at

'\ Backslash

Norwegian Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position

Unshifted

Shifted

EOO

Dead
3
Dead
a Small a with ring (7/13)
[Dieresis]
m Small 0 with slash (7/12)
~ Small ae dipthong (7/11)

[Ring mark]
Dead
Dead
A Capital A wiring (5/13)
Dead
o Capital 0 wlslash (5/12)
m Capital AE dipthong(5/11)

E03
E12
D11
D12
C10
C11

Norwegian Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

unshifted

Shifted

EOO

Dead
3
Dead
Dead
[Dieresis]
m Small 0 with slash (7/12)
# Number sign

[Ring mark]
Dead
Dead
Dead
Dead
o Capital 0 wlslash (5/12)
Dead

E03
E12
D11
D12
C10
C11

mDmDomo™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.22

19-Apr-1988

Page 6-124

Belgian/French Keyboard (LK20l-AP)

8-bit Characters, Typewriter keys
position
EOO
EOI
E02
E03
E04
E05
E06
E07
E08
E09
ElO
Ell
El2
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
ClO
Cll
Cl2
BOO
BOI
B02
B03
B04
B05
B06
B07
B08
B09
BlO

mDmDomo™

Unshifted

Shifted

[Grave accent]

[Tilde mark]

& Ampersand

1
2
3
4

e

Small e with acute (14/9)
" Quotation marks
, Apostrophe
( Opening parenthesis
§ Section sign (10/7)
e small e with grave (14/8)
Exclamation point
9 Small c w/Cedilla (14/7)
Small a with grave (14/0)
) Closing parenthesis
Hyphen, Minus

a

5
6

7
8
9

o
o

a
z
e

A

r

R
T
Y

z

E

t
y
u
i

U
I

o
p
[Circumflex accent]
$ Dollar sign
q
s
d
f
g
h
j
k
I
m

<

o
P

[Dieresis]

* Asterisk
Q
S

o
F
G
H

J

u Small
i

Degree sign (11/0)
underline

u with grave (15/9)
Number sign
Less Than

K
L
M

% Percent sign
@ Commercial at sign
> Greater than

w

w

x

X
C

c
v

V

b
n
, Comma
Semicolon
Colon
= Equals

Digital Internal Use Only

B
N

? Question mark

Period
Slash
+ plus

/

EL-00070-06
VSRM - Keyboard Processing

Page 6-125

19-Apr-1988

Belgian/French Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
position

-------E06
E07
C11

Unshifted

---------

Opening bracket
Closing bracket
\ Backslash
[
)

Shifted

------6
7

% Percent sign

Belgian/French Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

-------EOO
E02
E06
E07
E09
E10
Ell
C11
C12

Unshifted

---------

[Grave accent]
Small e with acute (7/11)
Section sign (5/13)
small e with grave (7/13 )
Small c w/Cedilla (5/12)
Small a with grave (4/0 )
) Closing parenthesis
ii Small u wi th grave (7/12 )
Dead-

,
e
S
e

Shifted
-------

Dead
2
6
7
9
0
0
Degree sign ( 5/11)
% Percent sign
Dead

Belgian/French Keyboard, 7-bit Characters, Data processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E02
E06
E07
E09
E10
Ell
D11
C11

Open Quote
Dead
[ Opening bracket
] Closing bracket
Dead
Dead
) Closing parenthesis
....
Circumflex Char
\ Backslash

--------

mDmDomD™

--------,

Digital Internal Use Only

Shifted

------..

Tilde Char

2

6
7
9
0
Dead
" Quotation marks
% Percent sign

EL-00070-06
VSRM - Keyboard processing
6.14.23

19-Apr-1988

Page 6-126

Spanish Keyboard (LK201-AS)

8-bit Characters, Typewriter keys
position

Unshifted

EOO

l

E01
E02
E03
E04

1

EOS

5
6
7
8

E06
E07

EOa
E09
E10
Ell
E12
001
002
003
004

DOS
006
D07

Doa
009
010

011
012

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04

BOS
B06
B07
B08
B09
B10

momDDmD™

Shifted

Inverted Question (11/15)
"
#
$
%

2

3
4

&

9

o

, Apostrophe
Masc. ordinal ind (11/10)

2

q
w

/
(
)
-

?

A
Q

Inverted exclamation (10/1)
Exclamation point
Quotation marks
Number sign
Dollar sign
Percent sign
Ampersand
Slash
Opening parenthesis
closing parenthesis
Equals
Question mark
Fem. ordinal ind (10/10)

w

e

u
i

E
R
T
Y
U
I

·0

o

r
t

y

P
[Grave accent]
+ Plus

P

a
s

A
S

[Circumflex accent]
Asterisk

*

d
f
9
h
j
k
I

o

z

Z
X

F
G
H

J
K
L

n

Small n with Tilde (15/1) N Capital N w/Tilde (13/1)
[Acute accent]
[Dieresis]
[Tilde mark]
~ Small c w/Cedilla (14/7)
< Less Than
> Greater than

x
c
v
b
n
m

C

V
B
N
M

Comma
Period
- Hyphen, Minus

Digital Internal Use Only

; Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988.

Page 6-127

Spanish Keyboard, a-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position

Unshifted

Shifted

EOO

@ Commercial at
] Closing bracket

\ Backslash
[ Opening bracket

E12

Spanish Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position

unshifted

Shifted

EOO

Inverted Question (5/13)
3
Dead
fi Small n w/Tilde (7/12)
9 Small c w/Cedilla (7/13)

i Inverted exclamation (5/11)
Dead
Dead
N Capital N w/Tilde (5/12)
[Tilde mark]

E03
El2
C10
C12

l

Spanish Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

EOO
E12
D11
C10
C11
C12

mDmDomD™

Unshifted

@ Commercial at
. ] Closing bracket
, Open quote
Dead
, Apostrophe
Dead

Digital Internal Use Only

Shifted
\ Backslash
[ Opening bracket
Circumflex character
Dead
" Quotation marks
- Tilde character
A

EL-00070-06
VSRM - Keyboard processing
6.14.24

19-Apr-1988

Page 6-128

portuguese Keyboard (LK20l-AV)

8-bit Characters, Typewriter keys
Position

Unshifted

Shifted

EOO
EOI
E02
E03
E04
EOS
E06
E07
E08
E09
ElO
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
ClO
Cll
C12
BOO
BOI
B02
B03
B04
BOS
B06
B07
B08
B09
B10

Backslash
1
2
3
4
5
6
7
8
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t

vertical line
Exclamation point
@ Commercial at
Number sign
$ oollar sign
% Percent sign
" Quotations
& Ampersand
* Asterisk
Opening parenthesis
Closing parenthesis
Underline
+ Plus

--------

mDmDDmD™

---------

"

*

Q
W
E
R

T
Y
U
I

Y
u
i
0

o

P
[Acute accent]
] Closing bracket
a
s
d
f
g
h

P

[Grave accent]
} Closing brace
A

S

o
F
G
H

j

J

k
1

K
L

~

~

Small c w/cedilla (14/7)
[Tilde mark]
[ Opening bracket
< Less Than
z
x
c
v
b
n
m
Comma
Period
/ Slash

Digital Internal Use Only

Capital C w/cedilla (12/7)
[Circumflex accent]
{ Opening brace
> Greater than

z

X
C
V
B
N
M

Semicolon
Colon
? Question mark

BL-00070--06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-129

Portuguese Keyboard, 8-bit Characters, Data Processing keys
8-bit Characters Data Processing Keys are the same-as 8-bit
Characters Typewriter Keys.
Portuguese Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

BOO

Dead
Dead
9 Small c wlCedilla (7/12)
Dead

Dead
Dead
~ Capital C w/Cedilla (5/12)
Dead

012
C10
C12

portuguese Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

011
C10
C11

Apostrophe
Dead
Tilde character

--------

.~DmDDmDTM

--------,

-

Digital Internal Use Only

Shifted

------, Open quote
Dead
... Circumflex character

EL-00070-06
VSRM - Keyboard Processing
6.14.25

19-Apr-1988

Page 6-130

DECmate/WPS Main Key Array

Th~ LK201-Bx Main Key Array is identical tOLK20l- Ax class, where
x specifies the country, except that the Delete Key (El3) has the
words Word and Char inste~d of Delete along with the "delete
backward" symbol. In addition, the LK201-Bx main key array has
the following gold legends on the front edge of the keys as shown
below for the North American Version LK201-BA.

Id
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
C13
BOO
B01
B02

Lower

Upper
-----

quote
1
2
3
4
5
6
7
8
9
0
- minus
- equals

.. tilde
ex.clamation mark
@ Commercial at
i number sign
$ dollar sign
% percent
... circumflex
& ampersand
* asterisk
( open paren
) close paren
-+ underline
plus

----, open

0

W
E
R
T

Front edge

---------Halt

Print Hyph
Abbrv
Super Script
Ruler
Top Docmt

y

U
I
0

P
[ open bracket
{ open brace
] close bracket } close brace

A
S
0
F
G
H

Page Marker
Cmnd
Sub Script
Dead Key
File Docmt
Get Docmt

J

K
L
; semicolon

,

apostrophe
\ backslash
Return
< less than
Z

Libry
colon
" double quote
vertical line

> greater than

x

mDmDDmD™

Digital Internal Use Only

Replc
Date & Time
Para marker

EL-00070-06
VSRM - Keyboard processing

page 6-131

19-Apr-1988

LK201- BA Main Key Array Continued
rd
B03
B04
B05
B06
B07
B08
B09
B10

Lower

Upper

-----

-----

C
V
B
N
M

Center
View
Bot Docmt
New Page
Menu
, comma
Srch
period
cont Srch
? question mark cont Srch

,

comma
period
/ slash

.

mDmDomD™

Front edge

----------

.

Digital Internal Use Only

&

Sel

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-132

The LK201-PA is identical to the LK201-NA and the LK201-PE is
identical to the LK201-RE except for the gold legends on the front
edge. Note that the gold legends on the front edge of the LK201Px are not identical to the LK201- Bx.
The difference between the LK201-RE and the LK201-NA is the front
legends on the editing and numeric keypads. Therefore, the
example below shows the LK201- Px, where x can be either {A, E}.

6.14.25.1

English WPS- LK201- {PA, PEl Legend

Id

EOO
E01
E02
E03
E03**
E04
E05
E06
E07
E08
E09
E10
Ell
E12
E13

Lower

Upper

, open quote

- tilde ch
exclamation mark
@ Commercial at
# number sign

1
2
3
3
4
5
6

7
8
9

o

- minus
- equals

DOS

T

011

012

$ dollar sign
% percent
circumflex
& ampersand
* asterisk
open paren
close paren
underline
-+ plus
A

 greater than

Libry
Global Replc
Replc
Date & Time
Para Marker
Status

Z
X

C
V

B
N
M

, comma
• period
/ sl-ash

, comma
. period
? question mark

Digital Internal Use Only

Center
View
Bot Docmt
New page
Menu
Srch
Cont Srch
Cont Srch & Sel

EL-00070-06
VSRM - Keyboard Processing
6.15

19-Apr-1988

Page 6-134

COMPOSE OPERATION

Compose is used to generate characters which cannot be typed
directly from the keyboard. Since there are many keyboards, some
characters will be producible both via compose and via direct
keyboard input. Characters often generated by compose include
many of the accented European characters, special symbols such as
the Yen Sign, and other normal characters not available on the
particular keyboard.
There are two forms of compose sequences:
1.

Implied compose sequence - a two key sequence initiated
by a Non-spacing Diacritical key.

2.

Explicit compose sequence - a three key sequence
initiated by the Compose key.

Graphic character keys used during an implied or explicit compose
sequences are not auto-repeatable. This prevents the terminal
user from accidentally repeating a key during a compose sequence.

6.15.1

Compose with The Use Of The COMPOSE Key

All characters which are not directly available on the keyboard
can be generated with the use of the COMPOSE key followed by a two
character generating sequence called a compose sequence. Many
composable characters have more than one compose sequence, and can
therefore be composed in more than one way. To compose a
character the user types the following 3 keystrokes:
1.
2~

3.

COMPOSE
Character 1 (or Mark)*
Character 2 (or Mark)*
* Mark is used to mean a non-spacing diacritical mark or
accent.

When the user types the COMPOSE key, the COMPOSE LED is turned on
to indicate that a compose is in progress. When the compose ends
either successfully, by the depression of the delete key, or with
an error, then the COMPOSE LED is turned off. If the Character 1
and Character 2 pair form a valid compose sequence, then the
compose is successful and the composed character is sent. If the
Character 1 and Character 2 pair do not form a valid compose
sequence then the Warning Bell rings once, if enabled in Set-up,
to indicate a compose error, and no character is ~ent.

mDmDomD™

Digita1 Interna1 Use On1y

19-Apr-1988

EL-~0070~06

Page 6-135

VSRM - Keyboard Processing
6.15.2

Compose with The Use Of Non-Spacing Diacritical Marks

Many characters which are not directly available on the keyboard
can be generated with the use of the implied compose feature.
Non-Spacing Diacritical keys do not independently transmit
character codes, but shall be used in combination with other keys.
When these marks are typed an "implied compose" begins with the
non-spacing diacritical mark as the first half of the compose
sequence. Such an implied compose consists of two keystrokes as
follows:
1.
2.

Non-Spacing Diacritical Mark
Character

When the user types the non-spacing diacritical mark, the COMPOSE
LED is turned on to indicate that a compose is in progress. When
the compose ends either successfully, by depression of the delete
key, or with an error, then the COMPOSE LED is turned off. If the
non-spacing diacritical mark and character pair form a valid
compose sequence, then the compose is successful and the composed
character is sent. If the non-spacing diacritical mark and
character pair do not form a valid compose sequence then the
Warning Bell rings once, if enabled in Set-up, to indicate a
compose error, and no character is sent.

Digital Internal Use Only

19-Apr-1988

EL-00070-0&
VSRM - Keyboard Processing
6.15.3

Page 6-136

Composing Arbitrary 8-bit Characters (VT330/340 Only, Not
Mandatory)

When the user types the COMPOSE key, and follows that key with two
keys from the numeric keypad, an arbitrary 8-bit character is
generated based on which numeric keypad keys are pressed. The two
keys pressed specify an 8-bit code in hexadecimal digits: the 0
through 9 keys specify the hexadecimal digits 0 through 9; the
hexadecimal digits A through F are specified by the following
keys:
Key Name
Hexadecimal Digit
PF1
PF2
PF3
PF4
Minus
Comma

A
B
C

o
E

F

The entire numeric keypad can then be thought of as a hexadecimal
keypad:
+---+---+---+---+
I A I B I C 101
+---+---+---+---+
I 7 I 8
I 9 I E I
+---+---+---+---+
I 4 I 5 I 6 I F I
+---+---+---+---+
I

1

I

2

I

3

I

*

* pressing either the Enter or
Period keys will abort the
compose sequence, and cause the
function key to be sent to the
host.

I

+---+---+---+
I
I
0
I
* I
I
+-------+---+---+

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-137

Notes:
1.

Mixing a numeric keypad key and a main keypad key is not
allowed, and will cause an error condition: the COMPOSE
is aborted and the warning Bell is rung.

2.

Arbitrary 8-bit composition obeys the C1 transmission
state.
If 7-Bit Controls are enabled, and C1 control
generated by using compose on the numeric keypad is sent
in the 7-Bit ESC Fe form.

3.

In VT52, VT100, and 4010/4014 modes,or in National
character set mode, full 8-bit characters may not be
generated by using compose on the numeric keypad.
If the
VT330/340 is in one of these modes, and the first key hit
on the numeric keypad is 8, 9, PF1, PF2, PF3, PF4, Minus,
or Comma, the COMPOSE is aborted and the Warning Bell is
rung.

4.

This function is not affected by the setting of DECNKM
(Numeric Keypad mode).

momDomD

TM

Digital Internal Use Only

EL-00070-06
VSRM- Keyboard Processing
6.15.4

19-Apr-1988

Page 6-138

Use Of The COMPOSE Key When A Compose Is Already In
Progress

If the compose key is pressed while a compose sequence is in
progress then the current compose sequence will be terminated and
a new sequence will begin. The compose indicator remains on, the
warning bell is not rung, no code is transmitted and a keyclick is
generated if enabled.

6.15.5

Use Of The DELETE Key When A Compose Is Already In
Progress

Typing the DELETE key will abort the compose immediately. No
character is sent, the COMPOSE LED is turned off and the bell is
not rung.

momDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.15.6

19-Apr-1988

Page 6-139

Keystrokes Which Abort Compose Immediately

A keystroke on any of the following keys aborts the compose in
progress, does not ring the bell, sends no character codes, turns
off the COMPOSE LED, and performs the local function normally
performed by the keystroke:
o
o
o
o
o

Hold Screen Key
Print Screen Key
Set-up Key
Switch Session Key
Break Key

A Keystroke on any of the following keys (or key combinations)
aborts the compose in progress, does not ring the bell, does not
send the character code for any character entered earlier in the
compose sequence, and sends the character code or codes normally
transmitted by the keystroke which aborts the sequence:
o
o
o
o
o
o
o

Keypad keys
Function keys F6 through F20 including HELP and DO
Tab key
Return key
Ctrl-A through Ctrl-Z and all other Ctrl-Key combinations
which produce control codes
Edit keypad keys
ESC, BS and LF (F11, F12 and F13 in VT100 mode)

The Delete key aborts the compose, does not ring the bell, sends
no character codes and turns off the COMPOSE LED.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.7

19-Apr-1988

page 6-140

Keystrokes Which Do Not Affect Compose Directly

The following keys do not affect compose directly but they may
affect compose indirectly. Their actions.are the normal keyboard
actions:
o
o

6.15.8

Shift
Control (When held alone)

Order And Case within Compose Sequences

The importance of the order and case (upper or lower) of the two
characters used to form a compose sequence depends on the
character being composed.

6.15.8.1

Order-

The sequences for characters which have an obvious order (e.g.,
the "OE" ligature or the "~" fractiori) may not be reversed, while
those for other characters may be. When the Compose key is used
to initiate the sequence, the two following keys may be depressed
in either order, unless the table entry for the composite
character says "in order". When a Non-Spacing Diacritical key is
used to initiate the sequence (implied compose), the diacritical
key precedes the other key in the sequence.

6.15.8.2

Case-

The sequences for generating alphabetic characters are case
sensitive, while those for other symbols are not.
In instances
where two alphabetic keys are used in the sequence, the minimum
conforming implementation requires that the sequences of both keys
in upper case and both keys in lower case be provided.
It is
optional to also provide the sequences in which one key is upper
case and the other lower case.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.9

19-Apr-1988

Page 6-141

Composition Conventions

Mark is used to mean non-spacing diacritical mark. Some marks are
also called accents. Each non-spacing diacritical mark has a
character associated with it in the a-bit Multinational character
sets. Note that the mark, or accent, is not strictly the
equivalent of its associated character.
Mark

Associated Character

Tilde mark
Acute accent
Circumflex accent
Ring mark
Dieresis or umlaut mark
Grave accent
Cedilla

- Tilde character
, Apostrophe
Circumflex character
o (degree sign) or asterisk
It Double quote
, Open quote
, Comma
A

Grave accent, tilde, and circumflex appear on all keyboards
Diaeresis/umlaut mark and acute accent appear on certain non-US
keyboards and are always Non-Spacing Diacritical keys.
To
distinguish diaeresis/umlaut mark from quotation marks (It) which
both appear on some keyboards, the diaeresis/umlaut mark is shown
as two raised dots and quotation marks are short vertical lines on
the key legends. Similarly, the acute accent is slanted and the
apostrophe is" shown vertical on the key legends.

6.15.9.1

Compose Sequence Error Conditions -

There are three different classes of compose sequence errors that
may occur.
The first class consists of dead keys which do not transmit any
code. These include invalid control combinations, such as ctrl-9,
and any other keys that are dead in the current operating
environment. Dead keys are ignored within a compose sequence.
The second class consists of sequences prematurely terminated by
an illegal character.
Illegal characters are all valid control
combinations and all keys not from the main array of the keyboard.
This includes Tab, Return, the Cursor Keys, keys from the Editing
Keypad, keys from the Numeric Keypad, and the function keys
(including the Local Function Keys). Such compose sequences are
terminated as soon as the illegal character/key is typed.
The
compose led is turned off, and compose mode is exited. The
offending character/key is considered to be outside of the
sequence, and is handled normally (that is, a keyclick is
generated, if enabled, and the code for the offending
character/key is transmitted). The presence or absence of a
keyclick, when enabled, indicates to the terminal user whether
anything has been transmitted to the host or not.

~DmDDmDTM

Digital" Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-142

The third class of compose errors consists of sequences containing
legal characters from the main array of the keyboard but which do
not form a valid compose sequence. Such compose sequences are
terminated after the second character is typed.
The procedure
involves sounding the error bell (if it is enabled), turning off
the Compose LED, and exiting compose mode. No code is transmitted
by the terminal and nothing is displayed on the video display for
the invalid compose sequence. The audible sound for a compose
failure may be distinguishable from the sound produced by the
receipt of the BEL control character and may be separately
disabled via Set-up as an extension to Level 2.

momDDmD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.9.2

19-Apr-1988

Page 6-143

Syntax Of Compose Sequences -

The following syntax diagrams show all possible forms of valid and
invalid explicit and implied compose sequences. All keys are
divided into the following disjoint equivalence classes:

Symbol

Meaning

C

Compose Key

d

Non-Spacing Diacritical key

a

valid first key after Compose key

b.

valid second key after Compose key or first key
after a Non-Spacing Diacritical key

x

an invalid first key after Compose key

y

an invalid second key after Compose key or first
key after a Non-Spacing Diacritical key

F

any function key or control character on the main key
array or any other key outside of the main key array
(including Local Function Keys)

D

Delete key

c

is the resulting composed one-byte character

mDmDomD

TM

Digital Internal Use Only

EL-0007.0-06
VSRM - Keyboard processing

19-Apr-1988

Syntax

Action
Transmit

LED

bell

off
off
off
off

no
no
no
no

off
off
off
off
off

no
no
no
no
no

on
on
on
on
on

no
no
no
no
no

-------

Valid:
C a b
C a d
C d b
d b

c
c
c
c

Corrected by terminal user:
C
C
C
C

a
d
x
D
d

0

D
D
D

nothing
nothing
nothing
nothing
nothing

Started over by terminal user:
C
C
C
C

a
d
x
C
d

C

nothing
nothing
nothing
nothing
nothing

y
y
b
d
y

nothing
nothing
nothing
nothing
nothing

C
C
C

errors:
C
C
C
C
C
C
C
C
C

a
x
x
x
d
a
d
x

F
F
F

F

d F
d d
d y

mDmDomD™

off
off
off
off
off
F
off
off
F
F
off
F
off
F
off
nothing off
nothing off

yes
yes
yes
yes
yes
no
no
no
no
no
yes
yes

Digital Internal Use Only

Page 6-144

EL-00070-0-6
VSRM - Keyboard Processing

19-Apr-1988

Page 6-145

6.15.9.2.1 Compose Sequence Processing - The following algorithm
defines the sequence of events which shall occur during the
processing of an explicit or implied compose sequence. The
algorithm is entered by the depression of the Compose key or a
Non-Spacing Diacritical key. The Pascal coding which follows
provides a detailed specification of the compose sequence logic.
STEP 1: Process the first keystroke after the Compose key or process
the Non-Spacing Diacritical keystroke. If the keystroke is:
(1) Any graphic character key, Space Bar, or Non-Spacing Diacritical key:
proceed to STEP 2.
(2) A control character or any key not on the main key array:
turn off the compose indicator, and exit compose mode.
Then keyclick (if enabled) and transmit the code or
sequence for the key just pressed.
(3) Delete: turn off the compose indicator and exit compose mode.
Keyclick (if enabled). Note that the error bell is not sounded
and nothing is transmitted.
(4) Compose: restart the compose sequence, keyclick (if enabled), and
transmit nothing to the host until the new sequence is completed
successfully.
STEP 2: Process the second key after the Compose key or the
key following a Non-Spacing Diacritical key. If the keystroke is:
(1) A valid graphic character key or Non-Spacing Diacritical key
(as defined in the tables) and if the preceding key
is also valid: turn off the compose indicator, keyclick
(if enabled), and transmit the corresponding DEC Multinational
character code.
(2) An invalid graphic character key or Non-Spacing Diacritical key, or
the preceding key was invalid: ring the error bell, do not key
click, turn off the compose indicator, and exit compose mode.
(3) A control character or any key not on the main key array:
turn off the compose indicator, and exit compose mode.
Then keyclick (if enabled) and transmit the code or
sequence for the key just pressed.
(4) Delete: turn off the compose indicator and exit compose mode.
Keyclick (if enabled). Note that the error bell is not sounded.
(5) Compose: restart the compose sequence, keyclick (if enabled), and
transmit nothing until the new sequence is completed successfully.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-146

PROCEDURE PROCESS COMPOSE SEQUENCE (KEY: KEY_CODE);
(*

- -

This procedure is called whenever the Compose key or a Dead
Diacritical keystroke occurs and the terminal is not already
in compose mode.
The key code of the initiating key is passed in the call.
The procedure calls the following external routines, which
should be self-explanatory:
key :- GET NEXT KEY (KEY CODE);
TURN ON COMPOSE-LED;
TURN-OFF COMPOSE LED;
RING-ERROR BELL;GENERATE KEY CLICK;
TRANSMIT-COMPOSED CHAR (KEY 1, KEY 2: KEY_CODE);
TRANSMIT-CONTROL FUNCTION (KEY_1);
It also calls the function
VALID COMPOSE SEQUENCE(KEY 1, KEY 2: KEY CODE,
SUPPLEMENTAL_SET: VALID_SUPPLEMENTAL_SETS): BOOLEAN;
which returns True if the two keys form a valid compose
sequence as defined in the tables in this section.

*)

COMPOSE = (* the key code representing the Compose key *)

CONST

DELETE TYPE

(* the key code representing the Delete key *)

KEY CODE - 0 .. 255;
SPACE GRAPHIC DIACRITICAL SET - SET OF (* The key codes
representing SPACE and graphic characters from 2/0
to 7/14 inclusive, 10/1 to 15/14 inclusive, and the
Non-Spacing Diacritical characters *);

VAR

mDmDomD

KEY 1, KEY 2: KEY CODE;
IN COMPOSE-MODE: BOOLEAN;

TM

Digital Internal Use Only

EL-00070-06VSRM - Keyboard processing

19-Apr-1988

page 6-147

BEGIN.
TURN ON COMPOSE INDICATOR;
KEY I :; KEY;
IN COMPOSE MODE:- TRUE;
(* set loop flag, clear to exit loop *)
WHILE IN COMPOSE MODE DO (* restart on Compose key *)
BEGIN
WHILE KEY 1 • COMPOSE DO
BEGIN
GENERATE KEY CLICK;
KEY 1 :.-GET:NEXT_KEY;
END;
CASE KEY 1 OF
SPACE GRAPHICAL DIACRITICAL SET:
GENERATE_KEY_CLICK;

(* have KEY_1, go get KEY 2 *)

DELETE:
BEGIN
GENERATE KEY CLICK;
IN COMPOSE MODE :- FALSE;
END

OTHERWISE:
BEGIN
IN COMPOSE MODE :- FALSE;
GENERATE KEY CLICK;
TRANSMIT-CONTROL FUNCTION (KEY_l);
END
END;
(* end case on first key of pair *)

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-148

IF IN COMPOSE MODE THEN
(* Process second key of explicit or implied compose pair *)
BEGIN
KEY 2 :- GET NEXT KEY;
CASE KEY 2 OF
SPACE GRAPHIC DIACRITICAL SET:
IF-VALID COMPOSE SEQUENCE (KEY 1, KEY 2) THEN
BEGIN T* valid pair *)
GENERATE KEY CLICK;
TRANSMIT-COMPOSED CHAR (KEY 1, KEY 2);
IN COMPOSE MODE
FALSE; END
ELSE
(* invalid pair *)
ERROR_PROCEDURE;

:=

DELETE:
( * Delete
BEGIN
GENERATE KEY CLICK;
IN COMPOSE MODE :- FALSE;
END;
COMPOSE:
( * Compose
GENERATE KEY CLICK;

*)

*)

-

OTHERWISE: (* not Compose, SPACE, graphic, diacrit. or DEL *)
BEGIN
IN COMPOSE MODE :- FALSE;
GENERATE KEY CLICK;
TRANSMIT-CONTROL FUNCTION (KEY_2);
END
END;
(* end case *)
END; (* end case on second key of pair *)
END;
(* end loop that Compose Key starts over *)
TURN_OFF_LED;
END;
(* end procedure PROCESS_COMPOSE_SEQUENCE *)
PROCEDURE ERROR_PROCEDURE;
BEGIN
RING ERROR BELL;
IN COMPOSE-MODE :- FALSE;
END;

mDmDDmD™

Digital Internal Use Only

EL-00070....,06
VSRM - Keyboard processing
6.15.10
6.15.10.1

19-Apr-1988

Page 6-149

8-bit Characters Mode Valid Compose Sequences
Compose Sequences For Characters without Diacritical
Marks -

Note when the Compose key is used to initiate the sequence, the
two following keys may be depressed in either order, unless the
table entry explicitly says "in order".
CHARACTER
I

SEQUENCES
+ +

@

a a

[

(

\

/ /

)
{

)

(
/

1

}

 No Break Space

<11 >

a

A

)

/ <

A

)

-

SP SP
1

i

 Cent
 Pound Sign
 General currency

c /
L X 0
x 0
Y -

 Yen
 Broken vertical bar 1 1
 Section Sign
S
s
 Copyright
C 0
c 0

< a> Feminine ordinal
«<> Angle quotes left
<-,> Logical not sign
 Soft hyphen
 Reg. Trademark

mamDomo™

A A

(

a

C /

1 -

X 0
x 0
Y 1

c
L x 0
y S 0
5 0
C 0

c 0

< <

, (in order)

R 0

R 0

r 0

r

0

1 -

X 0

A

S 0
s 0
C 0
c 0
A

C

R 0
r 0

Digital Internal Use Only

y S 0

s

0

19-Apr-1988

EL-00070-06
VSRM - Keyboard Processing
<-"'>
<+->
<2"'>
<3"'>


< .... >
<1">
< 0>
<»>
<14>
<12>
<34>
<11>

<-D>


<0/>



<-d>

<-:>
<0/>

<0">

Macron
Plus-minus
Superscript 2
superscript 3
Mu, Micro sign
Paragraph
Middle dot
Superscript 1
Masculine ordinal
Angle quote right
Quarter
Half
Three Quarters
Inverted 1
AE ligature
Cap Icelandic Eth
OE ligature
times sign
0 slash
Icelandic Thorn
B
ae ligature
Sm Icelandic Eth
oe ligature
division sign
0 slash
Sm Icelandic Thorn
0

tilde character
open quote
apostrophe
<,,> acute accent

"

circumflex character
double quote

<""> dieresis
<,,> cedilla

mDmDomD™

page 6-150

+ -

2 ...
3 ...

/ u

/ U (in order)

P

p

1 "
o

0

> >

1 4 (in order)
1 2 (in order)
3 4 (in order)
1 1

A E (in order)
D -

o E (in order)
x x

o /

xx

xX

T H (in order)
s s
a e (in order)
d -

o e (in order)
o /

t h (in order)

o ..

SP 0 (space degree)
SP * (space asterisk)
SP - (space tilde-mark)
SP' (space open-quote)
space grave-accent
SP' (space apostrophe)
space acute-accent
"
(apostrophe apostrophe)
acute-accent acute-accent
Sp" (space circumflex-accent)
Sp" (space double-quote>
space dieresis
""
(double-quote double-quote)
dieresis dieresis
"
(comma comma)

Digital Internal Use Only

EL-00-070--06
VSRM - Keyboard processing

19-Apr-1988 .

page 6-151

6.15.10.2 Compose Sequences For Characters With Diacritical Marks
For composition of the following composite characters, either the
mark or the associated character(s) may be used in the compose
sequence. The compose sequence consists of one of the following:
o
o
o
o
o

Mark, Basic Character
COMPOSE, Associated Character, Basic Character
COMPOSE, Basic CAaracter, Associated Character
COMPOSE, Mark, Basic Character
COMPOSE, Basic Character, Mark

Where the basic character is the alphabetic character without the
accent or mark. For example the basic character in  is U.
Mark

Associated
Character

Composite Characters

Grave Accent

, single quote 


Acute Accent

, apostrophe




Circumflex Accent A circumflex




Tilde Mark

- tilde

Dieresis
or Umlaut Mark

" quotations




Ring Mark

* asterisk
or degree



Cedilla

, comma



~DmDDmDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.10.3

19-Apr~1988

Page 6-152

Non-Spacing Diacritical Marks By Keyboard -

See the position keyboard map for details.
The following is a
list of non-spacing characters which do an implied compose. The
list is by keyboard. The most recent or recommended variation for
each dialect is listed first.
Note: This table applies to
keyboard maps (as specified in Set-Up), not physical keyboards.
1.

North American (LK201-EE US/UK or LK201-AA) - none

2.

British (LK201-EE US/UK) - none

3.

British (LK201-AE)
EOO Tilde Mark
C12 Circumflex Mark
C12 Grave Accent

4.

Flemish (LK201-AB)
EOO Grave Accent
EOO Tilde Mark
011 Circumflex Accent
011 Dieresis

(shifted)

(shifted)
(shifted)

5.

Canadian (French)
(LK201-AC)
EOO Tilde Mark
C11 Grave Accent
C11 Circumflex Accent
(shifted)

6.

Danish (2nd, LK201-ED) - none

7.

Danish (1st, LK201-AO)
EOO Tilde Mark
E12 Acute Accent
E12 Grave Accent
012 Dieresis
012 Circumflex Accent

(shifted)
(shifted)

8.

Finnish (3rd, LK201-NX) - none

9.

Finnish (1st, LK201-AF)
EOO Tilde Mark
E12 Circumflex Accent
E12 Grave Accent

mDmDDmD™

(shifted)

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

10.

Austrian/German (2nd, LK201-NG) - none

11.

Austrian/German (1st, LK201-AG)
EOO Tilde Mark
EOO Circumflex Accent
(shifted)
E12 Acute Accent
E12 Grave Accent
(shifted)

12.

Dutch (2nd, LK201-NH) - none

13.

Dutch (1st, LK201-AH)
EOO Tilde Mark
011 Circumflex Accent
011 Dieresis
C11 Grave Accent
C11 Acute Accent

14.

Italian (LK201-AI)
EOO Grave Accent
EOO Tilde Mark
E08 Circumflex Accent

(shifted)
(shifted)

(shifted)

15.

Swiss (French)
(LK201-AK)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
012 Dieresis
012 Tilde Mark
(shifted)

16.

Swiss (German)
(LK201-AL)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
012 Dieresis
012 Tilde Mark
(shifted)

17.

Swedish

18.

Swedish (1st, LK201-AM)
EOO Tilde Mark
E12 Circumflex Accent
E12 Grave Accent

19.

mDmDomD™

(2nd, LK201-NM) - none

Norwegian

(shifted)

(2nd, LK201-EN) - none

Digital Internal Use Only

Page 6-153

EL--00070-06
VSRM - Keyboard processing

19-Apr-1988

20.

Norwegian (1st, LK201-AN)
EOO Tilde Mark
E12 Acute Accent
(shifted)
E12 Grave Accent
012 Oieresis
(shifted)
012 Circumflex Accent

21.

Belgian/French (LK201-AP)
EOO Grave Accent
EOO Tilde Mark
(shifted)
011 Circumflex Accent
011 Oieresis
(shifted)

22.

Spanish (LK201-AS)
011 Grave Accent
011 Circumflex Accent
C11 Acute Accent
C11 Oieresis
C12 Tilde Mark

23.

6.15.10.4

Portuguese (LK201-AV)
C11 Tilde Mark
C11 Circumflex Accent
011 Acute Accent
011 Grave Accent

Page 6-154

(shifted)
(shifted)
(shifted)

(shifted)
(shifted)

valid Compose Sequences And The Supplemental Character
Sets -

Depending on the Supplemental character set chosen in Set-up
(either DEC Supplemental or ISO Latin-l Supplemental), there are
some changes in the compose sequences available to create 8-bit
characters, as a direct result of the lack of some characters in
either of the character sets.
The following table specifies which characters are not available
in each of the supplemental character sets. Compose sequences
which choose the characters listed cannot be composed when that
supplemental character set is chosen through Set-Up:

momDomo™

Digital Internal Use Only

EL ... 00070,...06
VSRM - Keyboard Processing

DEC Supplemental
160
166
168
172
173
174
175
180
184
190
208
215
221
222
240
247
253
254

19-Apr-1988

Page 6-155

(not available)

 no break space
 broken vertical bar
<"A) dieresis
<-,> logical not
 registered trademark sign
<_A) macron
<,,> acute accent
<,,> cedilla
<34> fraction three quarters
<-0> capital Icelandic Eth
 times sign
 capital Y with acute accent
 capital Icelandic thorn
<-d> small Icelandic Eth
<-:> division sign
 small y with acute accent
 small Icelandic thorn

ISO Latin-1 Supplemental

(not available)

215  capital OE ligature
221  capital Y with dieresis
247  small oe ligature
There are also two characters in different positions between the
ISO Latin-l Supplemental and DEC Supplemental character sets. For
these two character sets, the appropriate compose sequence is
present when either set is invoked. Only the code transmitted to
the host changes:
Character
Name

DEC Supplemental
Coding

 general currency
 
 

34 - "quotation
marks

168 _ <"A>
dieresis

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-156

This difference has been deprecated.
"
" should produce double quote in both DEC
Supplemental and ISO Latin-1.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.11
6.15.11.1

19-Apr-1988

Page 6-157

7-bit Characters Mode Valid Compose Sequences
Typewriter Keys Valid Compose Sequences By Keyboard
(7-bit Characters) -

The following details all of the valid COMPOSE sequences for each
keyboard when the terminal is in 7-bit Characters mode, and
Typewriter Keys are selected. A separate selection of compose
sequences is given for Data Processing Keys, regardless of
Keyboard type, because when Data Processing keys is selected in
7-bit Characters mode, the ASCII character set, and not the
associated NRCS, is used in GO. No COMPOSE sequences other than
those listed for anyone keyboard are legal when that keyboard is
selected and is in 7-bit Characters mode. Note: This table
applies to keyboard maps as specified in Set-up, not physical
keyboards.
.
1.

North American (LK201-EE US/UK)
7-bit Characters mode is not available with the North
American keyboard.

2.

British (LK201-EE US/UK) - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
- L
L - 1
- L
L - 1
space apostrophe
apostrophe space
a a
A A
A a

 UK pound
, apostrophe

@ commercial at
[ opening bracket
\ backslash
] closing bracket
- circumflex character
, grave accent
{ opening brace
I vertical bar
} closing brace
- tilde

~DmDDmDTM

(

1a A

(

/ /
)

1-

/ <

< /

)

space - (circumflex)
- (circumflex) space
space ' (grave accent)
, (grave accent) space
((
/
/

) -)

space - (tilde)
- (tilde) space

Digital Internal Use Only

EL-00070-06
V5RM - Keyboard processing
3.

19-Apr-1988

ilemish (LK201-AB) - Typewriter Keys
Character

5equences

" quotations

space quotations
quotations space
- L
L - 1

 UK pound
, apostrophe
 small a with grave
<0">

- L
L - 1
space apostrophe
apostrophe space
, (grave accent) a
a ' (grave accent)
0"

0

 small ~ with cedilla
<50> §

o

, grave accent

 small e with acute
 small u with grave
 small e with grave
,. circumflex

ll-

"0

space degree
degree space
space *
c,
, c
s
s
5
o s
s 0
0 5

o s

mDmDomD™

Page 6-158

s 0

0 5

* space
5

5 0
5 0

s
s 0,
0 5
5 0
space' (grave accent)
, (grave accent) space
apostrophe e
e apostrophe
, (grave accent) u
u ' (grave accent)
, (grave accent) e
e ' (grave accent)
space
" space

Digital Internal Use Only

EL-0007o--06
VSRM - Keyboard Processing
4.

19:"'Apr-1988

French (Canada) (LK201-AC) - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
+ +
space apostrophe
apostrophe space
grave a
a grave
circumflex-accent a
a circumflex-accent
, c
c ,
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
circumflex-accent 0
0 circumflex-accent
apostrophe e
e apostrophe
grave u
u grave
grave e
e grave
circumflex-accent u
u circumflex-accent

t pound (number) sign
, apostrophe
 small a with grave
 small a with circumflex
 small c with cedilla
 small e with circumflex


small i with circumflex



small o with circumflex

 small e with acute
 small u with grave
 small e with grave
 small u with circumflex

5.

Danish (2nd, LK201-ED) - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
+ +
space apostrophe
apostrophe space
aa
AA
Aa
A E

t pound (number) sign
, apostrophe

@ commercial
 capital
<0/> capital
 capital
~ circumflex

at
JE

0 with slash
A with ring

, grave accent
 small ce
<0/> small 0 with slash
 small a with ring
... tilde

mDmDomD™

Page 6-159

o /

/

aA

0

A asterisk
asterisk A
space ~
~ space
space' (grave accent)
, (grave accent) space

a e
o /
/ 0
a asterisk
asterisk a
space - (tilde)
- (tilde) space

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.

19-Apr-1968

Finnish (3rd, LK201-NX) - Typewriter Keys
Sequences

Character
" quotations
i pound (number) sign
, apostrophe
@ commercial
 capital
<0"> capital
 capital

at
A with umlaut
0 with umlaut
A with ring

capital
small e
small a
small 0
small a

U with umlaut
with acute
with umlaut
with umlaut
with ring




<0">


 small u with umlaut
7.

Page 6-160

space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a
a A
quotations A A quotations
quotations 0
0 quotations
A asterisk
asterisk A
A <0"'>
<0"'> A
quotations U U quotations
apostrophe e
e apostrophe
quotations a a quotations
quotations 0
0 quotations
. a asterisk
asterisk a
<0"'> a
a <0"'>
quotations u u quotations

Austrian/German (2nd, LK201-NG) - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space

i pound (number) sign
, apostrophe

+ +

space apostrophe
apostrophe space

s

 §

 capital A with umlaut
<0"> capital 0 with umlaut
 capital u with umlaut
'" circumflex character
, grave accent

<0">



mDmDomD™

small a with umlaut
small 0 with umlaut
small u with umlaut
B

s I

ISS

o s
s 0
0 S
S 0
o s
s 0
0 S
S 0
os s 0 0 S S 0
quotations A A quotations
0 quotations
quotations 0
quotations U U quotations
space'" (circumflex)
'" (circumflex) space
space ' (grave accent)
, (grave accent) space
quotations a a quotations
quotations 0
0 quotations
quotations u u quotations
s s

Digital Internal Use Only

EL-00070-0-6
VSRM - Keyboard Processing
8.

19-Apr-1988

Page 6-161

Dutch (2nd, LK201-NH) - Typewriter Keys
7-bit Characters mode is not available with the Dutch
Keyboard (same as North American).

9.

Italian - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
- L
L - 1
- L
L - 1
space apostrophe
apostrophe space

 UK pound
, apostrophe


<0"'>

§

 small c with cedilla
 small e with acute
'"

circumflex character

 small u with grave
.  small a with grave
<0'> small o with grave
 small e with grave
 small i with grave

mDmDomD™

! s

s!

! S

S

o s
o s
os

s 0
s 0
s 0
'" 0

0

S

S

o '"

0

1 1 -

0

0 S

S 0

0 S

S 0

space *
* space
c,
, c
apostrophe e
e apostrophe
space'" (circumflex)
'" (circumflex) space
grave-accent u
u grave-accent
grave-accent a
a grave-accent
grave-accent 0
o grave-accent
grave-accent e
e grave-accent
grave-accent i
i grave-accent

Digital Internal Use Only

EL;..00070;..06
VSRM - Keyboard Processing
10.

19-Apr-1988

Swiss (French) (LK201-AK) - Typewriter Keys
Ch,aracter

Sequences

" quotations

space quotations
quotations space
grave-accent u
u grave-accent
space apostrophe
apostrophe space
grave-accent a
a grave-accent
apostrophe e
e apostrophe
c,
, c
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
grave-accent e
e grave-accent
circumflex-accent 0
o circumflex-accent
umlaut-mark a
a umlaut-mark
umlaut-mark 0
o umlaut-mark
umlaut-mark u
u umlaut-mark
circumflex-accent u
u circumflex-accent

 small u with grave
, apostrophe
 small a with grave
 small e with acute
 small c with cedilla
 small e with circumflex
A

 small i with circumflex
 small e with grave
 small 0 with circumflex
 small a with umlaut
<0"> small 0 with umlaut
 small u with umlaut
 small u with circumflex

mDmDomD™

Page 6-162

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
11.

19-Apr-1988

Swiss (German) (LK201-AL) - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
grave-accent u
u grave-accent
space apostrophe
apostrophe space
grave-accent a
a grave-accent
apostrophe e
e apostrophe
c,
, c
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
grave-accent e
e grave-accent
circumflex-accent 0
o circumflex-accent
umlaut-mark a
a umlaut-mark
umlaut-mark 0
o umlaut-mark
umlaut-mark u
u umlaut-mark
circumflex-accent u
u circumflex-accent

 small u with grave
, apostrophe
 small a with grave
 small e with acute
 small c with cedilla
 small e with circumflex


small i with circumflex

 small e with grave


small 0 with circumflex

 small a with umlaut
<0"> small 0 with umlaut
 small u with umlaut


mDmDomD™

Page 6-163

small u with circumflex

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
12.

19-Apr-1988

Swedish (2nd, LK201-NM) - Typewriter Keys
Character

Sequences

" quotations

 small a with umlaut
<0"> small 0 with umlaut
 small a with ring

space quotations
quotations space
+ +
space apostrophe
apostrophe space
apostrophe E
E apostrophe
quotations A A quotations
quotations 0 0 quotations
A asterisk
asterisk A
A 
 A
quotations U U quotations
apostrophe e
e apostrophe
quotations a a quotations
quotations 0 0 quotations
a asterisk
asterisk a

 small u with umlaut

quotations u

#, pound (number) sign
apostrophe
 capital E with acute
 capital A with umlaut
<0"> capital 0 with umlaut
 capital A with ring
 capital U with umlaut
 small e with acute

13.

a 

 a

u quotations

Norwegian - Typewriter Keys
Character

Sequences

" quotations

space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a
A E

# pound (number) sign
, apostrophe

@ commercial at
 capital 1£
<0/> capital 0 with slash
 capital A with ring
circumflex
A

o /

 small a!
<0/> small 0 with slash
 small a with ring
- tilde

/

a A

0

A asterisk
asterisk A
space
space
space' (grave accent)
, (grave accent) space
a e
o /
/ 0
a asterisk
asterisk a
space - (tilde)
- (tilde) space
A

, grave accent

mDmDomD™

Page 6-164

Digital Internal Use Only

EL-00070-06
V5RM - Keyboard processing
14.

19-Apr-1988

page 6-165

French (Belgium) (LK201-AP) - Typewriter Keys
Character

5equences

" quotations

space quotations
quotations space

 UK pound

-

, apostrophe
 small a with grave

L

, grave accent
 small e with acute
 small u with grave
 small e with grave
A

~DmDDmDTM

circumflex

-

1

1 1 -

- L
L - 1
space apostrophe
apostrophe space
, (grave accent) a
a ' (grave accent)
o
0
space degree
degree space
space *
* $pace
c,
, c
! s
s 1
5
5
o s
s 0
0 5
5 0
o s
s 0
0 5
5 0
os s 0 0 S 5 0
space ' (grave accent)
, (grave accent) space
apostrophe e
e apostrophe
, (grave accent) u
u ' (grave accent)
, (grave accent) e
e ' (grave accent)
space
space
A

 small c with cedilla
<50> §

L -

Digital Internal Use Only

A

EL-00070-06
VSRM - Keyboard Processing
15.

19-Apr-1988

Page

6~166

Spanish (LK201-AS) - Typewriter Keys
Character

Sequences

---------

---------

"

space quotations
quotations space
L
L
- I
L
L
I
space apostrophe
apostrophe space
1 s
s 1
1 S
0 s
s 0
0 S
0 s
0 S
s 0
0 s
0 S
s 0

quotations

 UK pound

,

apostrophe



§

<11> inverted!
 capital N with tilde
 inverted ?
circumflex character
A

-

-

-

I
I

- -

-

-

S

S 0
S 0
S 0

- (tilde) N
N - (tilde)
?

?

space
(circumflex)
(circumflex) space
space ' (grave accent)
, (grave accent) space
A

A

, grave accent



o

0

 small n with tilde
 small c with cedilla
- tilde

16.

A

0

space *
- (tilde) n
n - (tilde)
c,
,c
space - (tilde)
- (tilde) space

*

space

Portuguese (LK201-AV) - Typewriter Keys
Character

"

quotations
apostrophe
commercial at
capital A with tilde
capital C with cedilla
capital 0 with tilde
circumflex character

Sequences
space quotations
quotations space
space apostrophe
apostrophe space
a a
A A
A a
a A
A - (tilde) - (tilde) A
C ,

grave accent
small a with tilde
small c with cedilla
small 0 with tilde
tilde character

, C

o - (tilde) - (tilde) 0
space
(circumflex)
(circumflex) space
space' (grave accent)
, (grave accent) space
a - (tilde) - (tilde) a
c ,
, c
o - (tilde) - (tilde) 0
space - (tilde)
- (tilde) space
A

A

mDmDomD™

A

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.15.11.2

19-Apr-1988

Page 6-167

Typewriter Keys Non-Spacing Diacritical Marks By
Keyboard (7-bit Characters) -

The following lists all the non-spacing diacritical marks while
the terminal is in 7-bit Characters mode, with Typewriter Keys
selected. Note: This table applies to keyboard maps as specified
in Set-up, not physical keyboards.
1.

North American (LK201-EE US/UK or LK201-AA) - not
applicable.

2.

British (LK201-EE US/UK) - none

3.

British (LK201-AE) - none

4.

Flemish (LK201-AB)
EOO Grave Accent
011 Circumflex Accent
011 Dieresis

(shifted)

5.

Canadian (French)
(LK201-AC)
C11 Grave Accent
C11 ~ircumflex Accent
(shifted)

6.

Danish (2nd, LK201-ED) - none

7.

Danish (1st, LK201-AD)
EOO Ring Mark
012 Dieresis

(shifted)

8.

Finnish (3rd, LK201-NX) - none

9.

Finnish (1st, LK201-AF) - none

10.

Austrian/German (2nd, LK201-NG) - none

11.

Austrian/German (1st, LK201-AG) - none

12.

Dutch (2nd, LK201-NH) - not applicable

mDmDomo

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

13.

Dutch (1st, LK201-AH) - none

14.

Italian (LK201-AI)
EOO Grave Accent
E08 Circumflex Accent

15.

Swiss (French)
(LK201-AK)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
D12 Dieresis

16.

Swiss (German)
(LK201-AL)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
D12 Dieresis

17.

Swedish

18.

Swedish (1st, LK201-AM) - none

19.

Norwegian

20.

Norwegian (1st, LK201-AN)
EOO Ring Mark
(shifted)
D12 Dieresis

21.

Belgian/French (LK201-AP)
EOO Grave Accent
D11 Circumflex Accent
D11 Dieresis
(shifted)

22.

Spanish (LK201-AS)
D11 Grave Accent
D11 Circumflex Accent
C11 Acute Accent
C11 Dieresis
C12 Tilde Mark

(shifted)

Portuguese (LK201-AV)
C11 Tilde Mark
C11 Circumflex Accent
D11 A~ute Accent
D11 Grave Accent

(shifted)

23.

mDmDomD™

(2nd, LK201-NM) - none

(2nd, LK201-EN) - none

(shifted)
(shifted)

(shifted)

Digital Internal Use Only

Page 6-168

EL-00070-06
VSRM - Keyboard Processing
6.15.11.3

19-Apr-1988

Page 6-169

Data Processing Keys Valid Compose Sequences -

The following compose sequences are valid when the terminal is in
7-bit Characters mode, with Data Processing keys selected,
regardless of the keyboard selected.
When in 7-bit Characters Mode, with Data Processing keys selected,
the ASCII character set is used, instead of the applicable
National Replacement Character set. Therefore, compose sequences
to generate the special characters and symbols in the several NRCS
are not available when Data Processing Keys is selected.
All Keyboards - Data Processing Keys
Character

Sequences

" quotations

space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a

# pound (numper) sign
, apostrophe

@ commercial at
[ opening bracket
\ backslash
] closing bracket
circumflex character
A

(

/ /
)

a A

(

/ <

< /

)

space
(circumflex)
(circumflex) space
space' (grave accent)
, (grave accent) space
A

A

, grave accent
{ opening brace
I vertical bar
} closing brace
- tilde

6.15.11.4

(/

A

)

-

A

(
/

-)

space - (tilde)
- (tilde) space

Data Processing Keys, Non-Spacing Diacritical Marks -

There are no non-spacing diacritic keys in 7-bit Characters mode
when Data Processing Keys are selected, because no such key is
required to produce a character from the ASCII character set.

mDmDomD™

Digital Internal Use Only

EL-0'0070-06
VSRM - Keyboard processing
6.16

19-Apr-1966

Page 6-170

CONTROL CODES AND KEYSTROKES

The following codes will be transmitted when the control key is
depressed simultaneously with another key:
Legend

HEX Code
Transmitted

Name

Ctrl-space
00
NUL
Ctrl-2
00
NUL
Ctrl-A
01
SOH
Ctrl-B
02
STX
03
ETX
Ctrl-C
04
Ctrl-D
EOT
Ctrl-E
OS
ENQ
ACK
Ctrl-F
06
BEL
07
Ctrl-G
Ctrl-H
06
BS
Ctrl-I
09
HT
OA
Ctrl-J
LF
Ctrl-K
OB
VT
Ctrl-L
OC
FF
Ctrl-M
OD
CR
Ctrl-N
OE
SO
OF
Ctrl-O
SI
Ctrl-P
10
DLE
Ctrl-Q
11
DC1
(Only if XOFF handling is disabled)
Ctrl-R
12
DC2
Ctrl-S
13
DC3
(Only if XOFF handling is disabled)
Ctrl-T
14
DC4
15
Ctrl-U
NAK
Ctrl-V
16
SYN
17
Ctrl-W
ETB
Ctrl-X
16
CAN
Ctrl-Y
19
EM
Ctrl-Z
1A
SUB
1B
Ctrl-3
ESC
1B
Ctrl-[
ESC
1C
Ctrl-4
FS
1C
Ctrl-\
FS
Ctrl-S
1D
GS
1D
Ctrl-]
GS
Ctrl-6
1E
RS
Ctrl-1E
RS
Ctrl-7
1F
US
1F
Ctrl-?
US
Ctrl-6
7F
DEL
Ctrl-Tab
09
HT
Ctrl-Enter (same as ENTER alone)
Ctrl-Return (same as RETURN alone)
Ctrl-Delete
16
CAN

Digital Internal Use Only

EL-"";OO 07 0"-0"6
VSRM - Keyboard Processing

19-Apr-1988

page 6-171

Notes:
1.

The Shift key is ignored when pressed in combination with
Control.

2.

On the number keys (E01-E10), the control-numeral
combination takes precedence over the other legend (if
the control-numeral combination is valid) regardless of
the shift state.

3.

On the North American keyboard, the control-tilde
combination is used for the Open Quote/Tilde key (Tilde
is the shifted legend on EOO, Control Open quote is not a
valid control combination).
-

momoomD

1M

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.17

19-Apr-1988

Page 6-172

SUMMARY OF MODES

The following table summarizes the modes that affect the keyboard
and/or character transmission.
Those modes that do not have a
symbol are local Set-Up modes only and are not setable from the
host. Those modes that do not have an LED are indicated as blank.
Name of Mode

Symbol/LED

Host Port
Environment *
Keyboard Usage ***
Conformance Level
Hold Screen **
Lock Key **
Caps/Shift Lock
Compose * and **
Keyboard Action
Auto Repeat ***
Keyclick *
Cursor Key
Keypad

Reset Name

Seven Bit
Typewriter
Level 1
Hold Off
Unlocked
Caps Lock
Compose
Compose Off
KAM/Wait
Unlocked
DECARM
Repeat Off
Keyclick Off
DECCKM
CursorDECKPAM/DECKPNM Numeric
DECNKM
Numeric
New Line
LNM
New Line Off
Cl Transmission
S7CIT/S8CIT Seven Bit
Character Set Mode DECNRCM
8-bit-Char's
UPSs***
DECAUPSS
DEC-Mes
Keyboard Dialect*
Delete Key*
Delete
Compose Key*
Enable
Break Key*
Enable
DECKBUM****
DECSCL
Hold Screen
Lock

Set Name

Eight Bit
Data-processing
Level 2
Level 3
Hold On
Locked
Shift Lock
Compose On
Locked Repeat On
Keyclick On
Ck Application
Kp-Application
Kp-Application
New Line On
Eight Bit
7-bit-Characters
ISO Latin-l
Backspace
Disable
Disable

Notes:
* - Set-Up mode only (no coded representation)
** - Activated by terminal user by typing keys (no coded
representation)
*** - Terminal user convenience feature - not to be issued by
software except in response to the wishes of the terminal user
**** - Extension to Level 2, required in Level 3

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.18

19-Apr-1988

Page 6-173

CHANGE HISTORY

6.18.1

Revision 0.0 To 0.1
All sections:

1.

Renumbered sections so as to put related information
together. Organized material according to physical areas
of the keyboard.

2.

Added change bars to any change that could effect
conformance or interpretation of the document or should
be brought to the attention of terminal implementors or
software engineers.
Section 3 - Terminology:

3.

Added terminology section.
Section 4 - Physical Keyboard Description:

4.

Clarified that Lock key is not effected by typing Shift
key.

5.

Clarified that Compose indicator also comes on for
implied compose.

6.

Clatified that XON and XOFF do NOT set Hold Screen
Indicator, only Hold Screen Key does.
Section 5 - Conformance Requirements:

7.

Made conformance requirement specific, including keys,
control functions related to the keyboard and local
Set-up features.

8.

Indicated that Caps lock Operation is the factory default
mode (not Shift Lock Operation) in order to be compatible
with the VT100.

9.

Indicated that disabling the error bell is a Level 2
extension.

10.

Require GR Transmission Mode for Level 2.
Section 7 - Functions and State for all keyboard areas:

11.

Changed so that all keys that send codes also
auto-repeat.

12.

Indicated that keys in an implied or explicit compose
sequence do not auto-repeat.

mDmDomD

TM

Digital Internal Use Only

EL-00070-06.
VSRM - Keyboard Processing

19-Apr-1988

Page 6-174

13.

Indicated that all keys, including Compose and Lock keys,
keyclick, except shift and Control keys.

14.

Indicated that keys that are inoperative when GR
Transmission Mode is NO_GR, do not keyclick.

15.

Corrected the coding for KAM parameter value.

16.

Indicated that KAM disabled keyclick too.

17.

SELECT CONFORMANCE LEVEL (DECSCL) unlocks the keyboard.
Section 8 - Cursor Keys:

18.

Corrected coding for DECCKM.

19.

Clarified that Cursor Keys depend only on Cursor Key Mode
and are independent of Keypad Application/Numeric Mode.
Section 9 - Keypad:

20.

Enter key always auto-repeats, independent of keypad
mode.
Section 11 - Application Function Key Row:

21.

Added internal documentation about Bill Hefner allocating
application function keys between operating system and
application programs to prevent conflict and increase
compatibility.

22.

Set-up mode restores terminal modes and screen when
exited.

23.

Hold Screen does not update the screen (not just prevents
scrolling) .
Section 13 - Main Key Array:

24.

Caps lock operation transmits upper case of lower case
alphabetic even when it is on the same key with another
symbol.

25.

Indicated that Non-Spacing Diacritical keys behave the
same after implied and explicit compose sequences have
started.

26.

Switched [ with] on Canadian (French), German/Austrian,
and Spanish data processing keyboards so that they are
like all other keyboards that have them on the same key
([ is in shifted position).

mDmDomD

TM

Digital Internal Use Only

EL:-00070-0-6
VSRM - Keyboard processing

19-Apr-1988

Page 6-175

27.

Removed Ctrl-[ from Canadian (French) Data processing
keyboard to generate ESC. Now like all other non-US
keyboards that only use numbers with ctrl to get NUL,
ESC, FS, GS, RS, US, and DEL.

28.

Clarified that Compose indicator goes on when Non-Spacing
Diacritical key pressed too.

29.

Removed implementor option to transmit compose key
strokes for invalid compose sequences.

30.

When GR Transmission Mode is NO GR, 7-bit explicit
compose sequences are still required, but Non-Spacing
Diacritical keys are immediately inoperative.

31.

Indicated that a distinguishable bell sound on compose
errors is an extension to Levels 1 and 2.

32.

Indicated that the error bell can be separately disabled
by the terminal user as an extension to Levels 1 and 2.

33.

Clarified that error bell is echoed if a compose is ended
by a function key, even though the function key is
transmitted (and key clicked).

34.

Compose key does keyclick.
don't key click.

35.

Compose error doesn't keyclick on last key stroke.

36.

Non-Spacing Diacritical keys keyclick, but do not
auto-repeat.

mDmDomD

TM

Lock, Shift, and Control

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.1S.2

19-Apr-1988

Page 6-176

Revision 0.1 To 0.2
All sections:

1.

Removed Rev 0.1 change bars. Added change bars to any
change that could effect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.

2.

In the coded format sections, removed most of the 7-bit
notation since the only difference is CSI (9/11) in
8-bits versus ESC [ (1/11 5/11) in 7-bits. This is not a
specification change, only a presentation change.

3.

In the coded format sections, added the S-bit column/row
decimal notation used in ANSI and ISO standards
immediately below the graphic character notation, e.g.,
immediately below CSI 2 h is 9/11 3/2 6/S.
Section 3 - Terminology:

4.

Added concept of "permanent label strip" and "removable
label strip" of which the latter can be "system label
strip" or an "application label strip".

5.

Changed all references of "foreign keyboards" to "non-US
keyboards".
Section 4 - Physical Keyboard Description:

6.

Added concept of "product class" of keyboards for
LK201-Ax (standard keyboard), LK201-Bx (DECmate II),
LK201-Cx (VAXworkstation), LK201-Dx (Generic Video),
LK201-Ex (Generic Hardcopy). The DEC Standard keyboard
is intended to be used on most video terminals sold with
DEC systems, except DECmate II and VAX Workstations.
Generic is intended to be used on non-DEC systems or by
OEMs that have their own software.

7.

VAXworkstation has "Symbol" instead of "Compose" an
implements it as a shift key, rather than a modal prefix
key.

8.

Added DECmate II and EDT keypad legends.

9.

DECmate II Delete key has Word and Char instead so can
delete previous character and previous word (holding
Control Key down).

10.

Added the Permanent Label Strips for each of the five
above product classes and changed the Function row to
always be blank (to agree with what we are shipping).

11.

Added the Professional System Label Strip and RAINBOW 100
System Label Strip.

mDmDDmD

1M

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-177

12.

changed the names of keyboard versions to be country with
language in parentheses (only when needed). Removed all
alternate country names. Art Len and Martin- Hall agreed
with this simplification.

13.

Introduced the concept of "usage mode" to distinguish
typewriter layout from data processing layout, rather
than calling them different versions, since both modes
are labeled on the same version of the keyboard.

14.

Described keys not present on most non-U.S.
typewriter
modes (11 characters) and data processing modes (5).

15.

Removed GR Transmission Mode (setable from host) and
replaced it with the Host Port Environment Mode (which is
only a Set-Up feature and which is required for Level 2
conformance but is optional for Levell conformance).
Section 5 - Conformance

16.

Removed Requirement to implement Keyclick Mode as a
Set-Up feature.
It is an implementor option. Section 11
- Application Function Key row:

17.

Corrected Levell coding for F12 and F13 keys (from 1/8
and 1/10 to 0/8 and 0/10) to agree with ASCII for BS and
LF.
Section 13 - Main Key Array:

18.

Put versions in increasing alphabetical order by version
number.

19.

When in Shift Lock Operation (as opposed to Caps Lock
Operation), the Shift key rather than the Lock key is
pressed again to leave the locked state.

20.

Clarified that New Line Mode does not effect ctrl/M.
ctrl/M always transmits just 0/13.

21.

Corrected the coding of the Q keys (001 and COl) to agree
with ASCII (7/2 changed to 7/1 and 5/2 changed to 5/1).

22.

Corrected Denmark LK201-xD in Data processing mode key
C10 from 0 w/slash (15/8, 13/8) to ~ (14/6, 12/6).

~DmDDmD

TM

Digital Internal Use Only

BL-00070-06
VSRM'- Keyboard Processing

19-Apr-1988

Page 6-178

23.

Corrected Italy LK201-xI (both modes) to show that B08
circumflex is a Non-Spacing Diacritical key that starts
an implied compose sequence.

24.

Spain LK201~xS (typewriter mode) changed BOO uppar from
invert question mark (11/15) to invert exclamation mark
(10/1).

25.

Clarified that keyclick indicates whether something was
transmitted to the host or not, even in compose errors.

26.

Indicated additional compose error combinations in the
table.
Section 14 - Summary of modes

27.

momDomD

1M

Added this section for easy reference.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.18.3

19-Apr-1988

Page 6-179

Revision 0.2 To AX10

1.

Reorganized first five sections of the document.

2.

Removed all references to the Ox and Ex classes of
keybo~rd, and modified a~ legend tables to reflect this
change.

3.

Removed descriptions of Application Label strips pending
software strategy on label strip distribution control,
and added a note to the System Label Strip table
indicating that it is not required for conformance.

4.

Added Japan (Katakana) Version LK201-xJ keyboard.

5.

Corrected an error in the description of Keyboard Action
Mode which referred to the Lock LEO instead of the Wait
LEO.

6.

Added notes to the description of Auto-Repeat to soften
the conformance requirements, making it clear that
variable repeat rates are not a required function, and
that the delay in turning off auto-repeat when the DECARM
control is received is UNDEFINED.

7.

Added codes for Local Function Keys used in combination
with Shift and Control, and for Compose Key when not
implemented as a local function.

8.

Added a deviation note to the description for New Line
Mode to indicate that previous terminals caused New Line
Mode to effect the operation of Control-M.

9.

Corrected the code ~ransmitted by Control-Q in all of the
keyboard tables (it was 1/2, and should be 1/1).

10.

Corrected the tables for the Denmark Version LK201-xD
keyboard (both modes) which had errors on key ids C10 and
C11.

11.

Added a note that the Local Function Keys will terminate
a Compose Sequence.

12.

Added a note to the Compose Sequence tables to indicate
that order is significant only where specifically
indicated in the tables.

momoomD

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-180

13.

Removed the error bell from the Compose error recovery
for keys which terminate the Compose sequence and
transmit their normal codes, such as control keys and
Function keys.

14.

Removed the error bell from the definition of inoperative
keys.

15.

Removed the restriction on the use of Non-Spacing
Diacritical Keys in Level 1 operation to allow valid
7-bit Compose sequences to be introduced by Non-Spacing
Diacritical Keys.

16.

Removed Hold Screen interactions with communications
functions, particularly XON/XOFF, and added references to
. the section "Code Extension Layer".

17.

Added a note that some control characters may be used as
Local Function Keys when required by the communications
protocol.

18.

Changed the implementation of Caps Lock.
Only keys with
upper case characters on tbe legends will be effected by
Caps Lock.
Keys with one or more lower case diacritical
characters will not be effected. All keyboard code
tables were changed to reflect this.

19.

Added a note that for Compose sequences consisting of two
alphabetic characters, it is required to implement the
sequences with both characters upper case and both lower
case.
It is optional to also implement the sequences
with one character upper case and the other lower case.

20.

Removed Local Function Key codes to the appendix
"Documented Exceptions".

21.

Changed the description of Lock Key to indicate that it
works the same in both Shift Lock and Caps Lock Mode.

22.

Added notes the Cursor Key Mode and Keypad Mode to
indicate that any inter-dependencies are UNDEFINED in
Level 1 operation, but they must be independent in Level
2 operation.

Digital Internal Use Only

EL-00070 .... 06
VSRM - Keyboard Processing
6.18.4

19-Apr-1988

Page 6-181

Revision AX10 To Ax11
All sections:

1.

Removed all revision Ax10 change bars. Added change bars
to any change that could effect conformance or
interpretation of the document or should be brought to
the attention of terminal implementors or software
engineers.

2.

Removed all references to echoing the error bell as part
of the error recovery for dead keys.
section 5 - Physical Keyboard Description

3.

Removed note on VAXstation Keyboard Lock Indicator.
Section 6 - Control Functions And State

4.

Added, ESC to the list of keys which do not auto repeat.

5.

Clarified rules defining which keys click. All keys
which transmit codes, or cause the terminal to take some
immediate action click.
Section 9 - Editing Keypad Keys

6.

Removed statement that the codes transmitted by the
Editing keypad keys are not effected by Control, Shift,
or Lock. Added statement that these keys are inoperative
when pressed in combination with Shift or Control.
Section 10 - Application Function Keys

7.

Removed statement that the codes transmitted by the
Application Function Keys are not effected by Control.
Added statement that these keys are inoperative when
pressed in combination with Control.
Section 12 - Main Key Array

8.

Removed reference to keyclick behavior in section on
special keys and functions.

9.

Removed statement that the codes transmitted by Space Bar
and Delete are independent of Control, Shift, and or Lock
keys.
Fixed table to show Control Delete sends 1/8.

10.

Changed section on Control key operation to indicate that
alternate forms for keying CO controls are available on
non-US keyboards whenever the keys involved in these
combinations are present.

11.

Added paragraph documenting behavior of auto repeat when
Control is pressed.

~DmDDmD TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-182

12.

Add'ed statement that pressing Shi ft does not turn off
lock in section on Lock Key Operation.

13.

Added. statement that delete key clicks when used to
cancel a compose sequence.

14.

Added paragraph documenting how British £ is handled in
7-bit mode on the British keyboard.

15.

Corrected description of compose sequence error
conditions and recovery.
Dead keys are ignored while in
a compose sequence.
Illegal compose characters cancel
the compose sequence but do not sound the error bell.
Pressing Compose within a compose sequence clicks if
keyclick is enabled.

16.

Added new compose sequences for back slash, §, and

mDmDomD

TM

Digital Internal Use Only

0

EL-00070-06
VSRM - Keyboard Processing
6.18.5

19-Apr-1988

Page 6-183

Revision Ax11 To AX12
All sections:

1.

Removed all revision Ax11 change bars. Added change bars
to any change that could effect conformance or
interpretation of the document or should be brought to
the attention of terminal implementors or software
engineers.

2.

Removed all references to LK201-Cx

3.

Replaced the term Dead Diacritical Mark with Non-Spacing
Diacritical Mark to reflect current usage.

4.

Re-organized keyboard features into categories by whether
they affect coding or user interaction to group
functionally related features together.

5.

updated entire standard to reflect latest country
keyboards, 8-bit Architecture (ISO Latin-1), and NRCS
support.
Section - 1 Introduction

6.

Added subsection on keyboard product classes to explain
model designations (LK201-xx).

7.

Added explanation of Keyboard Versions and Dialects to
show which keyboards are described in this chapter, and
which are the most recent (recommended) and superseded
keyboards for each country market (Keyboard Dialect).
Section - 2 Conformance Requirements

8.

Added Level 3 conformance requirements.

9.

Added description of Level 3 operation.

10.

Expanded Keyboard Character Encoding section to cover
"8-bit Architecture" and "NRCS Extension".
Section - 3 Referenced Standards and Related Publications

11.

updated referenced standards to include document order
number and full name of standard.

12.

Added reference to A&LK201 Functional Specification,&.

13.

Added information on how to order cited documents.
Section - 4 Terminology

14.

~DmDDmD

TM

Added definitions for "Keyboard Usage Mode" and "Keyboard
Dialect".

Digital Internal Use Only

EL-00070:"'06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-184

Section - 5 Physical Keyboard Description
15.

Documented front legends for Editing and Numeric Keypads
for LK201- {NA, PAl (VT330/VT340 Local Edit Mode
legends) .

16.

Described system legend strip variations for G99 as "Hold
Session", GOO as "Local Print", and G02 as "Switch
Session" for multiple session terminals.

17.

Described system legend strip variations for G02 as "F4"
or "Data/Talk".
Section - 6 Keyboard Operation and State that Affects
User Interaction

18.

Clarified section on Keyboard Output Silo. Added
guideline "The VT320 provides a 25 keystroke silo".

19.

Extended list of conditions that can reset Keyboard
Action Mode to include Entering Set-Up in Levell, Clear
Comm, and Terminal Reset.

20.

Added sentence that control and shift keys do not cause a
new delay before auto-repeating new code (if any).

21.

Broke out information on keys not effected by auto repeat
mode·, created a new section. Added additional keys that
were not part of the original list.

22.

Created section on auto repeat guidelines to show timing
considerations for actual terminals.

23.

Defined an upper limit on the time between when a DECARM
control is received and the time a key which was already
auto-repeating stops repeating when terminal is
processing host output (to allow testing for
conformance).

24.

Clarified section on Visual Indicators.

25.

Expanded section on Audible Indicators to include Warning
Bell and Margin Bell. Added paragraph describing
interaction of keyclick and bells.
Section - 7 Keyboard State and Operating Modes that
Affect Keyboard Encoding

26.

Added summary of modes that affect keyboard encoding at
beginning of section. Added new modes:
BackArrow Key
mode, Disable Compose mode. Added new Set-up options:
Remap shifted ,.
to <>, Remap <> to '-, Remap ,- to ESC,
Remap KP, to SPACE.

27.

Documented Terminal Emulation mode not previously covered
(VT52 and VT100, VT200 and VT300).

mDmDomD

TM

Digital Internal Use Only

EL-00070 .... 06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-185

28.

Added description of "Character Set Mode" to cover NRCS
Extension. Made NRCS support more intuitive by
organizing as 7-bit/8-bit Charact~rs instead of
National/Multinational. Added algorithm for
setting/resetting character set mode.

29.

Greatly expanded explanation of Keyboard Usage Mode.
Added summary of Data Processing characters for each
keyboard dialect. Added description of new DECKBUM
control function.

30.

Greatly expanded explanation of Keyboard Dialect
(selection of country keyboards) to cover NRCS Extension
and latest country keyboard layouts. Added list showing
NRC set to be used for each keyboard dialect.

31.

Added detailed explanation of how Combined US/UK keyboard
works with North American and British keyboard dialects.

32.

Added description of User Preference Supplemental Set
(UPSS) to cover 8-bit Architecture Extension.
Section - 9 Numeric Keypad Keys

33.

Added description of DECNKM control function.
Section - 12 Local Function Keys

34.

Expanded explanation of Hold Screen function to include
"Hold Session" on multi-session terminals. Referenced
new Terminal Synchronization chapter for explanation of
Hold Screen interaction with flow control.

35.

Included section on Local Function key F4 as used with
the VT330/340 (Switch ~Session), and VT220 (Data/Talk).

36.

Expanded explanation of Break Key operation to include
Disable Break option.
Section - 13 Main Key Array - Special Keys and Functions

37.

Clarified example of the ctrl-number construct.

38.

Referenced new section on Control Codes and Keystrokes.

39.

Added notes on control key operation with keys from the
editing keypad and function keys.

40.

Expanded explanation of Lock Key operation.

41.

Added description of DEL/BS option for Backarrow key on
vT300 series terminals.

42.

Added description of "Hold Session" for multiple session
terminals (VT330/VT340).

mDmDomo

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-186

43.

Expanded description of "Data/Talk" key as used for VT220
integral modem.

44.

Noted F4 is dead if not used for a local function.

45.

Added explanation of Disable Compose option.
Section - 14 Main Key Array - Graphic Character Keys

46.

Clarified keyboard character set encoding.

47.

Explained precedence rules for unshifted, caps-lock,
shift-lock, shift, and control.

48.

Removed most coding (where obvious) from tables and
referenced DEC STD 169 on character sets.

49.

Updated graphic character tables to include latest
keyboards, and support for NRCS Extension.

50.

Re-organized subsection to provide tables for 8-bit
typewriter and Data Processing keys, as well as 7-bit
typewriter and Data Processing keys for each Keyboard
Dialect and country keyboard in one place.

51.

Listed complete table only once per keyboard dialect,
then listed differences to simplify understanding the
affe~t of each keyboard mode.

52.

Each table fits on one page and is clearly identified
(Keyboard Dialect, 8-bit/7-bit Characters,
Typewriter/Data Processing, layout version within
dialect, which physical keyboards table is intended for).

53.

Added table for main key array for the LK201- {PA, NA} in
the DECMatejWPS section.
Section - 15 Compose Operation

54.

Expanded section on Compose Operation.

55.

Provided tables for valid compose sequences in 8-bit and
7-bit Characters Mode (NRCS Extension) with and without
non-spacing diacriticals.

56.

Added compose sequences for 8-bit Architecture Extension
(ISO Latin-I) as implemented in VT300 family.

57.

Added section on choice of supplemental sets and compose
operation.

momDomD

TM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

page 6-187

58.

Eliminated the one compose sequence that produces a
different character in ISO Latin-1 versus DEC
Supplemental. COMPOSE   should produce
'double quote' in both DEC Supplemental and ISO Latin-1
for backward compatibility and consistency with acute
accent. Noted VT320, VT330, and VT340 as deviations.

59.

Simplified table of compose sequences for 8-bit
characters without non-spacing diacriticals by listing
each sequence in only one order. Added note that order
can be reversed unless table entry explicitly says "in
order". Added phrase "in order" to every order sensitive
entry.

60.

Added VT330/VT340 numeric keypad (hexidecimal) compose
feature.

61.

Added "Switch Session" key to list of keys which abort
compose immediately.

62.

Added table summarizing non-spacing diacriticals for each
keyboard dialect.
Section - 16 Control Codes and Keystrokes

63.

Put control codes into one table in new section.
Section - 17 Summary of Modes

64.

mDmDnmD

TM

Updated summary of modes.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

mDmDomD™

19-Apr-1988

Digital Internal Use Only

Page 6-188

EL-00070-06
- Keyboard Processing

19-Apr-1988

Page Index-l

VSR~

section
Application Function Key, 6-32,
6-70
Application Function Key Row
within compose sequence, 6-141
Application Function Keys, 6-15,
6-28, 6-30
Application Label Strip
definition, 6-25
Application Process, 6-12, 6-14
definition, 6-25
Auto Print Mode, 6-73
Auto Repeat
within compose sequence, 6-134
Auto Repeat Mode, 6-16, 6-40,
6-172
8-bit Architecture Extension,
6-21
Break Key, 6-74
Byte
definition, 6-25
Cl Transmission Mode, 6-61, 6-64,
6-66, 6-69, 6-70, 6-172
Caps Lock, 6-16, 6-17, 6-77, 6-78,
6-82, 6-172
Caps/Shift Lock Mode, 6-16, 6-17,
6-77, 6-78, 6-82, 6-172
Character
definition, 6-25
Character Set Mode, 6-22, 6-172
Coded Character
definition, 6-25
Coding Interface, 6-12, 6-14
definition, 6-25
Compose, 6-12, 6-44
Compose Key, 6-12, 6-44
Co~pose LED, 6-30, 6-44, 6~141
Compose Mode, 6-172
Compose Sequence, 6-12, 6-19,
6-20, 6-44, 6-81
algorithm, 6-145
auto repeat, 6-134
buffering, 6-37
cancelling, 6-138
case within, 6-140

momDomD™

Index
definition, 6-25
errors, 6-141
explicit, 6-20, 6-26, 6-42,
6-79, 6-80, 6-134, 6-140,
6-145
implied, 6-26, 6-42, 6-79,
6-134, 6-140, 6-145
order within, 6-140
restarting, 6-138
syntax, 6-143
Compose sequence
implied, 6-80
Compose Sequences, 6-54
Conformance
keyboard, 6-15
Conformance Level, 6-17, 6-38,
6-70, 6-172
Control Character
definition, 6-25
Control Function
definition, 6-25
Control Key, 6-61, 6-63, 6-69,
6-70, 6-75
auto repeat, 6-42
with new line mode, 6-79
with shift key, 6-77
within compose sequence, 6-141
Cursor Key, 6-28, 6-60, 6-61,
6-62
within compose sequence, 6-141
Cursor Key Mode, 6-16, 6-60,
6-172
Cursor Keypad, 6-33
Dead Key .
within compose sequence, 6-141
DEC STD 070-12, 6-23
DEC STD 070-3, 6-23
DEC STD 070-4, 6-23
DEC STD 070-7, 6-23
DEC STD 107, 6-12, 6-13, 6-15,
6-23, 6-26, 6-30, 6-75
DEC STD 169, 6-15, 6-23
DECARM, 6-41
'.
DECCKM, 6-62
DECKBUM, 6-57

Digital Internal Use Only

EL-00070--06
VSRM - Keyboard Processing

19-Apr-1988

DECKPAM, 6-66
DECKPNM, 6-67
DECmate/WPS
Main Key Array, 6-130
DECNKM, 6-68
DECNRCM, 6-52
Delete Key, 6-80
with shift key, 6-77
Diacritical Mark
definition, 6-25
Editing Keypad Front Legends,
6-32
Editing Keypad Key, 6-15, 6-19,
6-28, 6-32, 6-69, 6-70
within compose sequence, 6-141
Environment
definition, 6-25
Escape Key
auto repeat, 6-42
Explicit Compose Sequence, 6-20,
6-42, 6-79, 6-80, 6-134,
6-140
algorithm, 6-145
definition, 6-26
External Interface, 6-14
Graphic Character
definition, 6-26
Hold Screen Key, 6-44, 6-72
Hold Screen LED, 6-30, 6-44, 6-72
Hold Screen Mode, 6-44, 6-172
Host Port
definition, 6-26
Host Port Environment Mode, 6-15,
6-16, 6-19, 6-20, 6-22, 6-47,
6-172
Human Interface, 6-12
Implied Compose Sequence, 6-42,
6-79, 6-80, 6-134, 6-140
algorithm, 6-145
definition, 6-26
Inoperative
definition, 6-26
Input Processing, 6-13
Internal Interface, 6-14
ISO 8859-1, 6-24

mDmDomD™

Page Index-2

KAM, 6-39
Key
definition, 6-26
Key Legend
definition, 6-26
Key Position 10, 6-28
definition, 6-26
Keyboard, 6-15
Keyboard Action Mode, 6-16, 6-38,
6-172
Keyboard Areas, 6-28
Keyboard Dialect
definition, 6-26
Keyboard Dialects, 6-9
table, 6-10
Keyboard Layouts, 6-9
Keyboard Lock, 6-44
Keyboard Map
logical, 6-30
physical, 6-28
Keyboard Usage Mode
data processing, 6-54
definition, 6-26
typewriter, 6-54
Keyboard Usage Modes, 6-82
data processing, 6-15, 6-28,
6-30, 6-172
typewriter, 6-28, 6-30, 6-172
Keyboard Versions, 6-9, 6-15,
6-28, 6-30, 6-54, 6-82
Keyclick, 6-19, 6-39, 6-46, 6-69,
6-70
with control key, 6-75, 6-76
within compose sequence, 6-141
Keyclick Mode, 6-46, 6-172
Keypad Mode, 6-16, 6-63, 6-65,
6-66, 6-67, 6-68, 6-172
Label Strip
application, 6-25
permanent, 6-26, 6-30, 6-35,
6-70
removable, 6-27, 6-70
system, 6-27
LEOs
compose, 6-30, 6-44, 6-141
hold screen, 6-30, 6-44, 6-72
legends, 6-30, 6-35
lock, 6-30, 6-44
wait, 6-30, 6-38, 6-44

Digital Internal Use Only

EL-00070-06·· •.
VSRM - Keyboard Processing

19-Apr-1988

Page Index-3

Legend
definition, 6-26
Level 1
keyboard, 6-15
Level 2
keyboard, 6-15
LK201, 6-7, 6-8, 6-9, 6-15, 6-23
Local Function Key
within compose sequence, 6-141
Local Function Keys, 6-28, 6-30,
6-44, 6-70, 6-72, 6-77
auto repeat, 6-42
Lock Key, 6-44, 6-61, 6-63, 6-69,
6-70, 6-75, 6-77, 6-82
with control key, 6-75
Lock Key Mode, 6-44, 6-172
Lock LED, 6-30, 6-44
Logical Keyboard Map, 6-30

National Keyboards, 6-12
New Line Mode, 6-16, 6-65, 6-75,
6-79, 6-172
with control key, 6-79
Non-Spacing Diacritical Key, 6-12,
6-26, 6-42, 6-44, 6-80, 6-134,
6-140, 6-145
definition, 6-25
NRCS Extension, 6-21, 6-22, 6-81
Numeric Keypad, 6-33
Numeric Keypad Front Legends,
6-34
Numeric Keypad Key, 6-28, 6-62,
6-63, 6-65, 6-66, 6-67, 6-68
codes generated, 6-64
within compose sequence, 6-141
Numeric Keypad Mode, 6-172
control function, 6-68

Main Key Array, 6-9, 6-28
Modes
auto print, 6-73
auto repeat, 6-16, 6-40, 6-41,
6-172
C1 transmission, 6-172
caps/shift lock, 6-16, 6-17,
6-77, 6-78, 6-82, 6-172
character set mode, 6-22, 6-52,
6-172
compose, 6-172
conformance level, 6-172
cursor key, 6-16, 6-60, 6-62,
6-172
hold screen, 6-44, 6-172
host port environment, 6-15,
6-16, 6-19, 6-20, 6-22,
6-47, 6-172
keyboard action, 6-16, 6-38,
6-39, 6-172
keyboard usage, 6-57
keyclick, 6-46, 6-172
keypad, 6-16, 6-63, 6-65, 6-66,
6-67, 6-68, 6-172
lock key, 6-44, 6-172
national replacement character
set mode, 6-52
new line, 6-16, 6-65, 6-75,
6-79, 6-172
numeric keypad mode, 6-172
printer port environment, 6-172

Permanent Label Strip, 6-30, 6-35,
6-70
definition, 6-26
Physical Keyboard Map, 6-28
Print Screen Key, 6-73
Printer Port
definition, 6-26
Printer Port Environment Mode,
6-172
Product Class
DEC Standard, 6-35
DECmate/WPS, 6-35

mDmDomD™

Receive
definition, 6-27
Reference Standards, 6-23
Removable Label Strip, 6-70
definition, 6-27
Return Key, 6-75, 6-79
auto repeat, 6-42
with shift key, 6-77
within compose sequence, 6-141
Select Conformance Level, 6-17,
6-38, 6-70
Set Keypad Application Mode
control function, 6-66
Set Keypad Numeric Mode
control function, 6-67
Set-up
definition, 6-27

Digital Internal Use Only

EL-00070-06·~ -.
VSRM - Keyboard processing

19-Apr-1988

set-up Key, 6-73
Set/Reset Auto Repeat Mode
control function, 6-41
Set/Reset Character set Mode
control function, 6-52
Set/Reset Cursor Key Mode, 6-62
Set/Reset Keyboard Action Mode
control function, 6-39
Set/Reset Keyboard Usage Mode
control function, 6-57
Set/Reset National Replacement
Character Set Mode, 6-52
Shift Key, 6-61, 6-63, 6-69, 6-75,
6-78, 6-82
auto repeat, 6-42
with control key, 6-75, 6-77
with delete key, 6-77
with function key, 6-70
with return key, 6-77
with space bar, 6-77
with tab key, 6-77
Shift Lock, 6-16, 6-17, 6-77,
6-78, 6-82, 6-172
Software Conformance
auto repeat mode, 6-41

Page Index-4

keyboard Usage Mode, 6-57
SPACE
definition, 6-27
Space Bar, 6-75, 6-79, 6-81
with shift key, 6-77
System Label Strip
definition, 6-27
Tab Key, 6-75, 6-80
with shift key, 6-77
within compose sequence, 6-141
Terminal Synchronization, 6-72
Terminal User
definition, 6-27
Transmit
definition, 6-27
User Convenience Function
auto repeat, 6-41
Keyboard Usage Mode, 6-57
User Preference Supplemental Set,
6-172
Visual Indicators, 6-44
Wait LED, 6-30, 6-38, 6-44

Digital Internal Use Only

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-1

VIDEO SYSTEMS REFERENCE MANUAL
Printer Port Extension
Document Identifier: A-DS-EL00070-07-0 Rev AX12, 28-Apr-1987

ABSTRACT: This section describes the characteristics of the
Printer Port extension to the Level 2 and Level 3 Character Cell
Display service class.
It includes both the control functions
required to cause transmission from the terminal to the printer,
and the syntax of the coded interchange at the printer port.
Note: The Level 1 Printer Port Extension consists of a sub-set of
the functions described in this standard.
At the present time
there is no separate specification of the Leve.l 1 required
functions.
APPLICABILITY: Mandatory for Engineers designing hardware for
terminal products and Software Engineers designing programs using
terminal interfaces. Additional requirements are defined in the
section on "Concepts and Conformance Criteria" (EL00070-01).
STATUS:

FOR REVIEW ONLY

+----------------------------------------------------------------+
I The material contained within this document is assumed to
I
I
I
I
I
I
I
I

define mandatory standards unless it is clearly marked as:
(a) not mandatory; or (b) guidelines. Material which is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques which are considered to be good
practice, but should not be considered as requirements.

I
I
I
I
I
I
I

+-----------------------------------~----------------------------+

+----------------------------------------+
I The information in this' publication is I
I for INTERNAL DIGITAL USE ONLY; do not I
I distribute this information to anyone I
I who is not an employee of Digital.
I

+

--------------------------------------------+

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF -DEC Internal Use Only 28-Apr-1987

page 7-2

TITLE: VIDEO SYSTEMS - Printer Port Extension
DOCUMENT

~PENTIFIER:

A-DS-EL00070-07-0 Rev. AXI2, 28-Apr-1987

REVISION HISTORY: Revision AXIl
Revision AxI2

18-Mar-1985
28-Apr-1987

EL070S7.mem
FILES: User Documentation
Internal Documentation EL070S7.rno
EL070S7.rnt
EL070S7.rnx
ZZFALLBACK DEC CRM.rno
ZZFALLBACK-DEC-SPECIAL.rno
ZZFALLBACK-DEC-SUPPLEMENTAL.rno
ZZFALLBACK-DEC-TECHNICAL.rno
ZZFALLBACK-ISO-SUPPLEMENTAL.rno
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel
Authors:
PAS
APPROVAL: This document prepared by the TBU Architecture
Group has been reviewed and approved by the TIA
Review Board for use throughout Digital.

******* STATUS: For Review Only ********
Peter Conklin, Technical Director,
Terminals Business Unit
******* STATUS: For Review Only ********
Eric Williams, Standards Process Manager
Direct requests for further information
PK03-1/10C, DTN 223-5162, VIDEO::TERMARCH

to

Peter

Copies of this document can be ordered from Standards and
Control, LJOI/I2, DTN 226-2484, JOKUR::SMC

Sichel,
Methods

Please provide your name, badge number, cost center, mailstop, and
ENET node.

Page 7-3

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
•

CHAPTER 7

CONTENTS

PRINTER PORT EXTENSION

7-4
INTRODUCTION
7.1
TERMINOLOGY
7-4
7.2
STATE DESCRIPTIONS .
7-5
7.3
Printer Port Flow Control
. • .
7-5
7.3.1
XON/XOFF . . .
7-5
7.3.1.1
Data Set Ready (DSR) . .
.
o.
7-6
7.3.1.2
Data Terminal Ready (DTR)
7-6
7.3.1.3
Printer Port Status
7-7
7.3.2
Printer Port Status On Virtual Terminals . . 7-S
7.3.3
Printer Port Communications Environment
. 7-S
7.3.4
Printer To Host Communications
7-8
7.3.5
Printer Controller Mode
.
o . 7-9
7.3.6
Printer Controller Mode On Virtual
7.3.6.1
Terminals (guideline)
7-10
Auto Print Mode
.
7-10
7.3.7
Auto Print Mode On Virtual Terminals
7.3.7.1
(guideline)
7-11
Print Form Feed Mode
7-11
7.3.S
Print Extent Mode
o. •
7-11
7.3.9
7-11
Local Controller Mode (not Mandatory)
7.3.10
7-12
Printer Style
7.3.11
TRANSMITTING PRINT DATA
.
7.4
7-12
Print National Only (7-bit Or 8-bit
7.4.0.1
Printer Port Environment)
o.
7-12
Print National + Line Drawing (7-bit Or
7.4.0.2
S-bit Printer Port Environment)
7-13
Print All Characters (7-bit Printer Port
7.4.0.3
Environment)
7-14
Print All Characters (S-bit Printer Port
7.4.0.4
Environment) . .
7-15
National Replacement Character Sets
7.4.1
7-17
Display Attributes
7.4.2
7-18
Trailing Spaces . . .
7.4.3
7-18
FALLBACK PRESENTATION OF GRAPHIC CHARACTERS
7.5
7-19
7.5.1
NRC Fallbacks .
7-19
7.5.2
DEC Special Graphics Fallbacks
7-19
7.5.3
DEC Supplemental Fallbacks . .
7-20
ISO Latin-1 Supplemental Fallbacks
7.5.4
7-22
7.5.5
DEC Technical Character Set Fallbacks
7-24
7.5.6
ORCS Fallbacks . .
7-27
7.S.7
User Preference Supplemental Set Fallbacks 7-27
Control Representation Mode Fallbacks (not
7.S.8
Mandatory)
7-27
7.6
PRINT OPERATIONS . . . . . . .
7-29
7.6.1
Print Page Or Scrolling Region .
7-29
7.6.2
Print Screen (not Mandatory) . .
7-29
0

0

•

•

0

•

•

•

0

0

0

•

•

•

•

0

•

0

0

0

0

• • • • • • •

•

0

•

•

0

•

•

0

0

•

0

•

•

•

0

0

0

0

•

•

0

0

0

0

•

0

0

0

0

0

•

•

0

0

0

•

0

0

0

•

0

••

•

0

0

••

••

0

•

00

•

0

•

0

•

0

•

0

• • •

0

0

•

•

0

•

0

•

•

•

•

0

•

0

0

•

•

0

•

0

0

0

0

•

0

0

0

0

0

•

0

0

0

0

0

• • •

0

0

•

0

0

• • • • •

•

•

•

0

0

0

• • • • • •

0

•

•

•

•

0

•

0

•

0,

0

0

•

•

•

0

0

•

•

0

•

•

•

•

•

•

•

0

•

0

0

•

•

•

•

•

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-4

print All pages ( guideline.)
7.6.3
7.6.4
Print Line
7.7
CONTROL FUNCTIONS
7.8
GRAPHICS PRINTING
7.8.1
Graphics Print Operations
7.8.1.1
Graphics Print Screen
7.8.1.2
Graphics Print Region
7.8.2
Sixel Printing
7.8.2.1
Color And Monochrome Sixels
7.8.2.2
Expanded Print
·
7.8.2.3
Rotated Print
7.8.2.4
Sixel Graphics Level (Guideline)
Level 1 Sixel Devices
COMPRESSED Sixel Print Option
EXPANDED Sixel Print Option
ROTATED Sixel Print Option
Level 2 Sixel Devices
COMPRESSED Sixel Print Option
EXPANDED Sixel Print Option
ROTATED Sixel Print Option
7.9
CHANGE HISTORY .
7.9.1
Revision 0.0 To AX10
7.9.2
Rev AX10 To AXIl ·
7.9.3
Rev AXIl To AX12 ·

7-29
7-30
7-31
7-57
7-57
7-57
7-57
7-57
7-58
7-58
7-58
7-59
7-59
7-59
7-60
7-60
7-61
7-62
7-62
7-63
7-64
7-64
7-64
7-64

.·· ······ ····
· · · · ·
· · · · ·
··· ·
··· ·
·····
· · · ·
· · · ·· · ·
········..
·
·
·

· · ·

· · · ·
· · · · ·

· · ·

·
· ·

·

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.1

Page 7-5

INTRODUCTION

The use of a Printer Port forms an extension to the Levell, Level
2,
and Level 3 Character Cell Display service classes.
A
conforming device may provide an auxiliary communications port
which can be used to support a printing device. A means shall be
provided to transfer data from the display to the printer port, as
well as to relay data received at the host port directly to the
printer port. The device must transfer data from the display,
including the character codes, character renditions, and character
sets,
on a per-line,
per-scrolling region,
per-screen,
and
per-page basis.
The Printer Port uses serial asynchronous communications with
independently setable communication parameters.
Level 3 requires
a fully bi-directional printer port to allow printer to host
communication in addition to local printing (not mandatory for
Levell or Level 2).
7.2

TERMINOLOGY

Auto Print Mode the contents of
port whenever the
a
result of a
autowrap.

A printer port control which, when set,
causes
the Active Line to be transmitted to the printer
Active Position is moved off the Active Line as
Line Feed, Form Feed or Vertical Tab command, or

Fallback Transmission - A substitute transmission used when a
character
cannot be transmitted in a particular mode;
for
instance, when in NATIONAL and LINE DRAWING mode and a character
from the DEC Supplemental set is encountered.
Printer Controller Mode - A printer port control that causes all
data received at the host port to be transferred directly to the
printer port without interpretation by the display terminal.
Printer To Host Mode - A printer port control that causes all data
received at the printer port (other than ~ON/XOFF flow control) to
be relayed to the host.
Print Extent Mode - A printer port control used to select the area
of the display to be transmitted to the printer port when a Print
Page operation is performed.
Print Form Feed Mode - A printer port control which, when set,
transmits a Form Feed (FF) control character to the printer at the
conclusion of each Print Page or Print Screen operation.
Printer Port - An auxiliary communication
printing device.

port

that

supports

a

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-6

Print Line - A printer ~ontrol that causes the line containing the
Active Position to be transmitted to the printer port and the
print function to be executed.
Print Page - A printer control that causes the page containing the
Active Position to be transmitted to the printer port and the
print function to be executed. The extent of the area which is to
be transmitted is determined by the setting of Print Extent Mode.
"Print page" was previously called "Print Screen" in Levelland
Level 2.
Page refers to the logical display as seen by the host,
and may be larger or smaller than the physical screen.
Print Screen - A printer control that causes the visible screen
image to be transmitted to the printer port and the print function
to be executed.
Virtual Terminal - Consists of all the context (state information)
of a real terminal but is able to share physical resources (such
as the keyboard, display, and comm lines) with other virtual
terminals. This allows a single physical device to appear as more
than one terminal to a host computer.
Session - A connection between a single
host computer.
7.3

virtual

terminal

and

a

STATE DESCRIPTIONS

7.3.1

Printer Port Flow Control

The Printer Port uses two flow control mechanisms:
1.

XON/XOFF

2.

Data Set Ready (DSR)

7.3.1.1

XON/XOFF

When XON/XOFF flow control is ~nabled, XON and
XOFF
are
interpreted as flow control characters and are not buffered in the
printer port input buffer or transmitted to the host.
The terminal recognizes XOFF (1/3) as a request from the printer
device to suspend the transmission of characters. When this
character is received by the terminal,
transmission of all
characters (other than XON or XOFF) to the printer is suspended.
When the printer port is in this state, it is said to be in the
XOFF state.
The terminal recognizes XON (1/1) as a request from the printer
device to resume the transmission of characters, if any. When

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-7

this character is received by the terminal, the XOFF state of the
printer is cleared and transmission of characters in the printer
port output buffer is resumed. If the line was not XOFF-ed,
this
character is ignored.
When Printer To Host Communication is enabled (bidirectional
printer port only), the terminal transmits an XOFF to the printer
device if a character other than XON or XOFF is received from that
device, and (1) the number of characters in the input buffer
reaches the first XOFF point for the first time since the last XON
was sent; (2) the number of characters in the input buffer reaches
the second XOFF point for the first time since the last XON was
sent; or (3) the input buffer is full.
If the input buffer is
full, the received character is discarded.
The terminal transmits an XON to the printer device when the
printer port input buffer empties to the XON point, and the last
flow control sent was XOFF.
When XON/XOFF flow control is disabled at both the printer port
and the host port, characters XON and XOFF may be sent to the
printer in Printer Controller mode, and are
buffered
and
transmitted to the host when Printer To Host communication is
enabled.
PRINTER PORT FLOW CONTROL: (XOFF, NO_XOFF)i

7.3.1.2

Data Set Ready (DSR)

The terminal polls DSR on the printer port before transmitting
each character.
If DSR is not being asserted by the printer
device, transmission of the character is suspended until DSR is
asserted by the printer device. DSR takes precedence over the
XON/XOFF state.
All print commands will be ignored unless the terminal has seen
Data Set Ready (DSR) since the last power-up, or Reset to Initial
State (RIS). If at any time the printer sets DSR low (for example
to indicate paper out), printing is suspended. When DSR is again
set high, printing can resume.
7.3.1.3

Data Terminal Ready (DTR)

If. DTR is not being used for hardware flow control,
the terminal
- asserts DTR on the printer port whenever the terminal is turned on
and not in self-test .
. Conforming Devices may support the use DTR for hardware flow
control. The following description is intended as a guideline.

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-8

When hardware flow control is selected, DTR is asserted any time
the terminal is not in self-test, and the terminal's printer port
input buffer is below the first XOFF point.
DTR is de-asserted
when the printer port input buffer is filled up to or beyond the
first XOFF point.
-If the input buffer is full,
received
characters are discarded until there is again room in the input
buffer.
When hardware flow control is used,
only a few characters of
The first XOFF
buffer space are required to prevent loss of data.
point is suggested as the flow control threshold because it is
often adjustable allowing the user to tailor the buffer size
depending the interaction requirements.
7.3.2

Printer Port status

The printer port can be in one - of three states depending on
whether the terminal believes there is a printer available, and
whether the printer is ready to accept data.
The printer port
status may be determined from the host using a Device Status
Report control sequence.
If DSR (Data Set Ready) has not been asserted on the printer- port
since the last power-up or Reset to Initial state (RIS), the
terminal assumes there is no printer. The device status report
(response from terminal to host) will indicate "Printer not
available".
In this state, all print commands which require the
printer port are ignored.
If the printer port has seen DSR since power-up,
but it is no
longer asserted on the printer port, the device status report will
indicate "Printer not ready".
In this state, print operations
shall be queued. Updates that would affect the data to be printed
are suspended until the data has been transferred to .the printer
port.
If the terminal's host port input buffer fills, XOFF will
be sent to the host (if enabled).
If the printer port sees DSR,
the device status report will
indicate "Printer ready".
In this state, print operations can
proceed immediately. Note updates that would affect the data to
be printed are still suspended until the data has been transferred
to the printer port.
The printer port may provide an output
buffer to minimize interruption of display updates.
PRINTER STATUS:
(PRINTER_READY, PRINTER_NOT_READY, PRINTER_NOT_AVAILABLE);

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.3.3

page 7-9

Printer Port Status On Virtual Terminals

When Virtual Terminals
are
supported
(Session
Management
Extension),
the terminal will report two additional printer port
states to indicate the printer port is in use by another session.
If the Data Set Ready signal at the printer port is asserted,
but
an alternate session is currently sending information to the
printer, the device status report will indicate "Printer Busy."
This is functionally equivalent to the "Printer Not Ready"
condition above.
If the printer port is explicitly assigned to another session so
that the current session may not access the printer port, the
device status report will indicate "Frinter Not Assigned." This is
functionally equivalent to the "Printer Not Available" condition
above.
7.3.4

Printer Port Communications Environment

The printer port can be set for either an a-bit or 7-bit
communications line environment independently of the Host Port.
_In the 7-bit environment, all data will be transmitted as 7-bit
characters.
In the a-bit environment,
each character will be
transmitted as an a-bit character.
If the host port is set to
a-bits and the printer port is set to 7-bits,
C1 control
characters will be converted to ESC Fe sequences at the printer
port, and GR characters will have their eight~ bit stripped.
PRINTER PORT ENVIRONMENT:

7.3.5

(EIGHT_BIT, SEVEN_BIT);

Printer To Host Communications

Printer To Host Mode relays all input from the printer port other
than XON/XOFF flow control back to the host (enabling session).
Printer To Host mode may be selected from the host using the Media
Copy (MC) control function.
Character input from the printer port is interleaved with input
from the keyboard as it is received. Arbitration between keyboard
and auxiliary device input is the
responsibility
of
the
application
program
and user.
The terminal only provides
arbitration to the keystroke,
control function,
or character
level.
Characters associated with a single keystroke, or control function
are sent as contiguous bytes. When the terminal sees an ESC, CSI,
DCS, OSC, PM, or APC character,
the escape sequence,
control
sequence,
or control string, will be buffered until a terminator
is received for the sequence, or until the input buffer is full.

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-10

Notes:

7.3.6

1.

Printer To Host Mode functions in Printer Controller Mode
as well as other print modes.

2.

When available, Printer To Host Mode works at all
operating levels (levell, level 2, and level 3). 8-bit
graphic characters may be relayed from the printer port
even when the conformance level is set to Level 1.

3.

If the host port is set to 7-bits, C1 control characters
will be converted to ESC Fe sequences at the host port
before re-transmission to the host, and GR characters
will have their eighth bit stripped.

Printer Controller Mode

When Printer Controller Mode is set, all data received at the host
port
is
transferred directly to the printer port without
interpretation by the display terminal. The only exceptions to
this rule are the communications control characters XON and XOFF
(DC1 and DC3), NUL, and the control sequences which cause the
terminal to enter and exit this mode.
XON and XOFF are used by the communications software for flow
control on the line between the terminal and the host, and
independently for flow control on the line between the terminal
and the printer.
The terminal must intercept the Media Copy
control sequences from the host which turn Printer Controller Mode
on and off, and must execute the sequence which turns Printer
Controller Mode off. These control sequences are not passed to
the printer.
Characters from the keyboard continue to be sent to the host. The
video display is not updated. When in Printer Controller Mode no
local printer functions will work. For example: Print page does
not work.
In going from an 8-bit host port to a 7-bit printer port, C1
control characters ~ill be translated to ESC Fe sequences, and GR
characters will have the eighth bit stripped (i.e., no fallback
translation will be performed for 8-bit graphic characters in
Printer Controller Mode).
Deviation Note
On VT220, VT240, and VT241, when the host port was
configured
for a 7-bit environment, and the

Page 7-11

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

printer port was configured for 8-bits,
the
terminal would translate 7-bit· C1 controls to
their 8-bit equivalents. New terminals shall NOT
perform this translation.
Printer Controller mode can be selected from the
Media Copy (MC) control function.
When Control Representation Mode
(CRM)
Controller Mode is temporarily disabled.

is

host

using

selected,

the

Printer

Upon exiting from Printer Controller mode, the state of Auto Print
mode is UNDEFINED.
That is, when Printer Controller mode is
exited, Auto Print Mode may not be in the same state it was when
Printer Controller Mode was entered.
PRINTER CONTROLLER MODE: (PRINTER CONTROLLER OFF,
PRINTER=CONTROLLER=ON);
Guideline
The VT220 sets Auto Print mode off (normal print
mode) upon exit from Printer Controller mode.

7.3.6.1

Printer Controller Mode On Virtual Terminals (guideline)

If the Printer is "assigned" to another
session
(virtual
terminal), attempts to invoke Printer Controller Mode will be
ignored. This is equivalent to the "Printer not available" state,
but the Device Status Report will indicate "printer not assigned".
When the printer assignment is "shared" and the printer is in use
by another session,
this is equivalent to the "printer busy
state". The next action which would cause data to be transferred
to the printer will cause this session to wait until the printer
is available.
If the input buffer for this session fills while
waiting,
the terminal will send XOFF (or other flow control) to
the host.
Entering Printer Controller Mode forces the printer to
appear busy to other sessions.
7.3.7

Autu Print Mode

When Auto Print Mode is set, any Line Feed (LF), Vertical Tab
(VT),
Form Feed (FF)
control, or the execution of Auto Wrap if
this mode is enabled, will cause the active line to be transferred
from the display to the printer port. The line will be terminated
by a Carriage Return (CR), followed by the same character that
initiated the print operation (LF, VT, FF, or LF 1f Auto Wrap).

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Auto Print mode can be set or
Copy (MC) control function.

7.3.7.1

clea~ed

Page 7-12

by the host using the

Media

Auto Print Mode On Virtual Terminals (guideline)

If the Printer is "assigned" to another session, attempts to set
Auto Print mode will be ignored.
If the printer assignment is
"shared", and the printer is in use by another session (busy), the
next action which would cause data to be transferred to the
printer will cause this session to wait until the printer is
available.
Entering Auto print Mode forces the printer to appear
busy to other sessions.
Although Auto Print Mode can keep the printer "busy" indefinitely,
it is not "assigned" to the session which invokes Auto Print Mode.
This is to avoid a race condition in which the host could not
predict whether a print operation will be queued or ignored.
7.3.8

Print Form Feed Mode

Print Form Feed Mode is used to determine whether a Form Feed (FF)
control character shall be transmitted to the printer at the
conclusion of each Print Page or Print Screen operation.
In the
set state (Print FF)
a Form Feed shall be sent.
In the reset
state (No_print_FF) no Form Feed is sent.

7.3.9

Print Extent Mode

Print Extent Mode is used to determine the area of the page to be
transmitted to the printer when a Print Page operation is
performed.
In the set state (Complete page) the entire contents
of
the
current page is transmitted.
In the reset state
(Scrolling Region) only the area of the page between the Top
Margin and-Bottom Margin of the scrolling region (inclusive of the
margins) is transmitted.
PRINT EXTENT MODE: (PRINT_SCROLLING_REGION,PRINT_DISPLAY);
7.3.10

Local Controller Mode (not Mandatory)

When both Local Mode and Controller Mode are selected,
the
terminal is in "Local Controller Mode:'
(Local Mode i sonly
selectable by the user under local control).
In Local Controller
Mode, 'keyboard characters are sent directly to the printer port.

VSRM - Printer Pori Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-13

Note that in regular Local mode the keyboard is aimed at the
screen, while in regular Controller mode the keyboard is aimed at
the host. When "Local controller Mode" is exited to Printer
Controller Mode,
the characters accumulated in the receive silo
are transmitted to the printer. When "Local Controller Mode" is
exited to Local Mode, the terminal just redirects the keyboard
from the printer port to the screen (and parser). Local echo is
disabled while in Local Controller Mode'. CRM mode is disabled
when in local controller mode.
Local Controller mode is used to allow keyboard output to a
printer. In local controller mode, the setting of printer to host
mode is ignored and characters received from the printer are
ignored (except XON and XOFF if XOFF support is enabled).
7.3.11

Printer Style

Three Printer Style modes are available to match the range of
character sets the printer is capable of supporting. These are:
National Only; National + Line Drawing; and All Characters. These
modes are described in the next section on TRANSMITTING PRINT
DATA.
PRINTER STYLE:
(NATIONAL_ONLY, NATIONAL_PLUS_LINE_DRAWING, ALL_CHARACTERS);
7.4

TRANSMITTING PRINT DATA

Each time a print of screen data is requested,
three things
happen. First, the p'rinter is "initialized" to a known or assumed
character set state, either via assumption, or via designating
escape sequences and/or locking shift sequences.
Next,
the
characters are transmitted.
This
may
require
additional
designating
escape
sequences
and/or shifts.
Finally,
the
transmission is ended by putting the printer into a known state.
Since the host may access the printer during auto-print mode,
the
complete initialization / transmission / closing sequence is used
for each line printed.
7.4.0.1

Print National. Only
Environment)

(7-bit

Or

a-bit

Printer

Port

ASSUMPTIONS: This mode is included for backward support of "dumb"
printers which do not understand designating escape sequences, or
which do not support any character set other than a National
Replacement Character Set (NRCS). The terminal and printer have
already been configured to use the same NRC Set.
The terminal

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28~Apr-1987

Page 7-14

determines which NRC Set to use based on the keyboard dialect
(ASCII is the NRC Set for North America). Refer to the National
Replacement Character Set section below.
INITIALIZATION: No escape sequences or shifts are sent.
It is
assumed that the printer is ready to print NRCS characters as GL.
TRANSMISSION:
The characters are sent. No escape sequences or
shifts are sent. If a character which is not in the selected NRCS
is encountered, fallback is used.
If a-bits is set,
the most
significant bit is always zero. Characters with the "invisible"
character attribute are transmitted as spaces. All other Display
Attributes are ignored.
CLOSING:

No closing sequences are sent.

FALLBACK: Cha racters whi ch have an· NRCS equivalent (have an
identical dot matrix representation to an NRCS character) are sent
as the NRCS equivalent. Otherwise fallback is used (a single
unsupported character maps to one or more supported characters).
Refer to the fallback section and tables later in this chapter.
7.4.0.2

Print National + Line Drawing
Port Environment)

(7-bit

Or

8-bit

Printer

ASSUMPTIONS:
The printer supports ASCII, the VT100 line drawing
set (DEC Special Graphics),
the current NRCS (when in national
mode), designating escape sequences for GO and Gl, and LSO/LSI
(SO/SI).
It does not support 8-bit controls.
The terminal
determines which NRCS to use based on the keyboard dialect
(ASCII
is the NRCS fdr North America). Refer to the National Replacement
Character Set section below.
INITIALIZATION: The printer is initialized to be sure the desired
NRCS is designated as GO, and DEC Special Graphics (line drawing)
is designated as Gl. GO is invoked. The sequences sent are:
ESC

B

ESC
LSO

o

(Designate
require a
(Designate
(Invoke GO

ASCII to GO, note other NRC Sets
different designating sequence)
DEC Special Graphics to Gl)
to GL)

TRANSMISSION: The characters are sent, using LSO and LSI to
choose between NRCS and DEC Special Graphics.
If a character is
in both sets (e.g., uppercase letters), it is sent as NRCS.
If a
character is in ASCII but not in the current NRCS, ASCII is
designated as GI and invoked as needed.
The next line drawing
character encountered will cause the DEC Special Graphics set to
again be designated as GI.
If a character which is not in the
current NRCS, ASCII, or DEC Special Graphics set is encountered,
fallback is used.
In an 8-bit environment the most significant

Page 7-15

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
bit is always set to zero.
In this mode the display attributes are also sent.
Display Attributes section below.

Refer

to

the

CLOSING: LSO is sent, if necessary.
If ASCII was the last set
designated
as
GI, DEC Special Graphics (line drawing)
is
re-designated. This leaves the printer with NRCS as GO, DEC
Special Graphics as GI, and GO invoked to GL.
FALLBACK:' If the character has an equivalent (the same dot matrix
representation) as a character in either the NRCS, DEC Special
Graphics, or ASCII sets, then the equivalent is used.
Otherwise
fallback is used (a single unsupported character maps to one or
more supported characters). Refer to the faliback section and
tables later in this chapter.
7.4.0.3

Print All Characters (7-bit Printer Port Environment)

ASSUMPTIONS: The printer supports all the character sets in use
by the terminal, designating escape sequences for GO, GI, G2, G3,
and charact~r set shifts LSO, LSI,
SS2 and SS3.
If the User
Preference Supplemental set (UPSS) extension is used, the printer
has already been configured with the same UPSS.
If a ORCS is
used,
the host has already down line loaded the printer's
character set(s) to match the video terminal's (in Printer
Controller Mode,
if necessary).
Printers with changeable font
cartridges must support all of the
above
character
sets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with the
terminal.
The character sets currently designated as GO, GI, G2,
and G3 in the terminal are designated as GO, GI, G2, and G3 in the
printer respectively.
GO is invoked to GL. The sequences sent
are:
ESC
ESC
ESC *
ESC +
LSO

Dscs
Dscs
Dscs
Dscs

(Designate
(Designate
(Designate
(Designate
(Invoke GO

a 94 character
a 94 character
a 94 character
a 94 character
to GL)

set
set
set
set

as
as
as
as

GO)
GI)
G2)
G3)

Where "Dscs" consists of zero, on-e, or two intermediate
characters and a final character for the character set
being designated.
If a 96 character set is to be designated, the first
intermediate character will change as follows:
ESC - Dscs
ESC . Dscs

(Designate a 96 character set as GI)
(Designate a 96 character set as G2)

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
ESC /

Dscs

Page 7-16

(Designate a 96 character set as G3)

If one of the character sets is the UPSS, it is designated
as the UPSS, not the specific character set chosen.
TRANSMISSION: The characters are sent, using LSO and LS1
choose between the character sets in GO and G1.
If a character
in the set deSignated as G2, SS2 is used to temporarily invoke
into GL.
If a character is in the set designated as G3, SS3
used to temporarily invoke G3 into GL.
If a character from
alternate character set is encountered the alternate set
designated as G3 and SS3 is used to send it.

to
is
G2
is
an
is

The priority order for sending characters contained in more than
one set is ASCII, UPSS, DEC Supplemental, ISO Supplemental, DEC
Technical, and DEC Special Graphics.
In this mode the display attributes are also sent.
Display Attributes section below.

Refer

to

the

CLOSING: LSO is sent, if necessary.
If an alternate set was the
last set designated as G3, G3 is re-designated. This leaves the
printer with GO invoked as GL; GO, Gl, G2, and G3 the same as the
terminal.
FALLBACK: When Print All Characters is selected, fallback is only
provided for CRM characters. CRM characters do not belong to a
character set. Refer to the fallback section and.tables later in
this chapter.
7.4.0.4

Print All Characters (8-bit Printer Port Environment)

ASSUMPTIONS: The printer supports all the character sets in use
by the terminal, designating escape sequences for GO, Gl, G2, G3,
and character set shifts LSO, LS1, LS2R and LS3R.
If the User
Preference Supplemental Set (UPSS) extension is used, the printer
has already been configured with the same UPSS.
If a DRCS is
used,
the host has already down line loaded the printer's
character set(s) to match the video terminal's (in Printer
Controller Mode, if necessary).
Printers with changeable font
cartridges must support all. of the
above
character
sets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with the
terminal.
The character sets currently designated as GO, G1, G2,
and G3 in the terminal are designated as GO, Gl, G2, and G3 in the
printer respectively.
GO is invoked to GL, and G2 is invoked to
GR. The sequences sent are:
ESC ( Dscs

(Designate a 94 character set as GO)

VSRM - ~rinter Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

I
I

I
I
I
I
I
I
I
I

I
I

I
I
I

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I

I
I
I
I
I

I
I
I
I

I
I

ESC
Dscs
ESC * Dscs
ESC + Dscs
LSO
LS2R

(Designate
(Designate
(Designate
(Invoke GO
(Invoke G2

page 7-17

a 94 ch 9 racter set as G1)
a 94 character set as G2)
a 94 character set as G3)
to GL)
to GR)

Where "Dscs" consists of zero, one, or two intermediate
characters and a final character for the character set
being designated.
If a 96 character set is to be designated, the first
intermediate character will change as follows:
ESC - Dscs
ESC
Dscs
ESC / Dscs

.

(Designate a 96 character set as G1)
(Designate a 96 character set as G2)
(Designate a 96 character set as G3)

If one of the character sets is the uPSS, it is designated
as the UPS, not the specific character set chosen.
TRANSMISSION:
The characters are sent using LSO/LS1 to choose
between the character sets in GO and G1, and Ls2R/LS3R to choose
between the character sets in G2 and G3.
If a character from an
alternate character set is encountered,
the alternate set is
designated as G3, invoked by LS3R, and then sent.
The priority order for sending characters contained in more than
one set is ASCII, UPSS, DEC Supplemental, ISO Supplemental, DEC
Technical, and DEC Special Graphics.
In this mode the display attributes are also sent.
Display Attributes section below.

Refer

to

the

CLOSING:
LSO and LS2R are sent if necessary.
If an alternate set
was the last set designated as G3, G3 is re-designated. This
leaves the printer with GO invoked as GL and G2 invoke as GR; GO,
GI, G2, and G3 the same as the terminal.
FALLBACK: When Print All Characters is selected, fallback is only
provided for CRM characters. CRM characters do not belong to a
character set.
Refer to the fallback section and tables later in
this chapter.
Documented Exception
The "All Characters" mode in the VT200 family
designated ASCII as GO, Line Drawing as G1, DEC
Multinational as G2, and the DRCS as G3 if needed.
In the VT300 family, possible support for the UPSS
(S-bit architecture), DEC Technical,
and.
DEC
Publishing
meant VT200 "All Characters" mode

page 7-18

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

really printed multinational characters.
In the
VT300,
"All Characters" mode was changed to print
all characters more efficiently.
Some terminals
may provide a "Multinational" mode similar to "All
Characters" on the VT200 to support fallbacks for
other character sets (DEC Technical for example).

7.4.1

National Replacement Character sets

There are 12 NRC Sets currently defined for 16 keyboard dialects.
The National Replacement Character set for each keyboard dialect
is as follows:
Keyboard Dialect

NRC Set

North American
Flemish
Canadian (French)
British
Danish
Finnish
Austrian/German
Dutch
It.alian
Swiss (French)
Swiss (German)
Swedish
Norwegian
Belgian/French
Spanish
Portuguese

ASCII
French NRC Set
French Canadian NRC Set
U.K. NRC Set
Norwegian/Danish NRC Set
Finnish NRC Set
German NRC Set
ASCII
Italian NRC Set
Swiss NRC Set
Swiss NRC Set
Swedish NRC Set
Norwegian/Danish NRC Set
French NRC Set
Spani sh NRC Set .
portuguese NRC Set

Designating Characters
B

=

(4/2)
(5/2)
( 3/9 )
(4/1)
(6/0)
(3/5)
(4/11)
(4/2)
(5/9)
(3/13)
(3/13)

7

( 3/7 )

R

9
A

5
K
B
Y

=

(6/0 )
R
( 5/2 )
Z (5/10)
% 6
(2/5 3/6)

The National Replacement Character Sets are available
the appropriate keyboard is selected in the terminal.

only

Deviation Note
VT200 family devices support the Dutch
(designating character "4" (3/4)).

NRC

set

Guideline:
LA120
non-conforming
sequences:
Finland
"C"
(4/3); Sweden "H"
(4/8);
French
Canadian "Q" (5/1); Norway/Denmark "6"
(3/6)
or
"E" (4/5).

when

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.4.2

page 7-19

Display Attributes

When the Printer Style is "National + Line Drawing", or "Print All
Characters", the display attributes are also sent. The attributes
are of two kinds:
line attributes and character attributes.
The
line attributes will be initialized at the beginning of each line
as follows:
Single width lines Double Width lines Top half of Double Height Bottom half of Double Height -

ESC
ESC
ESC
ESC

#
#
#
#

5
6
3
4

The character attributes will be initialized at the start of
print operation as follows:

each

ESC [ 0 m
Every time the character attributes change,
the appropriate
control sequence setting the character attributes will be sent.
The sequences are of the form:
ESC [ 0 ; Ps ; Ps ; Ps m
with the following parameters:

o
1
4
5
7

all
for
for
for
for

attributes off
bold character attribute
underscore character attribute
blink character attribute
reverse video char~cter attribute

At the end of each print (line or page), the following
closing sequences will be sent as appropriate:
ESC [ 0 m
Note: characters with the "invisible" character attribute
parameter 8) are always sent to the printer as spaces.
7.4.3

(SGR

Trailing Spaces

Trailing spaces are spaces which come after all
printable
characters on a line.
Note that in general trailing spaces
themselves are not printed.
In "National Only" trailing spaces
are not printable and therefore are not sent to the printer.
In
"National + Line Drawing" and "All Characters" some spaces have
video character attributes, and are therefore printable.
In this
context, spaces with the normal video character attribute which
follow all printable characters (including spaces with video
attributes on), are not sent to the printer.

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.S

Page 7-20

FALLBACK PRESENTATION OF GRAPHIC CHARACTERS

When the Printer Style specifies that the device attached to the
Printer Port is not capable of presenting graphic characters which
can be presented on the terminal, the terminal attempts to display
a reasonable approximation of that character on the printer for
the Printer Port function operations, and in, Auto-Print mode.
These approximations,
or "Fallbacks", are not necessarily unique
but are intended to allow the reader of the result to be able to
reconstruct the original text using context to resolve conflicts.
NOTE
These fallbacks are not performed in Printer
Controller Mode or in Printer to Host operations.

7.5.1

NRC Fallbacks

No NRC fallbacks are required.
There are no NRCS characters which
are not in DEC Multinational or ISO Latin Alphabet Nr 1 (see the
corresponding fallback sections).
Deviation Note
In older devices,
two
National
Replacement
Characters in the Dutch NRC set are not available
in DEC-MCS, or ISO Latin-1.
If the Printer Style
is set to National Only or National + Line
Drawing, and one of these characters occur in the
data stream and, is not available in the current
national set, fallback is used as described below.
Character
ij
florin

7.5.2

Fallback Presentation
ij vowel (Dutch NRCs 5/11)
florin
(Dutch NRCs 7/12)

ij
f

DEC Special Graphics Fallbacks

If the Printer Style is set to "Print National Only", the terminal
will
represent all characters from the DEC Special Graphic (VT100
Line Drawing) character set as one or two character sequences from
the ASCII character set which approximate the desired graphic.
These characters have been
chosen
so
that
diagrams
or
presentations that use the mosaic line combinations will align
properly and present a reasonable appearance.

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Character

<**>





<+->



< 1>
<"X"I >

< 1_>
<+>


<-->
<- >
< >

<-I>
< L>



<>=>
<][>


<.A>

diamond
filled block
HT symbol
FF symbol
CR symbol
LF symbol
plus/minus sign
degree sign
NL symbol
VT symbol
lower right corner
upper right corner
upper left corner
lower left corner
intersect·ion
scan I
scan 3
scan 5
scan 7
scan 9
intersect from right
intersect from left
intersect from top
interse9t from bottom
vertical bar
less than or equal to
greater than or equal to
Pi symbol
not-equal to
pound sign
centered dot

7.5.3

DEC Supplemental Fallbacks

«->

Page 7-21

Fallback Presentation

*

#
HT
FF
CR
LF
+

o
NL
VT

+
+
+
+
+
=

-

-+
+
+
+
1

<>=
Pi

<>
#

If the Printer Style is set to "Print National Only",
or "Print
National
+
Line Drawing" the terminal will
represent all
characters from the DEC Supplemental character set as a sequence
of one or more characters from the ASCII character set which
approximate the desired graphic as described in the fallback table
below.

I
I

VSRM - Printer Port Extension EL-00070 ... 07
*** COMPANY CONF - DEC Internal.use Only 28-Apr-1987
Character








< a>
«<>
<0">
<+->
<2">
<3">


<. "'>

<1"'>

< 0>
<»>
<14>
<12>
<11>
































SP03
SC04
SC02
sCOS
SM24
SC01
SMS2
sM21
sP17
SM19
sA02
NS02
NS03
sM17
sM2S
sM26
NS01
SM20
SP18
NF04
NFOl
sP16
LAll
LA12
LA13
LA14
LA1S
LA16
LA17
LA18
LA19
LA20
LA27
LA28
LAS1
LAS2
LC41
LC42
LE1!
LE12
LE13
LE14
LE1S
LE16
LE17
LE18
Ll11
LI12
LI13
LI14
LI15

Fallback Presentation
inverted exclamation mark
cent sign
pound sign
yen sign
section sign
general currency sign
copyright sign
feminine ordinal
angle quotation mark left
degree sign
plus/minus sign
superscript 2
superscript 3
micro sign
paragraph sign
middle dot
superscript 1
masculine ordinal
angle quotation mark right
fraction one quarter
fraction one half
inverted question mark
small a with acute accent
capital A with acute accent
small a with grave accent
capital A with grave accent
small ~ with circumflex
capital A with circumflex
small a with die~esis or umlaut
capital A with dieresis or umlaut
small a with tilde
capital A with tilde
small a with ring
capital A with ring
small ae diphthong
capital AE diphthong
small c with cedilla
capital C with cedilla
small e with acute accent
capital E with acute accent
small e witp grave accent
capital E with grave accent
small e with circumflex
capital E with circumflex
small e with dieresis or umlaut
capital E with dieresis or umlaut
small i with acute accent
capital I with acute accent
small i with grave accent
capital I with grave accent
small i with circumflex

c
#

y

Sc

o

(C)

a

«

o
+
2
3
u

Pr
1
o

»

1/4
1/2
1

a
A

a
A

a

A

a
A

a
A

a
A

ae
AE
c
C

e
E

e
E

e
E

e
E

i
I

i
I

i

page 7-22

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

I
I

I

I
I
I
I

I
I
I
I
I

I
I
I
I
I
I
I
I
I
I

I
I

I.

I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I







<0'>
<0' >
<0'>
<0'>
<0">
<0">
<0">
<0">
<0->
<0->


<0/>
<0/>












7.5.4

LIl6
LIl7
LIl8
LNII
LNl2
LOll
LOl2
LOl3
LOl4
LOIS
LOl6
LOl7
LOl8
LOl9
L020
LOsl
LOs2
L061
L062
Ls61
LUll
LUl2
LUl3
Lul4
LUIS
Lul6
LUl7
LUl7
LYl7
LYl8

capital I with circumflex
small i with dieresis
capital I with dieresis
small n with tilde
capital N with tilde
small 0 with acute accent
capital 0 with acute accent
small 0 with grave accent
capital 0 with grave accent
small 0 with circumflex
capital 0 with circumflex
small 0 with dieresis or umlaut mark
capital 0 with dieresis or umlaut mark
small 0 with tilde
capital 0 with tilde
small oe ligature
capital OE ligature
small 0 with slash
capital 0 with slash
German small sharp s
small u with acute accent
capital U with acute accent
small u with grave
capital U with grave
small u with circumflex
capital U with circumflex
small u with dieresis or umlaut
capital U with dieresis or umlaut
small y with dieresis
capital Y with dieresis

Page 7-23

~

i
I
n
N
0
0
0
0
0
0
0
0
0
0
oe
OE
0

0
ss
u
U
u
U
u
U
u
U
y

Y

ISO Latin-l Supplemental Fallbacks

If the Printer Style is set to "Print National Only", or "Print
National
+ Line Drawing",
the terminal will represent all
characters from the ISO Latin-l supplemental character set as a
sequence of one or more characters from the ASCII character set
which approximate the desired graphic as described in the fallback
table below.

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Character




.







< a>
«<>
<-,>


<_A>

<+->
<2A>
<3 >
A

<' , >



<. A>

<, , >



< 0>
<»>
<14>
<12>
<34>

















<-D>

<0'>

SP??
SP03
SC04
SC02
SCOl
SCOS
SM??
SM24
SCOl
SM52
SM21
SP17
SM??
SM18
SM53
SP31
SM19
SA02
NS02
Ns03
5Dl1
5M17
5M25
5M26
5D41
NS01
5M20
SP18
NF04
NFOl
NF05
5P16
LA14
LA12
LA16
LA18
LA20
LA28
LAS2
LC42
LE14
LE12
LE16
LE18
LI14
LI12
LI16
LI18
LD62
LN12
L014

Page 7-24

Fallback .Presentation
no break space
inverted exclamation mark
cent sign
pound sign
general currency sign
yen sign
broken bar
section sign
diaeresis
copyright sign
feminine ordinal
angle quotation mark left
logical not sign
soft hyphen
registered trade mark sign
macron, overline
degree sign
plus/minus sign
superscript 2
superscript 3
acute accent
micro sign
paragraph sign
middle dot
cedilla
superscript 1
masculine ordinal
angle quotation mark right
fraction one quarter
fraction one half
fraction three quarters
inverted question mark
capital A with grave accent
capital A with acute accent
capital A with circumflex
capital A with diaeresis or umlaut
capital A with tilde
capital A with ring
capital AE diphthong
capital C with cedilla
capital E with grave accent
capital E with acute accent
capital E with circumflex
capital E with diaeresis or umlaut
capital I with grave accent
capital I with acute accent
capital I with circumflex
capital I with diaeresis
capital Icelandic letter Eth
capital N with tilde
capital 0 with grave accent


1

c

*

o
y

I

Sc
It

(C)

a

«

-

(tilde)
(dash)

(R)

- (dash)
o
+
2
3
, (apostrophe)
u

Pr
, (comma)
1
o

»

1/4
1/2
3/4
?
A
A
A
A
A
A

AE
C
E
E
E
E
I
I
I
I
D
N

o

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-l987
<0'>

<0->
<0">

<0/>























<-d>

<0'>
<0'>

<0->
<0">
<-:>
<0/>







A

A

A

A

7.5.5

LOl2
LOl6
L020
LOl8
L062
LUl4
LUl2
LUl6
Lu17
LY12
LT64
LS6l
LAl3
LAll
LAls
LA19
LA17
LAsl
LA27
LC4l
LE13
LEll
LE1s
LEl7
LI13
LI11
LI1s
LIl7
LD63
LNll
LOl3
LOll
LOls
LOl9
LOl7
L061
LU13
LUll
LUIS
LUl7
LYII
LT63
LYl7

capital 0 with acut~ accent
capital 0 with circumflex
capital 0 with tilde
capital 0 with diaeresis or u~laut
times sign
capital 0 with slash
capital U with grave
capital U with acute accent
capital U with circumflex
capital U with diaeresis or umlaut
capital y with acute accent
capital Icelandic letter Thorn
German small sharp s
small a with grave accent
small a with acute accent
small a with circumflex
small a with tilde
small a with diaeresis or umlaut
small ae diphthong
small a with ring
small c with cedilla
small e with grave accent
small e with acute accent
small e with circumflex
small e with diaeresis or umlaut
small i with grave accent
small i with acute accent
small i with circumflex
small i with diaeresis
small Icelandic letter Eth
small n with tilde
small 0 with grave accent
small 0 with acute accent
small 0 with circumflex
small 0 with tilde
small 0 with diaeresis or umlaut
division sign
small 0 with slash
small u with grave
small u with acute accent
small u with circumflex
small u with diaeresis or umlaut
small y with acute accent
small Icelandic letter Thorn
small y with diaeresis

Page 7-25

o

o
o

o
x

o
U
U
U

U
Y
Th
ss

a
a
a

a
a
ae
a
c
e
e
e
e
i
i
i
i
d
n

o
o
o
o
o

o
u
u

u

u
y

th
y

DEC Technical Character Set Fallbacks

If the Printer Style is set to anything other than "Print All
Characters", the terminal will represent all characters from a ROM
resident (not ORCS) DEC Technical Character set as one or two

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Xnternal Use Only 28-Apr-1987

Page 7-26

character sequences from the ASCII character set which approximate
the desired graphic.
These characters have been chosen so that
diagrams or presentations that use the mosaic line combinations
will approximately represent the di~played characters and present
a reasonable appearance.
Character
left radical
top left radical
 horizontal connector
 top integral
 Bottom integral
 vertical connector
line)
 top left square bracket
 bottom left square bracket
 top right square bracket
 bottom right square bracket
 top left parenthesis
 bottom left parenthesis
top right parenthesis

right middle curly brace
<} }>
 top left summation
 bottom left summation
top vertical summation connector
<\\>
bottom vertical summation connector

 top right summation
 bottom right summation
<>S>
right middle summation
less than or equal
«=>
not equal
<=1>
greater than or equal
<>=>
 integral
therefore
<: • >

variation, proportional to
infinity
<00>
division, divided by
<-:>
 capital delta, triangle
 nabla, del

capital phi
 capital gamma
<-->
is approximate to
<-->
similar or equal to
 capital theta

times, cross product
 capital lambda
if and only if
«=»
implies
<=»
is identical to
<=->
<-v>

Fallback Presentation

-v

1-

<1->

-

(minus)

(
)
1

(vertical

[
[
]
]
(
(
)
)

{
}

>
<
\

(backslash)
(slash)
none
none

I

>
<

=
>

S

:.(colon,period)
a

00
D

v
F
G

-

(tilde)
(tilde)

J
x
L

<=>

=>

VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

I

I
I
I
I
I
I
I
?

I

I
I

I
I
I
I
I
I
I
I
I
I

I

I

I
I
I
I
?

I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
?
?
?
?
?
?
?
?













  • line) «-> <-» capital pi, product capital psi capital sigma, summation radical capital omega, Ohm sign capital xi capital upsilon is included in includes intersection union logical and logical or ,Page 7-27 P Q S VW X Y C none (circumflex) A v & (ampersand) I (vertical - (tilde) a logical not small alpha small beta small chi small delta small epsilon small phi small gamma small eta small iota small theta small kappa small lambda small nu partial derivative small pi small psi small rho small sigma small tau function small omega small xi small upsilon small zeta left arrow up arrow right arrow down arrow b c d e f g h i j k I n none p q r s t f w x Y z <-> v NOTE Wherever the word "none" appears in the above chart, the fallback of last resort, the SPACE character, shall be sent to the printer port as the fallback presentation for that character. VSRM - Printer Port Extension EL-00070-07 ...... COMPANY CONF - DEC Internal Use Only 2S-Apr-1987 7.5.6 Page 7-28 ORCS Fallbacks If the Printer Style is set to anything other than "Print Characters", the SPACE character (2/0) is printed in place of character from a ORCS, except when the designating string of ORCS matches a ROM-based character set that may be printed. the ORCS is substituting for a ROM-based character set, appropriate character from the ROM-based character set is used it can be printed without fallback). All any the If the (if Deviation Note The printer fallback character on the VT200 series was the underscore (n n). This was changed to space to simplify manual editing of documents containing fallback characters. 7.5.7 User Preference Supplemental Set ~allbacks The terminal must know the User Preference Supplemental Set even though the host may not. If the UPSS is DEC or ISO Supplemental, the terminal will use the corresponding fallback tabl~ previously given. UPSS fallback is only used when the Printer Port is set to Print National Only~ or Print National + Line Drawing. 7.5.8 Control Representation.Mode Fallbacks (not Mandatory) Control Representation characters are p~esented to the printer as a pair of capital ASCII letters or digits representing the name of the CO or C1 control character. If the printer supports the underscore graphic rendition and "Print National + Line Drawing", or "Print All Characters" is selected, the CRM fallback combinations. are also underlined to distinguish them from normal text. Control Character 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 0/8 0/9 0/10 0/11 Null Start of Header Start Transmission End of Text End of Transmission Enquiry Acknowledge Bell Backspace Horizontal Tab Line Feed Vertical Tab Fallback Presentation NU SH SX· EX ET EQ AK BL BS HT LF VT VSRM - Printer Port Extension EL-00070-07" *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 0/12 0/13 0/14 0/15 1/0 1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11" 1/12 1/13 1/14 1/15 8/0 8/1 8/2 8/3 8/4 8/5 8/6 8/7 8/8 8/9 8/10 8/11 8/12 8/13 8/14 8/15 9/0 9/1 9/2 9/3 9/4 9/5 9/6 9/7 9/8 9/9 9/10 9/11 9/12 9/13 9/14 9/15 Form Feed Carriage Return Shift Out (Locking Shift 1) Shift In (Locking Shift 0) Data Link Escape Device Control 1 Device Control 2 Device Control 3 Device Control 4 Negative Acknowledge Synchronous Idle End of Transmission Block Cancel End of Medium Substitute Escape File Separator Group Separator Record Separator unit Separator Index Next Line start of Selected Area End of Selected Area Horizontal Tabulation Set Horizontal Tab with Justification vertical Tabulation Set Partial Line Down Partial Line Up Reverse Index Single Shift 2 Single Shift 3 Device Control String Private Use 1 Private Use 2 Set Transmit State Cancel Character Message waiting Start of Protected Area End of Protected Area Control Sequence Introducer String Terminator Operating System Command Privacy Message Application Program Command FF CR SO SI DL D1 D2 D3 D4 NK SY EB CN EM SB EC FS GS RS US 80 81 82 83 IN NL SS ES HS HJ VS PD PU RI S2 S3 DC PI P2 SE CC MW SP EP 98 99 9A CS ST OS PM AP Page 7-29 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 7.6 7.6.1 Page 7-30 PRINT OPERATIONS Print page Or Scrolling Region The text for the current page of the current session or just the lines in the current page which are in the active scrolling region are transferred to the printer. Which occurs depends on the setting of Printer Extent Mode (DECPEX). This function is invoked by the host through the Media Co~y (MC) control function, or by the user pressing the LOCAL PRINT key. 7.6.2 Print Screen (not Mandatory) A series of characters representing the composed image on the Main Display is transferred to the printer. The intent of this operation is to reproduce the contents of the screen as if a snapshot had been taken. Due to various terminal and printer limitations, some compromises may be necessary for complex displays. The Main Display may consist of information from more than one Session depending on the User Window configuration. This function is not affected by Printer Extent Mode (DECPEX). Print Screen is invoked by the host through the Media_Copy (MC) control function, or by the user pressing the SHIFT key and LOCAL PRINT key together. Guidelines: If the Sixel Graphics Extension is present and graphics printing is enabled, the contents of the screen (both text and graphics) may be transmitted as sixels. If graphics printing is not used, borders on the Main Display may be transmitted to the Printer Port as characters from the DEC Special Graphics character set. 7.6.3 Print All Pages (guideline) The text from all pages in the active session is transferred to the printer. The setting of Printer Extent Mode (DECPEX) affects this function. If Print Form Feed (DECPFF) mode is set, a form feed (FF) character will be transmitted at each page boundary. The pages are transmitted in numerical order starting with page one. This function is invoked by the host through the Media Copy (MC) control function. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 7.6.4 Page 7-31 Print Line The text of the line on which the output cursor resides is transferred to the printer. Whether the left and right scrolling regions (set through DECSLRM) affect which characters are sent to the Printer Port depends on the setting of Printer Extent Mode (DECPEX). This function is invoked by the host through the Media Copy (MC) control function. 4,' ~i, "1: - ? '\,(. ''1 11, .". .... s~ 1 '6' .q: 1 -- C~ . 71q ,.., I lJ~ eLI'? ff~ttl- (C J f.s ) ( w4.l' it) Ft''14--t'\q- Se'\ S~1' cL(t p Ci\ (\I" fAn 1)"",,1 ( ~croU) f~ . ftj-oll/.(, 0""/ i :t +U~i3 l'l"l..fI ;vvyj" ) ~ i1-tL. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 7.7 Page 7-32 CONTROL FUNCTIONS DSR REPORT PRINTER STATUS ----------~------------------------------------------- ------------------- Levels: IX, 2X, 3X purpose: Report the status of the printer Request Format: CSI Report Format: n ? 15 9/11 3/15 3/1 3/5 6/14 CSI ? Ps n 9/11 3/15 Ps 6/14 Description: The terminal will respond to a DSR request by transmitting a Device Status Report control sequence containing one of the following selective parameters (preceded by the private parameter value ?, 3/15): Selective Parameter Meaning ======================================================= 10 The printer is ready to print. The Data Set Ready signal is asserted at the printer port. 11 The printer is not ready to print. The Data Set Ready signal at the printer port was previously asserted (since power on), but is not asserted now. 13 The printer is not connected to the terminal. The Data Set Ready signal at the printer port has not been on since the last power-up or reset (RIS). Printer Status on Virtual Terminals (Session Management Extension Only) 18 The printer is busy. The Data Set Ready signal at the printer port is asserted, but an alternate session is currently sending information to the printer, has the printer in auto-print mode, or has the printer in printer controller mode. 19 The printer is not assigned to the requesting session. The current session may not access the printer port (regardless of Data Set Ready) because the user has explicitly assigned it to another session. Notes: VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 1. page 7-33 See the section State Descriptions - Printer Status for a complete description of how the status of the printer is maintained. State Affected: None Algorithm: PROCEDURE REPORT_PRINTER_STATUS; BEGIN CASE PRINTER STATUS OF WRITE PRINTER READY PRINTER-NOT READY WRITE PRINTER-NO PRESENT: WRITE PRINTER-BUSY WRITE PRINTER-NOT ASSIGN: WRITE END; END; Known Deviations: None (HOST PORT, (HOST-PORT, (HOST-PORT, (HOST-PORT, (HOST=PORT, '?10n'); '?lln'); , ?13n'); , ?18n' ); , ?19n' ); VSRM - Printer Port Extension EL-00070-07 ***COMPANY CONF - DEC Internal Use Only 28-Apr-1987 SET/RESET PRINTER CONTROLLER MODE Levels: page 7-34 MC lX, 2X, 3X Purpose: To set or reset the state of Printer Controller Mode. Set Format: Reset Format: CSI 5 i 9/11 3/5 6/9 CSI 4 i 9/11 3/4 . 6/9 Description: When Printer Controller Mode is set, all data received by the terminal is transmitted to the printer port without being displayed on the screen. Notes: 1. When Printer Controller Mode is set, the state of Auto Print Mode becomes UNDEFINED. That is, when Printer Controller Mode is exited, Auto Print Mode may not be in the same state as it was when Printer Controller Mode was entered. State Affected: PRINTER CONTROLLER MODE: (PRINTER_CONTROLLER_OFF,PRINTER_CONTROLLER ON); Algorithm: PROCEDURE SET_PRINTER_CONTROLLER_MODE; BEGIN PRINTER CONTROLLER MODE:= PRINTER CONTROLLER_ON; END; PROCEDURE RESET PRINTER CONTROLLER_MODE; BEGIN PRINTER CONTROLLER MODE:= PRINTER CONTROLLER_OFF; AUTO PRINT MODE: =-AUTO_PRINT_OFF; END; Known Deviations: None VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-35 SET/RESET AUTO PRINT MODE MC Levels lX, 2X, 3X Purpose: To set or reset the state of Auto Print Mode. Set Format: Reset Format: CSI ? 5 i 9/11 3/15 3/5 6/9 CSI ? 4 i 9/11 3/15 3/5 6/9 Description: When Auto Print Mode is set, the contents of the Active Line is transmitted to the printer port whenever the Active Position is advanced to the next line as a result of one of the following conditions: 1. Receipt of a Line Feed (LF), vertical Tab (VT), or Form Feed (FF) control character. 2. When the iast Column Flag is set and a graphic character is received. Notes: 1. When Printer Controller Mode is set, the state of Auto Print Mode becomes UNDEFINED. That is, when Printer Controller Mode is exited, Auto Print Mode may not be in the same state as it was when Printer Controller Mode was entered. state Affected: AUTO PRINT MODE: (AUTO_PRINT_OFF,AUTO_PRINT_ON); Algorithm: PROCEDURE SET_AUTO_PRINT_MODE; B~GIN AUTO_PRINT_MODE:- AUTO_PRINT_ON; END; PROCEDURE RESET AUTO PRINT MODE; BEGIN AUTO PRINT MODE:= AUTO_PRINT_OFF; END; Known Deviations: None VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 page 7-36 SET/RESET PRINTER TO HOST MODE MC Levels lX, 2X, 3X purpose: To set or reset the state of Printer To Host Mode. Set Format: Reset Format: I I I I I I I I I I I CSI 7 9 i 9/11 3/15 3/9 6/9 CSI 7 8 i 9/11 3/15 3/8 6/9 Description: When Printer To Host Mode is set, all input from the printer port (other than XON/XOFF flow control when enabled) is relayed to the host. Character input from the printer port is interleaved with input from the keyboard as it is received. Notes: 1. Printer To Host Mode functions in Printer Controller Mode as well as other print modes. 2. When available, Printer To Host Mode works at all operating levels (Levell, Level 2, and Level 3). State Affected: PRINTER TO HOST MODE: (PRINTER_TO_HOST, NO PRINTER TO_HOST); Algorithm: PROCEDURE SET_PRINTER_TO_HOST_MODE; BEGIN PRINTER TO HOST MODE := PRINTER_TO_HOST; END; PROCEDURE RESET PRINTER TO_HOST_MODE; BEGIN PRINTER TO HOST MODE :- NO PRINTER TO_HOST; END; Known Deviations: None VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-37 DECPFF SET/RESET PRINT FORM FEED MODE -----------------------------------------------------------------------Levels: IX, 2X, 3X To set or reset the state of Print Form Feed Mode. purpose: Set Format: Reset Format: CSI ? 18 h 9/11 3/15 3/1 3/8 6/8 CSI ? 18 9/11 3/15 3/1 3/8 6/12 1 Description: When Print Form Feed Mode is set, a Form Feed (FF) control character is transmitted to the printer port at the conclusion of each Print Page or Print Screen operation. State Affected: PRINT FORM FEED MODE: (PRINT_FF_OFF,PRINT_FF_ON); Alga ri thm: PROCEDURE SET_PRINT_FORM_FEED_MODE; BEGIN PRINT FORM FEED MODE:= PRINT_FF_ON; END; PROCEDURE RESET PRINT FORM FEED_MODE; BEGIN PRINT FORM FEED MODE:= PRINT_FF_OFF; END; Known Deviations: None VSRM - printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-38 DECPEX SET/RESET PRINT EXTENT'MODE -----------------------------------------------------.-------------------, Levels: lX, 2X, 3X Purpose: To set or reset the state of Print Extent Mode. Set Format: Reset Format: CSI ? 19 9/11 3/15 3/1 3/9 6/8 CSI ? 19 9/11 3/15 3/1 3/9 6/12 h 1 Description: Print Extent Mode is used to select the area of the display to be transmitted to the printer port when a Print Page operation is performed. When this mode is in the state (Print Display) the entire display image is transmitted. When it is in the reset state (Print Scrolling Region), only the area of the display within the scrolling region (Top Margin to Bottom Margin inclusive) is transmitted. State Affected: PRINT EXTENT MODE: (PRINT_SCROLLING_REGION,PRINT DISPLAY); Algorithm: PROCEDURE SET_PRINT_EXTENT_MODE; BEGIN PRINT_EXTENT_MODE:- PRINT_DISPLAY; END; PROCEDURE RESET PRINT EXTENT MODE; BEGIN PRINT EXTENT MODE:- PRINT SCROLLING_REGION; END; Known Deviations: None 1 .1 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 MC PRINT PAGE Levels Page 7-39 lX, 2X, 3X Purpose: Transmit the current page to the printer port. Format: CSI o i 9/11 3/0 6/9 default Ps: 0 Description: The Print Page function causes the text for the current page of the current session or just the lines in the current page which are in the active scrolling region to be transferred to the printer. Which occurs depends on the setting of Printer Extent Mode (DECPEX). Notes: 1. Transmission of the text stream includes all necessary character set and graphic rendition controls as well as format effectors to properly represent the position of text on the page. state Affected: None Algorithm: PROCEDURE PRINT PAGE; VAR Y, TOP, BOTTOM: LINE TYPE; X: COLUMN TYPE;· P END OF LINE: INTEGER; P-LINE RENDITION: LINE RENDITION TYPE; P-RENDITION: CHARACTER-RENDITION-TYPE; P-GL CHARACTER SET: GRAPHICS CHARACTER SET TYPE; P-GR-CHARACTER-SET: GRAPHICS-CHARACTER-SET-TYPE; P-CURRENT NRCS: GRAPHICS CHARACTER SET TYPE; P-G1 DESIGNATE: GRAPHICS=CHARACTER=SET=TYPE; BEGIN (* determine print extent *) IF PRINT EXTENT MODE - PRINT DISPLAY THEN BEGIN TOP:=- 1; BOTTOM:- MAX NUM_LINES; END; ELSE BEGIN TOP:- TOP MARGIN; BOTTOM:- BOTTOM MARGIN; END; (* determine current -National character set *) NRCS:= ASCII G; IF (CHARACTER_SET_MODE-. SEVEN_BITS) AND P~CURRENT VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC In.ternal Use Only 28-Apr-1g87 page 7-40 (KEYBOARD USAGE MODE - TYPEWRITER) THEN P_CURRENT_NRCS:.-NRCS_TABLE(KEYBOARD_DIALECT); , , , , , , , , , , , , , , , , , " , , , I I , , , , I , , (* handle each printer style separately *) IF PRINTER STYLE - NATIONAL ONLY THEN BEGIN (* Print National Only *) (* initialization *) P GL CHARACTER SET:- P CURRENT NRCS; (* transmit data as characters-from GL *) (* for each line *) FOR Y:- TOP TO BOTTOM DO BEGIN (* set end of line to skip trailing spaces *) P END OF LINE - END OF LINE(Y); WHILE-(DISPLAY(Y,P END-OF LINE].CODE - SPACE_CODE) AND (P END OF LINE >-0)- DO P END OF LINE:- P END OF LINE - 1; (* for each character in the current line *) FOR X:- 1 TO P END OF LINE DO BEGIN (* if not in current NRCS *) IF DISPLAY(Y,X].CHARACTER SET <> P GL CHARACTER SET THEN BEGIN (* do fallback - to be specified *) END ELSE (* otherwise send character code to printer *) WRITE (PRINTER PORT, CHR(DISPLAY[Y,X).CODE»; END; (* end for each character *) WRITE (PRINTER PORT,''); END; (* end for each line *) IF PRINT FORM FEED MODE = PRINT FF ON THEN WRITE (PRINTER PORT,''); (* no termination sequence required *) END; (* end National Only *) ELSE IF PRINTER STYLE == NATIONAL PLUS LIN'E DRAWING THEN BEGIN (* Printer Style is National + Line Drawing *) (* initialization sequence *) P RENDITION[BOLD]:- FALSE; P-RENDITION[UNDERSCORE):= FALSE; P-RENDITION(BLINK]:= FALSE; P-RENDITION[REVERSE]:- FALSE; WRITE (PRINTER PORT,'Om'); P GL CHARACTER-SET:= P CURRENT NRCS; (* designate current NRCS as GO ASCII is NRCS for North America *) WRITE (PRINTER PORT, '('); WRITE (PRIN~ER-PORT, CHARACTER SET DSCS[P GL CHARACTER SET]); (* designate lIne drawing as GI *)WRITE (PRINTER PORT, ''); (* data transmission *) (* for each line *) FOR Y:- TOP TO BOTTOM DO BEGIN (* set line rendition *) SEND LINE ATTRIBUTES(LINE RENDITION[Y]); (* set end of line to skip trailing spaces with "normal" graphic rendition *) P END OF LINE - END OF LINE(Y); WHILE-(DISPLAY[Y,P END-OF LINE].CODE - SPACE CODE) AND (P END OF LINE >-O)-AND (NOT DISPLAY[Y,P END OF LINE].RENDITION[BOLD]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[UNDERSCORE]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[BLINK]) AND (NOT DISPLAY(Y,P-END-OF-LINE].RENDITION(REVERSE]) DO P END OF LINE:= P END OF-LINE - 1i (* lor eacli character i~ tlie current line ~) FOR X:= 1 TO P END OF LINE DO BEGIN (* set graphic rendition if it has changed *) SEND GRAPHIC RENDITION (P RENDITION, DISPLAY[X,Y].RENDITION); P RENDITION(BOLD]:= DISPLAY[Y,X].RENDITION[BOLD]i P-RENDITION[UNDERSCORE]:= -DISPLAY(Y,X].RENDITION[UNDERSCORE]i P RENDITION[BLINK]:= DISPLAY[Y,X).RENDITION[BLINK]i P-RENDITION[REVERSE]:= -DISPLAY[Y,X).RENDITION[REVERSE)i (* new character set? *) IF DISPLAY[Y,X].CHARACTER_SET <> P_GL CHARACTER SET THEN BEGIN (* yes, send SCS sequence to printer *) CASE DISPLAY[Y,X].CHARACTER_SET OF P CURRENT NRCS: BEGIN (* character set is current NRCS *) (* invoke GO to GL *) WRITE (PRINTER PORT, '')i P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER_SETi ENDi LINE DRAWING: BEGIN (* character set is Line Drawing *) (* is Line Drawing in G1? *) IF P G1 DESIGNATE <> LINE DRAWING THEN BEGIN (* no, re-designate it *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER_SET; END; ASCII G: (* character set is ASCII *) (* is ASCII current NRCS? *) IF P CURRENT NRCS <> ASCII G THEN BEGIN (* no, if it's not already in Gl, designate it *) IF P Gl DESIGNATE <> ASCII G THEN BEGINWRITE (PRINTER PORT, ''); P GL CHARACTER-SET:: DISPLAY[Y,X].CHARACTER_SET; END; OTHERWISE: IGNORE; END; (* end case of display character set *) END; (* end new character set *) (* do we need to fallback? *) IF (DISPLAY[X,Y].CHARACTER SET <> P CURRENT NRCS) AND (DISPLAY[X,Y].CHARACTER-SET <> LINE DRAWING) AND (DISPLAY[X,Y].CHARACTER=SET <> ASCII_G) THEN BEGIN (* do fallback - to be specified *) END ELSE (* no, just send character code to printer *) WRITE (PRINTER PORT, CHR(DISPLAY[Y,X].CODE»; END; (* end for-each character in the current line *) WRITE (PRINTER PORT,''); END; (* end for each line *) IF PRINT FORM FEED MODE = PRINT FF ON THEN WRITE (PRINTER_PORT,''); (* termination sequence *) (* send LSO if necessary to leave GO invoked to GL *) IF P GL CHARACTER SET <> P CURRENT NRCS THEN WRITE-(PRINTER PORT, ''); (* if Line Drawing isn't in Gl, designate it *) IF P Gl DESIGNATE <> LINE DRAWING THEN WRITE-(PRINTER_PORT, 'Om'); (* initialize printer G sets to correspond with terminal *) WRITE (PRINTER PORT, '('); WRITE (PRINTER=PORT, CHARACTER_SET_DSCS[DESIGNATED_GRAPHIC_SETS[GO]); IF CHARACTER SET SIZE['DESIGNATED GRAPHIC SETS[Gl]] - 94 THEN WRITE (PRINTER-PORT, , ) ',); ELSE WRITE (PRINTER PORT, '-'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[Gl)]); IF CHARACTER SET SIZE(DESIGNATED GRAPHIC SETS[G2)) - 94 THEN WRITE (PRINTER-PORT, '*'); ELSE WRITE (PRINTER PORT, '.'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G2]); IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G3)) - 94 THEN WRITE (PRINTER-PORT, '+'); ELSE WRITE (PRINTER PORT, '/'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G3]]); (* send LSO to invoke GO to GL *) WRITE (PRINTER PORT, '<51>'); P GL CHARACTER-SET:- DESIGNATED GRAPHIC_SETS[GO]; (* if 8-bit prInter port environment *) IF PRINTER PORT ENVIRONMENT = EIGHT BIT THEN BEGIN (* send LS2R to invoke G2 to GR *) WRITE (PRINTER PORT, '}'); P GR CHARACTER-SET:= DESIGNATED GRAPHIC_SETS[G2]; END; (* data transmission *) FOR Y:- TOP TO BOTTOM DO BEGIN (* set line rendition *) SEND LINE ATTRIBUTES(LINE RENDITION[Y); (* set end of line to skip trailing spaces with "normal" graphic rendition *) P END OF LINE = END OF LINE(Y); WHILE-(DISPLAY[Y,P END-OF LINE].CODE = SPACE_CODE) AND (P_END_OF_LINE >-O)-AND VSRM - Printer Port Extension EL..,.00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 page 7-44 (NOT DISPLAY[Y,P END OF 'LINE].RENDITION[BOLD]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[UNDERSCORE]) AND (NOT DISPLAY[Y,P-END-OF-LINE).RENDITION[BLINK)) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[REVERSE]) DO P END OF LINE:= P END OF-LINE - 1; (* for each character in the current line *) FOR X:= 1 TO P END OF LINE DO BEGIN (* set graphic rendition *) SEND GRAPHIC RENDITION (P RENDITION, DISPLAY[X,Y].RENDITION); P RENDITION[BOLD]:= DISPLAY[Y,X].RENDITION[BOLD]; P-RENDITION[UNDERSCORE]:-DISPLAY[Y,X].RENDITION[UNDERSCORE]; P RENDITION[BLINK]:= DISPLAY[Y,X].RENDITION[BLINK]; P-RENDITION[REVERSE]:-DISPLAY[Y,X].RENDITION[REVERSE]; (* handle 7-bit/8-bit printer port environment separately *) (* if 7-bit printer port environment *) IF PRINTER PORT ENVIRONMENT - SEVEN BIT THEN BEGIN (* new character set? *) IF DISPLAY[Y,X).CHARACTER SET <> P GL CHARACTER SET THEN BEGIN (* yes, designate and invoke as needed *) CASE DISPLAY[Y,X].CHARACTER_SET OF DESIGNATED GRAPHIC SETS[GO]: (* chara~ter set-is in GO *) (* send LSO to invoke GO to GL *) WRITE (PRINTER_PORT, '<51>'); DESIGNATED GRAPHIC SETS[Gl]: (* chara~ter set-is in G1 *) (* send LS1 to invoke G1 to GL *) WRITE (PRINTER_PORT, ''); DESIGNATED GRAPHIC SETS[G2): (* chara~ter set-is in G2 *) (* send 552 to invoke G2 to GL *) WRITE (PRINTER_PORT, 'N'); DESIGNATED GRAPHIC SETS[G3]: (* chara~ter set-is in G3 *) (* send 553 to invoke G3 to GL *) WRITE (PRINTER_PORT, 'O'); OTHERWISE: BEGIN (* no fallback for print all characters *) (* designate the displayed set as G3 *) IF CHARACTER SET SIZE[DISPLAY[Y,X}.CHARACTER SET] WRITE (PRINTER=PORT, '+'); - 94 THEN Page 7-45 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 ELSE • WRITE (PRINTER PORT, 'I'); WRITE (PRINTER PORT, CHARACTER SET DSCS [DISPLAY[Y,X).CHARACTER SET));P DESIGNATED CHARACTER SETS[G3]:- DISPLAY[Y~X).CHARACTER SET; (* send SS3 to invoke G3 to GL *) WRITE (PRINTER PORT, 'O')i END; (* end case of display character set END; *) P GL CHARACTER SET:- DISPLAY[Y,X).CHARACTER SET; END;- (* end new character set *) END (* end 7-bit printer port environment *) ELSE (* a-bit printer port environment BEGIN (* new character set? *) IF (DISPLAY[Y,X).CHARACTER SET <> (DISPLAY[Y,X).CHARACTER-SET <> BEGIN (* yes, designate and invoke as CASE DISPLAY[Y,X).CHARACTER_SET *) P GL CHARACTER SET) AND P:GR:CHARACTER:SET) THEN needed *) OF DESIGNATED GRAPHIC SETS[GO): BEGIN (* character set is in GO *) (* send LSO to invoke GO to GL *) WRITE (PRINTER PORT, ''); P_GL_CHARACTER:SET:= DISPLAY[Y,X).CHARACTER_SET; END; DESIGNATED GRAPHIC SETS[Gl): BEGIN (* character set is in Gl *) (* send LSl to invoke Gl to GL *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER SET; END;DESIGNATED GRAPHIC SETS[G2): BEGIN (* character set is in G2 *) (* send LS2R to invoke G2 to GR *) WRITE (PRINTER PORT, '}'); P GR CHARACTER-SET:= DISPLAY[Y,X).CHARACTER SET; END;DESIGNATED GRA~HIC SETS[G3]: 'BEGIN (* character set is in G3 *) (* send LS3R to invoke G3 to GR *) VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-46 WRITE (PRI~TER PORT, 'I');. P GR CHARACTER-SET:: DISPLAY[Y,X).CHARACTER_SET; END; OTHERWISE: BEGIN (* no fallback for print all characters *) (* designate the displayed set to G3 *) IF CHARACTER SET SIZE[DISPLAY[Y,X].CHARACTER SET) 94 THEN WRITE (PRINTER-PORT, '+'); ELSE WRITE (PRINTER PORT, '/'); WRITE (PRINTER PORT, CHARACTER SET DSCS[DISPLAY[Y,X].CHARACTER SET]); P DESIGNATED CHARACTER SETS[G3]:~ - DISPLAY[Y~X].CHARACTER SET; (* send LS3R to invoke G3-to GR *) WRITE (PRINTER PORT, 'I'); P GR CHARACTER-SET:= DISPLAY[Y,X).CHARACTER SET; END;END (* end case of display character set *) I I END; (* end new character set *) END; (* end a-bit printer port environment *) I I I I I I I I I I I I I I I I I I . I I I I I I I I I I I (* send character code to printer *) WRITE (PRINTER PORT, CHR(DISPLAY[Y,X).CODE)); END; (* end for each character in the current line *) WRITE (PRINTER PORT,''); END; (* end for each line *) IF PRINT FORM FEED MODE = PRINT FF ON THEN WRITE (PRINTER_PORT,''); (* termination sequence *) (* send LSO if necessary to leave GO invoked to GL *) IF P GL CHARACTER SET <> DESIGNATED GRAPHIC SETS[GO] THEN WRITE-(PRINTER PORT, ''); (* if a-bit printer port environment *) IF PRINTER PORT ENVIRONMENT = EIGHT BIT THEN BEGIN (* send LS2R if necessary to leave G2 invoked to GR *) IF P GR CHARACTER SET <> DESIGNATED GRAPHIC SETS[G2] THEN WRITE (PRINTER PORT, '}'); END; (* if printer G3 isn't same as terminal's, re-designate it *) IF P DESIGNATED GRAPHIC SETS[G3] <> DESIGNATED GRAPHIC SETS[G3] THEN BEGIN - IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G3]] = 94 THEN WRITE (PRINTER-PORT, '+'); ELSE-WRITE (PRINTER PORT, '/'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED_GRAPHIC_SETS[G3JJ)i VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-47 END; (* end printer style is All Characters *) END; END; (* (* end procedure PRINT PAGE *) * Send *) Line Attributes PROCEDURE SEND LINE ATTRIBUTES (P_LINE_RENDITION: LINE RENDITION_TYPE); BEGIN (* set line rendition *) IF P LINE RENDITION - SINGLE WIDTH THEN WRITE (PRINTER PORT,'iS'); IF P LINE RENDITION - DOUBLE WIDTH THEN WRITE (PRINTER PORT,'i6'); IF P LINE RENDITION - DOUBLE HEIGHT TOP THEN WRITE (PRINTER PORT,'i3'); IF P LINE RENDITION - DOUBLE HEIGHT BOTTOM THEN WRITE (PRINTER PORT t 'i4'); END; (* end procedure SEND_LINE_ATTRIBUTES *) (* * * * *) Send Graphic Rendition This procedure sends a new SGR to the printer port if the graphic rendition has changed. PROCEDURE SEND GRAPHIC RENDITION (CURRENT RENDITION: CHARACTER RENDITION TYPE; NEW RENDITION: CHARACTER-RENDITION-TYPE); BEGIN - (* new graphic rendition? *) IF (CURRENT RENDITION[BOLD) <> NEW RENDITION[BOLD) (CURRENT~RENDITION[UNDERSCORE) <> NEW-RENDITION[UNDERSCORE) (CURRENT-RENDITION[BLINK) <> NEW-RENDITION[BLINK)) (CURRENT-RENDITION[REVERSE] <> NEW=RENDITION[REVERSE]) BEGIN (* yes, send new SGR to printer *) WRITE (PRINTER PORT,'[O'); IF NEW RENDITION[BOLD) THEN WRITE (PRINTER PORT,';l'); IF NEW RENDITION[UNDERSCORE) THEN WRITE (PRINTER PORT,';4'); IF NEW RENDITION[BLINK) THEN WRITE (PRINTER PORT,';S'); IF NEW RENDITION[REVERSE] THEN WRITE (PRINTER PORT,';7'); WRITE (PRINTER PORT,'m'); END; END; (* end procedure SEND GRAPHIC RENDITION *) OR OR OR THEN VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Known Deviations: None (algorithm does not include code for handling fallback) page 7-48 ,I 1 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 MC PRINT LINE Levels page 7-49 IX, 2X, 3X Purpose: Transmit the line containing the Active Position to the printer port. Format: CSI ? 1 i 9/11 3/15 3/1 6/9 Description: The MC control with private parameter (indicated by 3/15 "1") of 3/1 (one) causes a print function to be performed, in which the line containing the Active position is transmitted to the printer port. b2 State Affected: None Algorithm: PROCEDURE PRINT LINE; VAR Y: LINE-TYPE; X: COLUMN TYPE; P END OF LINE: INTEGER; P-LINE RENDITION: LINE RENDITION TYPE; P-RENDITION: CHARACTER-RENDITION-TYPE; P-GL CHARACTER SET: GRAPHICS CHARACTER SET TYPE; P-GR-CHARACTER-SET: GRAPHICS-CHARACTER-SET-TYPE; P-CURRENT NRCS: GRAPHICS CHARACTER SET TYPE; P-Gl DESIGNATE: GRAPHICS=CHARACTER=SET=TYPE; (* determine current National character set *) P CURRENT NRCS:= ASCII G; IF (CHARACTER SET MODE-. SEVEN BITS) AND (KEYBOARD USAGE MODE = TYPEWRITER) THEN P_CURRENT_NRCS:.-NRCS_TABLE(KEYBOARD_DIALECT); (* handle each printer style separately *) IF PRINTER STYLE a NATIONAL ONLY THEN BEGIN (* Print National Only *) (* initialization *) P GL CHARACTER SET:= P CURRENT NRCS; (* transmit data as characters-from GL '*) (* transmit current line *) Y = ACTIVE POSITION.LINE; (* set end-of line to skip trailing spaces *) P END OF LINE - END OF LINE(Y); WHILE-(DISPLAY[Y,P END-OF LINE).CODE = SPACE_CODE) AND (P END OF LINE >-0)- DO P END OF LINE:z P END OF LINE - 1; (~ lor iacli charactir i~ tlie current line *) FOR X:~ 1 TO P END OF LINE DO BEGIN VSRM - Printer Port Extension EL-00070-~7 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-50 (* if not in current NRCS *) IF D.ISPLAY[Y,X] • CHARACTER SET <> P GL CHARACTER SET THEN BEGIN (* do fallback - to be specified *) ENDELSE (* otherwise send character code to printer *) WRITE (PRINTER PORT, CHR(DISPLAY[Y,X) .. CODE»; END; (* end for each character in line *) WRITE (PRINTER PORT,''); (* no terminatIon sequence required *) END; (* end National Only *) ELSE IF PRINTER STYLE - NATIONAL PLUS LINE DRAWING THEN BEGIN (* Printer Style is National + Line Drawing *) (* initialization sequence *) P RENDITION[BOLD):= FALSE; P-RENDITION[UNDERSCORE):= FALSE; P-RENDITION[BLINK):- FALSE; P-RENDITION(REVERSE]:- FALSE; WRITE (PRINTER PORT,'Om'); P GL CHARACTER-SET:- P CURRENT NRCS; (* designate current NRCS as GO ASCII is NRCS for North America'*) WRITE (PRINTER PORT, '('); WRITE (PRINTER-PORT, CHARACTER SET DSCS[P GL CHARACTER SET]); (* designate lIne drawing as GI *)WRITE (PRINTER PORT, '(ESC»O'); (* invoke GO to GL *) WRITE (PRINTER_PORT, ''); (* data transmission *) Y - ACTIVE POSITION. LINE; (* set line rendition *) SEND LINE ATTRIBUTES(LINE RENDITION[Y]); (* set end of line to skip trailing spaces with "normal" graphic rendition *) . P END OF LINE - END OF LINE(Y); WHILE-(DISPLAY[Y,P END-OF LINE].CODE = SPACE CODE) AND (P END OF LINE >-O)-AND (NOT DISPLAY[Y,P END OF LINE].RENDITION[BOLD) AND (NOT DISPLAY[Y,P-END-OF-LINE).RENDITION[UNDERSCORE]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION{BLINK) AND (NOT DISPLAY(Y,P-END-OF-LINE].RENDITION[REVERSE) DO P END OF LINE:= P END OF-LINE - 1; (* for each character in the current line *) FOR X:- 1 TO P END OF LINE DO BEGIN (* set graphic rendition if it has changed *) SEND GRAPHIC RENDITION (P'RENDITION, DISPLAY[X,Y).RENDITION); P RENDITION[BOLD):= D!SPLAY[Y,X).RENDITION[BOLD]; P=RENDITION[UNDERSCORE]:= page 7-51 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I. I I I I I I I I I DISPLAY[Y,X).RENDITION[UNDERSCORE); P RENDITION[BLINK):- DISPLAY[Y,X).RENDITION[BLINK); P-RENDITION[REVERSE]:-DISPLAY[Y,X].RENDITION[REVERSE]; (* new character set? *) IF DISPLAY[Y,X].CHARACTER SET <> P GL CHARACTER SET THEN BEGIN - (* yes, send SCS sequence to printer *) CASE DISPLAY[Y,X].CHARACTER_SET OF P CURRENT NRCS: -BEGIN (* character set is current NRCS *) (* invoke GO to GL *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER_SET; END; LINE DRAWING: BEGIN (* character set is Line Drawing *) (* is Line Drawing in G1? *) IF P G1 DESIGNATE <> LINE DRAWING THEN BEGIN(* no, re-designate it *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER_SETi END; ASCII G: (* character set is ASCII *) (* is ASCII current NRCS? *) IF P CURRENT NRCS <> ASCII G THEN BEGIN (* no, if it's not already in Gi, designate it *) IF P G1 DESIGNATE <> ASCII G THEN BEGIN WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X].CHARACTER SET; END; - - OTHERWISE: IGNORE; END; (* end case of display character set *) END; (*end new character set *) (* do we need to fallback? *) - VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 -, ,I Page 7-52 IF (DISPLAY[X,YI.CHARACTER SET <~, P CURRENT NRCS) AND (DISPLAY[X,Y].CHARACTER-SET <> LINE DRAWING) AND (DISPLAY[X,Y].CHARACTER-SET <> ASCII_G) THEN BEGIN (* do fallback - to be specified *) END ELSE (* no, just send character code to printer *) WRITE (PRINTER PORT, CHR(DISPLAY[Y,X].CODE»; END; (* end for-each character in the current line *) WRITE (PRINTER_PORT,''); (* termination sequence *) (* send LSO if necessary to leave GO invoked to GL *) IF P GL CHARACTER SET <> P CURRENT NRCS THEN WRITE-(PRINTER PORT, ''); (* if Line Drawing isn't in Gl, designate it *) IF P Gl DESIGNATE <> LINE DRAWING THEN WRITE-(PRINTER_PORT, 'Om'); (* initialize printer G sets to correspond with terminal *) WRITE (PRINTER PORT, '(')"; WRITE (PRINTER:PORT, CHARACTER_SET_DSCS[DESIGNATED_GRAPHIC_SETS[GO]]); IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[Gl]] = 94 THEN WRITE (PRINTER-PORT, '-'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[Gl]l); IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G2]] = 94 THEN WRITE (PRINTER-PORT, '*'); ELSE WRITE (PRINTER PORT, '.'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G2]]); IF CHARACTER SET SIZE(DESIGNATED GRAPHIC SETS[G3)) = 94 THEN WRITE (PRINTER-PORT, '+'); ELSE ,--WRITE (PRINTER PORT, '/'); WRITE (PRINTER_PORT, CHARACTER SET_DSCS[DESIGNATED_GRAPHIC_SETS[G3J]); VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 page 7-53 (* send LSO to invoke GO to GL *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DESIGNATED GRAPHIC_SETS[GO); (* if a-bit printer port environment *) IF PRINTER PORT ENVIRONMENT - EIGHT BIT THEN BEGIN (* send LS2R to invoke G2 to GR *) WRITE (PRINTER PORT, '}'); P GR CHARACTER-SET:- DESIGNATED GRAPHIC_SETS[G2]; END; (* data transmission *) Y - ACTIVE POSITION.LINE; (* set line rendition *) SEND LINE ATTRIBUTES(LINE RENDITION[Y]); (* set end of line to skip trailing spaces with "normal" graphic rendition *) P END OF LINE = END OF LINE(Y); WHILE-(DISPLAY[Y,P END-OF LINE].CODE = SPACE CODE) AND (P END OF LINE >-O)-AND (NOT DISPLAY[Y,P END OF LINE].RENDITION[BOLD]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[UNDERSCORE]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[BLINK]) AND (NOT DISPLAY[Y,P-END-OF-LINE].RENDITION[REVERSE]) DO P END OF LINE:= P END OF-LINE - 1;_ (* for eacE character in tEe current line *) FOR X:= 1 TO P END OF LINE DO BEGIN (* set graphic rendition *) SEND GRAPHIC RENDITION (P RENDITION, DISPLAY[X,Y].RENDITION); P RENDITION[BOLD]:= DISPLAY[Y,X].RENDITION[BOLD]; P-RENDITION[UNDERSCORE]:= -DISPLAY[Y,X].RENDITION[UNDERSCORE]; P RENDITION[BLINK]:= DISPLAY[Y,X].RENDITION[BLINK]; P-RENDITION[REVERSE]:= -DISPLAY[Y,X].RENDITION[REVERSE]; (* handle 7-bit/8-bit printer port environment separately *) (* if 7-bit printer port environment *) IF PRINTER PORT ENVIRONMENT SEVEN BIT THEN BEGIN (* new character set? *) IF DISPLAY[Y,X].CHARACTER SET <> P GL CHARACTER SET THEN BEGIN' (* yes, designate and invoke as needed *) CASE DISPLAY[Y,X].CHARACTER_SET OF DESIGNATED GRAPHIC SETS[GO]: (* character set-is in GO *) (* send LSO to invoke GO to GL *) WRITE (PRINTER_PORT, '<51>'); VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-54 DESIGNATED GRAPHIC SETS[Glj: (* character set-is in GI'*) (* send LSI to invoke Gl to GL *) WRITE (PRINTER_PORT, ''); DESIGNATED GRAPHIC SETS[G2]: (* character set-is in G2 *) (* send 552 to invoke G2 to GL *) WRITE (PRINTER_PORT, 'N'); DESIGNATED GRAPHIC SETS[G3]: (* character set-is in G3 *) (* send 553 to invoke G3 to GL *) WRITE (PRINTER_PORT, 'O'); OTHERWISE: BEGIN (* no fallback for print all characters *) (* designate the displayed set as G3 *) IF CHARACTER SET SIZE[DISPLAY[Y,X].CHARACTER SET] - 94 THEN WRITE (PRINTER-PORT, '+'); ELSE WRITE (PRINTER PORT, '/'); WRITE (PRINTER PORT, CHARACTER SET DSCS [DISPLAY[Y,X].CHARACTER SET]);P DESIGNATED CHARACTER SETS[G3]:= - DISPLAY[Y~X].CHARACTER SET; (* send SS3 to invoke G3 to GL *) WRITE (PRINTER_PORT, 'O'); END; END; (* end case of ... *) P GL CHARACTER SET:= DISPLAY[Y,Xj.CHARACTER SET; END;- (* end new character set *) END (* end 7-bit printer port environment *) ELSE (* 8-bit printer port environment BEGIN (* new character set? *) IF (DISPLAY[Y,Xj.CHARACTER SET <> (DISPLAY[Y,X].CHARACTER-SET <> BEGIN (* yes, designate and invoke as ~ASE DISPLAY[Y,X).CHARACTER_SET *) P GL CHARACTER SET) AND P=GR=CHARACTER=SET) THEN needed *) OF DESIGNATED GRAPHIC SETS[GO]: BEGIN (* character set is in GO *) (* send LSO to invoke GO to GL *) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:= DISPLAY[Y,X).CHARACTER_SET; END; VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-l987 page 7-55 DESIGNATED GRAPHIC SETS[Gl): BEGIN (* character set is in Gl *) (* s~nd LSl to invoke Gl to GL-*) WRITE (PRINTER PORT, ''); P GL CHARACTER-SET:- DISPLAY[Y,X).CHARACTER SET; END;DESIGNATED GRAPHIC SETS[G2): BEGIN (* character set is in G2 *) (* send LS2R to invoke G2 to GR *) WRITE (PRINTER PORT, '}'); P GR CHARACTER-SET:- DISPLAY[Y,X).CHARACTER SET; END;DESIGNATED GRAPHIC SETS[G3): BEGIN (* character set is in G3 *) (* send LS3R to invoke G3 to GR *) WRITE (PRINTER PORT, 'I'); P GR CHARACTER-SET:= DISPLAY[Y,X).CHARACTER_SET; END; OTHERWISE: BEGIN (* no fallback for print all characters *) (* designate the displayed set to G3 *) IF CHARACTER SET SIZE[DISPLAY[Y,X).CHARACTER SET) = 94 THEN WRITE (PRINTER-PORT, '+'); ELSE WRITE (PRINTER PORT, '/'); WRITE (PRINTER PORT, CHARACTER SET DSCS[DISPLAY[Y,X).CHARACTER SET]); P DESIGNATED CHARACTER SETS(G3):- DISPLAY[Y~X).CHARACTER SET; (* send LS3R to invoke G3-to GR *) WRITE (PRINTER PORT, 'I'); P GR CHARACTER-SET:= DISPLAY[Y,X].CHARACTER_SET; END; END (* end case of ... *) END; (* end new character set *) END; (* end a-bit printer port environment *) (* send character code to printer *) WRITE (PRI-NTER PORT, CHR( DISPLAY[ Y, X] . CODE) ) ; (* end for each character in the current line *) END; WRITE (PRINTER_PORT,''); (* termination sequence *) (* send LSO if necessary to leave GO invoked to GL *) VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-56 IF P GL CHARACTER SET <> DESIGNATED GRAPHIC SETS[GO] THEN WRITE- (PRINTER PORT, , ' ) ; (* if 8-bit printer port environment *) IF PRINTER PORT ENVIRONMENT = EIGHT BIT THEN BEGIN (* send LS2R if necessary to leave G2 invoked to GR *) IF P GR CHARACTER SET <> DESIGNATED GRAPHIC SETS[G2] THEN WRITE (PRINTER_PORT, '}'); END; (* if printer G3 isn't same as terminal's, re-designate it *) IF P DESIGNATED GRAPHIC SETS[G3] <> DESIGNATED GRAPHIC SETS[G3] THEN BEGIN - IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G3]] - 94 THEN WRITE (PRINTER-PORT, '+'); ELSE WRITE (PRINTER PORT, '/'); WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G311}'" END; (* end printer style is All Characters *) END; END; (* (* end procedure PRINT LINE *) * Send *) Line Attributes PROCEDURE SEND LINE ATTRIBUTES (P_LINE_RENDITION: LINE_RENDITION_TYPE); BEGIN (* set line rendition *) IF P LINE RENDITION = SINGLE WIDTH THEN WRITE (PRINTER PORT,'i5'); IF P LINE RENDITION = DOUBLE WIDTH THEN WRITE (PRINTER PORT,'i6'); IF P LINE RENDITION = DOUBLE HEIGHT TOP THEN WRITE (PRINTER PORT,'i3')i IF P LINE RENDITION = DOUBLE HEIGHT BOTTOM THEN WRITE (PRINTER PORT,'i4'); END; (* end procedure SEND_LINE_ATTRIBUTES *) (* * * * *) Send Graphic Rendition This procedure sends a new SGR to the printer port if the graphic rendition has changed. , PROCEDURE SEND GRAPHIC RENDITION (CURRENT RENDITION: CHARACTER RENDITION TYPE; NEW RENDITION: CHARACTER-RENDITION-TYPE); BEGIN - (* new graphic rendition? *) IF (CURRENT RENDITION[BOLD) <> NEW BENDTION[BOLD]) OR (CURRENT-RENDITION[UNDERSCORE] <>,NEW-RENDITION[UNDERSCORE]) OR (CURRENT=RENDITION[BLINK) <> NEW=RENDITION[BLINK) OR VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-57 (CURRENT_RENDITION[REVERSE] <> NEW_RENDITION[REVERSE]) BEGIN (* yes, send new SGR to printer *) WRITE (PRINTER PORT,'[O'); IF NEW RENDITION[BOLD] THEN WRITE (PRINTER PORT,';1'); IF NEW RENDITION[UNDERSCORE] THEN WRITE (PRINTER PORT,';4'); IF NEW RENDITION[BLINK] THEN WRITE (PRINTER PORT,';5'); IF NEW RENDITION[REVERSE] THEN WRITE (PRINTER PORT,';7'); WRITE (PRINTER PORT,'m'); END; END; (* end procedure SEND_GRAPHIC_RENDITION *) Known Deviations: None (algorithm does not include code for handling fallback) THEN VSRM - Printer Port Extension EL-00010-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 7.8 page 7-58 GRAPHICS PRINTING This section describes gr~phics printing anrl is intended to apply to devices which support graphic displays and the Sixe1 Graphics Extension. 7.8.1 7.8.1.1 Graphics Print Operations Graphics Print Screen The complete graphics bit map is transferred to the printer. This can be invoked by the host through the ReGIS hardcopy command or by the user under local control. 7.8.1.2 Graphics Print. Region An image of a portion of the screen bit map is transferred to the ~rinter. This can be invoked by the host through the ReGIS hardcopy command. Refer to the ReGIS chapter for determining how to define this region. 7.8.2 Sixel Printing A Sixel is a group of 6 vertical pixels represented by 6 bits within a character .code. A one value for a bit indicates that a pixel-spot will be placed at the corresponding grid. position, a zero will cause the corresponding grid position to be unchanged (not written). Sixel printlng consists of setting context and attributes for the pixels and then printing each Sixel in left-to-right, top-to-bottom order. Wherever possible, run-length encoding is used to reduce the number of characters transmitted for a line of Sixels. See the Sixel Graphics Extension chapter for the Sixel format. further details on Guideline: When a Sixel dump is initiated by the user under local control (Print Key), the terminal first transmits a CR to reset the ANSI text position on the printer to the left margin. If the Sixel dump is initiated by th~ host, the CR is· not sent so the host can initialize the starting sixel position. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I page 7-59 Guideline: The VT240 sends the following characters out the printer port (or host port) when transmitting a sixel dump of the screen. ESC 1/11 \ 5/12 \'-==---/ ST 7.8.2.1 0/13 ESC 1/11 P 5/0 1 3/1 \----,~:---/ DCS q 7/1 ESC 1/11 \ 5/12 \----:==---'/ ST Color And Monochrome Sixels On devices which support a color display, the user may select monochrome or color sixel printing. Monochrome Sixels are formed from the multiple plane image by a logical OR of all pixels which are selected for any color. If color printing is selected, The terminal will send out color specifiers at the beginning of each Sixel dump to reflect the contents of the terminal's color map. If PRINT BACKGROUND is selected, all pixels with no bits set any plane are printed in the color value selected for index O. 7.8.2.2 in Expanded Print Graphics expanded print mode determines whether the terminal generates a small (compressed) or large (expanded) graphics image. The small image fits on 8-1/2 inch wide paper and expanded images on 13 inch wide paper in portrait mode. This mode is selectable by the DEC-private mode DECGEPM or by the user under local control. 7.8.2.3 Rotated Print Graphics rotated print mode rotates the image by 90 degrees so that an expanded image can fit on a single 8-1/2 inch wide page (rotated images are always expanded). This mode is selectable by the DEC-private mode DECGRPM or by the user under local control. Guideline: the VT240 rotates the image counter clockwise, so that the left side of the paper (as it comes out of a typical dot matrix printer) corresponds to the top of the image on the terminal screen. This scanning order was chosen to allow punching holes for a looseleaf notebook on the left side of the page as it comes out of the printer. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 I I , ,. , , , 7.8.2.4 Page 7-60 Sixel Graphics Level (Guideline) , As the Sixel graphics protocol has become more general to accommodate a range of pixel aspect ratios and grid si zes, Terminals have begun supporting two levels of the Sixel graphics protocol to match the capabilities of the printer being used. Levell provides backward compatibility with older printers, while Level 2 allows the terminal to take full advantage newer printer capabilities to improve print quality. , , , The Sixel Graphics Level determines how the terminal matches the printer's Sixel Aspect Ratio, Horizontal Grid Size, Background Printing, and Color printing capabiliti~s. , , The Sixel Graphics Level is selectable by control. I , , I I the user under local ,, Level 1 Sixel Devices - , , , ASSUMPTIONS: Levell sixel devices do not support the Set Raster Attribute command, Background Select, Horizontal Grid Size, or Macro Parameter commands. The aspect ratio is fixed at 2:1, and the horizontal grid size is approximately 7.5 x .001 inches (800 pixels require 6 inches). Levell is the factory default. Six~l Control Strings will be sent to the printer as follows: ESC P 1 q S ... S ESC \ (always 7-bit controls) COMPRESSED Sixel Print Option A terminal with a 1:1 pixel aspect ratio will combine each pair of horizontally adjacent pixels (from two successive scan lines) into a single pixel. The value of the combined pixel will be the LOGICAL OR of the values of the individual pixels. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 1:1 Aspect Ratio Level 1 Printer +---+ +---+ I a I +---+ +---+ Page 7-61 LOGICAL OR -> I b I +---+ I I I I I I la+bl +---+ This will produce images of the same size and aspect ratio as the VT240 (2:1 Aspect Ratio). ReGIS images will appear normal, but ANSI text may be distorted. EXPANDED Sixel Print Option Terminals with pixel aspect ratios of 1:1 will transmit each Sixel twice (in immediate horizontal succession). 1:1 Aspect Ratio Level 1 Printer +---+ +---+ +---+ I a I I I I I I a I I a I I I I I 1 1 1 I +---+ +---+ I b I +---+ PRINT TWICE -> +---+ +---+ +---+ +---+ 1 -I 1 1 I b I I b I 1 I I I I 1 1 I +---+ +---+ This will produce images of the same size and aspect ratio as the VT240 (2:1 Aspect Ratio), but with twice the vertical resolution. ROTATED Sixel Print Option Terminals with 1:1 pixel aspect ratios will transmit the selected portion of the display bitmap in vertical strips six pixels wide from top to bottom, and right to left. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 paper display +-----------+ I 1-------> I +--------------+ I 2 1 I I I I Page 7:"62 I 2-------> I I I I I I I I I I I I I I I I I V V I +--------------+ +-----------+ Each Sixel is sent twice in immediate horizontal succession respect to the printer). Level 1 Printer 1:1 Aspect Ratio +---+ +---+ +---+ I I b I I a I +---+ +---+ +---+ +---+ +---+ I I I +---+ +---+ +---+ I (with I +---+ +---+ +---+ ROTATE AND PRINT TWICE -> I I I I I a I I a I I I I I I I +---+ +---+ +---+ +---+ I I I I b I I I I I I I I b I I I I +---+ +---+ This will produce images of the same size and aspect ratio as the VT240(2:1 Aspect Ratio), but with twice the vertical resolution (with respect to the image displayed on the screen). Level 2 Sixel Devices ASSUMPTIONS: Level 2 sixel devices support the Set Raster Attribute command, Background Select, Horizontal Grid Size and Macro Parameter commands. VSRM ~ Printer Port Extension I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I page 7-63 EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-l987 Sixel control strings are sent as follows: ESC P Psl ; Ps2 ; Pn3 q " Pn4 ; Pn5 ; Pn6 Pn7 ****** ESC \ \ I \ I \ _ _1 \ _ 1 Protocol Selector ~~R~a-s~t-e-r--A~t~t-r~i~b-u~t-e-s--- Picture ST data \ I \ __~~.-.-~_____________I • DCS Introducer Sequence sixel data \_1 DCS Where: Psl Ps2 Pn3 Is the Macro Parameter and is always ZERO. Background Select 1 if Background Printing is disabled in Set-Up 2 if Background Printing is enabled in Set-Up Horizontal Grid Size, given in units specified by ANSI SSU (default is decipoints, 1/720 inch). For default size units, the grid size should be 6 for COMPRESSED and 9 for EXPANDED or ROTATED print. Since the host can change the printer between accesses, SSU should be sent once before each sixel dump. ESC [ 2 SP I 1/11 5111 3/22/0 4/9 Pn4 Pn5 Pn6 Pn7 (Set Size Unit to Decipoints) Pixel aspect ratio numerator, 1 Pixel aspect ratio denominator, 1 Horizontal extent (number of pixels in image horizontally) Vertical extent (number of pixels in image vertically) COMPRESSED Sixel Print Option When Level 2 sixel graphics is selected, the terminal will transmit the selected portion of the display bitmap as sixels from left to right, and top to bottom. No translation of screen pixels is required since the printer directly supports 1:1 sixels with the desired grid size. The horizontal grid size is set to 6 in the Set Raster Attributes command. I I I I I I I I I I EXPANDED Sixel Print Option When Level 2 sixel graphics is selected, the terminal will transmit the selected portion of the display bitmap as sixels from left to right, and top to bottom. No translation of screen pixels is required since the printer directly supports 1:1 sixels with the desired grid size. The horizontal grid size is set to 9 in the Set Raster Attributes command. ,. VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 I Page 7-64 ROTATED Sixel Print Option When Level 2 sixel graphics is selected, the terminal will transmit the selected portion of the display bitmap in vertical strips six pixels wide from top to bottom, and right to left. Each sixel is sent once using the same sixel initiator as for expanded print above (horizontal grid size set to 9). VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 7.9 Page 7-65 CHANGE HISTORY 7.9.1 Revision 0.0 To AXI0 1. Added Terminology section 2. Made extensive changes characteristics descriptions. 3. Added notes that the state of Auto Print Mode UNDEFINED across changes in Printer Controller Mode. 4. Completely rewrote the Print Screen. 5. Added note to the abstract indicating that this currently only applies to Level 2 conformance. 6. Added a note to Printer Controller Mode indicating that 7/15 and 15/15 are UNDEFINED when Printer Controller Mode is set. 7.9.2 to algorithms the for transmission Print Line is and standard Rev Axl0 To AX11 1. 7.9.3 Changed name of character rendition from REVERSE to REVERSE throughout code to be more consistent. VIDEO Rev AX11 To Ax12 1. Removed all previous change bars. Added change bars to any change that could affect conformance or interpretation of the document or should be brought te the attention of terminal implementors or software engineers. 2. Defined Level 3 Printer Port Extension to document how multiple sessions and off screen memory interact with the Printer Port. Added two new Device Status Reports (Printer busy, Printer not assigned). Added definitions for "Virtual Terminal" and "Session". Extended description of Printer Port status. VSRM - Printer.Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 page 7-66 3. Renamed former "Print Screen" to "Prin.t page" (prints page from display memory including parts which may not be visible on the screen) .. 4. Defined "Print Composed Main Display" or new "Print Screen" which prints what is displayed on the screen (may include data from multiple sessions). New Print Screen is not affected by Printer Extent Mode. 5. updated Print Form Feed Mode to affect both "Print and "Print Screen". 6. Extended description of XON/XOFF flow control (more complete spec) • . Added section on hardware flow control (DSR/DTR) . 7. In printer controller mode, 7-bit C1 controls translated to 8-bits. 8. Added description of "Local controller Modes (as in VT240 and VT300). 9. Updated Printer Style modes. Documented support for User Preference Supplemental Set (UPSS according to TIA DEC to ISO 8-bit transition plan). Changed "ASCII only" to "National Only". In Print National + Line Drawing, noted how ASCII can be designated to G1 for characters not in current NRC (as in VT220). Modified "Prirtt All Characters" mode to print all characters efficiently without fallback. Mode" Page" are never to Print 10. Added table of NRC sets and designating sequences. 11. Information on transmitting display attributes grouped into one section to avoid duplication. Added material on invisible character attribute and trailing spaces. 12. All fallback tables grouped into one section eliminating duplication. Fallbacks organized by character set. Added fallbacks for DEC Technical, Control Representation Mode (CRM as in VT300), and NRCS characters not in DEC MCS or ISO Latin Alphabet Nr 1. Added sections clarifying DRCS and UPSS fallbacks. 13. Added section describing print operations control functions. 14. Extended control function descriptions for Level 3. Updated algorithms to handle 96 character sets and new Print All Characters functionality. 15. Added entirely new Graphics Print section which describes Sixel printing on terminals. separate from VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Internal Use Only 28-Apr-1987 Page 7-67 Section Index Auto Print Mode control function, 7-35 definition, 7-5 description, 7-11 print extent, 7-38 print form feed, 7-37 printer controller, 7-34 printer to host, 7-36 Compressed Sixel Printing, 7-60 NRC Sets, 7-18 Data Set Ready, 7-7 Data Terminal Ready, 7-7 DECPEX, 7-38 DECPFF, 7-37 Device Status Report control function, 7-32 DSR, 7-32 Print All Pages, 7-30 Print Composed Main Display, 7-30 Print Extent Mode control function, 7-38 definition, 7-5 description, 7-12 Print Form Feed Mode control function, 7-37 definition, 7-5 description, 7-12 Print Line, 7-31 control function. 7-49 definition, 7-6 Print Page, 7-30 definition, 7-6 Print Screen, 7-30 control function, 7-39 definition, 7-6 Printer Controller Mode control function, 7-34 definition, 7-5 description, 7-10 Printer Po'rt definition, 7-5 Printer Port Environment, 7-9 Printer Status, 7-8 Printer Style, 7-13 All Characters, 7-15, 7-16 National Only, 7-13 National plus Line Drawing, 7-14 Printer To Host Mode control function, 7-36 definition, 7-5 description, 7-9 Expanded Print sixel, 7-59, 7-61 Fallback Transmission Control Representation Mode, 7-28 DEC special graphics, 7-20 DEC supplemental, 7-21 DEC technical, 7-25 definition, 7-5 ORCS, 7-28 ISO Latin-1 supplemental, 7-23 NRC, 7-20 UPS, 7-28 ,Flow Control, 7-6 Graphics Printing, 7-58 print region, 7-58 print screen, 7-58 hardware flow control, 7-8 Level 1 Sixel Devices, 7-60 Level 2 Sixel Devices, 7-62 Local Controller Mode description, 7-12 MC, 7-34, 7-35, 7-36, 7-39, 7-49 Media Copy auto print mode, 7-35 print line, 7-49 print screen, 7-39 printer controller mode, 7-34 printer to host mode, 7-36 Modes auto print, 7-35 Reset Mode auto print, 7-35 print extent, 7-38 print form feed, 7-37 printer controller, 7-34 printer to host, 7-36 Rotated Print, 7-61 sixel, 7-59 VSRM - Printer Port Extension EL-00070-07 *** COMPANY CONF - DEC Int.ernal Use Only 28-Apr-1987 Session definition, 7-6 Set Mode auto print, 7-35 print extent, 7-38 print form feed, 7-37 printer controller, 7-34 printer to host, 7-36 Sixel Printing, 7-58 color, 7-59 Page 7-68 compressed, 7-60 expanded print, 7-59, 7-61 monochrome, 7-59 rotated print, 7-59 Variable Aspect Ratio, 7-62 Virtual Terminal definition, 7-6 XON/XOFF, 7-6 EL-00070-08 3l-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-1 Digital- Internal Use Only DEC STD 070-8 VIDEO & PRINTER STANDARDS REFERENCE MANUAL ReGIS GRAPHICS EXTENSION Document Identifier: A-DS-EL00070-08-0 Rev A, 3l-Mar-l988 ABSTRACT: This standard defines the REmote Graphics Instruction Set (ReGIS). ReGIS is a set of graphics execution instructions designed primarily for graphics terminals operated over low bandwidth communications paths, such as serial lines. APPLICABILITY: Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using or emulating terminal interfaces. Additional requirements are defined in the section on "Concepts and Conformance Criteria." STATUS: APPROVED 3l-Mar-l988; see EL-INDEX-OO for expiration date. +----------------------------------------------------------------+ I The material contained within this document is assumed to I I I I I I I I I I define mandatory standards unless it is clearly marked as (a) not mandatory or (b) guidelines. Material which is marked as "not mandatory" is considered to be of potential benefit to the corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques that are considered to be good practice, but should not be considered as requirements. The procedures for modifying or evolving this standard are contained within the contents of this document. I I I I I I I I I +----------------------------------------------------------------+ +----------------------------------------+ I The information in this publication is I I for DIGITAL INTERNAL USE ONLY; do not I I distribute this information to anyone I I who is not an employee of Digital. I +----------------------------------------+ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-2 TITLE: DEC STD 070-8 VIDEO & PRINTER STANDARDS REFERENCE MANUAL ReGIS GRAPHICS EXTENSION DOCUMENT IDENTIFIER: A-DS-EL00070-08-0 Rev A, 31-Mar-1988 REVISION HISTORY: Original Revision Revision Revision Revision Revision Revision Draft 0.1 AX01 AX10 AX11 AX12 A Document Management Category: Responsible Department: Responsible Person: Author: SMC Writer: 15-0ct-1982 25-Dec-1982 28-Feb-1983 15-Apr-1983 22-Aug-1984 08-Dec-1987 31-Mar-1988 Terminal Interface Architecture (STI) DSG Terminals Architecture Pet.er Sichel Tom Powers Patricia Winner APPROVAL: This document, prepared by the Desktop Systems Group, has been reviewed and recommended for approval by the General Review Group for its category for use throughout Digital. ~Conklin, Technical Director, Desktop Systems Group Peter Sichel, Standa?a Owner, Desktop Systems Group Eric Williams, Standards Process Manager Direct requests for further information PK03-1/10C, DTN 223-5162, VIDEO: :TERMARCH to Peter Copies of this document can be ordered from Standards and Contrpl, CTSl-2/D4, DTN 287-3724, JOKUR::SMC Sichel, Methods Please provide your name, badge number, cost center, mailstop, and ENET node when ordering. mDmDomD™ Digital Internal Use Only Page 8-3 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION CONTENTS CHAPTER 8 8.1 8.1.1 8.1.2 8.1. 3 8.1. 4 REGIS GRAPHICS EXTENSION INTRODUCTION • • • . . • . • • • PURPOSE SCOPE •• • • • • • . • • • • • . • • • • • • • . • . • • • • IMPLEMENTATION OF ReGIS . . . . • REFERENCE STANDARDS AND RELATED PUBLICATIONS . . . . • . . . . . . TERMINOLOGY . . . . . . . . . . • MODELING THE GRAPHICS SYSTEM . . . The Graphics Pipeline . . . . . The System Model . . . . . . . Graphics Language Access Points ReGIS Scope of Application . . . RANGE OF INTENDED DEVICES . . ReGIS OVERVIEW . . . . . . • • • • • • • • . . • . . . . . . . . . . . . . .•• •. . . . . • . • . 8-11 8-12 8-15 8-15 8-17 8-18 8-18 8-19 8-20 ReGIS PHILOSOPHY . . . • . . 8.2 TRANSPORTABILITY CONCEPTS 8.2.1 Application Free Primitives . . . . . . 8.2.1.1 Mandatory Base Implementation 8.2.1.2 Cri tical Device Parameters . . . .. 8.2.1.3 Fidelity of Information Presentation 8.2.1.4 Guidelines for Image Creators 8.2.1.4.1 Guidelines for Image Interpreters 8.2.1.4.2 8.2.2 SYNTAX CONSIDERATIONS . . . . . Character Codes . . . . . . . . . . 8.2.2.1 8.2.2.2 7-bit Versus 8-bit Encoding . . . . . . 8.2.2.3 ASCII Control Codes . . . . . . . . Linguistic Relationship to Higher Level 8.2.2.4 Languages . . . . . . . . . . 8.2.2.5 Algorithmic Relation to Higher Level Languages . . . . . . . . . . . . . 8.2.2.6 Communications Line Efficiency . • . 8.2.2.7 High-level Language "Personality" 8.2.3 SEMANTIC CONSIDERATIONS . . . . 8.2.3.1 Range of Devices . . ...•.... 8.2.3.2 Position Addressing . . . . . . . • 8.2.3.3 Semantic Defaults . . . . . . ... 8-22 8-22 8-22 8-23 8-24 8-24 8-26 8-27 8-29 8-29 8-29 8-29 8.3 8.3.1 8.3.2 8.3.3 BASE LOGICAL GRAPHIC DEVICE VIEWING AREA DEFINITION VIEWING POINT ATTRIBUTES . GENERAL DRAWING PROCESS 8-32 8-33 8-35 8-36 8.4 8.4.1 8.4.2 ReGIS GENERAL SYNTAX . . ALPHABET . . . . . GENERAL GRAMMAR 8-37 8-37 8-39 8.1. 5 8.1. 6 8.1.6.1 8.1.6.2 8.1.6.3 8.1.6.4 8.1. 7 8.1.8 ~DmDDmDTM Digital Internal Use Only . . . . 8-10 8-10 8-10 8-10 8-30 8-30 8-30 8-31 8-31 8-31 8-31 8-31 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-4 ARGUMENT TYPES . . . . . . . . . . . . . . 8-43 8.4.3 Bracketed Coordinate Specifier . 8-43 8.4.3.1 Quoted Strings . . . . . . . . . 8-43 8.4.3.2 Nume r i cs . . . . . . • . . . . 8-45 8.4.3.3 '8-46 Dynamic Range and Precision 8.4.3.3.1 Numeric Format Violation 8-47 8.4.3.3.2 Options . . . . . 8-47 8.4.3.4 8-49 MACROGRAPH STRINGS • • • . • . . • • . 8.4.4 POSITION ARGUMENTS . • . . • . 8-52 8.4.5 Position Argument . . . • . 8-52 8.4.5.1 Use of Bracketed Extents for 8.4.5.2 Non-Positional Information . • • . 8-53 Pixel Vectors . • . . . . . . • . • . . 8-54 8.4.5.3 PositiDn Stack . . . . . 8-55 8.4.5.4 EXTENSIBILITY REQUIREMENTS . . . . . 8-56 8.4.6 BASE ReGIS INSTRUCTIONS 8.5 SCREEN INSTRUCTION . . . . . . . 8.5.1 position Arguments . 8.5.1.1 Numeric Arguments 8.5.1.2 Quoted String Arguments 8.5.1.3 Options . • . . . . . . 8.5.1.4 S(A[][]) - Screen Address definition. 8.5.1.4.1 Mandatory Arithmetic Range 8.5.1.4.1.1 Accommodation of Shape . . 8.5.1.4.1.2 Numeric Accuracy . . . . . . . . . . 8.5.1.4.1.3 States Set to Default as a Side 8.5.1.4.1.4 Effect of S(A[][]) . . . . . 8.5.1.4.2 S(E) - Screen Erase . . . . . . . . . S(F«suboption») - line Pattern 8.5.3.4.2 definition . . ......... . Writing Modes 8.5.3.5 8.5.4 VECTOR INSTRUCTION 8.5.4.1 Arguments 8.5.5 CURVE INSTRUCTION 8.5.5.1 ,Position Arguments . 8.5.5.1.1 Circles 8.5.5.1.2 Curves . . . . . . mDmDomD™ Digital Internal Use Only 8-58 8-58 8-58 8-58 8-58 8-58 8-58 8-59 8-61 8-64 8-64 8-6-5 8-65 8-67 8-67 8-67 8-68 8-68 8-68 8-68 8-69 8-69 8-69 8-69 8-69 8-69 8-69 8-72 8-73 8-73 8-74 8-75 8-75 8-75 Page 8-5 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Numeric Arguments . • • • . . • • • • • 8.5.5.2 Quoted String Arguments • • • • . • . • 8.5.5.3 Options . . . . . . . . ... . 8.5.5.4 Ci rc1es . • . . . • • • • . 8.5.5.4.1 C(A • . • • • • • • • • • • 8.7.3.4.2 T(B) - save Text attributes · . 8.7.3.4.3 T(D]) - set Text pixel 8.7.3.4.7 , Multiplier . . • • • • . . • • . • • • 8.7.3.4.8 T(S[]) - set Text display cell Size . . . . . . . • . . 8.7.3.4.9 T(S]) - set Text Unit cell size . . • • • • • • • • • • . . 8.7.3.4.11 T(W«suboption») - temporary write options • . • . . • . • . • . . • • . 8.7.3.5 Further Notes .•••••••••••• REPORT INSTRUCTION ....•...•.. 8.7.4 8.7.4.1 R(L) - Report selected Loading alphabet 8.7.5 LOAD CHARACTER SET INSTRUCTION . • . • . . 8.7.5.1 Position Arguments • • • • . • • 8.7.5.2 Numeric Arguments • • • . . • . • Quoted String Arguments • . • . . 8.7.5.3 8.7.5.4 Options . . . . . . . . . . 8.7.5.4.1 L(A") - associate (name> with Alphabet. . . . . . . . . . . . • . . mDmDDmD™ Digital Internal Use Only 8-106 8-107 8-107 8-107 8-107 8-107 8-107 8-107 8-107 8-107 8-108 8-108 8-109 8-109 8-109 8-109 8-112 8-112 8-112 8-112 8-113 8-113 8-114 8-114 8-114 8-114 8-114 8-115 8-115 8-115 8-116 8-116 8-116 8-118 8-118 8-119 8-119 8-119 8-121 8-121 8-121 8-121 page 8-7 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7.5.4.3 L(E«color specifier») modify the color Map . . . . . . . . . 8.8.1.4.6 S(R[][]) - define and enable/disable a clip Rectangle · 8.8.1.4.7 S(S«suboptions») - Scale the visible image . . . .• .. 8.8.1.4.8 S(W«suboptions») - temporary Write options . . . . . . . . . . . . . . . 8.8.2 POSITION INSTRUCTION . . . . . . . . . 8.8.2.1 P(P Operator Entry Dev:i.ces 6 Local Processor /' Hardware Commands ® .7 Display Device Remote Graph:i.cs Dev:i.ce Figure 8-1: Graphics System Block Diagram mDmDomDTM Digital Internal Use Only EL-00070-0B· 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.1.6.2 Page 8-17 The System Model Figure 8-1 illustrates the assumed general block diagram of the graphics system for which ReGIS was designed. As illustrated, the system consists of two major parts: (1) the host computer system, which from the user's point of view consists of various software modules and (2) the remote graphics device. The term "remote" here refers to the assumption that the graphics device is attached to the host computer by a possibly low-speed communications link. The host computer system is assumed to consist of four major parts (not all of which may be present in any particular system): 1. Graphics application package - Such packages allow the user to access the graphics capabilities of the remote device in terms of syntax and semantics appropriate to the user's intended application. For example, a data plotting package may accept tables of data and allow the user to construct plots of varying types based on that data, using an interaction dialog appropriate to the application. 2. High level language Users often need to generate graphic images of significant complexity requiring algorithmic definition, or images requ1r1ng dynamic changes. Such programs are generally written in higher level languages which mayor may not have direct access to graphics functionality. 3. Text files - Sometimes called the graphics "metafiles"; static storage of the definition of a graphic image allows later use of that graphic image in the same manner as printing out a report file of standard text. 4. Operating system The operating system may provide support to the graphics user in the general case by converting the graphic image definition provided by the other software to the required protocols necessary to drive one or more remote graphics devices, .or may use graphics directly to implement a pictorial (iconic) dialog with the user. ~DmDDmD TM Digital Internal Use Only Page 8-18 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.1.6.3 Graphics Language Access Points Based on the above assumed structure, the system has at least six language access points of interest to the users and developers of such a system: 1. Graphics application languages - such as plot commands in a data plotting package or the constructors of physical images as represented by the Graphical Kernel System (GKS) graphics standard. 2. High level languages - allow access to graphics semantics in three possible ways: character based communication string constants output through a. By direct drive of protocols by using "PRINT" statements b. Through graphics subroutines accessed calls c. Through embedded graphics statements accessed in same manner as other language capabilities by programmed the 3. Graphics text files - the syntax of how the graphics image is stored as text for later communication to the graphics device (metafiles). 4. Communications Interface - the syntax of the graphics commands sent sequentially to the graphics device. S. Graphics hardware instructions - the (presumably digital) signals generated by the local device processor to control the hardware image generator. 6. User graphics entries - the specialized entry sequences for local control in addition to the syntax of the user commands required to use the application software programs. 8.1.6.4 ReGIS Scope of Application Considering the breadth of graphics applications and the differences in "personality" between the different language points, it is not feasible to identify or specify one instruction set which satisfies the requirements of all access points in the system. On the other hand, the relatively large number of different graphics language syntaxes of which a user may have to be aware predicates a few standardized language approaches, with special languages applied when dictated by the application. These latter special applications must be based, where possible, upon Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-19 other existing standards. It is the purpose of ReGIS to standardize the syntax and semantics of the communications interface graphics commands. By extrapolation, it is also intended that ReGIS be used at other graphics language access points at which a character based descriptive representation of the graphic image is appropriate. In summary then, it is intended that ReGIS be used for the following graphic language access points for both remote and closely coupled graphics systems: 8.1.7 a. Graphics instruction string constants from high level languages, whether generated by print statements or the compilation of high level language programs having embedded graphics statements b. The "semantic protocol" for graphics access across serial communications line to a remote graphics device a c. The syntax of graphics character oriented file a commands when stored in RANGE OF INTENDED DEVICES ReGIS attempts to cover a broad range of both soft-copy (temporary record) and hard-copy (permanent record) remote graphics devices. ReGIS executes well-defined, two dimensional, descriptively encoded graphics images. The technology of a device is generally not a factor in the determination of whether that device would be suitable for an implementation of ReGIS. The principal requirement for transporting ReGIS-defined images is that the essential information content of an image MAY be encoded in the basic set of ReGIS instructions so that little, if any, essential information content is lost. This must hold true if attributes of one device are transformed, or even ignored, by another device which does not have that particular attribute capability. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.1.8 Page 8-20 ReGIS OVERVIEW Good design practice specifies the function set of a proposed interface before selecting an encoding to implement it. However, the primary operational environments of ReGIS are required to be: Serial communication channels operating under existing text-oriented protocols, and of Text-oriented data storage for deferred execution , pictures. a. b. These design constraints make it feasible to define the function set of ReGIS and its encoding concurrently. As a consequence, the function set of ReGIS is defined in this standard in terms of its encoding, both syntax and semantics. ReGIS instructions are sequences of characters based upon the alphabet common to most computing systems. This alphabet consists of letter, digit, and punctuation characters. A graphic image is drawn by sending the graphics device a sequence of instructions encoded into this alphabet. The general format of each instruction is a keyletter denoting the type of operation to be performed, plus instruction arguments which have a prescribed meaning when associated with a keyletter. The nine basic (keyletter) instructions in ReGIS are briefly defined as follows: 1. Screen Instruction - keyletter "S" Screen operations affect the entire visible viewing area. Actions include setup of the display space, clearing the display in preparation for a new image, and controls which may affect the re-direction or retransmission of an image. 2. writing Attributes Instruction - keyletter "W" Write Attribute instructions are modifiers which affect the actions of drawing instructions following them. Attributes include line style, color and intensity, patterns and textures, and other image modifiers. 3. Position Instruction keyletter "pH The Position instruction causes the drawing process to commence or resume from a specific position in the drawing area. 4. Vector Instruction keyletter "V" The Vector instruction invokes the line primitive causing straight lines to be drawn between positions specified by the instruction arguments. 5. Curve Instruction - keyletter "C" - The Curve instruction causes circles, arcs, or general curve images to be drawn based upon .the arguments of the instruction. mDmDomD TM Digital· Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-21 6. Text Instruction - keyletter "T" - The Text instruction causes a sequence of text characters to be drawn in a manner based upon the arguments of the instruction. 7. Report Instruction keyletter "R" The Report instruction allows state information to be returned to the host from the ReGIS implementation. 8. Fill Instruction - keyletter "F" - The Fill instruction allows linear elements (lines and curves) to be used as boundaries for simple or complex closed areas, which can then be "colored in." 9. Load character cell Instruction keyletter "L" The Load character cell instruction allows ReGIS programs to define character patterns for use in the Text instruction and general character patterns that are used in area operations. There are four general types of arguments used in ReGIS: 1. Position arguments are strings of characters written within the bracket characters "[" and "J". Bracketed position specifiers are used as effective addresses or address increments. 2. Text strings are character sequences contained within paired quote characters, either ' or " and are used when a character is itself an argument of an instruction, as in the case of the Text instruction. 3. Digits are interpreted as numeric values, decimally encoded. binary values (as logic masks, and so on), or addresses of adjacent neighbors of a given point in a display. 4. Option arguments are strings of characters written within the parenthesis characters "(" and H)" which in some manner modify the way in which the instruction carries out its intended purpose. The syntax of the option strings is the same as for instructions and for this reason, option arguments are also called sub-instructions. These basic instructions and their arguments are sufficient to define most of the information of most graphic images required by users of graphics systems. mDmDomD™ Digital Internal Use Only EL-OOOJO-08. 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.2 Page 8-22 ReGIS PHILOSOPHY This section describes and discusses the terms of: rationale of ReGIS in 1. The approach of allowing an image originally defined for one graphics device to be drawn on a dissimilar graphic device, called the instruction set "transportability"; 2. Concepts of the instruction syntax and the orientation to the ASCII character code conventions; and 3. Concepts of handling dissimilar device attributes and capabilities, referred to as the "semantics" of ReGIS. 8.2.1 TRANSPORTABILITY CONCEPTS The goal of image definition transportability is to enable a given sequence of graphic instructions to draw similar looking images on dissimilar graphic devices. There are three major aspects of the design of ReGIS which enhance transportability. These are: 1. Application free primitives 2. A mandatory.base implementation 3. Imposition of critical device parameters Note that complete transportability depends on the user selecting features of a device that are possible to transport across technologies without loss of critical information. For instance, ReGIS cannot preserve the information content encoded as blinking when the commands are transported to a hard-copy device. 8.2.1.1 Application Free Primitives ReGIS implements a set of drawing primitives based upon common geometric rule and compass constructions, and does not contain any specific capabilities which can be interpreted in terms of the semantics of the application. For example, ReGIS does not include viewing transformation, hidden line removal, and other capabilities generally useful in presenting images of real physical things. Neither does it have built-in axis and bar graph primitives which would be used to support only data plotting. Instead, this model assumes that these capabilities are adequately supported at higher levels in the graphics pipeline, and that these functions are encoded into a sequence of ReGIS instructions. In this way, ReGIS does not burden one application with features required specifically for another. mDmDomD™ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.2.1~2 Page 8-23 Mandatory Base Implementation ReGIS instructions are based on a general instruction syntax which all devices are required to parse. Every device using the ReGIS instruction set must completely interpret all possible character sequences defined by this general instruction grammar, whether or not those character sequences have semantic meaning in the device in question. The syntax of ReGIS is complete and well formed. Only the semantics can vary among devices of differing capabilities, and, at that, only among extensions to the most fundamental required instruction set. Semantically, ReGIS instructions and parameters are separated into a Base ReGIS category, a Raster Extensions category, and Open Extensions. Other extensions may be defined to apply to other technologies or categorizations. It is assumed that most of the essential information content of any desired graphic image may be defined by the Base ReGIS instructions and parameters. All ReGIS based graphic devices must accurately interpret these Base capabilities. In addition, users expecting to output the defined images to a variety of devices should use only the Base ReGIS capabilities to ensure maximum transportability. For example, color is not a common attribute of every graphic device, and for this reason the ReGIS Base is "color-blind". Users desiring maximum transportability should avoid using color to relate essential information where that same information is not also implied by monochrome boundaries or patterns. There are several possible categories of Standard Extensions to ReGIS. These extensions are based on differences in technology, and are used to standardize device features across the class of devices represented by that technology. The most important extension class is for raster scan display devices, including color CRT displays. Standard extensions for a given class of device allow all devices within that class to be controlled in a class dependent, yet device-within-class independent manner. Hence, all raster devices must implement the full range of the standard Raster Extensions. This concept works, and even allows commands from an extension set to work on simpler devices, because all devices must fully parse the general instruction syntax. Therefore, a capability in one of the extension sets is simply ignored or transformed to an alternate attribute in a device for which that capability does not exist. This approach is feasible because of the small number of syntactic elements in ReGIS, and their ease of identification. Digital Internal Use Only EL-B0070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.2.1.3 Page 8-24 Critical Device Parameters The third major concept in allowing maximum image transportability is the use of critical setup parameters defined once for each image and placed at the beginning of the instruction sequence for that image definition. Thus, in the worst case, the user might have to adjust these parameters to achieve maximum fidelity in the reproduction of a graphic image. As an example of such a critical device parameter, ReGIS allows the user to set the range of (X,Y) coordinates to be used for an image definition. These should be set to the actual physical range values of the device which the user most often accesses. These range parameters could be adjusted to maximally utilize a dissimilar low resolution device but would not have to be adjusted for displaying the same image on a high resolution device. Imposing expectations on the device departs from what has been common practice in graphics and other areas of computer peripheral access. Commonly, devices are interrogated for their function sets and features, and the applications take on the burden of manipulating data to fit the device. By placing the burden of accommodation on the device, the application or picture file becomes more portable and less likely to require modification as new devices or classes of devices come into use. 8.2.1.4 Fidelity of Information Presentation Devices must- be allowed varying levels of fidelity in the presentation of information implied by ReGIS instructions. This is a reflection of differences in technology and engineering constraints in product implementations. Fidelity may be measured in a qualitative and quantitative sense. Qualitatively speaking, a line is a line because it appears to connect two points in the display in a continuous fashion. A circle is a circle because it is "round." These aspects of fidelity are, in part, subjective. Pixel oriented devices actually draw lines as a sequence of intensified dots, and the ragged nature of some lines is entirely unpleasant in some instances. However, even these less than perfect lines are, qualitatively speaking, lines. When fidelity is measured quantitatively, some features of some systems cannot be satisfactorily transported. Display resolution varies from device to device, and the capacity of a display in terms of discernible line pairs or character cells will vary, as will capacities of character cell stores or attribute memories. Where such limits can be quantitatively described, they will be specified with the appropriate instructions as guides to transportability. Lower resolution and/or monochrome devices by their nature have limited information presentation capacity. Drawing a very detailed image whose information content exceeds the information capacity of the target device may result in essential information Digital Internal Use Only EL-OG010-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-25 being lost. These devices may conform to the ReGIS standard if the qualitative judgement is that they will serve to display images which preserve "enough" information content for normal use. While this definition may appear quite open and perhaps circular, it is a pragmatic and workable one when the decision as to whether ReGIS is the appropriate graphics support mechanism is well-founded. Higher resolution devices may be expected to implement the highest degree of fidelity of information presentation. Transportability is achievable if images are prepared on lower resolution devices for later output on higher resolution devices, or that a high information content image is prepared directly for the high resolution device. It is not expected that an image prepared on a high resolution device will be drawn on a substantially lower resolution device, except perhaps for "quick checking." Should this situation exist, however, the user must be willing to accept the possible misinterpretation of information as a result of the lower fidelity of reproduction. Digital Internal Use Only EL-G0070-0~ 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.2.1.4.1 Page 8-26 Guidelines for Image Creators Given the above, the user must bear some of the burden for balancing the devices available and the applications in mind. If transportability is a goal, then appropriate consideration must be given to the range of devices that may be encountered; the complexity of the presentation should be tailored to that environmental range. For this reason, device or technology specific features should be used only where they are absolutely necessary, or when transportability is not a goal. Even though they are supported through ReGIS, special features cannot be guaranteed across all devices. There are certain specific methodologies image creators can adopt to enhance the transportability of images. This list is not exhaustive, but should serve to lead the reader's thoughts in the direction that will allow for accommodation of device differences. a. Do not use expected device resolution to encode maximum information content into an image. While the most aesthetically pleasing results can often be obtained by planning patterning, character cell placement, and the like based on the pixel resolution of known devices, such attention to detail builds into an image a dependency on resolution that precludes image transportability. b. Specify text character sizing in terms of the imposed address space using the expanded Text commands for unit {T(U[])} and Display (T(S[])} cell sizes rather than as multiples of standard size {T(S"moretext" the token <> were replaced by one of SF, BS, HT, LF, or an-equivalent command stream would be CR, then T"textmoretext" because of the resulting doubled quote. Were <> to be replaced by any other control, an equivalent command stream would be T"text""moretext" resulting in the effective text argument text"moretext. Were <> to be replaced by a macrograph definition (which is specified not to disturb the state of the parser, but which is not allowed within quoted strings), the quotes are NOT doubled. The result is, again, as if the two quoted extents were separated by a comma. The macrograph definition would succeed, but would have the side effect of acting like a supported control character. Digital Internal Use Only EL-00070-Q~ 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.4.3.3 Page 8-45 Numerics Digit characters represent either numbers or sequences of arguments where each argument is a single digit character. The distinction between such uses is semantic, not syntactic and is distinguished by context. The ReGIS grammar allows numeric information to be skipped when the context is not known to an implementation. Digit strings may have semantic meaning as numbers, and integer, fixed point, floating point, and scientific notation formats are accepted. The allowable alphabet for numeric representation is follows: composed o Digits zero through nine o plus and minus signs o Decimal point o The letter "E" or PeP, for scientific notation as The composition of these elements into numbers is by common rules. A simple BNF-like expression of the allowed format for these numbers is ::= ::= ::= [+1-] [] * [.J + + [.J * E[+I-J+ In this expression format, "I" means OR, "::=" means production, "*" means zero or more instances of , "+" means one or more instances of , and [J enclose optional constructs. In words, this means that a number consists of: A string of one or more digits, with an optional decimal point placed either before, after, or within the string, this string being a. optionally preceded by a single sign character, AND b. optionally followed by an exponent comprising 1. the letter "en (upper or lower case), 2. followed by a string optionally signed. of one or more digits, Any character other than those noted as legal numerics terminates the scan, and the accumulated numeric extent is taken as complete. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page- 8-46 The charac'ter causing the termination is rescanned as part of the next token following the number. Consecutive numeric arguments must be separated by commas to ensure proper decoding. The results of encountering an apparent numeric which violates the above grammar (such as having more than one sign character, more than one decimal point, a sign character or decimal point with no digits, or more than one exponentiation operator (E) within a single numeric token) are no~ specified in this standard, and such occurrences must be considered an error with device-dependent recovery. The inclusion of the letter "E" in the numeric alphabet may create ambiguity in certain instances of consecutive arguments. The construct X(Y1E2) could be a legal specification of the (hypothetical) X command with quantified options Y and E, having values 1 and 2, respectively. Because of the use of the letter "E", the above construct could also be interpreted as the X command with a quantified option of Y with a value of 1e2, or 100. A ReGIS interpreter must always interpret the letter "E" numerically where such use is conceivable in context. Hence, as shown, the interpretation of (Y1E2) would be as (Y100). Note that (Y1E2E3) would have to be interpreted as (Y100,E3), since the numeric grammar precludes the interpretation of a second exponentiation operator in a single numeric. ReGIS generators must always precede the "E" character with the option-separating comma when there is any chance of a semantic error. Where digit strings are used as pixel vectors described under subheading 8.4.5.3 Pixel Vectors, the sign characters and the decimal point are ignored without effect, and the interpretation of the digits takes place normally. Any other character terminates the digit string scan, and the scan state changes to that indicated by the non-digit character. This is also true of the letter "E", which, although normally valid in numerics as an exponentiation operator, must be interpreted as a keyl"etter at the current option level. 8.4.3.3.1 Dynamic Range and Precision Implementations are not required to USE any fractional part of a completely decoded numeric. However, all implementations must RECOGNIZE when fractions occur, and not truncate to integers until the number is COMPLETELY parsed and decoded. In particular, exponential format numbers may have a fractional part and yet resolve to an integer. The format 1.02e2 must resolve to 102, not 100. " momDomD™ Digita1 Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-47 The need for proper decoding of values expressed using negative exponents is less clear. For example, the form 100000e-3 resolves to 100, but the 100,000 part would overflow the integer prec1s10n of many implementations. Thus, the goal of interpreting exponential formats is targeted toward the use of exponentials that resolve into the supported integer range of most devices, and the use of large negative exponents in such forms is deprecated. All implementations must support signed integer arithmetic in a range no less than -32767 to +32767, that is, sixteen bits of l's or 2's complement expression. 8.4.3.3.2 Numeric Format Violation The numeric arguments for the Load character cell command (not a part of Base ReGIS) operate somewhat in violation of the above rules. The Load command uses a potentially variable radix for specifying character masks, and typically uses hexadecimal. In this case, the characters a through f (and A through F) are not keyletters, but numerics. Hence, implementations should recognize the L command as a special case, and, if it is not supported, enter a special skip state to wait for the next synchronizing semicolon, which is required to terminate the Load command. 8.4.3.4 Options Sequences of characters enclosed within the parenthesis characters "(" and H)". represent instruction options. The syntax of each option is the same as the syntax of a ReGIS instruction, including the four argument types. The option syntax is thus fully recursive, allowing theoretically infinite extensibility of ReGIS semantics. The components of all the arguments types are the same within options as they are at the command level. For readability, options, also called sub-instructions, may be separated by comma characters but not by the semicolon character. The semicolon character terminates the instruction to the highest level. ReGIS interpreters must be prepared to accept recursion of options to at least six levels. A conforming ReGIS generator must not exceed this level of recursion. Recovery from an attempt to exceed allowable recursion depth is to the highest command level, just as if a semicolon character had been encountered. The hypothetical command X(A(B(C(D(E(F»»» represents the deepest legal nesting of option levels. Any argument type applied to suboption letter "F" other than another option level would be properly interpreted. Suboption "E" could legally accept other suboptions, as well. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION page 8-48 unless otherwise specified in the body of the option description, option settings are modal, that is, they represent a change of state which is maintained across commands until explicitly changed by resetting the option or by the side effect of another action. Coloquially, such options are referred to as "sticky". Some options, particularly in the Curve instruction and all of the temporary Write options, are "volatile." They remain in effect only for the duration of the command in process. These options revert to their default state (or to their previous modal state, if applicable) when a new command keyletter or a synchronization operation is processed. All commands whose actions reference state set by the Write options command, W, may include W as an option, and may set any W-settable state for the duration of that command. The W-state previously in force (set by a W at the top command level) is saved when the option W is encountered, and is restored when the current command is terminated by synchronization or the occurrence of a command keyletter. Such option level state is always volatile. momDomD™ Digital Internal Use Only EL-00070-08 31-Mar-l988 VSRM - ReGIS GRAPHICS EXTENSION 8.4.4 Page 8-49 MACROGRAPH STRINGS The concept of the macrograph is derived from the assembly language programming construct of macro instructions (macros). The macrograph facility is "extra-syntactic." Macrograph strings provide the ability for commonly used character sequences to be stored in the graphics device and then referred to, repeatedly if necessary, in the sequence of instruction execution. This facility reduces the number of characters that must be transmitted over the communications interface. For example, if the image being drawn is a sheet of music, each of the different types of notes could be defined in a macrograph; they could then be referred to by name rather than by content. The result can be a significant reduction of communications overhead without substantially reducing image definition readability. In some cases, readability may even be improved by such compaction. M~crograph strings are "extra-syntactic" in that they conform to a grammar built on top of the ReGIS general grammar. Therefore, macrograph definitions may take place anywhere in a ReGIS command stream without affecting the state of the ReGIS parser. A macrograph definition may even occur within the extent of a numeric argument without adversely affecting the interpretation of that numeric value. Because of the co-precedence of quoted string extents and macrograph transactions, however, neither macrograph definition nor expansion may take place within a quoted string. Similarly, a quoted string within a macrograph definition is not treated as a quoted string until the macrograph is invoked. A macrograph invocation affects the state of the parser only insofar as it provides a different character input path. In the process of parsing ReGIS instructions, the detection of a macrograph string reference causes the characters previously defined for that macrograph to be substituted for the string reference characters. In the general case, a macrograph string ~ay be just an argument of an instruction (such as a position argument) or may even be a piece of an argument (such as an argument to a sub-instruction or one element or part of an element in a coordinate pair). All operations relating to macrographs are initiated by the "at" character "@". Altogether 26 macrograph strings can be defined, each identified by a single letter of the alphabet. Lower-case letters are converted to upper-case for the purpose of macrograph string identification. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION· page 8-50 The entire set of macrograph strings is cleared by the character sequence "@." ("at" followed by period). The operation of clearing a macrograph causes the string to consist of no characters (the empty string). The default content of all macrographs is the empty string. An attempt to execute the global clear (@.) from within a macrograph is an error. Determination of and recovery from this error is not specified in this standard. A macrograph string is defined by the sequence @:@; where refers to any alphabetic character, and is any sequence of characters not containing "@;" or "@:". The sequence "@:" (colon) is called the macrograph definition initiator. The sequence "@;" (semicolon) is called the macrograph definition terminator. Neither a macrograph clear nor a macrograph definition affects the state of the ReGIS interpreter. A macrograph definition may occur at any point in the ReGIS instruction stream, between keyletters and arguments, between arguments, or within an argument, without affecting the interpretation of of the ReGIS stream. Macrograph invocation, on the other hand, causes previously stored pieces of the ReGIS stream to be inserted into the interpreted stream, in a manner indistinguishable from non-macrograph ReGIS. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-51 A macrograph string is invoked by the sequence @ where is one of the names given a previously defined macrograph. Such a sequence may appear anywhere in a sequence of ReGIS instructions, except within a quoted string. Macrographs cannot be expanded from within quoted strings. A macrograph string cannot contain the definition of another macrograph string. Determination of and recovery from this error is not specified in this standard. A macrograph string may include invocations of other macrograph strings, but a macrograph string must not invoke itself either directly or indirectly. There are no conditional execution controls in ReGIS, therefore there is no termination mechanism for recursive invocation. Determination of and recovery from this error is not specified in this standard. Once defined, a macrograph may not be extended. The first action taken upon the occurrence of a macrograph definition initiator must be to clear the contents of the specified macrograph. A single macrograph string may be of any length from no characters up to the defined storage limit of the ReGIS device, thereby excluding all other macrographs from use. Conforming implementations must provide for no less than 4000 characters of macrograph storage. ~ser attempts to exceed the macrograph storage capacity will "fail soft" with the following results: a. No other macrographs already stored will be affected. b. Any part of the macrograph string being stored already stored will remain stored. c. The remainder of the attempted definition will be discarded, but the definition will terminate "normally" upon the next occurrence of the macrograph definition terminator, and there will be no effect on the command state of the ReGIS interpreter. mDmDomD TM Digital Internal Use Only which is EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.4.5 Page 8-52 POSITION ARGUMENTS ReGIS maintains a current drawing position. This means that each graphics primitive starts at the "position" left by the previous operation. Vector commands, for example, have an implicit start point, and only a single argument (the other end point) is required to specify a line. The effect of any command upon the current position is described with the definition of that command. ReGIS implementations may, at their option, provide a visible cursor which tracks the current drawing position. This standard neither specifies nor precludes such a feature. ReGIS provides two syntactic structures for the definition of drawing positions: (X,Y) coordinates and pixel vectors. The (X,Y) coordinate structure is the traditional system of defining positions. It specifies two numbers separated by a comma, with a semantic extension which allows absolute and relative coordinates to be distinguishable in context, thus eliminating the need to have separate relative and absolute instructions or options. Pixel vectors correspond to the "chain encoding" technique used to drive many incremental plotting devices. 8.4.5.1 Position Argument A position argument is delimited by a pair of left/right square brackets, both of which must be present. A position argument consists of an x-position part and a y-position part, either or both of which may be missing. The x part precedes the y part. Each component is made up of numbers, following the rules for numbers as standalone arguments. The y part, if present, is separated from the x part by a comma. See subheading 8.4.3.4 Numerics. Each coordinate part consists of a number possibly preceded by a plus or minus sign ("+" or "_H). If a coordinate part is not preceded by a sign character, that argument represents an absolute coordinate; the value of the coordinate part is the new number, irrespective of the value of the current drawing position. If a coordinate part is preceded by a sign character, then that part is evaluated relative to the current drawing position value. A position argument may have one coordinate part as a relative specifier and the other coordinate part as.an absolute specifier. If a coordinate part is missing, that part is interpreted to mean +0, which is a relative specifier indicating a displacement of O. Note that +0 is a different specifier from 0, which is an absolute specifier. For each example below, assume the initial values of X and 100 and 50 respectively. momaomD™ Digita~ Interna~ Use Only Yare EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Position Spec Effective Addr [ 0,0] [30,23] [200] [ ,42] [+10,-25] [0,+10] 0 30 200 100 110 0 0 23 50 42 25 60 [15,20] [10,20][+5] 15 15 20 20 Page 8-53 ------------- -------------- 8.4.5.2 (only X changed) (only Y changed) (relative change) (combination relative and absolute change) (multiple specifiers have cumulative action) Use of Bracketed Extents for Non-Positional Information Some ReGIS commands are defined to use the square brackets to enclose non-positional information, as for specification of positional information not coupled to the current drawing position or to the imposed coordinate space in effect. Some uses are for expression of rectangular extent, others are for situations where "position-like" information is required. The following uses of bracketed extent are non-positional. In Base ReGIS: 1. S(A[][]) - The contents of the bracketed subarguments define the imposed address space. They have no dependence on current position, and signed values are interpreted as absolutes. Negative values for imposed coordinate space are not allowed. Missing values (fewer than two bracketed extents or unspecified values within the brackets) result in illegal specification. 2. T[] - Character escapement for the text command is measured in the imposed coordinate space, but these values are always interpreted as relative to the current position, even if the provided values are unsigned. Omitted values are interpreted as spacing of +0. In Raster extentions to ReGIS: 3. T(M[]) - The storage cell multiplier is not positional, but the two elements are an ordered pair of multipliers. 4. T(U[]) and T(S[]) The Unit and Display sizes of character cells are measured in the imposed coordinate space, but do not relate to current position. Missing values default to values associated with standard size characters. mDmDomD TM Digital Internal Use Only EL-00070~08 3l-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 5. L[] - The storage size of a technology-dependent units, There is no association with values are interpreted as O. Page 8-54 character is measured in usually bits of storage. current position; missing In Open extent ions to ReGIS: 6. 8.4.5.3 S(H(P[]» - The hard-copy offset is not coupled to current position. Its relationship to the imposed coordinate space is implementation- and retransmission protocol- dependent. Missing values are interpreted as O. The bracketed arguments to the H option itself ARE positional, do relate to the imposed coordinate space, and may be expressed in terms of the current position. Pixel Vectors A pixel vector is represented by a single digit character in the range of 0 to 7. Each of these numbers refers to one of the eight pixel neighbors relative to the current position. As illustrated in Figure 8-2, pixel vector number 0 refers to the right, pixel vector number 1 refers to the pixel up and to the right, and so forth around a circle in a counter-clockwise" direction. These directions are constant, and are not affected by the display surface orientation set by the Screen address setup command S(A[] []). That is, pixel vector 0 is always to the right, even if the +X direction has been defined to be to the left. 3 2 1 4----~~-----O 5 7 Figure 8-2: Pixel Vector Directions The character sequence 2057 refers to a sequence of four vectors and not to the number two thousand fifty seven. Pixel vectors allow only relative positioning. positioning Digital Internal Use Only and not pixel absolute Page 8-55 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The default size of a pixel vector is the unit integer size defined by the screen coordinate setup operation, S(A[][]). This length is modifiable by a multiplicative factor specified in the writing attributes instruction. Scaling of horiiontal and vertical components of the pixel vector is isotropic, that is, an increment of distance in X is taken to be the same distance as that increment in Y. Depending on the granularity of the unit pixel size defined by the screen coordinate setup operation, the exact position after executing a sequence of pixel vectors is subject to roundoff error and thus pixel vector positioning sequences should be broken occasionally by absolute positioning, or by position reports. For the examples which follow, assume that the ReGIS coordinate space has been set with an upper left origin, and that initial values of X and Yare 100 and 50, respectively. Multiplier ---------1 1 1 (any) 5 23 1 8.4.5.4 Pixel string -----------0 1 0002 01234567 667 5 0000000000 New (X,Y) Value --------------101 101 103 100 105 77 110 50 49 49 50 65 73 50 Position Stack ReGIS provides for the current drawing position to be saved for use by commands which may follow in the command stream. The mechanism for such saving is a stack. A current drawing position can be saved by a "begin block" operation and later, after possibly several intervening position changes, the position can be restored to its old position by an "end block" operation. The begin and end points are identified by option characters "B" and "E" in the option arguments of the drawing and positioning instructions which use the block structure. There is only one stack on which positions are saved, and only the Vector and Position instructions have access to this stack. The Curve instruction does NOT use this stack, since the state required for curve maintenance is more complex than that of vectors and positions. Thus, an "end" reference in a vector instruction can cause a position saved by a "begin" operation in a position instruction to be returned. ReGIS devices must provide a stack at least eight positions deep. While more depth may be provided by devices, conforming software should never assume more than eight entries. Digital Internal Use Only · EL-OOQ70~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-56 Should stack capacity be exceeded during a save, the current element (the val~e for which the save failed) is not saved, but discarded. Stack underflow will cause NO ELEMENT to be returned. NO ELEMENT is distinguished from an empty bracketed pair ([]) in that the former implies no argument present (as would be fetched from an empty macrograph), and the latter implies the use of current position for a position argument. In the case of a null argument to a vector command, no drawing is done; in the case of an empty argument ([]), a single dot is drawn to indicate a line drawn from the current position to the current position. 8.4.6 EXTENSIBILITY REQUIREMENTS The following notes give general requirements for extending to take advantage of device specific characteristics: ReGIS a. The ReGIS syntax of keyletter and four defined argument types is fixed and will not be extended. New features must be added to ReGIS by assigning meaning to previously unassigned keyletters, or by assigning semantic meaning to previously unspecified keyletter/argument combinations, such as by adding options to existing instructions. b. A new instruction type shall be added to ReGIS only if: 1. The new operation cannot be conveniently or efficiently performed by a sequence of existing ReGIS instructions, and 2. The designer can ensure a minimal loss of information content when the new instruction is ignored by a ReGIS device which does not implement the instruction. By this reasoning, new instruction types must minimize side effects of state to the greatest degree possible. For example, no command not already defined shall affect the drawing position, as this element of state is critical to the basic -drawing process, and commands unknown to older implementations could not possibly be accommodated if such changes were to occur. c. mDmoomD Extensions must be unique. The same command semantics must not be used to specify different effects on different types of devices, except where the differing effects are closely related and controlled by a mode aetting. {Refer to the two modes of on-screen data movement and the S(O) switch as an example.) TM Digital !nternal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION I I I I I I I I I I. page 8-57 d. ReGIS shall not be extended beyond its intended range of applicability as outlined under heading 8.2 ReGIS Philosophy. e. Extensions will be registered via Engineering Change Orders (ECOs) to this document, either as additions to existing chapters, new chapters, or in appendices, as appropriate to the meaning and classification of the extension. Warning to Device Implementors Product dependent extensions to ReGIS not registered in this standard may jeopardize the certification of the product as ReGIS-conforming. Such extensions include assignment of unused keyletters or arguments, or interpretation of assigned elements in a non-standard way. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5 ~-58 Page BASE ReGIS INSTRUCTIONS This section details instructions. 8.5.1 the semantics of the eight Base ReGIS SCREEN INSTRUCTION The screen instruction, keyletter "S", controls screen coordinate parameters and attributes which affect the entire viewing area. In the ReGIS Base, this instruction includes clearing the screen area, setting the coordinate system to be used, and making adjustments to device specific parameters. 8.5.1.1 Position Arguments There is no significance to bracketed position arguments to the command in Base ReGIS. 8.5.1.2 S Numeric Arguments There is no significance to numeric arguments to the S command Base ReGIS. 8.5.1.3 in Quoted String Arguments There is no significance to command in Base ReGIS. 8.5.1.4 quoted string arguments to the S Options 8.5.1.4.1 S(A[][]) - Screen Address definition The screen coordinate definition option allows the user to define the coordinate range to be used in position arguments. In the absence of this command, the default device coordinate range will be in effect. The implementation default is not standardized, and mayor may not, at the implementor's option, reflect the actual physical resolution of the device. Throughout this document, the coordinate space defined by the last effective S(A[][]) command is referred to as the "imposed" coordinate space. Warning to Applications Applications failing to use the screen address command for device setup run a great risk of sacrificing portability. There can be no guarantee that future devices will maintain the same address range as .existing devices; applications that do not include provision for imposing a coordinate space may prove very limited in terms of inter-device portability. Digital Internal Use Only EL-00070-0S 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-59 The screen definition option has two position arguments. These specify the user-defined coordinates of the upper left and the lower right corner of the viewing area rectangle, respectively. If fewer than two address specifiers are given in the S(A[][]) command, or if the specified address space would require absolute negative coordinate values to be properly referenced, the command is ignored and the address space previously in effect shall be maintained •. If more than two address specifiers are given in the S(A[][]) command, just the first two are used, the remainder are ignored. Missing elements inside the brackets cause the command to be ignored. As described under heading 8.3 Base Logical Graphic Device, this will be sufficient information for the device to set up appropriate scaling functions for most other address-related device features. In particular, the default length of the pixel vector is taken to be equal to 1.0 unit as defined by the values of the addresses of the corners specified in the S(A[][]). Other side effects of this operation are listed at the end of this discussion. The screen coordinate option is not meant to be used as a viewing or image transformation. That is, it shall not be used to define a coordinate system which "makes sense" for the user's specific problem. Such transformations are more appropriately accomplished with higher level software. The option is to provide a mechanism for transporting image definitions from one device to another, while ensuring that the maximum capability of a device is usable in the simplest cases. The state of any image existing in the display need not be guaranteed when an S(A[][]) is executed. In particular, devices may perform a new frame or screen clear action if that is required to support a new imposed coordinate range. Applications should still send the S(E) command before beginning to draw. Not doing so could produce undesirable side effects. 8.5.1.4.1.1 Mandatory Arithmetic Range The screen address setup applies to the orientation and magnitude of the Cartesian (bracketed) coordinate specifications of addressing the display surface. Left and right, up and down, clockwise and counterclockwise describe the user's view of the display in its normal orientation. As described earlier, pixel vector orientation is always 0 to the right, 2 up, 4 left, and 6 down, with the odd numbers diagonally in between. The default direction for text is left to right along the baseline; down is the direction below the baseline. Thus, an attempt to reflect an image in its totality merely by inverting the X address space (as to implement rear projection video, for example) will likely fail. mDmDomD™ Digital Internal Use Only Page 8-60 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Though the screen addressing limits specified in the S(A[] []) command will normally cover the desired range of device addresses, use of values outside this range may be desirable. ReGIS devices must properly interpret addresses beyond the "edges" so defined to at least twice the defined extent of the display. Such legal use is positioning the center of an arc outside the display, even though the entire arc drawn is within the viewing area. Since ReGIS implementations may provide for as little as sixteen bits of integer arithmetic precision, the effect of the two bit "guard band" on off-screen addressing is that the largest guaranteed value for on-screen addressing is 16383, or (2**14)-1. r--------- ----------------------, -750 2000 -1000 1000 750 1500 1 ______ - - - ______________________ _ Figure 8-3: Off-display Screen Addressing Example The command S (A [ 0 , 0] [1000, 750] ) defines a display extent 1000 by 750 units, with an upper-left corner origin. The legal addressing range must then be at least -1000 to +2000 in X, and -750 to +1500 in Y. This allows relative specifiers to access negative addresses, and off screen accesses to be recovered without special precautions. Figure 8-3 shows this positioning of address space. Left and right margins shall not "wrap" immediately to one another, nor shall top and bottom. ReGIS generators should never expect to take advantage of such abnormal effects for defined purposes. mDmDomD™ Digital Internal Use Only Page 8-61 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.1.4.1.2 Accommodation of Shape The region defined by the S(A[)[) is the "region of interest" of graphics output. It is device dependent as to whether all graphics output is limited to this area. For example, the area specified by S(A[)[)} might not use the entire visible extent of the device, either because the device cannot adequately scale the range specified to the entire width and height of the display, or because the shape of the area specified does not exactly match the shape of the display. In such cases, it is the device's option as to whether graphics actions taken outside the range specified by SeA) are visible in this unmapped area. Furthermore, it is left to the device to position the area represented by the S(A[)[) as it can within the visible display, with three constraints: 1. The shape (aspect ratio) maintained. implied by S(A[)[) must be The command S(A[O,O)[1000,750) implies an area one and a third times as wide as it is tall. The area on the display to which the source address space is mapped must m~intain this shape; if the target width is to be 768 units wide, for example, then the height must be 576 units tall. 2. All the area implied by the S(A[)[) the target mapping. must be visible in In the case immediately above, if the available height of the display were only 480 units, so that the required 576 units would not fit, then the width used could not exceed 640 units, ~aintaining both shape and visible extent. 3. An implementation may elect to use an integral scaling to fit the requested coordinate space into the device space, but any such mapping must use at least half the v·isible extent of at least one of the horizontal and vertical extents of the available hardware. Consider the cases as above, in which the requested space is 1000 by 750 units. If the target device has native addressing of 768 by 480, then incoming address values can be divided by two, and only 500 by 375 device addressing will be used. Note that if the requested address space were 1000 by 300, then dividing by two would use only son by 150 device units. While 150 is less than 1/3 the available vertical range, more than half of the horizontal range is used, meeting this requirement while maintaining the requested aspect ratio. mDmDomD™ Digital Internal Use Only EL-00070-08 3l-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-62 The placement of any subset range within the device space is left to the device implementor. Conforming software shall not depend upon a given alignment of requested space within device space, nor shall it depend upon the exact scale factor used to map the requested space to the device space. Figure 8-4 shows how a 1000 by 750 unit space could map into video- and page printer-like display spaces. 850 ,....----------, 1000 I I 800 750 ""-----------1 1000 I 1750 I I I I I 11100 I 480 ~--------------~ s (A[O, 0] [1000,750]) mapped into 800x480 landscape display. s (A[O, 0] [1000,750]) mapped into 850xllOO portrait display. Figure 8-4: Accommodation of Aspect Ratios mD~DDmDTM Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS ·EXTENSION Page 8-63 within the constraints described above, a device is allowed to re-orient its display surface with respect to horizontal and vertical to better match an imposed address space, as long as all reorientation takes place as if the device were exactly a device of the assumed aspe~t ratio. In other wo~ds, "turning" the display surface horizontally or vertically to fit a particular graphic may be desirable. The above action is not likely in an interactive video device, but may be useful in a hard-copy device, where the output is viewed out of the context of its generating hardware. For example, an 8 1/2 by 11 inch plotter best mimics the 4 to 3 aspect ratio of video when the long axis is the horizontal (landscape mode). However, if used to execute graphics for publication, the vertical may be the more natural long axis (portrait mode). The magnitude of the horizontal to vertical aspect ratio implied by the S(A[][]) relative to unity may be used to infer the utility of reorientation. Each physical device has its own pixel and picture aspect ratios. The pixel aspect ratio is the ratio of the width to the height of the physical picture elements of the display. ReGIS expects the display medium to be isotropic (equal measure in the X and Y dimensions, that is, a perceived ~ixel aspect ratio of unity). The implementation must shield variations in pixel aspect ratio from the application; ReGIS provides no assistance. mDmDDmD™ Digital Internal Use Only Page 8-64 EL-00n70-08 31-Mar-1988 VSRM- ReGIS GRAPHICS EXTENSION 8.5.1.4.1.3 Numeric Accuracy Note that ReGIS allows numeric parameters to be given in integer, floating point, and scientific notation. The following two rules are guidelines to be used in determining the degree of fidelity necessary for different devices in implementing the numeric formats: 1. Low resolution devices are assumed to use integer numeric quantities only. However, low resolution devices must extract the integer portions of floating point and scientific notation number constants. Refer to subheading 8.4.3 Argument Types and subheading 8.4.3.3 Numerics for rules on numeric interpretation. Allowing the truncation of numbers with fractional parts to the next lower integer numbers on low resolution devices precludes the use of the unit screen concept of fractional addressing. 2. High resolution devices are expected to use the entire resolution provided by floating point numbers. The fractional portion of numbers should not be ignored. These devices are expected to use a nearly exact coordinate transformation algorithm which loses little, if any, of the usable viewing area, subject to mismatches of imposed and available aspect ratios. 8.5.1.4.1.4 States Set to Default as a Side Effect of S(A[J[J) The following states are set to the following default values whenever a valid S(A) is executed: A "valid" S(A) is one with two extent arguments, both of which are expressed in terms of non-negative imposed position values. The. equivalent ReGIS command which would institute this setting is shown after the defined action. a. Current position coordinate space. is set Equivalent explicit command: b. in the imposed line pattern P[O,O) W(Ml) The line pattern is set to solid, and element multiplier is set to 2. Equivalent .explicit command: momoomD™ [O,OJ The pixel vector multiplier is set to 1. Equivalent explicit command: c. to the W(P1), W(P(M2)) Digital Internal Use Only Page 8-65 EL-OG070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION d. Text character escapement is set to rightward movement the width of one standard size 1 character cell, with device-optional extra intercharacter spacing, and no vertical movement. vertical movement executed upon Line Feed is one standard size 1 character height downward, with device-optional extra downward interline spacing. Pixel vector character motion is always one-half a character extent. Equivalent explicit command: T[<+w>,O] assuming X lncreases rightward (else use <-w»; w is not less than the width of a standard size 1 character Equivalent explicit command: T[O,<+h>] assuming Y increases downward (else use <-h»; h is not less than the height of a standard size 1 character e. Character set selection is returned to the default state for the device. This is normally ASCII in GL and the appropriate supplemental set in GR. . Equivalent explicit command: T(A(L"OB",R"1A")) The macrograph store is not affected by executing an S(A). 8.5.1.4.2 S(E) - Screen Erase The screen erase option initializes the display surface in preparation for a new image. The precise meaning of "erase" is device dependent, but generally has the connotation of creating a homogeneous visual image. In some systems, this operation is called "new frame." S(E) clears the position stack (loaded by P(B/S) or V(B/S)). Shading state, a ReGIS extension set by W(S), is disabled on S(E). 8.5.1.4.3 S(F«suboption») - line Pattern definition The ReGIS Base does not require that devices draw in color or gray scale, as these attributes do not transport easily across devices. The Base ReGIS definition assumes that lines can be presented which differ by line style, that is, dashed, dotted, solid,and so on. There are ten predefined line drawing patterns, and ReGIS supports bit by bit definition of custom drawing patterns. A single digit argument to the P option selects a line style from the following list. mDmDomD™. Digital Internal Use Only Page 8-70 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION PO p1 p2 p3 p4 p5 P6 P7 p8 P9 - no visible foreground image specified Solid line Dash pattern Dash dot pattern Dot pattern Dash dot dot pattern Sparse dot pattern Asymmetrical sparse dot pattern Sparse dash dot pattern Sparse dash dot pattern P1 is the default line drawing style. When the numeric argument is a string of binary digits (decimal ones and zeros), the argument represents a bit by bit definition of a custom pattern. Base ReGIS interprets the user defined pattern as a sequence of line segments based upon an alternating pattern of pO and p1 line types. For example, the sequence P111010 constructs a Dash Dot pattern similar to the P3 line type. Digit arguments to the (P) option are treated individually. If a digit string consists entirely of ones and zeros, then it is interpreted as a binary pattern specification. Any other single digit specifies one of the line patterns 2 through 9 noted above. The last such digit in a sequence of digits selects the appropriate pattern. These standard patterns 2 through 9 are represented bit pattern length as: 2 3 4 5 6 7 8 9 - 11110000 11100100 10101010 11101010 10001000 10000100 11001000 10000110 - in an eight Dash pattern Dash dot pattern Dot pattern Dash dot dot pattern Sparse dot pattern Asymmetric sparse dot pattern Sparse dash dot pattern Sparse dash dot pattern The length of the units of the pattern elements is not specified, nor is the relationship of the lengths of the "dashes" and "dots." In raster devices, the unit dot may typically be the size of the physical pixel, but there is no requirement that this length be coupled to any absolutes of screen addressing. Therefore, only the "duty cycle" of the patterns, not their component lengths, is guaranteed by this standard. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-71 Each device must have a certain repetition length for the line drawing patterns. This length is not standardized since a basic dot pattern will carry essentially the same information content independent of this repetition period. If the number of binary digits specified exceeds the implemented width , then the implementor may choose to keep either the first bits specified or the last bits specified, at his option. Conforming software should use only the standardized patterns (with multipliers to expand the distinguishable range of patterns) unless the details of the pattern register in the device being driven are known. Patterns specified should repeat within the repetition length of the device. In this way predefined pattern PI is identical to the custom pattern pl. The action taken by the device in repeating patterns not a submultiple of its internal pattern length is not specified. The only defined suboption to the W(P()) command is M, where the value represents a multiplier to be applied to each element of the requested pattern, either predefined or custom. As noted above, the unit size of the pattern elements is not specified, but should be large enough to be easily distinguished, yet small enough to multiply well for scaled patterns. The multiplier value may be used to expand the pattern spacing, and thus' achieve additional discernible line pattern types. Implementations must provide for multipliers as large as 16. There is to be no interaction between the pixel vector specified by W(M] draws a circle with the current drawing position as the center and [] a point on the circumference of that circle. The drawing position is left at the center after the circle is drawn; that is, the drawing position is unchanged. Thus, consecutive [] arguments to a concentric circles to be drawn. The (C) relationship of the initial drawing position arguments. C command causes option inverts the and the position If the arc-angle option (A degrees from that point. 8.5.5.1.2 Curves Within a position block, position arguments refer to points on a curve through-which an interpolated curve is to be drawn. Sand B represent the two types of curve interpolation sequences. The S option specifies an open end point curve. The B option specifies a bounded curve, in which the end point of the interpolated curve is drawn back to the beginning point to form a smooth closed curve. 8.5.5.2 Numeric Arguments Numeric arguments to both forms of the Curve command are interpreted as pixel vectors. The pixel vector specifier shall be interpreted as if it were a relative bracketed extent, and executed in the circle or curve context, as appropriate. For instance, CO C[+m] where m is the current pixel vector multiplier. If m 10, then CO draws the circle just as if it were C[+10]. The pixel vector multiplier should be set to a reasonably large value for these vectors to have worthwhile effect. 8.5.5.3 Quoted String Arguments There is no meaning defined for any quoted string arguments to the Circle or Curve command in Base ReGIS. mDmDomD™ Digital Internal Use Only EL-oon70-0a 31-Mar-1988 VSRM- ReGIS GRAPHICS EXTENSION 8.5.5.4 Page 8-76 Options 8.5.5.4.1 8.5.5.4.1.1 Circles C(A degrees, counterclockwise for positive , clockwise for a negative . Arc directions, clockwise and counterclockwise, are referenced against the viewing reference, that is, as seen by the viewer. Inverting the address space by changing the sense defined in SeA) does not change angle orientation. The accuracy to which may be specified is device dependent, It is based on the methods and computational resources available in the device. ReGIS devices are allowed to round angular specifiers to the nearest 10 degree increment, rounding up to the next 10 degree increment at the five degree point. Where consecutive .arcs are a requirement, as for drawing pie charts and the like, careful applications should specify arcs rounded down to the next lower increment of 10 degrees, and complete the arc by one or more vector segments to more closely reach the idealized end point. Should the absolute value of the specified angle exceed 360 degrees, the value executed will be plus or minus 360 degrees, as appropriate. The drawing position is left at the end point of the arc if the (C) option was used. Otherwise, the drawing position is left at the center of the arc. 8.5.5.4.1.2 C(C) - Circumferential Circle The (C) option to the circle command causes the relationship between the current drawing position and specified position arguments to be inverted. When the (C) option is in effect, the current position defines a ~oint on the circumference, and a position argument or pixel vector specifier indicates the center of the circle or arc. A circle command with the (C) option draws the circle with the current drawing position as a point on the circumference and [] as the center. In this case, the drawing position is left on the circumference of the circle at the the end point of the circle drawing. Digita~ Internal Use Only page 8-77 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The (C) and (A) options to the Circle command may be used together, as illustrated by Figure 8-5. In this case, the drawing position defines the start point of the arc, and is left at the . end of the arc when it is completed. >< initial drawinq position endinq drawinq position c spec'd position arqument + c C(C) [-100,+80J C(CA90) [-120, +30J C(CA-150) [-125J Figure 8-5: Circumferential Circle and Arcs 8.5.5.4.2 8.5.5.4.2.1 Curves C(B), C(E), and C(S) - Curve interpolation Either the option "s" (for an open curve sequence) or "B" (for a bounded curve) starts a general curve interpolation sequence. The sequence ends with the "E" (end) option. There must be no intervening 9ircle or block structured P or V instructions within the range of a curve begin-end sequence, nor shall C(S) ... (E) or C(B) ... (E) sequences be nested. (Curve and circle operations may be present within a vector or position (B) (E) block, however.) Within these option specifiers, the position arguments (starting with the current drawing position) represent points through which a smooth curve image is drawn. An open or closed curve interpolation must be completed within one invocation of the C command, or the state of the interpolation may be lost. Note that in the command stream C (B) [] C [] C [] C [] ... the intent seems to be that a closed curve sequence be invoked. The occurrence of the second C in this stream returns the ReGIS parser to command level, however, voiding the actions of the (B) option and resulting in some number of concentric circles. mDmoomD™ Digital Internal Use Only Page 8-78 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The only three elements allowed within sequence, either open or closed, are: a curve interpolation 1. Position elements (bracketed or pixel vector) 2. Options (some of which may have no meaning within a curve construct) 3. Text arguments (which cause a skip state and are ignored) Any new command keyletter, even a reiteration of the C command keyletter, results in the abnormal termination of the curve context, and the curve state is lost. Termination of curve context by a synchronizing semicolon has the same eff.ct. In either case the number of curve elements drawn is device dependent. Thus, conforming software should always properly terminate a curve construct to ensure consistent visible results. The use of (W()) suboptions in curve interpolation commands is similarly device dependent. Given the allowed variability of curve interpolation algorithms, prediction of what writing mode or rendition will be coupled with what curve segment is beyond the scope of this standard. The algorithms used and the drawing methods employed to execute open and closed curves are not prescribed by this standard. The intent of this standard is not to prescribe a class of curves by definition (as, say, "cubic spline" or "conic approximation"). The following constraints do apply, however, and may· limit the practical choice of algorithms! a. The curve must pass through every point specified in the argument list with the same accuracy that a vector would pass through them (zero-order continuity). b. The slope of the curve must be continuous across every specified point (first order continuity). Furthermore, the slope of the curve at any given point in the argument list must be parallel to the line connecting the previous and subsequent adjacent points in the argument list. c. Four or more collinear points must result in a straight line from the second to the next to last of these four points. This is a necessary result of constraints land 2. d. Intermediate computed points found for the curve must be the same regardless of the direction in which the points are specified, that is, whether the points defining it are given from l .. n or from n .. l. This does not mean that the visible results must coincide, since this constraint does not impose a method of rasterization on the line segments which connect these intermediate points. mDmDomD TM Digital Internal Use Only EL-00070-P8 3l-Mar-l988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-79 The slope constraint above leads to an indeterminacy of slope at' the first and last points on an open curve. For a closed curve (option B), the point information at the beginning of the sequence must be retained by the ReGIS interpreter so that the closed curve will have a continuous first derivative at the end point. Determining the slope of open curves at the end points is handled in the following manner: o The curve segments from the start to the second point and from the penultimate to the last point are not drawn. These point pairs (first and third, and second next to last and last) are used to define the slope of the curve at the second and penultimate points. o The begin and end points may be visually included in the curve by using the "null" point syntax [J to indicate that the point is to be repeated in the sequence. In this case, the visual appearance of the curve at the end points may not be realistic, since the effects of doubling the end points bypasses the natural constraint of first order continuity and the intended shape of the curve. As a result of these constraints and conditions, ,at least three position arguments in addition to the current cursor position must be given to result in a visible curve segment between the second and third positions (the first position being the initial drawing position). One additional curve segment is then drawn for each additional position argument. For open curves, the current cursor position is always maintained at the last position argument given and thus leads the drawing process by one curve segment. For closed curves, the drawing position at the end of a closed curve command is not changed as a result of curve drawing. The value of the drawing position resulting from abnormal termination of a curve interpolation sequence, as by sending a parser synchronizing sequence, is not standardized and is ~hus device dependent. Despite the definition of curve constraints outlined earlier in this section, ReGIS does not specify the exact algorithm by which devices will implement curve interpolation. The exact curve sequence drawn varies depending upon the algorithm used, but this is not considered a problem, since the essential information content is shown in spite of minor variations in the curve path. Devices may implement more than one curve interpolation algorithm; these algorithms may be user selectable by option extensions. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.5.4.3 Page 8-80 Common 8.5.5.4.3.1 C(W) - temporary write options The drawing style of the lines which make up the curve or circle are controlled by the settings of the Write attribute controls. These settings may be temporarily modified by the use of the W suboption, just as in the vector instruction. 8.5.5.4.4 Volatility of C Instruction Options All options to the Curve and Circle commands are temporary, and apply only within the scope of the instance of the C command keyletter in which they appear. Specifically, arc and circumferential circle specifiers apply to all position or pixel specifiers that follow it until: a. These options are respecified. b. A new keyletter is encountered. c. The interpreter is synchronized to command level. momoomD 1M Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.6 page 8-81 TEXT INSTRUCTION The graphic text instruction, keyletter "T", draws characters starting at the current drawing position. strings of Each ReGIS device must have a built in character definition and writing capability. The default alphabet for writing is a full 8-bit encoded printing set, typically ASCII or some other base set in GL, and some supplemental set in GR. The recommended default and initial contents of the in-use table is ASCII in GL and ISO Latin-l Supplemental in GR. For products targeted for use in areas where these sets are not reasonable defaults, product-dependent initial and default values are allowed. Each character of the text string is written by placing the visual image of the referenced character at the current drawing position such that the upper left corner of the character cell coincides with the current drawing position. After writing the character, the drawing position changes to a point which would be the logical position for writing another character, normally horizontally a distance a little more than the visual width of a character. In an extended system, the color or intensity of text is determined by the setting of the Write attributes, W(I), just as are lines and -curves. ReGIS does not specify the size of the text, its spacing, or the number of rows or columns of text which must be supported on a given display surface. ReGIS text is meant to be used annotatively, that is, to supplement the drawing process, not as a high density verbal display medium. Only the capabilities expected of low resolution devices are specified in Base ReGIS. Variable character size, orientation, aspect ratio, and other factors are standardized in ReGIS extensions. Standard (default) character sizes are not defined by the ReGIS standard. Thus the drawing position resulting from the execution of a text string cannot be determined without knowledge of the target device or the detailed specification of text size and escapement. The quality of character representation at this level is also assumed to be poor and typically drawn as a sequence of short vectors or as a pixel pattern. ReGIS does not have the facility to choose among alternate typestyles (fonts) that may be stored in a device. ReGIS extensions do support the idea of down-line loadable character sets, which may be used to implement such a capability. Digital Internal Use Only EL-00070-0a 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.6.1 Page 8-82 position Arguments A position argument to the Text command specifies character escapement, that is, how much the drawing position moves after a character has been drawn. This measure is expressed in units of the imposed coordinate space. It defaults to rightward movement equal to the current width of the character display cell, and no vertical movement. This character to character movement defines what is known as "character path," and describes the orientation of the entire character string. It should not be confused with, nor does it affect, the orientation of the character cell baseline, which is not controllable in Base ReGIS, but is covered in ReGIS extentions. The presence of a bracketed argument to the T command is non-positional. Refer to the subheading 8.4.5.2 Use of Bracketed Extents for Non-Positional Information. This value is always considered relative, regardless of the presence or absence of sign characters on the X and Y parts. Any missing elements are interpreted as +0, that is, no escapement in that dimension. If character size options are supported, they also set character escapement as a side effect. Character escapement is returned to its default value when a valid S(A) operation is executed. 8.5.6.2 Numeric Arguments Numeric arguments to the Text command are interpreted as a form of pixel vector,·and cause special motion of the drawing point. This motion is equal to half the current character size. When character height and width are not equal, this movement will take on the proportions of the character cell. Movement is executed only when the pixel vector digit is encountered, and does not affect, nor is it affected by, the character escapement value. The direction of the 0 pixel vector is paral~el to, and in the direction of, the character baseline. (This reference is significant in ReGIS extensions, where the character baseline is not constrained to be parallel to the horizontal axis.) Numbers 1 through 7 step in equal increments, counterclockwise, as for normal pixel vectors. This argument can be used for superscripting and subscripting in text strings. 8.5.6.3 Quoted String Arguments Quoted string arguments to the Text command provide the character data to be displayed. Character patterns are retrieved from the stored alphabet (the last alphabet selected by T(A) if multiple alphabets are supported). AO is the default alphabet, and is the only alphabet required in Base ReGIS. The contents of the AO may be affected by state set external to ReGIS. mDmDomD™ Digital Internal Use Only EL-00010-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-83 Only within quoted strings used as arguments to the Text command are any control characters interpreted. Only four codes are used: carriage return, line feed, backspace, and horizontal tab: 1. The carriage return code resets the drawing position, both horizontally and vertically, to the value it had at the start of the current quoted text extent. 2. The line feed code moves the drawing position down one character height unit vertically, and saves this new position as that which will be restored should a carriage return code be subsequently encountered in the current quoted extent. 3. The backspace code moves the drawing position back character escapement step, both horizontally vertically. 4. The horizontal tab code moves the drawing position forward one character position, just as a space character would, but without drawing anything. The distinction between drawing a space and just moving the drawing position is significant when different drawing modes are considered. A replace mode space executes the background color into the drawing medium, while an overlay mode space or a horizontal tab in any mode do not. 8.5.6.4 8.5.6.4.1 one and Options T(A) - Alphabet selection Arguments to the Text instruction select among possible alphabets of characters. Extensions to ReGIS specify loadable alphabets. The only selection mechanisms in the ReGIS Base are among pre-loaded alternate character sets. The T(A) command has suboptions Rand L, each of which takes a quoted string argument, the tail of the reformatted ANSI designating escape sequence. The resulting format is T(A(L""» to select a character set into the left half, and T(A(R""» to select a character set into the right half. mDmDomD™ Digital Inte.rnal Use Only page 8-84 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Under the formats established by ISO 2022, a sequence of the form ESC I .•. I F is a character set designating sequence if the first intermediate (I) is from certain code positions in column 2 of the code table. This first intermediate identifies the type of character set and its G-set (GO, G1, G2, or G3) assignment. By replacing this particular intermediate with a character from column 3 of the table, the G-set assignment is ignored but identification of the character set type is retained. This technique is used in the DEC Common Font File Format (CFFF) for identifying character sets where G-set assignment is not a factor. The "tail" of the resulting sequence is everything except the introducing ESCAPE code. Without the ESCAPE code, the tail is clear text, and can be used as a string-type argument. The designating tail in the quoted argument to Land R must start with a legal first intermediate as noted in either of the two tables below. An incomplete or illegal tail will be ignored. There may be multiple tails in a single quoted argument, as multiple tails may be required to couple a character set selection with a version number tail, or to list alternative designations in a single command. The followin9 table lists the legal first intermediates (the "column two" intermediates) used in the normal character set selection scheme. Code Graphic Use 2/4 2/6 2/8 2/9 2/10 2/11 2/13 2/14 2/15 multi-byte set version number 94 character set, 94 character set, 94 character set, 94 character set, 96 character set, 96 character set, 96 character set, ------$ & ( ) * + / GO G1 G2 G3 G1 G2 G3 This table lists the r.eplacement intermediates (the "column three" intermediates) and their resulting character set assignments. Code Graphic Use 3/0 3/1 3/2 3/3 3/4 3/5 94 character set 96 character set multi-byte 94 character set multi-byte 96 character set complete code character set character set revision mDmDDmD™ ------0 1 2 3 4 5 Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-85 ReGIS has a single 8-bit in-use table with left and right halves. Use of these "new" intermediates from column 3 allows the categorization implied by GO-G3 to be ignored. Thus, the character set shifting controls, such as Shift In (SI), Shift Out (SO), Single Shifts (SSn), and Locking Shifts (LSn, LSnL and LSnR) are not supported. This is true regardless of which tail format is chosen. The character sets listed in the following table are required to be supported in all ReGIS implementations. The indicated designating tails are the column three tails, and are the preferred tails for use by new ReGIS creators. The older column two tails are allowed, but their use should be phased out. Tail Name of set/Source standard 00 04 05 07 09 00> OA OB 01 OJ OK OR OY Oz 0' 0%5 0%6 1A DEC Special Graphics DEC Dutch NRCS (optional) DEC Finnish NRCS DEC Swedish NRCS DEC French-Canadian NRCS DEC Swiss NRCS DEC Technical British NRCS/BS 4730 ASCII/ANSI X3.4-1986 JIS Katakana/JIS X 0201 JIS Roman/JIS X 0201 German NRCS/DIN 66 003 French NRCS/AFNOR NF Z 62-010 [1973] ISO Italian NRCS ISO Spanish NRCS Norwegian/Danish NRCS/NS 4551-1, DS 2089 ' DEC Supplemental/DEC STD 169 DEC Portuguese NRCS ISO Latin Alphabet Nr 1 Supplemental "Latin-1" is an allowed synonym for "Latin Alphabet Nr 1." DEC Dutch is not required to be supported in ReGIS, but '04' is the approved tail if it is supported. ReGIS devices supporting the Kanji Display Extension support the following character sets and designators. Tail Name of set/Source standard 20 22 2@ 2@ DEC DEC JIS JIS --------------------------Kanji Kanji Kanji Kanji 1978 1983 1978/JIS X0208-1978 1983/JIS X0208-1983 Digital Internal Use Only must also EL-OOG70-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The default state of the ReGIS character set table shall specified by the command Page 8-86 be that T(A(L"OB",R"lA"». This is equivalent to the 8-bit set Latin-I. The command T(A(L"OJ",R"OI"» puts JIS (Japanese) Roman in the left half and JIS Katakana in the right half of the ReGIS in-use table. This selection methodology extends to multi-byte support. The command T(A(L"(J",R"$+@"» uses the column two tails and selects JIS Roman into the left half and JIS X0208 (Kanji) into the right. The command T(A(R"SAIA"» uses a multiple tail to modify the selection of a multinational character set into the right half by preceding the Latin-l Supplemental tail with a version identifying tail. The above sequence would specify the second revision of the ISO Latin-l set. [This is just an example - as far as is known, the first revision hasn't even been considered yet.] Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.7 Page 8-87 REPORT INSTRUCTION The Report function is included to 'allow the user software interrogate the ReGIS device for state elements of interest. 8.5.7.1 position Arguments There is no meaning assigned to bracketed the Report command in Base ReGIS. 8.5.7.2 position 8.5.7.4.1 to to the Report Quoted String Arguments There is no meaning assigned to quoted Report command in Base ReGIS. 8.5.7.4 arguments Numeric Arguments There is no meaning assigned to numeric arguments command in Base ReGIS. 8.5.7.3 to string arguments to the Options R(M(x» - Report Macrograph state The contents of an individual macrograph is reported back to the controlling program by specifying the M option to the R command with a suboption keyletter which is the same as the name of the desired macrograph. The format of the report is @-@; which parallels the format of the macrograph definition, with substitution of an equal sign (-) for the colon (:). the In some systems, unrestricted allowanGe for reporting of macrograph contents will sometimes result in system security problems. Devices are therefore allowed the freedom to restrict macrograph reports. The preferred fallback is the empty report, that is, just the terminating CR character. An alternative is to report the macrograph as specified above, replacing each character in the macrograph with SPACE or some other printing character. This allows the user to verify the length of the stored macrograph, and might indicate the proper storage of the macrograph in question. Digital, Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The macrograph storage allocation may be the command R{M{=» Page 8-88 returned by specifying which returns a quoted string of the form "," where is the minimum guaranteed amount of space, in characters, still available for macrograph storage, and is the amount of space, in characters, allocated by the device for macrograph storage. It is not required that "" be accurate to the character count level, as long as its value represents a lower bound on the measure of available space. 8.5.7.4.2 R{P) - Report current Position The returned report is a bracketed position specifier of the form [x,y] representing the current drawing position in the imposed coordinate system. The parts, x and y, return in ReGIS-conforming numeric representations. If the drawing position has been moved into absolute negative coordinate space, the format of the report includes a signed number indicating this. Hence, in position reports signed numbers represent absolute, not relative, locations. 8.5.7.5 Further Notes All reports are terminated by a single carriage return character. Requests for unimplemented reports are acknowledged by the device's returning just a carriage return; this prevents device deadlocks by ensuring that an application will receive some response, even if the requested report cannot be generated. Multiple options or suboptions to a single interpreted as requests for multiple reports. R command are All devices must return a report for every option keyletter in the argument stream. Some forms of the report command define a report for every suboption letter as well, as is the case with macrograph reports. In the case of unimplemented reports, the device may not be able to discern how many reports are due, especially if suboptions are involved (as in the case of the macrograph report). Hence, software should request reports singly and in turn, so that only one report response is outstanding at any time. This will minimize the chance of deadlock or phase error due to unanswered reports. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-89 There are some classes of devices for which reports are not necessary or easily supported. Software to convert ReGIS files to some other graphic form, for example, might not have an identifiable return path for reports. Some devices are meant to be run spooled, and will not have the ability to provide reports in a timely manner, if at all. Though the ReGIS Report command is part of the ReGIS Base, it clearly cannot be supported in all environments. Lack of support for Reports in such environments does not constitute a failure to conform to the ReGIS standard. Digital Internal Use Only Page a-90 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.5.8 FILL INSTRUCTION The Fill instruction, keyletter "F", defines bounded areas by their edges. The command colors in only and entirely, subject to area texture or pattern in effect, the area (or areas) bounded by the edges presented. 8.5.8.1 Position Arguments There is no meaning assigned for bracketed position the Fill instruction in Base ReGIS. 8.5.8.2 to Numeric Arguments There is no meaning assigned for numeric instruction in Base ReGIS. 8.5.8.3 arguments arguments to the Fill Quoted Text Arguments There is no meaning assigned for quoted text arguments to the Fill instruction in Base ReGIS. 8.5.8.4 8.5.8.4.1 Options F(C, P, V ) - define filled area The actions of the P, C, and V commands inside the option extent of a Fill command mimic the actions of the Position, Curve/Circle, and Vector commands at command level. Instead of executing positions and drawing lines to outline an area or shape, these options define the extent of whatever figure would be drawn at command level, and cause that area to be executed as a filled area. Each P, C, or V option to the F command takes whatever subarguments' that would apply at the command level to define a shape and use that same argument in the context of executing the figure as filled, subject to some of the following constraints. a. Allowable suboptions V and P are stack controls V(B,E,S) and P(B,E,S); for C, closed and open curves, C(B,S,E), and arcs and circumferential arcs and circles, C(A,C). b. Write suboptions are allowable for all of V, P, and C in contexts where they make sense, as described in later sections. c. Allowable arguments for V, P, and position specifiers and pixel vectors. Digital Internal Use Only C are bracketed EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-91 The definition of a polygon boundary is determined by the edges described by the drawing options V, P, and C. These edges are determined by what would be drawn by the V and C options were they executed at command level. The P option modifies how position arguments to V and C may be interpreted, but no position specifier on a P option will be entered into the list of vertex list which describes the border. This implies that the current position in effect at the start of a polygon description is NOT automatically the first vertex of the defined polygon. If the current drawing position is meant to be that vertex, then an option specifier such as V[] (the empty brackets implying current position) must be the first executed position. The termination (closure) of the Fill command will close the polygon to this point. More explicit perhaps, is the form V(B) (with a matching V(E) at the termination) to apply the current position to start the polygon. During polygon outline definition the current position is updated as if the V, P, and C options to the F command were being executed outside of the F context. For Fill, no perimeter is drawn as a result of the boundary definition process or of the execution of the area defined. A perimeter, if desired, must be specified separately as a set of ReGIS commands (probably the same set,"as macrographs are useful here). Each device has some implementation limit on the number of vertices which can be stored before the filled figure can be executed. A conforming ReGIS device must provide for a vertex list with a capacity of less than 256 entries, but note that certain other implementation dependencies with regard to curve interpolation (noted below) could result in many fewer than 256 vertices available to software. (On the other hand, a device may save space in the vertex list by allowing consecutive vertices which map to the same physical pixel to be counted as a single vertex.) If the number of vertices generated exceeds the implementation limit, any additional vertices are ignored and the figure is closed and filled as if it had been terminated at the implementation limit. The remaining elements in the fill specification will be ignored. No further drawing will be attempted until terminating right parenthesis of the Fill option list is encountered or a synchronizing action is executed. Polygon fill must accommodate non-convex and self-interse·cting polygons. The interior of a polygon, that is, that area filled as a result of the polygon definition, is defined by the "even-odd rule," as follows. From any given point not on an edge of the defined polygon, consider a ray beginning at that point and extending in any direction to infinity. If that constructed ray Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-92 crosses an odd number of edges, then the specified point is inside the polygon, and it should take on the fill attributes of the polygon. If the ray intersects an even number of edges, the point is outside the defined polygon. Intersection of the ray with a vertex point or complete edge of the polygon provides information useful to resolve the even-odd rule only if the positions of vertexes adjacent to those intersected can be recognized as lying on the same side of the test ray or on opposites sides of it. If a ray intersects one or more vertex points, a new ray may have to be chosen. These rules suffice to distinguish the interior and the exterior of simple polygons, and also nested polygons, as may be described by the use of F(F), (a ReGIS Open extension for filling complex polygons). The current drawing position is saved at the beginning of an F command, and restored at the end of an F command, whether any drawing takes place or not. This behavior allows some degree of compatibility with older devices that do not implement the F command, and therefore simply ignore it. The state of the ReGIS position stack is not preserved by F commands. An implication of this activity is that position arguments may be passed into the polygon fill process by pushing them on the stack and popping them inside the fill process, and that position arguments may be passed out of the polygon fill process by pushing them inside and popping them after the Fill is complete. Any ReGIS command string that changes the state of the position stack within an F command will not be compatible with devices that do not implement the F command. A device that does not implement the F command will not recognize the V, P, and C options to the F command in their proper context, and hence cannot recognize stack operations in the option list either. The vertex list resulting from the interpretation of positional subarguments always represents a closed figure whether th~ drawing commands used to specify that vertex list represent a closed figure or not. If the commands used to specify a polygon do not represent a closed figure, for example, because of disconnected start condition on an open curve interpolation, the filling proceeds as if consecutive vertices had been connected by straight lines, possibly causing unexpected results. Digita1 Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-93 Curve and arc interpolations may, depending upon the curve and circle algorithms chosen in a device, generate multiple vertices per specified point. Such intermediate points will have to be counted against the implementation limit of the vertex list of the polygon filling process if the device must save them to compute the filled area boundary. The implication of this is that devices may need an device-dependent number of entries in the vertex list to accommodate a given ReGIS area definition. Devices should provide a greater number of entries in the vertex list to mitigate the adverse effects of such curve algorithm dependencies. Open curves used to define polygon boundaries must abide by the constraints for such curves defined in the section on the Curve command. For such curves, the current position at the beginning of open curve interpolation does not generate any vertices, but helps determine the slope of the curve at the next specified point. The first specified point does not generate any vertices, since it is the beginning point of the curve. Subsequent specified points then generate some number of intermediate vertices each, as in normal (unfilled) curve interpolation. The last point specified does not generate any vertices; it determines the slope of the curve at the next-to-Iast point specified. Thus the total number of vertices generated when n points are specified for open curve interpolation is (n-2)*m, where m is the number of intermediate points per specified curve segment. In order to connect different types of open figures, such as V and C(A) sequences, it is sometimes necessary to use the P option to reset the current drawing position. Repositions via P may also be needed when it is desired to draw both a polygon and its outline using the same command string. Temporary write options may be specified as options of the of the F command itself, F(W ..• ), or as temporary write suboptions to the C option, F(C(W .•• or V option, F(V(W ... These forms are all equivalent and all supersede each other. Temporary write options are canceled by a new command keyletter. », ». A right parenthesis at the option level terminates an option list and causes a filled polygon to be drawn. The filled polygon is drawn using the write options (including temporary write options) in effect at the time the right parenthesis is encountered. The only element of the write options which takes effect at the time it is encountered, rather than at polygon execution time, is the pixel vector multiplier, which conditions any pixel vectors used in defining the polygon boundary. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-94 The area texture used to fill the polygon is variable by product classification. ReGIS devices that support the Raster Extensions use the interior style set by the area texture argument to the W(S) option, the same option used to enable shading. The "snapshot" of attributes established by enabling shading applies to polygon fill. An area texture is established by invoking shading and disabling it, as by the command fragments W(Sl,SO) or W(S"x",SO). See subheading 8.7.2.4.2.3, W(S) - Shading for a description of the shading snapshot. Devices that do not support the Raster Extensions may elect to fill with a solid color or intensity, or they may define a set of hatch patterns if solid fill is not appropriate. If a synchronizing semicolon is encountered (or external resynchronization occurs) before the terminating right parenthesis, the F command is aborted and no drawing takes place. Digital Internal Use Only 'EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.6 Page 8-95 THE EXTENDED LOGICAL GRAPHICS DEVICE This section describes extensions to the Logical ReGIS Graphic Device required to accommodate specific graphical features not common to all devices. This section is an illustrative presentation to follow for extending ReGIS to device capabilities not described here. The case of raster CRT devices is covered in some detail to fully illustrate the process of extending ReGIS. 8.6.1 DIMENSIONAL DISPLAYS "Dimensional displays" refers to the class of graphics devices in which the physical size of pixels has a repeatable meaning and allows the user a variety of pixel sizes. Examples of such devices include both paper and photographic plotting devices. ReGIS could be extended to accommodate these devices by allowing definition of the size of pixels in physical dimensions. By knowing the number of pixels selected by the screen coordinate definition operation and their size, the device is then able to determine the size of paper needed to draw the image. The units of the physical measure should be optionally selectable by the user, with the metric system being a likely default. These devices also will generally allow (and need) the width of line segments to be user controllable. This feature has been included in Open Extension to ReGIS as an option to the writing attributes instruction. 8.6.2 GRAY SCALE AND COLOR The simplest model of color capability is that of a plotter device using different colored pens to draw on different colors of paper. In this case, the paper represents the background color and the pens represent the foreground colors. Monochrome devices often have the ability to show varying intensity levels of light, called gray scale. More complex devices, such as high resolution color raster devices, have the ability to present a full range of color hues in addition to the gray scale (intensity) capability. momDomD™ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.6.2.1 Page 8-96 Selection Scheme To accommodate this broad range of capabilities, the extended ReGIS logical device adopts a scheme to allow the selection of color and gray scale in a simple manner for simple devices, but still .has full access to the broad spectrum of attributes of the most capable of the devices. a. Each pixel has associated with it a foreground and a background "intensity" attribute which are user controllable. The differentiation between foreground and background is most clear in the case of the plotter, and may have little meaning in a multiplane raster color device. b. For simple color devices, the scale of eight intensity values is interpreted as the three primary colors, the three complementary colors and the black and white intensity values. Mappings between gray scale and color should follow the conventions which have been established for photographic and broadcast television work. These are summarized as: Gray Scale o 1 2 3 4 5 6 7 Color Value Black (dark) Blue Red Magenta Green Cyan Yellow White This mapping is based on the standard RGB to luminance level transformation used in the North American television industry (NTSC color standard). The NTSC RGB to luminance equation is Y - 0.S9*G + 0.30*R + 0.11*B where Y is the luminance value, and G, R, and B are the green, red, and blue components of the color drive, respectively. When normalized to the range 0 to 7, the equation becomes I - 4.1*G + 2.1*R + 0.8*B where I is the resulting gray scale intensity for that range. The coefficients (rounded to 4, 2, and 1, respectively) lead to the encoding of the table above. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM -ReGIS GRAPHICS EXTENSION c. Page 8-97 For devices having a full range of color capability, the Hue-Lightness-saturation system of color definition is adopted. In summary, this system requires three possibly floating point numbers to be used in defining a specific intensity parameter value. These are: Hue (H) - the hue of the color expressed as an angle on the color wheel, Lightness (L) - the relative brightness of the color expressed as a percentage of full brightness, and Saturation (S) - expressed as a percentage of the fully saturated hue. The intensity parameter may be applied independently to the foreground and to the background of the graphic image. Devices have extreme ranges of implementation of the intensity attributes. ReGIS does not define how many colors or intensity levels must be provided by an implementation which offers color or gray scale support. 8.6.2.2 Color Specification There are two methods of specifying color or intensity in a graphics device: color by index, and color by value. Color by index is often used in multiplane bit map displays, or in hard-copy devices whose pens are selected by number. Color by value is used by implementations which have limited knowledge of the drawing hardware being used, but which need to specify colors or intensities to differentiate image components. ReGIS supports both color by index and color by value. 8.6.2.2.1 Color by Index virtually all graphics devices actually implement an indexed method of color selection. This index is translated into visible color by some hardware component, which mayor may not be modifiable by user commands. Video devices, for example, translate the index value stored as bit map contents into beam intensity or color gun selector by a digital to analog converter and/or a multiplexer. If the converter/multiplexer is hard-wired, the translation is not user modifiable, and the translation from index to color is fixed. If the converter/multiplexer contains an extra stage of indirection to allow the translation to be dynamic, the device is said to have an output map. If this map can be used to modify the translation of index to color under user control, it is a truly dynamic system. In any case, ReGIS requires that the mapping of index values to visible components be known to the implementation. Colors by index may then be executed into the display medium directly. Color by value specifications are referenced against the index to color translation hardware (or software/firmware translation table) and a resulting index deduced. The index is then executed into the display medium as if it had been directly supplied. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-98 In the case of an unsupported direct color or intensity specifier, the color map, whether hard-wired or user modifiable, should be searched to find the closest available color or intensity specifier. The "closest match" indicates the index value to be used. In monochrome systems, this "closest match" decoding is fairly simple, and either rounding or truncation may be used. The approach taken must be documented. In color systems, the concept of "closest match" is more complex. For example, if a degree of orange is requested but not supported, the goal should be to present some shade of red or yellow to approximate this request. If only shades of blue and green are available, however, the approximation has no clear solution Efforts should be made to prevent mismatches in requests for a foreground from collapsing to the background. If color mismatches are too great, matches based on the monochrome mappings of those colors might be used. The approach to be taken in such cases is device and device class dependent. In general, specification by index is implemented in ReGIS by form the I where I is the suboption identifier for intensity for both the Screen command, where it sets the background color, and for the write attributes command, where it sets the foreground. The range of values for. is device dependent. when an index exceeds the bounds of the device, the unimplemented index must be mapped back into the supported range. In systems which support only one visible color or intensity, any non-zero index should map to the visible value, and the zero index should remain zero. In systems with more than one bit of index specification, a modulus scheme should be used, wrapping out of bounds values back into the sup~orted range in a non-monotonic mapping. For instance, given a 4-intensity implementation and an 8-intensity stored picture, the following mapping would result: Ask Get o 0 1 1 2 2 3 4 3 0 5 6 1 2 7 3 The device class may determine whether the mapping is purely modular, or whether some other approach is more appropriate. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-99 For example, in a multi-plane bit map, pure modulus arithmetic is the most straightforward. A three plane system can accept indices in the range 0 to 7, as noted in the example table above. Mapping into these three planes by accepting only the low three bits of values greater than 7 is acceptable, though collisions between the wrapped foreground and the background may occur. On the other hand, a pen plotter is less likely to present such a problem, since the color of the paper is not likely to be the same as one of the loaded pens. 8.6.2.2.2 Color by Value Specification of color by value in ReGIS is more complex than color by index. Not only are colors more complex, but ReGIS supports two types of color specification, RGB and HLS. 1. The HLS form is: I(HLS is expressed in degrees, o to 360; and in percentage values, 0 to 100. A hue angle of zero degrees specifies blue, 120 degrees specifies red, and 240 degrees specifies green. The additive complementary colors magenta, yellow, and cyan, are positioned at 60, 180, and 300 degrees, respectively. t. The RGB form is: I(x) where x is a single letter color specifier for the RGB color alphabet: R, G, B, Y, C, M, W, or D for red, green, blue, yellow, cyan, magenta, white, or dark, respectively. Color suboptions must be completed within one suboption (one parenthesized range), and RGB and HLS color specifiers must not be mixed in the same suboption. RGB specifiers must not be quantified, nor may RGB specifiers be mixed to define color mixing. For example, the specifier RG does not imply Y. Digital Internal Use Only Page 8-100 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION HLS specifiers have the following defaults: a. If H or S is specified, but L is quantified, L defaults to 50. not specified or not b. If H is specified and quantified, and S is not or not quantified, S defaults to 100. c. If H is not specified or not quantified, S defaults to 0; H has no default. d. If none of H, L, or S is present, there is no default, and no action regarding that color specifier is taken. specified This rule will allow for extensions to the color specification alphabet by standardizing as yet unspecified suboption letters; the "no action" requirement protects backwards compatibility. Specification by index provides the most control over the device where the hardware use of the index can be known to the user, as in specifying plane-by-plane bit map contents. Specification by value provides the greater degree of transportability where the goal is to differentiate information and where the exact mapping of device capabilities is not known beforehand. 8.6.3 TEXT ATTRIBUTES Text attributes include a wide variety of features associated with the presentation of textual characters, including (but not limited to) any combination of the following: a. Variable character size including independent height adjustment. b. Variable character spacing including proportional spacing and letter-spacing. c. Angular orientation of characters and independent angular character spacing. d. National language character sets. e. Alternate representation fonts (Gothic, forth). . f. Superscript and subscript capability. g. Overstrike (underline, APL characters, and so forth). momDDmo TM Digital Internal Use Only width Futura, and and so Page 8-101 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION ReGIS can be extended to support such features in extension sets. The user should recognize that the degree to which a specific device supports these characteristics is extremely broad ,and is therefore one of the areas of image generation with the least portability. To support the majority of these features, an extended ReGIS device may support the definition of the following extended logical device parameters: 1. WIDTH - The width of the hypothetical which a character is written. 2. HEIGHT - The height of this parallelogram. 3. DANG - The direction of the character base line measured as an angle in degrees relative to the horizontal axis. 4. HANG - The direction of the height side of the character parallelogram measured relative' to the baseline direction, such as relative slanting of characters, as for an Italic representation. S. TDX - The relative horizontal spacing of two characters. 6. TOY - The relative vertical spacing of two characters. 7. FONT'- A scalar parameter used to identify which of several possible character representations is currently in use. Digital Internal Use Only parallelogram in EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.6.4 Page 8-102 AREA ATTRIBUTES This class of extensions refers to the general capability of many devices to associate attributes to areas bounded by ReGIS primitive line images. The visual attributes may include shading patterns, similar in concept to line patterns, and color and intensity variation. These capabilities are covered syntactically by other ReGIS extensions. ReGIS distinguishes three approaches to identifying the boundaries of an area: 1. SHADEd areas are defined to be the difference between two not-necessarily bounded vector or curve sequences. 2. FILLed areas are defined by either a connected sequence of vectors or a closed curve, or by a combination of connected vectors and open and closed curves. 3. FLOODed areas are defined by boundaries existing in an image without regard to what sequence of commands generated the elements of the boundary. The first case corresponds to the typical approach used to represent data as a "histogram" image. The second case corresponds to the common concept of bounded surface. The third case corresponds to after-the-fact coloring in of areas not necessarily bounded by a single command. 8.6.5 DYNAMIC ATTRIBUTES The area of dynamic attributes covers a broad spectrum of features which are illustrated at one extreme by "blinking" attributes and at the other extreme by a fully animated cartoon. The common point in ReGIS for such capabilities is that the foreground/background selector function may vary as a function of time. Using this model, the typical blink attribute is interpreted as a time-based modification of foreground and/or background visual attributes, while more complicated dynamic attributes could be considered as selectors acting on separately accessible foregrounds. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7 Page 8-103 REQUIRED EXTENSIONS FOR RASTER DEVICES This section describes a standard set of ReGIS instruction extensions to be used with raster CRT graphics devices. All commands under heading 8.5 Base ReGIS Instruction and all commands under this heading must be implemented as specified for a device to be certifiable as a ReGIS Raster Device. Heading 8.8 Open Extensions to ReGIS describes further extensions to ReGIS, some of which are applicable to raster technology, but which are not part of the required raster set. The additional capabilities addressed here include: a. Background and foreground gray scale and color attributes, b. Image dependent other extended erase), c. Area attributes for bounded and unbounded areas, and d. Text attributes and user definable characters. writing writing intensity attributes (complement), modes (replace, negate, and and All Base ReGIS commands apply to raster devices. Some raster commands modify or extend these base commands. Defaults for such new elements approximate as closely as possible the effects that would be achieved if the extension were not present. The original intent of ReGIS Raster Extensions was to capture the capabilities found in most raster video devices. Since the original adoption of ReGIS, monochrome bitonal raster printers have become a major presence in the industry. The ReGIS Raster Extensions focus on video-like capabilities, but the limitations of bitonal hard copy is considered as well. Digital Internal Use Only Page 8-104 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7.1 SCREEN INSTRUCTION Raster scan extensions to the screen instruction allow setting a background intensity (color and/or gray scale value) and the introduction of a time base for ReGIS execution. 8.7.1.1 Position Arguments There is no significance to the presence of a bracketed position argument in the Screen Instruction Extensions for Raster ReGIS. 8.7.1.2 Numeric Arguments There is no significance to the presence of a numeric argument the Screen Instruction Extensions for Raster ReGIS. 8.7.1.3 Quoted Text Arguments There is no significance to the presence of quoted text in the Screen Instruction Extensions for Raster ReGIS. 8.7.1.4 8.7.1.4.1 in arguments Options S(A[][]) - Screen Address definition Display address definition in Raster Extensions works as it does in Base ReGIS, but sets to defaults the following Raster Extension state elements: a. The device writing mode is set to its device default. This is overlay, if possible, with replace as second choice. Negate mode is disabled. Equivalent explicit command: b. W(V,NO) or W(R,NO) Background color (or gray value) is set to its device dependent default; this default is visually distinct from the default foreground color or gray value. Equivalent explicit command: typically, alternatively, S(I«default color spec») c. S(IO); The foreground color (or gray value) is set to its device dependent default; this default is visually distinct from the default background color or gray value. Equivalent explicit command: typically, W(I'), specifier») are not background The intensity parameter in the screen instruction uniformly changes the background intensity of th~ graphic image. The result is the same as loading a certain colored piece of paper into a plotting device. This parameter may be changed during the process of drawing the image to define the color value of the "off" pixels in a line pattern, or the background color to the rectangle which Digital Internal Use Only EL-0·0070-0831-Mar-1988 VSRM - ReGIS 'GRAPHICS EXTENSION Page 8-106 encloses a character, but if transportability is to be maintained, no essential information content should be placed in such a dynamically defined background attribute. In either case, the action of a screen etase operation is to use the then current background intensity to uniformly define the background color and/or gray scale. Refer to subheading 8.6.2 Gray Scale and Color for the distinction and color by value (I«color between color by index (I that exceed the implementation limit. The default value for background is device dependent, but it be visually different from the default foreground color. default value takes effect when a valid S(A) is executed. 8.7.1.4.3 S(T is the number of device dependent timer "ticks" for which ReGIS interpretation should be suspended. The intent is to allow presentation timing to be done at the end of the transmission latency path. in other words, at the device. The number of ticks is measured from the time the S(T is device dependent, but it should be in the tens of milliseconds range. For video devices, could most likely be measured in frame times. The target increment for timer values should be 20ms +/20% (15-25 ms). Devices must accept and properly execute values of as large as 2000. At 60 ticks per second, this allows for pauses of up to about 30 seconds. Longer pauses are not expected to be used to correct for device latency, but for software timing purposes, and must be controlled by host software. mDmDomD™ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7.2 Page 8-107 WRITING ATTRIBUTES INSTRUCTION Raster extensions to the writing attributes instruction allow access to a wide range of capabilities of CRT devices, including image color, gray scale, the simple blink dynamic attribute, memory modification, and area filling. 8.7.2.1 position Arguments There is no significance to the presence of a bracketed position argument in the writing Attributes Extensions for Raster ReGIS. 8.7.2.2 Numeric Arguments There is no significance to the presence of numeric the writing Attributes Extensions for Raster ReGIS. 8.7.2.3 arguments in Quoted Strings There is no significance to the presence of quoted string arguments in the writing Attributes Extensions for Raster ReGIS. 8.7.2.4 Options 8.7.2.4.1 writing Mode Options "Writing modes" are the detailed actions of execution into or onto the drawing -medium. Some drawing modes are insensitive to the presence of previous image contents, others are intimately coupled to prior contents. 8.7.2.4.1.1 W(C) - Complement writing When writing, use ones in the pattern register or cell to complement the contents of the pixels present in the image. Ignore zeros in the pattern register or cell; ignore the current foreground and background intensity specifiers. 8.7.2.4.1.2 W(E) - Erase Writing When writing, ignore the contents of the pattern register, and Erase each pixel to the background specifier if W(NO) is in force, or write each pixel with the foreground specifier if W(N1) is in force. 8.7.2.4.1.3 W(N and . The default value for the foreground specifier is device dependent, but must be visible and distinguishable from the default value specified for the background by S(I). The default value is set whenever a valid S(A) is executed. 8.7.2.4.2.3 W(S The default value for restored on a valid S(A). is zero, and this value is If a received value of exceeds the range implemented in a device, or is not specified, then the option is ignored and the previous state value is l~ft unthanged. For suboptions Rand L (described in the ReGIS Base), is restricted to have a value of O. [Note that ReGIS alphabets are not now and have never been coupled to ANSI G-set selection; ReGIS alphabet numbering is an independent character set enumeration scheme.] Should the R or L suboptions be specified without a numeric on their A-option, the last set selected by T(A) is still selected. If the in the last T(A degrees to the An acceptable fallback is to limit angular resolution to a device dependent value, typically either 45 or 90 degree increments. When used in conjunction with the S option, string baseline is established. The default value is 0 degrees to the horizontal. This value is restored when a valid S(A) is executed. 8.7.3.4.4 T(E) - restore saved Text attributes Restore text attributes that were in effect when the last previous B option was encountered. If there was no previous B option specified, the default values for all states are restored. Repeated T(E) commands without intervening T(B) commands will restore whatever was saved by the last T(B), or the defaults if there has been no previous T(B) since power up. 8.7.3.4.5 T(H times the leaving the character width standard-size-1 cell height, unchanged. T(S) changes the entire character display cell size; T(H) changes only the height, the width remaining as set by T(S). The value may have a fractional part, but truncation to the next lower integer is allowable. Devices must accept values for in the range of 1 to 25; conforming software will not use values outside of this range. Values larger than 16 should be 'implemented by use of the T(S[]) construct. This state has no default value, as the default for T(S) applies. 8.7.3.4.6 T(I degrees, referenced from the perpendicular to the baseline and measured from the upper left corner of the character cell. mDmDomD™ Digital Internal Use Only EL-0007Q~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION page 8-115 Positive angles cause the characters to appear to slant backwards. A zero returns the specifier to rectilinear. Resolution of italic angle may be device dependent, and angles greater than 45 degrees (positive or negative) may be taken to be exactly 45 degrees (positive or negative). The default value for this state is 0 degrees (upright); this default is restored when a valid SeA) is executed. 8.7.3.4.7 T(M[]) - set Text pixel Multiplier Multiply each pixel from the stored character image width by hint, and each pixel from the stored character height by vint. This is a non-positional use of bracketed extents. Both the standard-size-1 unit cell (character image) and the standard-size-1 display cell (character image plus intercharacter background) are scaled according to these multipliers. If either or is missing, that value is interpreted as whatever value is appropriate for standard size 1. This function provides for compatibility with older implementations of ReGIS. The preferred mode of character scaling is by use of cell unit size and cell display size, T(U) and T(S), respectiv~ly. 8.7.3.4.8 T(S[]) - set Text display cell Size Set display coordinates, effect. cell size in the current screen addressing but oriented with respect to the value of T(D) in This is a non-positional use of bracketed extents. The display cell is that area of the display affected by the writing of a character. It comprises the unit cell (see T(U[]), below) and whatever background area is required to achieve the extent defined as the display cell. Display cell size must be executed to within one physical pixel of the size specified; there is no fallback, as is allowed for the scaling of the unit cell. Refer to "further notes," below, for more on display and unit cells. If either or is missing, the missing values default to the values that correspond to the (device dependent) standard size 1, as would be set by T(Sl). Maximum values of and are determined by the arithmetic capacity of the ReGIS device and the current imposed coordinate space, that is, 16 bit integer arithmetic. Default text display cell size is device dependent, and the default is restored on execution of a valid SeA). 8.7.3.4.9 T(S times standard size 1 character width, and the height to be three-quarters of times character height standard size 1. This element also sets a device dependent character escapement value; this es~apement is relative to the character direction specified by the D option. "Standard size Digital Internal Use Only Page 8-116 EL-0007Q-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION zero", SO, is implemented as the smallest possible character rendering on the device. As for the H option, the argument may be fractional, but may be truncated to the next lower integer if the implementor chooses. Devices must accept values for in the range of 0 to 16; conforming software will not use values outside of this range. A value of zero for may have special, device dependent meaning. Values larger than 16 should be implemented by use of the T(S[) construct. 8.7.3.4.10 T(U[ or is missing, the missing values default to the values that correspond to the (device dependent) standard size 1, as would be set by T(S1). Maximum values of and are determined by the arithmetic capacity of the ReGIS device and the current imposed coordinate space, that is, 16 bit integer arithmetic. Default text unit cell size is device dependent, and the default is restored on execution of a valid S(A). 8.7.3.4.11 T(W«suboption») - temporary Write options Set temporary writing controls, as in the Vector command. 8.7.3.5 Further Notes A text "display cell", specified in terms of height and width (using screen addressing coordinates) by T(S[]), is the screen area to be written for each character. A text "unit cell", specified similarly by T(U[,), is the screen area in which the image from character storage is drawn. See Figure 8-8. If these two cells are not of identical size, the unit cell is upper-left justified in the display cell, with any display cell area not filled by the character image explicitly filled with the background color. If the unit cell is larger than the display cell, only the upper left portion of the character image is drawn; that is, the unit cell is-clipped to fit in the display cell. Digital Internal Use Only . Page 8-117 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION In the computational limit (that is, where the granularity of scaling arithmetic is continuous and not bound by pixel increments), the display cell and the unit cell should map to identical sizes. An acceptable fallback for less capable systems restricts Unit cell sizes to integral multiples of the character storage cell defined for the character set by Load Pattern command, L[,]. A unit size that does not represent such an integral multiple may be rounded down to the nearest integral multiple value. Implementations may choose to round up if the target size is only slightly less than the closest realizable size, and if the resulting unit cell would not exceed the display cell. The display cell must be executed to within one physical pixel of its specified size. The L command defines bit patterns; these are invoked by the T command and as area shading patterns in the W(S'x') command. Alphabet set 0 contains an 8-bit character in-use set. The content of this set is as determined by the ReGIS Base command T(A(L"*",R"*"». All sets except alphabet 0 may be loaded using the L command. See the· description of the Load command for further information. Different alphabets may be simultaneously and execution. . available for loading ~ 1 J Cell Display and Unit Size Display size LARGER tnan unit size Cell Display and Unit Size Display size SMALLER tnan unit size Figure 8-8: Character Display and Unit Cells ~DmDDmDTM Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7.4 Page 8-118 REPORT INSTRUCTION There is one option to the report command in Raster ReGIS not in the ReGIS Base. It reports back the saved names of the loadable character sets. 8.7.4.1 R(L) - Report selected Loading alphabet Report back the name of the pattern set currently selected for loading. The format of the report is (A'') where is the name provided in the L(A'') command. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.7.5 Page 8-119 LOAD CHARACTER SET INSTRUCTION A ReGIS device may implement several alphabets. These altern~te alphabets are selected for drawing using the "A" option with a numeric subargument in the text instruction. The alphabet numbered 0 may not be modified, though the defined font is implementation dependent. ReGIS allows the non-Base alphabets to be loadable. If the Load character set command is implemented, then provision for at least three loadable alphabets must be made. Loadable alphabets and name tables, as defined by L(A"name"), may have device dependent initial contents, but they must be volatile and subject to overwriting. The general syntax of a load instruction is the letter "L" followed by the ASCII character index, as a quoted character, which will be used to refer to the character. This is then followed by a sequence of numeric parameters, each individual numeric specifying a single row in the character pattern. The most significant bit is the leftmost displayed pixel; the first parameter is the top row of the character. Parameters are hexadecimal integers separated by commas. 8.7.5.1 Position Arguments A bracketed coordinate specifier defines the storage size, in bits per character, to be used with the selected alphabet. This is a non-positional use of bracketed extents. The selected alphabet is cleared when its storage size is specified. The storage size determines how many bits, and how many rows of bits, are encoded into the character mask arguments of the Load command. The storage size maps to the unit cell size when characters are displayed. Negative values are not allowed in storage cell sizes, and the default values for storage cell sizes are device dependent. 8.7.5.2 Numeric Arguments Each character cell is redefined by a string of bit patterns expressed as groups of ASCII hex digits (0 •.• 9, A •.• F or a f). A cell is terminated by a semicolon or a successive parenthesized option specifier or quoted character specifier. Note The semicolon is required to terminate the Load command because of the nonstandard nature of the numeric arguments that form the bulk of the Load command format. Digital Internal Use Only Page 8-120 EL-OO·070·-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Groups of hex digits, each of which specify the contents of one scan line of the character cell, are separated by commas, or by exceeding the maximum number of hex digits needed to specify one scan line. If, in a given device, the default storage size were 12 horizontal by 10 vertical, 3 is the maximum number of hex digits needed to specify one scan line. A fourth consecutive hex digit would be applied to the next scan line whether or not an intervening comma were encountered. Where the default storage size is not known, storage size should be specified, or commas should be used to separate scan line specifiers. Cells are always loaded one row at a time using hex-ASCII characters. A cell map is specified from the top down, more significant bits leftmost in the specifier string. a. If more hex digits are specified than are needed for a single line of the mask, the extra digits are used on the next line. b. However, if the width of the character cell is not a multiple of four, any unneeded, low order bits of the last hex digit applied to that row are discarded, and NOT carried over to the next row. Each raster row is begun with a new digit. c. If too few digits are specified to fill a row, they fill the low order portion of the mask, setting the high order portion to zero. d. If fewer mask lines are specified than exist in a cell, the unspecified portion of the cell is cleared to zero. e. If more lines are specified than will fit in the storage cell, these extra lines are ignored - NOT overflowed into the next sequential character. Figure 8-9 shows storage cell. the format of the raster-oriented cell origin 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 o 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -first scan 1 0 0 0 0 0 0 0 0 -last scan ~~low digit high digit Sample character "F" Figure 8-9: Character Storage Cell mDmDDmD™ Digital Internal Use Only character Page 8-121 EL-00070-08· 31-Mar-1988 'VSRM - ReGIS GRAPHICS EXTENSION 8.7.5.3 Quoted String Arguments A single quoted character serves as the index into the character set selected for storage. It will be the same character used for recovery of the loaded cell in the Text and write attributes Shading commands. If more than one character is present in a string, the first is used, and the rest are discarded. Separate character arguments are required to specify multiple mappings. 8.7.5.4 8.7.5.4.1 Options L(A for loading. If loadable alphabets are provided, at least three must be provided, and they must be numbered 1, 2, and 3. Different alphabets may be simultaneously selected for access (by T(A» and loading (by L(A». L(A) and T(A) have no effect on each other. The default character set selected for loading is 1, and this default is set when a valid S(A) is executed. If a specified value for exceeds the implementation limit, the value is ignored and the alphabet selected for loading is the same as the one selected before the out of range value was received. 8.7.5.4.2 L(A"") - associate with Alphabet Associate , which may be up to ten characters long, with the character set currently selected for loading. Both and may be specified in the same option, but if is specified first, it is associated with the currently selected set, not necessarily the one specified by . . 8.7.5.4.3 L(E parameter determines the greatest number of characters which can be stored as part of the selected alphabet. The selected alphabet is cleared when the extent is redefined. The range of the extent begins with the space character (code value 2/0), and comprises characters. The ninety-fifth character position is code 7/14, the ninety-sixth is 7/15, the ninety-seventh is 10/0, the 191st is 15/14, and the 192nd is 15/15. Codes progress in order between those values. Extents greater than 96 represent character values beyond the 7-bit set, and these characters must be accessed by 8-bit codes. Codes 7/15 and 15/15 might not be encodeable in quoted string arguments depending upon the ReGIS user's environment, but devices shall make these code positions available. The default extent for each loadable alphabet This default is set only at power up. mDmDomD™ Digital Internal Use Only is 96 characters. EL-00070-08 VSRM - ReGIS 8.8 G~PHICS 31-Mar-1988 EXTENSION Page 8-122 OPEN EXTENSIONS TO ReGIS The following specifies functions of ReGIS which have been used in product implementations or are standardized for future implementations, but are not required for conformance with any particular level of ReGIS. Extensions related to device technology not necessarily universal to devices which use that technology are described, as well as extensions which are potentially useful but not clearly called for on a cost/benefit analysis. 8.8.1 SCREEN INSTRUCTION Position arguments to the Screen control command allow the devices the dynamic capability of performing screen motion, as in the case of text scrolling or "strip chart" generation. The range of implementation is very broad, ranging from no implementation at all to the full scale "panning" operation of allowing the operator to move the viewing window through a much larger image definition. There are two models for the scrolling of data in a display: a. Coupling the displayed data and display addressing, decoupling both of these from the display. and A displayed entity has a fixed relationship to the address at which it is written. A line drawn from location [100,120] to [200,250], for example, will always maintain those end points, regardless of how the display addresses are moved about the display. This model is similar to drawing a picture on graph paper and viewing it through a rectangular window that can expose all or part of the graph paper behind it. Any new information is written on the graph.paper, and the lines on the graph paper are used to address the display space. The origin is always fixed inrelatiort to the graph paper, but the paper can be moved about behind the viewing rectangle, modifying the viewer's perception. If the viewing rectangle exceeds the boundaries of the graph paper, either the opposite edge of the graph paper wraps in, or the view is truncated. b. Coupling the display addressing and the decoupling these from the displayed data. display, and The display (the viewing window in the example above) and its addressing scheme are coupled. When data move, they do so in a manner which moves them from the address at which they were executed. mDmDOmD TM This follows the addressing scheme of most text terminals. As data are entered at the bottom, for example, on line 24, old data move up through the address space to line 1 and off the top. Line 1 is always at the top, and line 24 is always at the bottom. Recovery of data moved off the display by scrolling in the opposite direction cannot be guaranteed. Digital Internal Use Only EL-00070-08 VSRM - ReGIS GRAPHICS 31-Mar-1988 Page 8~123 E~~ENSION In summary, the windowing model may extend into a general window to viewport model, the scrolling model mimics the use of text terminals for display. The appropriateness of either model depends upon the goals and capabilities of the underlying hardware. Neither model is preferable or prerequisite to the other. Neither model is required; devices may elect to not move data in their displays at all. 8.8.1.1 Position Arguments In the first data movement model above (the windowing model), position arguments specify an address in the display address space where the origin of the viewing rectangle is to be positioned. Data appear to move left as the origin moves to the right, but since the data and addresses move together, data are generally recoverable by reversing the direction of the movement. In the second data movement model above (the scrolling model), position arguments specify an address in the display address space which will become the new origin. As in the windowing model, data appear to move to the left as the origin is moved to the right, but in this model the data cannot necessarily be recovered by reversing the scrolling, since the data may have been moved off and erased from the display medium. If data choice support option, movement is supported in a ReGIS implementation, the of models .used is device dependent. If the hardware can both models, the model in effect is chosen by the S(D) described below. 8.8.1.2 Numeric Arguments Numeric arguments to the Screen control command are treated as pixel vector specifiers. They are considered to be equivalent to relative address specifiers and are executed as a relative bracketed position argument. The data movement model chosen is· the same for pixel vectors as it is for position specifiers. 8.8.1.3 Quoted String Arguments There is no significance to quoted string command in Open Extensions to ReGIS. 8.8.1.4 ,8.8.1.4.1 arguments to the S Options S(A) - screen Address definition The prime function of the screen addressing command in Open Extentions to ReGIS is as it is in the Base. The following states representing Open Extensions are reset to defaults as a result of the execution of the execution of a valid S(A). Digital Internal OseOnly Page 8-124 - EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION The equivalent ReGIS command that would institute this setting shown after the defined action. a. is Blink attribute is set to off. Equivalent explicit command: b. Line width is set to nominal. Equivalent explicit command: c. W(L1) Shading state is set to disabled. Equivalent explicit command: d. W(AO) W(SO) The clip rectangle is set to the range indicated by S(A), and clipping is disabled. Equivalent explicit enabling S(A[][]» command: <[][] S(R[][ ]0) as in e. The display offset or scroll state is set to match the first coordinate of the S(A[][]) to the upper left hand corner of the display. f. Data movement control is value. set to its Equivalent explicit command: S(D1), supported; else S(DO), windowing) g. Cursor visibility is set to ON, and the are selected. Equivalent explicit command: h. device dependent scrolling default (if cursors S(C(H1)(I1)1) Screen scaling is set to 1. Equivalent explicit command: S(Sl) The color output map is NOT AFFECTED by executing an S(A). 8.8.1.4.2 S(C) - visible Cursor control Most interactive devices support a visible cursor that identifies either or both of the current drawing position or an input track position. The C option to the Screen control command implements access to this facility. A numeric subargument to the C option enables and disables the visible cursor. S(C1) enables the cursor display, S(CO) disables it. The default value for cursor visibility is enabled. mDmDomD™ Digital Internal Use Only EL~00070-08 31-Mar-1988 Page 8-125 VSRM - ReGIS GRAPHICS EXTENSION Suboptions and'subarguments to the S(C) command allow for selection among different cursor representations, simultaneously different cursor representations for output input tracking indicators. the and and Cursor Capabilities are Guidelines The display actions of cursors should be tailored to the device being-designed and to its intended usage. The mechanisms and actions for cursor display described in this section are quite complex and potentially expensive to implement. While the ReGIS syntax describing the selection mechanisms has the force of a standard, the display actions of cursors as regards blinking, multiple colors, and such may be taken to be guidelines, s~bject to modification as needed for product implementations. a. Suboption S(C(H selects among predefined cursor styles. A value of zero or one for selects a diamond shaped cursor with a small crosshair inscribed. This is the default cursor shape, and is selected after a valid S(A) has been executed. The diamond cursor is normally no more than a half inch or so in size. A value of 2 for selects a full screen cross hair cursor. This cursor is composed of two lines, one horizontal, one vertical, that intersect at the drawing position. b. Suboption S(C(I selects among predefined cursor styles. A value of zero or 1 for selects a the diamond cursor identical to the diamond output cursor. This too is the default cursor, and is selected after a valid S(A) has been executed. A value of 2 for selects a full screen cross hair cursor, again identical to the related output cursor. A value of ,3 for selects a rubber band line, and a value of 4 selects a rubber band rectangle as the input echo cursor. The two rubber band styles are anchored (the first end of the line and one corner of the rectangle) at the output drawing position in effect at the start of the input operation. The other end of the line and the diagonally opposite corner of the rectangle track the input position. c. Additional subarguments to the S(C(I)) and S(C(H)) commands allow for program defined cursors. The cursor is defined by a pair of characters (a single quoted string) and an offset position. The two characters are mDmDDmo TM Digital Internal Use Only EL~00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-126 overlaid, with each one being rendered in a different color or intensity if color or gray scale is supported. If the implementation chooses to blink its cursors, the two characters should alternate between the two colors in opposite phase. The characters come from the alphabet currently selected for drawing by T(A). The offset is the distance, in character cell pixels, from the or1g1n of the character cell to the point that will be tracked for output or input. This distance is always relative to the displayed location of the overlaid character pair. For example, S(C(I[+4,+8]"?-"» defines and selects an input cursor composed of an overlaid ? and., with an offset of four horizontal pixels and eight vertical pixels from the corner of the overlaid cells to the tracking position. The command S(C(H[+O,+O]"OX"» defines and selects an output cursor composed of an overlaid 0 and X, with the tracking location at the upper left hand corner of the character cells. d. 8.8.1.4.3 Applying the offset and quoted string subarguments of the S(C(H» and S(C(I» forms to the S(C) command directly, as by S(C"XO"[+4,+4]), enables the capabilities as described immediately above, but for all possible cursors at once. This is an acceptable fallback for devices that do not have separate output and input tracking cursors, or may be used as a shorthand way of controlling both cursors at once. Note that the anchor point for rubber band output cursors is not specified by this standard. Likely choices might be the screen origin, the screen center, or the top point of the current position stack. S(D argument to D is 0 for systems which couple data and addresses, and allows data to be recovered by reverse scrolling. This is the windowing model, and is most useful in conjunction with the Screen Scaling option, S(S), below. An argument of 1 indicates that the scrolling model should be used, where the address space and the visible display are coupled, and the data change addresses as they move about the screen. If neither model is implemented, the option is ignored. If a device supports both modes, the default value is 1 (scrolling model); this default is set when a valid S(A) is executed. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.1.4.4 page 8-127 S(H«suboptions»[][]) - retransmit Hard copy The hard-copy option retransmits the visible image on the display surface to a second display device. This command is primarily for dot matrix transfer of images to hard-copy devices, but may also be used to store the image on another medium. The format of the retransmission, its encoding, or its media are all excluded from specification by ReGIS, though Sixels are the implementation choice in video terminals and host-based ReGIS systems. The hard-copy option may have up to two bracketed position specifier arguments which specify two opposite corners of a rectangular subset of the screen area. These position specifiers delimit the area of the display surface to be retransmitted. If only one position specifier is given, the rectangle is defined by that position and the current drawing position. If no position specifiers are given, the whole visible screen is output. Numeric arguments to the H option are NOT interpreted as pixel vector specifiers for purposes of specifying an area of the display for output. A suboption P[,) specifies a starting offset for the graphics image when output is re-directed. The value specified refers to the offset to be executed on the device to which output is redirected. The values specified in the brackets are not necessarily those of the imposed coordinate space, but ar~ implementation- and retransmission protocol- dependent. The upper left corner of the area retransmitted will be offset by the amount indicated in the P[,]. The value set by the suboption remains set until changed by the rtext occurrence of the P suboption, or until it is returned to its default by power up or execution of a valid S(A). S(H[][]) is a non-positional use of bracketed extents. The value specified is always interpreted absolutely, whether signed or not. Any missing part of the bracketed extent is interpreted as 0. The default value for the state set by (P[,]) suboption is [0,0). There is no standardized way to change the hard-copy offset without generating a dump, as the presence of the H option, necessary for the interpretation of the (P) suboption, has the primary meaning of "execute dump." The amount of graphic information ~etransmitted may, at the implementor's option, be limited by the visibility of the image on the primary presentation medium. For example, if, in a two plane video device, the output map (controlled by S(M)) is set such that only the data in one of the two planes is visible on the primary output medium, the implementation may choose to only retransmit the visible information. In such cases, the method and llmitations chosen must be clearly outlined in the product documentation. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.1.4.5 Page 8-128 S(M«color specifier») - modify the color Map This command modifies the output map for devices with modifiable output maps. Value specifies a device index, and is the HLS or RGB definition of that entry. The suboption alphabet for color specifiers is R, G, B, C, M, Y, W, and D for red, green, blue, cyan, magenta, yellow, white, and dark, respectively, and HLS for hue, saturation, and lightness. The interpretation for is the same as for the indexed values to the foreground and background color index specifiers, W(I) and S(I). If exceeds the number of entries in the selected map, it is mapped into the realized range as are the foreground and background indexes. Suboption A indicates which map is to be loaded for devices which have multiple maps. If A is not present, the primary map is used. If A is present without subargument, the primary alternate map is used. A color specifier must be complete in one suboption. The selected entry will generally be marked for loading when the terminating H)" is encountered, but the implementation may batch a series of «color specifier» sets and load all specified entries at once to reduce undesired image "staging" due to piecemeal map changes. The initial contents of all maps in a device is device dependent, bllt each entry in the map should be visually distinct from every other entry (and from the background, if it is mapped separately). This applies"unless there are more entries than supported colors, or unless the number of colors supported approaches or exceeds the "number visually distinguishable. Color maps are set to their defaults only at device power up. 8.8.1.4.6 S(R[][]) Rectangle define and enable/disable a clip A clip rectangle is a region of the display that can be used to limit the area that can be written. The S(R) command in ReGIS allows such a rectangle to be defined, and to enable and disable the limiting action. a. The bracketed extents in the S(R) command define the two opposite corners of a rectangle, the sides of which are parallel to the ReGIS coordinate axes. These are positional specifiers, and may use relative addressing. Both corners must be specified. If only one specifier is present, the extent of the clip rectangle is not changed. If more than two are present, only the last two are used. b. The numeric argument to the option is a switch to enable and disable clipping action. If is equal to zero, then clipping is disabled, and drawing actions can take place everywhere in the display. If is greater than mDmDomD TM Digital Internal Use Only EL-00070-0a31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-129 zero, drawing actions are limited to the interior of the specified clip rectangle. The "interior" of the clip rectangle is defined to include what would be drawn as the boundary of the clip rectangle. c. As an extension, values of less than zero indicate that drawing activity is limited to the exterior of the clip rectangle. This action is called "shielding." The exterior of the clip rectangle includes all the drawing area not in the interior (in particular, the boundary is NOT part of the exterior). d. The extent of the clip rectangle can be set by an instance of the command without changing the enabled state. For example, the command S(R[ ][+200,+200]) sets the clip rectangle to an extent 200 square, starting at the current drawing position, but it does not affect the state of the clipping activity. A subsequent S(R1) will enable clipping to this area, or S(RO) will disable clipping, without changing the extent. e. The clip rectangle maintains its position in the coordinate space, even if the display supports scrolling. The effect is that the clip rectangle moves with the data if the windowing model, S(DO), is supported, and the data move through the clip rectangle if the scrolling model, S(D1), is supported. In the latter case, data that move out of the clip rectangle never disappear just because of movement out of the clipping rectangle. f. Screen erase, S(E), always erases the entire display, regardless of the clipping state. Erase mode writing, on the other hand, is bounded by the clip rectangle if clipping (or shielding) is enabled. g. The default clip area is the extent defined by the last valid S(A) or the entire display surface, if no S(A) has yet been encountered. The default clip state is disabled, allowing writing to the entire display surface. Both defaults are restored by valid S(A) commands. 8.8.1.4.7 S(S«suboptions») - Scale the visible image This option is used for devices which can scale images after they are displayed. Taking the model of pixel replication, the subargument is treated as a multiplicative scale factor for each pixel in the display. When the S(S commands. Digital Internal Use Only EL-00070-0a 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.2 8.8.2.1 page 8-131 POSITION INSTRUCTION p(P identifies the drawing surface selected. All drawing surfaces share the same state store, that is, current drawing color, selected text alphabet, macrograph store, position stack, and so on. Digital Internal Use Only Page 8-132 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.3 WRITING ATTRIBUTES INSTRUCTION There are four instruction. 8.8.3.1 W(A greater than zero, set the blink attribute on all foreground data drawn until blink is disabled. Application of the blink attribute is disabled by W(AO), S(E), or valid S(A). Clearing the subsequent application of the blink attribute by W(AO) does not change the blinking status of any displayed elements, any more than changing the foreground specifier with W(I) changes the color or intensity of any pre-existing data on the display. The visible action of blink is implementation dependent. The alternation may be between foreground and background intensities, or between foreground and some other device-dependent setting. Interaction of the blink attribute with Complement and other image-content dependent writing modes is device dependent. Blink frequency and duty cycle are device dependent. 8.8.3.2 W(L is a multiplier of the device's nominal line width. Nominal line width is device dependent, and is normally the device's default line width. W(L2) sets a width twice the nominal width, W(L3) three times, and so on. Fractional line widths are allowed. For example, W(LO.5) specifies a width 50% less than nominal, and W(L1.5) specifies a width 50% greater than nominal. Devices that· do not support fractions may truncate to the next lower integer or round to the nearest integer, just as they do for other numerics. W(LO) selec~s the minimum imageable line width. mDmDomD™ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.3.3 Page 8-133 . W(S«suboptions») - shading The Shading option to the W command accepts subarguments indicating a shading reference line and shading texture. There are also suboptions to the W(S) form which indicate whether shading takes place to a horizontal line (the default), a vertical line, or to a point. The form W(S(Y) •.• ) indicates that the shading takes place to a horizontal reference line; this is the default. See Figure 7. The form W(S(X) ... ) indicates that the shading takes place to a vertical reference line. The form W(S(P) •.• ) indicates that the shading is to a point. These suboptions are volatile, that is, every invocation of shading assumes that shading is to a horizontal baseline unless a countering (X) or (P) suboption is provided. 8.8.3.4 W(W) - microcoded writing modes Detailed control of multiplane writing is enabled with the Write control option to the W command, W(W). The option W accepts a numeric index and suboptions P and N. The form of the instruction extension is W(W(P N, , and are indic~s for memory contents, typically bit plane values. If a pixel to be written has value before the write operation, it is written to value if the next value from the pattern register, area pattern, or character cell is a 1, or to value if the next masking value is a o. These settings override the last specified write mode control option (R, C, V, N, or E), but- only those entries explicitly loaded take effect. Any entries not loaded retain their settings as determined by the last effected writing mode command. Any writing mode command overrides all detailed settings. The default writing modes are reset when a valid S(A) is executed. mDmDomD™ Digital Internal Use Only page 8-134 EL-0007o-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 'I 1 1 1 8.8.4 TEXT INSTRUCTION [This section became blank as a result of the character support to Base ReGIS.] mDmDomD™ Digital Internal Use Only movement of 8-bit Page 8-135 EL-00070-08 , 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.5 REPORT INSTRUCTION 8.8.5.1 R(E) - Report Error This command reports back the last error encountered by the ReGIS parser. The format of the error report is "n,m", where n is a decimal digit string representing the error code, and m is a decimal digit string returning supplementary information. Except where noted below, this supplementary information is the decimal equivalent of the character code of the character flagged as causing the error. When it cannot be determined exactly what caused the error, 0 is returned in the error character field. Only the most recent error code is kept in the error report register. The error report register is cleared when ReGIS is synchronized by a ";" or by activation synchronization. The error report register is not cleared when the report is sent. The following are the reportable error codes: > o - no error: synchronizing returns O. > 1 No error has occurred since the last The supplementary error field operation. ignore character: encountered and ignored. An unexpected character was > 2 extra option coordinates: A command option that supports paired bracketed, extents (such as S(H[ ][]) or S(A[)[ ])) contained more than two coordinate pairs. The supplementary error field returns O. > 3 - extra coordinate elements: The syntax [,] contained more than one comma. Characters after the second comma up to the right square bracket (]) were ignored. The supplementary error field returns O. > 4 - alphabet out of range: The syntax L(An) or T(An) contained a~ al~haEet number "n" that was less than 0 or more than the implementation limit. > 5 alphabet attribute error: following is true: ,- At least one of the a. In the syntax L(An)[h,w] or L(An,Ex), the alphabet number "n" was zero. The attributes of the default alphabet (alphabet 0) may not be modified. b. In the syntax L[h,w], the implementation limit. height Digital Internal Use Only "h" exceeded the EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-136 c. In the syntax L[h,w], implementation limit. the width "w" exceeded the d. In the syntax L(En), the alphabet extent "n" exceeded the implementation limit. > 6 - reserved code > 7 - begin/start overflow: The implementation limit for position stack aepth was exceeded, that is, a V(B), V(S), P(B), or P(S) could not be processed because the stack was full. > 8 begin/start underflow: A V(E) or PtE) was encountered without a matching V(B), V(S), P(B), or P(S) preceding it. 8.8.5.2 R(I is FO, a flood will bounded by image areas represented by the background. If it is F1, the flood is bounded by any foreground value different from the seed value, or any foreground if the seed location has the background attribute. If the is I or I«color/intensity spec», the flood is bounded by parts of the image with the attribute so specified. mDmDomD™ Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-139 The default boundary for a flood is as set by F(B(F1)), that is, any foreground setting different from the seed. value. This default is restored upon execution of a valid S(A). 8.8.6.3.2 Fill Extended Fill acts as Fill defined extension to support complex polygons. 8.8.6.3.2.1 in Base ReGIS, with an F( •.. F ..• ) - fill complex polygon A "complex polygon" is defined as a closed figure described by an explicitly disconnected set of edges. Many letterform shapes fall into this category. The letter "0," for example, may be described as two roughly concentric closed curves defining the outer and inner perimeters of the letter shape. The letter "B" may be described as two polygons within a third. Because of the interior rules for polygons, the letter Hi" may be defined as a complex polygon with disconnected but nested definitions for the body of the i and its dot. See Figure 8-11, below. The F option to the F command provides for a one-level deep recursion of polygon definition to allow for the description of such complex polygons. Further subarguments to the F option are the same V, P, and C options described above. The presence of the F option decouples the edge streams from one another. This allows nested polygons to be defined without the need for an invisible edge to connect the edge list definitions. The recursion of the F option need only be one deep because of the interior rules for polygons. The position of the F option within the F command is not critical as regards the ordering of the subpolygons. This is because of the interior rules and the deferred execution of polygons until the polygon fill terminator is encountered. Complex polygons must abide by the same constraints as simple polygons as regards the number of entries in the vertex list. The total number of vertices is the critical parameter. There need not be a separate vertex list for the nested polygons. Multiple nested polygons using the F( ••. F ... ) option are shown in Figure 8-11. Note that as the inner loop of the complex polygon is moved out of the outer, its interior takes on the interior attribute, until, when entirely outside, it becomes a disjoint polygon. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Figure 8-10: Simple Polygons mDmDomDTM Digital Internal Use Only Page 8-140 EL-00070-08. 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION P'age 8-141 Figure 8-11: Complex Polygons 8.8.6.3.3 8.8.6.3.3.1 Common F(W«suboption») - temporary write options Set temporary write options, as in the other drawing commands. ~DmDDmDTM Digital Internal Use Only page EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.8.6.4 8~142 Further Notes The Flood command uses as a flood pattern the last selected area shading pattern as defined by W(S where represents an ANSI X3.64-like parameter string encoding device controls, and the for ReGIS is lower case "p". A ReGIS interpreter must recognize two flags encoded in the first numeric parameter if one is present in the invocation stream. mDmDomD™ Digital Internal Use Only ' EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Page 8-144 If the least significant bit of the numeric value is a '1', then the interpreter shall force an environmental resynchronization before interpreting any following ReGIS instructions. This level of resynchronization takes place regardless of the previous state of the interpreter, and returns the interpreter to the highest command level with no quoted strings or macrograph definitions in process. This resynchronizing mechanism shall be implemented in all ReGIS interpreters that use DCS/ST delimiting. If the second least significant bit of the numeric is '1', the interpreter shall process the ReGIS instructions as it otherwise would, but should also pass along the source ReGIS stream to a text display process for display as text. This simultaneous display action is useful for debugging software using ReGIS on terminals and other interactive devices. This concurrent display action is not mandatory for ReGIS interpreters, and is obviously not applicable in all instances. ST is encoded as ESC \ and is the standard terminator for the collection of sequence strings. ANSI escape All characters within this sequence following the protocol selector, up to but not including the string terminator are interpreted as ReGIS instructions. Although an entire screen image does not have to be included in one invocation of these sequences, individual instructions should not be broken up across escape sequence boundaries. Some implementations may require that leaving ReGIS and re-entering via ST and DCS cause the parser to resynchronize, as if a semicolon were encountered within the instruction stream or as if a resynchronizing parameter were included in the invoking DCS. Some devices scan for and parse ANSI-mode escape and control sequences while interpreting ReGIS. Some of these devices execute escape sequences as if the devices were not in ReGIS mode, and return to ReGIS mode after such execution. Other devices use the occurrence of any escape code, code position 1/11 or 8/* or 9/*, as reason to exit the ReGIS mode. Such use may be necessary to support non-conforming software, but such use is deprecated by this standard. Digital Internal Use Only Page 8-145 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.9.2 BOUNDED SYSTEMS ReGIS is also intended for use in bounded systems even if no remote communications link is involved. Therefore, images defined in a bounded system may be used in distributed systems and vice versa. In the realm of such bounded systems, ReGIS should for the following purposes: be considered a. Graphics text file definition of a graphic image. b. Direct use of ReGIS instructions in high level languages when no embedded graphics statements are provided. c. Communication of a graphics image to a separate device. graphics It is assumed that such a device should have a ReGIS interface "driver" to convert the character strings originating at any of these sources to the native graphics hardware instructions of the system. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10 Page 8-146 ReGIS COMMAND COMPLEMENT The' following sections summarize the assigned ReGIS elements. Each section outlines a separate command. In ReGIS, a command keyletter can take four forms bracketed extent, numeric, quoted string, and options. of argument: parenthesized Numeric arguments are classified by semantic use, vector, scalar value, boolean, switch, or other use. Parenthesized options contain keyletters, each followed by any of the four argument forms. of command as which pixels can be Indenting of the construct identifiers indicates its applicability and scope, as if in an outline. Thus indented under each keyletter will be one or more of [] (for bracketed extent), n (for numeric), nn (for quoted string), and () lfor options and further nesting). Under a () line or subline will be the subarguments and suboptions that apply in that option. The text on the right describes the capability encoded by the construct(s) on the left. Part of this description will be an indication of where that construct is defined and what conformance level of ReGIS it applies to. The notation {B} indicates the construct is part of the ReGIS Base; {R} indicates the construct is part of Raster ReGIS, and {OJ indicates the construct is part of Open extensions to ReGIS. Unless otherwise indicated, all constructs have the conformance level of their parent construct. Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.1 Page 8-147 SCREEN INSTRUCTION screen control commands {B} screen data movement {OJ pixel vector, screen data movement {OJ S [] n ( ) screen coordinate definition {B} coordinate extent (two [] required) {B} cursor control {OJ boolean - cursor enable/disable text character used for cursor A [] C n "" ( ) H "" [ ] I "" [] D n E F n H [] drawing position cursor control (as for S(C""» (as for S(C[]» input tracking cursor control (as for S(C""» (as for S(C[]» data movement mode {OJ data movement mode selector erase display {B} feed medium/image complete {B} value, frames to advance medium image retransmit {OJ area of display to retransmit (lor 2) ( ) P destination image offset destination image offset vector I background intensity selector {R} n value, background index' () color/intensity specifier RGBCYMHLSDW (the ReGIS color/intensity alphabet) M load output color map {OJ n value, output map entry index () A select alternate output map value,alternate map id n RGBCYMHLSDW (the ReGIS color/intensity alphabet) R control drawing clip area {OJ n tri-state value: shield, clip, disable [] define clip area (2 needed) S scale display {OJ n value, scale factor () X scale in X direction X direction scale factor n Y scale in Y direction n Y direction scale factor T suspend interpretation for a time {R} n value, suspension interval temporary write options W* [] *Temporary write options apply as they would if set by a W at command level, but only for the duration of the current command. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.2 Page 8-148 POSITION INSTRUCTION All Position components are defined in the Base, except as noted. Position instruction drawing point destination pixel vector, drawing point destination P [] n ( ) B E P S w* position stack push position stack pop change drawing/display surface {OJ position stack push temporary write options *Temporary write options apply as they would if set by a W at command level, but only for the duration of the current command. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.3 Page 8-149 WRITING 'ATTRIBUTES INSTRUCTION W Write attributes instruction {B} ( ) A n C E F n I n ( ) RGBCYMHLSDW L n M n N n P n set writing mode to blinking {OJ boolean, enable/disable blink set writing mode to complement {R} set writing mode to erase {R} enable foreground planes {R} value, foreground mask select foreground color/intensity {R} value, foreground index foreground color/intensity value (the ReGIS color/intensity alphabet) define line width {OJ value, line width set pixel vector multiplier {B} valu~, pixel vector multiplier set writing mode negate {R} boolean, negate enable/disable select line drawing pattern {B} value or bit pattern, selects pattern () M n R S n "" [ ] ( ) X Y P v W n ( ) P n N n ~DmDDmDTM select pattern element multiplier value, pattern element multiplier set writing mode replace {R} set area operation shading {R} boolean, enable/disable shading select area pattern for shading select shading baseline modify shading baseline selection {OJ shade to X shade to Y shade to point select writing mode overlay {R} set microcoded writing modes {OJ before-writing pixel contents after-writing pixel contents if pattern element is 1 value of new pixel contents if pattern element is 0 value of new pixel contents Digital Internal Use Only EL~00070-0~ 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.4 Page 8-150 VECTOR INSTRUCTION All Vector components are defined in the Base. Vector instruction draw line to end point pixel vector, draw line to end point V [] n () B E S w* position stack push draw to position stack top entry, pop push empty entry to position stack temporary write options *Temporary write options apply as they would if set by a W at command level, but only for the duration of the current command. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.5 Page 8-151 CURVE INSTRUCTION All Curve and Circle components are defined in the Base. Curve/Circle instruction operating point of curve or circle pixel vector, operating point C [] n () A n B C E S w* limit circles to circular arcs value, degrees of circular arc begin closed curve interpolation circumferential circles end curve interpolation start open curve interpolation temporary write options *Temporary write options apply as they would if set by a w at command level, but only for the duration of the current command. Digital Internal Use Only EL~00n70~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.6 Page 8-152 TEXT INSTRUCTION T Text Instruction {B} set character-to-character escapement {B} pixel vector, character position offset {B} text to draw {B} [] n "" ( ) A select character set {B} select alternate character set {R} n () L R "" B D n E H n I n M [] S n [ ] U w* "" [] select standard character set into GL {B} character set identifier select standard character set into GR {B} character set identifier save current text state {R} set character/ line baseline direction {R} value, angle of baseline direction restore saved text state {R} set character drawing height {R} value, character drawing height select character slant {R} value, character slant angle select character mask pixel multiplier {R} pixel mask multiplier set character drawing size {R} value, character drawing size multiplier character display cell size set character unit size {R} character unit size temporary write options *Temporary write options apply as they would if set by a w at command level, but only for the duration of the current command. Digital Internal Use Only EL-:00070-:08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.7 Page 8-153 REPORT INSTRUCTION Report instruction {B} R () report error status {OJ report alphabet selected for loading {R} set input mode {OJ boolean, input mode report macrograph contents {B} E L I n M () x macrograph name report drawing position {B} I report input position {OJ P () mDmDDmD™ Digital Internal Use Only EL-00070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.8 Page 8-154 FILL/FLOOD INSTRUCTION F Fill instruction {B} / Flood {OJ flood source position {OJ pixel vector, flood source position {OJ [ ] n () flood boundary condition {OJ B () flood to foreground or background boolean, foreground/background selector flood to index I value, index of flood boundary condition n () color/intensity of flood boundary RGBCYMHLSWD (ReGIS color/intensity alphabet) F fill complex figure {OJ () (as for normal fill option list) specify filling boundary {B} PVC** temporary writing options W* F n *Temporary write options apply as they would if set by a W at command level, but only for the duration of the current command. **Filling boundary is specified by the same Position, vector, and Curve/Circle formats as would be used to draw the outline alone. Digital Internal Use Only EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION 8.10.9 Page 8-155 LOAD CHARACTER SET INSTRUCTION All Load character set components are specified in Raster ReGIS. L Load character cell [] specify character cell size n numeric (special radix), character cell data () A select alphabet for loading associate name reporting name with alphabet "" n value, alphabet to be loaded E set size of character set to be loaded n value, number of characters Digital Internal Use Only EL-09070~08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION momODmD™ Digital Internal Use Only Page 8-156 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Section Absolute ~ocation definition, 8-12 Active Position definition, 8-12 Alphabets, 8-119 Application Free Primitives definition, 8-12 Area Attributes, 8-102 ASCII Character Set, 8-29, 8-37, 8-81, 8-119, 8-121 ASCII Code, 8-22, 8-29, 8-30, 8-112, 8-119 Base Logical Device, 8-34, 8-35 definition, 8-12 Base ReGIS, 8-23, 8-34, 8-37, 8-47, 8-58, 8-64, 8-69, 8-74, 8-87, 8-98, 8-103, 8-112 Batching Commands, 8-42, 8-128 Bracketed Pair definition, 8-12 C(A), 8-76, 8-77, 8-90 C(B), 8-77, 8-90 C(C), 8-76, 8-77, 8-90 C(E), 8-77, 8-90 C(S), 8-77, 8-90 C(W), 8-78, 8-80 Cartesian Coordinate Grid, 8-33, 8-59 Chain Encoding, 8-52, 8-67 change bars, 8-12; 8-13, 8-14, 8-21, 8-23, 8-29, 8-30, 8-32, 8-33, 8-34, 8-35, 8-37, 8-38, 8-39, 8-41, 8-42, 8-44, 8-45, 8-46, 8-52, 8-53, 8-57, 8-58, 8-59, 8-65, 8-66, 8-67, 8-73, 8-75, 8-78, 8-79, 8-81, 8-83, 8-88, 8-90, 8-92, 8-93, 8-96, 8-97, 8-98, 8-99, 8-100, 8-103, 8-107, 8-111, 8-112, 8-113, 8-114, 8-115, 8-116, 8-117, 8-120, 8-124, 8-127, 8-128, 8-131, 8-132, 8-134, 8-136, 8-138, 8-139, 8-143, 8-144 mDmDomD™ Page Index-:-1 Index Character Cell, 8-24, 8-82, 8-114, 8-120 Character Codes ReGIS, 8-29 Character Fonts, 8-38, 8-100 Circle Constructs, 8-24, 8-74, 8-76 Circle Instruction, 8-20 Closed Curve Sequence definition, 8-12 Color HLS, 8-13 Color by Index, 8-97 Color by Value, 8-97 Color Capability, 8-23, 8-35, 8-69, 8-95, 8-128 Command Keyletter definition, 8-12 Complement writing definition, 8-12 Cross Reference, 8-29, 8-34, 8~37, 8-38, 8-39, 8-42, 8-43, 8-46, 8-52, 8-57, 8-59, 8-64, 8-72, 8-82, 8-94, 8-103, 8-106, 8-109, 8-138 Current Location definition, 8-12 Curve Instruction, 8-20, 8-48, 8-74, 8-75, 8-80 DEC STD 169, 8-11 Device Attributes, 8-69 Dimensional Displays, 8-95 Display Cell, 8-116 Display Surface, 8-33, 8-59, 8-81 definition, 8-12 Drawing Instructions, 8-55 Drawing Position, 8-52, 8-75, 8-77, 8-81, 8-88 Drawing Primitives, 8-22, 8-74 Drawing Process, 8-32, 8-36 Dynamic Attributes, 8-102 EBCDIC Code, 8-37 Echo definition, 8-12 Digital Internal Use Only Page Index-2 EL-00070-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Eight Bit Encoding, 8-43, 8-70, 8-121, 8-143 Engineering Change Orders (ECOs), 8-57 Erase writing definition, 8-12 Errors, 8-46, 8-50, 8-51, 8-63, 8-68, 8-74, 8-88, 8-113 reporting, 8-135 Extended Logical Graphics Device, 8-35, 8-95, 8-100, 8-102 Extensions to ReGIS, 8-23, 8-31, 8-37, 8-95, 8-101, 8-102, 8-103, 8-104, 8-107, 8-118, 8-119, 8-122, 8-132 Graphics Pipeline, 8-22 definition, 8-13 Gray Scale, 8-69, 8-95, 8-103, 8-104, 8-106, 8-107 definition, 8-13 Hard-copy Devices, 8-65 Hard-copy devices, 8-127 High Level Languages, 8-30, 8-31, 8-145 HLS, 8-99 defaults, 8-100 definition, 8-13 Hue, 8-13, 8-99 Implementation Dependent, 8-32, 8-35 Installation Environments, 8-143 Intensity Attributes, 8-35, 8-81, 8-96, 8-97, 8-98, 8-103, 8-109 F(B), 8-138 F (C), 8-90· F(F), 8-139 F(P), 8-90 F(V), 8-90 F(W), 8-141 Figures Figure 8-1, 8-16 Figure 8-10, 8-140 Figure 8-11, 8-139, 8-141 Figure 8-2, 8-54 Figure 8-3, ·8-60 Figure 8-4, 8-62 Figure 8-5, 8-77 Figure 8-6, 8-108 Figure 8-7, 8-109, 8-110, 8-133 Figure 8-8, 8-116, 8-117 Figure 8-9, 8-120 Fill, 8-102 definition, 8-12 Fill Instruction, 8-138 Flood definition, 8-12 Flood Instruction, 8-138 Foreground, 8-35 Foreign Codes, 8-37 L(A), 8-105, 8-113, 8-117, 8-118, 8-121, 8-135 L(E), 8-113, 8-121, 8-135 Landscape Mode definition, 8-13 Lightness, 8-13, 8-99 Line Pattern definition, 8-13 Line Patterns, 8-71, 8-122 Load Instruction, 8-21 Logical Graphic Device definition, 8-13 Logical Graphics Device, 8-32, 8-33, 8-34, 8-95 Graphic Character definition, 8-13 Graphic Text definition, 8-13 Graphics Cursor definition, 8-13 Graphics Devices, 8-23, 8-31 Natural Image, 8-10 Numeric Arguments, 8-30, 8-45, 8-67, 8-82 mDmDomD™ Macrograph definition, 8-13 Macrographs, 8-30, 8-38, 8-39, 8-49, 8-51, 8-87, 8-88 Modal Options, 8-48 Multiplane Displays, 8-35 Multiplane writing, 8-133 ' Offset Digital Internal Use Only EL-000.70-.08:.~.. . . . 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION definition, 8-13 Open Curve Sequence definition, 8-13 Open Extensions, 8-122, 8-131, 8-132, 8-134, 8-135, 8-138 Overlay writing definition, 8-13 P(B), 8-65, 8-68, 8-77, 8-90, 8-136 P(E), 8-68, 8-77, 8-90, 8-136 P(P), 8-131 P(S), 8-68, 8-77, 8-90, 8-136 P(W), 8-68 Picture Element definition, 8-14 Pixel, 8-10, 8-33, 8-34 definition, 8-14 Pixel Aspect Ratio, 8-63 Pixel Image, 8-69 Pixel Sizes, 8-34, 8-55, 8-70, 8-95 Pixel Specifiers, 8-80 Pixel vector definition, 8-14 Pixel Vectors, 8-46, 8-52, 8-54, 8-69, 8-73, 8-75, 8-76, 8-82, 8-112, 8-123, 8-130 Plotting Devices, 8-52, 8-95 Portrait Mode definition, 8-14 Position Address definition, 8-14 Position Arguments, 8-43, 8-52, 8-55, 8-58, 8-59, 8-69, 8-73, 8-75, 8-77, 8-87, 8-88, 8-104, 8-107, 8-110, 8-119, 8-123, 8-127, 8-138 Position Instruction, 8-20, 8-67 Position Stack, 8-55 Position Value, 8-68 Protocol definition, 8-14 Quoted Strings, 8-29, 8-38, 8-39, 8-43, 8-58, 8-68, 8-75, 8-83, 8-87, 8-107, 8-143 R(E), 8-135 R(L), 8-118 mDmDDmD™ Page Index-3 R(M), 8-87 R(P(I)),8-136 R(P), 8-88, 8-137 Raster Device definition, 8-14 Raster Devices, 8-23, 8-34 Raster Scan defini tic;:m, 8-14 Reference Standards, 8-11 ReGIS definition, 8-14 ReGIS Arguments, 8-21 ReGIS Philosophy, 8-22 ReGIS Syntax, 8-29, 8-37 Relative Location definition, 8-14 Remote Graphics Devices, 8-19 Replace Writing definition, 8-14 Report Instruction, 8-21, 8-87, 8-118, 8-135 Required Extensions, 8-103 Reset definition, 8-14 RGB, 8-99 S(A), 8-31, 8-33, 8-53, 8-58, 8-59, 8-61, 8-64, 8-69, 8-113, 8-125, 8-129, 8-132, 8-135, 8-136 default set, 8~64, 8-68, 8-69, 8-71, 8-82, 8-104, 8-106, 8-107, 8-108, 8-109, 8-111, 8-113, 8-114, 8-115, 8-116, 8-121, 8-123, 8-124, 8-126, 8-127, 8-130, 8-133, 8-139 S(C), 8-124 S(O), 8-123, 8-124, 8-126, 8-129 S(E), 8-65, 8-68, 8-111, 8-129, 8-132 S(F), 8-65 S(H), 8-54, 8-66, 8-109, 8-127, 8-135 S(I), 8-104, 8-105, 8-109, 8-111, 8-128 S(M), 8-109, 8-127, 8-128 S(R), 8-124, 8-128 S(S), 8-124, 8-126, 8-129 S(T),8-106 S(W), 8-130 Digital Internal Use Only EL-OQ010-08 31-Mar-1988 VSRM - ReGIS GRAPHICS EXTENSION Saturation, 8-13, 8-99 Screen Instruction, 8-20, 8-58, 8-104, 8-122 Screen Setup Command, 8-36 Scrolling Data, 8-122 Seven Bit Encoding, 8-43, 8-121, 8-143 Shading, 8-102, 8-109, 8-121, 8-133 definition, 8-14 Sixel definition, 8-14 Sixe1s, 8-127 Synthetic Graphics, 8-10 T(A), 8-65, 8-82, 8-83, 8-105, 8-111, 8-113, 8-117, 8-126, 8-135 T(B), 8-105, 8-114 T(D), 8-105, 8-114, 8-115, 8~116 T(E), 8-105, 8-114 T(H), 8-110, 8-111, 8-114 T(I), 8-105, 8-114 T(M), 8-53, 8-110, 8-111, 8-115 T(S), 8-53, 8-105, 8-110, 8-111, 8-114, 8-115, 8-116 T(U), 8-53, 8-105, 8-110, 8-111, 8-115, 8-116 T(W), 8-116 Temporary Options, 8-48 Text Attributes, 8-100, 8-114 Text Instruction, 8-21, 8-81, 8-112, 8-119 Transportability, 8-22, 8-23, 8-24, 8-26, 8-31, 8~37, 8-59, 8-68, 8-100, 8-144, 8-145 definition, 8-14 Page Index-4 unit Cell, 8-116 V(B), 8-65, 8-73, 8-77, 8-90, 8-136 V(E), 8-73, 8-77, 8-90, 8-136 V(S), 8-73, 8-77, 8-90, 8-136 V(W), 8-73 Vector Instruction, 8-20, 8-73 Viewing Point definition, 8-14 Viewing Point Attributes, 8-32, 8-35 W(A), 8-124, 8-132 W(C), 8-107, 8-108, 8-111, 8-132, 8-133 W(E), 8-107, 8-108, 8~111, 8-129, 8-133 W(F), 8-105, 8-109 W(I), 8-104, 8-109, 8-111, 8-128, 8-132 W(L), 8-95, 8-124, 8-132 W(M), 8-64,8-69, 8-71 W(N), 8-104, 8-107, 8-108, 8-111, 8-133 W(P(M)),8-71 W(P), 8-64, 8-69, 8-111 W(R), 8-104, 8-108, 8-111, 8-133 W(S), 8-65, 8-94, 8-105, 8-109, 8-111, 8-117, 8-124, 8-133 W(V), 8-104, 8-108, 8-111, 8-133 W(W), 8-111, 8-133 Writing definition, 8-14 writing Attributes Instruction, 8-20, 8-69, 8-81, 8-98, 8-107, 8-132 Digital Internal Use Only EL-00CJ70.09 Digital Internal U. . Only 03-Aug-1990 DEC STD 070-9 VIDEO AND PRINTER SYSTEMS REFERENCE MANUAL - SIXEL GRAPHICS EXTENSION DOCUMENT IDENTIFIER: A-DS-EL00070-09-QOOO Rev A1, 03-Aug-1990 ABSTRACT: This section describes the Sixel Graphics Protocol, which forms an extension to the Level 1, Level 2, and Level 3 Character Cell Display service class. Sixel Graphics provide a means of encoding and displaying raster binary data on raster devices of various capabilities. APPUCABILITY: SARA Formal Cross-component Standard. Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. STATUS: APPROVED 03-Aug-1990; use VTX SMC for current status. This document is confidential and proprietary. and is the property of Digital Equipment Corporation. It is anunpublishecl work protectecl under the Federal copyright laws. COigitaJ Equipment Corporation. 1990. All rights reserved. Digital Intemal Use Only 03-Aug-1990 Digital Internal Use Only EL-00070-o9 DEC STD 070-9 Video and PrInter Systems Reference Manual - Sixel Graphics extension DOCUMENT IDENTIFIER: A-DS-EL00070-09-0000 Rev A1, 03-Aug-1990 Rev A, Rev A1, REVISION HISTORY: Document Management Category: Responsible Department: Responsible Person: 24-Nov-1987 03-Aug-1990 ECO Number CTS01 Terminal Interface Architecture (STI) VIPS Architecture Group Peter Sichel APPROVAL: This document, maintained by the VIPS Architecture Group, has been reviewed and recommended for approval by the General Review group for its category for use throughout Digital. Peter Sichel- VIPS Architecture Group Eric Williams - Standards Process Manager Direct requests for further information to: Peter Sichel Use $ VTX ELF for the latest location information. Use VTX SMC to order copies of this document from Standards and Methods Control. Send distribution questions to JOKUR::SMC or call DTN: 287-3724. II Il!la.. Digital Interna. Use Only 03-Aug-1990 CONTENTS 1 INTRODUCTION ............ '': . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 OVERVIEW ....................... : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1 1 2 GOALS OF THE SIXEL PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 TERMIN'OLOGY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 LEVELS AND EXTENSIONS . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 LEVEL 1 ......................................................... 4.2 LEVEL 2 ......................................................... 4.3 EXTENSION - COLOR .............................................. 3 4 4 4 5 SIXEL PRINTING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 PROTOCOL STRUCT1JRE ...................... ..... . .. .. . . ... . . . . . . . . . 6.1 SIXEL CONTROL STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.l.1 Example Sixel Control String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 FORMATING IN'FOR.M.A.TION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 MA.CRO PARAMETER................. ...... ..... ........... . . ...... 7.2 BACKGROUND SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 HORIZONTAL GRID SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 7 8 PICTURE DEFINI'l'ION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 SIXEL COMMANDS ................................................ 8.1.1 Repeat Introducer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2 Set Raster Attributes ............................................. 8.1.3 Color Introducer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.l.4 Graphics Carriage Return. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.5 Graphics Next Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 SIXEL DATA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Sixel Column Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 9 10 11 11 11 12 9 CODIN'G ISSUES . 9.1 CO CODES . . . . 9.2 GL CODES. . . . 9.3 C1 CODES . . . . 9.4 GR CODES. . . . ........................ ........................ ........................ ........................ ........................ 14 14 15 15 15 10 INITIAL STA.TES .................................................... 15 11 ANSI TEXT INTERACTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 ENTERING SIXEL MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 wmLE IN' SIXEL MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Printing at The Active Position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . 11.2.2 Right Margin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 Top Margin .................................................... 11.2.4 Bottom Margin ................................................. 11.3 EXITING SIXEL MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 16 16 16 16 17 17 ............................ ............................ ............................ ............................ ............................ Digital Intemal Use Only III EL.oo070009 03-Aug-1990 12 FALLBACK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 DEVIATIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.1 VT125 . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.2 VT240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.3 LASO . . . . . . . • . • . . . . . . . . • . . . . . • . . . . . . . . . . • . . . . . • . . . . . . . . . . . . • . . 12.1.4 LAlOO and LA210 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 CHANGE msTORY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.1 Revision AXll to.AXl2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INDEX Iv maDl1'" Digital Internal Use Only 17 19 19 19 20 20 20 20 03-Aug-1990 1 INTRODUCTION This document defines a method of defining and transmitting encoded bit map data over a communication line known as the Sixel protocol. All or portions of this protocol may be stored in files. This protocol is to be used in display devices (video and hardcopy) of various imaging (drawing) capabilities. In addition, it defines the relationship of this protocol to the ANSI Text presentation protocol While the Sixel protocol is not intended to be a part of the ANSI text protocol, there are certain interdependencies. - This document regroups several extensions made to the "Sixel Protocol", the original 7-bit black and white protocol (LA34/VK100), the 8-bit extension (LAIOO·V2), the variable aspect ratio extension (LAIOO·V2), the color extension (VT240), and finally a limited support for software-handled viewporting. 1.1 OVERVIEW The transmission of bit map data is one way of transferring visual information. It is required for natural images (pictures usually generated by scanning an original), or as a low level protocol for interfacing devices supporting different protocols, or when composition time is long compared to transmission time. The Sixel protocol allows devices to receive and print black and white or color bitmap data at various sizes over a stream-oriented communications line. Six bits of each 7-bit or 8-bit ~haracter code are used to represent bit map data, allowing the remaining values to be used to control the context of the communications line and to fit within the ANSI text syntax. The areas of interest when considering this protocol are: 1. Definjng the data, at a given quality level, with all attributes. Ensuring that an imaging device having the same capabilities as the generating device will produce an identical picture. 2. Positioning the data 3. Defaulting mechanisms when some data cannot be exactly reproduced, or some command cannot be executed. The structure of the protocol is intended to support a layered system approach, where there are several independent processes that define or interpret portions of the total data. For example, this allows the size of an image to be defined independent of the actual image definition. This implied scaling of bit map data is difficult to implement exactly and realizations will vary from device to device. The Sixel protocol allows considerable freedom in specifying the value and size of the bit data to be displayed. It is expected that most imaging devices implementing this protocol will not be able to image the bit map data exactly as specified for all possible parameter values. This limitation is usually due to device imaging resolutions, dot sizes and computational limitations. The common fallback will be for devices to image at integer multiples of the device resolution, but this standard does not prohibit more creative solutions. See the section on imaging fallback.s for the definition of proper fallback.s. Digital Internal Use Only 1 EL.o0070.09 03-Aug-1990 2 GOALS OF THE SIXEL PROTOCOL 1. 2. 3. 4. 5. 6. Provide a general purpose image data input for display devices. Be syntactically compatible with ISO 2022 code definition, and further to be compatible with ANSI XS.64 and ISO 6429. This supports the requirement that the protocol be transmittable on 7-bit stream-oriented serial lines, including control code (X-ON, X-OFF) flow control. Support screen size images from VT125, VT24X terminals. This size is 768 pixels by 240 pixels for the VT125 and 800 pixels by 240 pixels for the VT24X series. Both printed at a 2:1 pixel aspect ratio. It is a goal that any pixel value combination for rasters of this size be printable by conforming devices. In other words, 'picture too complex' for the above raster sizes is not permitted. The protocol should support any size rasters, although not all devices will be capable of displaying them. It is a goal that it be possible to relate the size and placement of the raster to the ANSI text coordinate space, but not that the individual pixels relate to the ANSI text coordinate system or characters. It is not a goal to allow modification to the rendition of characters imaged via ANSI text with pixels imaged via the Sixel protocol. It is a goal to allow independent control over the pixel definitions (shape and value of pixels) and the imaged size of the pixels. It is a goal to be compatible with previous devices supporting limited Sixel printing· LA34, LAl2. LAlOO, VT125, VT24O. 3 TERMINOLOGY Dot - The smallest displayable unit; a light dot on a screen, an iIik dot on the paper. Dots can be round, oval, square, rectangular, small or big. Pixel • The logical rectangular image area defined by each bit of Sixel data as intended by the generation software. The shape of a pixel is deftned by an aspect ratio, and has no size. Pixel Aspect Ratio - Defines the shape of the pixel as a ratio of the vertical side of the rectangle and the horizontal side. For example, a square pixel has an aspect ratio of 1 to 1 (or 10 to 10) and a pixel twice as high as wide has an aspect ratio of 2 to 1 (or 20 to 10). Pixel-Spot - The area that is actually imaged (printed) for each pixel. It has a shape (Round, oval, square.. ) and a size. The shape and size are totally device dependent, and mayor may not be related to the grid size. Grid· The positions on the display, where pixel-spots may be placed. These positions are dimensionless points, even though the pixel spots do have some size which may even exceed the grid size. The horizontal distance between the two positions is defined by the horizontal grid size parameter. The vertical distance between two positions is defined by the horizontal grid size parameter and the aspect ratio parameter. Digital Intemal Use Only 03-Aug-1ggo The distance between two positions can be bigger or smaller than the pixel-spot size. This relation is totally defined by the device, and may vary from device to device, and vary on the same device from one set of parameters to another. The actual grid sizes available on the device may not match the exact grid size specification. In this case, the device will select a grid which best represents the specified grid. This 'best fit' grid is often called the 'actual grid' or 'actual grid size'. Note that most imaging operations deal with the actual grid and not the exact specified grid. Grid Size - The distance between two adjacent grid points. The grid size may be different in the horizontal and vertical directions. Dot/Pixel/Pixel-Spot Relationship - An imaging device may use several dots to represent a single pixel via a pixel-spot. Multiple dots can be used to cover an area larger than a dot size, or to produce some level of darkness, or to obtain some level of scaling. Raster - All of the pixels used to define a single image. For purposes of this document, all of the pixels defined in a single Sixel control string. Raster Size - The resultant size of the raster after it has been printed based on the actual grid size. When used in the context of pixels not yet printed, it is just the number of horizontal and vertical pixels of the raster. Overlap - The percentage of the pixel-spot that is larger than the grid size. Overlap may be visually pleasing to smooth certain images, or may be used to cover device registration errors, or may be due to the device having a pixel-spot size more limited than the grid size. Sixel Active Position - The Sixel active position is that position to which the next Sixel is to be printed. The actual Sixel is printed with a vertical offset to the Sixel active position so that machines which use the baseline of a character for positioning in ANSI text mode will be compatible with devices that position based on the ascender height of the character. This offset is in the vertical direction, the amount of 70 decipoints (.0972 inch). (See section - ANSI Text Interactions, While In Sixel Mode). Picture Definition - This is all the data needed to describe the image, including colors, size, pixel aspect ratio, and encoded rasters (Sixel Data and Sixel Commands). It does not include formatting information such as position or actual presentation size. Sixel - A Sixel is a group of 6 vertical pixels represented by 6 bits within a character code. Sixel Data - This term includes only the encoded raster portion of the picture definitions. Sixel CommaDds - These are commands included in the picture definition which provide additional information beyond the encoded raster, such as color, line breaking, etc. 4 LEVELS AND EXTENSIONS While the Sixel protocol specification allows more device variations than the majority of the other SRM specifications, there are still several specific function sets that must be followed for compatibility. There are two levels and one extension defined for conforming devices. The levels are for variable grid size, while the extension is for color. Digital Internal Use Only 3 03-Aug-1990 4.1 LEVEL 1 Level 1 devices do not support the Set Raster Attribute command, Background Select, Horizontal Grid Size or Macro Parameter commands. Level 1 devices will parse these commands, but only print in one grid size. The level 1 grid size is that defined for Macro Parameter 1. 4.2 LEVEL 2 Level 2 devices support everything a Level 1 device supports, plus the Set Raster Attribute command, Background Select, Horizontal Grid Size and Macro Parameter commands. 4.3 EXTENSION· COLOR Color is an extension to either level 1 or level 2 devices. 5 SIXEL PRINTING Sixel printing consists of setting context and attributes for the pixels and then printing each Sixel in received order. A Sixel is a group of 6 vertical pixels represented by 6 bits within a character code. A one value for a bit indicates that a pixel-spot will be placed at the corresponding grid position, a zero will cause the corresponding grid position to be unchanged (not written). Upon entering Sixelmode, the current Sixel position is determined from the ANSI text position and is called the graphic left margin. The Sixel active position is advanced to the next horizontal grid position as each Sixel is printed. Also, there are a few line control commands that modify the Sixel active position. Positioning is always relative to the Sixel active position, and can not go backwards except for retu.rning to the graphic left margin via the graphic carriage return and next line commands. The color of a pixel-spot is determined by the currently selected color in the color map, as specified with a color specifier control code. The color map is defined by optional parameters of the color specifier. Note that all 1 bits of a Sixel are imaged in the selected color. Therefore, if the image is to have pixels of different color that fall within a single Sixel, only those pixels of the current color should be set to a 1, and the line of Sixel data sent again with a new color selector and the appropriate 1 bits set for this color. A line of sixe1s must be sent (with a graphic carriage retum between them), for each color that falls in the Sixelline. Horizontal and vertical direction follow the ANSI text horizontal and vertical axes at the time Sixel mode was entered, with Sixel drawing always proceeding from left to right, top to bottom. Digital Internal Use Only 03-Aug-1990 6 PROTOCOL STRUCTURE The data and commands of the Sixel. Graphics protocol can be conceptually separated into three primary fields: 1. Picture Definition • the body of the Sixel. protocol which contains all the information needed to reproduce the image, regardless of size. The Picture Definition includes Sixel data and Sixel. command codes. The Sixel data is the encoded image raster while the Sixel. command codes control how the raster will be interpreted. The picture definition is used by creation software, editing software, and imaging devices. It is intended that picture generating software will be able to create a file that contains the image defulition independent of formatting information. 2. Formatting information • This data is added to the picture definition by the page composition software, defining the size of the picture data. The size is included in the Protocol Selector (see the example below) so that the parameters may be added without affecting the picture definition data. In general, composition software need not interpret the picture definition data, although in certain cases it may need to determine the number of pixels in the picture definition by looking at the. pixel. extent parameters. 3. Positioning data • used by page composition software. The first pixel position is de1in.ed by the ANSI text active position at the time that the Sixel mode is entered. All other pixel positions are relative to the first based on the actual grid size and aspect ratio; 6.1 SIXEL CONTROL STRING The formatting and picture definition for a Sixel graphic is contained in a Device Control String (DCS) envelope as de1in.ed in the "Code Extension" section of this standard, DEC STD 070-3. Des Fo:matting Infor.mation Picture Definition ST DCS (9/0) is the ANSI Cl control that begins a Device Control String (may also be coded as ESC P (1111,510) in 7-bits). The Formatting Information is represented by one or more Device Control String parameters separated by semicolons ";" (3/11) as de1in.ed by the code extension layer. The final character of the DCS Sequence is q (7/1) which identi1ies the Control String as containing Sixel. data. The DCS parameters and final character together are called the Protocol Selector. The Picture Definition consists of Sixel data and commands as described in this standard. ST (9/12) is the ANSI Cl control that terminates a Device Control String (may also be coded as ESC \ (1111, 5112) in 7·bits). DlgItaIlntemai Use Only 5 6.1.1 Example Sixel Control Sb1ng ESC P Pal; P.2 ; Pn3 q "Pn4; Pn5 ; Pn6 ; Pn7 @@@@ee ESC' ', _ _~~~.-I , '_I Protocol Selector 1 '_I '-Ra~.-t-e-r~A-t-tr-ibu~-t-e-.- canmuLnd ',-=-~~-::--~I FOl:m&tting Info:z:mation Picture data S'1' '~~~~~~~~----~I Picture Definition Where: Psl Macro Parameter Selects from a list of fixed combinations for other parameters. Included for backward compat~ility. New software should always specify this by 0 (zero). Ps2 Background Select o device default action 1 no action (don't change zero value pixels) 2 set zero value pixelato background color Pn3 Horizontal Grid Size Given in units specified by ANSI SSO (default is decipoints, 1/720 inch). q Final Character of DCS Introducer Sequence " Sixel Control Code for Raster Attribute. Command Pn4 Pixel aspect ratio numerator (first parameter of Raster Attributes Command) Pn5 Pixel aspect ratio denominator Pn6 Horizontal Extent Number of pixels in image horizontally Pn7 Vertical extent Number of pixels in image vertically (last parameter of Raster Attribute. Command) 7 FORMATINGINFORMATION The formatting information currently consists of up to three parameters included in the Sizel DeS Introducer Sequence (Sixel Protocol Selector) by the page composition software. The following sections de1ine each parameter of formatting information. 7.1 MACRO PARAMETER The first parameter (Macro parameter) selects from a list of fixed combinations of values for other parameters in the Sixe1 data. This parameter exists for compatibility reasons and is to be set to zero in new software. New software is expected to define the three parameters explicitly. Explicit parameter de1iDitions over-ride the macro settings. The following table defines the intent of the macro value: 6_- Digital Internal USe Only 03-Aug-1990 Macro value Horizontal Grid. Size Pixel Aspect Ratio (X .001") Vert pix 7.5 7.5 3 4.5 0 (d.efault) 1 2 3 4 6 5 7.5 6 9 7 10.5 12.0 13.5 8 9 200 200 450 300 250 200 150 130 ll2 100 Horz pix 100 100 100 100 100 100 100 100 100 100 The intended vertical grid size implied by the macro value is always 1172 of an inch. 7.2 BACKGROUND SELECT The second parameter (Background Select) specifies what is to be printed in grid positions not explicitly set to a one in the Sixel data. It is device dependent if the grid positions include all possible printable grid positions of the device, or only those grid positions within the horizontal. and vertical extent parameters of the Set Raster Attribute command. Hardcopy devices will process this parameter as no action (as if parameter 1). = The possible values for this parameter are: o d.evice default action 1 no action (no change to zero bit value grid. positions) 2 set to background color - zero bit value grid pOSitions are set to the background color. Tone background. color is device dependent. 7.3 HORIZONTAL GRID SIZE The third parameter (Horizontal. Grid Size) defines the horizontal. grid size in units selected by the ANSI text Set Size Unit (SSU) command. This parameter, in conjunction with the pixel aspect ratio, defines the grid size. If this parameter is zero or not present, the horizontal. grid size is given by the macro parameter, otherwise, the horizontal. grid size parameter overrides the macro parameter. If the device does not implement the SSU command, the units will be the default value for the SSU command which is Decipoints (11720 inch). 8 PICTURE DEFINITION The Picture Definition consists of Sixel commands and Sixel data which describe a raster image. Sixel commands are coded as graphic characters in the range 211 to 3/14. Sixel data is coded as graphic characters in the range 3/15 to 7/14. Digital Internal Use Only 7 03-Aug-1990 EL.Q0070009 8.1 SIXEL COMMANDS Sixel commands are used to control how the image raster is interpreted, and may be embedded anywhere in the picture definition. A Sixel Command consists of a code in the range 211 through 3/14 (except parameters and parameter separators) which identifies the command, followed by zero or more parameters separated by parameter separators. Each parameter is formed by one or more consecutive decimal digits 0 through 9 (310 through 3/9). Commands having more than one parameter must use the parameter separator; (3/11) between parameters. A Sixel command is terminated by any non parameter code, that is, any code other than 3/0 through 3/9 (parameter digits 0-9) or 3/11 (parameter separator ;). Note Format Effectors (0/8 to 0/13) and SPACE (210) are ignored within sixel control strings (see coding section). The following list summarizes the currently defined Sixel Commands and their coding. Sixel Commands that are not recognized by the device must be parsed and ignored. Code (2/1) Command Repeat Introducer 1st parameter - repeat count " (2/2) Set Raster Attributes 1st parameter - Pixel aspect rat~o numerator (relative he~ght) 2nd parameter - Pixel aspect rat~o denominator (relative width) 3rd parameter - Horizontal Extent 4th parameter - Vertical Extent • Color Introducer (2/3) 1st parameter - color number (others opt~onal) 2nd parameter - color coord~ate system 3rd parameter - Hue angle, 0-360 Red, 4th parameter Lightness, 0-100 5th parameter - Saturation, 0-100 Blue, $ (2/4) Grap~cs Carr~age - (2/13) Graph~cs (3/11) Parameter Separator Return Next Line o through 9 (3/0 through 3/9) Parameter ~gits Digital Intemal Use Only 0-100 Green, 0-100 0-100 EL..o0070.09 8.1.1 03-Aug-1990 Repeat Introducer The Repeat Introducer command allows sixels to be run-length encoded by specifying a repeat count before a Bixel. The repeat introducer is followed by a numeric value which indicates the number of times the next sixel is to be repeated. A repeat count of zero implies a repeat count of 1. The maximum. value for the repeat count is 32767. If no sixel data character follows the repeat count (before the STRING TERMINATOR or another Sixel Command), the repeat count is ignored. The start of another Sixel Command will cancel a pending repeat count. Format: Pn1 2/1 (3/15 - 7/14) Where: Pn1 repeat oount 8.1.2 Set Raster Attributes The Set Raster Attributes command defines raster attributes for all of the following data within a sixel string. This command must precede any Sixel, or any sixel positioning command within a single Bixel control string or the command will be ignored. Format: " Pn1 Pn2; Pn3 Pn4 2/2 Where: Pn1 Pn2 Pn3 Pn4 Pixel aspect ratio numerator Pixel aspect ratio denominator Hor1zontal Extent Vert10al Extent The first two parameters of the Set Raster Attributes command (Pn1 andPn2) specify the Pixel Aspect Ratio. This ratio defines the shape of the pixel needed to reproduce the picture without distortion. The ratio is defined by two numbers, a numerator and a denominator, and is the ratio of the vertical to the horizontal shape of the pixel. For example, if a pixel were to be half as wide as tall, the pixel aspect ratio would be 2:1, or 200:100. The Pixel Aspect Ratio times the horizontal grid size yields the vertical grid size. The third parameter of the Set Raster Attributes command (Pn3) specifies the Horizontal Extent, the horizontal size in pixels of the intended image defined by the picture data. . This parameter allows trailing background Sixel data to be omitted from the picture de1inition and still allow for color background, and to provide a summary to avoid a complete scanning of the data for the horizontal limits. This parameter does not limit the number of pixels a device may image. In the case of receiving more pixels than the extent defines, they will be imaged normally. Thus, the receiving device will NOT clip the image to the horizontal extent. Conforming software will not transmit Sixel data which extends beyond the specified horizontal extent. Digital Internal Use Only 9 03-Aug-1990 The fourth parameter of the Set Raster Attributes command (Pn4) specifies the Vertical Extent, the vertical size in pixels of the intended image defined by the picture data. This parameter has the same functionality vertically as the horizontal extent has horizontally. The receiving device will NOT clip the image to the vertical extent. Conforming software will not transmit Sixe1 data which extends beyond the specified vertical extent. Conforming software shall specify all parameters explicitly. Guideline: omitted parameters for Pn1 and Pn2 may be interpreted as '0' (zero) and default to 'r (one). ";0 may be interpreted as "1;1 for example. 8.1.3 Color Introducer The Color Introducer Command starts a color selection sequence. It is followed by a color number and optional additional parameters. The color number always specifies the color number with which following Sixe1 data will be presented. Fo:mat: i 2/3 Pc; Pu ; Px ; Py ; pz \ / opt~onal parameters Where: Pc Pu Px Py pz color number color coordinate system Hue angle, or Red RGB coor~nate Lightness, or Green RGB coordinate Saturat~on, or Blue RGB coordinate If a color identiD.er appears in the data stream with no additional parameters, it merely selects the color for following Sizel data. If followed by additional parameters, the color specifier represents anew definition for the color number. The parameters select a color in a universal color coordinate system as follows: Pc is the color number, 0 to 255 (or larger device limit). Pu i. the universal coordinate system: o - illegal 1 - aLS (hue/lightne•• /.aturat~on) 2 - RGB (red/green/blue) Px, Py, pz are the color coordinate. in the .pecified system: HLS RGB Px Hue angle, 0-360. Red, 0-100. L~ghtness, 0-100. Green, 0-100 Py pz Saturation, 0-100. Blue, 0-100. Values for Pu, Px, Py, and pz other than those specified above cause the entire color specifi.er commaDd to be ignored, including the color select parameter, Pc. Conforming software shall specify all parameters to be interpreted explicitly. If optional parameters are included to deb a new color, they should all be speci1ied. Guideline: omitted parameters for Px, Py, and Pz may be interpreted as '0' (zero); parameter value '0' (zero) for Pu will cause the entire commaDd to be ignored. 10 _ _ Digital Internal Use Only 03-Aug-1990 Devices must implement color numbers 0 to 255. Devices may implement color numbers larger than 255. Conforming software will use only numbers less than 255, and will use color numbers in sequence starting from O. In the case of an index which exceeds the bounds of the device, the unimplemented index must be mapped back into the supported range. Note this command may load or change the device's color table. 8. 1.4 Graphics Carriage Return The Graphics Carriage Return command causes the Sixel active position to move to the graphic left margin. This Sixel control code is the only code which allows rewriting of a Sixel position and thus is required for writing more than a single color into a Sixel position. Format: $ 2/4 (Graphics Carriage Return does not accept any parameters) 8.1.5 Graphics Next Line The Graphics Next Line command causes the Sixel active position to move to the graphic left margin and down one row of sixels (six actual grid units). Format: 2/13 (Graphics Next Line does not accept any parameters) 8.2 SIXEL DATA Sixel Data is used to represent the pixels of the raster image in columns of six pixels per character. Sixel data is coded as graphic characters in the range 3115 to 7/14. The six pixels to image are derived by subtracting the offset (63 decimal) from the code and assigning each of the low order 6 bits to a grid position. The six pixels are arranged vertically as follows: Top pixe~ Bottom pixe~ Bit Bit Bit Bit Bit Bit 0 (LSB) 1 2 3 4 5 (MSB) Digital Internal Use Only 11 EL..Q0CJ70.09 03-Aug-1990 For example. if the character code 411 (ABell A) is received, the offset value (63 decimal) is subtracted from the code value (65 decimal). The resulting value of 2 is mapped into the horizontal scan as follows: Data B.ita: 2 Scan: (top) 5 4 3 2 1 0 o 0 0 0 1 0 1 2 3 0 x 0 4 (bottom) ,5 0 0 6 0 where "0" indicates the the pixel spot is not printed and "x" indicates that the pixel spot is printed. 8.2.1 Sixe' Column Codes Character ? @ A 8 C D E F ------------------------------------------------Octal 107711001101110211031104110511061 Decimal Hexadecimal 1 631 641 651 661 671 681 691 701 I 31'1 401 411 421 431 441 451 461 ------------------------------------------------1x 1 1 x I 1x 1 1x Dot Pattern 0 0 1 1 0 0 0 I I 0 1 0 0 0 0 0 0 0 0 1 x 1 x 1 0 1 0 1x 1x 1 0 1 0 1 x 1 x 1 x 1 :It 1 ,0 1 0 1 0 1 0 1 0 1 0 I 0 I 0 1 0 I 0 1 0 10 1 0 1 0 1 0 10 10 10 ------------------------------------------------- Character G H I J K 1. M N ------------------------------------------------Octal 1107111011'11111211131114111511161 Decimal Hexac:tecimal 1 711 721 731 741 751 761 771 781 1 471 481 491 4AI 481 4CI 4DI 4EI ------------------------------------------------1x 1 1x 1 1x 1 1 1 Dot Pattern 0 0 10 1x 1 0 10 1 0 1 x 1 x 1 :It 1 0 10 1 0 1 0 10 1 0 1 0 0 :It 0 :It 0 0 0 :It 1 0 I 0 1 x I x 1 1x 1x 1x 1x 1 I x 1 x 1x 1x 1 1 0 1 0 1 0 10 1 10 10 1 0 10 1 ------------------------------------------------- 12 _ _ Dlgltallntarnai Use Only EL.Q00'70.09 Character 03-Aug-1990 0 P Q R S 'r 0 V ------------------------------------------------Octal 111711201121112211231124112511261 Decimal Hexadecimal I 791 901 911 921 931 841 851 961 I 4FI 511 511 521 531 541 551 561 ------------------------------------------------I I x I I x I I x I I x Dot Pattern 0 0 0 0 I 0 I 0 I x I x I 0 I 0 I x I x I 0 I 0 I 0 I 0 I x I x I x I x I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I x I x I x I x I x I x I x I x I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 ------------------------------------------------- Character W X y z \ ------------------------------------------------Octal 112711301131113211331134113511361 Decimal Hexadecimal I 871 981 991 901 911 921 931 941 I 571 581 591 SAl 5BI 5CI 501 5EI ------------------------------------------------I I x I I x I x I I x Dot Pattern 0 0 0 I 0 I 0 I x I x I 0 I 0 I 0 I 0 I x I x I x I x I x I x I x I x I 0 I 0 I 0 I 0 0 I 0 I x I x I x I x I x I x I x I x I x I x I 0 I 0 I 0 I x c f 0 x x x 0 ------------------------------------------------- Character a b d e ------------------------------------------------Octal 113711401141114211431144114511461 Decimal Hexadecimal I 951 961 971 981 991100110111021 I 5FI 601 611 621 631 641 651 661 ------------------------------------------------I I x I I x I x I I x I Dot Pattern 0 I 0 I 0 I 0 I 0 I x 0 I 0 I 0 I 0 I 0 I x I x I x I 0 I 0 I 0 I 0 I 0 I 0 I x I x 0 0 I 0 I 0 I x I x I x I x I x I x I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I x I x I x I x ------------------------------------------------- .Dlla- Digital Internal Use Only 13 03-Aug-1990 EL..Q007Q.09 Character 9' h i j k 1 m n -------------------------------------------'-----Octal 114711501151115211531154115511561 Decimal Hexadecimal 110311041105110611071108110911101 1 671 681 691 6AI 6BI 6CI 601 6EI ------------------------------------------------1x 1 1x 1 1x 1 1x Dot Pattern 0 0 1 0 1 x 0 1 0 1 0 x 1 x 1 x 0 1 0 1 0 x 1 x 1 x 0 0 0 1x 1 0 1 0 1 0 1x 1 x 1x 1x 1 x 1 0 1 0 1 0 1x 1x 1x 1 1 1 1 1 x 1x x 1x x 1x 0 10 x 1x ------------------------------------------------- Character 0 p q r v u t 3 ------------------------------------------------Octal 11571~601161116211631164116511661 Decimal Hexadecimal 111111121113111411151116111711181 1 6FI 701 711 721 731 741 751 761 ------------------------------------------------x 1 1x 1 1x 1x 1 Dot Pattern 0 0 0 0 0 x x 0 0 1x 1 x 1 0 1 0 1 0 1 0 1 0 1 x 1x 1 0 1 0 1 0 1 0 1 0 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 0 x 1 x 1 0 1 x 1 x 1 x x 0 x x ------------------------------------------------Character w x y z ------------------------------------------------Octal 116711701171117211731174117511761 Decimal Hexadecimal 111911201121112211231124112511261 1 771 781 791 7AI 7BI 7CI 701 7EI ------------------------------------------------1 1x 1 1 x 1 1x 1 1x Dot Pattern 0 1 0 10 1 0 10 1x 1x 1x 1x 1x 1x 0 1 1 1 1 1 x 1 0 1 x 1 x 1 x 1 0 0 x 1 0 1 x 1 x 1 x 1 0 x x x x 1 1 1 1 1 0 x x x x 1 1 1 1 1 x x x x x 1 1 1 1 1 x x x x x ------------------------------------------------9 9.1 CODING ISSUES CO CODeS The inclusion of CO Controls 0/8 to 0113 in control string data'is intended for convenience in formatting and storing control strings. These codes shall have no effect on the interpretation of Size! Control strings. Codes in the range 0/0 through on and 0114 through 1115 are considered errors. The communications control characters, XON (DCl) and XOFF (DC3) are handled at a different level Cancel (CAN), Substitute (SUB), Escape (ESC), Bell (BEL), and Enquire (ENQ) are treated as follows: 14 mlllDDlr Dlgltallntemal Use Only 03-Aug-1990 1. CAN· exit DCS mode processing, exit Sixel mode. 2. SUB· process as if a 3115 code (blank Sixel) was received· this is to limit the affect of some communication line errors. 3. ESC· exit DCS mode processing, exit Sixel mode, begin processing escape sequence. 4. BEL· same action as in text mode. 5. ENQ. same action as in text mode. All other CO Codes are ignored. 9.2 GL CODES Codes in the range 210 through 7/15 are treated as follows: 2/0 (SPACE) 2/1 - 3/14 3/15 - 7/14 7/15 (DELE1'E) Ignored Sixel COlII'II&Dcb Sixel Data Ignored 9.3 C1 CODES Codes in the range 8/0 through 9/15 exit DCS mode processing, exit Sixel mode, and the C1 control code is processed outside of the Sixel mode. 9.4 GR CODES Codes in range 10/0 through 15115 are errors. The 8th bit is set to zero and the code is then processed as a GL code. Conforming software shall not transmit GR codes. 10 INmAL STATES No Sixel state is preserved from one entering of Sixel mode to the next. All Sixel state is reset when the Sixel mode is entered. The following states are initialized when Bixel mode is entered: Backqround color: Device default backqround. Sixel color: Contrastinq to backqround. Color numbers: All unspecified color numbers imaqe as the default Sixel color. Horizontal extent: Distance from current ANSI text position to current ANSI riqht marqin. Vertical extent: Distance from current ANSI text position to current ANSI bottom marqin. Note that the raster attributes (horizontal grid size, pixel aspect ratio) are initialized by the Macro Parameter, even if unspeci1ied and defaulted to zero. Digital Internal Use Only 15 EL-00CJ70.09 03-Aug-1990 Conforming software will always initialize the horizontal and vertical extent. Conforming software will also initialize any color numbers used in the picture definition. 11 ANSI TEXT INTERACTIONS The Sixel protocol has certain interactions with the ANSI text portion of the device. Portions of the ANSI text state affect Sixel printing when Sixel mode is. entered, and the results of Sixel printing affect portions of the ANSI text state when Sixel mode is exited. The majority of interaction is in the area of active position, although margins are also involved. 11.1 ENTERING SIXEL MODE The Sixel active position is set equal to the ANSI text active position when Sixel mode is entered. The center of the top dot is printed 70 decipoints (.0972 inch.) above the character baseline for compatibility with devices which. use cell positioning. (Explanatory note: 70 decipoints is co:nsisteD.t with the standard spacing of multi-wire print heads.) The horizontal and vertical axes are established as the same as the ANSI horizontal and vertical axes. No other information is carried from the ANSI text state; in particular, the ANSI SGR (Select Graphic Rendition) selections DO NOT affect sixels. 11.2 WHILE IN SIXEL MODE 11.2.1 Prtntlng at The Active Position Sixels are printed relative to the active position such. that the top pixel of the Sixel is placed at the current horizontal position and seven actual grid vertical sizes above the current vertical position. GUIDELINE: On devices with significantly higher resolution than the vertical grid size, mels should be processed the same as a font with an above baseline of 70 deeipoints. and a below baseline of S·(vertical grid) • 70 deeipoints. If the first character tlag is set when printing uels, the Active Position will first be moved down by 70 deeipoints (the above baseline amount). If the Active Position is closer to the Bottom Margin than the below baseline value, a wrap condition will occur. Graphic new line will act like a LF of S*(vertical grid), and wrap at the page end position. 11.2.2 Right Margin Sixels defined to be printed past the right margin are not printed. 11.2.3 Top Margin If the Sixel active position is such. that printing would occur above the top margin, then that part of Sixel will image above the top margin. Digital Internal Use Only 03-Aug-1990 EL-G007G-09 11.2.4 Bottom Margin Advancing the Sixel active position past the bottom margin has an effect similar to that of ANSI text. In video devices, advancing past the bottom margin will cause scrolling to occur (if text drawn into this region would have scrolled). In printers, the action will also be similar to that of text causing the active position to advance to the next page consistent with the setting of Form Mode and other parameters (normal Sixel row vertical spacing can be maintained on continuous form machines). 11.3 ExmNG SIXEL MODE The Horizontal Active position of the ANSI text is not affected by exactly to what is was when Sixel mode was entered. S~el mode and set The vertical active position of the ANSI text is affected by Sixel mode. The ANSI text vertical position is updated to reflect the vertical motion commands executed in the Sixel printing. Note that on line oriented devices, this may leave the ANSI text active position with a non integer line value, only getting back on line boundaries after an absolute vertical position command. Also, the vertical positioning commands of Sixel mode use the ACTUAL grid size, which may be different than the specified grid size. Therefore, software doing pagination should issue an absolute position command before placing characters to insure placement as expected. Some devices may require re-alignment to a grid established for ANSI text after leaving Sixel mode. In this case, an adjustment less than one character height may occur in a downward direction. Conforming software will not assume any exact alignment of the ANSI text vertical position following a Sixel image. 12 FALLBACK As noted in the introduction, this protocol is quite flexible in the range of imaging formats provided. It is recognized that few (if any) devices will be able to faithfully image all of the rasters defined by the protocol. The purpose of this section is to specify fallback and best fit algorithms and techniques. The commands allowing fallback are the interpretation of Pixel aspect ratio, Horizontal grid size, and color selection. A device may require that the grid size used for imaging the raster be different than that specified by the Pixel aspect ratio and horizontal grid size. In such a case, the grid size used for imaging the raster is called the "actual grid size". Note that several commands use this actual grid size specifically, not the ideal grid size speci:fi.ed. Conforming devices must clearly state in their product documentation how grid sizes fall back. The general rule for grid size fall back is that a device selects an actual grid size that will come closest to but does not exceed the specified grid size, but never less than the smallest imageable unit of the device. (That is, if the smallest size that a device can print is larger than the specified grid size, the device prints it anyway, using the smallest unit as the actual grid). Digital Internal Use Only 17 03-Aug-1980 Since some devices may have high frequency grid size errors that do not accumulate, 'the average grid size over not more than 30 pixels is used to determine the actual grid size. These non-accumulative errors 'may be due to devices mechanics (two c1ift'erent resolution mecbs»ism working together like a print head and a paper motor), or due to implementation of a scaling algorithm that combines a non-integer number of pixels into an integer number of device print units. The pixel aspect ratio should be preserved if possible. GUIDELINE: Many common grid size speci:fieations were intended.· for devices with coordinate units based on lJ7'.r (equal to 1 point or 10 decipoints). When converting to 15013001600 dpi devices, the proper fallback is to use lJ7r1' for each decipoint iDstead. of V1'.r. This results in a slightly smaller image (4lJD), but avoids pixel interference patterns from attempting to scale to a nOD integral number of device pisel& There color. are two classes of color fallback - black and white (monochrome), and limited true For monochrome devices, there are several levels of fallback that are device dependent. The most common and the least that conforming devices must do is to write all the one bits in the only color available and not write the 0 bits. Another fallback would be to texture or halfl;one each pixel, or even texture or halftone an area of pixels. For color devices that can not image all the colors possible, mapping of the color definitions to the device set is acceptable. The following eight-color mapping shall be used for eight color devices using a subtractive color process. BLS Coo.rdinate System Rue An9le 31 91 151 21.1 271 331 - 90 150 210 270 330 30 Inteneleel BLS Colo.r Magenta Reel Yellow G.reen Cyan Blue Fallback Colo.r Magenta Reel (Yellow + Ma9enta) Yellow G.reen (Yellow + Cyan) Cyan Blue (Magenta + Cyan) Li9htne •• 0% - 14% 15% - 85% 86% - 100% Di• .re9a.rel hue an9le, p.rint black P.rint baaed on hue an9le Disable P.rintin9 (White) Satu.ration is i9Do.reel, assumeel to be 100% 18 _ . - Digital Internal use Only 03-Aug-1990 RGB Coordinate System --------------------- Red Green B~ue Intended Color 0 l-lOO 0 l-lOO 0 l-lOO 0 l-lOO 0 0 l-lOO l-lOO 0 0 0 0 0 l-lOO l-lOO l-lOO l-100 Black Red Green Yellow Blue Magenta Cyan White 0 l-lOO l-lOO Fallback Colors Black (Yellow+Magenta+Cyan) Red (Yellow + Magenta) Green (Yellow + Cyan) Yellow Blue (Magenta + Cyan) Magenta Cyan (None) o - selected color is not used l-100 - selected color is used 12.1 DEVIAnONS 12.1.1 .VT125 1. Initialization· The VT125 does not reset the Sixel writing color to contrast to the background. 2. Relation to ANSI text position - The VT125 does not start the Sixel position at the ANSI text position but rather at the upper left corner of the display. It does not update the ANSI text vertical position at the termination of a Sixel image. 3. Color numbers· The VT125 accepts color numbers 0, 1, 2, 3 but does not allow color specifiers. 4. Background select· The VT125 does not accept this parameter. It always uses the background color for unwritten sixe1s by erasing the screen to background (i.e. extent is the entire screen). 5. Scrolling. The VT125 does not scroll when the bottom margin is reached. 6. Raster attributes • The only raster attributes accepted by the VT125 is defined by Macro Parameter value of 1. Thus all other combinations of raster attributes fall back . to this selection. 12.1.2 VT240 1. Initialization· The VT240 does not reset the Sixel writing color to contrast to the background. It retains the colors from the previous Sixel transmission. 2. Relation to ANSI text position • The VT240 does not start the Sixel position at the ANSI text position but rather at the upper left corner of the display. It does not update the ANSI text vertical position at the termination of a Sixel image. 3. Horizontal and Vertical Extent· The VT240 assumes that the extent of the image is the entire screen when Background Select is speci1ied to :fill in the background; thus the VT240 erases the screen to background in this case. 4. Scrolling. The VT240 does not scroll when the bottom margin is reached. Digital Internal Use Only 19 5. Raster attributes - The only raster attributes accepted by the VT240 is defined. by Macro Parameter value of 1. Thus all other combinations of raster attributes fall back to this selection.. 6. Horizontal Grid Size parameter - The VT240 interprets this parameter as a different function.. The effect of specifying this parameter has very limited effects. 12.1.3 LA50 1. The LA50 has a hardware switch to select between 2:1 and 2.5:1 pixel aspect ratios. 2:1 is required for Levell conformance: 12.1.4 LA100 and LA210 1. The LA100 and LA210 are Level 2 devices (recognize the Macro Parameter), but do not recognize the set raster attributes command. Guideline: Software that wishes to support these devices explicitly may set the Macro parameter for the desired characteristics, but should also specify the horizontal grid size (Pn3) and raster attributes to over-ride the Macro parameter for use on other Level 2 devices. 12.2 CHANGE HISTORY 12.2.1 Revision AX11 to AX12 General 1. Removed Revision AXIl change bars. Added change bars to any change that could . afTect conformance or interpretation of the document or should be brought to the attention of terminal implementorsor software engineers. 2. Re-orgaDized main body of the standard to combine. syntax and semantic information, makiDg it easier for implementors to follow. Terminology Section 3. Removed definition of ''Raster Aspect Ratio" since the term. is not used anywhere mthe chapter. 4. Clarifi.ed ''Picture Definition" by indicating it consists of Sixel Data and Sixel Commands. 5. Added definition of Grid Size; the distance between two adjacent grid points. 6. Added definition of BIXEL. Macro Parameter 7. Added sentence: The intended vertical grid size implied by the macro value is always tn2 of an inch. 8. Changed the pixel aspect ratio for macro value 5 from 183:100 to 200:100. Macro value 5 is intended to give a 200:100 pixel aspect ratio (as on the LN03). 183:100 is the fallback on the LAl21341l001210. Sixel Commands 9. Added format descriptions to each Bixel command. Dlgltalanternal Use Only 03-Aug-1990 10. Clarified meaning of "ignoring" unrecognized Bixel commands to indicate command and parameters must be parsed and ignored. 11. Clarified behavior of Repeat Introducer when sixe1 colw:nn code does not follow immediately. Starting another sixel command will cancel a pending repeat count. 12. Added material on Set Raster Attributes Command: "Conforming software shall specify all parameters explicitly. Guideline: omitted parameters for PD1 and. Pn2 may be interpreted as '0' (zero) and default to '1' (one)." Clarified that the Set Raster Attributes command must precede any sixel, or any sixel positioning command. within a single sixel string or the command will be ignored. 13. Added material on Color Introducer command: "Conforming software shall specify all parameters to be interpreted explicitly. If optional parameters are included to define a new color, they should all be specified. Guideline: omitted. parameters for Px, Py, and. pz may be interpreted as '0' (zero); parameter value '0' (zero) for Pu will cause the entire commaDd to be ignored. "In the case of an index which exceeds the bounds of the device, the unimplemented index must be mapped back into the supported range." "Note this command may load or change a device's color table." ANSI Tes:t Interactions 14. Clarmed that the ANSI text active position is not changed. when Sixel mode is entered. The center of the top dot is printed 70 decipoints above the active position. (Explanatory note: 70 decipoints is consistent with the standard spacing of multi-wire print heads.) 15. Added guideline on printing at the active position for devices with significantly higher resolution tb.aJi the vertical grid size. 16. Simp1i:6.ed section on Bottom Margin by emphasizing that sixels should be treated the same as text, and removing duplicate material from the PSRM positioning controls chapter. Other 17. Added an example of a complete Sixel Control String. 18. Corrected list item numbers (1-3) which were confused with Background Select parameter values (0-2). 19. Removed SPACE (210) from the set of sixel control codes. Added statement SPACE shall be ignored in sixel control strings. 20. Added paragraph stating that format effectors (018 - 0113) shall not effect the interpretation of sixel control strings. 21. Added paragraph to Coding section describing how GL codes are handled to make it inclusive of all 8-bit codes. SPACE (210) and. DELETE (7115) shall be ignored. 22. Added statement that: Conforming software shall not transmit GR codes. 23. Added table of Sixel colw:nn codes. 24. Clarmed software conformance requirement for initialization. Conforming software will always initialize the horizontal and. vertical extent (not just if used in the picture de1inition as stated for color numbers). Digital Internat Use Only 21 03-Aug-1990 25. Added statement to fallback section that: Conforming devices must clearly state in their product documentation how grid sizes fall back. 26. Added guideline on fallback for 150/300/600 dpi devices. . 27. Fixed legend on RGB fallback table to indicate tot means selected color NOT used. 28. Added LA50 to deviations section. 29. Added L.AI00 and LA210 to deviations section. Included guideline on use of the Macro parameter. is Digital Intemal Use Only INDEX c Color Introducer, 10 D Dot terminology, 2 G Graphics Carriage Return, 11 Graphics Next Line, 11 Grid terminology, 3 Grid Size terminology, 3 o Bixel Command Format, 8 T Terminology Dot, 2 Grid, 3 Grid Size, 3 Overlap, 3 Pixel, 2 Pixel Aspect Ratio, 2 Pixel-Spot, 2 Raster, .3 Raster Size, 3 Sixel, 3 Sixel Active Position, 3 Overlap terminology, 3 p Pixel terminology, .2 Pixel Aspect Ratio terminology, 2 Pixel-Spot terminology, 2 R Raster terminology, 3 Raster Size terminology, 3 Repeat Introducer, 9 s Set Raster Attributes, 9 Horizontal Extent, 9 Pixel Aspect Ratio, 9 Vertical Extent, 10 Sixel terminology, 3 Size! Active Position terminology, 3 _a- Olgltallntemal Use Only Index-1 03-Aug-1990 +-------------------------------------------------------------------+ I READER COMMENTS I I I Yow: I comments and suqqestj,ons wj,~~ he~p Standards and Methods I I Contro~ improve thej,r servj,ces and documents. I +-------------------------------------------------------------------+ Did you request this document? _ _ If so, did it arrive within a satisfactory period of time? Please comment. What are your impressions of this document? Consider format, organization, completeness, readability, and illustrations. ------~FOLD ON THIS LINEi----------- Did you find teclmi.cal or clerical errors in this document? If so, please specify the page number(s) and the error(s). Are the instructions for the update package clear? Was an index available? If not, is one needed~ Do you have other suggestions for improving this document? The following information is optional: Name Mailstop ---------------------------------------------------------------------------------------Department Node _ _ _ _ __ Send your comments to JOKUR::PROJECTS, or fold, staple, and send this page .through interoffice mail to: +-------------------------------+ I READERS' COMMENTS I I STANDARDS AND METHODS CONTROL I I CTSl-2/D4 I +-------------------------------+ EL-00070·10 Digital Internal Use Only 04-Oct-1990 DEC STD 070-10 Video Systems Reference Manual, Dynamically Redefinable Character Sets Extension DOCUMENT IDENTIFIER: A-DS-ELOO070-10-OO00 Rev A, 04-Oct-1990 ABSTRACT: This document describes the Interface to load and designate Dynamically Redeflnable Character Sets (ORCS), which forms extensions to Levels 2, 3 and 4 of the Character Cell Display service classes and Levels 1 and 2 of the Hardcopy Display service classes. APPLICABILITY: Mandatory for engineers designing hardware for terminal products and software engineers designing programs using terminal Interfaces. Additional requirements are defined in the DEC STD 070-1 Concepts and Conformance Criteria. STATUS: APPROVED 04-0ct-1990; use VTX SMC for current status. This document is confidential and proprietary. and is the property of Digital Equipment Corporation. It is an unpUblished work protected under the Federal copyright laws. OOlgital Equipment Corporation. 1990. All rights reserved. Digital Internal Use Only Digital Internal Usa Only EL.Q007o-10 04-0ct-1990 DEC sm 070-10 Video Systems Reference Manual, DynamlcaUy Redeflnable Character Sets extension DOCUMENT IDENTIFIER: A-DS-ELOOO70-10-OOOO Rev A. 04..Qct-1990 Original Draft Revision 0.1 Rev A, REVISION HISTORY: Document Management Category: Responsible Department: Responsible Person: 30..Qct·1982 25-Dec·1982 ()4.Qct·1990 Termlnallnt8rface Architecture (STI) Video, Image. and Printing Systems (VIPS) Terminals Architecture Peter Sichel APPROVAL: This standard, prepared by the Desktop Systems Group, has been reviewed and recommended for approvai by the General Review group for Its category. Peter Sichel, Video, Image. and Printing Systems Eric Williams - Standards Process Manager Direct requests for further information to: Peter Sichel Use $ VTX ELF for the latest location information. Use VTX SMC to order copies of this document from Standards and Methods Control. Send distribution questions to JOKUR::SMC or call DTN: 287~3724. II II. ." Dlgltal'ntema' Use Only 04-Oct-1990 EL-G0070-10 CONTENTS 1 lNTRODUC1'ION .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 VIDEO CHARACTER CELL DISPLAY REQUIREMENTS ..... ,............. 1.2 HARDCOPY CHARACTER CELL DISPLAY REQUIREMENTS . . . . . . . . . . . . . . . 1 1 1 2 TERMINOLOGY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 ~C1'ION~D~ON........ 2 ......... .... ...................... LO.ADIN'G FONT FILES ............................................. ASSOCIATING FONT FILES WITH CHARACTER SETS. . . . . . . . . . . . . . . . . . . . DESIGNATING AND INVOKING CHARACTER SETS. . . . . . . . . . . . . . . . . . . . . . NOTE ON FUTURE USE OF FONTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CELL MATRIX SIZE, SET SIZE, AND FONT USAGE ...................... 2 2 3 3 3 4 CONTROL ~C1'IONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1 INTRODUCER SEQUENCE FORMAT .................................. 4.1.1 Parameter (Pth): Font Number. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Parameter (Pen): First Character In Set 'lb Load ......... ". . . . . . . . . . . . . . . 4.1.3 Parameter (Pe): Erase Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.4 Parameter (Pemw): Character Cell Matrix Width. . . . . . . . . . . . . . . . . . . . . . . . 4.1.5 Parameter (Pss): Font Set Size (Video Terminals Only) ................... 4.1.6 Parameter (Pu): Font Usage. . . . . . . . . .. . . . . ..... . .. . .. . . . . .. . . ... .. . 4.1.7 Parameter (Pcmh): Character Cell Matrix Height: . . . . . . . . . . . . . . . . . . . . . . . 4.1.8 Parameter (Pcu): Character Set Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 COMMAN'D STRIN'G FORMAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Character Set Designation String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Character Font Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1 Summary . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . • . . . . . • • . . . . . • . . . • . . . 4.2.2.2 Sbtel Definition ............................................... 4.2.2.3 Sbtel Bit Pattern .............................................. 4.3 ~Rl'l'IIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 3.1 3.2 3.3 3.4 3.5 5 DRCS FONT LO.ADIN'G EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 9 9 10 10 10 11 11 12 12 14 5.1 EXAMPI.E ONE . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 EXAMPLE TWO. . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 EXAMPLE THREE ................................................. 20 20 20 21 6 CHANGE HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Revision 0.0 'lb AX10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Rev AXlO to AXll .................. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Rev AXll to AX12 .................................................. 6.4 Rev AX12 to AXl3 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 22 22 22 Appendix A REFERENCED DOCUMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Digital Internal Use Only In O4-Oct-1990 a.QOO70-10 25 A.l EL-Clan Digital Documents INDEX Digital Internal Use Only EL.ooo70-1 0 O4-Oct·1990 1 INTRODUCTION Dynamically Redefinable Character Sets (DRCS) are an extension to levels 2, 3 and 4 'of the Character Cell service class and levels 1 and 2 of the Hardcopy Display service class. They provide the capability of loading into the terminal a font description which can be designated and invoked as a resident character set. The font loading format as defined for DRCS is 1iezible enough to be applicable to a wide variety of devices, including display and printing devices of various resolutions, and varying amounts of font storage capability. In this document (DEC STD 070-10), the term "font file" refers to a sequence of bit patterns that define the graphic symbols of a coded character set. 1.1 VIDEO CHARACTER CELL DISPLAY REQUIREMENTS In Level 2 only one 94-cbaracter font buft'er is required for conformance. Because Level 2 is a Character Cell Display, the font files which can be loaded are fixed width only. A 94or 96-character font buffer is required for conformance in Level 2 if the device supports a 96-character graphic set designation. The 96-character graphic set designation is part of the 8-bit Interface Architecture Extension. In Level 3 and 4, only one character font buft'er is required to support either a 94- or 96-character set for conformance; support of 96-character graphic sets is required in Level 3 or higher. Refer to DEC STD 070·3 Code Extension Layer for more information. For Level 2, 3 or 4 conforming devices, the minimum number of logical pixels per character in the DRCS font buffer is SO, defining a character cell matrix 8 wide by 10 high. This does not include inter-character space for text characters, which is provided automatically when text format is specified. 1.2 HARDCOPY CHARACTER CELL DISPLAY REQUIREMENTS For devices which conform to Levell or 2 of the Hardcopy Display service class, a minimum of three character font buft'ers is required, each supporting either a 94- or 96-character graphic character set; support of 96-cb.aracter graphic character sets is required in all levels of the Hardcopy Display service class. The number of logical pixels per character is device-dependent but shall support at least the resolution of the draft-quality resident font files. Hardcopy DRCS fonts may use the whole character cell, including inter-character space. 2 TERMINOLOGY CeB Matrix Size - The width and height in logical pixels of a character cell. Character Cen - A rectangular bit pattern which defines the foreground and background values of a single character rendition. Coded. Character Set - A set of named characters and their one-to-one relationship with bit combinations. Control String - A class of control functions (bit strings) introduced by a special bit combination and terminated by a string terminator, the interpretation of which is dependent on the introductory character sequence. Digital Internal Use Only 1 EL-QOO70-1 0 O4-Oct-1990 DCS Introducer SequeDce - The sequence of characters in a Device Control String which immediately follows the DCS control code and precedes the command string. Within Digital, DCS Introducer Sequences have the same format and follow the same parsing rules as control sequences. Desipate - To identify a set of characters that are to be represented, in some cases immediately and in others on the further occurrence of a control function, in a prescribed manner. Font - An instance of a type family having a speei1ie type size, style, characteristic weight, and character proportion. FODt File - A sequence of bit patterns or picture descriptors which define the graphic symbols of a coded character set. Escape Sequence. A bit string that is for control purposes in code extension procedures consisting of two or more bit combinations, the first of which is an Escape (ESC) character. Invoke - To cause a designated set of characters to be the prescribed bit combinations whenever those bit combinations occur, until an appropriate code extension function occurs. Logical Pixel- A single element of a binary image, which may (but does not necessarily) map to a physical pixel in either the transmitting or receiving device. Sean • One pass across an image in either the encoding or decoding process, consisting of the height of one sixel, or six pixels. Set Size .. A value which defines the relationship of a font definition to physical display parameters. . Sixel - A 7·bit or 8·bit character, the lower six bits of which represent binary image data. 3 3.1 FUNCTIONAL DESCRIPTION LOADING FONT FILES The DRCS font buffers may be down-line loaded on command from the host, using the Down-Line Load (DECDLD) control string. The DECDLD command string consists of a sequence of binary data in sixel format which defines the composition of the font file. 3.2 ASSOCIAnNG FONT FILES WITH CHARACTER SETS The command string also contains parameters which specify the association between a character set designation string and the font file to be loaded into a buffer. The downloaded font file may be identUied as replacing one of the character sets built into the device (for example, ASCD) or as a new character set not present in the device. Refer to DEC STD 010..3 Code Extension Layer and DEC STD 070-5 Character Cell Display. When the character set designation string of a loaded font file which replaces a built-in character set is changed, either to another built-in set, or to a new character set, the built-in set that was replaced must be made available in the device without additional interchange. It is recommended for new devices that when a loaded font file which replaces a built·in character set is completely erased by an application, via the Pe parameter, that the device make the original built-in set available without additional interchange (not mandatory). Digital Internal Use Only O4-Oct-1990 3.3 DESIGNAnNG AND INVOKING CHARACTER SETS Once a font has been loaded its associated character set, whether DRCS or otherwise, may be designated to any of the four G-sets (GO, G1, G2, or G3), and may invoked into either the left or right hand sides (GL or GR) of the In Use Table, according to the restrictions of ANSI code extension. NOTE 98-character fODD may not be directly d.etdpated iDto GO. Beter to the ''Code BzteuiOD Layer' section. In other words, it may be used in any manner that standard character sets are used including, if applicable, as the User Preference Set. 3.4 NOTE ON FUTURE USE OF FONTS It should be noted that the font file loading mechanism as defined in this specification for DRCS character sets may have broader application in the future, when fonts are used widely as a means of modifying the graphic rendition of a particular coded character set. In this case, the font number parameter included in the DECDLD load sequence will be used as a font identifier which may subsequently be assigned to a rendition value and selected using the Select Graphic Rendition (SGR) control function. The assignment may be accomplished using the Font Selection (FNT) control as defined in ANSI X3.64-1979 (p.37). 3.5 CELL MATRIX SIZE, SET SIZE, AND FONT USAGE There are four parameters which affect the relationship between a font file definition as loaded into the font butter memory and its physical appearance on the display. These parameters are: 1. Character Cen Matrix Size 2. Font Set Size 3. Font Usage For any given font file, there are two possible Font Usage values, Text and Full Cell. For any given Font Usage, there are appropriate Character Cen Matrix Sizes which are typically device dependent. Furthermore, each Character Cen Matrix Size in a particular device may be limited to rendition in certain Set Sizes (80- or 132-column widths, for aample). ",N Digital Internal Use Only 3 EL-G0070·10 The following diagram describes this relationship: FONT FILE DEFINITION / \ TEXT FULL CELL 11\ 11\ CELL MATRIX SIZES SET SIZES 11\ 11\ CELL MATRIX SIZES SET SIZES Because of the device dependent nature of these interactions, the product literature must be consulted for each device to determine the appropriate combination of parameters for a particular application. Digital Internal Use Only O4-Oct-1990 EL.Q0070·10 4 CONTROL FUNCTIONS DECDLD DOWN UNE LOAD (FONT FILE) Levelr. 2X, 3X, 4X Video Character Cell lX, 2X Hardcopy Display Purpoae: Down-line load font file patterns. Format: The DECDLD control is a Device Control String consisting of an introducer sequence, followed by a command string. The format of the introducer sequence is: DCS Pfn; Pan ; Pe ; Pamw 9/0 Parllllleter StrintJ ••• I P.. I Pu I Pamh I Pc.. { 7/11 The introducer sequence is terminated by the final character { (7111). The command string format is: D.c. Sxbpl I Sxbp2 1 ••• 1 Sxbpn ST The command string is terminated by the String Terminator character 9/12 (in 7.bits, ESC \, or 1111 5112). Refer to DEC STD 070-3 for a complete description of the Device Control String format. Description: The DECDLD control string down-line loads one or more characters of a specified 94-character or 96-character (if required) Dynamically Rede1inable Character Set (DRCS) with a specified logical pixel pattern. On video terminals, the a1fected characters in the DRCS set may also change the presentation of characters from this set currently being displayed on the screen. The DECDLD control does not clear the screen. In printers, DECDLD will not affect the presentation of characters already on the page. Notes: 1. Only character positions 211 through 7/14 may be loaded in 94-character sets. 2. Character positiQns from 210 through 7/15 may be loaded in 96-character sets. 3. Character cell sizes are given in logical pixels, width by height. 4. Loaded character sets are not required to be loaded into non-volatile memory. Therefore, if the terminal is powered down all loaded sets may be lost. 5. The host cannot read back. loaded character sets. 6. The fonts loaded by the DECDLD command are separate and distinct from the ReGIS graphics "Load Pattern Cell" command. The ReGIS character sets may not be used except with ReGIS "text" commands. .... Digital Internal Use Only 5 O4-Oct-1990 EL-00070-10 A Soft Reset function (DECSTR) does not erase font files loaded by the DECDLD command (although the designation of character sets associated with those font :&les may change). 8. The soft character set may be cleared using any of four techniques: (1) Using the DECDLD function from the host; (2) By result of a power up test sequence; (3) From Setup - the RECALL or DEFAULT functions, (but not RESET TERMINAL); (4) On video terminal. via the RIS sequence, ESC c, (but not DECSTR). 9. On video termjnals, DECSCL performs a soft reset to put the terminal in a known presentation state without aft'ecting data already displayed (does not clear DRCS). In printers, DECSCL is interpreted 88 "reset to base state" and will clear any DRCS. 7. 4.1 INTRODUCER SEQUENCE FORMAT The following selective parameters control the operation of the font load function. All parameters have the same syntax 88 a control sequence and may be omitted, in which case the default values are used. . 4.1 :t Parameter (Pfn): Font Number The font number parameter, Pfn, specifies the particular DRCS font buffer to be loaded, starting with buffer 1. On video terminals, only one font buffer is required for conforming products implementing the DRCS extension. An omitted parameter, or a parameter value of zero, will default to the first empty font buffer, or, if none are empty, to font buffer 1. On printers, three font buffers are required. An omitted parameter, or a parameter value of zero, will default to font buffer 1. Attempts to load font buffers greater than the required number will produce results whi~ are UNDEFINED by the architecture. Therefore, conforming software will not specify font numbers greater than the number of font buffers required. Hardware will ignore attempts to load font buffers greater than the number impl~mented. 4.1.2 Parameter (Pen): First Character In Set To Load The second parameter selects the first character in the font buffer to be loaded. Parameter value 0 means 210, 1 means 2/1, 2 means 2/2, ... 94 means 7/14, and 95 means 7/15. If the device supports only 94-character buffers, (Level 2 conforming video products that do not include the 8-bit Interface Architecture Extension), attempts to start loading at location zero will cause the first character definition to be ignored, and the second character definition will be used·for position 211. Any attempt to start loading beyond (or continue beyond) location 94 will aleo be ignored. If the device supports 94- or 96-character buffers, (required for printers and Level 3 or higher conforming video products), the Pess parameter (see below) determines whether the font :&le is being loaded for a 94-character or 96-character set. If a 94-character set is being loaded, the restricted 94-character buffer interpretation of Pen applies. If a 96-character set is being loaded, attempts to start loading at location zero will load the character 210, and loading at a location greater than 95 will be ignored. 6_'" Digital Internal Use Only I I 04-Oct-1990 EL..CJOO70-1 0 Conforming software loading 94-character sets or font buffers, will not specify values less than one or greater than 94. Conforming software loading 96-character fonts will not specify values greater than 95. 4.1.3 Parameter (Pe): Erase Control The third parameter controls which characters are erased before loading takes place according to: o - Erase all characters in the specified font buffer (default) 1 • Erase only the characters that are loaded 2 - Erase all characters in all font butters A parameter value of 1 permits the changing of one or more characters in the specified font without affecting the remaining characters of that font. Characters which have been erased from the buffer and not redefined are represented in the visual display by the error character (reverse question mark). Guideline: For video terminals, conforming software should only use the parameter value of 2 (erase all characters in all font buffers) in response to an explicit user request. 4.1.4 Parameter (Pcmw): Character Cell Matrix Width The fourth parameter defines the limit of the character cell matrix width in pixels of the font being loaded. Note that legal values for this parameter are dependent on the values of . the Font Set Size parameter and the Font Usage parameter, and may vary from device to device. The legal combinations of these three parameters must be clearly defined in the product literature for conforming terminals. mega! values of the Character Cell Matrix Width parameter cause the remainder of the load sequence to be ignored. Changes to this parameter since the last DECDLD sequence to this buffer will result in the erasure of the entire set, and cause a new load to start. Guideline: Implementations may discard pixels beyond the width of the character cell specified by this parameter. Software can use the Character Matrix Width parameter to obtain device independent, predictable results. Additional Requirements for Video TermiDals: For video temrinaJs, some values of the Character Cell Matrix Width parameter also specify the Character Cell Matrix Height, as shown in the table below. If one of these parameters is specified, the Character Cell Matrix Height (Pcmh) parameter is ignored. Possible values of the parameter for conforming devices include: o - Device default 1 - Not used, illegal 2 - 5 x 10 matrix (width x height) 3 - 6 x 10 matrix (width x height) 4 - 7 x 10 matrix (width x height) .- Digital Internal Use Only 7 04-Oct-1990 EL-00070-10 5 - 5 pixel wide matrix 6 - 6 pixel wide matrix 7 - 7 pixel wide matrix 8 - 8 pixel wide matrix 9 - 9 pixel wide matrix 10 • 10 pixel wide matrix 11 - 11 pixel wide matrix 12 - 12 pixel wide matrix A parameter value of 0 indicates that the width (or matrix) of the character cell is the device default, which is dependent on the implementing device. GaideliDe: 7 x 10 is the device default for Level 2 video devices. 5 x 10, 6 x 10 and 7 x 10 character cells are always scaled for VT220 compatibility. 4.1.5 Parameter (Pss): Font Set Size (Video Terminals Only) This parameter specifies the intended visual rendition of the font file, and is used by the device when such restriction can affect the use of the loaded set. For example, some implementations restrict a loaded font tUe to use in an SO-column or 132-column screen. Note that legal values for this parameter are dependent on the values of the Character Cell Matrix Size parameter and the Font Usage parameter, and may vary from device to device. The legal combinations of these three pararlleters must be clearly defined in the product literature for conforming terminals. Illegal values of the Font Set Size parameter cause the remainder of the load sequence to be ignored. Changes to this parameter since the last DECDLD sequence to this buffer will result in the erasure of the entire set, and cause a new load to start. Possible values of the parameter for conforming devices include (VT420 Example): o - Device default (SO columns, 24 lines, not mandatory) 1 80 columns, 24 lines, (normal rendition) 2·132 columns, 24 lines, (normal rendition) 11 - 80 columns, 36 lines, (normal rendition) 12 - 132 columns, 36 lines, (normal rendition) 21 • SO columns, 48 lines, (normal rendition) 22 - 132 columns, 48 lines, (normal rendition) m NOTE The values for this parameter may be nteDded ill the future to include character pitch aDd other physical rendition values which may affect the use of the loaded set. s_.'" Digital Internal Use Only 04-Oct-1990 EL'()OO70·10 4.1.6 Parameter (Pu): Font Usage The sixth parameter defines the loaded font file as either a text font file or as a full cell font file. Full cell font files can individually address all pixels in a cell, while text font files may not be able to address all pixels individually. Text font files may also define the centering and spacing characteristics of the area around the character cell. Note that legal values for this parameter are dependent on the values of the Character Cell Matrix Size parameter and the Font Set Size parameter, and may vary from device to device. The legal combinatioJl8 of these three parameters must be clearly defined in the product literature for conforming terminals. illegal values of the Font Usage parameter cause the remainder of the load sequence to be ignored. Changes to this parameter since the last DECDLD sequence to this buffer will result in the erasure of the entire set, and cause a new load to start. Possible values of this parameter for conforming devices are: 0- Device default (Guideline: text on VT220) 1- Text 2· Full Cell 4.1.7 Parameter (Pcmh): Character Cell Matrix Height The seventh parameter defines the limit of the character cell matrix height in pixels of the font file being loaded. Note that legal values for this parameter are dependent on the values of the Font Set Size parameter and the Font Usage parameter, and may vary from device to device. The legal combinatioJl8 of these three parameters must be clearly defined in the product literature for conforming terminals. Illegal values of the Character Cell Matrix Height parameter cause the remainder of the load sequence to be ignored. Changes to this parameter smce the last DECDLD sequence to this buffer will result in the erasure of the entire set, and cause a new load to start. On video terminals, some values of the Character Cell Matrix Width (Pcmw) parameter also specify the Character Cell Matrix Height. If one of these Pcmw parameters is specified, the Character Cell Matrix Height (Pcmh) parameter is ignored. The value of this parameter indicates the height of the Character Cell Matrix. For example, a value of 15 indicates a IS-pixel high character cell matrix. If a parameter value of 0 is specified, this indicates that the height of the character cell matrix is the device default, which is dependent on the implementing device. Guide1iDe: ImplementatioJl8 may discard pixels beyond the height of the character cell specified by this parameter. Software can use the Character Matrix Width parameter to obtain device independent, predictable results. Digital Internal Use Only 9 EL.QOO70-1 0 04-Oct-1990 4.1.8 Parameter (Pcss): Character Set Size 'nle eighth parameter controls the size of the associated character set (and modifies the interpretation of the Character Number (Pen) parameter). The value of the parameter indicates the size of character set associated with the doWnloaded font ~ccording to: o - 94-character set (default) 1 - 96-character set A parameter value of 1 permits the loading of the 210 and 7115 characters in the font. And requjres that the 96-character designating escape sequences (refer to the "Code Extension Layer" section) be used to designate the font. The Final character { (7111) indicates that this DCS string is the DECDLD control function. The data foIlowing it up to the String Terminator (ST) is from 210 to 7/14 and represents the actual font load command string. 4.2 COMMAND STRING FORMAT The syntax of the DECDLD command string is as follows: 1. Dscs - (Seleet Character Set) The command string begins with a character set designation string, which deAnes the intermediate and final characters of the escape sequence which will subsequelltly be used to designate the loaded font as a character set. 2. Sxbp - 'nle final character of the character set designation string is followed by a sequence of sixel bit pattern strings, each string containing the complete definition for one character of the font. Refer to subhead 10.4.2.2. Devices which support only 94-character sets should include only 94-sixel bit pattern strings in a single DECDLD command. Devices which support 96-character sets may include up to 96 sixel bit pattern strings in a single DLD command. Additional patterns will be ignored as necessary, but will not cause the command to be aborted. 3. ST - The String Terminator (ST, 9112) control 4.2.1 Character Set Designation String 'nle Dses string is a set of zero, one, two, or three ANSI intermediates, followed by an ANSI final. (Dscs:= I I I F). 'nle Dacs defines the character set for the loaded font, and is used in the SCS (Select Character Set) escape sequence. Note that the same Dscs can be used to describe a 94-character or 96-character graphic set. The PCS8 parameter indicates which initial intermediate character of the SCS sequence is to be used to designate the character set (see below). Refer to the DEC STD 070-3 and DEC STD 070-5 for a complete description of the escape sequence format, and particularly the SCS sequence. The sea sequence for designating the loaded font will be of the form: ESC ( Dscs - Load the set into GO (94-character set) ESC) Dscs· Load the set into Gl (94-character set) ESC • Dscs - Load the set ~to G2 (94-character set) ESC + Dscs • Load the set into G3 (94-character set) ESC - Dscs - Load the set into Gl (96-character set) ESC. Dscs - Load the set into G2 (96-character set) ESC 1 Dscs - Load the set into G3 (96-character set) 10_- Digital Internal Use Only 040Oct-1990 EL-GOO70-10 Changes to the Dses string since the last DECDLD sequence to this buffer will result in the erasure of the e~tire set, and cause a new load to start. Examples of Dses: 1. Dscs sp @ Defines the loaded font file to be a DRCS set. (This particular value is the recommended value for user defined sets for either 94-character or 96-character graphic character sets.) = = 2. Dses B Defines the loaded font file to be ABCn (94-character), or ISO Latin Alphabet Nr 2 supplemental (96-character), depending on the value of the PCBS parameter. =" %C 3. Dses Defines the loaded font file to an as yet unregistered set. 4.2.2 Character Font Data 4.2.2.1 Summary The remajnder of the command data is a sequence ofsael bit pattern strings (Smp string), each definjng the pattern for a single character in the font. Each Smp string is separated by a semicolon character (;, 3111). Each individual Smp string consists of several sequences of Bixel data (refer to subhead 10.4.2.2.3) which define the individual horizontal scans of ' the character pattern, each Bixel data sequence being terminated by a slash character (I, 2115). Bit combinations 018 to 0113 may be included in the command string, and have no affect on the interpretation of the data. They permit convenient formatting of command strings when being created by text editors since TAB, CR, and LF are included in this range. The following bit combinations are considered as error conditions when they occur within the character font data. Because existing implementations differ in how they handle these bit combinations, their processing is UNDEFINED by the architecture. It is not mandatory, but recommended that future implementations adopt the following conventions for these bit combinations. • CO controls 0/0 to 017 and 0/14 to 1115 should be ignored except for ESC 1111 which terminates the DCS and begins a new sequence. ESC followed immediately by \ 5112 is the 7-bit representation of STRING TERMINATOR and ends the DECDLD normally. Other ESC sequences should cause the entire DECDLD command string to be ignored (aborted). • • 2/0 and 7115 should be ignored. 211 to 3114 with the exception of 2115 and 3111 should be ignored. • Cl controls 810 to 9115 should abort the DECDLD command string except for 9112 STRING TERMINATOR which ends the DECDLD normally. • 10/0 and 15115 should be ignored. • 1011 to 15114 should be interpreted as 211 to 7/14. These characters should not be used by conforming software (except 2/15, 3/11, and STRING TERMINATOR). _.- Digital Internal Use Only 11 04-Oct-1990 EL..QOO70·10 4.2.2.2 Sixel Definition A sixel is an encoded representation of six pixels. It is used to transfer pixel information in Devite Control Strings. Sixel data consists of characters from? (3/15) through (7/14), in which the character code represents a binary bit pattern. Each character represents a binary value plus 63 decimal. Thus 3115 represents the binary value 000000, and 7/14 represents 111111. The bits are represented as a vertical, 1 by 6 pixel matrix ("the Bixel"), with the least sign.i1icant bit at the top. A reset bit (zero) specifies the font background, and a set bit (one) specifies the font foreground. NOTE Refer to DBC STD 01(}'9 Sixel Graphic. ~e,.triD,. for a more complete description of the conversion algorithDut. Note that the DECDLD command string U8eS the sisel data format, but does not U8e the control functions as defined in the Sixel Graphics Estension. 4.2.2.3 Sixel Bit Pattern To load the logical pixel pattern for an individual character in a font (one Sxbp), a sequence of sixel characters is sent, with each sixel specifying one vertical column of six logical pixels. After each character the font pattern sean advances horizontally by one logical pixel. This sequence continues until either a sean terminator (the I character, 2115) is received. a sixel bit pattern terminator (the; character, 3111) is received, or a STRING TERMINATOR (9/12) is received. If the number of characters in a horizontal scan is greater than the width of the loaded character (as defined in the Character Cell Matrix Size parameter of the introducer sequence), the characters in excess of the loaded character width are ignored. The scan terininator character (/,2115) advances the font pattern scan to the next lower row of six vertical logical pixels. When the height of a loaded character (as defined in the Character Cell Matrix Size parameter of the introducer sequence) is not a multiple of six, the high order bits of the sixel values are ignored on the last row of the font pattern. If the number of horizontal scans is greater than the height of the loaded character (divided by six), the characters in excess of the loaded character height are ignored. Any pixels of a loaded character that are not specified are set to zero. This might occur either as a result of a horizontal scan being terminated before the pattern has reached the full width of the loaded character, or as the result of the sixel bit pattern string being terminated before the full character matrix has been defined. 12 mllllla" Digital Internal Use Only 04-Oct-1990 EL..Q0070-10 The following picture shows the mapping of sixels onto an 8 x 10 logical pixel character cell: 2 1 3 6 5 4 7 8 bO bO bO bO 1 bO bO bO bO b1 b1 b1 b1 1 b1 b1 b1 b1 b2 b2 b2 b2 1 b2 b2 b2 b2 b3 b3 b3 b3 1 b3 b3 b3 b3 b4 b4 b4 b4 1 b4 b4 b4 b4 1 b5 1 b5 1 b5 1 b5 1 b5 1 b5 1 b5 1 b5 1 1_ _ 1_ _ 1_ _ ' _ _ 1_ _ 1_ _ 1_ _ 1_ _ 1 1 bO 1 bO 1 bO 1 bO 1 bO 1 bO 1 bO 1 bO 1 1 b1 1 b1 1 b1 1 b1 1 b1 1 b1 1 b1 1 b1 1 1 b2 1 b2 1 b2 1 b2 1 b2 1 b2 1 b2 1 b2 1 1 b3 1 b3 1 b3 1 b3 1 b3 1 b3 1 b3 1 b3 1 1_ _ 1_1 _ _ 1 _ 1 _ 1 _ _ 1_ _ 1_ _ 1 9 10 11 12 13 14 lS 16 The rows of numbers on the top and bottom relate to the order in which sixel values are sent to the tennjnal. The following picture shows the mapping of Sixels onto an 10 x 20 logical pixel full-cell character cell: 1 2 3 4 bO bO bO bO b1 b1 b1 b1 b2 b2 b2 b2 b3 b3 b3 b3 b4 b4 b4 b4 b5 b5 b5 b5 1_ _ 1_ _ 1_ _ 1_13 14 11 12 5 6 7 8 9 10 bO bO bO bO 1 bO bO b1 b1 b1 1 b1 b1 b1 b2 b2 b2 1 b2 b2 b2 b3 b3 b3 1 b3 b3 b3 b4 b4 b4 1 b4 b4 b4 b5 b5 b5 1 b5 bS b5 _ _ 1_ _ _ 1_ _ _ _ _ 15 16 17 18 19 20 , , bO bO 1 bO bO bO bO bO bO bO bO bl bl b1 b1 bl b1 b1 bl b1 b1 b2 1 b2 b2 b2 b2 b2 b2 b2 b2 b2 b3 b3 b3 b3 b3 b3 b3 b3 b3 b3 b4 b4 b4 b4 b4 1 b4 b4 b4 b4 b4 1 b5 I b5 1 b5 1 b5 1 b5 1 b5 1 b5 1 b5 , b5 , b5 1 1_1 _ _ ' _ _ ' - - ' _ _ ' _ _ 1 _ ' _ _ ' _ _ ' _ _ 1 24 26 27 28 29 30 21 22 23 25 bO bO bO 1 bO bO bO bO bO bO bO bl bl bl 1 b1 b1 b1 b1 b1 bl b1 b2 b2 b2 b2 b2 1 b2 b2 b2 b2 b2 b3 b3 b3 b3 b3 b3 I b3 b3 b3 b3 b4 b4 b4 b4 b4 b4 b4 b4 b4 b4 1 b5 1 bS 1 b5 , bS 1 b5 1 b5 1 b5 1 b5 1 bS 1 b5 I 1_1 _ _ 1_1 _ _ ' _ _ ' _ ' _ 1 _ _ 1_ _ ' _ _ ' 40 31 32 33 34 35 36 37 38 39 , I bO 1 bO , bO I bO 1 bO 1 bO 1 bO 1 bO 1 bO 1 bO , , b1 1 b1 , b1 , b1 , b1 , bl 1 b1 , b1 , bl , b1 , 1_1 _ _ ' _ ' _ 1 _ _ ' _ 1 _ _ 1_ _ ' _ _ ' - - ' The rows of numbers on the top and bottom relate to the order in which sixel values are sent to the terminal. Digital Internal Use Only 13 04-~·199.0 EL-00070-10 4.3 ALGORITHM State Atfeeted: FONT: ARRAY [1. • MAX NOM FONTS] OF FONT BUFFER TYPE; CELL NOMBER: CHARACTER VALUE TYPE; FONT- NOMBER: 1.. MAX . NoM FONTS; FIRST CHARACTER: CWACTER V1ILUE TYPE; ERASE-CONTROL: (ERASE THIS-FONT,NO ERASE,ERASE ALL FONTS); CELLjiIDTH: CELL_WIDTH_TYPi; CELL HEIGHT: CELL HEIGHT TYPE; SET_SIZE: (EIGHTY;ONE_THIRTY_TWO); CELL USAGE; (TEXT, FULL CELL); CHARACTER_SET_SIZE:· (94,96); CHARACTER SET DESIGNATOR: ARRAY (1..Mix LENGTH DESIGNATOR] OF DESIGNATOR_CWAcTER:TYPE; Algorithm: CONST MAX_NUM_FONTS - 1; MIN CHARACTER V1ILUE - 0; MAX-CHARACTER-V1ILUE .. 95; (* Device. which are not required to .upport 96-character .et. may ••t the.e value. to 1 and 94 *) MAX CELL WIDTH - 8: MAX-CELL-HEIGHT - 10; (* The ••-value. may vary from device to device *) MAX_LENGTH_DESIGNATOR .. 3; ON - TRUE; OFF - FALBE; TYPE CELL WIDTH TYPE - 1..MAX CELL WIDTH; CELL:HEIGHT_TYPE .. 1. .MAX_CELL_HEIGHT; CHARACTER_CELL_TYPE .. ARRAY [CELL_WIDTH_TYPE, CELL_HEIGHT_TYPE] OF BOOLEAN; CHARACTER_V1ILUE_TYPE MIN_CHARACTER_VALUE •• MAX_CHARACTER_V1ILOE; FONT BUFFER TYPE .. ARRAY [CWACTER_ V1ILUE_TYPE] OF CHARACTER_CELL_ TYPE: VAR FONT: ARRAY [l •• MAX NUM FONTS] OF FONT BOFFER TYPE; CELL NOMBER: CHARAcTER VALUE TYPE; FONT-NUMBER: 1 •• MAX NoM FONTS; FIRST CHARACTER: CWACTER VALUE TYPE; ORCS ERASE CONTROL: (ERASE THIS FONT, NO ERASE, ERASE ALL FONTS); - CELL WIDTH:-CELL WIDTH TYPE; CELL-HEIGHT: HEIGHT TYPE; SET SIZE: (EIGHTY;ONE THIRTY TWO); CELL USAGE: (TEXT,FULL CELL); CHARACTER_BET_SIZE: (94,96); V1ILID ORCS SYNTAX: BOOLEAN; ORCS _STRING_TERMINATED: BOOLEAN; H,V,N: INTEGER; cm PROCEDUU PROCEDURE PROCEDURE PROCEDURE 14 . . . . GET NEXT EVENT (VAR EVENT: EVENT BUFFER TYPE); EXTERN; GET-ORCS-PARAMETERS (EVENT: EVENT BOFFER TYPE); FORWARD; GET:CHARACTER_SET_DESIGNATOR; FORNARo: FILL_CELLS; FORWARD; Digital Internal Use Only 04-Oct·1990 EL.QO070-10 PROCEDURE EXECUTE_FONT_LOAD (EVENT: EVENT_BUFFER_TYPE); (* This routine prooesses DECDLD font load oommand strings. The input to this routine is the parsed DCS introduoer sequenoe. Suooessive oalls are made to the ANSI parser (GET NEXT EVENT) to input a oharaoter at a time for processing. The routine will not exit until a String Terminator (9/12) is reoeived. *) BEGIN (* first, prooess the DCS introduoer sequenoe parameters *) GBT_DRCS_PARAMETERS (EVENT); IF vaLID_ORCS_SYNTAX THEN BBGIN ORCS STRING ~NATED:- FALSE; (* it the sequenoe is valid, get the oharaoter set designator *) GBT CHARACTER SBT DESIGNATOR; IF VALID ORCS-SYNTAX THEN BBGIN (* erase aooording to the erase parameter *) CASB ORCS ERASE CONTROL OF ERASB TiIS FONT: FOR-CZLL-NUMBBR:MIN CHABACnR vaLUE TO MAX CHARACTER VALUE DO FeR a: - 1 TO' MAX_CELL_WIDTH DO FOR V:- 1 TO MAX CELL HEIGHT DO FONT[FONT NUMBER, CELL NUMBER,a,V]:- OFF; BRASB ALL FONTS: FOR-N:.-1 TO MAX NOM FONTS DO FOR CELL NUMBER:MIN CHAMCTER VALUE TO MAX CHARACTER VALUE DO FOR a:. 1 TO MAX CELL WIOTa DO FOR V:- 1 TO Mix CELL HEIGHT DO FONT[FONT NuMBER,CELL NUMBER,a,V]:- OFF; OTHERWISE IGNORE; - - - - - END; (* then prooess the oommand string *) FILL CELLS; (* on overflow, keep going until String Terminator *) WHILE NOT ORCS STRING TElU!INATEO DO BEGIN GET NEXT EVENT (EVENT); IF (EVENT. EVENT_CODE - CONTROL_CODE) AND (EVENT • CODE vaLUE - 156) THEN DRCS_STRING_TElU!INATEO:- TRUE; END; END; BND; BND; Digital Internal Use Only 15 04-Oct·1990 EL-ooG70-1 0 PROCBDUU GET ORCS PARAMETERS; (* -- This routine gets the DCS introducer sequence parameters from the event buffer and sets the appropriate state prior to loading the font. *) BEGIN VALID ORCS SYNTAX:- TRUE; (* the firit parameter is the font number to be loaded *) IF (EVENT. PARAMETERS [1] - 0) OR (EVENT. PARAMETERS [1] - 1) THEN FONT NUMBER:- 1 ELSE vALID ORCS SYNTAX:- FALSE; (* the sec;nd parameter is the first character to be loaded *) FIRST CHARACTER:- EVENT.PARAMETERS[2]; IF (FIRST CHARACTER - 0) OR (FIRST CHARACTER > 95) THEN FIRST CHAMCTER:- 1; (* the third parameter is the erase control specifier *) CASE EVENT.PARAMETERS[3] OF 0: ORCS ERASE CONTROL:- ERASE THIS FONT; 1: ORCS-ERASE-CONTROL: - NO ERASE; 2: DRCS-ERASE-CONTROL:- EWE ALL FONTS; OTHERWISE VALID ORCS SYNTAX:--FALSE; END; -(* the fourth parameter is the cell width or size *) (* assume no cell height parameter at start *) CELL_HEIGHT:- MAX_CELL_HEIGHT; CASE EVENT.PARAMETERS[4] OF 0: CELL WIDTH:- MAX CELL WIDTH; (* 0 is device default *) (* 1 is illegal*) 1 : VALID_ORCS_SYNTAX: - FALSE; 2: CELL WIDTH:- 5; 3: CELL-WIDTH:- 6; 4: CELL-WIDTH:- 7; OTHERWISE CELL WIDTH:- EVENT.PARAMETERS[4]; END; IF (CELL WIDTH > ~ CELL WIDTH) THEN CELL WIDTH:- MiX CELL WIDTH; (* the fifth parameter-is the set size *) CASE EVENT.PARAMETERS(5] OF 0,1: SET SIZE:- EIGHTY;· 2: SET SIZE:- ONE THIRTY TWO; OTHERWISE VALID_DiCS_SYNTAX:- FALSE; END; (* the sixth parameter is the font usage *) CASE EVENT. PARAMETERS (6] OF O. 1: CELL USAGE:- TEXT; 2: CELL USAGE:- FULL CELL; OTHERWISE VALID_DRCS:SYNTAX:- FALSE; END; (* the seventh parameter (if present) is the cell height *) CASE EVENT. PARAMETERS (7] OF 0: CELL HEIGHT:- MAX CELL HEIGHT; *) - (* device dependant default -- OTHERWISE CELL HEIGHT:- EVENT. PARAMETERS [7]; END; IF (CELL HEIGHT > MAX CELL HEIGHT) THEN CELL HEIGHT:- MiX CELL HEIGHT; (* the eighth parameter-is the character set size *) CASE EVENT.PARAMETERS [8] OF 0: CHARACTER_SET_SIZE:- 94; 1: CHARACTER SET SIZE:- 96; OTHERWISE VALID_DRCS_SYNTAX:- FALSE; END; END; Digital Internal Use Only 04-Oct·1990 EL-G007o-10 PROCEDURE GET CHARACTER SET DESIGNATOR; (* - -- Thi. routine parse. the character set designating escape sequence to be associated with the loaded font. This sequence must immediately follow the DCS introducer sequence. Refer to DEC STD 070-5 for a description of the character set table and the subsequent designation procedure. *) BEGIN (* accept character. until final or String Terminator *) H:- 1; REPEAT GET NEXT EVENT (EVENT); CASE EVENT.EVENT CODE OF GRAPHIC CODE: (* put legal characters in the buffer *) BEGINIF (N-1) AND (EVENT.CODE VALUE >- 32) AND (EVENT. CODE VALUE <--47) THEN CHARACTER SET-TABLE[4].FIRST INTERMEDIATE:EVENT. CODE_vALUE; IF (N-2) AND (EVENT.CODE VALUE >- 32) AND (EVENT.CODE VALUE <.-47) THEN CHARACTER SET-TABLE(4].SECOND INTERMEDIATE:~ EVENT • CODE_VALUE; IF (EVENT. CODE VALUE >- 48) AND (EVENT.CODE VALUE <- 126) THEN CHARACTER SET-TABLE(4].FINAL:- EVENT.CODE VALUE; IF (EVENT. CODE VALUE >- 32) AND (EVENT.CODE VALE <- 126) THEN N:- N+1; END; CONTROL CODE: (* terminate on String Terminator, 9/12 *) IF EVENT.CODE VALUE - 156 THEN ORCS STRING TERMINATED:- TRUE ELSE IGNORE; (* ignore other control chAracters *) OTHERWISE IGNORE; (* ignore escape and control sequences *) END; UNTIL «EVENT • EVENT CODE - GRAPHIC CODE) AND «EVENT.CODE VALUE >- 64) AND (EVENT.CODE_VALUE <- 126») OR ORCS_STRING_TERMINATED; END; Dig Ital Internal Use Only 17 EL..QOO70-1 0 O4-Oct-1990 PROCBDUD I'ILL_CBLLS; (* This routine pxoc..... the .ixel command string' and loads the character cella in succe.sion, starting' with the first charact.r specifi.d in the introduc.r sequenc•• *) VB UGIN NBX'1'_ CnL: BOOLEAN; (* start with the first character a. specified *) CBI.L NOMBBR:- FIRST CHARACTER; NEXT- CBLL:- TROE; - REPEAT (* cl.ar the cell if not already cleared *) II' NBXT_CI:LL TBBN HGIN II' ORCS BRASE CONTROL • NO I:RASE THEN FOR H:- 1 TO MaX CBLL WIDTH DO FOR V:- 1 TO Mix aU. HBIGHT DO I'ONT[FONT NOMBiR,CBU. HUMBER,H,V]:- OFF; HI- 1; - Va- 1; NBXT_ CBI.L: - FALSI:; END; ('* now, fill it *) GET NEXT BVEHT (I:VlNT); CAS! EVBiT .l!!VDT COOl: 01' GRAPHIC COOl:: BEGIN(* conv.rt aixels into the font memory *) IF (EVENT. COOl: VALO'B >- 63) JUm (EVENT.CODi VALO'l!! <- 126) THBH BEGIN EVENT.CODI: VALO'B.:- I:VlNT.COOE VALOI: - 63; IF H <- CEU. WIDTH THBH BI:GIH FOR H:- 1 TO 6 DO UGIN IF V+H-1 <- CI:LL HBIGHT THBH BEGIN II' ODD (l!!VBHT. CODI: VALO'B) THBN I'ONT[I'OHT NO'MBl!!R,CI:LL NO'MBI:R,H,V+H-1):- OH; (* .hift in-on. bit at a tim. *) I:VlNT.CODI: VALO'B:- I:VBHT.COOI: VALO'B OIV 2; BHD I:LSI: IGHOU; END; H:- H+1; I:ND n o IGNORE; BND nSI: UGIN CASI: EVlNT. COOl: VALO'B OF (* I t.:minat.. a horizontal scan *) 47: BEGIN HI- 1; VI- V+6; SHD; 59: (* ; t.:minat •• a c.ll, qo to the n.xt *) BEGIN NEXT CBLL:- TRO'B; aLL:NO'MBl!!R:- CI:LL_NO'MBER+1; H:- 1; V:- 1; END; OTHERWISI: IGNOU; END; l!!ND; END; 18 _ - Digital Interna' Use Only EL-0007Q.10 04-Oct·1990 CONTROL CODE: (* terminate on String Terminator, 9/12 *) IF EVENT.CODE VALUE - 156 THEN ORCS STRING TERMINATED:- TRUE ELSE IGNORE; (* ignore other control characters *) OTHERWISE IGNORE; (* ignore .escape and control sequences *) END; UNTIL (CELL NUMBER> MAX CHARACTER VALUE) OR (ORCS_STRING_TERMINATED); - END; Digital Internal Use Only 19 04-Oct-1990 EL.QOO70·10 5 ORCS FONT LOADING EXAMPLES The following are examples of DECDLD font loading sequences: 5.1 EXAMPLE ONE Des 1 ; 1 ; 0 ; 0 ; 0 0 { sp @ --------1--------; 11111111/11111111; -@@@@@-1/-WNWHW-1; T'l"l"rT'l'T'l' / TT'l'T'l'TTT ; ST Notes: 1. This load is into the first DRCS font buffer. 2. The font is an 80 column text font with a character cell matrix size of 7 x 10. 3. "sp" represents the Space character (210). 4. The loaded character set can be designated using the following Select Character Set (SeS) sequences: ESC(sp@ ESC)sp@ ESC'" sp@ ESC+sp@ 5. Carriage return is ignored in the sequence and can be used to facilitate formatting and editing of the command string. 6. The fir$t character loaded is a solid rectangle. 7. The second character loaded is· blank. 8. The third character loaded is a rectangular box. 9. The fourth character loaded is a set of horizontal stripes. 5.2 EXAMPLE TWO Des 5 ; 65 ; 1 ; 2 ; 2 ; 1 { B 111/1111111111/11111; -----1-----; 11111/--------------/111111111111?1?/-1-?-1-?-?-?-?-; "--?? /1, ...., ST Notes: 1. This load is into the fifln DRCS font buffer. Since only one buffer is required for Level 2 conformance, the entire load sequence may be ignored. 2. The load will start with the 65th character in the set, which would be the character 6/1 (ASCII 'a'). 3. 4. Only the characters actually loaded will be erased. Thus, this load could be used to redefine only the lower case characters. The font is a 132 column text font with a character cell matrix size of 5 x 10. Digital Internal Use Only 04-0ct-1990 EL.QOO70-1 0 5. B is the designator for the ABCn character set - therefore, this font replaces ABen, and may be designated using the following Select Character Set (SCS) sequences: ESC(B ESC)B ESC*B ESC+B 6. 7. 8. 9. The first character loaded is blank. The second character loaded is solid. The third character loaded is top 6110 blank, bottom 4110 solid. The fourth character loaded is a thick vertical bar. 5.3 EXAMPLE THREE Des 1 ; 65 ; 1 ; 4 ; 2 ; 2 ; 16 ; 1 { B 111/1111111111/11111; ------------/----------1-----------------------------; 11111/{{{{{/-----/11111; 1--1/1--?/1--1 ST Notes: 1. 2. 3. 4. 5. 6. 7. 8. The font is a 132-column, full-cell font with character matrix size of 4 x 16 The first character loaded corresponds to the 610 position in the code table. The first character loaded is blank The second character loaded is solid The third character loaded has the top half blank, and the bottom half solid The fourth character is a thick vertical bar The excess Sixel information (outside of the 4 x 16 cell) is ignored ''B'' could be confiised with the ABCn designator, however, since Peas is 1, making this a 96-character soft character set, this font does not replace the ABCn font. (It is, however, the registered designator for the supplemental character set of ISO Latin Alphabet Nr 2, and would replace that set, if it were present in the device.) 9. The character set can be designated using the 96-character SCS sequence. The Dacs is ''B''. The SCS sequences are: ESC-B ESC .B ESC/B -- Digital Internal Use Only 21 04-Oct·1990 EL-00070-10 6 CHANGE HISTORY 6.1 Revision 0.0 To AX10 1. Added Introductio~ Terminology, and Functional Description sections. 2. Revised the DECDLD command format. 3. 4. 5. Restricted the legal values for the Font Number parameter. Restricted the legal values for the First Character parameter. Added a parameter value to erase all font definitions (User Preference Feature). 6. Added parameters for Character Cell Matrix Size, Font Set Size, and Font Usage. Extensively revised the section on Command String Format. 8. Added the DECDLD algorithm. 7. 9. Added examples for DECDLD. 10. Added references to the Character Cell Display section for character set tables of designating escape sequences. 6.2 Rev AX10 to AX11 1. 6.3 Added statement that starting to load at location greater than 94 will be ignored in level 2. Rev AX11 to AX12 1. Added support and Character Set Size parameter for 96-character graphic charcter sets for Level 2 and 3 DRCS. 2. Modified meaning of Character Matrix parameter to mean Character Matrix Width parameter as a modification to Level 2 DRCS. 3. Added Character Matrix Height parameter as a modification to Level 2 DRCS. 4. Added example containing new parameters. 5. Extended behavior of Font Number parameter when parameter is omitted or zero. 6. Clarified behavior of DRCS which replace standard character sets when the DRCS is erased. 7. Updated algorithm to reftect new parameters and 96-character graphic character set support. 6.4 Rev AX12 to AX13 1. Changed title to "Video & Printer Systems Reference Manual". 2. Clarified use of terms "font", "font file", and "character set" to be more consistent with printer terminology. "Font file" refers to a sequence of bit patterns that define the graphic symbols of a coded character set. "Fonts" are styles (an instance of a type family). Digital Internal Use Only 04-Oct-1990 EL-00070·10 3. Added mjnimum requirements for Hardcopy Display service class (three 96 character buffers). 4. Clarified that DRCS can be used as the User Preference Supplemental Set. 5. Clarifed effect of DECDLD on characters already on the page in printers (do not change). 6. 7. 8. 9. 10. Specified behavior of DECSTR, RIS, and DECSCL with respect to DRCS buffers for both video and hardcopy devices. Clarified differences in behavior of DECDLD parameters for video and hardcopy devices (Pfn, Pcmw, Pss, Pcmh). Printers have three buffers mjnjmum. Printers never deduce Pcmh from Pcmw. Pss (Font set size) is for video terminals only. Extended list of possible values for Pss to refiect VT420 implementation. Specified Dscs may include up to 3 intermediates in addition to the first SCS intermediate which specifies the G-set. Included error handling recommendations for unexpected bit combinations. ESC and C1 controls abort DECDLD (except ST and DCS). 1011 to 15114 should be interpreted as 211 to 7114. This refiect& latest consensus among hardcopy and video implementations. Clarified that ST may terminate an individual character load. Digital Internal Use Only 23 04-0ct-1990 EL..QOO70-10 Digital Internal Use Only O4-Oct·1990 EL-GOO70-10 APPENDIX A REFERENCED DOCUMENTS A.1 EL-Class Digital Documents EL-Clua Number Document Title EL-GO070-01 DEC STD 070-1 VIdeo Sy.tem. Reference Manual - Concepts and Conformance Cr1tefi8 DEC 070-3 Video Systems Standard - coct. Extension Layer DEC 070-5 VIdeo Systems R.ference Manual - Character Celt DIsplay DEC 070-9 Video and Printer Systems R.ference Manual - SIXEL Graphics EL-00070-03 EL-GOO70-05 EL-00070-09 sm sm sm ExtensIon Use VTX SMC to order copies of EL-class documents from Standards and Methods Control Send distribution questions to JOKUR::SMC or call DTN: 287-3724. Digital Internal Use Only 25 EL-0007c)''10 26 mallD'" 04-001-1990 Digital Internal Use Only EL.Q0070-10 INDEX c F Cell Matrix width, 7 Cell Matrix Size, 1, 3 Character Cell, 1 Character Cell Matrix Size, 8, 12 Character Font Data, 11 Coded Character Set, 1 Conforming software, 7 Control String. 1 FNT,3 Font, 2 Font File, 2 Font Number, 6 Font Selection. 3 Font Set Size, 3 Invoke, 2 D DeS Introducer Sequence. 2 DECDLD, 2, 3, 5, 7 Designate, 2 Down-Line Load, 2, 5 DRCS, 1 Dynamically Redefinable Character Set, 5 Dynamically Redefinable Character Seta, 1 E Eralle Control, 7 Escape Sequence, 2 L Logical Pixel, 2 s Scan, 2 Select Graphic Rendition, 3 Set Size, 2 SGR,3 Sixel, 2 bit pattem, 12 definition, 12 Soft Reset, 5 Digital Internal Use Only Index-1 04-Oct-1990 EL-00070-10 +-------------------------------------------------------------------+ I READER COMMENTS I I I I Your comments and sU9gestions wi~~ he~p Standards and Methods I I I Contro~ improve their services and documents. +-------------------------------------------------------------------+ Did you request this document? _ _ If so, did it arrive within a satisfactory period of time? Please comment. What are your impressions of this document? Consider format, organization, completeness, readability, and illustrations. - - - - - - - - : F O L D ON THIS L I N E i - - - - - - - - - - - - Did you find technical or clerical errors in this document? If so, please specify the page number(s) and the error(s). Are the instructions for the update package clear? ;::-_ Was an index available? If not, is one needed? Do you have other suggestions for improving this document? The following information is optional: Name -------------------------------------------- Department Send your comments interoffice mail ~: ~ Mmb~p Node --------------------------- JOKUR::PROJECTS, or fold, staple, and send this page through +-------------------------------+ I READERS' COMMENTS I I STANDARDS AND METHODS CONTROL I I CTSl-2/D4 I +-------------------------------+ VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only lS-May-1983 Page 11-1 VIDEO SYSTEMS REFERENCE MANUAL User Defined Keys Extension Document Identifier: A-DS-EL00070-011-0 Rev. AXIO, lS-May-83 ABSTRACT: This section describes the interface to load and invoke User Definable Keys (UDK), which form an extension to the Level 2 Character Cell Display service class. APPLICABILITY: SARA Formal Cross-Component Standard. Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal int~rfaces. Additional requirements are defined in the section on "Concepts and Conformance Criteria". STATUS: FOR REVIEW ONLY +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ This document has been placed in the SARA "Formal Cross-Component Standard" category. The material contained within this document is assumed to define mandatory standards unless it" is clearly marked as (a) not mandatory or (b) guidelines. Material which is marked as "not mandatory" is considered to be of potential benefit to the corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques whi~h are considered to be good practice, but should not be considered as requirements. The procedures for modifying or evolving this standard are contained within the contents of this document. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.- - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ FOR INTERNAL USE ONLY + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. - - - + VSRM - User Definable Keys Extension EL-00070~Oll *** COMPANY CONF - DEC Internal Use Only lS-May-1983 Page 11-2 TITLE: VIDEO SYSTEMS - UDK EXTENSION DOCUMENT IDENTIFIER: A-DS-EL00070-0l1-0 Rev. AXIO, 15-May-1983 REVISION HISTORY: Original Draft 25-Dec-l982 FILES: User Documentation EL070S11.mem Internal Documentation EL070S11.rno EL070S11.rnt EL070Sl1.rnx Document Management Group: Terminal Interface Architecture Responsible Department:· Video Archi tecture Group Responsible Individual: Peter Sichel ACCEPTANCE: This document has been approved by the Manager of the Video Architecture Group based on a comprehensive review of its individual sections by the members of the SARA component groups working Terminal Interface Architecture issues. The list of individuals on the review and approval list are on file in Standards and Methods Control. Direct requests for further information to Peter Sichel, PK03-l/10C, DTN 223-5162, RANI::VIDARCH Copies of this document can be ordered from: , Standards and Methods Control AP01/F7, DTN 289-1414, JOKUR::SIMONETTI VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only 15-May-1983 Page 11-3 CONTENTS CHAPTER 11 USER DEFINABLE KEYS EXTENSION 11.1 INTRODUCTION . . 11-4 11.2 11.2.1 11.2.2 11.2.3 11.2.4 FUNCTIONAL DESCRIPTION . Programmable Keys Default Definitions Key Definitions Lock Control . . . 11-5 11-5 11-5 11-5 11-6 . . . . 11.3 CONTROL FUNCTIONS Report UDK Status User Defined Keys 11.3.1 Introducer Sequence Format 11.3.2 Command String Format 11.3.2.1 Key Selection Codes 11.3.2.2 String Parameters 11.3_3 Error Conditions 11.3.4 Algorithm 11-7 · II-II · 11-13 11-13 11-14 · 11-15 11-16 11.4 UDK KEY DEFINITION EXAMPLES 11-22 11.5 11.5.1 CHANGE HISTORY Revision 0.0 To AXIO 11-23 11-23 VSRM - User Definable .eys Extension. EL-00070-011 *** COMPANY CONF - DEC Internal Use Only 15-May-1983 11.1 page 11-4 INTRODUCTION User Defined Keys are a Level 2 extension, which provide the capability of loading into the terminal key definition strings which subsequently be transmitted using a single key stroke. The format for loading key definition strings is intended to be extensible to future devices which have more complex keyboards, larger memories, or other forms of input processing. Conforming Level 2 devices which implement this extension, however, are required to provide only fifteen programmable keys, with a total buffer space of at least 256 characters. It should be noted that conformance to this standard does not , require the ability to retain the key definitions in non-volatile memory. That is, the loaded definitions may be lost if the terminal is powered off. On the other hand, non-volatile storage anq restoration of the key definition strings is not precluded. Furthermore, conformance does not preclude a device from providing the ability to interact locally with the key definitions (input, edit, or delete), provided that it is done in keeping with the intent of this standard. VSRM - User Definable Keys Extension. EL-00070-011 *** COMPANY CONF - DEC Internal Use Only lS-May-1983 11.2 11.2.1 Page 11-5 FUNCTIONAL DESCRIPTION Programmable Keys The keys which may be programmed in Level 2 devices are all of the keys in the Application Function Key Row, when used in combination with the Shift key (see the section "Keyboard Processing" for a complete description of the keyboard). The keys may only be programmed, and are only operational, when the terminal is in Level 2 operation (as selected by the control function Select Conformance Level (DECSCL); see the section "Terminal Management" for a complete description of the DECSCL function). When the terminal is in Levell operation (or in VTS2 mode), the DECUDK control function is ignored and the keys are ·"dead" (i.e., they do not transmit and do not keyc1ick). 11.2.2 Default Definitions Programmable keys which have not been defined, or have had their definitions erased, do not transmit and therefore do not keyclick. Programmable keys which have been defined do keyclick, and are also subject to all of the requirements of the lower level transmission layers, such as XON/XOFF. flow control, rate limiting, and Cl Control Code translation. ll.2~3 Key Definitions The definition for each key consists of a variable length character string of 0 to 255 7-bit or 8-bit characters. Each character in the string is a co~e in the range 0/0' through 15/15. Thus, any character in the code table may be included within a key definition. Buffer space for the key definitions is supplied on a first come first serve basis. Once the supplied buffer space is used up, no more keys may be defined unless space is freed up. Space may be freed up either by redefining previously defined keys using shorter strings than before, clearing key definitions using the DECUDK control function, or clearing the entire definition set (through a terminal power up reset). VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only lS-May-l983 I I • I I 11.2.4 Page 11-6 Lock Control The terminal uses a special lock to arbitrate the programming of User Defined Keys. This lock can be turned on or off through Setup mode. It may also be turned on (but not off) from the host using the DECPPK control function. The lock acts globally over all programmable keys. The state of the Lock Control may be determined from the host using the Device Status Report control function. VSRM - User Definable Keys Extension EL-00070-0ll *** COMPANY CONF - DEC Internal Use Only 15-May-1983 11.3 page 11-7 CONTROL FUNCTIONS DSR REPORT UDK STATUS Levels: 2 Purpose: Report the status of the UDK Lock Control. Request Format: Report Format: CSI ? 25 n 9/11 3/15 3/2 3/5 6/14 CSI ? Ps n 9/11 3/15 Ps 6/14 Description: The DSR control function (Device Status Report) may be used to request the current status of the UDK Lock Control. (See the section "Terminal Management" for a complete description of Device Status Report.) The terminal will respond to a UDK status request (CSI ? 25 n) by transmitting a Device Status .Report control sequence containing one of the following selective parameters (preceded by the private parameter value ?, 3/15): Selective Parameter Meaning ============================================================ 20 The User Defined Keys are not locked, and all keys may be defined, cleared, or redefined from the host. 21 The User Defined Keys are locked, and may not be defined, cleared, or redefined from the host. 23 No User Defined Keys are present. The device does not support this extension. Notes: 1. A report will be given even i£ the UDK extension is not supported. Thus, this request is an optional means of determining if the extension is present (the other means being the Primary Device Attributes request, as described in the section "Terminal Management"). VSRM - User Definable Keys Extension EL-00070-0ll *** COMPANY CONF - DEC Internal Use Only lS-May-l983 State Affected: None Algorithm: PROCEDURE REPORT_UDK_STATUS; BEGIN 'IF LEVEL_2_EXTENSIONS[UDK] THEN BEGIN CASE UDK_LOCK.CONTROL OF UDK.LOCK.OFF: WRITE (HOST_PORT,'?20n'); U~K.LOCK.ON: WRITE (HOST.PORT,'?2ln'); END; END ELSE WRITE (HOST_PORT,'?23n'); END; Known Deviations: None Page ll-8 VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only 15-May-1983 page 11-9 USER DEFINED KEYS DECUDK Levels: 2X purpose: Down line load User Defined Key sequences. Format: The DECUDK control is a Device Control string consisting of an introducer sequence, followed by a command string. The format of the introducer sequence is: DCS Pe pI 9/0 Pe pI 7/12 The introducer sequence is terminated by the final character "' (7/12). The command string format is: Kyl / Stl ; Ky2 / St2 ... ; Kyn / stn ST The command string is terminated by the string Terminator character 9/13 (in 7~bits, ESC \, or 1/11 5/12). See the section "Code Extension Layer" for a complete description ot the Device Control String format. Description: DECUDK control down lin~ loads one or more key definitions into the User Defined Keys. This sequence is ignored if the UDKs have been locked, either through a previous DECUDK sequence or as a local terminal function. This sequence executes only when the terminal is in Level 2 operation. Notes: 1. Software should use the UDK function"to reclaim key definition space in the device. This can be done by clearing keys without locking them. Once the keys have been cleared the UDK function can be used to redefine the keys and lock them. 2. Host softwar~ should not generally leave the user defined keys unlocked. This may cause a breach of security to the terminal user. 3. The host must keep track of space available for key definitions. No error indicatio~ is given if the available buffer space is filled up. VSRM - User Definable Keys Extension. EL-00070-011 *** COMPANY CONF - DEC Internal Use Only IS-May-1983 4. • Page 11-10 If a key is redefined the old sequence is lost. This may free up space if the new sequence is shorter than the previous definition. VSRM - User Definable Keys Extension _ EL - 00070 - 011 *** COMPANY CONF - DEC Internal Use Only l5-May-1983 11.3.1 I .1 I 1 page 11-11 Introducer Sequence Format The following selective parameter values in the introducer sequence may effect the interpretation of the command string. All parameters have the same syntax as a control sequence and may be omitted, in which case the default values are used~ 1 1 1 1. Parameter (Pe): Erase Control I I The first parameter controls which key definitions are to be cleared before loading takes place, according to: 1 I 0 - Clear all UDKs before loading new values (default) 1 - Load new UDK values, clear old only when redefined I I By using Pe=l, it is possible to redefine some keys without reloading them all. Note that if the clear parameter is set to 1 (load new, but don't clear old) it is possible that a key load might fail, due to lack of buffer room, even though the final total for all keys would have been 256 bytes or less. This is because all keys are cleared and loaded sequentially. Sequential loading without first clearing the key definitions could result in intermediate storage requirements greater than the maximum provided, even though the final requirement would be less than or equal to the maximum. For example: If F6 contained 120 bytes, F7 contained 110 bytes, and Fa contained 20 bytes, loading Fa with 40 bytes, F6 with 1 byte and F7 with 1 byte works if all UDKs are cleared first, but not if the keys are cleared as they are sequentially redefined. (When the user attempts to load F~ with 40 -bytes, the load will fail, because only 26 bytes are free at that time (256-120-110=26)). 2. Parameter (PI): Lock Control The second parameter permits the keys to be lpcked against subsequent deletion or re-definition. Locking the keys does not effect the definitions included in the current DECUDK sequence (unless the keys were previously locked), but causes all subsequent DECUDK sequences to be ignored (until the lock is cleared by the terminal user under local control). The following selective parameters may be specified: o - Lock the UDKs against future redefinition (default) 1 - Don't lock the UDKs against future redefinition VSRM - User Definable Keys Extension EL-00070-0l1 *** COMPANY CONF - DEC Internal Use Only lS-May-1983 Page 11-12 Note that Plal does not unlock the UDKs , it just does not lock them. The Final character I (7/12) indicates that this DCS string is the DECUDK control function. The data following it up to the String Terminator (ST) is from 2/0 through 7/14 and represents the actual key loading command. • VSRM - User Definable Keys Extension.'EL-00070-0ll *** COMPANY CONF - DEC Internal Use Only l5-May-1983 Comm~nd 11.3.2 Page 11-13 String Format The syntax of the DECUDK command string is as follows: Key definition strings, Kyn/Stn, are included in the data following the Final character and before the String Terminator (ST). Each Key Definition String consists of a Key Selector Number, Kyn, and a String Parameter, Stn, separated by a slash "I". Multiple Key definition strings are separated by semi-colon " , • II Bit combinations 0/8 to 0/13 may be included in the command string, and have no effect on the interpretation of the data. They permit convenient formatting of command strings when being created by text editors since TAB, CR, and LF are included in this range. The following bit combinations are considered as error conditions when they occur within the character font data. Their processing is UNDEFINED by the architecture. It is recommended to hardware implementors that they be ignored for future compatibility. o 0/1 through 0/7 o 0/14 through 2/14 (with the exception of ESC, 1/11 when it is followed immediately by \, 5/12, to form the two character ESC Fe sequence String Terminator) o 3/10 o 3/12 through 4/0 o 4/7 through 6/0 o 6/7 through 15/15 (with the exception of ST, 9/12) These characters should nqt be 11.3.2.1 u~ed by conforming software. Key Selection Codes Key selection codes are specified as string or characters in the range 3/0 through 3/9 ("0" through "9"), indicating a single decimal value. The values which may be specified in Level 2 are the parameter values of the control sequences normally transmitted by the programmable keys when they are not pressed in combination with the Shift key (CSI? Pn -). (See the section "Keyboard Processing" for a complete description of the codes transmitted by the Application Function Keys.) The following table indicates the relationship between the specified value and actual keys on the keyboard: VSRM - User Definable Keys-Extension .EL-00010-011 *** COMPANY CONF - DEC Internal Use Only IS-May-1983 Key Selection Code page 11-14 Related Key 17 18 19 20 21 F6 F7 F8 .F9 FlO 23 24 2S 26 F11 Fl2 F13 F14 28 29 Help Key Do Key 31 32 33 34 F17 F18 F19 F20 Key selectors may be in any order and may be specified multiple times within the string. If multiple definitions of a key occur, the last definition is preserved. If no key definition is specified for a selected key, that UDK will be cleared of it's definition. 11.3.2.2 ~ String Parameters The string parameters, Stn, are the encoded contents of the UDKs. They consist of hex pairs in the range 3/0 - 3/9 ("0" through "9"), 4/1 - 4/6 ("A" through "F"), and 6/1 - 6/6 ("a" through "f"). When these hex values are combined they represent an !-bit quantity. This allows any of the 256 character codes to be used in the UDK sequence . . The 8-bit code is loaded high byte first, then low byte, as shown beiow: 1st hex value 2nd hex value +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ high nibble low nibble of code of code +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ VSRM - User Definable Keys Extension" EL-00070-011 *** COMPANY CONF - DEC Internal Use Only. 15-May-1983 11.3.3 Page 11-15 Error Conditions The following error conditions may occur, and have the specified recovery: 1. Partial Hex Code - If an odd number of hex values is received in any of the string definitions, the current key definition and the entire remainder of the load sequence will be ignored. The Lock Control will also be set (UDK Lock On). 2. Key Code Out of Range - If a key selection code is received which does not represent a programmable key in the device, the entire definition for that key will be processed and ignored. The remainder of the string will be processed normally. 3. Null Key Definition - If two key definition separators (semi-colons) occur together, with no properly terminated key selection code intervening, the characters between the semi-colons will be ignored. The remainder of the string will be processed normally. VSRM - User Definable Keys Extension. EL-00070-0ll *** COMPANY CONF - DEC Internal Use Only l5-May-1983 11.3.4 Page 11-16 Algorithm NOTE: For the sake of clarity; the following algorithm was coded using an excess of UDK buffer memory and working buffers. It should be recognized that the memory management schemes which will probably be required in many implementations will make this procedure much more complex. ' State Affected: UDK: UDK_TYPE; TOTAL_COUNT: O•• MAX_SIZE_UDK_BUFFER; UDK_LOCK_CONTROL: (UDK.LOCK_OFF,UDK_LOCK_ON); UDK_BUFFER_OVERFLOW: BOOLEAN; Algorithm: CONST MIN UDK VALUE ='17; MAX.UDK_VALUE = 35; MAX SIZE UDK BUFFER = 256; TYPE CODE.TYPE = 0 .. 255; KEY.DEFINITION.TYPE = RECORD CODE BUFFER: ARRAY [1 .. MAX,SIZE.UDK_BUFFER] OF CODE,TYPE; CODE.COUNT: D•. MAX SIZE UDK BUFFER; END; LEGAL UDK VALUES TYPE = SET OF UDK RANGE; UDK TYPE = ARRAY [UDK.RANGE] OF KEY_DEFINITION. TYPE; VSRM - User Definable Keys Extension .EL-00070-011 *** COMPANY CONF - DEC Internal Use Only 15-May-1983 VAR PROCEDURE PROCEDURE PROCEDURE PROCEDURE PROCEDURE Page 11-17 UDK: UDK_TYPE; TOTAL_CODE_COUNT: O•• MAX_SIZE_UDK_BUFFER; UDK_LOCK_CONTROL: (UDK_LOCK.OFF,UDK_LOCK_ON); LEGAL UDK VALUES: LEGAL_UDK_VALUES_TYPE; LOCK_SET: BOOLEAN; UDK_ERASE_CONTROL: (NO_ERASE_UDK,ERASE_ALL_UDK); VALID_UDK_SYNTAX: BOOLEAN; UDK_STRING_TERMINATED: BOOLEAN; KEY_CODE: INTEGER; KEY.CODE_TERMINATED: BOOLEAN; HEX_CODE_VALUES: SET OF CODE_TYPE; WORK_BUFFER: ARRAY [l..MAX_SIZE_UDK_BUFFER] OF CODE.TYPE; CODE_PAIR_TERMINATED: BOOLEAN; DEFINITION_TERMINATED: BOOLEAN; UDK_BUFFER OVERFLOW: BOOLEAN; I,N: INTEGER; GET_NEXT_EVENT (VAR EVENT: EVENT_BUFFER_TYPE); EXTERN; GETUDK_PARAMETERS (EVENT: EVENT_BUFFER_TYPE); FORWARD; GET_KEY_CODE; FORWARD; GET_KEY_DEFINITION; FORWARD; FILL. KEYS; FORWARD; PROCEDURE INITIALIZE_UDKS; (* This routine is called on p-ower up reset to initialize the UDK state information to its default values. *) BEGIN (* the following codes are in the specified range, and are the valid programmable key codes for Level 2 *) LEGAL_UDK.VALUES:= [17 .. 21,23 .. 26,28 .. 29,31 .. 35]; (* the following are valid hex codes, 0·9, A-F, and a-f *) HEX,CODEVALUES:= [48 .. 57,65 .. 70,97 .. 102]; UDK_BUFFER_OVERFLOW:= FALSE; TOTAL_CODE,COUNT:= 0; FOR N:= MIN UDK VALUE TO MAX UDK VALUE DO UDK[N] .CODE_COUNT:= 0; (* NOTE: The actual value of the Lock Control on initialization is specified by the user in Setup *) UDK,LOCK_CONTROL:= UDK_LOCK_OFF; END; VSRM - User Definable Keys Extension .EL-00070-0l1 *** COMPANY CONF - DEC Internal Use Only 15-May-l983 1 PROCEDURE EXECUTE_UDK (EVENT: EVENT_BUFFER_TYPE); 1 ( '1 * 1 page 11-18 This routine is called each ti~e a DECUDK control string introduter is received_ It provides the top level control for the key loading sequerice. *) BEGIN GET_UDK_PARAMETERS (EVENT); IF VALID_UDK_SYNTAX THEN BEGIN UDK_STRING_TERMINATED:= FALSE; IF UDK_LOCK_CONTROL = UDK_LOCK OFF THEN BEGIN (* clear all udk's if requested *) IF UDK_ERASE_CONTROL = ERASE_ALL_UDK THEN BEGIN FOR N:= MIN UDK VALUE TO MAX UDK VALUE DO UDK[NJ.CODE_COUNT:= 0; TOTAL_CODE_COUNT:= 0; END; (* then process the command string *) FILL_KEYS; END; (* if locked or overflowed, keep going until the end *) WHILE NOT UDK_STRING_TERMINATED DO BEGIN GET_NEXT_EVENT (EVENT); IF (EVENT. EVENT_CODE = COMTROL_CODE) AND (EVENT .. CODE _VALUE = 156) THEN UDK_STRING_TERMINATED:= TRUE; END; END; (* set the lock if requested *) IF LOCK SET THEN UDK_LOCK_CONTROL:= UDK.LOCK_ON; END; PROCEDURE GET_UDK_PARAMETERS; (* get all of the parameters for the load *) BEGIN VALID_UDK_SYNTAX:= TRUE; CASE EVENT.PARAMETERS[l] OF 0: UDK_ERASE_CONTROL:= ERASE_ALL_UDK; 1: UDK_ERASE_CONTROL:= NO_ERASE_UDK; OTHERWISE VALID_UDK_SYNTAX:= FALSE; END; CASE EVENT.PARAMETERSL2] OF 0: LOCK _SET: = TRUE; . 1: LOCK_SET:= FALSE; OTHERWISE VALID UDK SYNTAX:= FALSE; END; END; VSRM - User Definable Keys Extension .,EL-00070-011 *** COMPANY CONF - DEC Internal Use Only ,lS-May-1983 Page 11-19 PROCEDURE FILL. KEYS; (* This routine processes the command string and loads the key definition strings into the appropriate key buffers. *) BEGIN UDK STRING.TERMINATED:= FALSE; (* get all of the key definitions in the stripgs *) REPEAT KEY.CODE.TERMINATED:= FALSE; DEFINITION.TERMINATED:= FALSE; GET.KEY.CODEi IF KEY . CODE . TERMINATED THEN BEGIN (* fill work buffer with code string *) GET.KEY.DEFINITION; (* ignore out of range key codes *) IF (KEY.CODE IN LEGAL.UDK.VALUES) AND (CODE.PAIR.TERMINATED) THEN BEGIN IF TOTAL . CODE - COUNT + I <= MAX SIZE UDK BUFFER THEN BEGIN UDK[KEY.CODE].CODE.BUFFER:= WORK.BUFFER; TOTAL.CODE.COUNT:= TOTAL.CODE.COUNT - UDK[KEY.CODE].CODE.COUNT; UDK[KEY.CODE].CODE.COUNT:= I; TOTAL.CODE.COUNT:= TOTAL. CODE. COUNT + I; END ELSE UDK BUFFER OVERFLOW:= TRUE; END ELSE IGNORE; END; (* these conditions cause the rest of the string to be ignored *) UNTIL (NOT CODE. PAIR. TERMINATED) OR (UDK.BUFFEROVERFLOW) OR (UDK STRING TERMINATED); END; VSRM - User Definable Keys Extension' EL-00070,:,011 *** COMPANY CONF - DEC Internal Use Only 15-May-1983 Page 11-20 PROCEDURE GET_KEY_CODE; (* This routine parses a single key selector code from the command string. *) BEGIN KEY CODE:= 0; REPEAT GET_NEXT_EVENT (EVENT); CASE EVENT.EVENT_CODE OF GRAPHIC_CODE: BEGIN IF (EVENT.CODE_VALUE >= 48) AND (EVENT.CODE_VALUE <= 57) THEN KEY_CODE:= (KEY_CODE * 10) + (EVENT.CODE_VALUE - 48) ELSE BEGIN CASE EVENT.CODE VALUE OF 47: KEY_CODE_TERMINATED:= TRUE; 59: DEFINITION TERMINATED:= TRUE; OTHERWISE IGNORE; END; END; • END; CONTROL CODE: (* terminate on String Terminator, 9/12 *) IF EVENT. CODE VALUE = 156 THEN UDK - STRING - TERMINATED:= TRUE ELSE IGNORE; (* ignore other control characters *) OTHERWISE IGNORE; (* ignore escape and control sequences *) END; UNTIL (KEY_CODE_TERMINATED) OR (DEFINITION_TERMINATED) OR (UDK_STRING_TERMINATED); END; VSRM - User Definable Keys Extension EL-00070-01l *** COMPANY CONF - DEC Internal Use Only l5-May-1983 Page 11-21 PROCEDURE GET KEY DEFINITION; (* This routine parses a single key definition string from the command string. *) BEGIN I: = 0; CODE PAIR TERMINATED:= TRUE; REPEAT GET.NEXT.EVENT (EVENT); CASE EVENT. EVENT CODE OF GRAPHIC CODE: BEGIN IF EVENT. CODE VALUE IN HEX . CODE . VALUES THEN BEGIN (* convert ascii codes to hex values *) EVENT.CODE_VALUE:= EVENT.CODEVALUE - 48; IF EVENT.CODE VALUE )= 65 THEN EVENT.CODE VALUE:= EVENT.CODE VALUE - 7; IF EVENT. CODE VALUE )= 97 THEN EVENT. CODE VALUE:= EVENT. CODE VALUE - 22; (* then pack into buffer *) IF CODE . PAIR . TERMINATED THEN BEGIN I:= 1+1; WORK_BUFFER[I]:= 0; CODE PAIR TERMINATED:= FALSE; END ELSE CODE.PAIR.TERMINATED:= TRUE; WORK.BUFFER[I]:= ((WORK.BUFFER[I]) * 16) + EVENT.CODE.VALUE; END; IF EVENT. CODE VALUE 59 THEN DEFINITION.TERMINATED:= TRUE; END; CONTROL CODE: (* terminate on String Terminator, 9/12 *) IF EVENT. CODE VALUE = 156 THEN UDK STRING TERMINATED:= TRUE ELSE IGNORE; (* ignore other control characters *) OTHERWISE fGNORE; (* ignore escape and control sequences *) END; UNTIL (DEFINITION_TERMINATED) OR (UDK_STRING.TERMINATED); END; VSRM - User Definable Keys Extension EL-00070-0ll *** COMPANY CONF - DEC Internal Use Only lS-May-1983 "I 11.4 Page 11-22 UDK KEY DEFINITION EXAMPLES 1 To clear the UDKs send the following sequence: DCS 0 ; liST To lock the UDKs send the following sequence: DCS 1 ; 0 I ST The following is a generalized example of the recommended way to load the UDKs: DCS 0 1 I Kyl / Stl Ky2 / St2 ; Kyn / Stn ST .- VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only lS-May-1983 11.5 Page 11-23 CHANGE HISTORY 11.5.1 Revision 0.0 To AXIO The spec was entirely rewritten from the original draft. The following sections were added: 1. Introduction 2. Functional Description 3. Report UDK Status (control function) 4. Extensively modified the UDK load sequence, DECUDK 5. Pascal coded algorithms 6. UDK load examples VSRM - User Definable Keys Extension EL-00070-0ll *** COMPANY CONF ~ DEC Internal Use Only lS-May-1983 This page deliberately left blank. Page 11~24 VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal Use Only l5-May-1983 Section Index -C- Cl Control Characters in user defined keys Code Table Conformance user defined keys 11-5 11-5 11-4 -D- Default Key Definitions Device Status Report user defined keys DSR 11-5 11-7 11-7 - E- Error Conditions user defined keys 11-15 -F- Flow Control user defined keys 11-5 -K- Key Definition Strings Keyclick user defined keys 11-5 11-5 -P- Programmable Keys 11-5 -R- Rate Limiting user defined keys Report UDK Status control function 11-5 11-7 - S- Software Conformance character font data 11-13 page 11-25 • VSRM - User Definable Keys Extension EL-00070-011 *** COMPANY CONF - DEC Internal dse Only 15-May-1983 c -U- UDK UDK Lock Control status report User Defined Keys control function 11-4, 11-9 11-7 11-4 11-9 - X- XON/XOFF with user defined keys 11-5 Page 11-26 Digital Internal Use Only EL-00070-12 2Wu1-1990 DEC STD 070-12 VIDEO SYSTEMS REFERENCE MANUAL - TERMINAL SYNCHRONIZATION DOCUMENT IDENTIFIER: A-DS-EI.OO07Q-12-OO00 Rev A1, 26-Jul-1990 ABSTRACT: This standard applies to serial asynchronous communications which use XONIXOFF flow control or Break for synchronization. It describes the XONIXOFF flow control protocol including response time and input buffer requirements. It also specifies requirements for implementing the Break function in terminals. This standard supersedes DEC STD 111-0 Terminal Synchronization. APPUCABILITY: Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. Additional requirements are defined in DEC STD 070-1 Concepts and Conformance Criteria. STATUS: APPROVED 26-Jul-1990; use VTX SMC for current status. This document is confidential and proprietary, and is the property of Digital Equipment Corporation. it is an unpublishecl work protected under the Federal . copyright laws• COigital Equipment Corporation. 1990. All rights reserved. DlgltSl Internal Use Only Digital Internal Use Only EL-00070·12 26.Jul·1990 DEC STD 070-12 Video Systems Reference Manual - Terminal Synchronization DOCUMENT IDENTIFIER: A-DS-ELOOO70-12-o000 Rev A1, 28-Jul-1990 REVISION HISTORY: Rev A, Rev A1, Document Management Category: Responsible Department: Responsible Person: 24-Nov·1987 27.JuJ.1990 ECO Number CTS01 Terminal Interface Architecture (STI) VIPS Architecture Group Peter Sichel APPROVAL: This document, prepared by the VIPS Architecture Group, has been recommended for approval by the general review group for its category for use throughout Digital. Rev A 1 incorporates clerical changes only. Peter Sichel - VIPS Architecture Group Eric WilUams - Standards Process Manager Direct requests for further Information to: Peter Sichel Use $ VTX ELF for the latest location information. Use VTX SMC to order copies of this document from Standards and Methods Control. Send dstribution questions to JOKUR::SMC or call DTN: 287-3724. II lilt.· Dig Hal Internal Use Only 26-.Jul·1990 CONTENTS 1 INTRODUCTION ....................... '. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 SCOPE........................................................... 1.2 REI..A.TIONSHIP TO TIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . 1 1 1 2 XONIXOFF FLOW CONTROL ........................................... 2.1 PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 XON.AND XOFF POINTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Requirements .................................................... 2.2.2 Guidelines and Examples .......................................... 2.3 RECEIVE BUFFER SIZE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 BUFFER OVERFLOW PREVENTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Number of Characters to Buffer Overflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Response Time to XOFF .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3 Response Time Example ....................................... , . . . 2.5 INITIALIZA1'ION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 OTHER EVENTS THAT AFFECT XONIXOFF STATE ...................... 1 1 3 3 3 4 4 5 6 6 6 2.6.1 Special Characters ..........•.•.................................. 2.6.2 Local Events (Guidelines) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 RESERVED CHARACTERS. . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 TERMINAL KEYBOARD BmCHRONIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9 TERMINAL SCREEN BmCHRONIZATION (HOLD SCREEN) . . . . . . . . . . . . . . . 2.10 EMERGEN'CY MESSAGES . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . 2.11 IMPLIED XOFF RtJLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 7 8 8 8 9 3 BREAK •.••........•.•.....•...•...•..•..............•....•......... 3.1 THE BREAK SIGNAL . . . . . . . . . . • . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... • 3.1.1 Long Break Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 'WHEN' BREAK MAY" BE TRANSMl'rl'ED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 OPERA.TION OF THE BREAK:KEY ... . . . . . . . . . . . . . • • . . . . . • . • • . • . . . . . . . 3.4 RECEIPr OF BREAK •. . . . . • . . . . . . . . . . . . . . . . • . . . . . • . . . . . . . • . . . . . . . . . 10 10 Appendix A REFERENCED DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 A.1 EL-Class Digital Documents 9 9 9 9 11 INDEX Dlgltallntemal Use Only ID 26-Jul·1990 EL-0007D-12 Digital Internal Use Only 2Wul·1990 EL.Q0070.12 1 INTRODUCTION This document describes synchronization mechanisms for software which interfaces computers to terminal devices. These mechanisms are used for flow control to prevent devices from losing data received faster than it can be processed; to synchronize keyboard and display processing in terminals with software rllnnjng on remote hosts; and to reset or initialize the communications context. Currently these mechanisms are defined for use over serial asynchronous communications lines, and include XONIXOFF flow control and Break. XONIXOFF flow control is a means of using control characters DCI (XON) and DCS (XOFF) to alternately suspend and resume the flow of characters over serial asynchronous communication lines. Break is an out of band signal frequently used to reset the communications environment or data interchange context over serial asynchronous lines. The Break condition is defined as a continuous space (transmission line held in its zero state) for longer than one character time. Although there is no standard use for Break, Digital terminals allow the Break signal to be generated under user control 1.1 SCOPE This standard applies to all Digital products which implement XONIXOFF flow control, all products which are intended 1;0 be certi1ied as conforming to the Terminal Interface Architecture, and software which is intended to use terminal interfaces in a conforming manner. 1.2 RELAnONSHIP TO nA XONIXOFF flow control and break are part of the external communications interface that lies below the code extension layer. Flow control and break are management funeti.ons that control the communications link. No conforming applications should depend on the presence ot: or' performance characteristics of terminal synchronization. 2 XONIXOFF FLOW CONTROL 2.1 PROTOCOL XONIXOFF flow control is a means of using CO control characters DCI (111) (xON) and DCS (1/3) (XOFF) to alternately suspend and resume the flow of characters over serial asynchronous point to point communication lines. Flow control is used to avoid losing data when a sending device is capable of transmitting data faster than the corresponding receiving device can process or use it. XONIXOFF flow control is oDly applicable to full duplex communication lines with a speci1ied minimum amount of receive data buJ1'ering. The exact buffer requirements depend on the maxjmum transmission rate and response time of the sender and receiver. XONIXOFF flow control is a symmetric protocol and may be used independently in either or both directions. ODly one direction is described below' for simplicity. Most systems will conform as both a sending device and a receiving device. Product documentation should state clearly if an implementation intends to only conform as a sending device or receiving device. _.Ir Digital Internal Use Only 1 EL.oocrro..12 26-Jul-1990 Sending Device (SO) Receiving Device (RD) SDTX flow controlled RDRX "'" r ~ """ SDRX (XONIXOFF) RDTX When XONI.XOFF flow control is enabled between a sending device and a receiving device, XON and XOFF characters received at the sending device (SDRX) are interpreted as flow control and are not stored in the sending device's input buffer. Because they are used for flow control, characters XON and XOFF may not be passed as part of the normal data interchange from the receiving device to the sending device. The sending device recognizes XOFF (113) as a request from the receiving device to suspend the transmiseion of characters. When this character is received by the sending device, transmission of all characters (other than XON or XOFF) to the receiving device is suspended. When the sending device's communication port is in this state, it is said to be in the XOFF state. If the device is already in the XOFF state when an XOFF character is received, this character is ignored. The sending device recognizes XON (111) as permission from the receiving device to resume the transmission of characters, if any. When this character is received by the sending device, the XOFF state of the device's communication port is cleared and transmission of characters in the communication port output buffer is resumed. If the device was not XOFF-ed, this character is ignored. Receiving Device Input Buffer (FIFO) 1- IX-data -~I I t t t t XON point first XOFF second XOFF buffer full The receiving device transmits XOFF to the sending device if a character other than XON or XOFF that would be stored in the input buffer is received from that device, and (1) the number of characters in the input buffer reaches the first XOFF point for the first time since the last XON was sent; (2) the number of characters in the input buffer reaches the second XOFF point for the first time since the last XON was sent; or (3) the inputbuffer is full. If the input buffer is full, the received character is discarded. An error indication Digital Intemal Use Only 2s..JuI-1990 EI.-OOO7O-12 should be made in the receiving device if characters are discarded (not mandatory). A terminal might display the error character for example. If the sending device can respond to XOFF fast enough. to avoid buft'er overflow from the second XOFF point, reliability is improved on systems where the :first XOFF might be lost during traDfnnission. Support for the second XOFF point is not mandatory, but recommended for use over noisy communication channels. The reason to send an XOFF for each character that arrives while the input buffer is full is to insure that the sending device will receive an XOFF even if it is reset (clearing the XOFF state) after the input buffer was :filled. Transmission of XOFF for each character received while the input buffer is full is not mandatory. The receiving device transmits an XON to the sending device when the receiving device's input buffer empties to the XON point, and the last ftow control sent by the receiving device was XOFF. This XON must not be blocked by any data being held in the receiving device's transmit queue. If both devices had transmit queues and did not allow XON characters to bypass them, they could become locked in a "deadly embrace". Special provision shall be made to send XON promptly regardless of the XONIXOFF state of the receiving device. 2.2 XON AND XOFF POINTS 2.2.1 Requirements The choice of XON and XOFF points will depend on the receive buft'er size and the performance characteristics desired. The following requirements apply to the selection of XON and XOFF points. In all cases, the :first XOFF point must be higher (closer to buffer full) than the XON point. Terminals shall provide- at least 32 characters of receive buffer space beyond each XOFF point supported (the buffer full condition is not considered an XOFF point). When an XOFF point is reached, the receiving device should transmit XOFF as soon as possible to maximize the response time available to the sender. It is anticipated that some hardware devices will employ a transmit output buffer and will not be able to insert XOFF into the output stream immediately. In the worst case, XOFF shall be ~tted within five character times from when the XOFF point was reached. Some implementations allow the first XOFF point to be selected under local. control to limit the number of characters ahead of the screen the host can transmit. For interactive terminals with large input buffers, it shall be possible to set the first XOFF point to 64 characters or less (in the receive input buffer). 2.2.2 Guidelines and examples The choice of XON and XOFF points is complicated because there are several. competing objectives that can be optimized. XON and XOFF points should be chosen to provide a reasonable compromise between these objectives for the intended use of the device. For some devices it may be desirable to make the XON and XOFF points user configurable. To increase the amount of response time available to accomodate end to end signaling delays (satellite relay of telephone signals can take hundreds of milliseconds for example), it is desirable to provide lots of receive buft'er space after the :first XOFF point. "liD- Dlgltallntarnai Usa Only 3 EL-OCJ07O.12 To allow a sender to finish a printing task as early as possible, it is desirable to make the XON point high (clo$el" to buffer full). To reduce the amount of XONIXOFF traffic and/or the number of data transfers, it is desirable to have the XON and (first) XOFF point far apart. To maximize throughput, it is desirable to balance the XON response time (before the receive input buffer empties) with the XOFF response time so the receiver does not sit idle waiting for the sender to respond to XON. For interactive video terminals that provide 32 characters of input buffer space beyond the last XOFF point, the XON point will normally be at 32 characters, or at half the number of characters to the first XOFF point, whichever is less. EXAMPLES The VT100 provides a 64-character receive input buffer with the first XOFF point at 32 characters, DO seccmd. XOFF point, and XON point at 16 characters. The VT220 provides a 2S4-character receive input buffer with the first XOFF point selectable to && or 128 characters. The second XOFF point is 220 characters. The XON point is 32 characters. The VT100 and VT220 are desiped to provide 32 characters of input buffer space to l'elpODd to XOFF (from the XOFF point to buffer full OD the VT100, and from the second XOFF point to buffer full OD the VT220). 2.3 RECEIVE BUFFER SIZE Terminals shall provide at least 64 characters of receive input buffer space, with at least 32 characters of input buffer space beyond each XOFF point supported. Although existing Digital Terminals respond to XOFF within two character times, other receiving devices (including host computers) should provide at least 32 characters of input buffer space beyond the XOFF point to be symmetric with the VT100 and VT200 terminal .families (not mandatory). This is desirable to support PCs and Workstations running terminal emulator software. In all cases, the receive input buffer size and XOFF point must be sufficient to prevent buffer overflow under the intended operating conditions. 2.4 . BUFFER OVERFLOW PREVENTION In order to prevent buffer overflow, the sending device must respond to an XOFF within some maximum amount of time which depends on the size of the receiver's input buffer, its XOFF point, and the tranSTDission rate. 4_- DIgital Intamal Use Only EL-OOO'7O-1 Z 2.4.1 26-.Jul·'990 Number of Characters to Buffer Overflow When the sending and receiving transmiseion rate are the same, the maximum guaranteed number of characters before buffer overflow assuming immediate response is: OVFL - (MXBF - xc!'!') - 3 Where: OVFL - the number of characters before MXBF - the receive buffer size XO!'!' - the XC!'!' point overf~ow The constant '3' derives from the following possible character delays: (1) When the receive buffer reaches the XOFF point, the receiving device may be in the middle of sending a character and unable to send XOFF until the character finishes; (2) It takes one character time to transmit the XOFF; (3) Assuming the transmitting device can respond immediately to the XOFF, it must still finish the character it is currently sending (if any). Situations that may reduce the number of characters before buffer overflow include: 1. Systems that support different transmit and receive speeds (the slower cbannel cannot send or receive the XOFF as fast OVFL = (MXBF·XOFF). [3(RCDRlXMDR)]). 2. Systems that utilize transmit output buffers and cannot insert XOFF into the output stream immediately. 3. Systems that employ "transmit rate limiting" to limit the number of characters per' second below the maximum allowed by the baud rate. DEVIATION NOTE The Dumber of characters before butler overftow on the VT220, and VTSOO family is calculated differently because received characters are only handled during V Blank time. The actual formula is: OVFL • (MXBF-XO!'!')-[3(RCDR/XMDR)]-(RCDR/600) ,et The last term. takes into account the worst case for when the received character would serviced. The VT220 and VT300 series will Dot consistently transmit XOFF within five character times of reachjn, an XOFF point (but they still provide more than 32 characters of buffer space from when the first XOFF is sent). This delay until V Blank time should be discouraged in future devices. Digital Internal Use Only 5 EL.oCJ070..12 26-Ju'·1990 2.4.2 Response nme to XOFF The maximum response time available to the sending device to stop sending (in order to guarantee that the buffer will not over:fiow) is the time it takes to transmit the number of characters until buffer overflow (OVFL). MRST - OVFL x [(DATA + STOP + PR'l'Y + 1) /XMDR] where: MRST - maximum response time OVFL ~ the number of characters before overflow DA~ - the number of data bits per character STOP - the number of stop bits per character PRTY - the number of parity bits per character ' l ' - the start bit XMDR - the transmit data rate (bits per second) It is recommended (but not mandatory) that the sending device stop transmitting immediately upon receipt, of an XOFF (after the current character). XONIXOFF flow control is intended for use over point to point full duplex links. The time available to respond to XOFF will be reduced by any end to end signaling delays. 2.4.3 Response nme Example If the sending device is a host computer intended to work with a VT100 at 9600 bits per second, the maximum response time can be computed as follows: OVFL - (MXBF - XOFF) - 3 - (64 - 32) - 3 - 29 characters until overflow Assuming 8·bit characters with no parity and one stop bit: MRST - OVFL x [(DATA + STOP + PR'l'Y + l) /XMDR] + 0 + l)/9600J - 29 x [(8 + 1 - 0.030 seconds For this example, the sending device including transmission delays in either direction must respond to XOFF within 30 milliseconds to avoid buffer overflow. 2.5 INmAUZAnON When a device first powers on, it has no way of knowing the XONIXOFF state of a communication link. Devices shall send a single XON at power-up when they are ready to receive data, and assume their transmitter is in the XON state. Devices that can be locally controlled (that is, have some form of keyboard or local control panel) shall provide a means for the operator to re-initialize the XONIXOFF state. This "Clear Communications" function will include the following actions: (1) clear the device's transmit queue; (2) clear the XOFF state of the device's communication port; (3) transmit a single XON to the remote device. 6"" OlgHal Intemal Use Only 260Jul·1990 GUIDELINE The VT100 sends XON at power-up, and allows the XONIXOFF state to be re-iDitialized by entering and siting Set-Up. The VT220 sends XON at power-up. A "Clear Comm" function is provided. in Set-Up to re-iDitialize the XONIXOFF state. 2.6 OTHER EVENTS THAT AFFECT XON/XOFF STATE 2.6.1 Special Characters Some devices interpret other characters besides XON to mean "okay to resume transmission". These· characters are not synonymous with XON and shall be treated as special conditions that re-initialize the XONIXOFF state. It is up to the device receiving data to decide what, if any, special characters will clear its XOFF state. A device sending data shall not assume any characters other than XON will clear the XOFF state of the receiving device. GUIDELINE Some operating systems have interpreted. CTRL'Y and CTBlJC as events that re-iDitialize the XONIXOFF state. Upon receipt of CTRIJY (when CTRUY handling is enabled), VMS clears the communication port's output queue, clears the XOFF state of the communication port, and transmits an XON to the terminal. Terminals should not assume, however, that sending CTRL'Y will clear the XOFF state of the remote device, and should not re-iDitialize their own XONIXOFF state upon sending C'l'R.L'!: 2.6.2 Local Events (Guidelines) Some devices generate XON or XOFF flow control as a result of local events which affect the processing of incoming data. The VT100 sends XOFF when entering Set-Up, and sends XON upon exit from Set-Up. The VT220 enters the hold screen state (if not already held) when entering Set-Up, and leaves the hold screen state if not previously held upon exiting Set-Up. The LN08 sends XOFF when the paper cover is lifted and sends XON when the paper cover is replaced. It is suggested that printers send XOFF when they are unable to process incoming data (including going off-line), and send XON when they are again ready to process incoming data (including going on-line). 2.7 RESERVED CHARACTERS DC1 (1/1) (xON) and DC8 (118) (XOFF) are to be used for synchronization in the manner described in this standard. DC2 (112) and DC4 (114) are reserved for future use, likely for synchronization. These characters should not be used to convey meaning to application software. Digital Internal Use Only 7 a.Q007o.12 26..Jul-1990 TERMINAL KEYBOARD SYNCHRONIZAnON 2.8 When XONI.XOFF flow control is enabled, terminals may be XOFF-ed to suspend transmissiQn of characters to the host. Terminals will maintain a silo for keyboard output. In the event that the keyboard produces characters faster than they can be sent, the silo will buffer at least nine keystrokes. For the purpose of buffering, a compose sequence or function key counts as one keystroke. If the silo becomes full, keystrokes may be discarded. Terminals shall provide some indication that the silo is full and/or keystrokes are being discarded. GUIDELINE In the VT200 family, the Wait LED comes on when the keyboard silo is full, and the keyboard. stops clicking (if keyclick was enabled) when keystrokes are being ignored. 2.9 TERMINAL SCREEN SYNCHRONlZAnON (HOLD SCREEN) When XONIXOFF flow control is enabled, terminals shall allow the data on the screen to be held for easy reading (stop scrolling) even though data· is still being received from the host computer. The ''Hold Screen" function is a toggle that switches the terminal screen between the HELD and NOT_HELD states. The Hold Screen function does not transmit XON or XOFF, but may cause the terminal's input buffer to fill when the screen is in the HELD state, and empty again when the screen is returned to the NOT_HELD state. When XONI.XOFF flow control is enabled, typing CTRUS (XOFF) or CTRUQ (XON) at the keyboard will not transmit codes to the host computer. Instead, these keystrokes will toggle the hold screen state between HELD and NOT_HELD respectively. When XONI.XOFF flow control is disabled, the Hold Screen function does not operate and typing CTRLlS (XOFF) or CTRUQ (XON) at the keyboard will transmit the corresponding codes to the host computer. 2.10 EMERGENCY MESSAGES At times, one deVice may need to send another a high-priority or emergency message. If the intended receiver has sent an XOFF however, it has indicated that it is not ready to receive more data. This may be because the receiver is literally unable to receive or process a message (a printing terminal with a blown fuse, for example), or it may just be that the operator has activated the Hold Screen function. At the time of this update to the standard, there is no clear consensus on how to handle emergency messages. DEVIATION NOTE Some printers respcmd to device status inquiries immediately even when they are in the XOFF state (using the XOFF state as a control channel). This mechanism should be used only by explicit, device dependent agreement between the printer and supporting host. It is not part of the XONIXOFF protocol, and may not be supported. in future devices. Digital Internal Use Only EL.QCJ070.12 2.11 2Wul-1990 IMPUED XOFF RULE Certain terminal functions during which the terminal is unable to respond to host data use an implied XOFF rule. The implied XOFF rule allows the host to suspend. transmission until the terminal is again able to respond. When a host computer invokes one of these functions, it is to enter the XOFF state as if an XOFF had been received from the terminal (implied XOFF). Upon completing the requested function, the terminal must send an XON to re-enable host transmission. Currently, only RIS (Reset to Initial State) and DECTST (DEC Test) use the implied XOFF rule. These functions are intended for diagnostics and shall not be used by conforming application software. Under normal operation, terminal devices should not stop monitoring the communication line, or should send XOFF before going "off line". 3 BREAK Break is an out of band. signal frequently used to reset the communications environment or data interchange context over serial asynchronous lines. The Break condition is defined as a continuous space (transmission line held in its zero state) for longer than one character time. See DEC STD 52 for additional information on physical generation of the break signal. Although there is no standard use for Break, Digital terminals allow the Break signal to be generated under user control. The remainder of this section describes how the Break signal is transmitted, when it may be transmitted, and operation of the break key. 3.1 THE BREAK SIGNAL Although. Break is defined as a continuous space exceeding one character time, the duration of the Break signal generated by Digital terminals has been standardized for reliability. The Break signal will hold the tramnnission line to its zero state for 275 milliseconds (plus or mjnus 25 ms). 3.1.1 Long Break Disconnect Some modems use a lOnger Break of 3.5 seconds to signal a remote data set to disconnect from the communications line. When used, this signal is generated by the modem. Terminals indicate disconnect to a modem using b DTR modem control signal. There is no known reason for a terminal to generate the 3.5 second long Break. GUIDELINE The V'l"220 aDd newer terminals do not generate the long break signaL On the VT100, pressing SHlFTIBREAK would generate a long break in addition to dropping DTR. 3.2 WHEN BREAK MAY BE TRANSMI1TED A Break signal may be transmitted by terminals only upon activation of the break key. Break shall never be transmitted during power-up. power-down, self-test, or terminal reset operations. !mi.- Digital Internal Use Only 9 EL.oCJ070.12 26-Jul-1990 Previous terminals (VT100, VT220) have transmitted Break during power-up, and self-test. This use of Break should be eliminated for the following reasons: • It does not conform to DEC STD 052-1 which requires TXD (transmit data) be held in the mark state during power-up. • Break is used by some Digital systems to halt the console CPU. Transmitting Break at power-up is inappropriate for these systems. • Sendjng Break during self-test precludes the use of remote diagnostics. If a host requests a terminal self-test, the resulting Break may cause a discolll1ect. 3.3 OPERA"ON OF THE BREAK KEY When the break key is activated, special provision shall be made to transmit a Break signal immediately regardless of keyboard locking (KAM), XONIXOFF flow control, or the state of the keyboard input silo. If a character is currently being transmitted, the Break signal will begin as soon as the stop bit of the current character has completed to avoid loss of data. Activating the break key does not clear the keyboard input silo, reset !\AM, or change the XONIXOFF :flow control state. 3.4 RECEIPT OF BREAK Terminals shall detect break explicitly and do nothing at all when break is received at the host communication port. 10 . . . . Digital Internal Use Only EL.Q007D-12 26-Jul·1990 APPENDIX A REFERENCED DOCUMENTS A.1 EL-Class Digital Documents EL-Class Number Document litle EL-00052-00 DEC STD 052-0 Operational Requirements for Serial Terminals and Computer Interfaces Operating as DTEs Connected to EIA RS-232-C or CCITT V.28 Modems EL-00052-01 DEC STD 052-1 Operational Requirements for Serial Data Terminal Equipment and Serial System Interfaces Operating as DTEs Connected to EIA RS-232-C or CCITT V.28 Point-To-Point Modems or Data Service Units Use VTX SMC to order copies of EL-class documents from Standards and Methods ControL Send distribution questions to JOKUR::SMC or call DTN: 287-3724. !BmBDlr Digital Intemal Use Only 11 2WuI-1990 EL-0007O-12 12 . . .·' Digital Internal Use Only EL-G007D-12 INDEX B Break, 9 definition, 9 Long Break, 9 when it may be transmitted, 9 Break Key, 10 Breakthrough, 8 Buffer over:fl.ow prevention, 4 requirements, 1 size, 4 c Clear Communications, 6 CTRUQ from the keyboard, 8 CTRUS from the keyboard, 8 CTRUY,7 D DECTST Implied XOFF Rule, 9 Disconnect Long Break, 9 E Emergency Messages, 8 H Hold Screen, 8 Implied XOFF Rule, 9 Initialization, 6 K M Modem Control, 9 N Number of Characters to Over:fl.ow, 5, 6 R Reserved Characters, 7 Reset, 9 Response Time toXOFF,6 RIS Implied XOFF Rule, 9 s Self-Test, 9, 10 special characters, 7 Special Characters, 7 Synchronization keyboard, 8 screen, 8 T Transmit Data Rate, 6 x XOFF Implied, 9 XOFF point, 2, 3 second XOFF point, 2, 3 VT100, 4 VT220,4 XOFF state, 2 XON point, 3 VT100, 4 VT220,4 Keyboard Locking, 10 Digital Internal Use Only Index-1 EL-0cJ070.12 26-Jul-1990 +-------------------------------------------------------------------+ I READER COMMENTS I I I I Your comments and suggestions will help Standards and Methods I I Control improve their services and documents. I +-------------------------------------------------------------------+ Did you request this document? Please comment. time? If so, did it arrive within a satisfactory period of What are your impressions of this document? Consider format, organization, completeness, readability, and illustrations. -.....---...;.--....,FOLD ON THIS LINEi-----------Did you find technical or clerical errors in this document? If so, please specify the page number(s) and the error(s). Are the instructions for the update package clear? _ _ Was an index available? If not, is one needed? Do you have other suggestions for improving this document? The following information is optional: Name _ _ _ _ _ _ _ _ _ _ _ _ _ _ Mailstop _ _ _ __ Department Node _ _ _ _ __ Send your comments to JOKUR::PROJECTS, or fold, staple, and send this page through interoffice mail to: +-------------------------------+ I READERS' COMMENTS I I STlINDARDS lIND METHODS CONTROL I CTSl-2/D4 I I +-------------------------------+ EL-00070-13 Digital Internal Use Only 3O-Sep-1991 DEC STD 070-13 Video Systems Reference Manual-Text Locator Extension DOCUMENT IDENTIFIER: A-DS-ELOO070-13-0000 Rev A, 30-Sep-1991 ABSTRACT: This specification defines support for locator input devices on ANSI text and graphics terminals as an extension to the Character Cell Display service class. APPLICABILITY: Mandatory for engineers designing hardware for terminal products and software engineers designing programs using terminal interfaces. Additional requirements are defined in DEC STD 070-1 Video Systems Reference Manual - Concepts and Conformance Criteria. STATUS: APPROVED 30-Sep-1991; use VTX SMC for current status. The material contained within this document is assumed to define mandatory standards unless it is clearly marked as: a. not mandatory; or b. guidelines. Material that Is marked as "not mandatory' is considered to be of potential benefit to the Corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques that are considered to be good practice, but should not be considered as requirements. This document is confidential and proprietary, and is the property of Digital Equipment Corporation. It is an unpublished work protected under the Federal copyright laws. C Digital Equipment COrporation. • _tv 1991. All rights reserved . Digital Internal Use Only Digital Internal Use Only EL-0007o-13 3O-Sep-1991 DEC STD 070-13 Video Systems Reference Manual-Text Locator Extension DOCUMENT IDENTIFIER: A-DS-EL00070-13-0000 Rev A, 30-Sep-1991 REVISION HISTORY: Rev A, Document Management Category: Responsible Department: Responsible Person: 30-Sep-1991 Terminal Interface Architecture (STI) VIPS Terminals Architecture Peter Sichel APPROVAL: This standard, prepared by the Desktop Systems Group, has been reviewed and recommended for approval by the General Review group for its category. Cl Peter Sichel - VIPS Terminals Architecture Eric Williams - Standards Process Manager Direct requests for further information to: Peter Sichel Use $ VTX ELF for the latest location information. Use VTX SMC to order copies of this document from Standards and Methods Control. Send distribution questions to JOKUR::SMC or call DTN: 234-4423. The following are1raclemarks of Digital Equipment ~.1Ion: the Digital logo and ReGIS. Tektronix is a registered 1rademark of Tektronix. Inc Digital Intemal u.. Only EL-00070-13 3O-S.p-1991 CONTENTS 1 INTRODUGrION .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 SCOPE ............................... " . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Relationship to TIA ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 TERMINOLOGY .............."............................". . . . . . . . . . . . 3 3 LOCATOR REPORTING MODEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 INTERACTION WITH SESSIONS AND WINDOWS. . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 CONTROLLING LOCATOR REPORTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 LOCATOR SUPPORT FOR GRAPHICS (LOCATOR PORT EXTENSION) . . . . . . . . . . 5.1 ReGIS ONE-SHOT GRAPmCS INPUT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 ReGIS MULTIPLE INPUT MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 TEl{'l'RONIX GIN MODE ............................................ 5.4 DEFINING LOCATOR KEYS FOR GRAPHICS INPUT. . . . . . . . . . . . . . . . . . . . . . 5.5 COMBINING GRAPHICS AND ANSI LOCATOR INPUT . . . . . . . . . . . . . . . . . . . . 11 11 12 12 13 14 6 LOCATOR DEVICE STATUS ............................................ 15 7 LOCATOR CONTROLLER MODE (GUIDELINE-DOCUMENTED EXCEPTION) . . . 16 Appendix A REFERENCED DOCUMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 A.1 EL-Class Digital Documents 17 INDEX FIGURES 1 2 - ... . -- Structuring of the Terminal Interface Architecture ....................... . External and Internal Terminal Interfaces ............................. . Digital Internal Use Only 2 2 III EL-00070-13 3O-Sep-1991 lv_ 1M Digital Internal Use Only EL"()0070-13 3O-Sep-1991 1 INTRODUCTION This specification defines support for locator or pointing devices on ANSI text and graphic terminals as an extension to the Character Cell Display service class. Pointing devices are used for entering coordinates or selecting items on a display. A conforming device shall be supplied with a locator port used to connect an optional mouse or tablet. When a locator device is present and enabled, a separate input cursor appears that is moved by the terminal to follow the locator without host intervention. Individual locator events, such as locator button transitions or movements, can be programmed to . send locator reports to the host. Once enabled, locator reports can be unsolicited (event driven) and mixed freely with keyboard input. Controls are provided to enable locator reporting, select which events shall generate reports, and interrogate the status of the locator device. This specification is primarily concerned with the Text Locator Extension, but also documents a simplified locator interface that forms the Locator Port Extension. Requirements apply to the Text Locator Extension unless explicitly indicated in the text. 1.1 SCOPE This standard applies to all Digital products that implement support for a locator device and are intended to be certified as conforming to the Terminal Interface Architecture (TIA) as shown in Figure 1. It also applies to software intended to use the locator interface in a conforming manner. 1.2 Relationship to TIA The locator interface forms two extensions to the Character Cell Display service class: Text Locator and Locator Port. Both can be implemented at any conformance level. The primary Device Attributes (DA) response will report the locator extensions as parameter value 15 (Locator Port), and parameter value 29 (Text Locator). The Locator Port Extension supports DECLKD. If the device includes the ReGIS or sixel graphics extensions, additional interactions with these protocols are defined. The Text Locator Extension supports the text locator features described in this document (DECELR, DECLRP, DECRQLP, DECSLE, DECEFR). Both extensions allow the status of the locator port to be interrogated using a Device Status Report (DSR) function. Digital Internal Use Only 1 EL-00070·13 3O·Sep·1991 Figure 1: Structuring of the Terminal Interface Architecture USER Input Processing IText Locatorl Extension I Terminal Management Presentation Service Class Code Extension Layer APPLICATION PROCESS The interfaces defined within this specification apply to both internal and external product interfaces (as shown in Figure 2). External interfaces are interfaces between a terminal, personal computer or workstation and a remote system. Internal interfaces are interfaces between a terminal subsystem and software processes running within a terminal, personal computer, or workstation. Figure 2: External and Internal Terminal Interfaces Terminal System , , ,----------------------, , Host System \ Physical Terminal Virtual Terminal \ Application Process \ \ \ EXTERNAL INTERFACE , , , , , \ Physical Terminal Virtual Terminal \ Application Process \ 2_" \ \ INTERNAL INTERFACE Digital Internal Use Only EL-00070·13 3O·S.p·1991 2 TERMINOLOGY Fllter rectangle-A rectangular area in a video display used for selecting (filtering) which locator movements will be reported to the host. Moving the locator so that the input cursor is moved outside the filter rectangle causes a locator report to be transmitted to the host. Locator-A device such as a mouse or tablet used for entering position coordinates (pointing) on a video display. Session-A connection between a single virtual terminal and a host computer. Virtual terminal-Consists of all the context (state information) of a real terminal but is able to share physical resources (such as the keyboard, display, and communication lines) with other virtual terminals. This allows a single physical device to appear as more than one terminal to a host computer. Window-An area of the screen used to display information from a virtual terminal. Window manager-Software or firmware that controls the use of windows. 3 LOCATOR REPORTING MODEL When a locator device is present and enabled, a separate input cursor appears that is moved by the terminal to follow the locator without host intervention. Individual locator events such as locator button transitions or movement can be programmed to send l o c a t o r : ; reports to the host. Each locator report shall include: (1) the specific event that initiated the report; (2) the current state of the locator keys; and (8) the coordinates of the input cursor at the time of the event. The events that can initiate a locator report are a button transition (up or down), locator movement, or an explicit host request. Reporting both the event that triggered the report, and the current button state allows software to interpret locator activity without keeping track of previous events or button state. In a multiprocess shared locator environment, an application may not know the previous button state. This dual reporting also allows applications to recover from lost locator reports. Each locator event generates a single report. In the rare situation where two events occur simultaneously (within a single-sampling period), the terminal shall report this as two separate events. The order of reporting shall be by increasing event code number (left button first). Locator events are queued in the keyboard input silo just like keystrokes. Each locator event occupies one position in the silo (the keyboard silo currently must have at least nine positions). If the input silo becomes full, the locator and keyboard are locked until there is again room in the silo. The sequential order of keystroke· and locator events shall be strictly maintained. Guideline: It is the responsibility of the host to accept data fast enough to avoid locking the locator unintentionally. The limited buffering inside the terminal gives the host a little more time to process locator events smoothly. Digital Internal Use Only 3 EL'()0070-13 3O-Sep-1991 When the locator is locked, the terminal continues to track the locator but the input cursor changes shape to indicate the locked condition (not mandatory). The alternate cursor shape indicates that locator button transitions will be ignored, but allows the user to continue positioning in anticipation of the locator being unlocked. The locator is automatically locked any tim:e the input silo is full. Locator-ahead, analogous to keyboard type-ahead is supported by having each report include the locator position at the time of the event, and maintaining the sequential order of keystroke and locator events. 3.1 INTERACTION WITH SESSIONS AND WINDOWS Since locator events are queued in the keyboard input silo along with keystrokes, locator and keyboard input should be associated with the same session (virtual terminal) at all times. The session to receive these events is sometimes called the active session. In a multisession windowing environment, the input cursor is allowed to roam freely over the entire screen in response to locator movement. The input cursor is never occluded when locator reporting is enabled in .one or more sessions. Each session enables locator reporting independently. The following requirements apply to locator interaction with session windows and scroll regions in a multisession windowing environment. 1. The input cursor is within the active session's window. Pressing a button on the locator sends a locator report when enabled. 2. The input cursor is inside the active session's window but outside the range of defined coordinates for that session. Pressing a button on the locator shall generate a report with omitted coordinates (position undefined). For example, the input cursor is outside the active scrolling region, and the origin mode is set to relative. ~. The input cursor is not contained in any virtual terminal's window. Pressing a button on the locator shall have no effect on any of the virtual terminals. 4. The input cursor is within a window of a session that is not the active session. Pressing a button on the locator will normally make the session containing the locator cursor the active session, possibly changing the occlusion order of windows and the shape of the locator cursor (not mandatory). In this case, the window manager is free to define its own user interface. Two recommendations (not mandatory) are: (1) no locator report should be sent to the previous active session, because the locator is not in its window; and (2) a locator report should not be transmitted if locator reporting is enabled in the new session, to avoid application side effects when selecting another window. Implementation Guideline: DECterm Version 1.0 followed recommendation (1) above, but did not follow recommendation (2). The result is that selecting a new DECterm window often repositions the cursor in that window. Personal computer windowing systems usually require the user to click once to select the window and click again in the window to move the active position. 4 __ Digital Internal Use Only EL-00070-13 30-Sep-1991 4 CONTROLLING LOCATOR REPORTS ENABLE LOCATOR REPORTS Levels: Purpose: Format: DECELR lx, 2x, 3x, 4x (Text Locator) To enable locator reporting CSI 9/11 Ps ; Pu 3/? 3/11 3/? 2/7 z 7/10 The value of Ps controls locator reporting as follows: O-Locator disabled (default) I-Locator reports enabled 2-One shot (allow one report, then disable) Pu specifies the coordinate units for locator reports: O-(or omitted) Default to character cells I-Device physical pixels 2-Character cells Description: When disabled (the power-up default), the locator cursor does not appear, and the locator buttons are inactive. When enabled, the locator cursor is visible, and the terminal tracks the locator locally with no host intervention. Individual locator events, such as locator button transitions or movements, may be programmed to send locator reports to the host. One shot mode is provided for applications that desire simple graphics input similar to Tektronix GIN mode (no unsolicited reports). If parameter value 2 is selected, the next trigger event that occurs generates a single locator report. No further locator reports occur (the locator is disabled), until another DECELR sequence is received. The coordinate units for locator position reports may be selected to either of two coordinate systems used by terminal software at the lowest level. Device physical pixels are useful when the device is capable of addressing individual dots on the display, such as with the sixel graphics extension. On devices that support character cell addressing only, device physical pixels (picture elements) may be character cells. NOTE Undefined values for Ps or Pu causes the entire sequence to be ignored. State Affected: locator_mode_t locator_mode; locator_coordinate_mode_tlocator_coordinate_mode; Digital Internal Use Only 5 EL-00070-13 3O-Sep-1991 LOCATOR REPORT Levels: Purpose: DECLRP 1x, 2x, 3x, 4x (Text Locator) 1b transmit locator information to the host Format: CSI 9/11 Pe Pb Pr Pc Pp & w 2/6 7/7 Pe is the event code. Pb is the button code. Pr is the row coordinate. Pc is the column coordinate. Pp is the third coordinate (page number). Description: When a selected trigger event occurs, such as a button press or release, the terminal transmits a locator report to the host as a DECLRP sequence. Pe, the event code indicates what event caused this report to be generated. The following event codes are defined: O-Request; the terminal received an explicit request for a locator report, but the locator is unavailable (not enabled, or physically not present) 1-Request; the terminal received an explicit request for a locator report 2-Left button down 3-Left button up 4-Middle button down &-Middle button up 6-Right button down 7-Right button up 8-Fourth button down 9-Fourth button up 10-Locator outside filter rectangle If Pe is 0 or omitted, all other parameters shall not be sent because the locator is unavailable. If Pe > 10, the entire sequence shall be ignored. Pb is the button code, ASCII decimal 0 - 15, indicating which, if any, of up to 4 buttons are down. The state of up to 4 buttons on the locator corresponds to the low 4 bits of the decimal value; a 1 means button is depressed. O-No buttons down 1-Right 2-Middle 4-Left 8-Fourth If Pb is omitted, it shall be interpreted as Pb =0, no buttons down. Pr is the row coordinate of the locator position in the page encoded as an ASCII decimal value. If Pr is omitted, the locator position is undefined (outside the terminal window for example). Digital Internal Use Only EL-00070-13 3O-Sep-1991 Pc is the column coordinate of the locator position in the page, encoded as an ASCn decimal value. If Pc is omitted, the locator position is undefined (outside the terminal window for example). Pp is the page coordinate of the locator position encoded as an ASCII decimal value. The page coordinate may be omitted if the locator is on page one (the default). NOTES 1. It locator reporting has been enabled to one ,hot mode (DECELR with Ps • 2), a single locator report (DECLRP) shall reset locator reporting mode to disabled. 2. The parameter values Pr, Pc, and Pp, are expressed in the units selected by the last received Enable Locator Reports (DECELR) command. 3. The parameter values Pr and Pc shall be omitted, indicating locator position unde1lDed, if a position report (DECLRP) is generated when the locator cursor is outside the range of de1lDed coordinates for the reporting virtual terminal. State Affected: locator_reporting..mode_t locator_reporting..mode; -- Digital Internal Use Only 7 EL-00070-13 3O-sep-1991 REQUEST LOCATOR POSITION Levels: Purpose: DECRQLP 1x, 2x, 3x, 4x (Text Locator) Request the terminal transmit a locator position report Format: CSI 9/11 Ps 2/7 I 7/12 The value of Ps controls the locator report sent as follows: O-(or omitted) Default to 1. 1-Transmit a single locator report (DECLRP). Description: The host may explicitly request a Locator Position Report (DECLRP) at any time locator reporting is enabled through Enable Locator Reporting (DECELR). Upon receipt of DECRQLP, the terminal shall respond with a single DECLRP with an event code of 1. If the session receiving the request is the active session, but the locator is not within the defined coordinate range for that session, the terminal shall respond with a single DECLRP with omitted coordinate parameter values. If the session receiving the request is not currently active (the locator is being used in another session), the terminal shall respond with omitted coordinates (locator position undefined) even if the input cursor is physically over the inactive session's window. Locator state from the active session shall not be made available to inactive sessions. If locator reporting is disabled, the terminal shall respond with a single DECLRP with an event code of 0 (indicating locator not available to avoid timing out the application). APPLICATION NOTE If the terminal reepcmda that the locator position is undefined (omitted coordinates), the appHcation can uk to be DOti1led the Dezi time that &elISion is active, and the locator i. within the de6ned coordiDate range. See DECEm (Enable Filter B.ectangle). 8 _ .... Digital Intemal Use Only EL-00070-13 3O-S.p-1991 SELECT LOCATOR EVENTS Levels: Purpose: DECSLE 1x, 2x, 3x, 4x (Text Locator) To select which locator events will generate reports Format: CSI 9/11 Ps ••• Ps { 2/7 7/11 Ps ... Ps is one or more selective parameters that may assume the following values: O-Respond only to explicit host requests (default, also cancels any pending filter rectangle) 1-Report button down transitions 2-00 not report button down transitions 3-Report button up transitions 4-00 not report button up transitions Description: OECSLE selects which locator events shall generate unsolicited reports according to the parameter values. -- Digital Internal Use Only 9 EL-00070-13 30-Sep-1991 ENABLE FILTER RECTANGLE Levels: Purpose: DECEFR lx, 2x, 3x, 4x (Text Locator) To cause locator movement to be reported to the host. Format: CSI Pt Pl Ph Pr 2/7 9/11 w 7/7 Pt-Top boundary of filter rectangle PI-Left boundary of filter rectangle Ph-Bottom boundary of filter rectangle Pr-Right boundary of filter rectangle Description: The DECEFR control sequence defines the coordinates of a filter rectangle and activates it. The next time the locator is detected to be outside that filter rectangle, an outside rectangle event is generated and the rectangle is de-activated. Filter rectangles are always treated as one-shot events. Defining a new rectangle cancels the previous definition, if any, and activates the new filter rectangle. Pt, PI, Pb, and Pr are in coordinates units specified by the last DECELR sequence. The filter rectangle includes the boundaries, similar to other rectangular area operations. The origin is coordinate pair 1:1 in the upper-left corner. If any parameters are omitted, they are defaulted to the current locator position. Sending DECEFR with no parameters will cause the application to be notified for any locator movement within the defined coordinate space for that virtual terminal (unfiltered movement event). If a rectangle that does not contain the locator is specified, and the locator is within the defined coordinate space for that session, the terminal will generate an outside rectangle report immediately and de-activate it. NOTES 1. DECELR cancels any previous :filter rectangle de1iDition. This guarantees that when an application enables locator reports, there will never be an outstanding :filter rectangle. 2. If a filter rectangle lietl on the edge of the defined coordinate space for the active session, and the locator crosses that edge, the rectangle shall be triggered to send a report with omitted coordinates Oooator position undefined). If the active session receives a :filter rectangle with explicit coordinates while the locator is outside the defined coordinate space, the rectangle shall be triggered to send a report with omitted coordinates Oocator position undefined). 10 _lID" Digital Internal Use Only EL"()0070-13 3O-Sep-1991 It the active session receives a ftlter rectangle with omitted coordinates (that is, uses the current position) while the locator is outside the defined coordinate space (position undefined), the rectangle shall be triggered. the nest time the locator is within the de1lned coordinate space. This aDows appHcations to be notified the nest time the locator is within the defined coordinate space without polling repeatedly. 3. If a session that is not the active session receives a :81ter rectangle with expHcit coordinates, it shaD trigger immediately with position undefined. If a session that is not the active session receives a rectangle with omitted coordinates, it shaD trigger the nut time the locator is within the defined coordinate space for that session, which cannot happen until the session becomes active. 4. If the terminal receives a filter rectangle when locator reporting is not enabled, the rectangle shall be triggered to send a report indicating that the locator is not available. This is to avoid hanging the appHcation while it waits for a locator report that wiD never occur. 5 LOCATOR SUPPORT FOR GRAPHICS (LOCATOR PORT EXTENSION) The locator can also be used with the ReGIS Extension, and in Tektronix GIN mode during Tektronix 40lx emulation. See DEC STD 070-8 Video and Printer Standards Reference Manual - ReGIS Graphics Extension for more information on ReGIS commands. 5.1 ReGIS ONE-SHOT GRAPHICS INPUT MODE ReGIS One-Shot Graphics Input Mode is selected with R(IO). Once selected, the application may request graphics input using the report position interactive command, R(P(I». ReGIS One-Shot Graphics Input Mode is provided for backward compatibility with th~. VT240. When an application requests graphics input, a cross hair cursor appears which may be positioned using either the arrow keys (as on the VT240) or a locator device. Pressing any non-arrow key that is not dead on the keyboard or a button on the locator will cause the following actions: 1. The ASCII code or codes for the non-arrow key that was pressed is sent to the host. Each locator button can be programmed to send a sequence of 0 to 6 characters. This allows the locator to be programmed to work with existing applications (see DECLIID, paragraph 5.4). 2. The coordinates of the input cursor at the time the non-arrow key was depressed are sent to the host, expressed as an absolute bracketed extent in user coordinates. 3. The graphics input cursor disappears from the screen and the terminal exits graphics input mode. o While the terminal is in graphics input mode, no further data from the application (screen output) is processed until the locator input is complete and a report is generated. The mouse and arrow keys may be intermixed freely in ReGIS One-Shot Graphics Input Mode. Since the tablet is an absolute positioning device, use of the arrow keys in combination with the tablet would cause inconsistent and confusing behavior. The arrow keys are disabled for input cursor positioning when the tablet is in proximity because the tablet establishes -an absolute screen position. •.• ,. Dlgftal Internal Use Only 11 EL·00070·13 3O·S.p·1991 5.2 . ReGIS MULTIPLE INPUT MODE ReGIS Multiple Input Mode is selected with R(It). In this mode, a graphics input cursor is displayed continuously, and individual locator events may be programme«! to send unsolicited position reports to the host. Characters received from the host are executed instead of buffered, so graphics output and graphics input may occur simultaneously. In Multiple Input Mode, the input cursor continues to be displayed and the mode continues to be in effect until explicitly exited by command R(IO). The position of the input cursor may be polled with R(P(I» at any time while in this mode. If report position interactive is received, the report will be prefixed by the null button because no button transition initiated the report. Since host input is still being processed, it is possible to exit ReGIS (terminal receives String Terminator) while in Multiple Input Mode. If this happens, the ReGIS locator will be disabled until ReGIS is re-entered, at which time multiple input mode resumes with the input cursor at its last known position. In Multiple Input Mode, locator key transitions for which the key definition is not empty (see DECLKD) send a position report as follows: . 1. The locator key definition string for the corresponding button transition is sent. 2. The coordinates of the input cursor at the time of the key transition are sent to the host expressed as an absolute bracketed extent in user coordinates. 3. The report ends with a carriage return. Examples: [241-[102.5,200] The left mouse button was pressed. [241- is the default sequence for left button down transitions. Input cursor is at 102.5,200. [240-[lOO,lOO] The terminal received R(P(I» in multiple input mode. [240- is the null button sequence. 5.3 TEKTRONIX GIN MODE TektrOnD: GIN Mode is only available during TektrOnD: 4010/4014 emulation. GIN mode is similar to ReGIS One-Shot Graphics Input mode with minor exceptions. The GIN request and resulting report sequences are compatible with the TektrOnD: 4010/4014 series terminals, Only the cross hair graphics cursor is supported. Tektronix 4010/4014 emulation is an exception to the architecture implemented by some graphic terminals. 12 _ - Digital Internal Use Only EL-00070-13 5.4 3O-Sep-1991 DEFINING LOCATOR KEYS FOR GRAPHICS INPUT LOCATOR KEY DEFINITION Levels: DECLKD Ix, 2x, 3x, 4x (Locator Port) Purpose: To assign character strings to the locator keys for ReGIS One-Shot or Multiple Graphics Input Mode Format: Des 9/0 Pc $ 2/4 w Ky1 / Std1 / Stu1 7/7 Kyn / Stnd / Stnu ST 9/12 Pc-Clear parameter O-(or omitted) Clear all LKDs before loading new values. All button definition strings are empty (not the default). l-Clear old definition only for keys that are redefined. Kyn / Stnd / Stnu-Key selection code n, slash delimiter (2115), and string parameter n for down and up key transitions. Kyn is a single ASCII digit, and StdiStu is a series of ASCII hex pairs. If Std or Stu is omitted, the corresponding button string will be empty. Key definition strings are delimited with 3/11 (";"). Description: The DECLKD device control string downline loads one or more key definitions for use by the Locator device during ReGIS One-Shot or Multiple Graphics Input Modes. These definitions are called Locator Key Definitions (LKDs). There are six bytes available to each of the locator keys (up to four). A power-up restart or Reset to Initial State (RIS) will cause the LKDs to be set to their default value. LKDs are not affected by Soft Terminal Reset (DECSTR). Default Locator Key Definitions No button transition ESC Kyl down transition ESC Ky2 down transition ESC Ky3 down transition ESC Ky4 down transition ESC [240 [241 [ 243 [ 245 [ 247 - Where: Kyl = Bl =left =barrel button Ky2 = B2 =middle =tip button Ky3 = B3 = right Ky4 = B4 (tablet cursor only) mIIIDIB'" Digital Internal Use Only 13 EL-00070-13 3O-Sep-1991 Up Transitions are ignored by default. The following locator key up definitions are recommended: Ky1 up transition ESC Ky2 up transition ESC Ky3 up transition ESC Ky4 up transition ESC [242 [ 244 [ 246 [ 248 NOTES 1. DECLKD is intended for older appHcations that use ReGIS one-shot input mode with keystroke commands like A, B, C, and 80 forth. These commands can be re-bound to buttons on the mouse by seJlding DECLKD (possibly before running the appHcation). 2. A locator transition for which the key definition is empty will not terminate ReGIS One-Shot Graphics Input Mode. 5.5 COMBINING GRAPHICS AND ANSI LOCATOR INPUT Support for graphics input in ReGIS is extended by allowing ANSI locator input (Text Locator Extension) to operate normally regardless of whether the host output stream is being interpreted as ANSI or ReGIS. If ANSI locator reporting is enabled, keystrokes and locator position reports can be generated without being solicited from the host. Characters received from the host are executed instead of buffered so graphics output and graphics input can occur simultaneously. If One-Shot Graphics Input Mode is entered (ReGIS report position interactive) while ANSI locator reporting is enabled, the locator cursor should change to a cross hair (not mandatory). Pressing a non-arrow key on the keyboard shall send the character for that key followed by the ReGIS user coordinates as a bracketed extent. If a locator button had been pressed instead, the characters for the locator button (if any) would be sent followed by the ReGIS position report, and finally the ANSI locator report (DECLRP) if enabled. Upon sending the ReGIS position report, the terminal shall exit One-Shot Graphics Input Mode, and thf! input cursor shall retum to its previous state. The ANSI locator report is sent in the above situation (if enabled) to keep the two modes independent. This allows filter rectangles to continue operating, and also keeps the ANSI state (last DECLRP seen) consistent with the last button transition. The order of reports is chosen to allow a subroutine to send R(P(I» and read the ReGIS response that follows without regard to whether ANSI locator reports are enabled. Since the ANSI locator report is in the form of a control sequence, it should not interfere with ReGIS reports. No special procedure is used to indicate ReGIS data from the terminal. This is backward compatible with the VT240 since ANSI locator reports can only occur if ANSI locator reporting is enabled. The suspension of graphics output during ReGIS One-Shot Graphics Input Mode remains the same. This is necessary to support rubber band cursors. Rubber band cursors use the ReGIS output position as one reference point, and the locator input position as the other. Rubber band cursors are speci1ied as an option on the ReGIS report position interactive command. 14_'" Digital Internal Use Only EL.Q0070-13 6 3O-Sep-1991 LOCATOR DEVICE STATUS DSR DEVICE STATUS REPORT (LocatorStatu8) Levels: Purpose: 1x, 2x, 3x, 4x (Locator Port or Text Locator) Cause the terminal to return the current functional status of the Locator Format: CSI 9/11 ? 3/15 Ps Ps n 6/14 Description: The DSR request with private selective parameter 55 or 56 causes the terminal to respond with a similar DSR control function, using a parameter from the list below to indicate its current functional status. 155 153 150 158 Request locator status (command from host) No locator Locator ready Locator busy 156 157;0 157;1 157;2 Host requests identity of device on locator port ''Unknown Locator" response Device is Digital Corporate Mouse Device is Digital Corporate Tablet The no locator response indicates no locator is currently plugged in, or the last device plugged in could not be initialized or has not transmitted a successful self-test message. The locator ready response indicates a locator device is plugged in and has transmitted a successful self-test message. The locator busy response can occur when an alternate session has selected locator controller mode (see following). "II'" Digital Internal Use Only 15 EL-00070-13 7 3O-Sep-1991 LOCATOR CONTROLLER MODE (GUIDELINE-DOCUMENTED EXCEPTION) Locator Controller Mode allows the host to communicate directly with the locator device without terminal intervention (similar to printer controller mode), When locator controller mode is set, all data received at the host port is transferred directly to the locator port without interpretation by the display terminal. The only exceptions are the communications control characters XONIXOFF (if enabled), and the control sequence to disabled locator controller mode. All characters received at locator port are transferred to the host port without interpretation. The host assumes full responsibility for the locator device. Locator controller mode is desirable for two reasons: 1. It allows the host to explicitly initialize or configure locator devices. A foreign locator device might not wake up in Digital format, for example. 2. It allows the locator port to be used for other auxiliary input devices. Locator controller mode uses the Media Copy control sequence for a secondary auxiliary device: Format: CSI 9/11 3/6 CSI 9/11 3/7 16 _Ia~ 6 7 i 6/9 (Turn off locator controller mode) i 6/9 (Turn on locator controller mode) Digital Internal Use Only EL"()0070-13 30-Sep-1991 APPENDIX A.1 A REFERENCED DOCUMENTS EL-Class Digital Documents EL-Class Number Document litle EL"()0070-01 DEC SrD 070-1 Video Systems Reference Manual - Concepts and Conformance Criteria ' EL-00070-08 DEC SrD 070-8 Video and Printer Standards Reference Manual - ReGIS Graphics Extension Use VTX SMC to order copies of EL-class documents from Standards and Methods Control. Send distribution questions to JOKUR::SMC or call DTN: 234-4423. Digital Internal Use Only 17 EL-00070-13 30-Sep-1991 Digital Internal Use Only EL·00070·13 INDEX D DECEFR, 10 DECELR, 5 DECLKD,13 DECLRP, 6 DECRQLP, 8 DECSLE, 9 Device Status Report control function, 15 DSR,15 E Enable Filter Rectangle control function, 10 Enable Locator Reports control function, 5 F Filter rectangle definition, 3 Filter Rectangle, 10 definition, 3 Locator Device Status, 15 Locator Key Definition control function, 13 Locator Movement, 10 Locator Report control function, 6 R ReGIS Multiple Input Mode, 12 ReGIS One-Shot Graphics Input Mode, 13 Request Locator Position control function, 8 S Select Locator Events control function, 9 Session definition, 3 V VIrtual terminal definition, 3 Interfaces external, 2 internal, 2 L Locator -- W Window definition, 3 Window manager definition, 3 Digital Internal Use Only Index-1 EL·00070·13 30.Sep·1991 +-------------------------------------------------------------------+ I READER COMMENTS I I I I Your comments and suggestions will help Standards and Methods I I I Control improve their services and documents. +-------------------------------------------------------------------+ Did you request this document? Please comment. time? - - If so, did it arrive within a satisfactory period of What are your impressions of this document? Consider format, organization, completeness, readability, and illustrations. - - - - - - - F O L D ON THIS LJNE------------ Did you find technical or clerical errors in this document? If so, please specify the page number(s) and the error(s). Are the instructions for the update package clear? =-_ Was an index available? If not, is one needed? - - - : - , Do you have other suggestions for improving this document? The following information is optional: Name -------------------------------- Mailstop ---------- Department ------------------------- Node ------------- Send your comments to JOKUR::PROJECTS, or fold, staple, and send this page through interoffice mail to: +-------------------------------+ I READERS' COMMENTS I I STANDARDS AND METHODS CONTROL I I NR04/D4 I +-------------------------------+ CHAP'I~F,R 14 STATUS DISPLAY EXTENSION EL-00070-014 26-0ct-1990 Page 14-1 VSRM - status Display Extension Digital Internal Use Only VIDEO SYS'l'gMS REFERENCE MANUAL STATUS DISPLAY EXTENSION Document Id.entifier: A-DS"""li~L00070-'14 0 Rev AXOl, 26-0ct-1990 ABSTRACT: This document describes the interface to video terminals implementing a distinct on screen status display. It specifies both the application program interface to select and control the status display, and the user interface including general appearance of the status display. The Status Display forms an extension to Level 2 and is required at Level :3 or higher of the Character Cell Display service classes. APPLICABILITY: :t-1andatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. Additional requirements are defined in the STATUS: FOR REVIEW ONLY type $ VTX SMC for expiration date. +- - - -..". - _....----.- -- - --.- _._---_.._------------ --_ ...... --- ._-- .. _.-...,,, .. -....__.- - - - - - ." --+ I The material contained within this document is assumed to I define mandatory standards unless it is clearly marked as: (a) not mandatory; or (b) guideline. Material that is marked as "not Tn<-t.ndatory" is consideredi:.o be of potE:~nt.i. al benefit to the corporation and should be followed unless there are good reasons for non·'compliance. "Guideline" defines approaches, and techniques that are considered to be good practice, but should not be considered as requirements. I +------------------------------ --------------------------------+ This documont is confidential and proprietary. It is an unpublished work p~otected under the Federal copyright laws. Copyright (c) Digit.aI Equipment. Corporation. reserved. Digital Internal Use Only 1990. A.II rights EL-00070-014 26-0ct-1990 Page 14-2 VSRM - Status Display Extension Digital Internal Use Only 'rITLF.: VSRM - STA'l'US DISPLAY EXTENSION DOCUMENT IDENTI.E!'IER: .A-DS-EL00070-14-0 Rev AX01, 26-0ct-1990 REVISION HISTORY: Original Draft VT340 Functional Spec 23-0ct-1985 Revision AX01 ?6-0ct-1990 Document Management Group: Terminal Interface Architecture (STI) Responsible Department: VIPS Terminals Architecture Responsible Person: Peter Sichel SMC Writer: APPROVAL: This standard, prepared by the Desktop Systems Group, has been reviewed a.nd recommended for approval by the general review group for its category. Peter Sichel, Standard Owner Video, Image, and Printing Systems Eric Williams, Standards Process Manager Direct cequests for: further. .Lnformal.::.i on to Peter SJ.chel, DSGl-2/C7, DTN 235-8374, HANNAH::TE~l~RCH Use VTX SHC to order copies of this document from Standards and Methods Control. Send distribution questions to JOKUR::SMC or call DTN: 287-3724. EL-00070-014 26-0ct-1990 Page 14-3 VSRM - status Display Extension Digital Internal Use Only CONTENTS CHI'..PTER 14 STATUS DISPLAY EX'I'ENSION 14-··4 INTRODUCTION . . . . . . . 14.1 14-·-4 FUNCTIONAL DESCRIP'rrON . . 14.2 14··4 14.2.1 Appearance of the Status Display 14.2,1.1 14--5 Error Line ........ . 14···5 Indicator Status Line . . . . 14.2.1.2 Implementation Guidelines for Indicators 14-6 14.2.1.3 14--7 14.2.2 Operat:ion of Host. r,vri table status Line Effect of ANSI controls 011 tho Status 14.2.3 ].4-8 Display . . . . . . . .. . ... 14--10 14.2.4 Transmission of the Status Display . . 14.2.5 Behavior of the status Display in VT100 14-10 (Level J) and VT5~ Mode 14.3 CONTROL FUNCTl:ONS Select Active Status Display Select Status Type Display 14-11 11 . (J CHANGE HI S'I'ORY 14-13 14-13 1/1.4.1 ..... Original draft to Rev AX01 EL-00070-014 26-0ct-1990 Page 14-4 VSRN -. Status Display Extension Digital Internal Use Only 14.1 IN'I'RODUCTION -------==::-:=-:= INTRODUCTION The Status Display is a Level 3 feature (Level 2 extension) which provides the ability to display at least one additional line of 80 characters underneath the main display. The Status Display may be configured as Host Writable to form a separately addressed Logical Display, or as an Indicator Line to display local terminal state information. 14.2 FUNCTIONAL DESCRIPTION - - - - - - ---------11.2 FUNCTIONAL DESCRIPTION Level 3 or higher conforming devices shall allow an additional line of characters to be displayed on the screen as a Status Display. The Status Display shall be one or more lines high and contain the same number of columns as the main Logical Display (u.sually 80 or 132) . The type of Status Display can be selected by host control function or from Set-Up as one of the following: (1) No Status Line (factory default); (2) Indicator Status Line (not mandatory fo~ workstation or PC terminal emulators); (3) Host Writab].e Status Line. The type Status Display selected is saved in non-volatile memory (if available), so it becomes the power-up default. The Indicator Status Line is required on traditional video termil1als, but is not mandatory fo~ workstation or PC tenninal emulators because local device information is often maintained separately from the terminal in these implementations. The Indicator Status Line is always selected while in Set-Up. If the terminal needs to display an error or ''larning message, the Indicator Status Line is temporarily replaced with the Error Line until the next keystroke. The Host Writable Status Line can be considered ~ permanent separate logical display, that contains its own ANSI text state and settings. In general, controls which affect some portion of the Main Display do not affect the contents or the ANSI state of the Status DJ.splay_ Exceptions ace noted in this section (DEC STD 70-14). The cursor may not be positioned within the Status Display, unless the DECSASD (Select Active Status Display) command is issued. 14.2.1 14.2.1 Appearance of the Status Di.splay Appearance of the Status Display When the Status Display is disabled, the line where it would appear shall blend into the display border. Guidelines: On a llon~over~scanned non-windowed display, t~he area should appear EL-00070-014 26-0ct-1990 Page 14-5 VSRl1 .- Status Display Extension Digi tal Internal Use Only black; On an over-scanned non-windowed display, the area should appear the same as the screen background; On a windowed display, the size of the terminal window may change to include the status line. Visual side effects caused by enabling or disabling the Status Display should be minimized. When the Indicator Status Line is enabled, it's background is the reverse of the Main Display background as indicated by the setting of Screen Mode (DECSCNM) 0 When the Host Writable Status Line is enabled, it has the same background as the main display. The reverse video character attribute may be used to cause text on the status line to appear in reverse video with respect to the main display. Screen Mode (DECSCNM) changes the background of both the status line and the main display. If Column Mode (DH;CCOLiYl) is changed, the width of the Stat:us Display changes. This will l.eave 52 blank spaces on the right hand side of the Indicator status Line in 132 Column Mode. The spacing between indicators will not be increased in 132 Column Mode, however, the host will be able to place more than 80 characters into the Host writable Status Line in 132 Column Mode. 14.2.1.1 14.2.1.1 Error Line Error Line The Error Line appears when it is necessary to indicate the result of some local terminal operation that would not otherwise be evident. An error in Set-up for exampJ.e, or a change in session management state. The text of the message replaces the currently displayed Status Line (Indicator or Host Writable) or appears if No Status Line is being displayed. The text of the message continues to be displayed until the user presses a key 011 the terminal keyboard, which restores the contents of the Status Display. The host may not directly program or affect the Error Line. 14.2.1.2 14.2.1.2 Indicator Status Line Indicator Status Line The Indicator Status Li.ne Ghall contain a number of indicators refJecting tIle state of the terminaJ and options attached Lo the terminal (e.g, printer). The text of the indicators on the Indicator status Line will be displayed in the Set-Up language. The indicators shall be placed in fixed positions on the Indicator status Line, and there shall be at loast one space (SP, 2/0) character between indicators for legibility. Indicators are updated asynchronously, as the state of the feature they are monitoring changes. The interval between the change in EL-00070-014 26-0ct-1990 Page 14-6 VSRM - status Display Extension Digital Internal Use Only the state of a feature and the update of the appropriate indicator shall not exceed 80 milliseconds. Indicator changes are not queued: when an indicator is updated on the Stat:us Display,i.t:. shall reflect the state of that feature at the time of the update. The following indicators are required: 1. Active Session Indicator if the Session Management Extension is present and the indicator is not otherwise available. Indicates the session to which keyboard input is currently directed. 2. Active Position Indicator. Displays the current cursor position, row and column. Includes the page number if more than one page is available. 3. Graphics Input Position Indicator if some graphic input mode is enabled through ReGIS, Tektronix, or the Text Locator extension. Indicates the pixel row and column of the input position. 4. Edit Mode Indicator if the Local Editing Extension is present. Indicates whether Edj.t Mode (DECEDM) is enabled. 5. Insert-Replace Mode Indicator if the Local Editing Extension is present and the terminal is in Edit Mode. Indicates whether new characters typed into the Logical Display will be inserted, or overstrike existing characters. 6. Printer Status Indicator if the Printer Port Extension is present. Indicates the status of the attached printer if any, and the print mode. 7. Modem Status Indicator if modem control is supported and enabled. Indicates the status of the DSR signal on the communications port. 14.2.1.3 14.2.1.3 Implementation Guidelines for Indicators Implemen·tation GuideLines for Indica.tors This SUbsection gives suggested formats for Indicators on the Indicator Status Line based on existing implementations. The VT340 Indicator Status Line might appear as follows (spacing is approximate) : 2 1(24,008) Edit Overstrike Mode Printer: None Modem: DSR The Active Session Indicator is a single digit at the left most edge of the status line indicating the session to which keyboard input is currently directed. Session 2 in the example above. The Active Position Indicator gives the current page number within Page Memory followed by the cursor rmv and column number in parenthesis. Page 1, line 24, column 8 in the example above. The Graphics Input Position Indicator is only visible when EL-00070-014 26-0ct-1990 Page 14-7 VSRM - status Display Extension Digital Internal Use Only graphics input is enabled. The indicator might appear as H[123,456]/I pixel row 123, column 456. The Edit Mode Indicator is only visible when DECEDM is active. The Indicator might appear as "Edit". The Insert-Replace Mode Indicator toggles between "Overstrike Mode" or "Insert Mode". This indicato!.' need only be displayed while Edit Mode is in effect. The Printer Status Indicator shows the state of an attached printer if any (see Printer Port Extension). The Printer Status Indicator can take the following values: Printer: Printer: Printer: Printer: Printer: None Ready Not Ready Auto Print Controller The Modem Status Indicator shows the status of the DSR signal when Modem Control is selected on the communications port. This indicator is not displayed if Modem Controls are not selected on the communications port. The J:vlodem Sta.I .. us Indj.ca.tor can t.ake t.hA following values: ~lodem: DSR Modem: No DSR 14.2.2 14.2.2 Operation of Host Writable Status Line Operation of Host Writ.ahle Status Line If the Status Display is enabled to a Host Writable Status Line, i.s Clb.le to Lreat t.he Stat:us DisplCly as a separate Log:!..ca.l Display, generally 1 line by 80 or 132 columns. the host To write text into the Host Writable Status Line, the host must issue the DECSASD (Select Active Status Display) command. A typical operation by the host would be to send a DECSASD command to switch to the Host Writable Status Line, send a line of text to the line, a.nd then send anotJ:le.r DECS1\.SD command to .ret.urn to the l'-la.in DispLay . sepa.ra.te ANSI state is rna i.ntained for: the Host writable St.a.t.us Line. For example, the Status Line could have the USAscrI invoked into GO, while the Main Display has the Line Drawing character set invoked into GO. When the DECSASD co:m.rr.and is recognized, the terminal must switch and use thc~ COITect state informat.ion fur the Host Writable Status Line or the Main Display. The following information is maintained separately fer the Host ~vritable st.atus Line and the Main Display: .A. EL-00070-014 26-0ct-1990 Page 14-8 VSID1 - Status Display Extension Digital Internal Use Only o o o o o o o o 14.2.3 14.2.3 Active position Current Graphic Rendition (and other character attribute values) Origin Mode the currently designated GO, G1, G2, dnd G3 sets the currently invoked GL and GR sets the single shift (SS2, SS3) states the Auto-Wrap flag Cursor Save Buffer (DEeSe and DEeRe) Effect of .ANSI controls on the Status Display Effect of ANSI controls on the Status Display Several ANSI control functions affect both the Main Display and the Status Display. When the Host writable Status Line is selected, as described above, any data received by the terminal is placp.d into the Status Displa.y, and most ANSI control functions received will affect only the Status Display. There are some control functions which are executed differently, depending on whether the active position is in the Main or Status Display. 1. Cl Transmission The 7-bit or 8-bit transmission selection affects both the Main and Status Displays. 2. Character Set Selection An independent state is maintained for the invoked and designated character sets, as well as the associated shift states. The User-Preference Supplemental Character Set selection affects both the Main and Status Displays. 3. Cursor Position Controls If there is onlv one rmv in the Status Display, only the column parameters in cursor positioning control functions (e.g. CUP, etc.), or commands which affect areas dependent on character positions (e.g. ED, DCH, etc.) are significant. Horizontal cursor positioning commands (e.g. CUF, CUB) are recognized, but vertical cursor positioning commands (e.g. CUD, CUU) are ignored. The line number sl1.all be reported as 1, when necessary, 4. DECANM - ANSI/VT52 Mode This sequence is ignored jf received in the Status Display. If received in the Main Display, the contents of the Host writable Status Line are left unchanqed. If and when the VT52 Mode Enter ANSI Mode command is issued, the contents of the Host Writable Status Line are left unchanged. EL-00070-014 26-0ct-1990 VSRM - Status Display Extension Page 14-9 Digital Internal Use Only 5. DECCOLM - Colomn mode DECCOLM affects both the Main Display and the Status Display simultaneously. The number of columns in the Host writable Status Line cannot be independently controlled. Receipt of this sequence will clear both the Main Display and the Host Writable Status Line. The Status Display cursor is moved to the home position. 6. DECRQSS - Request Selection or Setting The Status Display Type (DECSSDT) and Active Status Display (DECSASD) may be queried through DECRQSS. 7. DECSASD - Select Active Status Display This control function is the recommended method to exit the Status Display. 8. DECSCL - Select Conformance Level Select Conformance Level performs a Soft Terminal Reset (see DECSTR below) . 9. DECSCLM - Scrolling Mode This mode affects both the Main and Status displays. 10. DECSCNM - Screen Mode The Main Display and the Status Line are affected by the setting of this Mode. The screen mode of the Host writable Status line cannot be independently controlled. 11. DECSCPP - Set Columns Per Page DECSCPP affects both the Main Display and the status Display simultaneously. The number of columns in the Host Writable Status Line cannot be independently controlled. 12. DECSSDT - Select Status Display Type If the status Display Type is chosen to be somethi.ng other than "Host Writable", the Status Display will be exited, and the selected Status Display Type will be imaged (either "Indicator" or "None"). 13. DECS'l'R The Status Display will be exited, but not erased. 14. DECTCEM - Text Cursor Enable Mode Each of the Main and Status Display cursors may be individually enabled or disabled. 15. Fo~cmat Effectors (BS, LF, VT, FF, IND, NEL, etc.) Affect only the Status Display. If scrolling occurs as a result of a Format Effector, a single line Host Writable Status Line is erased. EL-00070-014 26-0ct-1990 Page 14-10 VSRM - status Display Extension Digital Internal Use Only 16. IRM - Insert Replace Mode Insert/Replace Mode affects both the Main and Status displays. 17. Keyboard Functions All keyboard functions are executed regardless of the selected display (Main or Status) . 18. Printer Functions All printer functions are executed regardless of the selected display (Main or Status) . 19. RIS - Reset to Initial State The Status Display will be erased and exited. 20. Tabs Tabulation stops affect both the Main and Status displays. 14.2.4 14.2.4 Transmission of the Status Display Transmission of the Status Display The characters in the Status Display can be transmitted to the printer by "Print Composed Main Display". Print Page and Auto Print Mode will never transfer characters on the Status Display. 14.2.5 14.2.5 Behavior of the Status Display in VT100 (Levell) and VT52 Behavior of the Status Display in VT100 (Level 1) and VT52 Mode Mode When VT100, or VT52 mode is entered, the Status Display will remaIn visible, if it was enabled. The sequences which program or change the type of the Status Display will not be recognized, therefore the type of Status Display may not be changed from the host in these modes. Sequences which globally affect the Status Display will still affect the Status Display, and the Status Display type may be changed from Set-Up. The Indicator Status Line will remain visible in Set-up mode. EL-00070-014 26-0ct-1990 Page 14-11 VSru1 - Status Display Extension Digital Internal Use Only 14.3 CONTROL FUNCTIONS 14.3 CONTROL FUNCTIONS SEI,ECT ACTIVE STATUS DISPLAY Levels: DECSASD 2x, 3, 4 Purpose: Select whether new characters are written to the Main Display or the Status Display. Format: CSI Ps 9/11 $ 2/4 } 7/13 Description: Causes the selection of the active status display, either the rJ!ain Display, oc Status Display (also called t.he Host Writable or Remote Status Line). The display is specified by the selective parameter, Ps: Fs Display a Main Display (default) Host Writable Status Line 1 Note that the Host writabJe Status Line must be selected through DECSSDT for DECSASD to be able to select the Host Writable Status Line. EL-00070-014 26-0ct-1990 Page 14-12 VSRM - Status Display Extension Digital Internal Use Only SELECT S'l'A'raS DISPLAY TYPE Levels: 21<, DECSSDT 3, 4 Purpose: To select the type of status line to be displayed: indicator; host-writable; or none. Format: CSI Ps 9/11 $ 2/4 7/14 Description: This sequence allows the host to choose the type of Status Line that is displayed. The type of Status Display depends on the value of the selective parameter: Ps Status Line Type o No Status Line Indicator (Local) status Line Host Writable (Remote) Status Line 1 2 Notes: o If Ps is omitted, it is assumed to be 0, which will disable the Status Display. o When the Status Line Type is changed, it is initialized. Specifically, this means that the Host Writable (Remote) Status Line is cleared, and the Indicator (Local) Status Line is set to the Set-Up indicators, and will show the current status of the terminal. o This control has no effect on the Status Line displayed in Set-Up Ivlode; the Indicator Status Line is always displayed in Set-up Mode. a The type of Status Lina can also be changed through a Set-up field. o The Status Display type may not be "locked" as a User-Preference Feature. EL-00070-014 26-0ct-1990 Page 14-13 VSRM - Status Display Extension Digital Internal Use Only 14.4 CHANGE HISTORY 14.4 CHANGE HISTORY 14.4.1 14.4.1 Original draft to Rev AXOl Original draft to Rev AX01 1. Added Abstract and Introduction. 2. Status Display is an extension to Level 2. DECSSDT and DECSASD do not work in Level 1 (VT100 mode) . 3. Listed all sequences which affect status line including DECCOLM and DECSCPP. EL-00070-014 26-0ct-1990 Page Index-1 VSRM - Status Display Extension Digital Internal Use Only DECSASD, 14-11 DECSSDT, 14-12 Error Line, 14-5 Select Active Status Display control function, 14-11 Select Status Display Type control function, 14-12 Status Di.splay, 14-4 Indicators, 14-6 Transmission, 14-10 VT100 and VT52 mode, 14-10 Status Line, 14-4 25th Status Line, 14-4 VSRM - VT52 Emulation -EL-00070-0A *** COMPANY CONF - DEC Internal Use Only- 18-Mar-1985 VIDEO SYSTEMS REFERENCE Page A-I MANUA~ VT52 Emulation Document Identifier: A-DS-EL00070-0A-O Rev. AXIl, 18-Mar-1985 ABSTRACT: This document is an architectural statement of future terminal support for VT52 emulation. It includes the features of VT52 mode as documented in the VTI02 User Guide. It does not include features of the VT100 family implementation which are a result of cross-over with ANSI mode and are not documented. These features should be considered undefined conditions in terminal products, and cannot be relied on by software. Furthermore, the architecture does not include all of the features of the actual vT52 products, because the intention of the architecture is to define the level of support necessary to maintain software products which already run compatibly on the entire DEC terminal product set. APPLICABILITY: SARA Formal Cross - Componen-t Standard. Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. Additional requirements are defined in the section on "Concepts and Conformance Criteria". STATUS: FOR REVIEW ONLY + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -r - - + This'document has been placed in the SARA "Formal I Cross-Component Standard" category. The material contained I i within this document is assumed to define mandatory standards unless it is clearly marked as (a) not mandatory or (b) guidelines. Material which is marked as "not mandatory" is considered to be of potential benefit to the corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques i which are considered to be good practice, but should not be considered as requirements. The procedures for modifying or evolving this standard are contained within the contents of this document. . I +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ I I +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ I !. FOR INTERNAL USE ONLY I +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~ - - - - - - --+ VSRM - VT52 EmulationEL-00070·0A *** COMPANY CONF - DEC Internal Use Only Page A-2 18-Mar-1985 TITLE: VIDEO SYSTEMS - VT52 Emulation DOCUMENT IDENTIFIER: A-DS-EL00070-0A-0 Rev. AXIl, l8-Mar-1985 REVISION HISTORY: Original Revision Revision Revision Revision Revision Revision FILES: User Documentation Draft 22-0ct-1982 0.1 16-Nov-1982 0.2 19-Nov-1982 0.3 25-Dec-1982 1.0 03-Feb-1983 AXOI 28-Feb-1983 AXIO 15-May-1983 EL070SA.mem Internal Documentation EL070SA.rno EL070SA. rnt EL070SA.rnx Document Management Group: Terminal Interface Architecture Responsible Department: Video Architecture Group Responsible Individual: Peter Sichel ACCEPTANCE: This document has been approved by the Manager of the Video Architecture Group based on a comprehensive review of its individual sections by the members of the SARA component groups working Terminal Interface Architecture issues. The list of individuals on the review and approval list are on file in Standards and Methods Control. Direct requests for further information to Peter Sichel, PK03-l/l0C, DTN 223-5162, RANI::VIDARCH Copies of this document can be ordered from: Standards and Methods Control APOl/F7, DTN 289-1414, JOKUR::SIMONETTI • VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A- 3 l8-Mar-1985 CONTENTS APPENDIX A VT52 EMULATION A.l A.l.l A.l. 2 INTRODUCTION . Purpose Scope A.2 A.2.1 A.2.2 A.2 . 3 STATE DESCRIPTIONS . Display . . . . . Active Position . . . . . Tab Stops, Fixed . A.3 PARAMETERS AND CONSTANTS . A- 8 A.4 SUMMARY OF STATE VARIABLES • A- 8 A.5 A.5.1 A.5.2 COMMAND SUMMARY Required Commands . . . . . Character Set Extension VT52 Printer Port Extension ANSI Printer Port Commands . Undefined Functions Programming Guidelines . . . A.5.3 A. 5.4 A.5.5 A. 5.6 . • • • A- 5 • A- 5 • A- 5 • A- 6 • A- 6 · A-7 · A-7 • • • • • • • •• • • • . . . . . • • • • A-9 A- 9 A-9 A-9 A-I 0 A-II A-II A.6 GRAPHIC CHARACTER REPLACEMENT Replace Graphic Character A-12 A.7 CONTROL FUNCTIONS Identify Enter VT52 Emulation Mode Exit VT52 Emulation Mode Enter Alternate Keypad Mode Exit Alternate Keypad Mode Enter Graphics Mode Exit Graphics Mode Cursor Up Cursor Down Cursor Right Cursor Left Cursor Home Direct Cursor Address Back Space Horizontal Tab Line Feed Carriage Return Reverse Line Feed Erase To End of Line Erase To End of Display A-13 VSRM - VT52 Emulation. EL-00070-0A *** COMPANY CONF - DEC Internal Use Only. l8-Mar-1985 Page A- 4 A.8 EXTENSIONS TO THE VT52 EMULATION ARCHITECTURE A-36 A.8.l Print Functions A-36 A.8.I.l Modes .. . . . . . . . . . . A-36 Enter Auto Print Mode Exit Auto Print Mode Enter Printer Controller Mode Exit Printer Controller Mode Print Cursor Line Print Screen A.9 A.9.1 A.9.2 CHANGE HISTORY . . . . . . . ... . Revision 0.3 To Rev 1. 0 . . . . Rev AXIO To AXIl . . . . . A- 43 A- 43 A- 44 VSRM - VT52 Emulation EL-00070-oA *** COMPANY CONF - DEC Internal Use Only A.I A.I.I Page A-5 l8-Mar-1985 INTRODUCTION Purpose VT52 Emulation defines a display service class for character cell display operations. The emulation defined here is a consistent and compatible subset of the functions provided by the actual VT52 family of DEC terminals and VT52 emulation mode as documented in the VTI02 User Guide. It does not include features of the VT100 family implementation which are a result of cross-over with ANSI mode and are not documented. These features should be considered undefined conditions in terminal products, and cannot be relied on by software. Furthermore, the architecture does not include all of the features of the actual VT52 products, because the intention of the architecture is to define the level 'of support necessary to maintain software products which already run compatibly on the entire DEC terminal product set. A.I.2 Scope This specification will be included as an appendix to the Video Systems Reference Manual (Video SRM). As an appendix, it is not considered a formal part of the architecture, and is not a requir~d part of conforming product implementations. DEC products which implement this mode, however, should do so in accordance with this specification to insure compatibility with existing software. Software conforming to the architecture will not use any of the functions defined in this appendix. NOTE The algorithms defined in this appendix apply only to the display logic which exists when VT52 emulation is entered correctly (i.e_, all UNDEFINED conditions are preset to their prescribed values). For example, VT52 emulation assumes that tab stops are preset to modulus 8 intervals_ If this is not done, the logic as described here is not guaranteed. VSRM - VT52 Emulation .EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.2 page A-6 l8-Mar-l985 STATE DESCRIPTIONS A.2.l Display The display logic of the VT52 emulator provides the following features: o Character cell array with 80 columns X 24 lines o Home (1,1) at the top left corner o No character attributes o No line attributes o No screen attributes o ASCII character set o Line Drawing character set (* extension *) o Tabs at 8 column intervals. LINE_TYPE = 1 .. MAX_NUM_LINES; (* 1 to 24 lines *) COLUMN TYPE a l .. MAX.NUM.COLUMNS; (* 1 to 80 columns *) (* character = character code, character set *) CHARACTER. TYPE = RECORD CODE: CHARACTER_CODE_TYPE; CHARACTER SET: END; The character set selection is an extension because the VT52 and other terminals do special graphics differently. (* display = two-dimensiona+ array of 24 lines by 80 columns *) DISPLAY: ARRAY [LINE.TYPE,COLQMN.TYPE] OF CHARACTER. TYPE; VSRM - VT52 EmulationEL-00070-0A *** COMPANY CONF . DEC Internal Use Only A.2.2 Page A-7 18-Mar-1985 Active Position The device maintains a position register known as the "Active Position", which serves as a reference point for graphic character replacement and control functions. CHARACTER - POSITION TYPE LINE: LINE_TYPE; COLUMN: COLUMN_TYPE; END; = RECORD ACTIVE POSITION: CHARACTER_POSITION_TYPE; ~.2.3 Tab Stops, Fixed The device provides a set of horizontal tabulation stops whose positions are fixed in hardware and cannot be changed . . HORIZONTAL_TAB_STOPS: ARRAY [COLUMN_TYPE] OF BOOLEAN; tab stops = columns 9,17,25,33,41,49,57,65,73 VSRM - VT52 Emulation. EL-00070-0A *** COMPANY CONF - DEC Internal Use Only· 18-Mar-1985 A.3 page A-8 PARAMETERS AND CONSTANTS This section defines the default values and ranges applicable to the terminal state information. (* Display Parameters *) MAX_NUM_LINES = 24; MAXNUM COLUMNS = 80; (* Note: an empty character is a character position in the logical display in which no character code appears, and thus no character is rendered in the visual display for this position. *) TYPE A.4 EMPTY CHARACTER = 0; LINE_TYPE = 1 .. MAX_NUM_LINES; COLUMN_TYPE = 1 .. MAX_NUM_COLUMNS; CHARACTER - POSITION - TYPE = RECORD LINE: LINE_TYPE; COLUMN: COLUMN_TYPE; END; CHARACTER_CODE_TYPE = 0 .. 127; GRAPHIC_CHARACTER_SET_TYPE = (ASCII,LINE DRAWING); CHARACTER TYPE = RECORD CODE: CHARACTER_CODE_TYPE; CHARACTER. SET: GRAPHIC. CHARACTER. SET. TYPE; (* extension *) END; SUMMARY OF STATE VARIABLES The following values represent the state information necessary to maintain a VT52 Character Cell Display. VAR ACTIVE POSITION: CHARACTER POSITION. TYPE; CURRENT.SET: GRAPHIC.CHARACTER.SET_TYPE; KEYPAD.MODE: (NUMERIC,APPLICATION)i EMULATION.MODE: (VT52.0FF,VT52.0N)i VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF -DEC Internal Use Only A.5 A.5.1 Page A-9 18-Mar-1985 COMMAND SUMMARY Required Commands This is a list of the VT52 commands supported in the architectural specification: Identify Enter VT52 Emulation Mode Exit VT52 Emulation Mode Enter Alternate Keypad mode Exit Alternate Keypad mode Enter Graphics Mode Exit Graphics Mode Cursor Up Cursor Down Cursor Right Cursor Left Cursor to Home Direct Cursor Address Backspace Horizontal Tab Line Feed Carriage Return Reverse Line Feed Erase to End of Line Erase to End of Screen A.5.2 Character Set Extension This command is in an extension to the VT52 specification because in the VT52 the character set is vT52 Special Graphics and in the VT100 and all future terminals it is the Line Drawing set. Select Special Graphics Set A.5.3 VT52 Printer Port Extension The following commands are in an extension to the VT52 architectural specification because they are not included in the standard VT52 (they are in the VT52 with printer option): Print Screen Enter Auto Print Mode Exit Auto Print Mode A.5.4 ANSI Printer Port Commands The following commands control modes that are not in the VT52 with printer port but are carry-overs from VT100 printer port modes. Print Cursor Line VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Enter Print Controller Mode Exit Print Controller Mode Page A-IO O~ly~ 18-Mar-1985 VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.5.5 page A-II 18-Mar-1985 undefined Functions The following modes and commands have undefined results and states both when entering and exiting VT52 Mode emulation. Insert/Replacement Mode Printer Extent Mode Printer Form Feed Mode New Line Mode Origin Mode Column Mode Screen Mode Keyboard Action Mode Cursor Key Mode Line Attributes Character Attributes Character Sets (The VT100 VT52 emulator special graphics and) (the VT52 special graphics are not the same. ) Scrolling Region Scrolling Mode Auto Wrap Mode Auto Repeat Mode Enter Hold-Scre~Mode (VT52 function not emulated) Exit Hold-Screen _Mode (VT52 function not emulated) Tabs NOTE The VT52 has hardware set tabs. The VT52 emulator uses the tabs that were set in the terminal before entering the emulator. For correct use of the VT52 emulator, application software should set the tabs to the VT52 settings before entering the emulator. A.5.6 programming Guidelines Because of the undefined interactions listed above, the terminal should be switched between VT52 emulation and ANSI mode only at program initialization. Frequent switching between modes will leave the terminal in an undefined state. ( VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.6 Page A-12 18-Mar-1985 GRAPHIC CHARACTER REPLACEMENT REPLACE GRAPHIC CHARACTER purpose: To place a graphic character in the display at the Active Position. Format: implied on receipt of graphic character data Description: This procedure is called on receipt of graphic character data to place the data in the appropriate position in the display structure. The character code and the current character set are stored in the display list. The Active position is advanced by one column each time this operation is performed. State Affected: DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPE] OF CHARACTER_TYPE; ACTIVE_POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE REPLACE GRAPHIC_CHARACTER VAR X: COLUMN_TYPE; BEGIN DISPLAY[ACTIVE_POSITION.LINE,ACTIVE_POSITION.COLUMNj .CODE:= EVENT.CODE_VALUE; (* character set extension only *) DISPLAY[ACTIVE_POSITION.LINE,ACTIVE_POSITION.COLUMN] .CHARACTER_SET:= CURRENT_SET; IF ACTIVE_POSITION. COLUMN < MAX_NUM_COLUMNS THEN ACTIVE_POSITION_COLUMN:= ACTIVE_POSITION_COLUMN + 1; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.7 • Page A-13 18-Mar-1985 CONTROL FUNCTIONS IDENTIFY Purpose: Request terminal type identification. Format: ESC z 1/11 5/10 Description: The Identify command is a request from the computer for an identifying sequence. The VT52 emulator response is ESC / Z (1/11 2/15 5/10) (same as vT52 terminal). Notes: 1. Most terminals also respond to this request when they are in Levell or Level 2 operation. Then they respond with an ANSI Device Attributes sequence that includes a DEC private registered value that indicates the actual termi-na1 type. Conforming software should not rely on this response to the DECID sequence. (See IDENTIFY in the chapter "Terminal Management".) State Affected: None Algorithm: PROCEDURE IDENTIFY; BEGIN IF EMULATION MODE = VT52 ON THEN WRITE (* to host *) (ESC,'/Z'); END; Known Deviations: None Page A-14 VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only l8-Mar-1985 ENTER VT52 EMULATION MODE Purpose: Disable ANSI controls and turn on VT52 emulator. Format: CSI ? 2 1 9/11 3/15 3/2 6/12 Description: The Enter VT52 Emulation Mode control disables further recognition of ANSI standard control functions in the terminal and turns on the VT52 emulator. This control is only recognized in Levelland Level 2 Character Cell Display operation. Notes: 1. Execution of this control from Levell or Level 2 operation does not cause the physical state of the device to change (i.e., the display is not cleared, and the Active position does not move, etc.). 2. In Conformance Levels 1 and 2, most VT52 control sequences are errors (except Identify and Exit VT52 Emulation Mode), and in general are ignored. They should not be sent by conforming software. 3. This sequence will not be treated as a control function when the terminal is in VT52 mode, and the effect on the display will be unpredictable, since it is dependent on the transmission environment. • ! State Affected: EMULATION MODE Algorithm: PROCEDURE ENTER_VTS2_EMULATION_MODE; EMULATION_MODE:= VT52_0Ni END; Known Deviations: None VSRM - VT52 Emulation EL~00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-15 l8-Mar-1985 EXIT VT52 EMULATION MODE Purpose: Turn off VT52 emulator and allow ANSI controls to work. Format: ESC < 1/11 3/12 Description: The Exit VT52 Emulation Mode control turns off the VT52 emulator and turns on the ANSI parser of the terminal, causing the terminal to return to Level 1 operation. Notes: 1. In Conformance Levels 1 and 2, most VT52 control sequences are errors (except Identify and Exit VT52 Emulation Mode), and in general are ignored. They should not be sent by conforming software. State Affected: EMULATION MODE Algorithm: PROCEDURE EXIT_VT52_EMULATION_MODE; EMULATION_MODE:= VT52_0FF; END; Known Deviations: None • VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-16 18-Mar-1985 ENTER ALTERNATE KEYPAD MODE Purpose: Auxiliary keypad keys generate application sequences. Format: ESC = 1/11 3/13 Description: The auxiliary keypad keys generate sequences used by application programs. Notes: 1. The codes produced by the keypad in VT52 mode are shown in Table 1. State Affected: KEYPAD MODE: (NUMERIC,APPLICATION); Algorithm: PROCEDURE ENTER.KEYPAD.MODE; KEYPAD.MODE:= APPLICATION; END; Known Deviations: The minus, comma, and PF4 keys are not present on the VT52 keyboard. In VT52 Emulation Mode, the VT125 does not transmit a code for the PFI key until a second key is pressed. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Table 1 VT52 Keypad Codes Key o 1 2 Alternate Keypad Mode Off (Numeric Keypad Mode) Alternate Keypad Mode On (Application Keypad Mode) o 060 ESC ? P 033 077 160 1 061 ESC ? q 033 077 161 2 ESC ? r 033 077 162 062 3 063 ESC 4 064 ESC ? t 033 077 164 5 5 065 ESC ? u 033 077 165 6 6 066 ESC ? v 033 077 166 7 067 ESC ? w 033 077 167 8 8 070 ESC ? x 033 077 170 9 9 071 ESC ? Y 033 077 171 - (minus) -(minus) 055 ESC ? m 033 077 155 ** ,(comma) 054 ESC ? 1 033 077 154 ** . (pe r i ad) . ( pe r i ad) 056 ESC ? n 033 077 156 ENTER* CR CR LF 015 or 015 012 (continued) ESC ? M 033 077 115 3 4 7 • Page A-17 18-Mar-1985 , (comma) 03~ ? s 077 163 VSRM - VTs2 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Table 1 Page A-18 18-Mar-198s VTs2 Keypad Codes (continued) Alternate Keypad Mode Off (Numeric Keypad Mode) Alternate Keypad Mode On (Application Keypad Mode) PFI ESC P 033 120 ESC P 033 120 PF2 ESC Q 033 121 ESC Q 033 121 PF3 ESC R 033 122 ESC R 033 122 PF4 ESC S 033 123 ESC S 033 123 Key ** * When numeric keypad mode is select (alternate keypad mode is off), the ENTER key generates the same characters as the RETURN key. The RETURN key character code may be affected by the setting of New Line Mode. When off, this mode causes the key to generate a single control character (CR, octal 015). When on, this-mode causes the key to generate two characters (CR,_~ctal 015 and LF, octal 012). This interaction is UNDEFINED by the architecture, and should not be depended upon by conforming software. ** These sequences are not generated by the VTs2. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-19 ·18-Mar-1985 EXIT ALTERNATE KEYPAD MODE Purpose: keys. Keypad generates codes for the characters shown on the Format: ESC > 1/11 3/14 Description: Auxiliary keypad keys generate characters corresponding to the numeric, comma, period, and minus sign keys on the main keyboard. Notes: 1. See Table 1 for the codes. State Affected: KEYPAD MODE: (NUMERIC,APPLICATION); Algorithm: PROCEDURE EXIT_KEYPAD_MODE; KEYPAD_MODE:= NUMERIC; END; Known Deviations: The minus, comma, and PF4 keys are not present on the VT52 keyboard. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only page A-20 18-Mar-1985 ENTER GRAPHICS MODE Purpose: Display special graphics instead of lower case ASCII. Format: Description: character set. ESC F 1/11 4/6 Selects the special character and line drawing Notes: 1. Table 2 lists the characters displayed and their codes, and compares the characters with the VT52 special graphics set. State Affected: CURRENT SET: GRAPHIC_CHARAC~ER_SET TYPE; Algorithm: PROCEDURE ENTER GRAPHICS MODE; CURRENT SET:= LINE_DRAWING; END; Known Deviations: The character set displayed is not the same as the set that was in the VTS2. However, all terminals since the VT52 have the same VT100 special graphics set. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-21 18-Mar-l985 Table 2 Special Character and Line Drawing Set and Graphics Mode Comparison Row/ Column 5/15 6/0 6/1 6/2 6/3 6/4 6/5. 6/6 6/7 6/8 6/9 6/10 6/11 6/12 6/13 6/14 6/15 7/0 7/1 7/2 7/3 ' 7/4 7/5 7/6 7/7 7/8 7/9 7/10 7/11 7/12 7/13 7/14 US or UK Set a b c d e f g h i j k 1 m n o p q r s t u v w x y z Special Character and Line Drawing Set Blank <> Diamond blotch (error indicator) ht Horizontal tab ff Form feed cr Carriage return If Line feed o Degree symbol +- Plus/minus nl New line vt Vertical tab .1 Lower-right corner 1 Upper-right corner 1- Upper-left corner L Lower-left corner + Crossing lines Horizontal line - Scan 1 Horizontal line - Scan 3 Horizontal line - Scan-5Horizontal line - Scan 7 Horizontal line Scan 9 Left "T" - 1 Right "T" ._ 1 _ Bot tom "T" T Top "T" 1 Vertical bar <= Less than or equal to => Greater than or equal to i-i Pi /= Not equal to L- UK pound sign Centered dot 1 - In Graphics Mode (VT52 only) blank reserved solid rectangle 1/ 3/ 5/ 7/ degrees plus or minus right arrow ellipsis (Dots) divide by down arrow bar at scan 0 bar at scan 1 bar at scan 2 bar at scan 3 bar at scan 4 bar at scan 5 bar at scan 6 bar at scan 7 subscript 0 subscript I subscript 2 subscript 3 subscript 4 subscript 5 subscript 6 subscript 7 subscript 8 subscript 9 paragraph VSRM - VT52 EmulationEL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-22 18-Mar-l985 EXIT GRAPHICS MODE Purpose: Display ASCII lower case characters. Format: Description: ESC G 1/11 4/7 Select the ASCII character set. Notes: 1. Many terminals have included a "UK" character set, selectable in SET-UP. The Exit Graphics Mode command returns to the UK set if it was selected. State Affected: CURRENT SET: GRAPHIC _CHARACTER_ SET-_-T-YPE; Algorithm: PROCEDURE EXIT_GRAPHICS_MODE; CURRENT_SET:= ASCII; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-23 18-Mar-1985 CURSOR UP Purpose: Move the Active position upward by one line. Format: ESC A 1/11 4/1 Description: The Cursor Up control moves the Active position upward by one line in the display. Notes: 1. The Active Position will not move above the first line of the display. 2. No scrolling will occur as a result of this control. 3. This is the same sequence that the up arrow key generates . • State A.ffected: ACTIVE POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE CURSOR UP; BEGIN IF ACTIVE POSITION.LINE > 1 THEN ACTIVE POSITION.LINE:= ACTIVE POSITION.LINE - 1 ELSE (* ignore *); END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF -' DEC Internal Use Only Page A- 2 4, l8-Mar-1985 CURSOR DOWN Purpose: Move the Active Position down by one line. Format: ESC B 1/11 4/2 Description: The Cursor Down control moves the Active Position down by one line in the display. Notes: 1. The Active Position will not move below the bottom line " of the display. 2. No scrolling will occur as a result of this control. 3. This is the same sequence that the down arrow key generates. State Affected: ACTIVE POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE CURSOR DOWN; BEGIN IF ACTIVE_POSITION.LINE + 1 <= MAX_NUM_LINES THEN ACTIVE_POSITION.LINE:= ACTIVE_POSITION. LINE + 1 ELSE (* ignore *); END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A * * * COMPANY CONF - DEC Inte rnal Use Only .."18 - Ma r -1985 PageA-25 CURSOR RIGHT Purpose: Move the Active position right by one character position. Format: ESC C 1/11 4/3 Description: The Cursor Right control moves the Active position right by one character position. Notes: 1. The Active Position will not move beyond the right margin of the screen. 2. This is the same sequence that the right arrow key generates. State Affected: ACTIVE POSITION: CHARACTER POSITION TYPE; Al go ri thm: PROCEDURE CURSOR FORWARD; BEGIN IF ACTIVE_POSITION.COLUMN < MAX_NUM_COLUMNS THEN ACTIVE_POSITION.COLUMN:= ACTIVE_POSITION.COLUMN + 1 ELSE (* ignore *); END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only page A-26 18-Mar-1985 CURSOR LEFT Purpose: Move the Active Position left by one character position. Format: ESC D 1/11 4/4 Description: The Cursor Left control moves the Active Position left by one character position. Notes: 1. The Active position will not move beyond the left margin of the display. 2. This is the same sequence that the left arrow key generates. State Affected: ACTIVE POSITION: CHARACTER_POSITION. TYPE; Algorithm: PROCEDURE CURSOR.BACKWARD; BEGIN IF ACTIVE_POSITION.COLUMN > 1 THEN ACTIVE_POSITION.COLUMN:= ACTIVE POSITION.COLUMN - 1 ELSE (* ignore *); END; Known Deviations: None VSRM - VT52 ,Emulation EL-00070-0A **~ COMPANY CONF - DEC Internal Use Only 18-Mar-1985 CURSOR HOME purpose: Move the Active Position to the home position. Format: ESC H 1/11 4/8 Description: The Cursor Home control moves the Active Position to the home position at line 1, column 1. State Affected: ACTIVE POSITION: CHARACTER POSITION_TYPE; Algorithm: PROCEDURE CURSOR_HOME; BEGIN ACTIVE_POSIrION.LINE:= 1; . ACTIVE_POSITION.COLUMN:= 1; END; , Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-28 18-Mar-1985 DIRECT CURSOR ADDRESS Purpose: Move the Active position to the specified position. Format: ESC Y line column 1/11 5/9 line column Description: The Direct Cursor Address control moves the active position to the specified line and column. The line and column numbers are sent as the ASCII characters whose codes are the decimal numbers of the line or column plus 31. For example, decimal 32 (SPACE, 2/0) refers to the first line or column, and decimal )11 (0, 6/15) refers to the eightieth column. Notes: 1. This command has range limits of 1 to 24 lines with parameters "SPACE" (2/0) to "7" (3/7), and 1 to 80 columns with parameters "SPACE" (2/0) to "0" (6/15). An out of range parameter i~~ither dimension causes no action in that dimension, but if the other parameter is in range it will still be operated on. State Affected: ACTIVE POSITION: CHARACTER_POSITION,TYPE; Algorithm: PROCE'DURE CURSOR POSITION (LINE_VALUE,COLUMNVALUE: CHAR); VAR Y: LINE_TYPE; X: COLUMN_TYPE; BEGIN (* convert ascii characters to position values *) Y:= ORD(LINE_VALUE) - 31; X:= ORD(COLUMN_VALUE) - 31; (* conditionally update line *) IF ((Y >= 1) AND (Y <= MAX_NUM_LINES)) THEN ACTIVE_POSITION.LINE:= Y; IF ((X >= 1) AND (X <= MAX NUM_COLUMNS)) THEN ACTIVE_POSITION.COLUMN:= X; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-29 l8-Mar-1985 BS BACK SPACE Purpose: Move the Active Position one column to the left. Format: BS 0/8 Description: The BS control moves the Active position backward in the display by one column. Notes: 1. The Active Position will not move beyond the beginning of the Active Line. State Affected: ACTIVE POSITION: CHARACTER_~SITION_TYPE; Algorithm: PROCEDURE BACK_SPACE; BEGIN IF ACTIVE_POSITION. COLUMN > 1 THEN ACTIVE_POSITION.COLUMN:= ACTIVE POSITION.COLUMN - 1 ELSE (* ignore *); END; Known Deviations: None VSRM - VT52' Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only page A-30 l8-Mar-l985 HORIZONTAL TAB Purpose: stop. HT Advance the Active position to the next Horizontal Tab Format: HT 0/9 Description: The HT control moves the Active position forward in the display to th~ next Horizontal Tab Stop in the Active Line. Notes: 1. . If no tabulation stop is reached before the end (last column) of the Active Line, the Active position will be set to the end of the Active Line. State Affected: ACTIVE POSITION: CHARACTER_POSITION. TYPE; Algorithm: PROCEDURE HORIZONTAL TAB; BEGIN REPEAT IF ACTIVE POSITION. COLUMN < MAX NUM COLUMNS THEN ACTIVE.POSITION.COLUMN:= ACTIVE.POSITION.COLUMN + 1; UNTIL (HORIZONTAL.TAB.STOPS[ACTIVEPOSITION.COLUMN]) OR (ACTIVE.POSITION.COLUMN = MAX.NUM.COLUMNS); END; Known Deviations: None VSRM - VT52 Emulation 'EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-3l l8-Mar-l985 LF LINE FEED Purpose: Move the Active position downward one line, scrolling if necessary. Format: LF 0/10 Description: The LF control moves the Active Position downward in the display by one line. If the Active Position is already at the Bottom Margin the display will scroll upward by one line. State Affected: DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPE] OF CHARACTER_TYPE; ACTIVE_POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE LINE_FEED; VAR Y: LINE_TYPE; X: COLUMN_TYPE; BEGIN IF ACTIVE_POSITION.LINE < MAX_NUM_LINES THEN ACTIVE_POSITION_LINE:= ACTIVE_POSITION.LINE+l ELSE (* scroll up *) BEGIN FOR Y:= 1 TO MAX - NUM - LINES - 1 DO FOR X:= 1 TO MAX NUM COLUMNS DO DISPLAY[Y,X]:= DISPLAY[Y+l,X]; FOR X:= 1 TO MAX - NUM - COLUMNS DO DISPLAY[MAX_NUM_LINES,XJ.CODE:= EMPTY CHARACTER; END; END; Known Deviations: None VSRM - VT52 Emulation" EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-32 l8-Mar-1985 CR CARRIAGE RETURN - .. .. .. .. .. . - . .. .. .. .. .. .. .. . .. .. .. .. .. ...- .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. - .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Purpose: Move the Active Position to the first column of the Active Line. Format: CR 0/13 Description: The CR control moves the Active position to the first column in the Active Line. state Affected: ACTIVE POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE CARRIAGE_RETURN; BEGIN ACTIVE_POSITION.COLUMN:= 1; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-33 l8-Mar-l985 REVERSE LINE FEED Purpose: Move the Active position upward one line in the same column, scrolling if necessary. Format: ESC I 1/11 4/9 Description: The Reverse Line Feed control moves the Active position upward by one line in the same column in the display. If the Active Position is at the first line in the display, a scroll down is performed. State Affected: DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPE] OF CHARACTER_TYPE; ACTIVE_POSITION: CHARACTER_POSITION_TYPE; Algorithm: PROCEDURE REVERSE_LINE_FEED; VAR Y: LINE_TYPE; X: COLUMN_TYPE; BEGIN IF ACTIVE_POSITION.LINE > 1 THEN ACTIVE_POSITION.LINE:= ACTIVE_POSITrON.LINE - 1 ELSE (* scroll down *) BEGIN FOR Y:= MAX_NUM_LINES DOWNTO 2 DO FOR X:= 1 TO MAX NUM COLUMNS DO DISPLAY[Y,X]:= DISPLAY[Y-l,X]; FOR X := 1 TO MAX NUM COLUMNS DO DISPLAY[l,X].CODE := EMPTY CHARACTER; END; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-34 l8-Mar-l985 ERASE TO END OF LINE Purpose: Erase all characters from the Active Position to the end of the line. Format: ESC K 1/11 4/11 Description: The Erase to End of Line control erases all characters from the Active position to the end of the current line including the cursor position. The cursor does not move. Notes: 1. The Active position must be placed on the first position of the line to erase the complete line. State Affected: DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPEj OF CHARACTER Algorithm: PROCEDURE ERASE_TO_END_OF_LINEi VAR X: COLUMN_TYPEi BEGIN FOR X:= ACTIVE - POSITION.COLUMN TO MAX - NUM - COLUMNS DO DISPLAY[ACTIVE_POSITION.LINE,Xj.CODE:= EMPTY_CHARACTER; END; Known Deviations: None TYPEi VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-35 18-Mar-1985 ERASE TO END OF SCREEN Purpose: Erase all characters from the Active position to the end of the screen. Format: ESC J 1/11 4/10 Description: The Erase to End of Screen control erases all characters from the Active position to the end of the screen including the cursor position. The cursor does not move. Notes: 1. The Active Position must be placed on the first position of the screen to erase the complete screen. State Af-fected: DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPEl OF CHARACTER_TYPE; A1gori thm: PROCEDURE ERASE TO_END_OF_DISPLAY; VAR Y: LINE_TYPE; X: COLUMN_TYPE; BEGIN FOR X:= ACTIVE POSITION.COLUMN TO MAX NUM COLUMNS DO DISPLAY[ACTIVE_POSITION.LINE,Xj.CODE:= EMPTY_CHARACTER; FOR Y:= (ACTIVE_POSITION.LINE + 1) TO MAX_NUM_LINES DO BEGIN FOR X:= 1 TO MAX_NUM_COLUMNS DO DISPLAY[Y,Xl.CODE:= EMPTY_CHARACTER; END; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.S Page A-36 18-Mar-1985 EXTENSIONS TO THE VT52 EMULATION ARCHITECTURE The following functions are not part of the architecture because many terminals, including the VT52 without printer, do not support them. However, all new terminals with both VT52 emulation and printer ports support these commands. A.S.l Print Functions Some terminals have serial printer ports to allow local printing. All print operations can be selected using sequences. Two of the print operations can be selected from the terminal keyboard (auto ,print and print screen). When printing characters from the screen of the terminal, the tab stops of the terminal and printer are ignored. Characters printed are spaced using the space (SP, octal 040) character. After the last printable character of a line is transmitted, a carriage return (CR, 015) and line feed (LF, 012) are transmitted. The terminal does not transmit the space characters after the last printable character of.a line. If a line contains double height characters, the characters are printed as two identical lines of standard width characters. Double width characters are printed as standard width characters on a single line. A.S.l.l Modes AUTO_PRINT_MODE: (AUTO_PRINT_OFF,AUTO_PRINT_ON); PRINTER - CONTROLLER - MODE: VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-37 l8-Mar-1985 ENTER AUTO PRINT MODE Purpose: Turn on Auto Print Mode. Format: ESC 1/11 5/14 Description: Turns on Auto Print Mode. A line on the screen is printed when the cursor is moved off the line. The cursor is moved off the line by a Line Feed, Form Feed, or Vertical Tab character, or when a character is received when the cursor is at the right margin and the auto wrap featu~e is selected. Notes: 1. If autowrap is selected in SET-UP, it applies even in VT52 mode. State Affected: AUTO PRINT MODE: (AUTO_PRINT_OFF,AUTO_PRINT_ON); Algorithm: PROCEDURE ENTER AUTO PRINT MODE; AUTO_PRINT_MODE:= AUTO_PRINT_ON; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only page A-38 18-Mar-1985 EXIT AUTO PRINT MODE Purpose: Turn off Auto Print Mode. Format: ESC 1/11 Description: Mode) . 5/15 Turns off Auto Print Mode (see Enter Auto Print State Affected: AUTO PRINT MODE: (AUTO_PRINT-OFF,AUTO_PRINT_ON); Algorithm: PROCEDURE EXIT_AUTO_PRINT_MODE; AUTO_PRINT_OFF; END; AUTO_PR~NT_MODE:= Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-39 18-Mar-1985 ENTER PRINTER CONTROLLER MODE Purpose: Turn on Printer Controller Mode. Format: ESC w 1/11 5/7 Description: Turns on Printer Controller Mode. All characters received by the terminal are printed by the serial printer without being displayed on the screen. The characters received are printed without being displayed or altered in any way. The terminal does not insert or delete spaces, provide line delimiters or select the proper character set with{n the printer. State Affected: PRINTER_CONTROLLER_MODE: (PRINTER_CONTROLLER_OFF,PRINTER_CONTROLLER_ON); Algorithm: PROCEDURE ENTER_PRINTER_CONTROLLER_MODE; PRINTER CONTROLLER MODE:= PRINTER CONTROLLER ON; ENb; - Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-40 18-Mar-1985 EXIT PRINTER CONTROLLER MODE Purpose: Turn off printer controller. Format: ESC X 1/11 5/8 Description: Turns off Printer Controller Mode (see Enter Printer Controller Mode). State Affeeted: PRINTER . CONTROLLER . MODE: (PRINTER.CONTROLLER.OFF,PRINTER.CONTROLLER.ON); Algorithm: PROCEDURE EXIT.PRINTER.CONTROLLER.MODE; PRINTER.CONTROLLER.MODE:= PRINTER. CONTROLLER OFF; END; Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-4l l8-Mar-1985 PRINT CURSOR LINE Purpose: Format: Print the line containing the Active position. ESC v 1/11 5/6 Description: Causes the serial printer to print the line on the screen containing the cursor. The cursor position is not changed. The print cursor line operation ends when the line is printed. Notes: 1. This operation can be selected from the keyboard of the VT52 and the VT102. State Affected: None Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-42 18-Mar-1985 PRINT SCREEN Purpose: Print the contents of the screen. Format: ESC 1/11 Description: of the screen. printed. 5/13 Causes the serial printer to print the contents The print screen operation ends when the screen is Notes: 1. This operation can be selected from the keyboard of the VT52 and the VTI02. State Affected: None Known Deviations: None VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.9 Page A-43 18-Mar-1985 CHANGE HISTORY A.9.1 Revision 0.3 To Rev 1.0 1. Added the notes in the Abstract to the Purpose section in the Introduction. 2. Added note to Scope indicating that conforming software will not use VT52 Emulation Mode. 3. Added note to Scope indicating that all algorithms in this appendix are dependent on presetting of conditions before entering VT52 Emulation Mode. 4. Removed the reference to ASCII as an "extension" in the list of display features, and added the Line Drawing set as an extension. 5. Corrected the display size from 132 columns to columns. 6. In note on Undefined Functions, "applications software". 7. In Enter and Exit VT52 Emulation Mode, changed descriptions and algorithms to allow entry from any conformance level, and to exit to same level entered from. S. Added note to Enter VT52 Emulation Mode to indicate that the physical state of the terminal should not change. 9. Added note to Enter VT52 Emulation Mode to indicate that there is no action when already in VT52 Mode. chang~d se "software" to 10. Added a deviation note to Enter Alternate Keypad Mode for the VT125. 11. Cleaned up the note on the effect of New Line Mode on the Enter key. 12. Corrected the description and the algorithm for Direct Cursor VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Page A-44 18-Mar-1985 Position to indicate that one legal coordinate will be operated on. 13. Removed the note on the Active Position from the description of Line Feed. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only A.9.2 Page A-45 l8-Mar-1985 Rev AX10 To AXll 1. Changed description of EXIT VT52 MODE to indicate that it always returns. ~o level 1 operation. VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Section Index -A- Active Position A- 7 -B- Backspace VT52 control function A-29 -C- Carriage Return VT52 control function Character Set Extension Cursor Down VT52 control function Cursor Home VT52 control function Cursor Left VT52 control function Cursor Right VT52 control function Cursor Up VT52 control function A- 32 A- 9 A-24 A-27 A-26 A-25 A-23 -D- Direct Cursor Address VT52 control function A-28 - E- Enter Alternate Keypad Mode VT52 control function Enter Auto Print Mode VT52 control function Enter Graphics Mode VT52 control function Enter Printer Controller Mode VT52 control function Enter VT52 Emulation Mode VT52 control function Erase to End of Line VT52 control function Erase to End of Screen VT52 control function A-16 A- 37 A-20 A- 39 A -1.4 A- 34 A- 35 Page A-46 l8-Mar-1985 VSRM - VTs2 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only Exit Alternate Keypad Mode VTs2 control function Exit Auto Print Mode VTs2 control function Exit Graphics Mode VTs2 control function Exit Printer Controller Mode VTS2 contiol function Exit VTS2 Emulation Mode VTS2 control function Page A-47 18-Mar-198s A-19 A- 38 A- 22 A- 40 A-ls Extension~ VTS2 emulation A- 36 AA- 30 7 -H- Horizontal Tab VTs2 control function Horizontal Tabulation - I- Identify VTS2 control function A-l3 -L- Line Feed VTs2 control function A- 31 -p- Print Cursor Line VTs2 control function Print Screen VT52 control function Printer Port Extension A- 41 A- 42 A-9 - R- Replace Graphic Character VTs2 Reverse Line Feed VTs2 control function A-12 A- 33 - S- Software Conformance VT52.emulation A-s, A-14, A-IS VSRM - VT52 Emulation EL-00070-0A *** COMPANY CONF - DEC Internal Use Only page A-48 I8-Mar-1985 -T- Tab Stops A-6, A-7, A-II -uUndefined Functions A-II -V- VT52 Emulation required commands VT52 Special Graphics 5 9 A-9 AA- VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-1 lS-May-1983 VIDEO SYSTEMS REFERENCE MANUAL Programmer's Guide Document Identifier: A-DS-EL00070-0B-O Rev. AXIO, lS-May-1983 ABSTRACT: This appendix contains information of general interest to software engineers designing software interfacing with products designed in in conformance with the Video Systems Reference Manual. APPLICABILITY: SARA Formal Cross-Component Standard. Mandatory for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. Additional requirements are defined in the section on "Concepts and Conformance Criteria". STATUS: FOR REVIEW ONLY + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ This document has been placed in the SARA "Formal I Cross-Component Standard" category. The material contained I within this dpcument is assumed to define mandatory standards I unless it is clearly marked as (a) not mandatory or I (b) guidelines. Material which is marked as "not mandatory" is considered to be of potential benefit to the corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques which are considered to be good practice, but should not be considered as requirements. The procedures for modifying or evolving this standard are contained within the contents of I this document. I +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ FOR INTERNAL USE ONLY + - - - - - - "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Page B-2 VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only 15-May-l983 TITLE: VIDEO SYSTEMS - programmer's Reference DOCUMENT IDENTIFIER: A-DS-EL00070-0B-0 Rev. AX10, l5-April-1983 REVISION HISTORY: Original Draft 25-Dec-82 Revision 0.1 l2-Jan-83 Revision AXOl 28-Feb-83 FILES: User Documentation EL070SB.mem Internal Documentation EL070SB.rno EL070SB.rnt EL070SB.rnx Document Management Group: Terminal Interface Architecture Responsible Department: Video Architecture Group Responsible Individual: Peter Sichel ACCEPTANCE: This document has been approved by the Manager of the Video Architecture Group based on a comprehensive review of its individual sections by the members of the SARA component groups working Terminal Interface Architecture issues. The list of individuals on the review, and approval list are on file in Standards and Methods control. Direct requests for further information to Peter Sichel, PK03-l/l0C, DTN 223-5162, RANI::VIDARCH Copies of this document can be ordered from: Standards and Methods Control AP01/F7, DTN 289-1414, JOKUR::SIMONETTI VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-3 l5-May-1983 CONTENTS APPENDIX B B.l B .1.1 PROGRAMMER'S GUIDE INTRODUCTION SCOPE • • • • • B-5 • B-5 GENERAL PROGRAMMING GUIDELINES . B.2 B.2.l LEVELS OF ABSTRACTION B.2.1.l Application Programs B.2.1.2 Routine Libraries · · · · B.3 · B-8 · B-8 B. 3 . 1 COMMUNICATION CONTROLS TEXT ATTRIBUTES B-6 B-6 B-6 B-6 CONTROL CODE EXTENSION TECHNIQUES · B-9 • • • • • B-9 DESIGNING CONTROL SEQUENCES • • B-9 B.4.1.l Syntax of Parameters • • • • • B-9 B.4.1.2 Size of Parameters B-I0 B.4.2 TERMINAL INITIALIZATION . . . . B-I0 9.4.2.1 XON Resynchronization B-I0 B.4.2.2 Control String Terminator B-I0 B.4.2.2.1 Printer Controller Mode B-ll B .. 4.2.2.2 Selecting Conformance Levels B-l1 B.4.2.3 Full Initialization Sequence . B-ll B. 4 . 2 • 4 Device Control Strings B.4.2.5 Select 7-bit and 8-bit Cl Transmission B-12 Modes B.4 B. 4 . 1 B.5 TERMINAL MANAGEMENT B.5.1 DEVICE IDENTIFICATION B.5.2 DEVICE CONTROL B.5.2.l Primary Device Attributes B.5.2.2 Secondary Device Attributes Control B.5.2.3 Identify Terminal Control .... B.5.2.4 Select Conformance Level Control B.5.3 DEVICE STATUS AND TEST ...... . B.5.4 TEXT CURSOR ENABLE MODES B-13 B-13 B-13 B-13 B-14 B-14 B-14 B-15 B-15 B.6 LOCAL FUNCTIONS B-16 B.7 B.7.1 B.7.2 SYNCHRONIZING THE APPLICATION AND TERMINAL AUTO ·REPEAT TYPING AHEAD B-16 B-16 B-16 B.8 ReGIS GRAPHICS PROGRAMMING B.8.l SYNTAX . . . B.8.1.1 Elements of Syhtax . . B.8.1.2 ReGIS Flow of Execution B.8.1.3 Synchronization Procedures B-17 B-17 B-17 B-17 B-18 VSRM - Programmer's Guide, EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-4 l5-May-19a3 B-19. B.8.1.3.1 Parser Level Synchronization . B-19 B.8.1.3.1.1 The Semicolon . . . . . B-19 Activation Synchronization . . B.8.1.3.2 B-20 State Initialization. B.8.1.3.3 B-21 B.8.2 THE WRITING COMMAND . . . . . B-21 B.8.2.1 Writing ,Modes. B-2l B.8.2.1.1 Overlay mode- - W(V) ..... B-2l B.8.2.1.2 Replace Mode - W(R) B-22 B.8.2.1.3 Complement Mode - W(C) B-22 B.8.2.1.4 Erase Mode - W(E) B-24 B.8.2.1.5 Negate Mode - W(N) • . . . . . B-24 B.8.2.2 Write Command Extensions . . . . B-24 B.8.2.2.1 Raster Extensions B-24 B.8.2.2.2 Open Extensions B-25 B.8.3 SCREEN INSTRUCTION . B-25 B.8.3.1 Hard Copy Commands . . . . . . . B-25 B.8.3.2 Address Space B-26 B.8.4 MACROGRAPHS . . . . B.8.5 B-26 MACROGRAPH CONSTRUCTS B-27 B.8.6 MACROGRAPH 'INVOCATION B-27 B.8.6.1 Macrographs Invoking Others B-27 B.8.6.2 Macrograph Invoking Itself . B-27 B.8.7 MACROGRAPH STORAGE . . . . . B.8.8 B-28 MACROGRAPH UTILITY . . . . . B.8.8.1 B-28 Specifications B.8.8.2 B-30 Polygons . B.8.8.3 Icons ·B - 30 B.8.8.4 B-3l Coordinate Lists . B.8.8.5 Write Maps B-32 B.8.8.6 B-32 Tex t . . . . . . . B-33 B.8.8.6.1 Quoted Strings . B.8.8.7 B-33 Display Segments B.8.9 THE TEXT COMMAND B-34 B-34 B.8.9.1 Sizing Text - the S Option B.8.9.2 The S Option Coupled With Other Options B-35 B.8.9.2.1 Specifying Screen Area - The S, M and U Options . . . . . . . . . . . . . . . B-35 B.8.9.2.2 Character Orientation - The Sand D Option . . . . . . . . . . . . . B-35 B.8.9.2.3 Text Bracketed Options - Space Setting B-36 B.8.9.3 Text Control Characters . . . . B-37 B.8.9.3.1 Pixel Vector Specifiers . . . . . B-38 B.8.9.4 B-38 Scrolling and Wrap . . . . B .'8.10 B-39 COLOR MAPPING . . . . . . . B.8.10.1 B-39 Color and Gray Scale. B.8.1l INTEGRATION OF GRAPHICS AND TEXT . B-40 . . .. . VSRM - Programmer's Guide .EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.l Page B-5 l5-May-l983 INTRODUCTION This document is designed as a supporting reference to the Video Systems Reference Manual (Video SRM) supplied by the Terminals Interface Architecture (TIA) group. It covers only selected SRM topics, and is not intended as a comprehensive treatment of them. The purpose of providing a Programmer's Guide to the SRM is that it is probably unreasonable to expect the average programmer to read through the entire document and understand it thoroughly . . Programmers are going to use the SRM for what it is - a reference manual. They will consult it when they need to do something, but they are not expected to thoroughly understand the operation of terminal products (as opposed to terminal implementors, who presumably will read the SRM in detail before their implementation and become thoroughly acquainted with it). The Programmer's Guide, therefore, is intended to provide some general context of what programming a terminal is all about, and to accentuate important points that are documented elsewhere in the SRM. B.l.l SCOPE The Programmer's Guide applies to all DEC products which are intended to be certified as conforming to the Video Systems Reference Manual. It also applies to software which intends to use DEC products in a conforming manner. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.2 • page B-6 lS-May-1983 GENERAL PROGRAMMING GUIDELINES The Video Systems Reference Manual contains performance requirements for conforming equipment, as well as for conforming software. A primary consideration for defining conformance requirements for software is to maximize its independence from the device. B.2.1 LEVELS OF ABSTRACTION An effective approach for terminals application programming is to partition the effort into distinct levels of abstraction. The approach is effective for one person writing one program, or several people writing several programs. The levels of abstraction are the application program, the routine library, and the operating system. The routine library can be subdivided into two parts: a logical layer and a back end layer that deals with the specific characteristics of the terminal being used. B.2.1.1 Application Programs The principal guideline for application programs is to avoid the use of escape sequences and control sequences directly. Applications should ,make calls to subroutines to perform the required functions, including those at a higher level, such as drawing a square or deleting a paragraph, or those higher than the individual functions outlined in the TIA specifications. A library of such routines should be developed and maintained by DEC for its customers. B.2.1.2 Routine Libraries Library routines can be effectively divided into two sections. One part of the routine can be totally independent of the data syntax and/or protocols being used on the device. The other part, the ~back end" of the routines can take the features/idiosyncracies of the specific device into account. For example, a library routine could implement the Insert Character function, but the VT100 will not implement that in hardware. Therefore; the routine could perform several operations at the back end to perform the Insert Character function. That technique would allow the application program to be written as though the Insert Character were available on any device, thus allowing the customer to interface his software application to a wide variety of terminals and manufacturers. VSRM - Programmer's Guide EL-00070-0~ *** COMPANY CONF - DEC Internal Use Only Page B·7 15-May-1983 DEC's VMS Run-Time Library keeps the call interface to the application independent of the device by utilizing several back ends, which allows it to interface to various types of terminals, and peimits the customer to add foreign terminal support. This guide is directed more to programming the back end processor for the routine library, than to programming the applications. Ideally speaking, only the library routines should receive the call interfaces. When it is necessary for the application to receive them, or where an application requires its own library, the guidelines outlined in this manual should be observed. In general, DEC systems software allows whatever functionality is allowed by the hardware. There may be a need at times for an application program to perform functions not provided by the library, but that are with~n the capability of the terminal. Where such functionality is added to the library, the device dependent features should be at the device-dependent back end as much as possible. VSRM -Programmer's Guide. EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.3 page B-8 15-May-1983 COMMUNICATION CONTROLS It is necessary to clarify the TIA interface for switching a G-set into the left half (GL) or the right half (GR). Such switching requires the use of modes, which are problematic to handle in software. The software works far more efficiently if the data it is operating on is independent of a mode context. The reason is that a string passed from orie procedure to another encounters a procedure barrier, making the switch a cumbersome one. If the interpretation of that data is subject to a mode, the mode must be passed explicitly as another parameter or embedded in the string somehow. It is far simpler to pass the string and have its meaning unambiguously understood. For the DEC Standard 169 the left half (GL) of the 8-bit code is assumed to be the ASCII graphic set, and the right half (GR) is assumed to be the DEC Supplemental (Multinational) graphics. That assumption should be adhered to by all conforming software unless some very explicit, well-documented additional mechanisms are used. Exceptions to the norm such as code extension controls, locking shifts, etc. exist for the exceptional case, or for use by a library routine, but not by the application program. - As covered in the previous section, library routines should perform all mode switching, leaving the applications as device-independent as possible. For instance, if a Multinational application wanted to use the DEC line-drawing set, it could simply request to draw a box from character cell position MN to IJ. The library routine would then perform the necessary switching, using the code extension, to access the line drawing set; when finished, it would switch back to DEC Supplemental. The application program would simply treat all the data that it deals with as ASCII on the left and DEC Supplemental on the right. B.3.1 TEXT ATTRIBUTES For text applications involving attributes such as underlining, bolding, etc., an effective technique is to store both the character code and the attributes associated with it as a single storage ,entity. This could include attributes such as character set, height, width, rendition, etc. An analogy to storing characters in this way is found in applications using integers. Where more complex, higher precision methods for accommodating numeric calculations are required, double-precision integers are stored with their unique attributes; they constitute a completely different data type than single-precision integers. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.4 Page B-9 15-May-1983 CONTROL CODE EXTENSION TECHNIQUES 8.4.1 DESIGNING CONTROL SEQUENCES The design of control sequences is more complex than escape sequences, due to the pr~sence of private parameters and intermediate characters. Recommended procedure is to make the syntax of the control codes as consistent as possible, and as independent as possible from the application program. All control code extensions should be used by the library routines rather than the applications as much as possible. 8.4.1.1 Syntax of Parameters A parameter syntax option for control strings is to use leading zeros. Doing so can facilitate ease of programming; however, unless the leading zeroes are stripped off, they will be transmitted with the strings, slowing transmission time. A tradeoff decision, therefore, between ease of programming and transmission time is necessary. The same tradeoff is necessary when using omitted parameters. Compacting the strings makes the most efficient use of the line. For ease of programming, however, the program could be set up to transmit a string of parameters, leaving spaces for omitted parameters by inserting semicolons - which would transmit on the line and slow transmission time. The optimum method for handling omitted parameters is to program using the straightforward approach (compacting strings) and put the parameter defaults at the back end of the library routine_ The routine could compact strings and omit parameter values that were equal to the default values, along with trailing parameters, etc. In that way, efficiency considerations would be at a lower level of abstraction than the actual logic in the library routine. Such a separation would provide the benefits of both line efficiency and ease of programming. B.4.1.2 Size of Parameters Although the architecture does not limit sizes of parameter values, they are usually constrained by the implementation; not all value sizes will be recognized by all terminals. The SRM states that 255 decimal will be recognized by any implementation as a maximum value; values greater than that may not be recognized by some devices. The SRM also states that 16 parameters is the recommended maximum number for an implementation to allow in a string. Though some implementations may allow more than that, it is not safe to exceed that number; more than one string may be required. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.4.2 Page B-IO 15-May-1983 TERMINAL INITIALIZATION It is stated in the SRM that there is a definite technique which can be employed for initializing the communications line that should work under all states of the communications interchange. Examples of communications line initialization are: (1) the operating system broadcasting a message on a terminal while the application is running, (2) the application returning control to the operating system, and (3) the application programmer encountering a breakpoint during execution and entering the debugger. Generally, when the communications line is initialized, the line is in an unknown state when the new program takes control. The program may be in the middle of a control sequence, device control string or escape sequence. It could be in an XOFF state, with the terminal not accepting data, or could have switched in new graphics (such as the iine-drawing set) on top of the DEC supplemental set. B.4.2.1 XON Resynchronization A specific sequence of instructions is required to put the terminal into a known state. First, communication~terminal synchronization) should be restored with the XON control character. It will be accepted whether the terminal is in an XON or XOFF state. The control is ignored if the terminal is in an XON state. If it is in an XOFF state, the XON control will restore line synchronization and allow the terminal to accept . data. B.4.2.2 Control String Terminator The secGnd instruction required is a String Terminator control character encoded as a 7-bit Escape Fe sequence. If the terminal is in the middle of an escape sequence, control sequence, or device control string, the String Terminator character terminates it and causes subsequent characters associated with it to be ignored. The sequence is printed on the terminal, and the terminal restored to a state in which it can accept new control or graphic characters. If the terminal is in none of those states, the string terminator character is ignored. 8.4.2.2.1 Printer Controller Mode Printer Controller Mode (MC) is a higher level management function than other modes. It is possible to log onto the system with the terminal in Printer Controller Mode, print out everything being executed by the applications and switch back to the operating system. As long as the terminal is in Printer Controller Mode, it will communicate to the printer, but not to the terminal. Therefore, if an application turns on Printer Controller Mode during execution, and does not turn it off, commands will not echo VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only _ l5-May-1983 Page B-ll on the terminal display when control is returned to the operating system. An explicit reset of Printer Controller Mode is therefore necessary to clear the communications line. B.4.2.2.2 Selecting Conformance Levels To put the internal state of the terminal into a known condition, the software must send the equivalent of a lsoft reset' which selects the terminal's conformance level. The Select Conformance Level control sequence, or DECSCL, puts the terminal into a known state; that state can be predicted according to values outlined in the SRM. Two conformance levels exist, Levelland Level 2. Application software should select the appropriate conformance level for the type of operation it intends to perform. Levell is defined strictly to provide compatibility to existing programs. Level 2 is the preferred mode for character cell displays and for new software; new software using this synchronization technique should be able to accept and operate at Level 2. B.4.2.3 Full Initialization Sequence The following reset sequence-- -should be used by all operating systems and applications to_initialize the terminal when taking control: the Control String Terminator (ST), followed by Reset Printer Controller Mode (ESC [ 4 i), and concluded by a Select Conformance Level control (ESC [ 62 " p, for Level 2 operation ). To insure that it works on all devices, all control codes should be transmitted as 7-bit ESC Fe sequences. The entire initialization sequence is thus: ESC 1/11 \ 5/12 B.4.2.4 ESC 1/11 [ 4 i 5/11 3/4 6/9 ESC 1/11 [ 5/11 62 " 3/6 3/2 2/2 P 7/0 Device Control Strings The bit combinations 08 through 13 (decimal) are provided for purposes of formatting the control string, but have no additional significance to its interpretation. The interpreter normally ignores the Backspace, Carriage Return, and Line Feed characters in a control string. Using an editor, however, it is possible to put those characters into a long control string in order to break and edit the string without effecting its interpretation. Backspace, Carriage Return, and Line Feed are recognized and interpreted in a control string within the context of the ReGIS T (Text) command, since it also functions as an editor. In summary, control characters such as Backspace, Carriage Return, and Line Feed are permissible in control strings syntactically, but are ignored functionally, except when occurring in the ReGIS Text Command. In some implementations, certain c~ntro1 characters VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only' 15-May-1983 Page B-12 will also not be permissible syntactically, since their semantics is defined by the control string internal format of the particular devic~. It must be noted that control strings other than Device Control Str'ings (DCS), such as Application-Program Commands (APC), Operating System Commands (OSC) and Privacy Messages (PM) are not currently implemented by DEC products and should not be used by component software. B.4.2.5 Select 7-bit and 8-bit Cl Transmission Modes The Select 7-bit and a-bit Cl Transmission Mode control functions are described in the chapter "Code Extension Layer". Since these modes are set by the Select Conformance Level control, it should not be necessary f6r conforming software to use them. Setting them via the DECSCL control allows them to be changed from the default values; also, it is consistent with the goal of keeping application software independent from terminal modes. The 7-bit Cl Transmission Mode causes the terminal to send Cl controls to the host coded as 2-character Escape Fe sequences instead of symbolized a-bit controls. This mode permits existing software running at Level 1 conformance - in which Cl controls are coded only as 7-bit - to accept 2-character Escape Fe sequences without changes. New software, however, should be designed to accept either the 7-bit or a-bit form, in order to give the software independence from the terminal's mode setting. Note that the terminal will accept data in any format from the host, including 7-bit and 8-bit coding characters and 7-bit and a-bit Cl controls, regardless of the mode, since the modes effect transmission of data from the ter.minal to the host only. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only .l5-May-1983 B.5 Page B-13 TERMINAL MANAGEMENT B.5.1 DEVICE IDENTIFICATION Conforming software should use none of the device identification functions; terminal identification should be performed by the operating system. When the terminal is logged on, the operating system should request the terminal's functional (and/or product specific) characteristics, and once they are recognized, identify them to conforming applications. Application software can obtain the device characteristics from the operating system. B.5.2 DEVICE CONTROL Controls that change the transmission modes from the host ~o the terminal should be performed by the operating system rather than by applications and library routines. Library routines should call the operating system to change those states. In that way, the operating system will know and control the state with no necessity to monitor the output stream. Different applications will be able to operate the terminal in a state always known by the operating system. B.5.2.1 Primary Device Attributes • The chapter "Terminal Management" describes the Primary Device Attributes (DAI) control. The first terminal function to be performed by the operating system is the Primary Device Attributes request, -in order to determine the functional characteristics of the terminal_ It should not be used by conforming applications software. This control is designed to replace the existing Device Attributes control used by operating systems. It allows the device to identify itself to the operating system by functional characteristics rather than by specific product characteristics. It does so by identifying a specific class of operations. There are additionally levels of operation within each class; each higher level is a super set of the lower levels that precede it. At each level, there are a number of extensions which are identified in response to a request. The extensions describ~ the functional capabilities, which are essentially options at each level of the architecture; they mayor .may not be implemented in a given product, and/or may change from time to time. The benefit of the Primary Device Attributes control is that because devices are identified to the operating system according to functional, rather than product, characteristics, new devices can be added to the system without changing existing software. VSRM - Programmer's Guide. EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.5.2.2 Page B-14 15-May-1983 Secondary Device Attributes Control The Secondary Device Attributes (DA2) control provides for device specific identification of terminals to the operating system. It causes the explicit product identification and revision level of the device to be returned. This control allows for backwards compatibility with previous devices and software that must know the product characteristics of a device that's being used. Conforming software should not use this control, but it is a good practice for operating systems to store the product specific information. B.5.2.3 Identify Terminal Control The Identify Terminal (DECID) control is provided for purposes of backwards compatibility with existing terminals. It causes the functional characteristics to be returned - the same response as the Primary Device Attributes - when the terminal is in Level 1 or Level 2 Character Cell mode of operation. It should not be used by conforming software, because it uses an encoded representation that is reserved for standardization by the ANSI and ISO standards. Should DEC implement these control standards in the future, any DECID sequences in use would be incompatible with the newly defined function. B.5.2.4 Select Conformance Level Control The Select Conformance Level (DECSCL) control allows the application software to set the device to a specific level of operation for interface compatibility. The purpose of the DECSCL control is to provide backward compatibility; it may be desirable for some implementations to operate the device at a lower level of conformance. The principal guideline in use of DECSCL is that the operating system should always operate the device at its highest level of conformance; it can be certain of this by selecting the highest conformance level (the level reported by the device) whenever the operating system takes control from an application. This technique helps to keep the software independent of terminal modes. When a level change is called for by an application subroutine, operating systems with the capability of doing so should keep the terminal in the higher-level mode and perform a translation for the application. For example, software not designed to accept 8-bit characters would require the terminal to be in Level I mode, since Level I Character Cell Display does not transmit 8-bit characters. The operating system could leave the terminal at Level·2 Character Cell pisplay and filier the 8-bit characters, issuing a warning (bell, etc.) if one was received. Thus, the state of the device would neither fluctuate nor have any dependence on the software. Implementing the DECSCL function via the operating system is more difficult and requires more functions, but eliminates terminal user confusion about the state VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-15 15-May-1983 of the terminal. Another advantage of this appr9ach becomes apparent when the user wishes to type information ahead to a subsequent application. For iristance, if application A accepted only 7-bit characters and application B only 8-bit characters, the user could type to application A and, during its execution, type 8-bit characters ahead to application B. When application B executes, the operating system will begin to accept the 8-bit characters and pass them on. The application interprets the correct terminal mode at the point it actually calls the operating system for characters. B.5.3 DEVICE STATUS AND TEST The Test Control (DECTST) is meant strictly for hardware diagnostic purposes and should not be used for application or library software. B.5.4 TEXT CURSOR ENABLE MODES Text Cursor Enable Mode (DECTCEM) allows the cursor symbol to be turned on and off. This mode can be used to eliminate cursor fli~ering or bouncing while the display is reformatting by tUrning the cursor off, reformatting the display, restoring the cursor to its position, and turning it back on. To avoid user confusion, the cursor should only be turned off for very short periods of time, and turned back on when the reformatting operation is finished. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.6 Page B-16 lS-May-1983 LOCAL FUNCTIONS Certain keys on the keyboard have. been reserved for local functions. They are used in products which implement functions not accessible remotely. Some local functions will not be available in all product implementations; they will need to be performed by host software. The sequences for the function keys are well defined; general applications and library software should not use them, and should ignore their codes if they are received. Ideally, the operating system should recognize the codes and perform the function locally, without passing them on. DEC assigns and maintains a designated, registered sequence for each function key on the keyboard. Conforming implementations should become familiar with this registry and use the keys only as designated. B.7 B.7.1 SYNCHRONIZING THE APPLICATION AND TERMINAL AUTO REPEAT DEC operating systems are designed such that an application, such as an editor, which uses the cursor keys to update a text image can get control frequently enough to insure that the user will not get too far ahead of the application, even when using Auto Repeat. The application program should assume responsibility for that synchronization, rather than attempting to do so by turning off Auto Repeat, locking the keyboard, etc. B.7.2 TYPING AHEAD Applications should allow the terminal user to make the decision whether to type ahead or not; the application program should not make it. Problems can develop when the application program detects an error in the instructions that have been typed ahead. If a sequence is determined to be erroneous, it may not be executed; subsequent instructions could then produce erroneous, possibly disastrous, results. Therefore, it is recommended that applications clear type ahead only when an error has been detected. The application should call the operator's library routine, which should call the operating system to clear type ahead. An application program should not clear type ahead when starting up; it should assume that the option to type ahead exists, and that the operator has decided to do so. B ..8 ReGIS GRAPHICS PROGRAMMING VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.1 Page B-17 lS-May-1983 SYNTAX B.8.1.1 Elements of Syntax The ReGIS syntax has five elements, the command keyletters and four a~gument types. The four types are: 1. Numbers - which have various semantic meaning. 2. Bracketed extents. 3. Parenthesized extents (options). 4. Quoted strings (used or text arguments or character indices). B.8.1.2 ReGIS Flow of Execution The entire flow of ReGIS execution is serial. The user begins with a selected element which sets the state so the following elements are executed as they are encountered. An important aspect of the execution is that ReGIS doesn't require that more arguments be received in order to take action on a given argument. Generally speaking, an action can take place from within the context of any of the argument types. ReGIS actions can be visible or non-visible. An example of a visible action is the receipt of a position specifier while in a "V" (vector) state. The device would have enough information with that datum (and the stored state of the machine) to draw a vector in the appropriate line, color, pattern, etc. Non-visible actions are those those which change state. For f example, if the device were working in a "W" command and received an option to change color, an element of state would be changed in the machine that would lend its attributes to all subsequent applicable visible actions. The instruction process has a well-defined hierarchical flow that is pot too deep or extensive. The user works from the context of a specified command state, or at command level - outside the command state context. If, for instance, ReGIS is synchronized by some means (see next section), the system is at command level; subsequent arguments will be recognized but will cause no action to be taken, there being no command context to interpret them against_ ReGIS arguments are self-delimiting; depending on the current command context, ReGIS requires proper character types to start and end instructions. Numbers are looked for in digit mode, quoted strings must always start and end with quotes, parenthesized extents start and end with parentheses, etc. Should the ReGIS interpreter be put in a non-command state at some point, arguments received after· that will be parsed.and recognized, but VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-18 15-May-1983 no action will occur. It is possible to parse through a series of instructions that was sent to find out what has happened, however. Since ReGIS allows a good deal of flexibility in including non-instructions with instructions, a good procedure to follow at points where state changes could cause problems or confusion is to include a statement within the instruction flow about it such as: ;"this is a comment. State has changed here." B.8.1.3 Synchronization Procedures It is possible to put ReGIS syntax. For example, ReGIS different levels, with each entire instruction set. If parenthesis were omitted in out of synchronization. To the instruction: out of synchronization with erroneous option specifiers are nested at level using the same syntax as the a leading or trailing (left or right) any of the option sets, ReGIS would be write in the color red, for instance, W(I(R)) would be required. I (Intensity) is a parenthesized option and R (red) is the parenthesized extent containing the color specifier. If the second left-hand parenthesis had been omitted, resulting in the instruction: W(IR) being issued, R would not be interpreted as a subargument to the Intensity option, but as another option to the W command since it's at the same parsing level as the I. It happens that R has semantic meaning to the W command; it instructs to 'Write in Replace" mode'. Therefore a well-structured ReGIS command was sent - and interpreted at the wrong level. If one of the right-hand parentheses had been omitted in the above command, resulting in the command: W(I(R) all instructions received after that command would be interpreted as options to the W command. Some of the instructions would be recognized by ReGIS in the W context, some would not, but none of the instructions would do what the user intended. Quoted string commands also can easily put the system out of synchronization. If the Text command ;"this is a comment. State has changed here. were sent with the end quote mistakenly omitted, all subsequent instructions would be interpreted literally and displayed on the screen as text. Upon encountering another double quote, (intended • VSRM . Programmer's Guide EL-00070-0B *** COMPANY CONF . DEC Internal Use Only Page B-19 l5-May-1983 to be the beginning of another text string), the system would be back at command level interpreting characters as ReGIS instructions. It is important for the implementer to arrive at an instruction, or sequence of instructions, for synchronizing the .system and. setting it to a known state, preferably at the command level. B.8.l.3.l B.8.l.3.l.l Parser Level Synchronization The Semicolon The semicolon acts to synchronize the system from within any ReGIS command context - except that of quoted strings (as indicated earlier, command syntax is interpreted as literal text characters within quoted strings). The semicolon overrides the nesting level of options, and provides a recovery mechanism for line errors, programming errors and other conditions that put the system out of synchronization. The semicolon is the simplest, most straightforward method of synchronizing .ReGIS. For instance, if a semicolon were to be sent before each command, it would return the interpreter to command level, irrespective of present command context, thus assuring the system is always synchronized. B.8.l.3.2 Activation Synchronization Activation synchronization is not a ReGIS feature as the semicolon is, but is a required capability for conforming ReGIS implementations. The ReGIS Extension states that the mechanism (escape sequence, etc.) used to activate ReGIS in the product must contain a means of forcing the ReGIS interpreter to the command level. This means of synchronization is at the discretion of the programmer, and is implementation dependent. In some implementations activation synchronization has meant that the state of the ReGIS interpreter is preserved across changes of mode; in other implementations it has not. For example, the VTl25 implementation allows transition from ReGIS to text mode and back to ReGIS; ReGIS processing will pick up in the mode it was in before the transition. The GIGI implementation, on the other hand, does not retain the command context across a change of mode; the command must be reissued when returning to ReGIS. The optimum goal for an implementation is to allow the user to exit and reenter modes without restating the existing command context; it is recognized, however, that this goal will be beyond the capabilities of some products. Also, in some implementations it is possible that other state settings, such as color specifiers, etc. will not remain stable across transitions of mode; an example of this is when hardware is shared among various protocols. It is important that the implementer be awa~e of all such changes of state and take them into account. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.l.3.3 Page B-20 l5-May-1983 State Initialization State initialization as a synchronization method is based on the Screen Erase function. It is based on the following two requirements as stated in the ReGIS Extension: 1. Devices which implement ReGIS extensions are required to implement default values for all such semantic features which effect the visible display. 2. For devices which have ReGIS extensions, all parameters and attributes - except possibly for screen attributes themselves - should take on their default values upon the execution of a Screen Erase function. State initialization as a synchronization method {equires th~t whenever a Screen Erase function is performed, all optional settings (extensions to the ReGIS base logical device) must reset to their default values. A list of the options and their recommended settings is as follows: 1. The line pattern setting should be returned to one. 2. (Possibly) reset the loadable character set selector to the default character set. There are two schools of thought on this, however; the other one says to keep the last character set that was loaded. 3. (Possibly) return the intensity selector to a default value upon a screen erase . ! • VSRM - Programmer's Guide EL-00070-0B *** COM~ANY CONF - DEC Internal Use Only B.8.2 Page B-21 lS-May-1983 THE WRITING COMMAND B.8.2.1 Writing Modes. A predicate of ReGIS is the pattern register, which is a binary pattern of l's and O's used to select between the foreground intensity and background intensity (also called the secondary foreground intensity). The W(I) command is used to write to the the foreground specifier, and is indicated by the l's in the pattern register. The treatment of the O's in the pattern register differentiate the writing modes. They are Overlay, Complement, Replace and Erase. A fifth mode, Negate, may be used to cancel/modify any of the other four. B.8.2.1.1 Overlay mode - W(V) Overlay mode is the base ReGIS device drawing mode. It is generally used as the default mode, since it is the most straightforward and simplest to program and execute. In Overlay mode, alII's in the pattern register are executed into the display, while zeroes are not. In other words, the current register setting-is executed into the display. Overlay mode is analogous to a pen plotter that moves the pen along while lifting it up and down. The pen 'down' state - when it draws on paper - corresponds to the l's state. The pen 'up' state .- when it moves without drawing - corresponds to the O's state. B.8.2.1.2 Replace Mode - W(R) Like the Overlay mode, Replace mode executes the l's in the pattern register (the foreground intensity) into the display. For the O's, however, it executes the background intensity (secondary foreground color). For instance, if the background specifier is red, and the foreground specifier is white, the result will be alternating red and white dashes, irrespective of the current background color. After a Screen Erase, the behavior between Replace and Overlay modes is identical except at dashed line intersections, which disappear in Replace mode. This similarity holds true until a background color is set. If a red ba~kground were set, Overlay mode would cause a dotted white line over the background to be drawn, where Replace mode would cause a line with alternating white and red dashes to be drawn. Replace mode writing activity is implementation dependent. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B,8.2.l.3 Page B-22 l5-May-l983 Complement Mode - W(C) Complement mode causes the l's in the pattern register to complement and O's td not modify the display. Complement mode is also implementation dependent. For example, in the VK100 (GIGI) Complement mode complements the display plane (which is just one plane deep), but does not modify the intensity attributes for that location. The VTl25 display plane is two planes deep, and the intensity setting Itravels with' the drawing action, so to speak, and nothing is left over. After a Screen Erase, no locations have hidden attributes to be recovered by a Complement operation, so all of the bits at a given pixel location are complemented. Possibly the best use for Complement mode in an implementation is for putting the display back to its original state; this action occurs if the same sequence of instructions is executed twice in Complement mode. The results of one execution of Complement mode are essentially undefined or product dependent, but two executions reverts the display to its original state; this is true of all products. In this way, cursor could be dra'wn, because it (the cursor) could be executed, and then re-executed in Complement (so it goes away), producing a Iblinking effect' that the user could predict and have temporal control over. Another possible use for Complement mode is to highlight a field while in Shading block mode. Then with a re-execution of the Complement operation, the display would revert to its previous state - un-highlighted and otherwise un-modified. a Complement Mode should be implemented only where the programmer has complete control over the display medium. In more sophisticated systems where the programmer may not have complete, direct knowledge of how the screen refreshes, it should be viewed as a limited utility, A device's refresh method could produce unpredictable results with regard to Complemented locations (pixels) . . Particular caution is recommended in using it for systems that have layering between the users' perceived execution and the actual physical representation. It does not work well as a virtual tool, except for returning things to their original state as mentioned above. Even to accomplish that, intervening actions must'be precluded from interfering. B.8.2.l.4 Erase Mode - W(E) Erase mode ignores the pattern register entirely. Its primary use is to clear areas and return them to the background state, particularly when used with shading or filling operations. A viewport system implementation, for example, could use it in a shaded area to clear a rectangle to the background state. Other uses of Erase Mode are: VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only. '15-May-1983 Page B-23 1. To erase line patterns before executing other lines. 2. To erase individual constructs on a feature-by-feature basis, though this use can leave background Iholes' in certain cases, such as at line intersection points, etc. 3. To delete text, in some cases, though it is not designed for that use and is probably the least efficient way of doing it. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.2.1.S Page 8-24 15-May-1983 Negate Mode - W(N) Negate Mode can work in conjunction with all the other writing modes. Basically speaking, it inverts the current state of the pattern register; the l's become O's and the O's become l's. Negate/Replace mode, for instance, could be used to produce text in reverse video, provided its setting in the character cell is normal. Negate used with Complement, Erase, and Overlay do not have any apparent utility at this point; it would be more efficient to invert the pattern register manually. B.8.2.2 B.8.2.2.1 Write Command Extensions Raster Extensions The V,R,E,N and C options to the W command are implementation dependent raster extensions. They are the standard, compact writing modes which are transportable among all (and only) raster devices. B.8.2.2.2 Open Extensions The F and W options to the W command are bit plane (state machine) controls for extremely explicit descriptions of th~~riting modes. These options are ReGIS open extensions, since they are transportable to a wide range of devices, but their cost/performance utility is highly implementation dependent. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.3 B.8.3.l Page B-25 l5-May-1983 SCREEN INSTRUCTION Hard Copy Commands The ReGIS Extension states that the S(H) command is used to retransmit the visible image on the display surface to a second device which may be a hard copy device. As an example, the syntax S(H[x,y][x,y]) is proper for the VT125. The H option to the S command is classified as a ReGIS open extension, since it isn't possible to predict the ability of various devices to re-dump. For example, a laser printer is a good device to accept ReGIS, even in raster format, but it isn't clear that it could retransmit to the raster image. B.8.3.2 Address Space One of the key portability constructs of ReGIS is the ability to impose an address space. If the Screen Addressing (~(A ... )) construct at the beginning of the session is not used, the application will be programmed for that particular device and will not transport to other devices. A good approach to this would be to decouple physical and logical addressing at the default level. For example, although the actual physical measure of DEC's CT device is 960 x-240, the screen default was set at 767 x 479, equivalent to the VT12S. In a VT125 emulation, therefore, the emulation and square pixel conversion has already been accounted for. It is recommended that implementations always use the S(A) command, even if it means re-instituting the expected device defaults every time. It will then be certain that defaults are instituted in devices being transported to and the full screen used rather. than having the viewing area shrink into a corner on a large screen, or overshooting on a small screen. It provides reasonable certainty that some sort of reasonable screen results will be obtained. The use of the S(A) command is covered very thoroughly in the chapter "ReGIS Graphics Extension". VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.4 Page B-26 lS-May-l983 MACROGRAPHS The macrograph construct is derived from the macro instruction construct used in assembly language programming. It is included in ReGIS to provide local storage of graphic commands for frequent reuse throughout an application. The macro concept is actually at a higher level than ReGIS, and could be utilized above combinations of protocols. ReGIS and NAPLPS, for example, are text stream encoded protocols which, if the proper superior encoding existed, could be included in a Isuper parser' which would accept both streams of text. Each could then be invoked from within individual parsers to pullout its stream; this is possible even though the NAPLPS macro structure is not compatible with that of ReGIS. B.8.S MACROGRAPH CONSTRUCTS The three constructs of primary concern to th~ programmer are: the definition of an individual macrograph, the execution of an individual macrograph, and the clearing of the macrograph state. Any combination of individual macrographs may be used and/or repeated in a given ReGIS command. ReGIS has a protocol-specific macro encodi~g built arQund a particular character, in this case the lat' sign character (@). This specified character never goes into the ReGIS parser, regar~less of context or current state of interpretation, because i~,indicates there is a macro level operation taking place above the parsing level. The free-form structure of ReGIS allows the user to enter any combination of characters into ma~rographs; they can be entire commands, portions of them, or some mixture of each. When the macrograph invocation character is recognized at the pre-parser level, the macrograph data base is interrogated' and the substitute, character string read out. That character string is applied in the existing context of the ReGIS interpreter. For example, if ReGIS were at command level and encountered a macrograph the contents of which began with a "V", the ReGIS context would be changed to the Vector interpretation state and the remainder of the macrograph read within that context. Each character 'contained in the macrograph would be interpreted by the parser as though it had appeared individually along the communications line. VSRM - Programmer's Guide EL-0007D-OB *** COMPANY CONF - DEC Internal Use Only B.8.6 B.8.6.1 Page B-27 lS-May-1983 MACROGRAPH INVOCATION Macrographs Invoking Others Macrographs may invoke other macrographs; ReGIS recognition of macrographs is recursive. It should not be assumed that the entire contents of one macrograph will fall 'directly into the ReGIS state. One or more of the commands may be invoking other macrographs. B.8.6.2 Macrograph Invoking Itself A macrograph cannot invoke itself. Invocation of macrographs is entirely deterministic and non-conditional, since there are no conditionals in ReGIS. Therefore, it would not be possible to recognize an lexit' condition in a macrograph that invoked itself. For example, a path from macrograph D through other macrographs that further invoked macrograph D would repeat that same path predictably and exactly, resulting in an unbounded recursion requiring error recovery. In ReGIS devices, unbounded recursions are usually implemented so that the recursion stack overflows, creating an error condition which purges everything back to command level. It is entirely illegal to use any sort of --recursive macrograph invocation, direct or indirect. Implementations may insert a flag that signals as each macrograph is accessed. For instance, it would signal when macrograph D were being accessed. If macrograph D invoked macrograph L, macrograph L would be flagged as accessed, if L invoked x, X would be so flagged. If X then invoked D, L or X, the flag would recognize an unbounded recursion state and terminate. Recovery mechanism and recovery recognition scheme is the responsibility of the implementation; the ReGIS Extension does not impose one. B.8.7 MACROGRAPH STORAGE ReGIS provides for exactly 26 separate macrographs, irrespective of implementation. While the ReGIS Extension calls for a minimum of 4000 characters macrograph storage, this may be an implementation dependent value due to device limitations. Should a user need to know the amount of available macrograph storage space, a ReGIS inquiry function exists which allows the user to interrogate the system. Otherwise, a 4000 character storage space should be assumed. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-28 15-May-1983 There are 'hooks' at certain points within ReGIS into the macrograph storage. The Report command, for example, can send back details of space, usage, or individual macrograph contents. So macrographs do enter the parser, even though they are superior to it conceptually. While a macrograph can define the invocation of another macrograph, it cannot define its storage because macrograph definitions cannot be nested. The macrograph initiator and terminator are specific constructs. The macrograph initiator is: 'at' sign (@) colon. letter (macrograph name) The macrograph terminator is: , at' sign (@) semicolon. The macrograph initiator immediately turns off all ReGIS and nearly all macrograph parsing. At that point, the only construct which will not be stored in a macrograph is the terminator. It is, therefore, impossible to nest macrograph definitions. The following sample instructions illustrate an attempt to nest definitions in macrographs A and B: @:A @:B(contents of B) @; (remaining contents of A)@; These commands would not be interpreted as expected because the second instruction (@:B) would not be recognized at the macrograph storage level; it would be stored literally in the macrograph. Also, the first (@i) (third instruction) would be recognized as the termination of the entire macrograph exient. The last instruction, intended to invoke the remaining contents of macrograph A would be passed along to the parser, since all the macrograph storage constraints would have been satisfiedi the final (@i) would simply ,act as a spurious terminator. B.8.8 B.8.8.l MACROGRAPH UTILITY Specifications Macrographs have been u~ed effectively for storing combinations of specifications. Although ReGIS technically does not have the capability for named variable storage, macrographs can provide the capability to a limited degree. The following example macrograph (R) stores the HLS specification for the color red (hue 120, lightness 50 and saturation 100). @:R H120 L50 S100 @i This specification could be invoked within the context of a Write VSRM - Programmer's Guide EL-00070-0B ***COMPANY CONF - DEC Internal Use Only • Page B-29 lS-May-l983 mode instruction, as a suboption to the I command as follows: W(I(@R» or as a screen mapping command: 5(11 3 (@R)"} Though the context varies, the same macrograph is used. The macrograph character stream is a literal stream; it could be invoked as two characters at the device, rather than the specification being retransmitted as several characters from the source. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only, B.8.8.2 page B-30 15-May-1983 Polygons Macrographs can be used t9 define polygons. To accomplish this, the macrograph can be stored and executed twice, and the write modes changed outside the macrograph. For example, Shading mode could be turned on, and the macrograph invoked; this would draw a shaded area iri the shape of a polygon. Shading could then be turned off, the macrograph invoked again, the color changed and the border drawn around the polygon. Thus, the description of the polygon would be stored in the macrograph, and could be drawn shaded with a highlighted border. B.8.8.3 Icons Macrographs can be used effectively for drawing icons. The user may want to draw an icon that can be stored away for repetitive use, such as a Stop sign, for example, to be displayed at different places on the screen at different times. A line drawing of the picture could then be plotted out using only relative coordinate specifiers within vector imposition commands as the following example which draws a star: @:I V[+20,-50][+20,+SO][-SO,-30][+60,][-SO,+30] @; From command level, the cursor could then be positioned at a desired point and,the macrograph invoked to display the icon: P[x,y] @I Once the icon were positioned, other drawing operations could be performed on the picture, changing writing modes as necessary. If writing in Complement mode, the icon could be cleared out, if desired, by invoking the macrograph again in Complement mode at the same point. ~. This technique provides a cursor support capability. For example, if an interactive application required the tracking of an input device and the particular ReGIS device did not support Locator mode report, a cursor icon could be programmed to write, move, erase itself as necesSary, or perhaps just display itself repeatedly - such as for graphing structures. VSRM - Programmer's Gtiide . EL-00070-0B *** COMPANY CONF - DEC Internal Use Only ,B.8.8.4 Page B-31 15-May-1983 Coordinate Lists Macrographs provide the capability of storing a coordinate list. Two examples show how data compression can be used in macrographs to do a variable presentation of a picture by storing away entire command lists. The following example shows a set of bracketed extents within a macrograph used in a v~ctor construct to draw a Begin and End block around the outside, creating a closed polygon: @:C [ ][ ][ ]@; V@C V(B)@C(E) V(B)@C(E) The same structure could then be invoked as a closed curve construct. Macrographs can be used in this way to demonstrate how the closed curve command works in ReGIS; a specified sequence of points are first connected with vectors and then with curves. Another use for this type of curve construct is to invoke a different macrograph inside the command in order to apply markers at each point along the coordinate list extent. The following example has a coordinate list contained in macrograph C: @:C @M[ @M[ ] @M[ ] @M[ ] @M[ ] @; Between each specified coordinate, another macrograph (M) has been-invoked which could be an icon such as a small square. If these ~nstructions were executed as a polygon or an open vector set extent, they could send nested calls to a different macrograph to generate a graph, for instance, and draw the icon (small square) marker at each coordinate space to mark the position on the curve extent: @:~ P[+IO,-IO]V[+20][,+20][-20][ ,-20]P[-lO,+IO] @; If it were necessary to streamline the execution and not display the icon, the definition of macrograph M could be nulled; it would be invoked as an empty extent between every coordinate point and execute directly, causing no extra overhead in the display. • Page B-32 VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.8.5 15-May-1983 write Maps The macrograph structure has been used as a surrogate write map by DEC's Datatrieve system. Datatrieve allows the user to change the write map settings in order to present a graph in different colors, changing the shades -as desired. However, Datatrieve requires the default write map to suppress the display while entering an expanded text menu. Datatrieve protects the default write map settings from destruction by the user's write map settings by loading the user Write map settings into a macrograph. Datatrieve is then able to clear the user write map away while performing its expanded text menu operations, invoking the macrograph to restore the user write map settings again. The following shows a macrograph (Z) structure containing the user Write map settings. @ : Z S ( Mn ( ) n ( )) @; The code that interrogates the user for color settings, etc. actually modifies the macrograph and invokes it. Datatrieve can then perform other operations, changing the write map if necessary, restoring the user settings with the macrograph afterwards. State features such as the Write map are not accessible to the Report command of ReGIS; in a system application such as Datatrieve, the system and the application both have access to that feature of the machine. Macrographs are used in this case to prevent the competing entities from writing to the same extent (without making private copies of that extent), so it can be restored later in an unambiguous fashion. B.8.8.6 Text Macrographs have limited application for standard cell text; most individual sections of text do not warrant the overhead of storing and recovering things by name. However, for situations where short and medium length words such as "the" and "first" are used frequently, macrographs can be used to refer to them by abbreviations. This would be keeping with coding efficiency principles that advocate using the least number of characters as possible. Storing text in creating menus; local buffering provide another macrographs also presents the possibility of it is a combination between display lists and of intelligence at the ReGIS device. Macrographs tool for that type of system. VSRM - Programmer's Guide EL~00070-0B *** COMPANY CONF - DEC Internal Use Only. lS-May-l983 B.8.8.6.l Page B-33 Quoted Strings A caution in using macrographs for text is that they are not recognized or interpreted within quoted text strings. Therefore, it is not possible to use a Text command to invoke a macrograph contained within quoted strings, because the contents of quoted strings will be interpreted literally. Conversely, it is possible to put all or part of a quoted string within a macrograph. However, the use of unmatched quotes in macrographs will produce erroneous results. The following sample instructions invoke macrograph X containing a Text command, quote character and the first part of a quoted string, followed by macrograph Y con~aining the remainder of the string and a closing quote character. . @:X TI(text) @i @:Y (remainder of.text)' @; @X@Y The first instruction invokes macrograph X which sends the Text command to the parser. The next command is supposed to invoke macrograph Y, but the ReGIS parser has been instructed to execute quoted text (by the open quote in macrograph X) and has received no instruction to do otherwise. The result will be: T, I(text) @Y with no closing quote. This would will display as: (text)@Y and leave ReGIS out of synchronization. This result is obviously much different than what the user wanted or expected. S.8.8.7 Display Segments The ReGIS Extension states that macrographs are not intended for use as display segments. In most instances, the complexity required to support segmented displays is beyond the scope that can be offered by macrographs. As indicated earlier, just 26 macrographs are allowed, and a relatively small amount of storage (4000 character minimum) usually allotted. Most implementations will have storage in that range; a powerful implementation would likely have no more than twice that amount. A complex display file structure would be difficult, though not impossible, within those limitations. Pieces of pictures, each treated as a segment, could be stored ~way in macrographs and executed in turn. ~roper Write modes could then be chosen outside the macrograph level, turned on and off non-destructively, opaqued with other~, etc. Therefore, this application of macrographs does exist, but on a limited basis. . VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.9 B.8.9.1 Page B-34 15-May-1983 THE TEXT COMMAND Sizing Text - the S Option The best method for sizing text is the T(S) command with an integer argument. ReGIS will scale the character by the integer factor in horizontal and vertical extent, and set a default spacing into character escapement for character strings, until the S option changes again. For single-size characters, the instruction is T(SI). For double-size characters, the instruction is T(S2). Another text sizing method is to use the Sand H options with integer arguments. The H effects the height of the character only; it allows further changes to be made to the aspect ratio of the character extent and whatever changes required in text spacing to make that fit. To obtain standard-width characters at twice the height, for instance, the instruction would be T(Sl, H2). The H option will work only after the S option, since only the height can be altered after the size has been set. The instruction T(H2, S3), for example, will produce characters three times as wide and three times as high because S sets both height and width, overriding any previous settings. A default character cell size called a 'unit size' has been implemented in the newer versions. Basically, it amounts to the fact that the character definition as loaded into the program ROM, or down loaded in the Load Character extent, is treated as a logical display (that is, a selectable number of current coordinate units is used for each parameter of the character'S height and width). The window for that character has the entire extent of the logical display for that character and can be viewported into a unit size on the screen. The T(S) command fulfills most text sizing requirements, but doesn't provide for a way to know the actual size of the characters, or how many of them will fit across the display. For instance, if the unit size is unknown and a "standard size one" character is asked for, the actual size of the characters, plus how many will fit across a screen will be unknown. The T(S) command will give so~e relative size scaling, but the results will be trial and error without knowing the unit size. V5RM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.9.2 B.8.9 .2.1 Page B-35 l5-May-1983 The 5 Option Coupled with Other Options 5peci fying 5c"reen Area - -The 5, M and U Options When coupled with the M option, the 5 option can be used to ~pecify the amount of screen area the character will" ~ake up. When coupled with "the U option, the use of the 5 option is more complicated, but also provides another means of predicting the amount of screen area the character will take up. The U option should be understood in order to figure out how to get transportability across various text resolution displays. When used with the 5 option, it becomes possible to size text without knowing the unit sizes, but the actual results will be implementation dependent. Most implementors program their devices at maximum resolution, making detailed text representation a necessity; the handling of detailed text in ReGIS is complex and highly device dependent. B.8.9.2.2 Character Orientqtion - The 5 and D Option The relationship between the size (5) and direction (D) options is a complicated one. The D option controls the orientation of the character cell. When used in conjunction with the 5 command in the same option set, it has the side effect of changing not only the cell orientation, but the intercharacter movement. If the 5 option is used with the D option, it couples the direction specifier to the character baseline. For instance, if the string, T(D90 51)"ABCD" is sent, the characters will be oriented to each other as follows: This technique can provide a way of labelling the Y axis of graphs, or can be used in other applications as well. A D90 instruction without the (5) specifier simply rotates the characters 90 degrees clockwise (an angular orientation, not a pixel orientation) so the characters will display as follows: The 5 and D options work for whatever character angles the implementation can support. The simplest and most portable character orientation is in 90 degree increments, though 45 degree increments will usually also work. ReGIS allows arbitrary character orientation, but product limitations usually prohibit it and round to the nearest 45 or 90 degree increment~ VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.9.2.3 Page B-36 15-May-1983 Text Bracketed Options - Space Setting The T(S)[] command may be used to provide certain specific controls. Using a bracketed argument with the T command, for example, forces an intercharacter space setting that overrides any space defaults set by the character size. This can be used to change the perceived orientation of the lines of the character, the character path. An example of a character path altered in this manner can be found in Figure 8-6 of the ReGIS Extension. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.9.3 Page B-37 lS-May-l983 Text Control Characters ReGIS has three basic text control features: backspace, carriage return and line feed. Implementing them is straightforward in the base logical device, since text re-orientation (see above) is not possible in the base logical device. Carriage return returns to the start position of the text string being worked in. A line feed moves down one line vertically, without changing its horizontal position. Consecutive line feeds move along vertically, but the X position never changes because with no reorientation, the text runs horizontally from left to right. Since there is no vertical component to a Carriage Return, text following a Carriage Return goes to the left hand position; this is true with every text command and argument. Backspace moves back one position and overstrikes the character. It is possible with the backspace to go beyond the carriage return position. In most implementations, Backspace, Carriage Return and Line Feed will work with rotated text. Carriage Return moves along the baseline orientation to either the position at the beginning of the T command, the beginning of the last quoted extent, or to the point at which the last Line Feed was encountered. Using CR and LF control characters, it should be possible to do a rotated block of text as follows: To summarize, it may be stated that the control characters operate in a way that preserves the logical functions of Backspace, Carriage Return and Line Feed, irrespective of character orientation. These three controls also provide a shorthand method of putting the drawing point at a predictable location; alternative methods of accomplishing this are either to use the pixel vector specifiers or to leave the text command and send a relative position argument each time the drawing position changes. Other text control characters, such as horizontal and vertical tab, are not covered in the ReGIS Extension, because they lose their meaning when the baseline is neither horizontal or vertical, or when character sizes and aspect ratios change. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.9.3.1 Page B-38 15-May-1983 Pixel Vector Specifiers The text control characters described above provide a means of moving the drawing position in relation to the text characters. Another means of moving it is to use pixel vector specifiers as an .. argument within a text command. These may be included between quoted string arguments (though not within the quoted string). The way to write a superscript 12 to the ABCD text, for instance, is with the following command: T"ABCD"2"12"6 which is the text, the pixel vector specifier to move the position up, the superscript characters, and the pixel vector specifier to move the position back to baseline. The pixel vector specifiers 2 and 6 move the drawing position up and down, respectively. Pixel vector specifiers used in this manner move the drawing location for the next character cell one-half character size. Pixel vector 2 would move the drawing position up one half the character height, while 22 would move it up a full character height. Text pixel vectors are measured differently from standard pixel vectors. Text pixel vector 0 is always in the direction of the text string, 2 is always up from the character baseline and 6 returns to the baseline. Standard pixel vector 0 is to the right, 2 is vertically up, 4 is to the left, and 6 is vertically down. Therefore, text can be superscripted/subscripted with the same pixel vectors whether or not the string is rotated. Pixel vector specifiers are covered in various places in the ReGIS Extension, since they are included in the base logical device as well as the raster and open extensions. B.8.9.4 Scrolling and Wrap ReGIS has no provision for scrolling or wrapping text, making it a very limited tool for general text purposes. Since there is no screen margin for text, the system keeps incrementing its X and Y pointers and goes beyond the margins and bottom of the screen. The user may be able to effect a "manual wrap" if the extents of the screen, the size of the character, the number of characters across, etc., are known. However, the system would still be without a general-purpose scrolling function tha~ could satisfy text requirements. The type of scrolling offered by ReGIS is graphics-oriented and highly device dependent. In the open extensions section of the ReGIS Extension, two scrolling methods, or models, of moving data in a graphics display are described. One model "shifts the data through the space" w~ile the other "moves the viewpoint around within the data address space". VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.l0 Page B-39 l5-May-1983 COLOR MAPPING Color mapping is parameterized in ReGIS through the HLS reference model. The RGB model essentially duplicates the HLS model and is not fully parameterized in ReGIS. For instance, it is not possible to color a figure 20% red, 40% green, and 8% blue. The only ReGIS possibility with the RGB alphabet is to specify the distinct colors red, blue, yellow, cyan, magenta, black or white, which are all fully saturated colors at their maximum intensity. HLS provides the easier model with which to understand colors from a human point of view, since it is based on a perceptual model. It identifies a set of dimensions for color specifications that. is based on what people perceive the three elements of color to be. The hue specifier, for instance, indicates the tint~ which is the major determinant of the color. The hue specifier is based upon an angular specification that runs from 0 to 360, with blue at 0, red at 120 and green at 240. To change color to a hue between blue and red, the angular parameter between blue and red is adjusted. The L parameter adjusts color lightness to specify how bright or dim the color is. The S parameter indicates how pastel the shade is - how much that color varies between a gray and a pure presen~ation at the specified hue and lightness. Color mapping requires a 3-dimensional specification; all three are needed to produce the precise representation of the color. The HLS model has well.-defined end points and, while it is not linear along any of the axes, it can be interpreted as linear for the rough scale of models that we have. B.8.10.1 Color and Gray Scale. In theory, programs written for color will produce a corresponding visual effect on a non-color device that supports only gray scale. In practice, however, it will not transport perfectly because the ReGIS color model and gray scale is "grainy". Having just four, eight or sixteen individual colors visible at any given time or on a given gray scale limits the ability to shade a particular color to a particular shade of gray. A two-dimensional extent is being imposed into a one-dimens{onal extent, and some informatioti loss is inevitable. If two colors 'that map very closely on the gray scale are used (such'as bright blue and dim green in television) they could 'collide', or map to the same shade on the ReGIS gray scale. It is actually largely determined by the product's hardware. In most cases, if standard colors are used, or a widely varied set of colors,. the chances of gray scales colliding with map from the colors is probably not too great. It is recommended to not use non-standard color gradations to present information. Standard, bright colors such as red, green etc. with the same whiteness saturation and only varying hues will produce discernible gray scales. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only B.8.ll Page B-40 l5-May-1983 INTEGRATION OF GRAPHICS AND TEXT ReGIS provides very limited control over registration between text and graphics, particularly across devices, or when the text is created with other than the ReGIS Text command. For example, an attempt to use VT100 text as captions for VT125 figures would be severely hampered by insutficient control over scrolling 'in the VT100. Also, column modes (widths) between the two devices would be difficult to synchronize, since it would not be known whether the user wanted the VT100 column mode set to 132 or 80 columns, or whether the device had an advance video option with only 14 lines in l32-column mode. Another integrating situation that would encounter problems would be to attempt to integrate text that was created in the Text mode of the VT240 instead of with the ReGIS Text command. The real utility of integrating editable text with graphics is that while composing, the user views the work outside of the context of the terminal being used; the graphics and text are viewed in a unified text environment. This requires the ability to address the application of various protocols to obtain predictable, integrated results, and is not currently feasible with the various text and graphics protocols used by DEC. To avoid incompatibilities with future products, application software should not depend on interactions between graphics and. text. Some examples of interactions to avoid follow: 1. Using the graphics erasing command S(E) to erase text. 2. Using (non-ReGIS) text erasing commands to erase all or part of the graphics image. 3. Using graphics scrolling to scroll text. 4. Using text scrolling to scroll graphics. 5. Mixing text and graphics in the same screen area. VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-41 lS-May-1983 Applications which need to label graphs, charts, etc., or which need to perform advanced text functions such as proportional spacing, italics, colors, etc. should use the ReGIS T command exclusively, and not mix graphics text with text mode text. A B C D ABCD ABCDEFGHIJ KLMNOPQRST UVWXYZABDE • VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page 8-42 l5-May-1983 This page deliberately left blank. VSRM - Programmer's Guide EL-00070-0B ***·COMPANY CONF - DEC Internal Use Only Page B-43· 15-May-1983 Section Index -A- Application Programs Auto Repeat B-6 B-16 -C- Color Map Conformance Levels Control Sequence use by application programs use by applications programs B-39 B-l1 B-6 B-9 -D- DAl DA2 DEC STD 169 PEC Supplemental Graphics DECARM DEClD DECSCL DECTCEM DECTST Device Attributes (Primary) Device Attributes (Secondary) Device Control String , Device Identification Device Test • B-13 B-14 B-8 B-8 B-16 B-14 B-ll, B-14 B-15 B-15 B-13 B-14 B-ll B-13 B-15 -E- Escape Sequence use by application programs B-6 -G- GL GR B-8 B-8 -I - Identify Terminal Integration of Text and Graphics B-14 B-40 Page B-44 VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only.··15-May-1983 -L- Level 1 Level 2 Levels of Abstraction Local Function Keys B-ll B-ll B-6 B-16 -M- B-26 Macrograph Mode Switching B-8 -P- Primary Device Attributes Printer Controller Mode Programmer's Guide B-13 B-IO B-5 - R- ReGIS address space character orientation color map extensions hard copy initialization macrograph pixel vector specifiers screen area scrolling text command wrap writing modes Regis synchronization ReGIS Syntax B-25 B-35 B-39 B-24 B-25 B-20 B-26 38 , B- B-35 B-38 B-34 B-38 B-21 B-18 B-17 -S- S7CIT S8CIT Secondary Device Attributes Select 7-Bit Cl Transmission Select 8-Bit Cl Trasnmission Select Conformance Level Software Conformance String Terminator Subroutine Library B-12 B-12 B-14 B-12 B-12 B-ll, B-14 B-6 B-IO B-6 VSRM - Programmer's Guide EL-00070-0B *** COMPANY CONF - DEC Internal Use Only Page B-4S lS-May-1983 -T- Terminal Initialization Terminal Interface Architecture Text Attributes Text Cursor Enable Mode TIA Type Ahead B-IO B-S B-8 B-1S B-S B-16 -X- XON/XOFF B-IO VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only Page Col 18-Mar-1985 VIDEO SYSTEMS REFERENCE MANUAL Product Reference Document Identifier: A-OS-EL00070-0C-O Rev. AXIl, l8-Mar-l985 ABSTRACT: This appendix describes the products which have been certified as conforming to the architecture defined in the Video Systems Reference Manual, and identifies any areas in which those products deviate from the architectural specifications. APPLICABILITY: SARA Formal Cross-Component Standard. Mandatory. for Engineers designing hardware for terminal products and Software Engineers designing programs using terminal interfaces. Additional requirements are defined in the section on "Concepts and Conformance Criteria". STATUS: FOR REVIEW ONLY + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -, - - - - - - - - - - - - - - - - - - - - - - - - - - - - + This document has been placed in the SARA "Formal Cross-Component Standard" category. The material contained within this document is assumed' to define mandatory standards unless it is clearly marked as (a) not mandatory or (b) guidelines. Material which is marked as "not mandatory" is considered to be of potential benefit to the corporation and should be followed unless there are good reasons for non-compliance. "Guidelines" define approaches and techniques 11 which are considered to be good practice, but should not be considered as requirements. The procedures for modifying or evolving this standard are contained within the contents of this document. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+ FOR INTERNAL USE ONLY +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Page C-2 VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only 18-Mar-1985 TITLE: VIDEO SYSTEMS - Product Reference DOCUMENT IDENTIFIER: A-DS-EL00070-0C-O Rev. AXIl, 18-Mar-1985 REVISION HISTORY: Original Draft 25-Dec-1982 Revision AXOl 28-Feb-1983 Revision AX10 l5-Apr-1983 FILES: User Documentation EL070SC.mem Internal Documentation EL070SC.rno EL070SC.rnt Document Management Group: Terminal Interface Architecture Responsible Department: Vid-eo Atchi tecture Group Responsible Individual: Peter Sichel ACCEPTANCE: This document has been approved by the Manager of the Video Architure Group based on a comprehensive review of its individual sections ,by the members of the SARA component groups working Terminal Interface Architecture issues. The list of individuals on the review and approval list are on file in Standards and Methods Control. Direct requests for further information to Peter Sichel, PK03-1/l0C, DTN 223-5162, RANI::VIDARCH Copies of this document can be ordered from: Standards and Methods Control AP01/F7, DTN 289-1414, JOKUR::SIMONETTI • VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only Page C-3 18-Mar-198S CONTENTS APPENDIX C PRODUCT REFERENCE C.I PRODUCT/ARCHITECTURE MATRIX C.2 RAINBOW IOOA COMPUTING TERMINAL / C.3 DECMATE II WORD PROCESSING STATION / 20-JAN-83 . . . . . . . . . . . . . C-12 C.4 PROFESSIONAL COMPUTING TERMINAL / C-19 C.S VT240/VT241 TERMINAL / C.6 VAXSTATION WORKSTATION / C.7 VT220 VIDEO TERMINAL / 14-NOV-83 . . C-4 07-JAN-83 20-APR-83 . . C-S C-26 lO-JUL-84 C-33 27-0CT-84 . C-39 VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only C.l Page C-4 18-Mar-1985 Product/Architecture Matrix The following table describes the products which are currently certified or planning to be certified as conforming to the Video Systems Reference manual in accordance with the conformance requirements described the chapter "Conformance Requirements". Products which are planned to be certified but have not yet been tested are indicated by an asterisk (*). P R 0 D E C M A T E R A l N B 0 W V A X S T A F V V T T 2 2 E E E I 4 X X 2 X N 0 T T T 0 T - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LEVEL---lX X X X X - - - - - -. - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LEVEL 2 X X X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ********** EXT ENS ION S ********** - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 132 COLUMNS X X X X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PRINTER PORT X X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REGI S GRAPfU CS! • X - - - - - - - - -- ---------- - - - - - - - -- - - - - - - - - -- - - - - - - - -- - - - - - - - - -- - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- SIXEL GRAPHICS! X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- DRCS X X - - - - - - -- - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- UDK X X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -********** 0 P T ION S ********** - - - - - - - - - - - - - -+- - - - -, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VT52 X X - - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -~ - VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only C.2 Rainbow 100A Computing Terminal / Page CoS 18-Mar-198S 07-JAN-83 The Certification Waiver Panel met on 22-DEC-82 to review the results of RAINBOW Certification. Each deviation that was listed in the Certification Report of 20-DEC-82 was discussed and agreement was reached in every instance as to how the deviations would be resolved. Because of this, the opinion of the Waiver Panel is that RAINBOW has PASSED CERTIFICATION WITH WAIVERS as a Level 1 Device. Many waivers were granted on the basis that the product would be changed to eliminate the deviations between it and the architecture (see section 1.0 below). In some cases, the changes are scheduled for the first or second planned ECO release, but in all cases, a commitment was made to fix the problems by the next generation release. Because only part of DEC Standard 169 was implemented, and some problems exist with this and other Level 2 issues, a restriction is placed on the advertising of this product. Examples of the partial/incorrect implementation of DEC Standard 169 are: - G2 and G3 character set designators parse incorrectly - DEC Supplemental Character Set was unavailable. These are Level 2 issues, however, and as such do not effect Level 1 Certification results. Advertising compatibility with either DEC Standard 169 or DEC Multinational is not to be allowed, but advertising the fact that a subset of DEC Multinational is available may be acceptable. What follows is a list of the actual deviations placed in the categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that RAINBOW may be called a Level 1 product. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-6 . 18-Mar-1985 CHANGE THE PRODUCT For items in this category, it is agreed that the problem must be fixed, but that because plans are in place to do so by a specified time, a waiver is granted. 1) - Backspace If the screen is set to 132 column mode and the cursor is positioned beyond column 127, the reception of the backspace control will position the cursor to the left margin. 2) [ 2 h - Keyboard-action locked: When Keyboard Action mode is set while a key is auto repeating, the WAIT indicator lights but the codes do not stop until the key is released. Then no new codes are generated . . If KAM is reset while a key is down, no codes are generated until after the key is released. Further, when the keyboard is locked, the break key does not function. 3) Relative Cursor Positioning When using relative cursor positioning (cursor down or cursor forward) a parameter greater than 255 will cause the cursor to disappear. 4) Auto repeating If a control key is pressed before a non-control key, auto repeating is suppressed after the control key is released. A key pressed before the control key causes the the control code to be repeated after control is pressed. 5) Undefined Cnaracter Codes RAINBOW displays undefined character codes as upsidedown question marks. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 2: Page C-7 l8-Mar-1985 CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. 1) SETUP Entering SETUP resets keyboard action mode and turns off keyboard locked indicator. The architecture will be changed to state that entering and exiting SETUP should not change keyboard action mode unless the user has explicitly executed a function from within SETqP that unlocks the keyboard. 2) Erro~ Bells The following keys produced key clicks instead of error bells when pressed with control: EOl, E09, ElO, Ell, E12, CIO, CII, BOO, B08, B09. VSRM - Product Reference CATEGORY 3: Page C-S EL-00070-0C . *** COMPANY CONF - DEC Internal Use Only 18-Mar-1985 CHANGE THE CERTIFICATION PROCESS For items in this category, it is agreed that the certification process was in error in that it either failed to properly interpret the architecture or failed to properly test the product. 1) V - Print-Cursor-Line: No carriage-return and line feed are appended to the line when performing a print cursor line. 2) Dead Keys Inappropriate error bells are sounded when the following keys are depressed: EI, E2, E3, E4, ES, E6, F6, FB, F9, FlO, Fi4, FlS, F16, Fl7, FIB, F19, F20, Compose. These are specified as dead keys by the SRM. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 4: Page C-9 l8-Mar-l985 WAIVE BY AGREEMENT OF THE PANEL Por items in this category, it is agreed that no change is to be made at this time to the product, the architecture or the certification procedures. By granting this waiver, the Panel is expressing the opinion that it considers the issue insufficient cause for the product to fail certification. 1) c - Reset to initial state: RIS fails to accomplish a complete reset. recommended sequence to execute. 2) - [ ? Note: RIS is not a 7 _h - Auto wrap on. Auto wrap operates like the VTl02 (not considering interdependent sequences) but the VT102 does not conform to the TIA Video SRM. 3) XON/XOFF When the key combination Cntrl/S- is sent, RAINBOW sends XOFF to the host. No other effect appears until the input buffer is tested while RAINBOW is in SET-UP or Hold Screen mode. At this time the buffer stores 235 characters before sending XOFF to the host. However, when RAINBOW exits SET-UP or Hold Screen mode, the screen updates using the buffered data, but RAINBOW does not send XON to the host. After the terminal is reset with Cntrl/SET-UP (or typed Cntrl/Q), the buffer holds 157 characters before sending XOFF and sends XON when the screen is updated. 4) SHIFT & LOCK If control is pressed with both shift and lock set no code is generated when a code generating key is then pressed. 5) CONTROL The following keys did not produce any codes when pressed with control: EOO, E02, E03, E04, E05, E06, E07, E08, B10. 6) [ p K , [ p J - Erase in line / Erase in display. The RAINBOW escape sequences for erase in line and erase in display only processes the- first selective parameter if more than one is sent. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only Page ColO l8-Mar-l985 7) ABORT SEQUENCE When escape sequence parsing aborts, it does so in such a way that subsequent characters are printed rather than suppressed. 8) Shift Lock Mode Shift Lock mode is unavailable. 9) COMPOSE KEY The compose key beeped instead of producing 7·bit compose sequence codes. 10) PHYSICAL CONNECTORS The female OB-25 connector on the back of the RAINBOW is not compatible with the VT102 printer port male OB-25 connector . • VSRM - Product Reference 'EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 5: Page C-II 18-Mar-1985 RESTRICT For items in this category, it is agreed that although no change to the product is involved at this time, the deviation is serious enough to warrant placing a restriction on what compatibility or other claims the product should be allowed to.make. There were no items in this category. CATEGORY 6: NO RESOLUTION For items in this category, the Waiver Panel was unable to agree on a resolution for the iasue or on the proposed time frame for resolution, and will present it to upper management for a decision. There were no items in this category. Page C-12 VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only 18-Mar-1985 C.3 20-JAN-83 DECmate II Word Processing Station / The Certification Waiver Panel met on 10-JAN-8.3 to review the results of DECMATE II Certification. Each deviation that was listed in the Certification Report of 06-JAN-83 was discussed and agreement was reached in every instance as to how the deviations would be resolved. Because of this, the opinion of the Waiver Panel is that DECMATE II has PASSED CERTIFICATION WITH WAIVERS as a Levell Device. Many waivers were granted on the basis that the product would be changed to eliminate the deviations between it and the architecture (see section 1.0 below). In some cases, the changes are scheduled for the first or second planned ECO release, but in all cases, a commitment was made to fix the problems by the next generation release. Because only part of DEC Standard 169 was implemented, and some problems exist with this and other Level 2 issues, a restriction is placed on the advertising of this product. Examples of the partial/incorrect implementation of DEC Standard 169 are: - COMPOSE is not functional. DEC Supplemental Character Set is not available in a way compatible with DEC Standard 169. - Function key cod~s are transmitted from the Level 1 terminal emulation package. It was agreed that because of these issues, advertising compatibility with either DEC Standard 169 or DEC Multinational is not to be allowed. It was further agreed that. when DECMATE II implements Level 2 it will no longer be possible to access Level 2 features from Level 1. As a result, these issues will not impact Level i Certification results. What follows is a list of the actual deviations placed in categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that DECMATE II may be called a Level 1 product. • VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-13 18-Mar-1985 CHANGE THE PRODUCT For items in this category, it is agreed that the problem must be fixed, but that because plans are in place to do so by a specified time, a waiver is granted. 1) # 8 Screen Alignment Sometimes when # 3, # 4, # 6 Line Attributes 1. When a command is sent to set a line to Single-Height Double-Width characters, no change takes place until a character or escape is sent to the screen. 2. An attempt to set a line attribute in a line followed 9Y a carriage return/line feed does not set the attribute for that line but sets it instead for the next line and then only if a character or escape is sent on that line. 3. The sequence [H #6 #6 fails to set the proper line attribute for line one. Similarly for other line attributes. 4. When followed by a test string loses characters in columns 31 to 40 and displays the characters from a subsequent line. 5. When followed by a tab fails to display subsequent characters output to the line. 3) [ ? 15 n - Request Prjnter Status DECmate II does not respond to the request for printer status. 4) [ c - Device Status Report DECMATE II responds with [?l;2c indicating it is a VT100 rather than a a LEVEL 1 device. Since the DECMATE II emulates a VTI02 rather than a VT100 it should respond as VTI02 until sdftware is prepared for the LEVEL 1 response. 5) [ 2 h·· Keyboard Action Mode VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only Page C-14 l8-Mar-1985 Keyboard action mode turns off the keyboard including local function keys. However, key clicks do not stop for 4 more keystrokes. When the keyboard is unlocked, the 4 codes are transmitted. Because the local 'function keys are locked, the only way to turn the keyboard back on is with another control sequence. 6) Parser Error Processing The parser does not always process error conditions properly. For example, if the sequence [[[[[ is sent, the extraneous "["'s are not displayed. In some cases, it gets so confused that a is required to bring it to life. 7) Default modes The emulator starts up with the alternate keypad in application mode instead of numeric mode, and cursor keys in application mode instead of cursor mode. 8) Processing If a is embedded in an ESCAPE sequence, the sequence is aborted. should be ignored in this context. 9) Control S, Control Q processing E02, DOl and C02 produce no codes when held with Control. also relates to special processing associated with "\". This 10) Function key processing. The function keys other than delete do not autorepeat. 11) Keyboard response. All keys click even for invalid combinations, and no error bell sounds for invalid combinations. 12) Legend Strip The SET_UP, BREAK, and blank key indications on the legend strip are incorrect_ VSRM - Product Reference EL~00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 2: Page C-1S 18-Mar-1985 CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. 1) Answerback and disconnect by Control. CONTROL/BREAK (answerback) and SHIFT/BREAK (disconnect) transmit break. Requirements in the architecture to be changed based on K. House memo to R. Sudama. • VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 3: Page C-16 i8-Mar-1985 CHANGE THE CERTIFICATION PROCESS For items ·in this category, it is agreed that,the certification process was in error in that it either failed to properly interpret the architecture or failed to properly test the product. 1) XON processing When returning to the WPS menu, DECMATE II sends XON to the host. 2) SET-UP SET-UP is not available from the terminal emulator. VSRM - Product Reference !L-OOd70-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 4: Page C-l7 l8-Mar-l985 WAIVE BY AGREEMENT OF THE PANEL For items in this category, it is agreed that no change is to be made at this time to the product, the architecture or the certification procedures. By granting this waiver, the Panel is expressing the ~pinion that it considers the issue insufficient cause for the. product to fail certiffcation. 1) "\" (Backslash) "\" does not transmit a code on alternate pressings_ That is to say if two backslashes are pressed only the second is transmitted. This is related to the \R, mechanism for returning to WPS from CX mode. It is not clear why the terminal, having realized "\R" has not been been entered, cannot send both codes. 2) Transmission Rate The transmission rate is not limited to 240 problems for some operating systems. cps. This may cause VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 5: Page C-l8 l8-Mar-l985 RESTRICT For items in this category, it is agreed that although no change to the product is involved at this time, the deviation is serious enough to warrant placing a restriction on what compatibility or other claims the product should be allowed to make. There were no items in this category. CATEGORY 6: NO RESOLUTION For items in this category, the Waiver Panel was unable to agree on resolution for the issue or on the proposed time frame for resolution, and will present it to upper management for a decision. a There were no items in this category. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only C.4 Page C-19 l8-Mar-1985 Professional Computing Terminal / 20-APR-83 The Certification Waiver Panel met on'3l-JAN-83 to review the results of PRO 350 Certification. Each deviation that was listed in the Certification Report of 24-JAN-83 was discussed and tentative agreement was 'reached in every instance as ta"how the deviations would be resolved. In the weeks that followed, upper management was made aware of these decisions and has not objected to any of them. Some waivers were granted on the basis that the product would be changed to eliminate the deviations between it and the architecture. In all cases, a commitment was made to fix the problems by the next generation release. Because of this, the opinion of the waiver Panel is that the PRO 350 has PASSED CERTIFICATION WITH WAIVERS as a Levell Device. It is important to rtote that although the product has implemented many Level 2 features, specifically those that pertain to DEC Standard 169, we have not attempted to certify at Level 2. Since the Certification group has not tested DEC Standard 169 or DEC Multinational, the group is not yet prepared to make a statement about the product's compatibility with those standards. What follows is a list of the actual deviations placed in categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that the PRO 350 may be called a Level 1 product_ VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-20 18-Mar-1985 CHANGE THE PRODUCT For items .in this category, it is agreed that the problem must be fixed, but that because plans are in place to do so by a specified time, a waiver is granted. 1) [? 8 h - Autorepeat The function keys Backspace, Linefeed, and Tab do not autorepeat. The architecture states that all keys except RETURN should autorepeat. 2) [ c - Device Attribute Report PRO. 350 responds with [?12;7iOi102c which is not the proper response for a LEVEL 1 device. Since software currently does not support the architectural identification scheme, it is agreed that certain device specific responses would be correct: A) If the emulator is in PRO mode: CSI?23il;OiO;OC (if EBO installed) CSI?23;O;OiO;OC (if no EBO) B) If the emulator is in VT125 mode: ESC[?12;7;Oi102c (will always be ESC not CSI) C) If the emulator is in VTl02 mode: ESC[?6c D) If the emulator is in VT52 mode: ESC\Z 3) Break Key The Break key sends when pressed alone, or when pressed together with either shift or with control. Shift Break should be disconnect and Control Break should be answerback. Since answerback is not programmable in this product, control break should cause no code to be sent. 4) TAB When auto wrap mode is set, the Horizontal Tab does not reset the LAST-COLUMN-FLAG. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only 5) \ Page C-2l" l8-Mar-l985 - String Terminator ST is not handled properly with the control strings OSC (Operating System Command), DCS (Device Control String), APC (Application Program Command) and PM (Privacy Message). ST will only terminate the "Pp" ReGIS ccintrol string, and it is inoperative for the others. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 2: Page C-22 l8~Mai-l985 CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. 1) [ ? 8 h - Autorepeat If auto repeat is turned off by a control function while a key is auto-repeating, two keystrokes worth of codes are transmitted. This is a timing issue, and the architecture will change to eliminate a specified requirement for the delay between receipt of autorepeat and when the function takes effect. . 2) Answerback Answerback message is not changed to put Answerback "exceptions". This means required for conformance, certifications. 3) [? supported. The architecture will be into an appendix of documented that the function will no longer be and it will not be tested in future 7 h - Auto Wrap When auto wrap mode is set, Erase in Display resets the LASTCOLUMN-FLAG, but according to the TIA specification it should not. The architecture was in error in this matter, and will be changed to require both Erase in Line and Erase in Display to reset the LAST-COLUMN-FLAG. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC lnternal Use Only CATEGORY 3: Page C-23 18-Mar-1985 CHANGE THE CERTIFICATION PROCESS For items in this category, it is agreed that the certification process was in error in that it either failed to properly interpret the architecture or failed to properly test the product. 1) [ Pn @ - Insert Character The Certification group reported that Insert Character was not implemented. After the problem was reported, the architecture was changed to no longer require this implementation in Levell but to require it for Level 2, and therefore the testing procedures will have to follow suit. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only -18-Mar-198S CATEGORY 4: Page C-24 WAIVE BY AGREEMENT OF THE PANEL For items in this category, it is agreed that no change is to be, made at this time to the product, the architecture or the certificaticn procedures. By granting this waiver, the Panel is expressing the opinion that it considers the issue insufficient cause for the product to fail certification. 1) [ 2 h - Keyboard Action Mode Keyboard Action Mode is turned off whenever SET-UP is entered and exited. 2) Key Processing The El - ES, F6 - FlO, and Fl4 - F20 keys do not output codes but do click. They should not click. 3) [ S m - Blink Fields with the blink attribute do not always blink. This occurs when more than 100 fields are set to blink simultaneously. 4) c - Reset RIS does not control the setting of Auto Wrap mode. VSRM- Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 5: page C-2S l8-Mar-1985 RESTRICT For items in this category, it is agreed that although no change to the product is involved at this time, the deviation is serious enough to warrant placing a restriction on what compatibility or other claims the product should be allowed to make. There were no items in this category. CATEGORY 6: NO RESOLUTION For items in this category, the Waiver Panel was unable to agree on a resolution for the issue or on the proposed time frame for resolution, and will present it to upper management for a decision. There were no items in this category. • VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only C.s VT240jVT24l Terminal j Page C-26 l8-Mar-l985 14-NOV-83 The Certification Waiver Panel met on Il-NOV-83 to review the results of VT240jVT24l Certification. Each deviation that was listed in the Certification Report of lO-NOV-83 was discussed and agreement was reached in every instance as to how the deviations would be resolved. B~cause of this, the opinion of the Waiver Panel is that VT240jVT24l has PASSED CERTIFICATION WITH WAIVERS as a Level 2 Device. One waiver was granted on the basis that the product would be changed to eliminate the deviations between it and the architecture (see section 1.0 below). A commitment was made to fix the problem by the next generation release. What follows is a list of the actual deviations placed in the categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that the VT240jVT241 may be called a Level 2 product. VSRM - Product .Reference EL-OD070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-27 18-Mar-1985 CHANGE THE PRODUCT For items ~n this category, it is agreed that the problem must be fixed, but that because plans are in place to do so in a future release, a waiver is granted. 1) Insert Line / Delete Line Attempting to INSERT or DELETE a line while the cursor is positioned below the bottom margin should be ignored by the terminal. The VT240 will crash if this is attempted. Due to the fact that this attempt would normally be ignored, software should avoid this condition. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 2: Page C-28 18-Mar-1985 CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. 1) EXIT VT52 MODE leaves the terminal in LEVEL 1. Sending the escape sequence to EXIT VT52 MODE will leave the terminal in LEVEL 1 mode even if the terminal had been set to LEVEL 2 mode prior to entering VT52 mode. The architecture will be changed to reflect this functionality. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 3: Page C-29 l8-Mar-1985 CHANGE THE CERTIFICATION PROCESS For items in this category, it is agreed that the certification process was in error in that it either failed to properly interpret the architecture or failed to properly test the product. There were no items in this category. VSRM - Produc~ Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 4: Page C-30 l8-Mar-1985 WAIVE BY AGREEMENT OF THE PANEL For items in this category, it is agreed that no change is to be made at this time to the product, the architecture or the certification procedures. By granting this waiver, the Panel is expressing the opinion that it considers the issue insufficient cause for the product to fail certification. As noted in the descriptions below the panel reccomends that certain of these be considered for fix in a future release of the product. 1) Pressing or Releasing SHIFT can cause multiple returns to be sent. If the SHIFT key is pressed or released while the RETURN key is held down, a RETURN code will be transmitted by the terminal. This is a problem with the ~K201 that cannot be solved by the terminal firmware. 2) ESC or CSI embedded in escape sequences is not always handled correctly. The SRM calls fo~~SC and CSI to abort escape sequences in progress. If an ESC or CSI is sent to the terminal during the processing of a DEC PRIVATE control sequence, the sequence is not always aborted correctly. Attempts were made to fix this problem, but Certification testing was unable to verify that all instances of this problem had been corrected. Attempts will be made to both fix and test the problem in a future release. 3) LEVEL 2 parameters to SELECT GRAPHIC RENDITION (SGR) are valid in LEVEL I .. The SRM specifies that SGR parameters 22,24,25,and 27 are LEVEL 2 functions. If LEVEL 2 SGR parameters are sent to the terminal while in LEVEL 1 mode, they will be acted upon. Due to the possibility of causing product compatiblity problems, the product will not be required to change the implementation in a future release. Software should not depend on these functions working in LEVEL 1, as other implementations will function as specified. 4) DECUDK allows keys to be downloaded in LEVEL 1. The DECUDK control is specified to be a LEVEL 2 function. The terminal allows the function keys to be downloaded, but the keys are inactive until the terminal is placed into LEVEL 2 mode. Due to the possibility of causing compatiblity problems, the product will not be required to change the implementation in a future release. Software should not depend on these functions working in LEVEL 1, as other implementations will function as specified. VSRM - Product Reference .EL-00070-0C *** COMPANY CONF - DEC Internal Use Only Page C-31 18-Mar-1985 5) Device Status Request(DSR) for UDK Lock status works in LEVELl. The DSR for UDK Lock status is specified to be a LEVEL 2 function. The terminal repsonds to the request while the terminal is operating in LEVEL 1 mode. Due to the possibility of causing compatiblity problems, the product will not be required to change the implementation in a future release. Software should not depend on these functions working in LEVEL 1, as other implementations will function as specified. 6) DECTCEM works in LEVEL 1. The DECTCEM control is specified to be a LEVEL 2 function. The terminal allows the cursor to enabled/disable while the terminal is operating in LEVEL 1. Due to the possibility of causing compatiblity problems, the product will not be required to change the implementation in a future release. Software should not depend on these functions working in LEVEL 1, as other implementations will function as specified. 7) Character 10/0 goes to the printer as SUB. The SRM specifies the code 10/0 shall be sent to the printer as UNDERSCORE. The terminal currently sends the SUB code to the printer. Attempts will be made to fix the problem in a future release . .8) undefined characters from GR are sent to the printer· incorrectly. The SRM specifies that undefined multinational codes be sent to the printer as UNDERSCORE. The terminal sends the character code to the printer instead of the underscore character. DEC printers that support DEC Multinational will correctly print the codes as 'REVERSE QUESTION MARK'. Attempts will be made to fix the problem in a future release. 9) IF DEC supplemental is in GL, SPACE is printed as 10/0. Use pf DEC supplemental in this way is prohibited by DEC Standard 169. The cosequences of the terminal behavior are not fully understood. Attempts will be made to fix the problem in a future release. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 5: page C-32 l8-Mar-l985 RESTRICT For items in this category, it is agreed that although no change to the product is involved at this time, the deviation is serious enough to warrant placing a restriction on what compatibility or other claims the product should be allowed to make. There were no items in this category. CATEGORY 6: NO RESOLUTION For items in this category, the Waiver Panel was unable to agree on a resolution for the issue or on the proposed time frame for resolution, and will present it to upper management for a decision. There were no items in this category. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only c.6 VAXstation Workstation / Page C-33 l8-Mar-1985 lO-JUL-84 The Certification Waiver Panel met on lO-JUL-84 to review the results of VAXstation Certification. Each deviation that was listed in the Certification Report of lO-JUN-84 was discussed and agreement was reached in every instance as to how the deviations would be resolved. Because of this, the opinion of the Waiver Panel is that VAXstation has PASSED CERTIFICATION WITH WAIVERS as a Level 2 Device. Ten waivers were granted on the basis that the product would be changed to eliminate the deviations between it and the architecture (see CATEGORY 1 below). A commitment was made to fix the problem by the next generation release. what follows is a list of the actual deviations placed in the categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that the VAXstation may be called a Level 2 product. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-34 18-Mar-1985 CHANGE THE PRODUCT For items in this category, it is agreed that the problem must be fixed, but that because plans are in place to do so in a future release, a waiver is granted. 1. There is no implementation of the BLINK graphic rendition. (fix planned for update release) 2. [?8h or [?81 will not set or reset auto repeat Auto repeat is set via user profile, allowing it session wide. (fixed planned for, January 1985 release) 3. SUB d6es not have a representation in Levell mode. It correctly displays the backward question mark in Level 2 mode. (fix planned for update release) 4. If the terminal is set to Level 2, 8 bit controls (via S8ClT), and then Levell is selected (via DECSCL), the terminal is not reset to 7 bit controls. The Arrow keys and the Keypad Function keys still send 8-bit codes. (fix planned for update release) ~. with New Line Mode set, ENTER sends CR instead of CR LF and CTRL/M sends CR LF instead of CR. (fix planned for update release) 6. A Level 2 VT52 configuration is possible. This occurs if VT52 mode is selected on a 7-bit terminal (via terminal settings), and then the 8-bit multinational terminal setting is selected. Everything about the Level 2 VT52 is like a normal VT52, with the exception of the keyboard, which sends Level 2 codes for the Arrow keys and the Keypad Function keys. (fix planned for update release) 7. SHIFT/CAPS LOCK mode is not implemented. for v2.0, January 1985 release) 8. According to the SRM~ ANSWERBACK should be a minimum of 20 characters for a Levell device and 30 characters for a Level 2 device. On the vaxstation, a maximum of 20 characters are allowed, the number depending on the size of the character. Therefore, most of'the time, less than 20 characters must be used in answerback. (fix planned for update release) 9. KAM (keyboard act~on mode) sequences are ignored. The keyboard cannot be locked/unlocked with the ESC[2h/ESC[2l sequences. (fix planned for v2.0 January 1985 release) (fixed planned VSRM - Product Reference 'EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: 10. Page C-35 18-Mar-1985 CHANGE THE PRODUCT (cont'd) If a key is held down and is autorepeating (a, for example), and then CTRL is held down the autorepeating stops, and the appropriate control code (CTRL/A in this instance) may OR may not be sent. Release of the CTRL key results in continuation of autorepeat of the original character (a). (fix planned for update release) VSRM - Product Reference EL-00070-0C *** CO.MPANY CONF - DEC Internal Use Only CATEGORY 2: Page C-36 l8-Mar-1985 CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. There were no items in this category. CATEGORY 3: CHANGE THE CERTIFICATION PROCESS I I I I For items in this category, it is agreed that the certification process was in error in that it either failed to properly interpret the architecture or failed to properly test the product. There were no items in this category. VSRM - Product Reference· EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 4: page C-37 l8-Mar-1985 WAIVE BY AGREEMENT OF THE PANEL For items in this category, it is agreed that n.o change is to be made at this time to the product, the architecture or the certification procedures. By granting this waiver, the Panel is expressing .the opinion that it considers the issue insufficient cause for the product to fail certification. As noted in the descriptions below the panel reccomends that certain of these be considered for fix in a future release of the product. 1. SCROLLING MODE can not be altered, therefore [?4h or [?41 are ignored. Smooth scroll is not supported on the Vaxstation. 2. Invalid control combinations and dead keys (F6-FIO, F14, F17-F20, E1-E6 in Levell) keyclick. They should not. 3. The TAB key does not autorepeat. It should. ! VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 5: Page C-38 l8-Mar-l985 RESTRICT . For items in this category, it is agreed that although no change to the product is involved at this time, the deviation is serious enough to warrant placing a restriction on what compatibility or other claims the product should be allowed to make. There were no items in this category. CATEGORY 6: NO RESOLUTION For items in this category, the Waiver Panel was unable to agree on a resolution for the issue or on the proposed time frame for resolution, and will present it to upper management for a decision. There were no items in this category. • VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only C.7 VT220 Video Terminal / Page C-39 l8-Mar-l985 27-0ct-84 The Certification waiver Panel met on l7-Jul-84 to review the results of VT220 Certification. Each deviation that was listed in the Certification Report of 2-JUL-84 was discussed and agreement was reached in every instance as to how the deviations would be resolved. Because of this, the opinion of the Waiver Panel is that VT220 has PASSED CERTIFICATION WITH WAIVERS as a Level 2 Device. Five waivers were granted on the basis that the product would be changed to eliminate the deviations between it and the architecture (see page C-2). A commitment was made to fix the problem should there be a next generation release. What follows is a list of the actual deviat~ons placed in the categories as a result of the Waiver Panel meeting. The list is included here in order to document what changes were agreed upon in order to gain agreement that the VT220 may be called a Level 2 product. VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only CATEGORY 1: Page C-40 18-Mar-1985 CHANGE THE PRODUCT For items in this category, it is agreed that the problem must be fixed, but that because plans are in place to do so in a future release, a waiver is granted. 1. CTRL-.M transmits CR LF rather than CR when new line mode is set. . 2. Erase in Display from beginning of display to active position does not reset the line to single width when sent from the last column of a double width line. 3• One compose sequence for the \ (backslash) charactex, while using the UK keyboard in NRC mode, is missing. This·sequence is COMPOSE I I . The other two sequences for backslash (COMPOSE I < and COMPOSE < I) are presen~. 4. If a character other than a valid character is included within a DECUDK sequence, the key definition involved may be ignored, depending upon the position of this character within the definition. If the character is within the "Kyn" portion of the definition (before the "I"), that key's definition is ignored. If the character appears after the "I", the bad character is ignored and the definition is assigned correctly. The SRM states that the result of including any invalid characters is undefined, but recommends that these characters be ignored for future compatibility. 5. When the terminal is set to eight bit printer port, the VT220 translates ESC Fe sequences to 8 bit CSI's rather than passing the 7 bit ESC['s. The terminal should pass • the'7 bi t ESC [ . VSRM - Product Reference EL-00070-0C *** COMPANY CONF - DEC Internal Use Only· l8-Mar-l985 CATEGORY 2: Page C-4l CHANGE THE ARCHITECTURE For items in this category, it is agreed that the product was implemented in a reasonable fashion and the architecture may need clarification. 2. Top row function keys (F6-F20) are inoperative when pressed with the CTRL key and Editing keys (Find, Insert Here, etc.) are inoperative when pressed with either the SHIFT or CTRL keys. The architecture currently states that these keys should not be affected by CTRL and/or SHIFT. It will be changed to reflect that the keys should be inoperative when pressed with CTRL and/or SHIFT. 3. Select Graphic Rendition allows Level 2 parameters (22, 24, 25, 27) in Levell mode. The architecture will be changed to include a statement that Level 2 parameters (22, 24, 25, 27) may be recognized in level 1 mode, but that conforming software shall not rely on this feature. 4. According to the SRM, "Only the U.s. keyboard provides alternative forms for keying the CO controls ... ". The VT220 provides the alternative forms on all of the foreign keyboards, where applicable A statement will be added to the architecture to clarify that these alternate forms are provided on non-US keyboards whenever the keys involved in these control combinations are present_ 5. There are 2 additional compose sequences which are not included in the SRM, but are implemented by the terminal. They are: Section Symbol - Compose Sl Compose IS, and Backslash Compose /< and Compose 12 ( CSI > 12 -) -) Set-Up (normal) 1/11 5/11 3/1 3/3 7/14 9/11 3/1 3/3 7/14 (ESC [ 13 -) ( CS1 13 -) Set-Up (with Shift) 1/11 5/11 3/15 3/1 3/3 7/14 9/11 3/15 3/1 3/3 7/14 (ESC [ ? 13 ( CSI ? I"3 Set-Up (with Control) 1/11 5/11 3/14 3/1 3/3 7/14 9/11 3/14 3/1 3/3 7/14 ( F4 (Data/Talk) (normal) 1/11 5/11 3/1 3/4 7/14 9/11 3/1 3/4 7/14 ( F4 (Data/Talk) (with Shift) 1/11 5/11 3/15 3/1 3/4 7/14 9/11 3/15 3/1 3/4 7/14 ( F4 (Data/Talk) (with Control) 1/11 5/11 3/14 3/1 3/4 7/14 9/11 3/14 3/1 3/4 7/14 ( Break (normal) 1/11 5/11 3/1 3/5 7/14 9/11 3/1 3/5 7/14 ( Break (with Shift) 1/11 5/11 3/15 3/1 3/5 7/14 9/11 3/15 3/1 3/5 7/14 (ESC [ ? 15 ( CSI ? 15 Break (with Control) 1/11 5/11 3/14 3/1 3/5 7/14 9/11 3/14 3/1 3/5 7/14 ( Key Legend --- .. _-- ............. _------_ G99 GOO GOI G02 G03 ... _-_ ------------- (ESC [ 11 -) CSI 11 -) -- )) > 11 - ) > 11 - ) (ESC [ ? 11 CSI ? 11 (ESC [ 12 -) CSI 12 -) (ESC [ > 13 CS1 > 13 -) -) -) -) (ESC [ 14 -) CS1 14 -) (ESC [ ? 14 CSI ? 14 (ESC { > 14 CSI > 14 -) -) -) -) (ESC [ 15 -) CSI 15 -) ~ ) -) -) (ESC [ > 15 CSI > 15 - ) VSRM - Documented Exceptions EL-00070-D *** COMPANY CONF - DEC Internal Use Only -18-Mar-1985 D.IO Page D-23 Change History D.IO.l Rev AXIO to AXll 1. Renamed screen modes NORMAL in code for better consistency. SCREEN and REVERSE SCREEN 2. Renamed character rendition from REVERSE REVERSE throughout code for better consistency. 3. Removed paragraph des~ribing auto-wrap as a user preference feature. Auto-wrap is no longer defined as a user preference feature. 4. Modified algorithm for DECALN to include effect on ORIGIN MODE and CURRENT RENDITION. 5. Removed statement that DECALN resests terminal. VIDEO to VSRM - Documented Exceptions EL-00070-D *** COMPANY CONF - DEC Internal Use Only Page 0-24 l8-Mar-1985 Section Index -A- Answerback auto answerback control function message buffer Auto Wrap Mode control function 0-9 0-9 0-10 0-9 0-13 0-15 -cCl Transmission Mode Compose Key as local function key Conformance Level Control Codes answerback Control Key with local function key Control Representation Mode 0-20 0-20 0-20 0-10 0-20 0-16 -0- DECALN DECAWM DECTST Default undefined Device Status Device Test 0-18 0-15 0-11 0-5 0-11 0-11 -E- ENQ 0-9, 0-10 -I - Initialization 0-5 -L- Last Column Flag definition 0-13 EL-00070-IN VSRM - Master Index 14-Apr-1989 Page Index-1 Digital Internal Use Only VIDEO SYSTEMS REFERENCE MANUAL MASTER INDEX Document Identifier: A-GL-EL00070-IN-0 Rev C, 14-Apr-1989 ABSTRACT: This appendix is the master index for the Video Systems Reference Manual. APPLICABILITY: Mandatory for engineers designing hardware for terminal products and software engineers designing programs using terminal interfaces. Additional requirements are defined in DEC STD 070-1 Video Systems Reference Manual Concepts and conformance Criteria. STATUS: APPROVED 14-Apr-1989; type $ VTX SMC for expiration date. This document is confidential and proprietary. It is an unpublished work protected under the Federal copyright laws. Copyright (c) Digital Equipment Corporation. reserved. Digital Internal Use Only 1989. All rights EL-00070-IN VSRM - Master Index 14-Apr-1989 Page Index-2Digital Internal Use Only TITLE: VIDEO SYSTEMS REFERENCE MANUAL - MASTER INDEX DOCUMENT IDENTIFIER: A-GL-EL00070-IN REVISION HISTORY: Revision A Revision B Revision C Document Management Category: Responsible Department: Responsible Person: SMC Writer: Rev C, 14-Apr-1989 24-Nov-1987 29-Apr-1988 14-Apr-1989 ECO #CTOOI ECO #CTS02 Terminal Interface Architecture (STI) DSG Terminals Architecture Peter Sichel Patricia Winner APPROVAL: This document, prepared by the Desktop Systems Group, is approved for use throughout Digital. Peter Sichel, Desktop Systems Group Direct requests for further information DSGl-2/C7, DTN 235-8374, HANNAH::TERMARCH to Peter Sichel, Copies of this document can be ordered from Standards and Methods Control, $ VTX SMC, CTSl-2/D4, DTN: 287-3724, or JOKUR::SMC. Please supply your name, badge number, cost center, mailstop, ENET node when ordering. and 14-Apr-1989 Page Index-3 Digital Internal Use Only EL-00070-IN VSRM - Master Index MASTER INDEX -AAbsolute Location definition Active Position definition Algorithms Alphabets Announce Subset of Code Extension Facilities Answerback auto answerback control function message buffer APC introducer Application definition Application Free Primitives definition Application Function Key Row within compose sequence Application Function Keys Application Label Strip definition Application Process definition Application Program definition Application Program Command Application Programs Architecture conformance levels deviations exceptions exclusions extensions hardware/firmware conformance layers model required service class service classes 8-12 5-16 A-7 5-9 8-12 2-4 8-119 3-68 0-9 0-9 0-10 0-9 3-29 5-9 8-12 6-141 6-15, 6-28, 6-30, 6-32, 6-70 6-25 6-12, 6-14 6-25 5-9 3-28 B-6 1-12 1-14 1-13 1-13 1-12 1-15 1-8 1-8 1-12 4-8 1-10 EL-00070-IN VSRM - Master Index Architecture (Cont.) software conformance undefined virtual terminal waivers Area Attributes ASCII Character Set ASCII Code ASCII Stream Audible Indicator definition Audible Indicators Auto Print Mode control function definition description Auto Repeat . within compose sequence Auto Repeat Mode Auto Wrap Mode control function 14-Apr-1989 Page Index-4 Digital Internal Use Only 1-16 1-14 1-8 1-13 8-102 8-29, 8-37, 8-81, 8-119, 8-121 8-22, 8-29, 8-30, 8-112, 8-119 1-9 5-10 5-73 6-73 7-35 7-5 7-11 B-16 6-134 6-16, 6-40, 6-172 0-13 0-15 -BBack Space control function Backspace VT52 control function Base Logical Device definition Base ReGIS Batching Commands BEL Bell definition Bit Combination definition parameter within control function Blink Rendition Bold Rendition Bottom Margin default value Bracketed Pair definition Break definition Long Break 5-74 A-29 8-34, 8-35 8-12 8-23, 8-34, 8-37, 8-47, 8-58, 8-64, 8-69, 8-74, 8-87, 8-98, 8-103, 8-112 8-42, 8-128 5-73 5-10 3-12, 3-61 3-10 3-24 3-16 5-23 5-23 5-32 5-32 8-12 12-14 12-14 12-14 EL-00070-IN VSRM - Master Index Break (Cont.) when it may be transmitted Break Key Breakthrough BS Buffer overflow prevention requirements size Byte definition 14-Apr-1989 Page Index-5 Digital Internal Use Only 12-15 6-74 12-15 12-13 5-74 12-8 12-5 12-8 6-25 -CC language C(A) C(B) C(C) C(E) C(S) C(W) CO Control Characters 7-bit encoding 8-bit encoding CO Control Code within control function Cl Control Characters in user defined keys within control functions within control strings 7-bit encoding 8-bit encoding C1 Control Code within control function C1 Transmission Mode Cancel Caps Lock Caps/Shift Lock Mode Carriage Return control function VT52 control function Cartesian Coordinate Grid Cell Matrix Size definition 3-31 8-76, 8-77, 8-76, 8-77, 8-77, 8-78, 3-60, 3-12 3-14 3-22, 3-60, 11-5 3-19 3-30 3-23, 3-14, 8-77, 8-90 8-90 8-77, 8-90 8-90 8-90 8-80 3-65 3-23 3-65 3-71 3-72 3-22, 3-24 3-67, 3-71, 3-72 6-61, 6-64, 6-66, 6-69, 6-70, 6-172 0-20 3-19, 3-30 6-16, 6-17, 6-77, 6-78, 6-82, 6-172 6-16, 6-17, 6-77, 6-78, 6-82, 6-172 5-80 A-32 8-33, 8-59 10-5 EL-00070-IN VSRM - Master Index Certification waiver panel Certification Testing Chain Encoding Character defined definition rendition Character Attribute definition normal selection selectively erasable Character Cell definition Character Cell Display definition Character Cell Matrix Size height width Character Code control definition graphic Character Codes ReGIS Character Font Data Character Fonts Character Imaging Device definition Character Pattern Character Position definition Character Rendition definition Character Set definition ' designation repertory 7-bit 8-bit Character Set Extension Character Set Mode Character Set Size Character Sets Circle Constructs Circle Instruction 14-Apr-1989 Page Index-6 Digital Internal Use Only 1-28 1-27 8-52, 8-67 3-10 6-25 5-22 5-24 5-10 5-24 5-41 5-24 5-16 8-24, 8-82, 8-114, 8-120 10-5 5-6 10-17 10-13 10-11 3-12 3-16 3-10 3-16 8-29 10-16 8-38, 8-100 5-10 10-17 5-16 5-10 5-10 3-59 3-10 10-5 3-62 5-34 3-60 3-12 3-14 A-9 6-22, 6-172 10-10, 10-14 5-21 8-24, 8-74, 8-76 8-20 EL-00070-IN VSRM - Master Index Clear Communications Closed Curve Sequence definition Code Extension control code control sequence definition escape sequence graphic code Code Table definition row and column structure Coded Character definition Coding algorithms Coding Interface definition Color HLS Color by Index Color by Value Color Capability Color Introducer Color Map Column Column Mode control function Command Keyletter definition Command String Compatibility Complement writing definition Compose Compose Key as local function key Compose LED Compose Mode Compose Sequence algorithm auto repeat buffering cancelling case within definition errors 14-Apr-1989 Page Index-7 . Digital Internal Use Only 12-11 8-12 1-9 3-16 3-18 3-23 3-10 3-22 3-59 3-62 11-5 3-10 3-11 3-13, 3-15 6-25 2-4 6-12, 6-14 6-25 8-13 8-97 8-97 8-23, 8-35, 8-69, 8-95, 8-128 9-18 6-39 5-16 5-18 5-47 8-12 3-29 1-26 8-12 6-12, 6-12, D-20 6-30, 6-172 6-44, 6-145 6-134 6-37 6-138 6-140 6-25 6-141 6-44 6-44 6-44, 6-141 6-81 EL-00070-IN VSRM - Master Index Compose Sequence (Cont.) explicit implied order within restarting syntax Compose Sequences Compressed Sixel Printing Conformance deviations exceptions exclusions extensions hardware/firmware keyboard Level 1 Level 2 locking shifts product required functions single shifts software user defined keys waiver process waivers Conformance Levels definition Conformance Requirements Conforming Software font number specification Control Character CO C1 C1 expansion cancel code extension techniques definition escape substitute unimplemented within control function 7-bit environment 8-bit environment 14-Apr-1989 Page Index-8 Digital Internal Use Only 6-20, 6-26, 6-42, 6-79, 6-80, 6-134, 6-140, 6-145 6-26, 6-42, 6-79, 6-80, 6-134, 6-140, 6-145 6-140 6-138 6-143 6-12, 6-19, 6-20, 6-54 7-60 1-14 1-13 1-13 1-12 1-15 6-15 1-17 1-23 3-61 1-26 1-12 3-62 1-12, 1-14, 1-16 3-62 11-4 1-28 1-13 6-17, 6-38, 6-70, 6-172 B-11 0-20 1-12 4-7 1-12 10-10 3-16 3-14 3-14, 3-19 3-23 3-19 3-18 3-10 6-25 3-19 3-19 3-20 3-22, 3-23 3-16 3-16 EL-00070-IN VSRM - Master Index Control Code back space carriage return execution form feed horizontal tab horizontal tabulation set index line feed next line reverse index substitute vertical tab Control Codes answerback warning bell Control Function categories definition precedence Control Key auto repeat with local function key. with new line mode with shift key within compose sequence Control Representation Mode Control Sequence definition execution format introducer numeric parameter parameter parameter string parsing private parameter selective parameter termination unimplemented use by application programs Control Sets Control String defin-i tion string terminator termination types unimplemented 14-Apr-1989 Page Index-9 Digital Internal Use Only 5-74 5-80 2-15 5-79 5-75 5-85 5-82 5-76 5-84 5-83 5-81 5-78 0-10 5-73 3-16 3-18 3-10 6-25 3-18 6-61, 6-63, 6-69, 6-70, 6-75 6-42 0-20 6-79 6-77 6-141 0-16 3-18, 3-10 2-18 3-23 3-23 3-11, 3-24 3-11, 3-31 3-26 3-11, 3-18, 3-20 3-23 3-25 3-24 3-25 3-19 8-6, 8-9 3-65 3-18 3-10 10-5 3-28 3-19, 3-30 3-28 3-20 EL-00070-IN VSRM - Master Index CPR CR Cross Reference CTRL/Q from the keyboard CTRL/S from the keyboard CTRL/Y CUB CUD CUF CUP Current Location definition Cursor definition Cursor Backward control function Cursor Control definition Cursor Down control function VT52 control function Cursor Forward control function Cursor Home VT52 control function Cursor Key within compose sequence Cursor Key Mode Cursor Keypad Cursor Left VT52 control function Cursor Movement cursor backward cursor down cursor forward cursor position cursor position report cursor up horizontal/vertical position Cursor Position control function Cursor position Report ~ontrol function Cursor Restore 14-Apr~1989 Page Index-l0 Digital Internal Use Only 5-68 5-80 8-29, 8-34, 8-37, 8-38, 8-39, 8-42, 8-43, 8-46, 8-52, 8-57, 8-59, 8-64, 8-72, 8-82, 8-94, 8-103, 8-106, 8-109, 8-138 12-13 12-13 12-11 5-63 5-60 5-62 5-64 8-12 5-17 5-11 5-63 5-11 5-60 A-24 5-62 A-27 6-28, 6-60, 6-61, 6-62 6-141 6-16, 6-60, 6-172 6-33 A-26 5-63 5-60 5-62 5-64 5-68 5-58 5-66 5-64 5-68 5-69, 5-71 EL-00070-IN VSRM - Master Index Cursor Right VT52 control function Cursor Save Cursor Save Buffer· Cursor Symbol definition Cursor Up control function VT52 control function Curve Instruction CUU 14-Apr-1989 ~age Index-11 Digital Internal Use Only A-25 5-69, 5-71 5-25 5-20 5-11 5-58 A-23 8-20, 8-48, 8-74, 8-75, 8-80 5-58 -DDA DA1 DA2 Data Set Ready Data Terminal Ready DCH DCS Introducer Sequence definition Dead Key within compose sequence DEC STD 070-1 DEC STD 070-12 DEC STD 070-3 DEC STD 070-4 DEC STD 070-5 DEC STD 070-6 DEC STD 070-7 DEC STD 107-0 DEC STD 107-2 DEC STD 138-0 DEC STD 169 DEC STD 169-0 DEC Supplemental Graphics DECALN DECARM DECAWM DECCKM DECCOLM 2-21 4-22, 4-29, 4-31 8-13 8-14 7-7 7-7 5-88 10-5 6-141 3-62, 3-76, 3-77, 3-88 6-23, 6-72, 6-74, 6-76 6-23, 6-74 6-23, 6-74 3-65, 3-88 3-7, 3-17, 3-63, 3-64, 3-88 3-66, 3-88 6-23, 6-73 6-12, 6-13, 6-15, 6-23, 6-26, 6-75 6-30 3-25, 3-88 6-23 4-50 8-8 3-62, 3-68, 3-83, 3-88 6-15, 6-23, 6-82, 6-186 8-11 8....;8 D-18 6-41 8-16 D-15 6-62 5-47 EL-UUU70-IN VSRM - Master Index DECDHLB DECDHLT DECDLD DECDWL DEClO DECKBUM DECKPAM DECKPNM DECmate/WPS Main Key Array DECNKM DECNRCM DECOM DECPEX DECPFF DECRC DECSC DECSCA DECSCL DECSCLM DECSCNM DECSED DECSEL DECSR DECSTBM DECSTR DECSWL DECTCEM DECTST Implied XOFF Rule Default definition factory modes scrolling region top and bottom margins undefined Default Designation and Invocation Default Key Definitions Defaults character set designation character set invocation 14-Apr-1989 Page Index-12 Digital Internal Use Only 5-45 5-45 10-8 5-44 4-33 B-14 6-57 6-66 6-67 6-130 6-68 3-7, 3-64 6-52 5-51 7-38 7-37 5-71 5-69 5-41 4-27 B-11, B-14 5-49 5-50 5-100 5-94 4-35 5-32 4-37 5-43 5-54 B-15 B-15 0-11 12-14 5-11 4-7 5-20 5-32 5-32 4-17 0-5 3-63, 3-68, 3-69 11-5 3-63, 3-68 3-63, 3-68 EL-00070-IN VSRM - Master Index Delete character definition line Delete Character control function Delete Key with shift key Delete Line control function Designate character set defaults definition Designated Graphic Sets definition Deviations definition Device Attributes control function primary secondary tertiary Device Control Device Control 'String execution format introducer numeric parameter parameter string parsing selective parameter Device Identification Device Status Device status Report control function user defined keys Device Test 14-Apr-1989 Page Index-13 Digital Internal Use Only 3-12, 3-14, 3-17 5-88 5-11 5-96 5-88 6-80 6-77 5-96 3-60, 3-62 5-34 3-63, 3-68 3-10 5-11 10-5 3-60 3-65 1-14 8-69 2-21 4-22, 4-7, B-13 4-7, B-14 4-7, 4-27 3-28 B-11 2-20 3-28 3-28 3-11 3-11 3-31 3-11 4-8, B-13 4-16, 0-11 2-22 4-41 7-32 11-7 4-16 B-15 0-11 4-29, 4-31 4-22 4-29 4-31 4-22, 4-29, 4-31, 4-33 4-41 EL-UUU/U-IN VSRM - Master Index Diacritical Mark definition Dimensional Displays Direct Cursor Address VT52 control function Disconnect Long Break Display definition Display Attributes select character attribute select graphic rendition Display Cell Display Logic Display Surface definition DL Dot terminology Double Height Line control function Double width Line control function Down Line Load (Font) control function dpANS X3.134.1-1985 Drawing Instructions Drawing Position Drawin~ Primitives Drawing Process DRCS DSR Dynamic Attributes Dynamically Redefinable Charac.ter Sets 14-Apr-19H9 page Index-14 Digital Internal Use Only 6-25 8-95 A-28 12-14 5-16 5-11 5-41 5-39 8-116 5-16 8-33, 8-59, 8-81 8-12 5-96 9-6 5-25 5-45 5-25 5-44 10-8 . 3-89 4-50 8-55 8-52, 8-75, 8-77, 8-81, 8-88 8-22, 8-74 8-32, 8-36 5-21 10-4, 10-6 2-22 4-41 7-32 11-7 8-102 10-4, 10-6 -EEBCDIC Code ECH Echo definition ED Editing Keypad Front Legends 8-37 5-87 8-12 5-98 6-32 EL-00070-IN VSRM - Master Index Editing Keypad Key within compose sequence Editor Function definition Eight Bit Encoding EL Emergency Messages Empty Character definition End Of Line internal function Engineering Change Orders (ECOs) ENQ Enter definition Enter Alternate Keypad Mode VT52 control function Enter Auto Print Mode VT52 control function Enter Graphics Mode VT52 control function Enter Printe~ Controller Mode VT52 control function Enter VT52 Emulation ModeVT52 control function Environment definition host port printer port transformation 7-bit and 8-bit Erase character definition in display in line (selective) in display (selective) in line Erase Character control function Erase Control Erase In Display control function Erase In Line control function Erase to End of Line VT52 control function 14-Apr-1989 Page Index-15 Digital Internal Use Only 6-15, 6-19, 6-28, 6-32, 6-69, 6-70 6-141 5-12 8-43, 8-70, 8-121, 8-143 5-92 12-13 5-27 5-12 5-30 8-57 0-9, 0-10 5-12 A-16 A-37 A-39 A-14 3-10 6-25 3-66 3-66 3-21 3-12, 3-21, 3-59, 3-66 5-87 5-12 5-98 5-92 5-100 5-94 5-87 10-11 5-98 5-92 A-34 EL-UUU1U-IN VSRM - Master Index Erase to End of Screen VT52 control function Erase writing definition Error Conditions user defined keys Errors reporting Escape Escape Key auto repeat Escape Sequence definition execution expansion escape sequence format parsing termination unimplemented use by application programs Event Handling Tables control codes control sequences device control string escape sequences Exceptions definition Exclusions definition Executive Loop Exit Alternate Keypad Mode VT52 control function Exit Auto Print Mode VT52 control function Exit Graphics Mode VT52 control function Exit Printer Controller Mode VT52 control function Exit VT52 Emulation Mode VT52 control function Expanded Print sixel Expansion Escape Sequence definition Explicit Compose Sequence algorithm definition 14-Apr-1989 Page Index-lo Digital Internal Use Only A-35 8-12 11-15 8-46, 8-50, 8-51, 8-63, 8-68, 8-74, 8-88, 8-113 8-135 3-19, 3-22, 3-30 6-42 3-18, 3-22 3-10 10-5 2-16 3-11, 3-23 3-22 3-31 3-18, 3-19 3-20 8-6 2-15 2-18 2-20 2-16 1-13 1-13 2-13 A-19 A-38 A-22 A-40 A-IS 7-59, 7-61 3-23 3-11 6-20, 6-42, 6-79, 6-80, 6-134, 6-140 6-145 6-26 EL-00070-IN VSRM - Master Index Extended Logical Graphics Device Extensions definition Level 1 Level 2 VT52 emulation 132-Column Extensions to ReGIS External Interface 14-Apr-1989 Page Index-17 Digital Internal Use Only 8-35, 8-95, 8-100, 8-102 1-12 1-20 5-16 1-23 5-16 A-36 5-16, 5-18 8-23, 8-31, 8-37, 8-95, 8-101, 8-102, 8-103, 8-104, 8-107, 8-118, 8-119, 8-122, 8-132 6-14 -FF(B) F(C) F(F) F(P) F(V) F(W) Factory Default State definition Fallback Transmission Control Representation Mode DEC sp~cial graphics DEC supplemental DEC technical definition ORCS ISO Latin-1 supplemental NRC UPS FF Figures Figure 8-1 Figure 8-10 Figure 8-11 Figure 8-2 Figure 8-3 Figure 8-4 Figure 8-5 Figure 8-6 Figure 8-7 Figure 8-8 Figure 8-9 Fill definition 8-138 8-90 8-139 8-90 8-90 8-141 4-7 7-28 7-20 7-21 7-25 7-5 7-28 7-23 7-20 7-28 5-79 8-16 8-140 8-139, 8-141 8-54 8-60 8-62 8-77 8-108 8-109, 8-110, 8-133 8-116, 8-117 8-120 8-102 8-12 EL-UUU7U-IN VSRM - Master Index Fill (Cont.) instruction Final Character APC control sequence definition device control string escape sequence OSC PM First Load Character Fixed Space definition Flood definition instruction Flow Control user defined keys Font definition Font Buffer Font Number Font Rendition Font Set Size Foreground Foreign Codes Form Feed control function Format Effector definition 14-Apr-1989 Page Index-18 Digital Internal Use Only 8-138 3-29 3-23 3-11 3-28 3-22 3-29 3-29 10-10 5-12 8-12 8-138 7-6 11-5 5-12 10-5 10-10 10-10 10-12 10-12 8-35 8-37 5-79 5-13 -GG-Sets GO Gl G2 G3 GL GR GL GR 3-59 5-34 3-60, 5-34 3-60, 5-34 3-60, 5-34 3-60, 5-34 5-34 5-34 3-14, 8-8 3-14, B-8 3-65 3-65 3-65 3-65 3-60, 3-65 3-~0, 3-65 EL-00070-IN VSRM - Master Index GR Graphic Character within control function Graphic Character code extension techniques definition GL GR insertion replacement within control function Graphic Rendition blink bold definition normal reverse selection underscore Graphic Symbol definition Graphic Text definition Graphics Carriage Return Graphics Cursor definition Graphics Devices Graphics Next Line Graphics Pipeline definition Graphics Printing print region print screen Gray Scale definition Grid terminology Grid Size terminology 14-Apr-1989 Page Index-19 Digital Internal Use Only 3-24 3-16 3-59 3-11 5-13 6-26 8-13 3-14 3-14 5-56 5-56 3-22 5-22 5-23 5-23 5-13 5-22 5-23 5-39 5-23 5-13 8-13 9-20 8-13 8-23, 8-31 9-20 8-22 8-13 7-58 7-58 7-58 8-69, 8-95, 8-103, 8-104, 8-106, 8-107 8-13 9-6 9-6 -HHard-copy Devices Hardware Flow Control High Level Languages HLS defaults 8-65, 8-127 7-8 8-30, 8-31, 8-145 8-99 8-100 J:.J..o-UUU/U-.LN VSRM - Master Index HLS (Cont.) definition Hold Screen Hold Screen Key Hold Screen LED Hold Screen Mode Horizontal Tab control function VT52 control function Horizontal Tabulation clearing default Horizontal Tabulation Set control function Horizontal/Vertical Position control function Host Port definition Host Port Environment Mode HT HTS Hue Human Interface HVP 14-Apr-1989 Page Index-20 Digital Internal Use Only 8-13 12-12, 12-13 6-44, 6-72 6-30, 6-44, 6-72 6-44, 6-172 A-7 5-75 A-30 5-26 5-86 5-26 5-85 5-66 6-26 3-66, 3-67 6-15, 6-16, 6-19, 6-20, 6-22, 6-47, 6-172 5-75 5-85 8-13, 8-99 6-12 5-66 - -1- ICH Identification device service class Identify VT52 control function Identify Terminal control function IGNORE IL Implementation Dependent Implied Compose Sequence algorithm definition Implied XOFF Rule In Use Table Index control function IND 5-90 4-8 4-8 A-13 B-14 4-33 2-5 5-97 8-32, 8-35 6-42, 6-79, 6-80, 6-134, 6-140 6-145 6-26 12-13 3 -1 5, 3 -6 0, 3 - 6 5 5-34 5-82 5-82 EL-00070-IN VSRM - Master Index Initialization Initialization and Reset Inoperative definition Input Processing Insert Character control function Insert Line control function Insert/Replacement Mode control function Insertion character Installation Environments Integration of Text and Graphics Intensity Attributes Interface external internal Intermediate Character control sequence definition device control string escape sequence Internal Functions end of line scroll ·down scroll up Internal Interface Introducer definition Invoke defaults definition IRM ISO 4873 14-Apr-1989 Page Index-21 Digital Internal Use Only 4-17 12-11 D-5 4-35, 4-37 6-26 1-10 6-13 5-90 5-97 5-19 5-52 5-56 8-143 8-40 8-35, 8-81, 8-96, 8-97, 8-98, 8-103, 8-109 1-11 3-9 4-6 5-8 1-11 3-9 4-6 5-8 3-23 3-11 3-28 3-22 5-30 5-31 5-30 6-14 5-13 3-60, 3-62 3-63, 3-68 3-11 5-13 10-5 5-52 3-68 EL-00070-IN VSRM - Master Index ISO 8859-1 14-Apr-1989 Page Index-22 Digital Internal Use Only 3-89 4-50 6-24 -K- KAM Key definition Key Definition Strings Key Legend definition Key Position ID definition Keyboard Keyboard Action Mode Keyboard Areas Keyboard Dialects definition table Keyboard Layouts Keyboard Lock Keyboard Locking Keyboard Map logical physical Keyboard Usage Mode data processing definition typewriter Keyboard Versions Keyclick user defined keys with control key within compose sequence Keyclick Mode Keypad Mode 6-39 6-26 11-5 6-26 6-28 6-26 6-15 6-16, 6-38, 6-172 6-28 6-9 6-26 6-10 6-9 6-44 12-15 6-30 6-28 6-82 6-15, 6-28, 6-30, 6-54, 6-172 6-26 6-28, 6-30, 6-54, 6-172 6-9, 6-15, 6-28, 6-30, 6-54, 6-82 6-19, 6-39, 6-46, 6-69, 6-70 11-5 6-75, 6-76 6-141 6-46, 6-172 6-16, 6-63, 6-65, 6-66, 6-67, 6-68, 6-172 -LL(A) L(E) Label Strip application permanent removable system 8-105, 8-113, 8-117, 8-118, 8-121, 8-135 8-113, 8-121, 8-135 6-25 6-26, 6-30, 6-35, 6-70 6-27, 6-70 6-27 EL-00070-IN VSRM - Master Index Landscape Mode definition Last Column Flag definition Layer code extension input processing presentation service class LEOs compose hold screen legends lock wait Legend definition Level 1 keyboard Level 1 Sixel Devices Level 2 keyboard Level 2 Sixel Devices Levels definition Levels of Abstraction LF Lightness Line definition rendition Line Feed control function VT52 control function Line Pattern definition Line Rendition double-height line double-width line single-width line LK201 LNM Load Instruction Local Controller Mode description Local Function Keys auto repeat within. compose sequence 14-Apr-1989 Page Index-23 Digital Internal Use Only 8-13 0-13 1-8 1-9 1-10 1-9 6-30, 6-30, 6-30, 6-30, 6-30, 6-44, 6-141 6-44, 6-72 6-35 6-44 6-38, 6-44 6-26 B-11 6-15 7-60 B-11 6-15 7-62 1-12 B-6 5-76 8-13, 8-99 5-16 5-13 5-25 5-76 A-31 8-71, 8-122 8-13 5-25 5-45 5-44 5-43 6-7, 6-8, 6-9, 6-15, 6-23 5-53 8-21 7-12 6-28, 6-30, 6-44, 6-70, 6-72, 6-77 B-16 6-42 6-141 EL-00070-IN VSRM - Master Index Lock Key with control key Lock Key Mode Lock LED Locking Shift Level 1 Level 2 Locking Shift One Locking Shift One Right Locking Shift Three Locking Shift Three Right Locking Shift Two Locking Shift Two Right Locking Shift Zero Logical Graphics Device definition Logical Keyboard Map Logical Pixel definition 14-Apr-1989 Page Index-24 Digital Internal Use Only 6-44, 6-61, 6-63, 6-69, 6-70, 6-75, 6-77, 6-82 6-75 6-44, 6-172 6-30, 6-44 3-59 3-61 3-61 3-74 3-77 3-76 3-79 3-75 3-78 3-73 8-32,8-33,8-34,8-95 8-13 6-30 10-5 -MMacrographs definition Main Key Array Margin definition MC Media Copy auto print mode print line print screen printer controller mode printer to host mode Modal Options Mode reset mode set mode Mode Switching Modem Control Modes auto print auto repeat auto wrap Cl transmission 8-30, 8-38, 8-39, 8-49, 8-51, 8-87, 8-88 B-26 8-13 6-9, 6-28 5-13 7-34, 7-35, 7-36, 7-39, 7-49 7-35 7-49 7-39 7-34 7-36 '8-48 2-26 2-24 B-8 12-14 5-18 6-73 7-35 6-16, 6-40, 6-41, 6-172 D-13, D-15 3-67, 3-71, 3-72 6-172 EL-00070-IN VSRM - Master Index Modes (Cont.) caps/shift lock character set mode column compose conformance level control representation cursor key default definition hold screen host port environment insert/replacement keyboard action keyboard usage keyclick keypad lock key national replacement character set mode new line numeric keypad mode origin . print extent print form feed printer controller printer port environment printer to host screen scrolling send/receive text cursor enable Multinational Mode Multiplane Displays Multiplane Writing 14-Apr-1989 Page Index-25 Digital Internal Use Only 6-16, 6-17, 6-77, 6-78, 6-82, 6-172 6-22, 6-52, 6-172 5-18, 5-47 6-172 6-172 D-16 6-16, 6-60, 6-62, 6-172 5-20 5-13 6-44, 6-172 3-67 6-15,6-16,6-19,6-20,6-22, 6-47, 6-172 5-19, 5-52 6-16, 6-38, 6-39, 6-172 6-57 6-46, 6-172 6-16, 6-63, 6-65, 6-66, 6-67, 6-68, 6-172 6-44, 6-172 6-52 5-20, 5-53 6-16, 6-65, 6-75, 6-79, 6-172 6-172 5-19, 5-51 7-38 7-37 7-34 3-67 6-172 7-36 5-19, 5-50 5-18, 5-49 D-12 5-20, 5-54 3-7 8-35 8-133 -NNational Keyboards National Mode National Replacement Character Set (NRCS) extension 6-12 3-7, 3-64 3-7, 3-64 7-18 6-21, 6-22, 6-81, 6-183 IJ.u-vvv I U-J.l'! VSRM - Master Index Natural Image NEL New Line Mode control function with control key Next Line control function Non-Spacing Diacritical Key definition Normal Rendition Number of Characters to Overflow Numeric Arguments Numeric Keypad Numeric Keypad Front Legends Numeric Keypad Key codes generated within compose sequence Numeric Keypad Mode control function Numeric Parameter definition multiple 14-Apr-1989 Page Index-26 Digital Internal Use Only 8-10 5-84 5-20 6-16, 6-65, 6-75, 6-79, 6-172 5-53 6-79 5-84 6-12, 6-26, 6-42, 6-44, 6-80, ,6-134, 6-140, 6-145 6-25 5-22 12-9, 12-10 8-30, 8-45, 8-67, 8-82 6-33 6-34 6-28, 6-62, 6-63, 6-65, 6-66, 6-67, 6-68 6-64 6-141 6-172 6-68 3-11 3-25 -0- Offset definition Open Curve Sequence definition Open Extensions Operating System definition Operating System Command (OSC) introducer Origin Mode control function Overlap terminology Overlay Writing definition 8-13 8-13 8-122, 8-131, 8-132, 8-134, 8-135, 8-138 5-14 3-28 3-29 5-19 5-51 9-7 8-13 -PP(B) 8-65, 8-68, 8-77, 8-90, 8-136 EL-00070-IN VSRM - Master Index P(E) P(P) P(S) P(W) Parameter device control string maximum value numeric private selective unimplemented Parameter String definition device control string examples maximum length Parameters and Constants Parsing Pascal Permanent Label Strip definition Physical Keyboard Map Picture Element definition Pixel definition terminology Pixel Aspect Ratio terminology Pixel Image Pixel Sizes Pixel Specifiers Pixel vectors definition Pixel-Spot terminology Plotting Devices PM introducer Portrait Mode definition Position Address definition Position Arguments Position Instruction Page Index-27 14-Apr-1989 Digital Internal Use Only 8-68, 8-77, 8-90, 8-136 8-131 8-68, 8-77, 8-90, 8-136 8-68 3-28 3-24 3-11, 3-26 3-11, 3-20 3-23 3-11 3-28 3-27 3-24 5-27, 3-31 2-4 6-30, 6-26 6-28 3-25 3-25 5-28 6-35, 6-70 8-14 8-10, 8-33, 8-34 8-14 9-6 8-63 9-6 8-69 8-34, 8-55, 8-70, 8-95 8-80 8-46, 8-52, 8-54, 8-69, 8-73, 8-75, 8-76, 8-82, 8-112, 8-123, 8-130 8-14 9-6 8-52, 8-95 3-29 8-14 8-14 8-43, 8-52, 8-55, 8-58, 8-59, 8-69, 8-73, 8-75, 8-77, 8-87, 8-88, 8-104, 8-107, 8-110, 8-119, 8-123, 8-127, 8-138 8-20, 8-67 EL-00070-IN VSRM - Master Index position Stack position Value Power-Up state definition Presentation Service Class primary Device Attributes definition Print All Pages Print Composed Main Display Print Cursor Line VT52 control function Print Extent Mode control function definition description Print Form Feed Mode control function definition description Print Line control function definition Print page definition Print Screen control function definition VT52 control function Print Screen Key Printer Controller Mode control function definition description Printer Port definition environment Printer Port Environment Mode Printer Port Extension Printer Status Printer Style All Characters National Only National Plus Line Drawing Printer To Host Mode control function definition description Privacy Message 14-Apr-1989 Page Index-28 Digital Internal Use Only 8-55 8-68 4-7 1-9 B-13 4-7 7-30 7-30 A-41 7-38 7-5 7-12 7-37 7-5 7-12 7-31 7-49 7-6 7-30 7-6 7-30 7-39 7-6 A-42 6-73 B-10 7-34 7-5 7-10 6-26 7-5 3-66, 3-67 7-9 6-172 A-9 7-8 7-13 7-15, 7-16 7-13 7-14 7-36 7-5 7-9 3-28 EL-00070-IN VSRM - Master Index Private Parameter Product Certification Product Class DECmate/WPS Digital standard Product Conformance Program structure Programmable Keys Programmer's Guide Protocol definition 14-Apr-1989 Page Index-29 Digital Internal Use Only 3-26 1-26 6-35 6-35 1-26 2-6 11-5 8-5 8-14 -QQuoted Strings 8-29, 8-38, 8-39, 8-43, 8-58, 8-68, 8-75, 8-83, 8-87, 8-107, 8-143 -R- R(E) R(L) R(M) R(P(I)) R(P) Raster terminology Raster Device definition Raster Scan definition Raster Size terminology Rate Limiting user defined keys Receive definition Received Data Stream definition Reference Standards Referenced Documents ReGIS address space arguments character orientation color map definition 8-135 8-118 8-87 8-136 8-88, 8-137 9-7 8-23, 8-34 8-14 8-14 9-7 11-5 6-27 5-14 4-50 5-9 6-23 8-11 3-88 8-25 8-21 8-35 8-39 8-14 EL-00070-IN VSRM - Master Index ReGIS (Cont.) extensions hard copy initialization macrograph philosophy pixel vector specifiers screen area scrolling synchronization syntax text command wrap writing modes Relative Location definition Remote Graphics Devices Removable Label Strip definition Repeat Introducer Replace Graphic Character VT52 Replace writing definition Replacement character Report Instruction Report UDK Status control function Required Extensions Required Functions Level 1 Level 2 Reserved Characters Reset definition Reset Mode auto print auto wrap column control function insert/replacement new line origin print extent print form feed printer controller printer.to host screen 14-Apr-1989 Page Index-30 Digital Internal Use Only B-24 B-25 B-20 B-26 8-22 B-38 B-35 B-38 B-18 8-29, 8-37 B-17 B-34 B-38 B-21 8-14 8-19 6-70 6-27 9-15 A-12 8-14 5-56 8-21, 8-87, 8-118, 8-135 11-7 8-103 1-18 1-23 12-12 12-15 8-14 7-35 D-15 5-47 2-26 5-52 5-53 5-51 7-38 7-37 7-34 7-36 5-50 EL-00070-IN V5RM - Master Index Reset Mode (Cont.) .scrolling send/receive text cursor enable Reset To Initial 5tate control function Response Time to XOFF Restore Cursor c:;ontrol function Return Key auto repeat with shift key within compose sequence Reverse Index control function Reverse Line Feed VT52 control function Reverse Rendition RGB RI RI5 Implied XOFF Rule RM Rotated Print sixel 14-Apr-1989 Page Index-31 Oigital Internal Use Only 5-49 0-12 5-54 0-5 12-10 5-71 6-75, 6-79 6-42 6-77 6-141 5-83 A-33 5-23 8-99 5-83 0-5 12-14 2-26 7-61 7-59 -55 (A) default set 5(C) 5(0) 5(E) 5(F) 5(H) 5(I ) 5 (M) 5(R) 5 ( 5) 5(T) 8"';"31, 8-33, 8-53, 8-58, 8-59, 8-61, 8-64, 8-69, 8-113, 8-125, 8-129, 8-132, 8-135, 8-136 8-64, 8-68, 8-69, 8-71, 8-82, 8-104, 8-106, 8-107, 8-108, 8-109, 8-111, 8-113, 8-114, 8-115, 8-116, 8-121, 8-123, 8-124, 8-126, 8-127, 8-130, 8-133, 8-139 8-124 8-123, 8-124, 8-126, 8-129 8-65, 8-68, 8-111, 8-129, 8-132 8-65 8-54, 8-66, 8-109, 8-127, 8-135 8-104, 8-105, 8-109, 8-111, 8-128 8-109, 8-127, 8-128 8-124, 8-128 8-124, 8-126, 8-129 8-106 .c.J.o-VVV/V-.L1'4 VSRM - Master Index S (W) S7CIT S8C1T saturation Save Cursor control function Scan definition Scan Terminator Character Screen Alignment control function Screen Instruction Screen Mode control function Screen Setup Command Scroll definition Scroll Down internal function Scroll Up internal function Scrolling Data Scrolling Mode control function scrolling Region default value Secondary Device Attributes definition Secure Reset control function Select 7-Bit C1 Transmission control function Select 8-Bit C1 Transmission control function Select Character Attribute control function Select Conformance Level control function Select Graphic Rendition control function Selective Erase In Display control function Selective Erase In Line control function Selective Parameter definition 14-Apr-1989 page Index-32 Digital Internal Use Only 8-130 3-71 B-12 3-72 B-12 8-13, 8-99 5-69 10-5 10-17 D-18 8-20, 8-58, 8-104, 8-122 5-19 5-50 8-36 5-14 5-31 5-30 8-122 5-18 5-49 5-18, 5-19, 5-32 5-32 B-14 4-7 4-35 B-12 3-71 B-12 3-72 5-41 6-17, 6-38, 6-70 B-11, B-14 D-20 4-27 5-39 5-100 5-94 3-11 EL-00070-IN VSRM - Master Index Selective Parameter (Cont.) multiple Selectively Erasable Characters Self-Test . def ini tion Send/Receive Mode control function Service Class character cell display definition identification Session definition Set Keypad Application Mode control function Set Keypad Numeric Mode control function Set Mode auto print auto wrap column control function insert/replacement new line origin print extent print form feed printer controller printer to host screen scrolling send/receive text cursor enable Set Raster Attributes Horizontal Extent Pixel Aspect Ratio Vertical Extent Set Size definition Set Top and Bottom Margins control function Set-Up definition Set-Up Key Set/Reset Auto Repeat Mode control function Set/Reset Character Set Mode control function Set/Reset Cursor Key Mode Page Index-33 Digital Internal Use Only 14~Apr-1989 3-25 5-24 12-15 4-7 0-12 5-6 1-10 4-8 7-6 6-66 6-67 7-35 0-15 5-47 2-24 5-52 5-53 5-51 7-38 7-37 7-34 7-36 5-50 5-49 0-12 5-54 9-16 9-16 9-16 9-16 10-5 5-32 6-27 6-73 6-41 6-52 6-62 EL-00070-IN VSRM - Master Index Set/Reset Keyboard Action Mode control function Set/Reset Keyboard Usage Mode control function Set/Reset National Replacement Character Set Mode Seven Bit Encoding SGR Shading definition Shift Functions Shift In within control function Shift Key auto repeat with control key with delete key with function key with local function key with return key wi th space bar. with tab key Shift Lock Shift Out within control function Single Shift Single Shift Three Single Shift Two Single Width Line control function Sixel definition terminology Sixel Active Position terminology Sixel Bit Pattern Sixel Command Format Sixel Printing color compressed expanded print monochrome rotated print 14-Apr-1989 Page Index-34 Digital Internal Use Only 6-39 6-57 6-52 8-43, 8-121, 8-143 5-39 8-102, 8-109, 8-121, 8-133 8-14 3-59 3-73 3-21 6-61, 6-63, 6-69, 6-75, 6-78, 6-82 6-42 6-75, 6-77 6-77 6-70 0-20 6-77 6-77 6-77 6-16, 6-17, 6-77, 6-78, 6-82, 6-172 3-74 3-21 3-59, 3-62, 3-66 3-81 3-80 5-25 5-43 8-127 8-14 10-5, 10-17 9-7 9-7 10-17 9-13 7-58 7-59 7-60 7-59, 7-61 7-59 7-59 EL-00070-IN VSRM - Master Index 14-Apr-1989 Page Index-35 oigital Internal Use Only SM set mode Soft Character Sets Soft Fonts Soft Terminal Reset control function Software Conformance auto repeat mode character font data compose key processing control representation mode designating character sets device identification device test double-height lines extensions horizontal/vertical position invoking character sets keyboard Usage Mode local function keys new line mode pad characters reset to initial state screen mode terminating control strings VT52 emulation SPACE definition Space Space Bar with shift key Special Characters 10/0 15/15 2/0 (space) 7/15 (delete) special characters SRM State Variables Status Report definition String Oelimiter definition String Terminator SUB Subroutine Library 2-24 10-6 10-6 4-37 B-6 6-41 10-17 11-13 0-20 0-16 3-62 5-34 4-33 0-11 5-25, 5-45 1-12 5-66 3-62 6-57 0-20 5-20 3-17 0-5, 0-8 5-19 3-30 A-5, A-14, A-15 6-27 3-12, 3-14, 3-17 6-75, 6-79, 6-'81 6-77 12-12 3-17 3-17 3-17 3-17 12-11 0-12 5-29 4-7 5-14 3-19, 3-28 B-10 5-81 B-6 EL-UUU1U-IN VSRM - Master Index Substitute control function Synchronization keyboard screen Synthetic Graphics System Label Strip definition 14-Apr-1989 Page Index-36 Digital Internal Use Only 3-19, 3-30 5-81 .12-12 12-12 8-10 6-27 -TT(A) T(B) T(D) T(E) T(H) T(I) T(M) T(S) T(U) T(W) Tab Key with shift key . within compose sequence Tab stops Tabulation clearing definition horizontal stop Tabulation Clear control function Tabulation stops clearing default definition horizontal TBC Temporary options Terminal Components Terminal Initialization Terminal Interface Architecture Terminal Management Terminal Management Functions definition Terminal Synchronization 8-65, 8-82, 8-83, 8-105, 8-111, 8-113, 8~117, 8-126, 8-135 8-105, 8-114 8-105, 8-114, 8-115, 8-116 8-105, 8-114 8-110, 8-111, 8-114 8-105, 8-114 8-53, 8-110, 8-111, 8-115 8-53, 8-105, 8-110, 8-111, 8-114, 8-115, 8-116 8-53, 8-105, 8-110, 8-111, 8-115, 8-116 8-116 6-75, 6-80 6-77 6-141 A-6, A-7, A-II 5-86 5-14 5-26 5-14 5-86 5-86 5-86 5-26 5-14 5-26 5-86 8-48 1-7 B-I0 B-5 1-10 4-4 4-7 6-72 EL-00070-IN VSRM - Master Index Terminal User definition Te rmi.na t i on Cl control codes cancel control sequence control string escape escape sequence substitute universal Terminology Dot Grid Grid Size Overlap Pixel Pixel Aspect Rati~ Pixel-Spot Raster Raster Size Sixel Sixel Active position Tertiary Device Attributes definition ~". Test control function Text Attributes Text Cursor Enable Mode control function Text Instruction Text/Full Cell Fonts TIA Top Margin default value Transfer definition Transformation Transmission Control definition Transmit definition Transmit Data Rate Transmitted Data Stream definition .14-Apr-1989 Page Index-37 Digital Internal Use Only 6-27 3-19 3-19 3-18 3-28, 3-30 3-19 3-18 3-19 3-19 9-6 9-6 9-6 9-7 9-6 9-6 9-6 9-7 9-7 9-7 9-7 4-7 D-11 8-100, 8-114 B-8 5-20 B-15 5-54 8-21, 8-81, 8-112, 8-119 10-12 B-5 5-32 5-32 5-15 3-21 5-15 5-15 6-27 12-10 5-15 14-Apr-1989 page InaeX-~H Digital Internal Use Only EL-00070-IN VSRM - M~ster Index Transportability 8-22, 8-23, 8-24, 8-26, 8-31, 8-37, 8-59~8-68, 8-100, 8-144, 8-145 8-14 B-16 definition Type Ahead -UUDK UDK Lock Control status report Undefined Functions Undefined Operations Underscore Rendition Unimplemented Functions ; eontrol character control sequence control string e$qape sequence unitlCell universal Terminator User Convenience Function auto repeat ~ K!yboard Usage Mode , User Defined Keys control function User Preference Features definition Level 1 Level 2 User Preference Supplemental Set 11-4, 11-9 11-7 A-II 1-14 5-23 _.... 3-20 3-20 3-20, 3-30 3-20 8-116 3-19 6-41 6-57 11-4 11-9 1-14 1-22 1-25 6-172 -VV(B) V(E) V(S) V'(w)-' Variable Aspect Ratio Vector Instruction Vertical Tab control function Video Systems Reference Manual Viewing Point definition Viewing Point Attributes Virtual Terminal definition 8-65, 8-73, 8 - 7 3, 8-73 7-62 8-20, 8-73, 8-77, 8-90, 8-136 8-77, 8-90, 8-1)6 8 - 7 7, 8,...:9.0,' 8 -13 6 8-73 5-78 1-5 8-14 8-32, 8-35 1-8 7-6 EL-00070-IN' . VSRM - Master Index Visual Indicators VT 2;, VT52 Emul:ation required commands VT52 Special Graphics 14-Apr-1989 ".1 J~.{~,Page Index-39 Digital Internal Use Only 6-44 5-78 A-5 A-9 A-9 -WW(A) W( C) W(E) W( F) W( I ) W( L) W(M) W(N) W(P(M)) W( P) W(R) W( S) W(V) W(W) Wait LED Waiver Panel certification Waivers definition warning Bell control function writing defini t·ii:on .. j " . Wri ting:' Attribu:tes Instruction 8-124, 8-132 8-107, 8-1Q8, 8-111, 8-132, 8-133 8-107, 8-108, 8-111, 8-129, 8-133 8-105, 8-109 " 8-104, 8-109, 8-111, 8-12~o 8-132 : t.C 8-95, 8-124, 8-132 ";Ll 8-64, 8-69, 8-71 >.".';)'a 8-104, 8-107, 8-108, 8-1i1! 8-133 ;.~ 8-71 w 8-64, 8-69, 8-111 ~J 8-104, 8-108, 8-111, 8-1~3~f 8-65, 8-94, 8-105, 8-109,-G~~~1, 8-117, 8-124, 8-133 f-' 8-104, 8-108, 8-111, 8-133 8-111, 8-133 6-30, 6-38, 6-44 1-28 1-13 5-73 8-14 8-20, 8-69, 8-81, 8-98, 8-l-0j; 8-132 -XXOFF Implied XOFF point second XOFF point VT100 VT220 XOFF state 12-13 12-6, 12-7 12-6 12-8 12-8 12-5 ., EL-UUU/U-IN J.q:-~l'Ii""';L VSRM - Master Index ""in' 12-7; 12-8" 12-8' XON point VT100 ..... : VT220 XON/XOFF ,~7·-:f>~; 8";;';1"0 .~. 11-5. :'::"":;. " ;);!()L7-O; iii ;;:fa2~Col umn "~-i'S:71'5 '. .. _ ',~ Extens.:i:oI).: '::1';'; 'j.! t'hin control function ._~~~.';t" ;~?;f,~l"~. C"h~.r (ic te r s .. '-'7'~!-'!~ - ~... '.:, . ,. / .. ~~'~lt~n' control ,funC:ti~n.. ' ,'::-: .: §;"b,t:~~~.rChi tecture Extension p~ ~"1.C~aracter Set ;j:"y;jt~r1'l':control function ::.Jt~~~;~l~¢li~ r act e r s r'Cll:ft: ~UUt:A- '* V . ::: ",. ":'.~:~~~~.1gi tal; Intt:!rnal Use Only 3-22, 3-24· 3-7 EL-00070-IN VSRM - Master Inde~" +-------------------~------------~-------------------------------~--+ I ~ER.J;OMMENTS . . :.:: I I ". ". - '::' I I Your conunents and suggest'ibhS' will help Stan'Cifaras· ahd Methods I I Control improve their' services and documents. I .. --~~~---------------------------------~-----+ +----------------~---- Did you request this: sl:9rC~e~tr7·': Ifo<-so, did it arrive within a satisfactory period o:f t~,?",,~c...r _.:.....-=P..... lease ··comment.,' '~~,';:.!. What are your impres$4:;O,n~ . . .: ot-tthis d:ocument? Consider organization,cOlnpletene~y·'~read.~ility ,,"'and .I±rl:~l5ttratiqn~. fo~at, ,< :, 'l" - -- -- -- -- -- -- -- -- -- FOLD ON THIS LINE ----Did you find technical or clerical errors in this document? please spec~y the page number(s) and the error(s). If so, Are the instructions for the update package clear? Do you have other'suqgestions for improving this document? The following information is optional: Name Mailstop ~ Node Department Send your conunents to JOKUR::PROJECTS, or page through interoffice mail to: fo~d, staple, and send this +-----~-------------------------+ I '.. READERS' COMMENTS I I STANDARDS AND METHODS CONTROL I I CTS1-~/D4 I +-------------------------------+

  • Source Exif Data:
    File Type                       : PDF
    File Type Extension             : pdf
    MIME Type                       : application/pdf
    PDF Version                     : 1.3
    Linearized                      : No
    XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
    Create Date                     : 2011:04:14 08:34:31-08:00
    Modify Date                     : 2011:04:14 12:04:06-07:00
    Metadata Date                   : 2011:04:14 12:04:06-07:00
    Producer                        : Adobe Acrobat 9.42 Paper Capture Plug-in
    Format                          : application/pdf
    Document ID                     : uuid:713ac61f-dd27-4e8e-99ab-ccfd62dbc395
    Instance ID                     : uuid:bf2fc08e-9cb4-4095-8385-1fb6b2741017
    Page Layout                     : SinglePage
    Page Mode                       : UseOutlines
    Page Count                      : 1252
    
    EXIF Metadata provided by
    EXIF.tools

    Navigation menu