EL-SM070-00

DEC STD 070
Video Systems
Reference Manual

For Internal Use Only

EL-SM07o..00

Digital Internal Use Only

03-Dec·1991,,,

DEC STD 070 Video Systems R~~,.ce .
Manual' '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 andterminal 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 andConformance 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

03-Dec·1991

DEC STO 070 Video S¥~"ms Reference Manual"Ij; ",:"~' \ ",,'

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:

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

ECO Number CTS02
ECO Number CTS03
ECO Number CTS04
ECO Number CTS05
ECO Number NR006

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

APPROVAL: Peter Sichel~..V.lPS 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 andConformance Criteria

EL-00070-01

Rev AX10DEC 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. Rev ADEC STD 070-9 Video and Printer Systems Reference Manual - Sixel
Graphics Extension

EL-00070-09.

Rev A1DEC 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 AX10DEC STD 070-12 Video Systems Reference Manual- Terminal Synchronization

EL-00070-12

Rev A1DEC 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 AX10DEC 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 Only1

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 responsiblefor 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 aredefined in DEC STD 070-1 Video Systems Reference Manual - Concepts
and Conformance Criteria.

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

r This document is confidential and proprietary.

I
I
I
I

It is anunpublished 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 ArchitecturePeter Sichel
Patricia Winner

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

~~ e-':-·~r Conk in, Technical Director,

Desktop Systems Group

Peter Sichel, Desktop Systems Groupf,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, andENET 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 TERMINOLOGYREFERENCED 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 indeveloping 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 developmentof ReGIS (Remote Graphics Instruction Set) has enabled thecorporation 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 tosupport these interfaces to ensure software compatibility for
operating systems as well as application programs. It is expectedthat computing terminals and workstations will also emulate theseinterfaces in order to take advantage of the large body ofsoftware 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 ameans of measuring product performance against the Video SRM, andensures 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 theengineers who design the hardware and firmware for future terminal
products. It is important that these designers have a thoroughknowledge of the functionality required at the device interface inorder 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 userinterfaces. The Video SRM provides these programmers with aconvenient single source of information regarding Digital's familyof terminals and workstation products. This document enables
those engineers to produce device-independent software without theneed to consult a proliferation of user's manuals and understandthe discrepancies between implementations.
The greatest benefit of this document is to the Digital customer.
By providing a single point of reference between hardware andsoftware components designed by the corporation, Digitalsignificantly reduces consternation and confusion among fieldsales 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 andconformance certification criteria applicable to theserequirements.

mDmDomD™

EL-00070-00
VSRM.- Introduction
429-Apr-1988'Page ,7
Digital Internal Use Only

GENERAL TERMINOLOGY

The following terminology is used throughout this document andapplies across each section.
coding interface ~ A software or hardware interface through whichbytes 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 codinginterface. service class - A set of functionally related terminal control
operations, associated by a common object type.
transmit - To transfer coded character information across a codinginterface.
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 manualand 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-8
• 1-8
· 1-8

1.4

SCOPE

1-11

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.4LEVEL 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-10.. . . . . 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

CHAPTER 3

DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODEEXTENSION LAYER

3.1
3.1.1
3.1.2

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

3.1.3
3.1.4

I
I
I

I

r

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

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

3-7
3-7

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

3.9
3.9.1
3.9.2
3.9.3
3.9.4
3.10

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..·· ··
· ··
· ·
·
·
···
· ·
· · · · · ·· ···· · · ·
· ·· · · · · · · ·REFERENCED DOCUMENTS· · · · · ·CHANGE HISTORY
Revision 0.2 to 0.3
Revision 0.3 to AXI0
Revision AXI0 to AXll
Revision AXl1 to AX12

3-83
3-83
3-84
3-85
3-86
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

CONTENTSDEC 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. 25.1. 3INTRODUCTION •Purpose. • • .
Scope
• . . • • • •Relationship To TIA

5.2
5.3

REFERENCE STANDARDSTERMINOLOGY • . •

.

. 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-21Mode 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 OfScrollScroll

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 AttributeSingle 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

Page 14
Digital Internal Use Only

Set/Reset Origin Mode
Set/Reset Insert/Replacement Mode
Set/Reset New Line Mode
Set/Reset 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.14mDmDomD™

EL-00070-00
VSRM - Introduction
5.17
5.17.1
5.17.2
5.17.329-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 THATAFFECT 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.36.12.46.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.26.13.36.13.46.13.56.13.66.13.76.13.86.13 .• 9

MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONSControl 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.26.14.36.14.46.14.56.14.66.14.76.14.86.14.96.14.106.14.116.14.126.14.136.14.146.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
6.14.18
6.14.19
6.14.20
6.14.216.14.226.14.23
6.14.2.4
6.14.25

Page 18
Digital Internal Use Only

29-Apr-1988

Swedish Keyboard (2nd, LK201-NM) • • • • • 6-116
Swedish Keyboard (1st, LK201-AM) ••• 6-118
Norwegian Keyboard (2nd, ~K201-EN) • • • • 6-120
Norwegian Keyboard (1st, LK201-AN)
6-122
Belgian/French Keyboard (LK201-AP).
. 6-124
Spanish Keyboard (LK201-AS).
• • • • 6-126
Portuguese Keyboard (LK201-AV) •• • • 6-128
DECmate/WPS Main Key Array • . • • • • • • 6-130

6.15
6.15.1
6.15.2COMPOSE OPERATION• . • • • • • • • • • 6-134
Compose with The Use Of The COMPOSE Key • 6-134
Compose With The Use Of Non-Spacing
Diacritical Marks • • • • • • . • • • • • 6-135
Composing Arbitrary 8-bit Characters
6.15.3(VT330/340 Only, Not Mandatory) • • . . . 6-136
Use Of The COMPOSE Key When A Compose Is
6.15.4
Already In Progress • • • • • • • • • • • 6-138
Use Of The DELETE Key When A Compose Is
6.15.5
Already In Progress • • • • • • • • . . • 6-138
6.15.6
Keystrokes .Which Abort Compose Immediately 6-139
6.15.7
Keystrokes Which 00 Not Affect Compose
Directly • • • • • • • • • • • • • • • • • 6-140
6.15.8Order And Case Within Compose Sequences . 6-140
6.15.9Composition Conventions • • • • • • • • • 6-141
6.15.108-bit Characters Mode Valid Compose
Sequences • . . . • • • • • • • • • • • • 6-149
6.15.117-bit Characters Mode Valid Compose
Sequences • • • . • • . • • • .
. • • 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.36.18.46.18.5CHANGE 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.107.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 Modeo.
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 STANDARDSREFERENCE MANUAL - REGIS GRAPHICS' EXTENSIONINTRODUCTION • • • • • • •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 • • • 8-103
Screen Instruction • . • • ••• • • • 8-104
Writing Attributes Instruction
•••
8-107
Text Instruction• • • . • • • • • . • • 8-112
Report Instruction•••••• . 8-118
Load Character Set Instruction. • 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 • . • •• • 8-122
Screen Instruction • • • • • • • • • • • • 8-122
Position Instruction • • • • •• • 8-131
Writing Attributes Instruction• • 8-132
Text Instruction . • • • • . • • • • . . . 8-134
Report Instruction• • • • • 8-135
Flood/Fill Instruction ••..
• . 8-138

8.9
8.9.1
8.9.2

INSTALLATION ENVIRONMENTSANSI Encoding • • • • •Bounded Systems • • • •8.10
8.10.18.10.28.10.38.10.48.10.S8.10.68.10.78.10.88.10.9ReGIS COMMAND COMPLEMENT •• • • • . 8-146
Screen Instruction • . .
• • . . • 8-147
Position Instruction • •• • • . . • . 8-148
Writing Attributes Instruction . • . • . • 8-149
Vector Instruction •. • • ..
8-150
Curve Instruction • • ••••. • 8-151
Text Instruction • • • •.•.
•• 8-152
Report Instruction • • •• • • • . • • 8-153
Fill/Flood Instruction • .
8-154
Load Character Set Instruction . • . . • . 8-155• • • • • 8-143. 8-143• • • . . 8-145

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

CONTENTSDEC STD 070-9 VIDEO AND PRINTER SYSTEMS REFERENCE
MANUAL - SIXEL GRAPHICS EXTENSIONCHAPTER 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.29.11.3
9.12
9.13
9.13.19.13.29.13.39.13.49.14
9.14.1INTRODUCTION • • • • • • • • • • • • • • • • • 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

CONTENTSDEC STD 070-10 VIDEO SYSTEMS REFERENCE MANUAL DYNAMICALLY REDEFINABLE CHARACTER SETS EXTENSIONCHAPTER 10

10.1

INTRODUCTION .

10-4

10.2

TERMINOLOGY

10-5

10.3
10.3.1
10.3.210.3.310.3.410.3.5FUNCTIONAL 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.210.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.210.5.3

ORCS FONT LOADING EXAMPLES . . .
....
Example One· . . . . • .
. .
Example Two
Example Three· ......

10.6
10.6.1
10.6.210.6.3

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

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.111.2.211.2.311.2.4FUNCTIONAL 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.211.3.311.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

DEC STD 070-12 VIDEO SYSTEMS REFERENCE MANUAL TERMINAL SYNCHRONIZATION

12.1
12.1.112.1.212.2
12.2.112.2.212.2.312.2.412.2.512.2.612.2.712.2.812.2.9

12-4
12-4
12-4
12-4
12-4
12-7
12-8
12-8
12-11
12-11
12-12
12-12

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.10Emergency 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.312.3.4
Receipt Of Break . . . . . . . . . .
·

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

CONTENTSAPPENDIX ADEC 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

CONTENTSAPPENDIX 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 CONTROLSText 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.10B.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

CONTENTSAPPENDIX CDEC STD 070-0C VIDEO SYSTEMS REFERENCE MANUALPRODUCT REFERENCE

C.l

PRODUCT/ARCHITECTURE MATRIXC.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

CONTENTSAPPENDIX 0

DEC STD 070-00 VIDEO SYSTEMS REFERENCE MANUAL DOCUMENTED EXCEPTIONS

0.1

INTRODUCTION • •0.2

RESET TO INITIAL STATE. • 0-5

0.3
0.3.1
0.3.2

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

· 0-9
· 0-9
0-10

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-11

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

momDomD™

EL-00070-00
VSRM - Introduction
529-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 arereferenced 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 andMethods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, or CTS1-2/D4.
Please provide your name, badge number, cost center, mailstop, andENET 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 forInformation 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 TechniquesmDmDomD™

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?
Considerorganization, 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 thispage through interoffice mail to:+-------------------------------+I
READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4I+-------------------------------+~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 fordevices implementing the Video Systems and intending to becertified as conforming implementations.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatoryfor
Engineers designing hardware for terminal products andSoftware 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" isconsidered to be of potential benefit to the corporation andshould 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:beconsidered as requirements. The procedures for modifying or
evolving this standard are contained within "the contents ofthis 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 CRITERIADOCUMENT IDENTIFIER: A-DS-EL00070-0l-0 Rev. AXIO , lS-May-l983
REVISION HISTORY: Original Draft
Revision AXOIFILES: 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 theVideo 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 inStandards 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.3Service 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.2User Preference Features •. • . . . . 1-14
1. 5.3Rules 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.2Required Functions . • • . • . • • • . . .
1. 6.3Extensions 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 theinterfaces to DEC video terminal products.
It is intended toserve as both an implementation specificationforproduct
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,
itwill be added to the Video SRM before final implementation.
Furthermore, an architectural certification process provides ameans of measuring product performance against the Video SRM, andensures software compatibility across products.
Products claiming conformance must be submitted fortesting and evaluated against these standards.

1.2

certification

STRUCTURE OF THE MANUAL

Terminal technology has become increasingly complex astheemphasis in computer system design has shifted from performing
mathematical and scientific calculations to making information
services readily accessible to the public. Even so-called "dumbterminals" of today incorporate a wide range of capabilities thatbridge all aspects of computer architecture and ~esign.
In orderto reduce this complexity to a state which is comprehensible tothose 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 standalone.
The sections of this manual include descriptions of thecomponents:ofollowing

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-1983oTerminal Management - defines basic
terminal management functions.

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

o

Keyboard processing
in terminals.

oPrinter Port - defines the display
interface.

o

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

oSixel Graphics
transfer.

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

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

~devicePage 1-6

defines use of thedefines

serialindependent
Level

LK201

terminal

protocol2

keyboard

toforprinter

imageof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 thedesign 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
DISPLAYI
I
I D L ITERMINAL- - ->- - 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 ITI
+ - - - - - - - - - - - - - - - - -+
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
computercommunications was performed using codedcharacter sets and control functions.
This document describes indetail some portions 'of an architectural model which-provides aconsistent 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 physicalterminals.
"A virtual terminal is a - model which defines anabstract terminal in terms of logical functions that can be
implemented differently on different real terminals; therefore avirtual 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 offunctions together which perform similar services within thecommunications 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 ClassManagement
Code Extension Layer
The purpose of layering the architecture is to separate components
which are logically distinct, allowing components in one layer tobe modified or replaced without impacting components in the otherlayers of the architecture.
For example, the incorporation of a
new keyboard interface would
notnecessarily
affectthepresentation
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 apart of the interface into the communications environment, as wellas 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:oCommunications
Controls(suchsynchronization, padding, etc.)o

ANSI parsing (separation of controls and data)oGraphic

Char~cteras

XON/XOFF

Coding (7-bit and 8-bit environments)

In the future this layer may be extended or replaced with otherinterfaces into DECnet, ISDN, X.2S, etc., without affecting theoverall 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 theform of data types, whose structure and operations are unique toeach service class definition. The only service class currently
defined for this layer is the Character Cell Display. Futurearchitectural development may include the definition of thefollowing service classes:oCharacter Cell Printero

Proportionally Spaced PrinteroVideotexoImage 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 theterminal user.
Currently the only such device is the corporate
standard keyboard, but this may be extended" in the future toincludeotherentry
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 thevarious services of the Presentation Service Class Layer in order
to execute the functions they provide.
For example, .a fieldeditor might use ANSI text, ReGIS text, Videotex text, Teletex
text (or even voice I/O) to perform the same requirements ofprocessing 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),
serviceclass
selection, and window management (multiple display windows).

1.3.3

Service Classes

within each layer of the architecture there may be classes ofservice.
Functions within a layer are grouped into classes
according to their logical relationship. For example, characteroriented
text displays might form""a service class at thepresentation 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 thesefunctions according to classes it is possible to build a varietyof 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 bothinternal and external product interfaces_ External interfaces areinterfaces between a terminal, personal computer or workstation.and a remote ~ystem_ Internal interfaces are interfaces between aterminal sUb-system and software processes running within aterminal, personal computer or workstation.

**
terminal system*- - - - - - - - - - - - - - - - - - - - - - - - - -*physicalterminal

virtualterminal

host system*application*. .. . . .. . . .
*. . . . . . . . . . . . . . I process*- - - - - - - - - - - - - - - - - - - - - - - - - -*<hardware><firmware> * <communications link>'*** EXTERNAL INTERFACE**
terminal system--- - --- -- --- -- ------ -- ----* --------- ----physicalterminal

virtualterminal** application*
process*- - - - - - - - - - - - - - - - - - - - - - - - - -* - - - - - - - - - - - - - <hardware><software/ * <software>
firmware> *** INTERNAL INTERFACE

External and Internal Terminal Interfaces<software>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
modulararchitectural structure made up of discrete components which canbe combined in a variety of ways to meet evolving product needs
and requirements.
For purposes of defining conformance, service
class interfaces can befurther
subdivided
intolevels,extensions, and exceptions.
The following definitions describe
these concepts.

1.5.1

Definitions

1.5.1.1

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 definedand 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 alower 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 waythat it will not affect any level n state differently than it doesin 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 toa specific level of functionality based on hardware availability
and compatibility requirements, and will be guaranteed all of thefunctionality 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
definedextensions.
Extensions are fully specified by thearchi tecture, but are optional to product implem.entors claiming toconform 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 tosoftware,and therefore conforming software shouldnotpedependent on those functions to operate in a logical and reliabie
manner.
For example, 132-column mode is an extension to theCharacter 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 notpresent 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 apart of the architecture because DEC software did not want tosupport 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 toclarify that a particularfunctionisnotallowedfor
implementation at that level.

1.5.1.5

Waivers -Products which cannot pass certification cannot claim conformancewith 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 notpreviously defined by the architecture,
and were notwarranted to begeneralenoughtorequirenew
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 adefined function for sound technical reasons, but inother ways conformed to the architecture.

3.

If a product conforming to a certain level wished toinclude 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 comeinto conformance by changing the product, or by changing thearchitecture through the Architecture ECO process.

1.5.1.6

Deviations-

Deviations
represent
permanent
non-conformancewiththearchitecture.
Deviations apply only to products which weredeveloped 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
effectcannotbeguaranteed to be the same in all implementations. Such operations
shall be identified in both the architectural andproduct
specifications
as
UNDEFINED.
Softwareconforming to thearchitecture shall not use UNDEFINED operations.
Every attempt
will be made to minimize the number of UNDEFINED operations in thearchitecture, 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
Featuresthat
have a coded
representation for interchange with a host are indicated to be ofa specia~ status in this specification.
The terminal user should be in charge of the state of all User
Preference
Features,notthe 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 thesefunctions 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 isimportant that products claiming to conform to the architecture
should follow certain guidelines in implementing the architecturalinterfaces.
Products should not be excluded from implementing
features not defined by the architecture. However, it should bemade clear in both the architectural and product documentationthat these features are not guaranteed in all products, and should
not be used by conforming software.
Products should not beallowed to selectively implement portions of the architecture
without
receivinganexplicit,
waiver from Terminals andWorkstations
management
prior
'to
beginning
any
product
development, as -this will render the architecture useless indetermining cross.:..p_r.oduct compatibili ty.

1.5.3.1

Hardware/Firmware Conformance -1.5.3.1.1 Levels - Terminal hardware/firmware claiming to conformto 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 levelunless 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 thearchitectural 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 associatedconformance level, but need not implement any lower
level
extensions, unless specifically required by the specification ofthe/ 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 thisdocument, unless it has been included in an appendix to thisdocument.
Suchfunctions· willbedefined 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 inLevel 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.

thelowestdefinedlevel

effectstowhich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 makethe 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.
Allsoftware 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 thatcertain features of the software are inoperative.
Or, if theentire software package requires an· extension (e.g., DECgraph and
ReGIS), then rational behavior means exiting gracefully with anappropriate informational message.

1.6

LEVEL I CONFORMANCE

Levell of the architectu~provides a compatibility mode forsoftware 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

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

..

Page 1-18

Required Functions

The following controls are required for
implementations.

allconforming

NUL
SPACE

NUL
SP

SHIFT IN (LOCKING SHIFT ZERO)SHIFT OUT (LOCKING SHIFT ONE)SINGLE SHIFT TWOSINGLE 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
ASCIILine Drawing
SELECT GRAPHIC RENDITION
NormalBold
Blink
Underscore
Reverse VideoSINGLE WIDTH LINEDOUBLE WIDTH LINEDOUBLE 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 MODECURSOR KEY MODEKEYPAD MODECURSOR UP
CURSOR DOWNCURSOR FORWARD
CURSOR BACKWARD
CURSOR POSITIONHORIZONTAL/VERTICAL POSITIONCURSOR POSITION REPORTSAVE CURSORRESTORE CURSORBEL
BACK SPACEHORIZONTAL TAB
LINE FEEDDECSTBMSGR

DECSWL
DECDWL
DECDHLT
DECDHLB
SM,RM
DECSCLMDECSCNM
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 TABFORM FEEDCARRIAGE RETURN
SUBSTITUTEINDEXREVERSE INDEXNEXT LINE
HORIZONTAL TABULATION SETTABULATION CLEAR
ERASE IN LINEERASE 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
asan
implementation or customer option, and require theassociated 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

1

that

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..4isDA(l)DA( 2)DECSCLThe following editing controls form an extension to Levelis 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
DECPEXMC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
DECGCEMMedia Copy

MC

Device Control string
ENTER ReGIS GRAPHICS

DCS,STReGIS Commands
SCREEN CONTROLPOSITION CONTROLWRITING CONTROLVECTOR DRAWINGCURVE DRAWINGTEXT DRAWINGREPORT
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 usedby conforming DEC application programs (except as describedabove):
Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE

SM,RM
DECCOLMDECSCLMDECSCNMDECARM

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 forvideo 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

theRequired Functions

The following controls are required for
implementations.

allconforming

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

all

Level

SELECT 7-BIT CI TRANSMISSION
SELECT 8-BIT CI TRANSMISSIONLOCKING SHIFT TWO
LOCKING SHIFT THREELOCKING SHIFT ONE RIGHTLQCKING SHIFT TWO RIGHTLOCKING SHIFT THREE RIGHT

S7ClT
S8C1T
LS2
LS3
LSIR
LS2R
LS3R

SOFT TERMINAL RESETDECSTR

SELECT CHARACTER SET to .GO, Gl, G2, G3
ASCIILine Drawing
Supplemental
Set/Reset Mode
TEXT. CURSOR ENABLE MODE
INSERT CHARACTERERASE 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
asan'implementation o£· customer option,and require theassociated 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

DECSCADECSELDECSEDDRCS (Dynamically Redefinable Character Set) -DOWN LINE LOAD DRCSDECDLD

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

1.7.3.8

UDK (User Defined Keys)

DEVICE STATUS REPORTUSER DEFINED KEYSDSRDECUDK

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 usedby conforming DEC application programs (except as describedabove) :Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE

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

1.8

page 1 ~26

CERTIFICATION

Certification testing is performed on products ~laiming to conformtothearchitecturebytheTerminals
and Workstations
Certification Group. Products may not claim compatibility withthe 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 of Certification is to prove a product's compatibility
claims, not according to its own interpretation of what isrequired for compatibility, but as defined in The Video Standards
Systems Reference Manual (DEC Standard 070). This means thatmultiple products will use the same set of Certification tests.
Certification assumes the unit functions,but checks if thefunctions 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 thatpasses 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 newarchitecturalelements,
andattempts
touncover
discrepancies
betweenthearchitecture
andtheimplementation even before hands-on testing begins.
The Certification Group, in cooperation with ArchitectureGroup, 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
betweenthearchitecture and the implementation.
Interim reports areproduced periodically, and a final certification reportis 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
resolutionofcompatibility issues, obtains
commitments for any proposed changes, and publishes theresults.

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 thediscussions, but they have no vote.
The Waiver Panel is responsible for reviewing the deviations
between the architecture and implementation as documented in theCertification 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 Panelmake for each level of certification under consideration:will

1. -~ange The Product:
It is agreed that the problem must be fixed,
but thatbecause plans are in place to do so by a specified time,a waiver is granted.

2.

Change The Architecture:
It is agreed that the productreasonablefashionandtheclarification.

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 thearchitecture 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 totheproduct, the architecture or the certification
procedures.
By granting this waiver, the Panel isexpressing 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 isinvolved at this time, the deviation is serious enough towarrant placing a restriction on what compatibility orother 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 particularlevel can be:o

PASSED CERTIFICATIONoPASSED CERTIFICATION WITH WAIVERS
category 6 deviations

5

or

o

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

6o

FAILED CERTIFICATION - One or more category 6 deviationsNocategory•
In addition,' the Waiver
Panel may wish to· state any otherrestrictions 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 thestandards.

2.

Removed DELETE as a required Levell function.
(It isignored as an unimplemented Cl control.
Its use as a padcharacter 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 toextension 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 toaccess 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 forLevel 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 conformancelayersmodel
requiredservice 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
Conformancedeviations
exceptions
exclusions·extensions
Level 1
Level 2
hardware/firmware
Level 1
Level 2
product
required functions
softwarewaiver 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
Interfaceexternal
internal

1-10
1-11
1-11

-L-

Layer
code extension
input processing
presentation service class
LayersLevelsdefinition

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 Classdefinition

1-10

Page 1-32

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

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 Manualvirtual Terminal

1-5
1-8

-W-

Waiver Panelcertification
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 theprogram flow across sections of the Manual.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatoryfor
Engineers designing' hardware for terminal products andSoftware Engineers designing programs using terminal interfaces.
Additional requirements are defined in the section "Concepts andConformance 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" isconsidered to be of potential benefit to the corporation andshould 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 ofthis 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 AXlOFILES: 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 theVideo 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 inStandards and Methods Control.
requests for further information
PK03-1/l0C, DTN 223-5162, RANI:':VIDARCH

Dire~ttoPeter

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 - parsing• •Code Extension Layer - Graphics . . .
Terminal Management. . .
•Character Cell Display . . . . . . . ·Keyboard processing . • . . . . . . ·Printer Port Extension .
. ... ·
Extensions • . . . . . . • • . • . . ·• • • 2-6

2.4
EXECUTIVE PROCEDURES
2.4.1
Executive Loop . .
2.4.2
Event Handling Tables . • . . .
2.4.2.1
Execute Control Code2.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-8
••

• 2-9

.
.
.
.

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

.

.
.
•
•

.

. . .
• . .

. .

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

. .
. .

. . .

.

.

. • .

. .

.

.

. .

.

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

.

. •

.

.

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 datatypes 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, andincludes the top level routines which bind the program sections
together. It should serve as a reference point for understandingtherelationshipofthe 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 toserve as a guideline to implementors, and as a clear specificationof 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 orrules provided by the algorithms.
In other words, for all possible received interchange, conforming
implementation algorithms shall produce identical results to theprogram specifications in terms of the presentation on the visualdisplay and the state variables that an application process cansolicit 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, andwide usage both inside and outside of DEC.
Standard Pascal has
been used throughout, with the following exceptions:
underline is allowable in user-defined symbols
forwardimplieddeclarationofprocedures

andfunctions

OTHERWISE is used asstatements'

anexception

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 animplementation
technique,tooptimizestoragerequirements 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 undefinedstates 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 structureof the coded algorithms within this manual. It is not intended asa detailed description of the program logic.
EXECUTIVE LOOP===) GET.NEXT.EVENT------------------.(ANSI PARSER)

I INSERT OR
I REPLACEI CHARACTERI EXECUTE
I CONTROL
I CODEI EXECUTEI ESCAPE
I SEQUENCEI EXECUTE
I CONTROLI SEQUENCEI EXECUTE

I---------

I-------•-

1-- - - - - - - -I---------

1-- - - - - - - - -

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

IDECSCIDECRCIDECDHLTIDECDHLBIDECSWLIDECDWL
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 UPSCROLL DOWN

Program Flow Diagram

IGNOREI CONTROLI 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 theparser 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

Code Extension Layer - Graphics

TYPE

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

TYPE

= (SEVEN.BIT,EIGHT.BIT)jIN.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

Page 2-8

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

pag~

2.3.3

Terminal Management

CONST(* 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);

TYPE

VAR

2-9

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 = RECORDPOSITION: 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

Extensions

_

_

_

VAR

•

_

_

_

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

EXECUTIVE PROCEDURES

2.4.1

Executive Loop

Purpose:Page 2':'13

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 arecleared and interrupts are enabled. The terminal then enters aloop 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 THENEXECUTE. ESCAPE. SEQUENCE;CONTROL. SEQUENCE: IF EVENT.VALID.SYNTAX THENEXECUTE. CONTROL. SEQUENCE;
DCS.INTRODUCER: IF EVENT.VALID.SYNTAX THENEXECUTE.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 *yIN.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 bythis 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

Execute Escape Sequence -Purpose:

Execute valid escape sequences.

Page 2-16

Description:
Escape sequences exhibiting valid
syntaxon
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 THENLOCKING~SHIFT.ONE.RIGHT ELSE IGNORE;
125: IF CONFORMANCE.LEVEL = LEVEL.2 THENLOCKING.SHIFT.TWO.RIGHT ELSE IGNORE;
124: IF CONFORMANCE.LEVEL = LEVEL.2 THENLOCKING.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 THENDESIGNATE. CHARACTER. SET;OTHERWISE IGNORE;
END;
END;
2: (* four character escape sequences *)BEGIN
IF CONFORMANCE. LEVELLEVEL.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) THENDESIGNATE. CHARACTER. SET;OTHERWISE IGNORE;
END;
END
ELSE IGNORE;END;
OTHERWISE IGNORE;
END;
END;
END;

=

Known Deviations:Nonepage 2-17

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

Execute Control Sequence -Purpose:

Execute valid control sequences.

Page 2-18

Description:
Control sequences exhibiting valid syntax
ontermination 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 intermediatecharacters received during processing of the sequence.
It alsoindicates 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

Execute Device Control String -Purpose:

Execute valid device control strings.

Page 2-20

Description:
DeviceControl
StringIntroducer
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/orintermediatecharacters
received
duringprocessing 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 responseto this request).
If the private parameter value is > (3/14) andthe device is a Level 2 or higher terminal, it will return aSecondary Device Attributes response.
State Affected: None
Algorithm:
PROCEDURE DEVICE.ATTRIBUTES;BEGINIF 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 thecurrent state of the terminal device. Three levels of request areprovided: device availability, position reporting, and printeravailability.
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:oDevice ready, no malfunctions detected
Device not ready, malfunction detected3

If the parameter value is six (6) the device will respond
Cursor Position Report (CPR) control.

with

a

Printer status requests use the private parameter value ?15
3/1 3/5).

(3/15

Requests for the lock status of User Defined Keys use theparameter value ?25 (3/15 3/2 3/5).

privateNotes:
1.

There is no guarantee of synchronization between thestatus reports transmitted by the device in response tothis command and the actual device states at the timethey 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.

orNotes:
1.

The parameter list sent with a single instance of thiscontrol should not exceed the maximum allowable for theparserimplementation.
(Note:
foradetailed
descriptionofthe parser,
see the section "CodeExtension 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

Reset Mode -Purpose:Place one or mode values in the reset state.

Format:

CSI

Ps ;

; Ps

1

9/11

Ps ;

; Ps

6/12

Page 2-26

default Ps: none

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

orNotes:
1.

The parameter list sent with a single instance of thiscontrol should not exceed the maximum allowable for theparser implementation (sixteen or less is recommended forbackwards 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 THENRESET. 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
from32 .. 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.Loopalgorithm, and added code to process Single Shifts andthe Load_ORCS and Load_UDK control strings.

6.

RemovedAnswerbackfromthe
Execute Control. Codealgori thm. _Removed the processing of Single. Shi ft. Twoand Single.Shift_Three from this routine.

7.

Removed Hard.Copy
fromthe
Execute.Escape.Sequencealgorithm, and changed the character set designator value
50 to 60.

8.

Added
Insert.Character,
Erase.Character,
Select.Character.AttributetoExecut_.Control.Sequence algorithm. Removed DECTST.

and
the

9.

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

to

10.

Changed t~e escape sequence handling algorithm to support
the character set designation scheme for DRCS whichallows 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 ofterminal 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.

Controlthat

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-

Codingalgorithms
Control Codeexecution
Control Sequence
execution

2-4
2-15
2-18

-D-

DA
Device Attributes
control function
Device Control String
execution
Device Status Reportcontrol 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-

PascalProgram Structure

2-4
2-6

-R-

Reset Modecontrol 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 LAYERDocument 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 systemcomponents.
It applies directly to serial line communications,consisting of a stream of 7-bit or 8-bit combinations referred toas "character codes". The mechanisms employed for achieving thisform of communication, however, may be applied within the context
of block oriented line protocols, networking packet protocols, andprogram 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 aredefined 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 The material contained within this document is assumed toI define mandatory standards unless it is clearly marked as:
I (a) not mandatory; or (b) guidelines. Material that is
I marked as "not mandatory" is considered to be of potential
I benefit to the corporation and should be followed unless there
I are good reasons for non-compliance. "Guidelines" define
I approaches and techniques that are considered to be good
I 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

EL-00070-03
VSRM - Code Extension Layer

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

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 Draft
Revision 0.1
Revision 0.2
Revision 0.3
Revision AX04
Revision AX10
Revision AX11
Revision Ax12
Revision 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 ArchitecturePeter Sichel
Patricia Winner

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

ter Conklin, Technical Director,
Desktop Systems Group

Peter Sichel, Desktop Systems GroupJ2lltv~

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, andENET 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 - CODEEXTENSION LAYERINTRODUCTION • • .
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 EXTENSIONRELATIONSHIP 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 EXTENSIONFACILITIES . . . . . . . . . . . . . .
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 LayermDmDomD™

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 codedinterchange 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 "codedcharacters". The mechanisms employed for achieving this form ofcommunication, however, may be applied within the context of blockoriented 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 thisspecification applies uniformly to all display terminals, printing
terminals, computing terminals and workstations, and isindependent of the actual character sets implemented in aparticular 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 forbackward 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 notassume 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 isstrongly 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 internaland external product interfaces.
txternal interfaces areinterf~ces between a terminal, personal computer, or workstation
and a remote system.
Internal interfaces are interfaces between aterminal subsystem and software processes running within aterminal, personal computer, or workstation.
.

*

terminal system**host system----------------------~---*

physicalterminal

virtualterminal** ......... .

*.............. I*--------------------------*<hardware><firmware> * <communications link>

application
process<software~*** EXTERNAL INTERFACE**
terminal system--------------------------*-------------*
I
physicalterminal

virtualterminal* application I*
process
I*
I--------------------------*-------------<hardware><software/ * <software>
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 OnlyTERMINOLOGY

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 commonlyrefers to the 8-bit unit.)character - Member of a set of elements that is ~s~d for theorganization, control and representation o·f data.
code; Coded Character Set - Set of unambiguous rules that
establishes a character set and the one-to-one relationshipbetween the characters of the set and their bit combinations.
code extension - Techniques for the encoding of characters thatare 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 representationof 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 thecontrol function.
control string - A string of characters that is used to perform acontrol 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 tointerpret 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 ofbits 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 inwhich the final character is in columns 4 an~ 5, and is used toextend the 7-bit code table by being the row equivalent to thecorresponding 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 ofwhich occurs between the Control Sequence Introducer character andthe 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 themeaning of a character in a set of characters that has been
designated and invoked. 2) To use an escape sequence with themeaning of an additional control function.
selective parameter - A control sequence parameter used to selectparticular 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 aposition 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 charactercodes 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 codedcharacter set is derived fro'm both 7-bi t and 8-bi t charactercodes.

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 EITHERb.

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 Layerd.

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

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

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 codedcharacter set including a 94-character graphic character set.
row

column00 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 COI+controllgraphic
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
DigitalInt~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 tocolumns 08 and 09, called the C1 control set (bitcombinations from 8/0 to 9/15, inclusive).
AND EITHERc.

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).
ORd.

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 codedcharacter set with 94-character graphic character sets.
ColumnRow

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
+control081 codes

GLgraphic
codes

+

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

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

Cl
Icontro1
I codes

I
I
I
I
I
I
I

I
I
I
I
I

+

+---+

+

I
+

I
+

I

+

I
+

I
+
GR
graphic
codes

+

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 codedcharacter stream are specifically categorized as being either partof a control function or a coded graphic character.
3.3.4.1

Control Characters

A control character is a single character whose occurrence in aparticular 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 nota 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 acontrol character or a graphic character.
In a 7-bit environment, the values of a CO control character arein 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 arefrom columns 00 and 01 and the values of C1 control. characters arefrom 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 ordisplayed. 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 and10/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 orcontrol sequences are not treated as graphic characters,· but areprocessed 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, acontrol character, or both. As a graphic character it has thevisual 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 anunimplemented 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 andcontrol sequences, the high order bit of this character will beignored, and it will be treated as syntactically equivalent toSpace (2/0).
3.4.4

15/15,

The character code 15/15 in a-bit environments is treated as anunimplemented 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, andcontrol 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 theforward direction in the data stream with the following
precedence:
1.

Control characters2.

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 theescape sequence were not present (that is, as if the control
character had been received immediately before the escapesequence), 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 tocount 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, orcontrol 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 arecertain conditions that will cause a sequence to be terminatedwithout valid interpretation. In all of these cases, theterminated 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

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

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

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

C1 Control Codes

Since C1 control functions may be represented as ESC Fe sequencesin 7-bit environments, C1 control characters embedded in an escapesequence or control sequence shall cause the sequence to becanceled and a new control function to begin with the C1 control,character. This provides for compatibility between 7-bit anda-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 toproceed. Because of the complexity of the parsing algorithms andrules regarding control code processing, it is desirable toprovide a single escapement that aborts any code processing inprogress 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 Onlya.

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

b.

Control Sequence in Progress - Same as Escape Sequence inProgress.

c.

Control String in Progress - If received before the Final
Character, the control string will be treated as aControl Sequence in Progress. If the String Terminatoris 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 isreceived, it will be processed as an ESC Fe sequence(7-bit Cl control code) and will be ignored by thereceiving party.
NOTE
This ,use of string Terminator applies to ANSI
conforming interchange as described in thisstandard. 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 notreceived. 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 ofControl 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) aredefined 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
sequenceb.

The contents of a control string introducer sequencec.

The operand of a single-shift characterIn these situations, the bit combinations in the range 10/0 to
15/15 have the same meaning as the bit combinations in thecorresponding row from columns 02 to 07 (bit combinations in therange 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) andthe final bit combination of a control sequenceb.

Between the opening delimiter of a control string and thestring 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 acontrol 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 .. 1F

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 usedin combination with the final character to specify theparticular function.
Intermediate characters for escapesequences are bit combinations in the range of 2/0 to
2/15, inclusive.
Conforming implementations shall recognize at least threeintermediate characters.
If more intermediates than canbe recognized are received, the entire sequence shall beignored up to and including the final character.

c.

F is a final, function defining character.
It is usedeither by itself or in combination with the intermediatecharacters (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 bycontinuing processing of the escape sequence as if theintervening control code had not been received. Notethat if the control code is CAN, ESC, or SUB, thesequence in progress is terminated.

e.

The receipt of any 8-bit C1 control character in therange 8/0 to 9/15, inclusive, during the processing of an
escape sequence causes the ~equence in progress to beterminated.
(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 thesame interpretation as the character from thecorresponding row in columns 02 to 07.
Thus, the 8th bitof graphic characters should be ignored when interpretingan 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 escapesequence ( ESC Fe ), where Fe is in columns 04 and 05 (bitcombinations from 4/0 to 5/15 inclusive). Expansion escapesequences 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 .. 1F

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 moreintermediate characters, the sequence is invalid.
However, the end of the control sequence is still definedby the final character.
Interpretation will continue
until a valid final character is received.
Conforming implementations shall recognize at least threeintermediate characters.
If more intermediates than canbe recognized are received, the entire sequence shall beignored, up to and including the final character.

d.

F is a final, function defining character.
It is usedeither by itself or with the intermediate characters (ifany) to establish what function is encoded.
Finalcharacters 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 Onlye.

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, andcontinuing processing of the control sequence as if theintervening control'code had not been received. Notethat if the control code is CAN, ESC, or SUB, thesequence in progress is terminated.

f.

The receipt of any 8-bit C1 control character in therange 8/0 to 9/15 inclusive during the processing of acontrol sequence causes the sequence in progress to beterminated. (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 thesame interpretation as th~ character from thecorresponding row in columns 02 to 07. Thus, the 8th bitof 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 definedby 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 shallbe 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 notsignificant 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 achange that permits a parameter consisting only of
3/0 bit combinations to be treated as a parametervalue of zero, not necessarily the default value.
A selectable mode has been defined in the ISO
standard that controls the interpretation of aparameter 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 morethan 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 thecontrol 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 definedby 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, themeaning of each parameter is determined from a separate list ofvalues or actions. All of the parameters are required (or are
assumed to be defaulted) for the particular control function totake effect.
If a variable number of selective parameters is specified, eachparameter 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, theparameters shall be processed sequentially beginning with thefirst parameter. A control sequence containing more than one suchselective 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 thefollowing 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 toprivate 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 ofthe parameter string, the entire sequence up to and including thefinal 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 70007

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

A single parameter value of 798

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 32;

3/2 3/11

Two parameters with the first having
the value 2 and the second having thedefault value;5

3/11 3/5

Two parameters with the first having
the default value and the secondhaving the value 51;;43/1 3/11 3/11 3/4
Three parameters with the firsthaving the value 1, the second having
the default value, and the third
having the value 413;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 theparameter string invalidates thecontrol 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 ofcontrol strings, each of which has the same general structure with
its own introducer character and internal variations. The fourtypes and their formats are:Application Program Command

APC (9/15)

0 .. 0ST (9/12)

Device Control Strings

DCS (9/0)

0 .. 0ST (9/12)

Operating System Command

OSC (9/13)

0 .. 0ST (9/12)

Privacy Message

PM

0 .. 0ST (9/12)(9/14)

where:a.

APC, DCS, OSC, or PM is the introducer character thatstarts 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), respectivelyb.

0 .. 0 is a command string which has a unique format foreach 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 coControls 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 theinterpretation 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 .. IF

0 .. 0ST

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 Layerd.

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 thefollowing internal format.
APC
OSC
PM

1 •. 1
1 •• 1
1 .. 1FF
F

0 •• 00 •• 00 •• 0ST
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 EscapeSequences).

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 notmandatory.
A syntax is not yet
strings; the use ofreserved for future
inclusion of escapeStrings.

specified for the interpretation of character
SOS and character strings within Digital isstandardization. Note that ISO may define theand 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 toterminate a' control string. Control characters other than thoserecognized within the command string syntax may be defined to haveother meanings .in the future. It is recommended that all othercontrol codes not used within a command string be ignored byhardware.
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 beignored).
GR (8-bit) graphic characters are permitted within Device Control
Strings, and the graphic character's interpretation will bedependent 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 theexternal 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 outsideof Digital.
Module Overview:
The parser is broken into modules as follows.
gparse.hglobal include file
(must be included by external routinesthat call the parser)

lparse.hlocal include file(contains definitions usedinternally by the parser)

vtparse.cparse routines

ptexec.cparser tester executive

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

EL-00070-03
VSRM - Code Extension Layer
3.5.5.1

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

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. Sicheladded external events for control·
string introducers APC, OSC, and PM
16-May-1988
P. Sicheladded parse limitschanged 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 charclass[STACK SIZE];
unsigned charvalue[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 apeseq u e n c eparser 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 r0

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. LaskoFixed overlapping idefine's in parser states
29-May~1984
P. Sichelfixed 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. Sichelremoved CS OMIT
Added CS IGNORE P to ignore parameters
beyond MAX NUM PARAMETERS.
Added ES IGNORE to ignore escape sequenceswith 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 whichparser to invoke */idefineidefineidefineidefineidefine

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

idefineidefineidefineidefineidefineidefinePARSE ERRORCONTINUE
GRAPHICCONTROLESC 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 eparser definitions(includes control character parser also)*/*//* parse inputs (count by number of states) */idefineidefineidefineidefine/*ES CONTROLES-INTER
ES-FINAL
ES-GRAPHIC

con t r

0

1

0
4
8
12

seq u e n c eparser definitions/* parse inputs (count by number of states) */idefine PI CONTROL
idefine P'!-PRIVATE
idefine PI-NUMERAL
idefine, PI SEMI COL
idefine PI - INTER
idefine PI - FINALide fine 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: VAX/VMS
VAX-11 C V1.2*
24-Feb-1984* Author: Peter Sichel** Modified by.
*
PAS 30-May-84 added missing "break" to switch case "IGNORE".
*

**
**
*

PAS 12-Nov-84
PAS 13-Nov-84

PAS 16-May-88

*
*

*
*

'*

*

*

PAS

5-Feb-89*/

momDomD™

modified eseq class and pseq class torecognize 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 VTPARSEVTPARSE 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), andrecognizes the following catagories of control functions when
they occur in the input stream.
oGraphic Characterso

CO and C1 Control Characterso

Escape SequencesoControl SequencesoControl 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 forparsing 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 usefulfor 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 parsestate. A single graphic or control character is considered boththe start and final character of a sequence.
The "data" field contains the actual character data input to theparser or a number of characters in reduced form.
Examples of
reduced forms are a single Cl control replacing an Fe sequenceor 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 STARTES IN SEQ
SEQ_START

41 ' A'
28 ' ( ,IB ESC

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

CS IGNORE
CS-PARAM
CS-PRIVATESEQ_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 fromline 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 inprogress.

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.

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

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

o

If a parameter character occurs after the firstintermediate character, the entire sequence will beignored up to and including its final character.

oThe parser recognizes parameter values up to16383 (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 asingle parameter sequence as specified by theconstant MAX NUM PARAMETERS in "gparse.h".
If morethan 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 thatparametershave 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 Onlyo

The parser will recognize up to three intermediatecharacters 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 andincluding its final character.

o

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

Each intermediate character requires one stack entry. Eachparameter value also requires one stack entry. The default stacksize of 32 is sufficient to hold a sequence starting character, aprivate parameter character, 16 parameters, 3 intermediates, andstill recognize nested CO control characters. If the maximum
number of parameters or intermediates are increased, the stacksize 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
actionto 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

actionto state/* CON-START *//* ES IN SEQ *//* ES-IGNORE */GRAPHICI CON START,CONTINUE I ES IN SEQ,IGNOREI ES=IGNORE,*//*----=----------------------=-------*//* SEQ START */CONTINUE I ES IN SEQ,/* input: ES FINAL*//* from state
actionto state/* CON-START *//* ES IN SEQ *//* ES-IGNORE */I CON-START,I CON-START,I ES_IGNORE,*//* ----=----------------------=-------*//* SEQ START */ESC SEQ I CON START,GRAPHICESC SEQCANCEL/* input: ES GRPAHIC *//* from state
actionto state*//* ----=----------------------=-------*/SEQ START */PARSE ERROR I ES IN SEQ,

/*
/*
/*
/*

CON-START */ES IN SEQ */ES-IGNORE */GRAPHICI CON START,PARSE ERROR I ES IN SEQ,PARSE-ERROR I 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
actionto state*//*----=--------------------------=-------*//* SEQ START*/CONTROL I CS IGNORE,
/*
/*
/*
/*
/*

CS PRIVATE */CS-PARAM*/
CS-INTER*/
CS-IGNORE*/
CS-IGNORE P */CONTROL
CONTROL
CONTROL
CONTROL
CONTROL/* input: PI PRIVATE *//* from state
actionI CS-IGNORE,
I CS-IGNORE,
I CS-IGNORE,
I CS-IGNORE,I CS=IGNORE_P,
to state*//*----=--------------------------=~------*//* SEQ START*/
CONTINUE I CS PRIVATE,CS PRIVATE */CS-PARAM*/
CS-INTER*/
CS-IGNORE*//* CS-IGNORE P */

/*
/*
/*
/*

CONTINUE
CONTINUE
CONTINUEIGNOREIGNORE/* input: PI_NUMERAL */I CS-IGNORE,
I CS-IGNORE,
I CS-IGNORE,
I CS-IGNORE,I CS=IGNORE,*/

EL-00070-03
VSRM - Code Extension Layer/* from state

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

actionto state*//* ----=--------------------------=-------*/

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

SEQ STARTCS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE_P

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

PARAM
PARAM
PARAM
CONTINUEIGNOREIGNORE

1

CS PARAM,

1

CS-PARAM,I CS-PARAM,

I CS-IGNORE,
I CS-IGNORE,I CS:IGNORE_P,/* input: PI SEMICOL *//* from state
actionto 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
CONTINUEIGNOREIGNORE

input: PI INTER */from state
actionto state*/----=--------------------------=-------*/SEQ START,*/CS PRIVATE */CS-PARAM*/
CS-INTER*/
CS-IGNORE*/
CS-IGNORE P */CONTINUE
CONTINUE
CONTINUE
CONTINUEIGNORECONTINUE

I CS INTER,
1

CS-INTER,

1
1

CS-INTER,
CS-IGNORE,
CS:INTER,I CS-INTER,
1

input: PI FINAL */from_state
actionto_state*/---------------------------------------*/SEQ START*'/CS PRIVATE */CS-PARAM*/
CS-INTER*/
CS-IGNORE*/
CS-IGNORE P */.

I CS IGNORE,

PAR SEQ
PAR-SEQ
PAR-SEQ
PAR-SEQCANCEL
PAR_SEQ

CS-IGNOaE,
CS-IGNORE,
1 CS-IGNORE,
1 CS-IGNORE,I CS:IGNORE,
1
1

input: PI OTHER */from state
actionto state*/----=--------------------------=-------*/SEQ START*/CS PRIVATE */CS-PARAM*/
CS-INTER*/
CS-IGNORE*/
CS-IGNORE P */};mDmDomD™

CONTINUE
CONTINUE
CONTINUE
CONTINUEIGNORECONTINUE

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 thenif 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
DigitalIn~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;cc~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 ERRORCONTINUE
GRAPHICCONTROLESC SEQ
CON-SEQPARAM
CANCELIGNORE***** 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*event *event *event *event-*startR ESC SEQ; break;R-OSe-SEQ; break;
R:PM_SEQ; break;R APe SEQ; break;R-PARSE ERROR; break;

- 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: VAX/VMS** Author: 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 <stdio.h>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("CONbreak;
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 TECHNIQUESIn a 7-bit environment, the basic graphics' portion of the codetable 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 andinvocation 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 FUNCTIONSShift functions are used to invoke one of the G-sets into the leftor right half side of the code table. There are two kinds ofshift functions:lodking shifts and single shifts. Locking
shifts cause a G-set to be permanently invoked into the codetable, where it will remain until another shift function occurs to
replace it. Single shifts cause a G-set to be invoked only forthe 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 designatedinto GO and G1, and GO is invoked into GL, then any graphic codesin 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 "FF+--++-----+--++-----+
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

GO

I

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 - LSO ( SI )-> GL = LSl (SO)-> GL = LS2, SS2-> GL - LS3, SS3-> GR - LSlR-> GR = LS2R-> GR - LS3R

DesignatedGraphic Sets+++-----+++---------+----+----+---------+

I
I
I+---------+---------+----

I

I

I

+-----+++
I+------+++-----+
++

I

I
I 94
I
I Char I+++-----+

I

I
I
I 96
I CharI+------+

I
I
I+++-----++

I

designate: ESC---+++-----+++
I. . . II
I
I

I
I
I

++
+---:---++

Repertory of Graphic Character Sets

I

94 Chars:
GO = (Gl = )
G2 = *
G3 = +

F

96 Chars:= B
ASCII GUPSS
= <Line Drawing- 0
DEC Supplemental = % 5
ISO-Latin-l= A (96)
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 = /

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 Zero
Shift One
Shift Two
Shift Three

G-set
invokedTable
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 beenchanged.
Conforming terminals will provide the following additional locking
shift functions in Level 2 operation.
Code

Name

G-set
invokedTable
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 thelocking shifts.
a.

Those corresponding to control characters in columns 00,
01, 08, and 09b.

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 GLc.

Those corresponding to positions 10/0 and 15/15 when a
94-character set is invoked into GRd.

Those included in any escape or control sequence (seenotes to subheadings 3.5.2 Escape Sequences and 3.5.3
Control Sequences for a full explanation of the use ofbit 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
invokedTable
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 (notethere 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 thecharacter 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 directlywith 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 whenprocessing 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 infact a subset of the conformance requirements defined in thisdocument, 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 designatedand invoked like any other character set, but the character set
used can be selected by the user as a SETUP option or by hostcontrol 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 beconcerned 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 forexisting 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 specificcharacter 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 theinitial 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

LevellIn Level 1 operation, the default character set designations willbe ASCII in GO, Gl, G2, and G3.
Furthermore, the GO set (ASCII)
will be invoked into the GL position of the In Use Table.
Levelloperation 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 willbe 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 willbe 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 designatedand 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 thisI 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

STATE DESCRIPTIONS

3.7.1

CONTROL SETS

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

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_typecO;

EL-00070-03
VSRM - Code Extension Layer

14-Apr-1989
Page 3-66
Digi tal Internal Use On"lygraphic character set type
gset_name_type-

gl;
invoked_gl;

cl control set typegraphic character set typegset 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 nextgraphic character in the received data stream, it is necessary toretain 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 aseven or eight bit data path in set-up. The environment of theprinter 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 toset the host port for an 8-bit environment, even though thephysical channel is limited by the hardware to 7-bits.
Thearchitecture assumes that the physical and logical settings arecompatible, and does not define the results when this is not thecase. The terminal characteristics are dependent on both theenvironment and the conformance level of operation. However,there are only three possible states for the terminal to be inthat this architecture specifies:* Level 1 operation
Host Port

transmit receive -7-bit controls
7-bit controls

7-bit graphics
7-bit graphics(Printer Port transmit -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 theterminal 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 PortIn 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 typehost 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 FACILITIESANNOUNCE SUBSET OF CODE EXTENSION FACILITIESLevels: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

<final><final> I

Level of conformance

M 4/13
N 4/14

Level 2 of ISO 4873
' Level 3 of ISO 4873---------+----------------------Level 1 of ISO 4873
L 4/12
Description: This sequence announces the level of conformancethat the subsequent interchange will conform to. Conformance to
ISO 4873 requires some default designation and invocations on thepart of the terminal.
Upon receipt of a Levell, 2, or 3 announcer sequence, theterminal will make the following desi9nations and invocations:Level 1ASCII 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 2ASCII 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 Digitalconformance levels for Character Cell Display
terminals. These announcer sequences and DECSCL
both specify conformance levels, but to adifferent 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 anannouncer sequence to regain the default ISO
designations and invocations.
State Affected:
graphic character set typegraphic-character-set-type
graphic-character-set-typegset naie typegse(=name:=typedesignated 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]iinvoked 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 ENVIRONMENTSELECT 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 the7-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 assingle 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, thiscontrol 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 ZERO1, 2, 3

Levels:Purpose:Invoke the GO graphic character set into the GL positionof 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-handgraphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 that isentered 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 datain the range 2/0 to 7/15 would be affected.
Conforming software shall not designate a 96
character UPSS as GO.

I
IState 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 positionof 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-handgraphics 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 thedisplay 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 positionof 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-handgraphics 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 thedisplay to be rendered according to the current contents of the G2. character set.
Notes:
1.

This control is included in the terminal interface forinterchange 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:LS32, 3 ,

Purpose:Invoke the G3 graphic character set into .the GL positionof 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-handgraphics 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 thedisplay to be rendered according to the current contents of the G3
character set.
Notes:
1.

This control is included in the terminal interface forinterchange 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 positionof 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-handgraphics 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 thedisplay to be rendered according to the current contents of the G1
character set.
Notes:
1.

This control is included in the terminal interface forinterchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software.
(See DECSTD 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 codetable.

State Affected:

Algorithm:
void locking shift one right ()

f

-

--

if (conformance level-{== LEVEL 2)-

in use table.gr = designated graphic sets[l]iin-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 positionof 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-handgraphics 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 thedisplay 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 positionof 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-handgraphics 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 thedisplay 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 thedesignated G2 set.
Format:SS2
8/14

Description:
The SS2 control causes the next character in thereceived 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 notcancel the Single Shift. The following bit combination shall beinterpreted as a character from the G2 set. This is done forconformance to ISO 2022, and is intended to facilitate the designof 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 OnlySINGLE SHIFT THREE

SS3

1, 2, 3

Levels:purpose: Temporarily invoke a single character from thedesignated G3 set.
Format:SS3
8/15

Description:
The SS3 control causes the next character in thereceived 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 notcancel the Single Shift. The following bit combination shall beinterpreted as a character from the G3 set. This is done forconformance to ISO 2022, and is intended to facilitate the designof 8-bit to 7-bit transformation facilities.
State Affected:
sing-Ie shift type single shift;boolean_type-cancel_single_shift;
Algorithm:
1
1I/* . . . main loop */c = readcom();1parse_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)-{= com_state->data[final];code

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 andCoding 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 charactercodes to clarify the handling of bit combinations in therange 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 andControl Sequences to clarify the processing of 7/15 and15/15 and C1 control characters within control functions.

9.

The section on processing of control sequence parametervalues was substantially rewritten.

10.

The section on Control Strings was moved ahead of theparser design.

11.

A note was added on the non-conformance of the VT125 inprocessing CAN within control strings.

12.

Global changes were made to the parser design toincorporate 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 Presentationinterchange 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 Onlys~ction17.

The environments

18.

The default character set designations were changed to
distinguish between Level 1 operation and Level "2operation.

19.

The names of Select 7-bit C1 and Select 8-bit C1 werechanged 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 useof these controls.

22.

The character set designators were removed from thissection 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 mustuse 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 namesin the parser algorithms to be consistent with othersections of the SRM.

4.

Added a note to the section on environments indicatingthat 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 theresult.

5.

Changed descriptions of Single Shift Two andSingle Shift Three as well as the algorithms to indicatethat they wiTl be ignored if the next character in thereceived data stream is not a graphic character.
(Withthe exception that a single Shift Out or Shift In
character may occur.)6.

Removed the notes which restricted conforming softwarefrom 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 useof, any function other than String Terminator toterminate 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 ofterminal 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 conveniencein formating and storing control strings.
It isrecommended that these characters not affect theinterpretation 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 ofterminal 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 descriptionof 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 parametersthat should be supported. Was 255 (8-bits), changed to
16384 (14-bits).

6.

Added recommendation for handling parameters beyond thedevice 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 asa 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) andanticipatory 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 andinvocations). 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 escapesequences.

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 iseasier 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 andMethods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, orCTS1-2/D4.
please provide your name, badge number, cost center, mailstop, andENET node when ordering.
ANSI AND ISO STANDARDSANSI X3.4 - 1986

American National Standard Code forInformation 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 Codewithin 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 Codewithin control function, 3-22,
3--24
C1 Transmission Mode, 3-67, 3-71,
3-72
Cancel, 3-19, 3-30
Characterdefined, 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
Conformancelocking 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 andInvocation, 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-66transformation, 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
Interfaceexternal, 3-9internal, 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 Portenvironment, 3-66, 3-67
privacy Message, 3-28
Private parameter, 3-26
Referenced Documents, 3-88

Locking
Level
Level
Locking
Locking

Shift, 3-59
1, 3-612, 3-61
Shift One, 3-74
Shift One Right, 3-77
Lo~king Shift Three, 3-76
Locking Shift Three Right, 3-79
Locking Shift Two, 3-75
Locking Shift Two Right, 3-78
Locking 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?
Considerorganization, completeness, readability, and illustrations.

aformat,- -- -- -- -- -- -- -- -- -- 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 thispage through interoffice mail to:+-------------------------------+I
READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4I+-------------------------------+

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 andsoftware engineers designing programs using terminal interfaces. Additional requirements aredefined 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 goodreasons for non-compliance. "Guidelines" define approaches and techniquesthat 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 ArchitecturePeter 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.......

1
1
1

2 TERMINOLOGY

2

0

0

•

•

•

•

•

•

•

0

•

•

•

•

•

•

•

•

0

•

0

••

o

•••

0

•••

00'

•••

0....

•

••

••

••

•

•

•••••••

•

•

•

•

••

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•••••

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

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 ..
00Appendix 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
FIGURESI
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"()404-Oct-1990

TABLES
1

Registered Extensions to the Character Cell Display Service Class

Digital Internal Use Only19

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 Only1

04-Oct-1990

EL-00070·04

The interfaces defined within this document apply to both internal and external productinterfaces. 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\PhysicalTerminal

VirtualTerminal,<hardware>

,
,
,
,
,
,
\

Application
Process\<firmware>\<communications link>\

EXTERNAL INTERFACE<software>\

PhysicalTerminal

VirtualTerminal\

Application
Process\<hardware><software'
firmware>,\<software>\

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 implementthat level. Conformance levels are defined to provide interface compatibility with otherdevices at the same level. Selecting a particular conformance level automatically places theterminal 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 fromthe 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 theimplemented architectural conformance level and extensions.

Secondary Device Attributes Control - The control used to request or report theidentification code of the specific product in which the interface is implemented.
Tertiary Device Attributes Control - The control used to request the identification codeof 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 thepresentation of data.
3

STATE DESCRIPTIONS

The algorithms in this standard provide a description of terminal state and how it isaffected by various functions. They have been compiled for accuracy, but have not beenformally 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 thearchitectural level to which the device conformsb.
c.

The architectural extensions that the device implements
A product specific code registered by the architectured.

A revision level code, indicating the release level of the communicating firmware orsoftware implementing the terminal management functionse.

A list, defined by each product implementation, of product specific options installed in
the device at the time the identification request is receivedf.

For Level 4 and higher devices, a unique serial number to identify the specific unit

Digital Internal Use Only3

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* Level 1 through Level 4

1-Feb-1990*/
Ide fine ONE THIRTY TWO COLUMN'define PRINTER PORT 'define REGIS GRAPHICS
Ide fine SIXEL GRAPHICS'define KATAKANA EXT'define SELECTIvE ERASE'define ORCS EXT'define UDK EXT
Ide fine NRCS EXT
Ide fine KANJI EXT'define STATUS DISPLAY EXT'define SERBO CROATION'define BLOCK MODE
Ide fine EIGHT-BIT IA
Idefine TCS
Ide fine LOCATOR_PORT
Ide fine TSI'define WINDOWING'define MULTIPLE SESSIONS'define APL
Ide fine HORIZONTAL SCROLL'define COLOR TEXT'define GREEK'define TURKISH'define ARABIC BILINGUAL M1
Idefine ARAB IC-BILINGUAL-M2
Idefine ARABIC BILINGUAL M3
Idefine RECTANGULAR EDITING
Ide fine TEXT LOCATOR
Ide fine 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 */Idefine TEXT MACROS
32
33
Idefine HANGUL HANJA
Ide fine ICELANDIC
34
Idefine ARABIC_BILINGUAL_TC
35
36'define ARABIC BILINGUAL NOTC
Ide fine THAI 37
38'define 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. Typedeclarations in C do not allocate any storage. All these types can be defined regardless ofthe 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 PortSESSIONS_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 Only5

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
8Digital Internal Use Only

04-0ct-1990

EL·OOO70·04#define ITALIAN#define SWISS FRENCH#define SWISS GERMAN#define SWEDISH#define NORWEGIAN#define BELGIAN FRENCH#define SPANISH#define PORTUGUESE#define CANADIAN ENGLISH#define 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 Only1

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 ****************/

8momoulo'"

Digital Internal Use Only

EL-00070-04

04-0ct-1990

The following example illustrates storage declarations for the terminal state. Only thosestate 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];

--*/

-

-

-

-

ext long int terminal unit id;/* Level 4, VT420 example */ext device status t deVice-status;
ext transmIt rate-limit mode t transmit rate limit mode;
ext boolean_t pow;r_up_detected_flag; - /* Level 4" */ext boolean t error detected flag; ,/* Level 4 */ext vt_confIguration_t vt_configuration; /* session mgmt ext */ext control representation mode tcontrol representation mode;/* Set-Up */ext boolean_t lIne_local_mode;/* Set-Up *//** Code Extension Layer*/
ext struct parse_stack comm_state;/* ANSI parser state */ext graphic character set t
designated graphic sets[4];ext in use table t
in use table;
ext single-shift-t
Single-shift;
ext in control string t
in control string;
ext graphic character-set t
upS's;/* Level 3 or 8-bit IA */ext character set mode t character_set_mode;
ext character set mode t
ext environment thost-port_environment,
cl_transmission_mode;
tinclude "char_cell_extern.h"

mlllumr/* character cell display */Digital Internal Use Only9

04·0ct·1990

EL·00070-04

1** keyboard processing*1
ext keyboard action mode t
keyboard action mode;
ext auto_repeat_mode_t auto_repeat_mode;
ext cursor key mode t
cursor_key_mode;
ext keypad-mode t keypad_mode;
ext keyboa;d us;ge mode t
keyboard usage mode;
1* Level 3 *1
ext caps shift lock mode t
caps_shift_lock_mode;
ext hold-screen mode t hold screen mode;
ext lock-mode tlock-mode; ext keyclick ;ode t
keyclick mode;
ext send receive ;ode t
send receive mode;
ext send-receive-mode-t
r send recei;e mode;
ext back;rrow_key_mode_tb;ckar;ow_key_;ode;
1* Level 3 *1
ext local key mode t
1* Level 4 *1
c;mpose_key_mode,
alt key mode,
Fl key,F2-key,
F3:key,F4 key;ext F5 key-mode t
F5 key mode;
1* Level 4 *1
ext keyboa;d en~oding mode t k;ybo~rd encoding mode; 1* Level 4 *1
ext keyboard-dialect t- keyboard dialect; 1* NRCS *1
ext graphic_~haracte;_set_t nrcs_list[MAX_NUM_DIALECTS];I* NRCS *1

1** printer port extension*1
ext printer_controller_mode_t
ext auto-print_mode_t
ext print form feed mode t
ext print-extent mode t ext printer to h;st m;de't
ext printer:assignment_text environment t
ext 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 tgraphics_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.h1**************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 orderto replace others if identical *1
ext character t
display[MAX NUM LINES] [MAX NUM COLUMNS];
line renditIon[MAx NUM LINES];ext line rendItion t
acti~e-position; ext char;cter-position_t
ext line t
top margin;
ext line-tbottom margin;left m;rgin;
1* Horiz scroll ext *1
ext column t
ext column tright margin;
1* Horiz scroll ext *1
last ;olumn flag;
ext boolean t
acti~e display; 1* L3 or Status Dsply*1
ext active display t
status-display; 1* L3 or Status Dsply*1
ext status:display:tchar s;t table[MAX NUM CHAR SETS];
ext char set designator t
ext save-buffer t
cursor s;ve buffer;
ext char;cter r;ndition t
current rendition;
ext character-attribute-t current-attribute; 1* Selective Erase*1- horizontal tab stops [MAX NUM COLUMNS];
ext boolean tcolumn mod;; 1* 132-Column Ext *1
ext column mode t
ext lines-per-page_tlines~er-Fage;
1* Windowing *1
ext columns-per-page_t
columns-Fer-Fage; 1* Windowing *1
number_of-Fages; 1* Windowing *1
ext number_of-pages_t
scrolling_mode;
ext scrolling mode t
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 ~ursor enable mode;
ext insert repl;ce mod; t Insert r;placem;nt mod;;ext new line mode t
new_line_mode;
ext 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 Only11

04-0ct-1990

EL-00070-04

3.3 STATUS AND TEST

Upon request, a conforming device shall provide at the terminal interface a means ofreturning 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 meansat 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 terminalinterface of returning the status of a data integrity flag. Status information returned shallbe in the form of a Device Status Report (DSR) (see subhead 5 Device Status Report) andconsist 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 INITIALIZATIONOn power up, all state information (state) in the terminal shall be set to a known value, orvalue previously selected by the user and stored through non-volatile means. This state isreferred 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 relyon 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 islimited to the following:

Digital Internal Use Only

EL-00070-04

04-0ct-1990

conformance level
host-port_environment
vt configuration
cl-transmission modetransmit rate limit modecharacter set-mode
upsscolumns-per-pagelines-per-pagenumber_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 couplinghorizontal 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 Only13

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();/* actual hardware as needed */comm init () ;/* communications layer *//* features that are not host setable */setup init();host state init();/* all host setable state */} 7* end-procedure 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 tx;
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]14mBDIO'"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* NVM *1
1* NVM *1};

parse init(comm state); 1* initialize ANSI parser *1
single shift = NO SINGLE SHIFT;
in_control_string-= NOT_IN_CONTROL_STRING;

1* NVM *1
1* character cell display *1for (y=l; y<MAX_NUM_LINES; y++){for (x=l; x<MAX_NUM_COLUMNS; x++){display[y] [xl • code = EMPTY_CHARACTER;}

line_rendition[y]}column mode = EIGHTY;
1* NVM *1
scrolling mode = SLOW;
1* NVM *1
screen mode = NORMAL SCREEN;
1* NVM *1
origin=mode = ABSOLUTE:
auto_wrap_mode = WRAP_OFF:
1* NVM *1
text cursor enable mode = TEXT CURSOR ON;
1* NVM *1
insert replacement-mode = REPLACE;
1* NVM *1
new line mode = NEW LINE OFF:
1* NVM *1
active display = MAIN DISPLAY;
status-display = NO STATUS DISPLAY;
1* NVM *1
horizontal_cursor_c;upling-= UNCOUPLED;
1* NVM *1
vertical_cursor_coupling = COUPLED:
1* NVM *1
page cursor coupling = COUPLED;
1* NVM *1
left-right ;argins mode
FIXED;
attribute change extent = STREAM;
lines-per:page =-24;
1* NVM *1
number_of-pages = MAX_NUM_LINES/lines-per-page:
active-position.line = 1:
active-position.column = 1:
active-page = 1;
top_margin = 1:
bottom_margin = lines-per-page;left margin = 1;
1* if Windowing Extension,columns-per-page in NVM will override column mode *1
if (column_mode == EIGHTY) columns-per-page = 80; 1* NVM *1else columns-per-page = 132;
right_margin = columns-per-page:

Digital Internal Use Only15

04-0ct-1990

EL-00070-04

FALSE;
current rendition.bold
current-rendition.blink
FALSE;
current-rendition. underscore
FALSE;
current-rendition. reverse
FALSE;
current=attribute.selective_erase = FALSE;
horizontal tab stops[l] = FALSE;
for (x=2; x<MAX_NUM_COLUMNS; x++)1* NVM *1{

if (x%8 == 1) horizontal tab stops[x]else horizontal_tab_stop;[x]-= FALSE;

TRUE;

}

save cursor();
macr;_init();

1* initialize cursor save buffer *1/* initialize text macros (Level 4) *//* keyboard processing */keyboard_act ion_mode = UNLOCKED;
auto repeat mode = REPEAT ON;
curs;r key;ode = CURSOR;keypad-mode = NUMERIC;
keyboard usage mode = TYPEWRITER;
caps shift lock mode = CAPS LOCK;
hold-scree~ mode = HOLD OFF;lock-mode =-LOCK OFF; keyclick mode = KEYCLICK ON;
send receive mode = ECHO-OFF;backarrow_key_mode
DELETE;
compose key mode = LOCAL;
alt_key=mode = REPORT;
F1_keyLOCAL;
F2_key = LOCAL;
F3 key = LOCAL;
F4=key = LOCAL;
F5 key mode = LOCAL F5;
keyboard_encoding_mode = CHARACTER;/* NVM *//* NVM *1

1* NVM *//* NVM *//* NVM *1/* NVM *//* NVM *1/* NVM */1* NVM */1* NVM *//* NVM *//* NVM *1/* NVM *//* NVM *1==/* printer port */printer-port_environment = EIGHT_BIT;
printer controller mode =PRINTER CONTROLLER OFF;
auto-print_mode = AUTO_PRINT_OFF;
print form feed mode = PRINT FF OFF;printer to-host-mode = NO PRINTER TO HOST;
print extent mode = PRINT-DISPLAY; printer_assignment = SHARED;/* NVM *1/* NVM *1/* NVM *//* NVM *//* NVM *//* NVM */1* initialize other extensions *1graphics cursor enable mode
GRAPHICS CURSOR ON; /* NVM *1
udkinit();/*-NVM*/
drc;_init () ;/* terminal management */device_status = READY;};

1* end procedure host state init *1

Digital Internal Use Only

EL-00070-04

04-0ct-1990

5 CONTROL FUNCTIONSDADEVICE ATTRIBUTES (Primary)Levels: lx, 2, 3, 4
Purpose: Request or report the device attributes.
Request Format:
CSI
9/11

Ps
Ps

default Ps: 0c

6/3

Response Format:
CSI
9/11

?

3/15

Ps
Ps

c

6/3

Description: Use the primary Device Attributes (DA) control to request or report theimplemented architectural conformance level and extensions. An omitted parameter ora parameter value of zero (0) indicates a request for identification. The response to theprimary DA request consists of request for a DA control sequence using a private parameter
string with the introducer 3/15 (?) followed by a variable number of parameters.
The first parameter in the string indicates the basic service class of the device and thearchitectural level to which the device conforms. The rest of the parameters indicate thearchitectural extensions supported at the current operating level.

NOTE
Exceptions to the architecture that are documented as appendices to thesestandards are not reported in the primary DA response.

The value of the first parameter is encoded so that a simple range check can be performed
to determine the basic service class and level of the device. Each service class is designateda range of decimal values from 1 to 9. For example, Character Cell Display devices are in
the range 61 to 69. The architectural level to which the device conforms is indicated by the
low order digit. Thus, a response with a first parameter of 61 indicates that the device
conforms to Level 1 of the Character Cell Display architecture. Higher levels, by definition,
support the functionality of lower levels of the same service class.
Therefore, if a device code of 63 is returned, the device may be supported as a Levell,
Level 2, or Level 3 Character Cell Display device. This does not mean higher conformancelevels are strict supersets of lower conformance levels, but that a device that supports ahigher conformance level must support the lower levels as well (using DECSCL).
In general, higher conformance levels are supersets of lower levels, but specificcontrol functions can be interpreted differently to accommodate evolving requirements.
Conforming software shall select a known conformance level to guarantee compatibility.
See the description of Select Conformance Level (DECSCL) in this document for further
information.

Digital Internal Use Only17

04-Oct·1990

EL·00070-04

Note that the device code in the response represents the highest level that the device
can support, and does not indicate the level at which the device is currently operating.
For example, a Level 3 conforming device operating at Level 2, as selected by the SelectConformance Level control function, would still respond with a device code of 63.
Table 1 lists extensions to the character cell display service class registered within Digitalthat may be transmitted by a device in response to an appropriate request. Levels 1 - 4(DA parameters 61 - 64) have been defined for the character cell display service class.

18

mOlalla"Digital Internal Use Only

04·0ct·1990

EL-00070-04

Table 1: Registered Extensions to tlie Character Cell Display Service Class
Extension
Parameter

LevelsExtension Name

1-4

132 Column Display

2
3

1-4

Printer Port

1-4

ReGIS Display

4

1-4

Sixels Display

5
6
7

1-3

Katakana

2-4

Selectively Erasable Characters

2-4

Dynamically Redefinable Character Sets

8

2-4

User Defined Keys9

1-4

National Replacement Character Sets

10

1-3

Kanji

11

2

Status Display

12

1-3

Serbo-Croation

13

1•3

Block Mode1428-bit Interface Architecture

15

2-4

Technical Character Set

16

1-4

Locator Port

17

2

Terminal State Interrogation

18

2-4

Windowing

19

2-4

Multiple Sessions (TD/SMP)

20

1-4

APL

21

2-4

Horizontal Scrolling

22

2-4

Color Text

23

1 -3

Greek

24

1 ·3

Turkish

25
26

2,3

Arabic Bilingual Mode 1

2,3

Arabic Bilingual Mode 2

27

2,3

Arabic Bilingual Mode 3

28

2,3

Rectangular Editing

29

2-4

Text Locator

30

2,3

Hanzi

32

2-4

Text Macros

33

2,3

Hangul and Hanja

34

2,3

Icelandic

35

2,3

Arabic Bilingual with Text Controls

36

2,3

Arabic Bilingual with no Text Controls

37

2,3

Thai

38

2, 3

Character Outlining

31

Digital Internal Use Only19

04·0ct·1990

El·00070·04

Implicit Extensions
Implicit Extensions are features originally defined at a higher conformance level that still
operate when a lower conformance level is selected and are not required to be explicitly
reported. The "8-bit Interface Architecture" extension, for example, was originally definedin Level 3 and as an extension to Level 2. A Level 3 device operating at Level 2 need notdisable the 8-bit Interface Architecture Extension, nor report it explicitly as a parameterin the DA response. Level 3 or higher defines 8-bit Interface Architecture to be an implicit
extension to Level 2.
Each conformance level may define a set of implicit extensions at lower levels. Higher
conformance levels must support all the implicit extensions defined by lower levels.
Implicit extensions must only be allowed if they are fully backward compatible with thelower conformance level.
Software can determine whether an implicit extension is present by seeing if the reported
conformance level is greater than or equal to the conformance level at which the feature
was originally defined.
If a higher conformance level subsumes extensions previously reported at a lower level,

these extensions shall be reported at the lower level so that existing software can determine
if the extension is present.

Defining implicit extensions allows features defined by a higher conformance level tooperate at a lower conformance level if they are consistent with that level.
level Reported

Operating Level

Implicit Extension

2 or higher

1

DECSCL

3 or higher

2

11 Status Display

2

14 8-bit Interlace Architecture

2

17 Terminal State Interrogation

1-3

DECSR

4 or higher

State Affected: None20

mD!DD!U"Digital Internal Use Only

04-0ct-1990

EL-00070-04

Algorithm:
void devioe attributes 1()(
int n;
send_ohar(Ox9B, host-port);
send_strinq("?64", host-port);
if (oonformanoe level == LEVEL 1)
for (n=l; n<NUMBER OF EXTENSIONS; n++)if (level_1_extensions[n] -- TRUE)-(

send_ohar(';', host-port);
send_int(n, host-port);};

if (oonformanoe level == LEVEL 2)
for (n=l; n<NUMBER OF EXTENSIONS; n++)if (level 2 extensions[n] == TRUE)(
send_ohar(';', host-port);
send_int(n, host-port};--};

if (oonformanoe level == LEVEL 3)
for (n-1; n<NUMBER OF EXTENSIONS; n++)if (level_3_extensions[n]
TRUE)

==

(

send_ohar(';', host-port);
send_int(n, host-port);};
if (oonformanoe level =- LEVEL 4)
for (n=l; n<NUMBER OF EXTENSIONS; n++)if (level 4 extensions[n] == TRUE)(
send_ohar(';', host-port);
send_int(n, host-port);--};
send_ohar('o', host-port);};

Known Deviations:
Terminals designed before this architecture was developed do not conform. to the above
encoding scheme. They will, however, respond to the Device Attributes request by
returning a DA control with a variable length parameter string. The first parameter ofthis parameter string is a device-specific code in the range 1 to 59. Thus, these devices
are easily distinguished from those that implement the architectural response, whose firstparameter is always 60 or greater.
Some terminals provide an alias ID (identification) capability, selectable under local control,

to emulate the DA response of older terminals. The factory default will always be torespond with the correct identification code for the family of devices in which the interface
is implemented.
The Greek and Turkish special versions of the VT200 and VT300 series use extension
parameters 10 and 11 instead of the registered parameter values 23 and 24, respectively.

Digital Internal Use Only21

EL-00070..Q4

04-Oct-1990

SELECT CONFORMANCE LEVELDECSCL

Purpose: Select a particular level of operation for interface compatibility.
Levels: lx, 2, 3, 4
Format:
CSI
9/11

Ps
Ps

;

Ps
Ps

"

2/2

P
7/0

Description: The Select Conformance Level (DECSCL) control selects a terminal
operating mode that provides interface compatibility defined by a conformance level of thearchitecture. The operations and state information available in each level are fully definedin the architectural specifications. The first parameter selects the conformance level ofoperation. The optional second parameter applies only to Level 2 (it will be ignored in Level
1 operation). The second parameter may be used to select the C1 control transmission for
7·bit or 8-bit controls, in accordance with the following table:o - default (8-bit Cl oontrols)
1 - 7-bit Cl oontrols
2 - 8-bit Cl oontrols

NOTES
1.

The DECSCL control function is required only in Level 2. However, in Level 2(and higher) conforming devices, the DECSCL control must also be executed
when the device is in Level 1 operation. This is an exception to the normal
rule that Level 2 functions only work in Level 2 operation, and is necessary toenable switching between levels. DECSCL is an Implicit Extension to Levell.

2.

At the present time, four conformance levels are defined by the TerminalInterface Architecture (TIA):
61 • Levell Character Cell Display Terminals
62 • Level 2 Character Cell Display Terminals
63 • Level 3 Character Cell Display Te~nals
64 • Level 4 Character Cell Display Terminals
Software should be designed to anticipate future higher-numbered levels thatwill be supersets of Level 1·4.

3.

Selecting a particular conformance level also causes a "soft reset" of theterminal to be performed. This automatically places the terminal into a known
state, without affecting the data contained in the display. See Soft Terminal
Reset, DECSTR, for more information.

4.

Attempts to select conformance levels that are unsupported by the device willbe ignored.

State Affected:
conformance_levelc1_transmission_mode
Algorithm:
22

malaDIO'"

Digital Internal Use Only

04-0ct-1990

EL-00070-04

void select conformance level(service class, c1_mode)
int ser;ice class; int c1_mode;switch (service_class){case 61:
conformance level
break;
case 62:
conformance level
break;
case 63:
conformance level
break;
case 64:
conformance level
break;
default: return;

LEVEL_1:

LEVEL_4;};

soft terminal reset();switch (c1_mode){case 0:case 2:c1 transmission mode
break;
case 1:c1 transmission mode = SEVEN_BIT;};};/* end procedure select conformance_level() */Known Deviations: None

Digital Internal Use Only23

EL-00070-04

04-0ct-1990

DEVICE ATTRIBUTES (Secondary)

DA2

Levels: lX, 2, 3, 4
Purpose: Request or report the device identification.
Request Format:
CSI
9/11

>
3/14

Fa
Fa

Default Fa: 0c

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 specificproduct 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 aparameter 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 andused 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 additionalparameter values will be product dependent, however, these values shall be registered withthe 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<NUMBER_OF_OPTIONS; n++)-{if (product_options[n]== TRUE){

send_char(';', host-port);
send_int(n, host-port);
}

};

--*/
send_char('c', host-port);};/* end procedure device_attributes_2() */Known Deviations:
Terminals designed before the Terminal Interface Architecture (TIA) was developed do not
implement this control. Terminals that return a first parameter value less than 60 to theprimary Device Attributes (DA) will ignore the secondary Device Attributes (DA2) control.

Digital Internal Use Only25

EL-00070.()404-Oct-1990

DA3
DECRPTUIDEVICE ATTRIBUTES (Tertiary)
REPORT TERMINAL UNIT 10

Level: 4
Purpose: Request terminal unit identification.
Request Format:
eSI
9/11

-

c
6/3

3 /13

Description: The Tertiary Device Attributes Request (DA3) causes the terminal to report
its unique terminal unit ID to the host using the DECRPTUI (Report Terminal Unit ID)
sequence. The terminal unit ID consists of a string of up to 31 displayable characters thatare factory set to a unique value for the specific product (DA2 registration) in which theinterface is implemented.
Individual products may further restrict the length or format of the terminal unit ID aslong as the identifier continues to provide a unique ID within that specific product. The
format of the Terminal Unit ID shall be registered with the architecture.
Report Terminal Unit ID
Format:
Des
9/0

!
2/1

I

D.

7/12

?/?

• .D

ST
9/12

Implementation Guideline
The VT420 terminal unit ID consists of a 32-bit number reported as four hex pairs. The
first hex pair (8 bits) contains the manufacturing site code, and the remaining three hex
pairs (24 bits) contain a serial number for that site. The site code and serial number. together provide a unique ID for each VT420. See DEC STD 138-0 for a listing of
manufacturing site codes.
The terminal unit ID is factory set and does not change unless the terminal's internal
circuitry is repaired or replaced. In the VT420, the unit ID is maintained in Non-Volatile
Memory (NVM) and can be rewritten in the event of NVM failure using the DECSTUI (Set
Terminal Unit ID) sequence. This sequence is only recognized when the NVM checksum isinvalid, or when an internal jumper on the main board is set.
Set Terminal Unit ID (DECSTUI) Format:
Des
9/0

2/1

{

O••• 0

7/11

1/1

ST
9/12

State Affected: None

26

mmDDla"Digital Internal Use Only

04-0ct-1990

EL-00070-04

Algorithm:
void device attributes 3()/* VT420 example */(int n;
send_char (Ox90, host-port);/* DCS */send_string (It! I It, host-port );n = (terminal_unit_id » 24) & OxFF;
send_hex(n, host-port);n = (terminal_unit_id » 16) & OxFF;
send_hex(n, host-port);n = (terminal_unit_id»8) & OxFF;
send_hex(n, host-port);n = terminal_unit_id & OxFF;
send_hex(n, host-port);
send_char (Ox9C, host-port);/* ST */}/* end procedure device_attributes_3() */Known Deviations: None

Digital Internal Use Only27

EL-0007()'04

04-Oct-1990

IDENnFY TERMINAL

DEClO

Levels: 1.2
Purpose: Request the device identification code.
Format:
ESC
1/11

Z

5/10

Description: The DECID control requests that the terminal report the implemented
architectural conformance level and extensions. The device responds by transmitting anappropriate primary Device Attributes (DA) response.
NOTES
a.

This control is identical to a primary DA control with an omitted parameter ora parameter value of zero (0). THIS CONTROL IS RESERVED FOR FUTURE
STANDARDIZATION BY ISO AND ANSI. Conforming software shall use theprimary Device Attributes (DA) control for purposes of device identification.

b.

DECm is not recognized at Level 3 or above.

c.

Terminals that implement the VT52 emulation hardware option responddifferently to this control when in VT52 mode. See Video Systems Reference
Manual - VT52 Emulation for more information.
.

State Affected: None
Algorithm:/** DEClO

ESC Z* Ignored above Level 2* execution is same as primary DA*/
void id(){if(conformance level -- LEVEL 1) I I(conformance-level -- LEVEL-2) )device_attributes_l();-};

Known Deviations:
The VT300 family and VT420 do not have a fully independent VT200 mode, and ignore
DECID when set to conformance Level 2.
See additional deviations under Device Attributes (Primary).

Digital Internal Use Only

EL-00070-04

04-0ct-1990

SECURE RESETSECURE RESET CONFIRMATIONDECSRDECSRC

Levels: 4
Purpose: To ensure that the terminal is in a known state so that data sent to the terminal
is displayed as expected, and keystrokes from the terminal transmit as expected, and toerase any host-write able data in the terminal.

Format:
CSI
9/11

Pn
3/7

+

P

2/11

7/0

Description: Secure Reset initializes the terminal to its Power-Up state and erases all
host setable state information and data. If a non-zero numeric parameter in the range 1
to 16383 is provided, the device responds with a Secure Reset Confirmation (DECSRC)
control function with the same parameter upon successful completion. If Pn is omitted orzero, no response is generated. If Pn exceeds 16383, the entire sequence shall be ignored.
Secure Reset Confirmation

Format:
CSI
9/11

Pn

3/?

*

2/10

q

7/1

NOTES
1.

DECSR is recognized at all conformance levels (Level 1 or higher).

2.

DECSR is recognized in Control Representation Mode (Display Controls Mode,
CRM set) and causes the device to exit this mode. This is desirable because
CRM is enabled under local control in video terminals and there is no otherway to clear it from the host. If the terminal is in Display Controls Mode,
DECSR shall be displayed before it is executed.

3.

DECSR is not recognized in VT52 Mode (DECANM reset), or Tektronix
4010/4014 Emulation Mode (DECTEK). Host software must explicitly exit thesemodes. This is necessary because these modes do not use ANSI compatible
syntaxes.

4.

DECSR is not recognized (intercepted) in Printer Controller Mode (see Media
Copy - MC). Host software must explicitly exit this mode. Secure Reset may besent to an attached printer in Printer Controller Mode.

5.

DECSR is buffered in the same way as other incoming data.

6.

In a multiple-session device, DECSR only affects the session that receives thecontrol function. At the time of this update to the standard, secure connections
are only supported in single-session devices. Reconfiguring the device from asingle-session to multiple-sessions causes a BREAK to be generated to alert
host software.

Digital Internal Use Only29

04·0ct-1990

EL·00070·04

7.

Secure Reset need not erase data maintained in Non-Volatile Memory (NVM)
as long as such data cannot be written from the host. If values for some state
information can be stored under host control in NVM, then DECSR should
erase this NVM (not mandatory).

8.

DECSTUI, which sets the terminal unit ID, is an exception to the previous
note since it is only recognized if the NVM checksum is invalid, or an internal
jumper has been installed. In normal operation, the terminal unit ID cannot
be written from the host.

State Affected:
Secure Reset affects all host setable state similar to power-up initialization. See subhead
4, DEVICE INITIALIZATION.
The following state information is also explicitly reset:
UDKs
The UDKs are erased to be empty, or restored to the value saved in NVM if such NVM
is present and not writable from the host. The UDK definitions are re-initialized even
if the "UDKs Locked" state is in effect.
DRCS
Macro Definitions
clears the keyboard input silo
erases all local buffers that might contain data from host (such as paste_buffer,capture_buffer, etc... )Secure Reset does not affect host port receive buffers, nor session management state (ifpresent).
Algorithm:
void secure_reset(param}
int param;if (param <= 16383)

1* Ox3FFF *1{

1* exit CRM *1
control_representation_mode = INTERPRET_CONTROLS;
1* initialize all host setable state
host_state_init();clear_udkO;*1

1* report reset was successful if non-zero parameter *1
if (param != O){

send_char (Ox9B, host-port);
send_int(param, host-port);
send_string ("*q", host""'port);
};
};

};

1* end procedure secure_reset() *1

Known Deviations: None

Digital Internal Use Only

04-0ct-1990

EL-00070-04

DECSTR

SOFT TERMINAL RESET

Levels: 2, 3, 4
Purpose: Reset soft terminal state to the default values.
Format:
CSI
9/11

P

2/1

7/0

Description: The DECSTR control sets the modes available to user application programs
to known values. User Preference Features are not affected. DECSTR is intended for
application use, whereas User Preference Feature control functions are intended forterminal management use. When the DECSTR control is received, the following state
information in the terminal shall be reset as indicated below. This list defines the Soft
Terminal Reset state.
State

Default

Top Margin
Bottom Margin

number of lines on page

Left Margin

1

Right Margin

80 (or 132 if column mode is set)

Current Rendition

normalCurrent Attributes

not selective erasable

In Use Table (gl, gr)

set to current level defaults

Designated Sets

set to current level defaults

Cursor Save Buffer

set to current level defaults

Insert/Replacement Mode

reset (Replace)

Origin Mode

reset (Absolute)

Auto Wrap Mode

Auto Wrap Off (NVM if present)

Character Set Mode

8-bit Multinational (ignore NVM)

Cursor On/Offon (ignore NVM)

Active Display

Main Display (status display is exited)UPSS

DEC Supplemental (NVM if present)

Cursor Key Mode

reset (Cursor)

Keyboard Action Mode

reset (Unlocked)

Keypad Mode

reset (Numeric)Keyboard Encoding Modecharacter

The following User Preference Features are NOT affected by the soft reset.
Column Mode
Scroll Mode
Screen Mode
Auto Repeat Mode
CapS/Shift Lock ModeTab stops
Key click
Digital Internal Use Only31

04-0ct·1990

EL·00070-G4

The following are also NOT affected by the soft reset.
The data in the display
New Line ModeLine Attributes
Printer Controller Mode
Auto Print Mode
Compose ModeCl Transmission Mode
Conformance Level
DRCS
UDK
Macro Definitions
NOTES
a.

Numeric is the delault state for Keypad Mode. It is the power-up default state
for the terminal It is preferred that operating systems perform translationof keypad codes for applications software at the time data is passed tothe application. This allows applications to clear the type-ahead buffer toensure synchronization when changing keypad mode. Operating systems
implementing this strategy should set Keypad Mode to Application after
performing the soft reset and do the required translation.

b.

The DECSTR control is ignored when operating at Levelland by Level 1
devices.

c.

DECSTR has no affect on the Active Position.

d.

When the terminal is in Printer Controller Mode, the DECSTR control is not
executed by the terminal, but is transmitted instead to the printer port. Thus,
DECSTR does not reset the terminal state unless Printer Controller Mode is
explicitly reset before DECSTR is transmitted.

e.

DECSTR is interpreted differently in printing devices to achieve thecorresponding concept of resetting the device to known application state
while preserving the data cUJ.Tently on the display (previously printed, or
buffered in the printer).

Digital Internal Use Only

04·0ct·1990

EL·00070·04

State Affected:
See subhead 4, DEVICE INITIALIZATION for type declarations.
/* VT420 example *//* code extension layer state */graphic_character_set_t designated graphic sets[4];in_use_table;
in use table t
character set mode;/* NRCS */character set mode t- /* L3 or a-bit IA */graphic_character_set_t upss/* character cell display state */line t
top margin;
line-tbottom margin;
column tleft margin;/* Horizontal Scroll */column t
right margin; /* Horizontal Scroll */left right margins mode tl;ft right margins mode; /* H Scroll */
acti;e display t active display; /* L3-or status display */save buffer t cursor-save buffer;character rendition t
current rendition;
character-attribute-t current=attribute; /* Selective Erase */origin mode t
origin mode;
auto_wrap_mode_t
auto_wrap_mode;
text cursor enable mode ttext cursor enable mode;
insert replace mode t Insert_replacement_mode;
new line mode t
new_Iine_mode;/* keyboard processing state */keyboard action mode t
keyboard action mode;cursor key mode-t
cursor_key_mode;
keypad-mode t
keypad mode;
keyboard_encoding_mode_t keyboard_encoding_mode;/* L4 */

Digital Internal Use Only33

EL-00070-o4

Algorithm:
void soft_ter.minal_reset(){if (confor.mance level != LEVEL_1){/* Code Extension */upss - DEC SUPPLEMENTAL G;/* NVM */in use table.cO = ASCII-C;
in-use-table.gl = ASCII-G;
in-use-table.invoked gl-. GO;
in-use-table.c1 = SUPPLEMENTAL C;
in-use-table.gr" upss;
in-use-table.invoked gr - G2;de;ignated graphic sets[O] == ASCII_G;
designated-graphic-sets[l] == ASCII G;
designated:graphic:sets[2] == upss;
designated_graphic_sets[3] - upss;
character_set_mode
EIGHT_BIT_MULTINATIONAL; /* NVM */-=/* character cell display */origin mode .. ABSOLUTE;/* NVM */auto_wrap_mode == WRAP_OFF;/* NVM */text cursor enable mode - TEXT CURSOR ON;
insert replacement-mode == REPLACE;/* NVM *//* NVM */new line mode = NEW LINE OFF;actIve dIsplay - MAIN DISPLAY;
left rIght margins mode == FIXED;
top margin-- 1;/* NVM */bottom_margin = lines-per-page;left margin" 1;/* NVM */right_margin - columns-per-page;current rendition.bold
FALSE;
current-rendition.blink== FALSE;
current-rendition. underscore == FALSE;
current-rendition. reverse
FALSE;
current-attribute. selective erase = FALSE;
save cursor(); /* initialize cursor save buffer */cursor save buffer.position.line == 1;
cursor-save-buffer.position.column == 1;
cursor:save:buffer.position.page1;/* keyboard processing */keyboard action mode == UNLOCKED;
cursor key mode-= CURSOR;
keypad-mode = NUMERIC;
keyboard_encoding_mode = CHARACTER;/* NVM */};};/* end procedure soft_ter.minal_reset() */Known Deviations:
VT200s, VT300s, and the VT420 clear auto wrap (ignore NVM). DECterm Vl does notchange the current setting of auto wrap. This was necessary for ULTRIX systems that
depend on auto wrap being enabled when a new terminal is initialized.

Digital Internal Use Only

EL-00070-04

04-0ct-1990

DEVICE STATUS REPORTDSR

Levels: 1, 2, 3, 4
Purpose: To cause the terminal to report the current functional status.
Request Format:
CSI
9/11

Ps
Ps

n

Ps
Ps

n
6/14

6/14

Report Format:
CSI
9/11

Description: The DSR request, with selective parameter, causes the terminal to respondwith a corresponding DSR control using a parameter from the table to indicate its current
functional status.
Levels 1 - 4

5

request terminal status (command from host)odevice ready3

device not functional
Level 4

775
770
771
773

report status of data integrity flag (command from host)ok, no comm errors or power-up since last report
error, a comm error has been detected since last report
power-up. data integrity flag has not been reported since last power-up or RIS
Multiple Sessions Extension

785
781
783
787

report virtual terminal configuration (command from host)virtual terminals available through TD/SMP
not configured for virtual terminals
virtual terminals operating via physical lines

NOTES

1.

Some Device Status Reports (DSRs) are part of terminal management, whileothers pertain to presentation state or input processing. See DEC STD 070-5
Video Systems Reference Manual - Character Cell Display and DEC STD 070-7
Video Systems Reference Manual - Printer Port Extension for additional DSRs.
The report status of the data integrity flag DSR is intended for application use.

2.

On hardcopy devices DSR has often been processed asynchronously ahead ofother data in the input buffer (guideline).

Digital Internal Use Only35

EL·00070·043.

04-0ct-1990

TD/SMP is described in the 'Terminal Device/Session Management Protocol"

Version 1 Architecture Specification, 13-Feb-1986.

State Affected:
error detected flag/* if DSR with Ps
power:up_detected_flag?75 is requested */Algorithm:
void report device status(request, private)
int reqUest; boolean_t private;switch (request){

case 5:if (device_status== READY){

send_char (Ox9B, host-port);
send_string ("On", host-port);
}

else
(

send_char (Ox9B, host-port);
send_string ( "3n", host-port);}

break;
case 75:
if (private){if (!error_detected_flag && !power_up_detected_flag)(

send_char (Ox9B, host-port);
send_string ( "?70n", host-port);}

else if (power up detected flag){--

send_char (Ox9B, host-port);
send_string ("?73n", host-port);
power up detected flag = FALSE;

-

}

-

-

else
{

send_char (Ox9B, host-port);
send_string ("?71n", host-port);
error detected flag = FALSE;

-

};

-

};

break;
case 85:
if (private){

send_char (Ox9B, host-port);
if (vt configuration == SINGLE SESSION)
send_string ("?B3n", host-port);else
if (vt configuration == SESSIONS ON COMM)
send_string ("?Bln", host-port); else
send string("?87n", host-port);};-

break;}};

36/* end procedure report_device_status() */mamoolo"

Digital Internal Use Only

04·0ct·1990

EL·00070·04

Known Deviations:
The VT330 and VT340 terminals do not implement the Virtual Terminal Configuration
Device Status Reports.
The VT420 can report "?80 virtual terminals operating through TD/SMP", and include asecond parameter that indicates the number of sessions available (when the first parameteris ?80 or ?81). It was later agreed that protocol state information should be obtained
through the protocol handler, so this has not been standardized.

Digital Internal Use Only37

EL-00070-04

04-Oct-1990

6 CHANGE HISTORY
6.1

REVISION 0.0 TO 0.1

The following changes were made to accommodate integration of this specification with theVideo Systems Reference Manual:
1. The name of this section was changed from "Terminal Management Level 1" to"Terminal Management".
2.

All references to Level 1 operation only were removed, and explicit references to Level
1 and Level 2 operation were added for all functions.

3.

Some of the state names were changed to be consistent with the rest of the Video SRM.

4.

The sections on Warning Bell and Text Cursor Enable Mode were removed to thesection "Character Cell Display".

5.

All sections on printer functions were removed to the section "Printer Port Extension".

6.

The section on Hard Copy (DECHCP) was removed to the section "Sixel Graphics
Extension".

7.

Sections from the "Character Cell Display" section on Reset to Initial State and Device
Status Report were added to this section.

S.

New sections on Soft Terminal Reset and Answerback were also added to this section.

9.

The algorithm for Reset to Initial State was corrected.

10. The coding of the DECID sequence was corrected.
11. Coding of other controls (most of which were removed to other section) were also
corrected.
12. The coding of the Device Not Ready status response to Device Status Report wascorrected.
6.2

REVISION 0.1 TO AX10

1.

Removed statement that the revision level code in the secondary Device Attributes
response would be zero for unreleased products.

2.

Removed Answerback to an appendix. Answerback messages will not be required forconforming hardware.

3.

Added Selectively Erasable Character extension to the primary Device Attributes
response with parameter 6.

4.

Made code changes in the primary DA algorithm. Fixed a bug in the SelectConformance Level algorithm.

5.

Added note that DRCS and UDK state is cleared on Reset to Initial State in Level 2
terminals.

6.
7.
S.

Made changes in the tables of affected state in the Soft Terminal Reset function.
Removed DECTST (Test) from the SRM. It will not be a required function forconforming hardware. However, Device Status Report will be required.
Removed Control Representation Mode from RIS.

38

mDllalO"

Digital Internal Use Only

EL·00070·04

9.

04-0ct·1990

Clarified that the device code returned' by Primary Device Attributes will not change
when the operating level changes.

10. Made New Line Mode unaffected by Soft Terminal Reset.
11. Added 'a note to Select Conformance Level to indicate that it is a required function in
Level 2 only, but is active in Level 1 operation of Level 2 devices. Removed deviation
notes on VT100 family for this function.

12. Removed Reset To Initial State as a required function, and placed it in Appendix D
Documented Exceptions. It is not intended for use by conforming software. The RIS
algorithm is now included in this section under the heading "Device Initialization".
13. Made Primary Device Attributes, Select Conformance Level, and Secondary Device
Attributes a "temporal" extension to Level 1 (required in all future Level 1
implementations).
14. Added initialization of the character set table of designating escape sequences to theSoft Terminal Reset control.
15. Added setting of the Cursor Save Buffer values to the level defaults in Soft Terminal
Reset.
6.3

Rev AX10 to AX11

Added "9 - NRC" to the list of Level 2 extensions.
6.4

Rev AX11 to AX12

GENERAL:
1.

Removed Rev AX11 change bars. Added change bars to any change that could affectconformance or interpretation of the document or should be brought to the attention ofterminal implementors or software engineers.

2. Updated Reference Standards section to include latest standards and revisions.
3. Added paragraph to "Relationship to TIA" subsection explaining distinction between
functions intended for either application use, terminal management use, orcommunications use. Included entity functions are intended to be used by in individualfunction descriptions.
4.

Added note to definition of Device Status Report in terminology section to distinguish
DSRs used for Terminal Management versus others. Some Device Status Reports areproperly part of Terminal Management, while others pertain to presentation state or
input processing.

5.

Added definitions for "Factory Default State", "Power-Up State", and "Tertiary Device
Attributes" in terminology section.

6.
7.

Recoded all algorithms in VAX-11 C to match new Code Extension section.
Updated algorithms and state information throughout to include Level 3 and Level 4
Character Cell Display Service Class.

STATE DESCRIPTIONS:

Digital Internal Use Only39

04-Oct-1990

EL-00070-04

8.

Added note explaining the status of the algorithms at the beginning of the State
Descriptions subsection. Algorithms should be viewed the same as other text.

9.

Added "terminal unit ID" to device identification information available at Level 4.

10. Updated list of extensions.

1NlTIALIZATION:
11. Updated list of features that may be initialized from NVM to include VT300 and
VT400 capabilities. Removed ''keypad_mode'' to reflect actual implementation in the
VT1001VT2001VT300. Keypad mode is not stored in NVM.
12. Combined Control String extensions as a single enumerated type since it is not possible
to be in more than one control string at a time.
13. Added character_set_mode for NRCS extension.
14. Included parser initialization from Code Extension section.
15. Added data integrity flags as defined for VT400.
16. Added virtual terminal configuration (vt_configuration) as used in VT420 to control
multiple sessions.
17. Added page number, lines_per-page, columns_per_page, and cursor coupling to support
Wmdowing Extension as implemented by VT330,VT340, and VT420.
18. Added state information for horizontal scrolling: left_margin, right_margin, left_right_
margin_mode.
19. Added area extent mode (stream versus rectangular) for rectangular area operations.
20. Added state for selecting status display type and active display.
21. Expanded keyboard state to include: keyboard_us age_mode, send_receive_mode,
backarrow_key_mode, .compose_key_mode, alt_key_mode, keyboard_encoding_mode(character versus position), and local controls for F1-F5.
22. Added printer_to_host per VT240, and printer_assignment for multiple sessions.
23. Added code to initialize set-up features that are not setable from the host but that
affect the description of other functions.
.

CONTROL FUNCTIONS:
24. Clarified that higher conformance levels do not have to be strict supersets of lower
levels, and that conforming software must select a known conformance level.
25. Clarified in the text that the primary DA reports extensions supported at the current
operating level. If higher conformance levels subsume extensions previously reported
at lower levels, these extensions must still be reported at the lower level to ensure
existing software can recognize them.
26. Added concept of "Implicit Extensions" so software can recognize features defined at
a higher conformance level which are not disabled at lower levels. Listed implicit
extensions created by Level 2 and Level 3. Removed note that DECSCL was the only
exception to rule that features defined at higher levels must be disabled at lower levels.

Digital Internal Use Only

04-0ct-1990

EL-00070-04

Implicit extensions ensure software can still recognize which features are present, andcorresponds to actual VT200 and VT300 implementations.
27. Noted that DECID (ESC Z) is not recognized at Level 3 or higher.
28. Added description of Secure Reset function.
29. Updated DECSTR (Soft Terminal Reset) to reflect newer implementations as follows:
Bottom margin is set to number of lines on page; left and right margins are reset; auto
wrap mode is recalled from NVR; current attribute is set to not selective erasable; 8-bit
multinational characters are selected; the main display is selected (status display isexited); the User Preference Supplemental Set (UPSS) is recalled from NVM; keyboard
encoding mode is reset to character (VT420); Added macro definitions to list of state
not affected (VT420).
30. Added Device Status Reports for data integrity and Virtual Terminal State (VT42 0).
Noted that other DSRs are not part of terminal management.
31. Added note that DSR has been processed asynchronously ahead of other data in the
input buffer on hardcopy devices (guideline).

Digital Internal Use Only41

04-001-1990

EL-00070-o4

42

mamBalltv

Digital Internal Use Only

04-0ct-1990

EL-00070-04

APPENDIX
A.1

A

REFERENCED DOCUMENTS

EL-Class Digital Documents

EL-Class Number

Document litle

EL-00070-05

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

EL-00070-07

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

EL-00070-OA

Video Systems Reference Manual - VT52 Emulation

EL-00070-0D

Video Systems Reference Manual - Documented Exceptions

EL-00138-00

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

Use VTX SMC to order copies ofEL-class documents from Standards and Methods Control.
Send distribution questions to JOKUR::SMC or call DTN: 287-3724.

Digital Internal Use Only4304-0ct-1990

EL-00070-04

Digital Internal Use Only

04-0ct-1990

EL-00070-04

APPENDIX
B.1

8

RELATED DOCUMENTS

EL-Class Digital Documents

El-Class Number

Document Title

El-00070-01

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

El-00169-00

DEC STD 169-0 DEC Standard Coded Graphic Character Sets for Hardware andSoftwareUse VTX SMC to order copies ofEL-class documents from Standards and Methods Control.
Send distribution questions to JOKUR::SMC or call DTN: 287-3724.

B.2

Other Documents

Document Number

Document Title

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 2022:1986

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

ISO 6429:1988
ISO 646
ISO 8859-1 :1987

Information Processing / Additional Controls for use with Character Imaging Devices

B.3

7-Bit Coded Character Set for Information Interchange
Information Processing / 8-Bit Single-Byte Coded Character Sets - Part 1 : ISO Latin
Alphabet Nr 1;

Ordering Information

Following are the sources for documents not available from Standards and Methods
Control.
•

ANSI, IEC, and ISO Documents
American National Standards Institute (ANSl),
1430 Broadway, New York, NY 10018
Telephone (212) 354-3300 x479

Digital Internal Use Only45

El-00070·04

04-0ct-1990

Digital Internal Use Only

EL·00070-04

INDEX

A

c

Implicit Extensions, 20
Initialization, 12
Initialization and Reset, 29,31
Interfaceexternal, 2internal, 2Conformance Levels
definition, 2pDPower.Up Statedefinition, 2
Primary Device Attributes
definition, 3

Architectureservice class, 3

DA, 17,26
DECID, 28
DECRPTUI, 26
DECRQLP, 17
DECSCL, 22
DECSR, 29
DECSRC, 29
DECSTR, 31
DECSTUI,26
Default
factory, 2
undefined, 12
Device Attributes
control function, 17, 26
primary, 3, 17
secondary, 3
tertiary, 3, 26
Device Control, 22
Device Identification, 3, 17, 26, 28
Device Status, 12, 35
Device Status Reportcontrol function, 35
Device Test, 12
DSR, 35

F
Factory Default Statedefinition, 2R
Report Terminal Unit ID, 26
Request Locator Position
control function, 17sSecondary Device Attributes
definition, 3
Secure Resetcontrol function, 29
Secure Reset Confirmation
control function, 29
Select Conformance Level
control function, 22
Self·Test
definition, 2Service Class
identification, 3
Set Terminal Unit ID, 26
Soft Terminal Resetcontrol function, 31
Software Conformancedevice identification, 28
Status Report
definition, 2

Identification
device, 3service class, 3
Identify Terminal
control function, 28

Digital Internal Use Only

Index-1

EL·00070-04

T
Terminal Interface Architecture (TIA), 1
Terminal Management Functions, 1
definition, 3
Tertiary Device Attributes
definition, 3

Index-2

mIlIDIO'"

Digital Internal Use Only

EL-00070"()404-Oct-1990+-------------------------------------------------------------------+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 y~u request this document? ___ If so, did it arrive within a satisfactory period oftime?
Please comment.

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

- - - - - - - F O L D ON TIllS 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?
If not, is one neede.w-Was an index available?
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 throughinteroffice mail to:+-------------------------------+I
READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4I+-------------------------------+

CHAPTER 5
CHARACTER CELL DISPLAYVSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-1
29-Jun-1990

VIDEO SYSTEMS REFERENCE MANUAL
Character Cell Display
Document Identifier: A-DS-EL00070-05-0 Rev. AX12, 29-Jun-1990

ABSTRACT:This section includes the definition of all state
information required for the Character Cell Display service class,as well as all interface operations which may be performed toaffect this state.
APPLICABILITY: Mandatory for Engineers designing hardware forterminal products and Software Engineers designing programs using
terminal interfaces. Additional requirements are defined in thesection on "Concepts and Conformance Criteria".
STATUS:FOR REVIEW ONLY+----------------------------------------------------------------+I The material contained within this document is assumed toI
I define mandatory standards unless it is clearly marked as:
I (a) not mandatory; or (b) guidelines. Material which isI marked as "not mandatory" is considered to be of potential
I benefit to the corporation and should be followed unless there
I are good reasons for non-compliance. "Guidelines" define
I approaches and techniques which are considered to be good
I 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 - Character Cell Display EL-00070-0S
For Review Only
Digital Internal Use Only

Page 5-2
29-Jun-1990

TITLE: VIDEO SYSTEMS - Character Cell Display
DOCUMENT IDENTIFIER: A-DS-EL00070-0S-0 Rev. AX12, 29-Jun-1990
REVISION HISTORY: Original Draft
Revision 0.4
Revision 0.5
Revision AXOl
Revision AX10
Revision AXll
FILES: User Documentation

lS-Jul-1982
30-Sep-1982
2S-Dec-1982
28-Feb-1983
lS-May-1983
l8-Mar-198S

EL070SS.mem

Internal Documentation EL070SS.rno
EL070SS.rnt
EL070SS.rnx
Document Management Group: Terminal Interface Architecture (STI)
Responsible Department:
VIPS Terminals Architecture
Responsible Person:
Peter Sichel

APPROVAL: This document prepared by the VIPS (Video Image& Printing Systems) Group has been reviewed andrecommended for approval by the general review
group for its category for use throughout Digital.

*** Status:

For Review Only ***~V~I~P~S~T~e-r-m~i-n-a~lrs~A~r--c~h~i7t-e-c~t-u-r-e-----------------*** Status:

Peter Sichel,

For Review Only ***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, CTSl-2/D4, DTN 287-3724, JOKUR::SMC

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-3
29-Jun-1990

CONTENTS

CHAPTER 5

CHARACTER CELL DISPLAY

5.1
5.1.1
5.1.2
5.1.3
5.1. 45.2
5.2.1

INTRODUCTION .
Purpose
Scope
Relationship To TIA . .
Organization
TERMINOLOGY
Code Extension Terms . .

5.3
5.3.1

CHARACTER CELL DISPLAY STATE DECLARATIONS
Notes On Character Cell Display State

5-15
5-17

5.4
5.4.1
5.4.2

DISPLAY COORDINATE SYSTEM AND ADDRESSING . .
Logical Display . . . . . . . . . .
Active Position And Cursor . . . . .
Set/Reset Text Cursor Enable Mode
Margins And Scrolling . . .
..... .
Set Top and Bottom Margins
Set Left and Right Margins
Set/Reset Left Right Margin Mode
Set/Reset Origin Mode
Set/Reset Scrolling Mode
Index
Reverse Index
Forward Index
Back Index
Cursor Movement. . . . . . . . . . . . .
Cursor Up
Cursor Down
Cursor Forward
Cursor Backward
Cursor Position
Horizontal/Vertical Position
Cursor Position Report
Extended Cursor Position Report
Set/Reset New Line Mode
Carriage Return
Line Feed
Vertical Tab
Form Feed
Back Space
Next Line
Horizontal Tabulation . . . . . . . . . .
Tabulation Clear
Horizontal Tab
Horizontal Tabulation Set
Page Size And Arrangement. . . . . . . .

5-19
5-19
5-20

5.4.3

5.4.4

5.4.5

5.4.6

.

.

. 5-6
5-6
5-6
. 5-7
5-9
5-9
5-13

5-23

5-40

5-65

5-70

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

5.4.7

5.5

Page 5-4
29-Jun-1990

Set/Reset Column Mode
Set Columns Per Page
Set Lines Per Page
Page Movement
Next Page
Preceding Page
Page position Absolute
Page Position Relative
Page position Backward

5-77

WINDOWING EXTENSION. . . . . . . . .
Set/Reset Horizontal Cursor Coupling Mode
Set/Reset Vertical Cursor Coupling Mode
Set/Reset Page Cursor Coupling Mode
Request/Report Displayed Extent
Select Number of Lines per Screen
Pan Down (SU)Pan Up (SD)

5-84

VISUAL RENDITIONS. . . . .
Set/Reset Screen Mode
5.6.1
Line Renditions
Single Width Line
Double Width Line
Double Height Line
Character Renditions
5.6.2
5.6.2.1
Normal Rendition .
5.6.2.2
Bold Rendition . .
5.6.2.3
Blink Rendition
5.6.2.4
Underscore Rendition
5.6.2.5
Reverse Rendition
Select Graphic Rendition
5.6.3
ANSI Color Text Extension
SGR Color Selection
5.6.3.1
5.6.3.2
Interaction With Other Visual Renditions
5.6.3.3
Color Maps . . . . . . . . . . . . . .
5.6.3.4
Color Table Report (DECCTR).....
5.6.3.5
Default Color Assignment (Guideline)
5.6.3.6
Color Interaction Among Modes And Data
Syntaxes (Guideline). . . .
5.6.3.7
Alternative Text Rendition Mapping(Guideline)

5-93

5.6

5-95

5-101
5-101
5-101
5-101
5-102
5-102
5-106
5-106
5-106
5-107
5-109
5-110
5-112
5-112

5.7

AUDIBLE INDICATOR
Warning Bell

5.8
5.8.1
5.8.2

GRAPHIC CHARACTER SETS . . .
5-115
Character Set Repertoire .
5-115
Character Set Selection
5-116
Designate Character Set
Assign User-Preference Supplemental Set
Request User-Preference Supplemental Set
National Replacement Character Set Mode

5-114

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-5
29-Jun-1990

SUMMARY OF CONTROL CHARACTER PROCESSING
5-128
5-128
CO Control Characters
C1 Control Characters
5-130
Substitute
5.10
MODES STATES (AND MODE DESCRIPTIONS) .
5-133
5.10.1
SM/RM - Set Mode, Reset Mode Sequence· 5-133
5.10.1.1
ANSI Specified Modes:
5-133
5.10.1.2
DEC Private Modes: . . . . .
5-133
5.10.1.3
Modes That Cannot Be Changed· 5-134
5.10.2Mode Descriptions. . . . . .
5-134
Set/Reset Send Receive Mode
5-137
EDITING FUNCTIONS . . . . . . . .
5.11
Set/Reset Insert/Replacement Mode
Insert or Replace Graphic Character
Insert Character
Delete CHaracter
Insert Line
Delete Line
Insert Column
Delete Column
Erase Character
Erase in Line
Erase in Display
Selective Erase in Line
Selective Erase in Display
5.11.1
Character Attributes . . .
. . . . . 5-165
5.11.1.1
Normal Character Attribute . . . . . . . 5-165
5.11.1.2
Selectively Erasable Character Attribute 5-165
Select Character Attribute
5.9
5.9.1
5.9.2

5.12
5.12.1

5.12.2

5.12.35.13
5.13.1
5.13.2

OLTP FEATURES·
Rectangular Area Operations...
Copy Rectangular Area
Fill Rectangular Area
Erase Rectangular Area
Selective Erase Rectangular Area
Change Attributes Rectangular Area
Reverse Attributes Rectangular Area
Select Attribute Change Extent
Data Integrity . . . . . . . . . . . . . .
Request Checksum of Rectangular Area
Memory Checksum DSR
Checksum Report
Macros.
. .............
Define Macro
Invoke Macro
Macro Space Report

5-168
5-168

5-179

5-182

SAVING AND RESTORING TERMINAL STATE· 5-186
Cursor Save Buffer· 5-186
Save Cursor
Restore Cursor
Terminal State Interrogation . . . . . . . 5-191

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-6
29-Jun-1990

Request Mode
Report Mode
Request Selection or Setting
Report Selection or Setting
Request Presentation State Report
Presentation State Report
Cursor Information Report
Tabulation Stop Report
Restore Presentation State
Request Terminal State Report
Terminal State Report (1)Restore Terminal State
5.14
5.14.1
5.14.25.14.35.14.45.14.55.15

5-209
INTERNAL FUNCTIONS AND PROCEDURES
5-209
End Of Line · · · · · . .
· · · · · 5-210
Scroll Up· 5-211
Scroll Down · · ····· 5-212Scroll Left····
Scroll Right. · · · · · 5-213· · · · TO .OTHER
CHAPTERS 5-214
CONTROL FUNCTION· REFERENCE

5.16
5.16.1
5.16.25.16.35.16.4

CHANGE HISTORY · · ·Rev 0.4 To 0.5·
Revision 0.5 To ·AX10
Rev AX10 To AX11
Rev AX11 To AX12 ·5.17

REFERENCE STANDARDS

· ·
· ·

·

·

· · ·
· · ·

· · ·
· · ·
· · ·

5-216
5-216
5-218
· 5-220· 5-221·· 5-225VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.1

INTRODUCTION

5.1.1

PurposePage 5-6
29-Jun-1990

This section defines the interface to a Character Cell Display
device. A Character Cell Display device is a device capable ofcharacter imaging output.
In addition to the physicalpresentation of graphic characters, it must provide certain
control functions for defining the format and rendition of theinformation presented.
The Character Cell service class consists of operations that image
or format characters that are addressed on the imaging surface
using a character cell addressing capability. All Character Cell
operations are either graphic (printing) characters or control
functions (control characters, escape sequences, control
sequences, or control strings) according to the structure of ANSI
X3.41, Code Extension Techniques for use with ASCII, and ANSI
X3.64, Additional Control Functions for use with ASCII.
Character Cell Display devices are distinguished from Character
Cell Printing devices by their ability to perform certain dynamic
operations, such as inserting characters within text, erasing
previously displayed characters, and blinking.
The Character Cell Display service class consists of operations
that:
1.

image characters on a two-dimensional display surface
that represent text or picture drawing symbols,2.

alter their position after receipt

3.

remove them from the display, and4.

cause them to be re-transmitted.

The intent of the Character Cell Display service class is to be
implement able using a character generator or a minimum of a single
plane image memory.

5.1.2

Scope

This section applies to all DEC products which implement theseinterfaces and are intended to be certified as conforming to theTerminal Interface Architecture.
It also applies to software
which is intended to use these interfaces in a conforming manner.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.1.3

Page 5-7
29-Jun-1990

Relationship To TIA

The Character Cell interface forms a service class of the
Presentation Service Class layer of the Terminal Interface
Architecture.
It is independent of the other layers of thearchitecture, and has no explicit relationship to other service
classes within the Presentation Service Class layer.

USER

Input Processing

T

M

e

a

r
m

n
a
g
e
m
e

i

n
a
1

--------------I I Character I I
II
Cell
II
I I Display I I

Presentation
Service Class===============

nt

Code Extension
Layer

APPLICATION PROCESSStructuring of the Terminal Interface ArchitectureVSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-8
29-Jun-1990

The interfaces defined within this specification apply to bothinternal and external product interfaces. External interfaces areinterfaces between a terminal, personal computer or workstation
and a remote system. Internal interfaces are interfaces between aterminal sUb-system and software processes running within aterminal, personal computer or workstation.

***
terminal system--------------------------*
physicalterminal

virtualterminal

host systemI** . . . . . . . . . .
I application
process..............
I*

I*--------------------------*<hardware><firmware> * <communications link>*** EXTERNAL INTERFACE<software>**terminal system--------------------------*--------------*
I* application I* process I*
I--------------------------*-------------<hardware><software/ * <software>
firmware> *** INTERNAL INTERFACE
I
I
I
I

physicalterminal

virtualterminal

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 understanding the Character Cell Display service
class, this section is divided into a number of largely
independent subsections which describe functionally related partsof the ANSI 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 hostinterface.

5.2

TERMINOLOGY

Active Position - (1) The character position in a visual displaythat is to image the graphic symbol representing the next graphic
or control character for which a graphic representation isrequired (2) The character position in a logical display whichcontains the character code, graphic rendition, and character setof a graphic or control character for which a graphic
representation is required.
Advance - To move the active position in the direction ofincreasing horizontal character position in a visual or logicaldisplay.
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 ofcertain error conditions. There are four functional categories ofbells 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 prioragreements between sender and recipient are necessary in order toachieve 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 acharacter position, which affects its subsequent processing, as inediting 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 thisspecification 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 thatimages or is capable of imaging a graphic symbol.
(2) Anaddressable 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 acharacter position, which affects its visual representation (seeGraphic 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 bya single character in 8-bits, or a two character ESC Fe sequencein 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 andin 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 positioningof 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 inwhich no character code appears, and thus no character is renderedin the visual display for this position.
In an empty character
position the character rendition, character attribute, andcharacter set values should be ignored.
Enter - To input information manually into a character imaging
device or to read information from an auxiliary device into acharacter 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 thedata 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 ora 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 displaythat have the same vertical position.
Logical Display - the lines and columns available for storing andpresenting graphic characters as seen by the application or hostcomputer. 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 arectangular array of lines and columns.
Margin - A line which marks the upper or lower boundary of thescrolling 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 operationof the sender or recipient, or the format of the transmitted
information.
Next - See Following.
Operating System - Software that controls the execution ofcomputer 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 arectangular array of lines and columns.
The number of lines andcolumns 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 bya character imaging device for purposes of informationinterchange.
Represent - (1) To use a prescribed bit combination with themeaning of a character in a set of characters that has been
designated and invoked.
(2) To use an escape sequence with themeaning of an additional control character.
Scroll - An action whereby all of the graphic symbols of a visualdisplay are moved in a specified direction.
String Delimiter - A control that begins or ends a string ofcharacters in a data stream.
Tabulation - A technique of identifying character positions in avisual 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 acharacter 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 inthe "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 orderto 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-tbottom margin;
ext column tleft margin;/* Horiz scroll ext */ext column-t
right margin;/* Horiz scroll ext */ext boolean tlast 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 tcolumn mode; /* 132-Column Ext */ext lines-per-page_tlines-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 ttext 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 tleft 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 Statea.

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 thisposition. In this implementation this is handled by anull entry in the logical display structure, which should
be rendered as a space with normal rendition in thevisual 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 theconformance 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 listingof 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 andpresenting single-width graphic characters in a rectangular arrayof lines and columns called a Logical Display Page.
The number oflines and columns shall define the size of the Logical Display
Page, or Page Size. The entire Logical Display may consist of asingle page, or a number of pages of identical size.
All conforming devices shall support a single Logical Display Pageof 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 tointerrogate the size of the Logical Display Page. The Page Sizeand 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 thefollowing 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 thisneed not be true.
The graphic representation of each character on the physicaldisplay surface will occupy a rectangular cell whose lower left
hand corner is at the logical screen coordinate corresponding to
the position of the character in the the array.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-20
29-Jun-1990

1columns

80

132

1

single-width line

80

132

+----------------------------------------+---------------------+
1
I

1
i

n
e
s

24

1
double-width line
4066-------------------------------------------------------------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 coordinatesof a single character position, known as the "Active Position",
which serves as a reference point for character insertion andreplacement 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 visualindicator 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 withprevious 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 ofenabling or disabling the visible cursor symbol. This mode shallapply 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 toenable 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 thatentering SETUP mode will always turn on the text cursor
while in SETUP mode, but that normally it be restored toits previous state upon exiting SETUP mode. Also, ameans 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 theability to define left and right margins of a scrolling region.
The left and right margins are two column numbers in a logicaldisplay 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
+rightI
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
Ie+\------ 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

DECDC
DECIC

X
X

X
X

*
*
0

0
0

IND
RI
DECBI
DECFI

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

*
*
+------+------+
0X= Is affected.

Does not work outsidethese margins.

0= Not affected.

Continues to work outsidethese margins.

active position is inside margins,* = If affectis 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 tocontrol scrolling:
DECSTBMDECSLRMDECLRMMDECOMDECSCLM
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

DECSTBMSET TOP AND BOTTOM MARGINSLevels:Page 5-25
29-Jun-1990

1-4

Purpose: Change the top and bottom margin settings for thescrolling 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 andBottom Margins of the scrolling region.
The new settings are
determined by the parameter values. The first parameter sets thevalue of the Top Margin, and the second parameter sets the valueof the Bottom Margin. The default settings if either or bothparameters 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 isin 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 greaterthan the number of lines in the Logical Display Page,
this control will be ignored (not executed) .

State Affected:
active position
top marginbottom~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 MARGINSLevels:Page 5-27
29-Jun-1990
DECSLRM

4x (Horizontal Scrolling)

Purpose: Change the left and right margin settings for thescrolling region.
Format:

CSI
9/11

PI
PI

;
;

Pr s
Pr 7/3default PI: 1
default Pr: Last Column

Description:
The DECSLRM control sets the values of the Leftand Right Margins of the scrolling region. The new settings are
determined by the parameter values.
The first parameter sets thevalue of the Left Margin, -and the second parameter sets the valueof the Right Margin.
The default settings if either or bothparameters 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 isin 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 greaterthan 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 disablesmooth 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 theset 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 attributeto Double Wide or Double Wide and High, will be ignored.
State Affected:
left right margins modeline-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<MAX NUM LINES; i++){line rendition[i] = SINGLE WIDTH;}
left right margins mode = SETABLE;
}

-

-

-

}

void reset_left_right_margins_mode(){if ( (conformance level == LEVEL 4) &&(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE){

left margin = 1;
right_margin = cOlumnsyeryage;
left right margins mode = FIXED;
}

-

-

-

}

Known Deviations:

None

)

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-31
29-Jun-1990

SET/RESET ORIGIN MODE
Levels:

DECOM

1-4

Purpose:Change the state of Origin Mode between Absolute (reset)
and Displaced (set) origin.
To Set:To Reset:

CSI ? 6 h
CSI ? 6 I

(displaced)(absolute - default)

Description: A conforming device shall allow addressing of thedisplay area to be performed relative to either the display origin(coordinate 1,1) [reset state = absolute] or the origin of thecurrent scrolling region (Top Margin, Left Margin) [set state =displaced]. When Origin Mode is in the set state (displaced), theActive position cannot be moved above the Top Margin or left of
the Left Margin of the scrolling region.
The DECOM controls are used the change the state of Origin Modebetween Absolute and Displaced.
State Affected:
origin mode
active position
Algorithm:
void set origin mode(){--

origin mode = DISPLACED;
active-position.line = top_margin;
active-position.column = left_margin;}

void reset_origin_mode(){

origin mode = ABSOLUTE;
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

DECSCLM

SET/RESET SCROLLING MODE
Levels:Page 5-32
29-Jun-1990

1-4

Purpose:Change the state of Scrolling Mode between Jump (reset)
and Slow (set) scrolling.
CSI ? 4 h
CSI ? 4 1

To Set:To Reset:(smooth - default)( jump)Description: A conforming device shall provide the capability of
selecting either jump scrolling [reset state = jump] and slow
scrolling [set state = slow]. Jump scrolling is defined as
scrolling of the display as fast as the device permits, to a
maximum which will be implementation defined.
Slow scrolling isdefined as scrolling of the display at a rate of approximately 6
text lines per second.
The ,intention of slow scrolling is to movetext through the display at a rate which makes it "recognizable",but not necessarily readable.
(i.e., it is not guaranteed that it
will appear slowly enough for the user to scan read the entire
text).
The scrolling speed applies to vertical scrolling of thescrolling region of the display, which can be set as any
combination of adjacent lines.
The DECSCLM controls are used to change the state of Scrolling
Mode between Jump (reset state) and Slow (set scrolling.
Notes:
1.

Some implementations may offer a choice of additional
scrolling speeds in Set-Up.
The reset state of DECSCLM
will select the speed closest to 6 lines per second.

2.

Setting the left or right margins to other than theirdefault values (the boundaries of the Logical Display
Page) may temporarily disable smooth scrolling(guideline), but will not affect the state of Scrolling
Mode.

State Affected:
scrolling_mode

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-33
29-Jun-1990

Algorithm:
void set scrolling mode(){--

scrolling mode = SLOW;}
void reset_scrolling_mode(){

scrolling mode = JUMP;}
Known Deviations: Workstation terminal emulators which do nothave scrolling hardware do not implement this control (DECterm,UIS) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INDEX

Page 5-34
29-Jun-1990
IND

Levels:

1-4

Purpose: Move the Active Position downward one line, scrolling if
necessary.
Format:

IND
8/4(ESC D)

Description:
The IND 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.
If
the display scrolls, a blank line with all attributes off willappear at the bottom margin.
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.
If the Active Position is
below the Bottom Margin (as the result of absolute cursor
positioning) it will still move downward by one line andno scrolling will occur.
In this case, the Active
Position will not move beyond the bottom line of thedisplay.

2.

This control is identical to the Line Feed (LF) control,
except that it is not affected by the setting of New Line
Mode.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-positionAlgorithm:
void index(){if (active position. line -- bottom_margin)scroll up(top margin, 1);else
if (active_position. line < lines-per_page)
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);}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 thedisplay 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 thiscontrol is executed, the Active Position will not movebeyond 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 theright margin, the contents of the Logical Display Page within theright, 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 andthe 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 theirline attributes. This means double-wide and double-sizelines will appear to shift twice as fast as single-widthlines.

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 INDEXDECBI------------------------------------------------------------------

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 movebackward one column.
If the active position was already at theleft 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 isinserted 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 theirline attributes. This means double-wide and double-sizelines will appear to shift twice as fast as single-widthlines.

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 ReportLine Feed/New Line Mode
Carriage Return
Line Feedvertical 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 upwardin the display.
The distance moved is determined by the parametervalue. 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 tomove the Active Position above the Top Margin, thecontrol 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 lineof 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-widthline, 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 greaterthan 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 parametervalue. 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 Marginwhen the CUD control is executed, and an attempt is madeto move the Active Position below the Bottom Margin, thecontrol 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 thebottom 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-widthline, 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 greaterthan 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 forwardin the display.
The distance moved is determined by the parametervalue. 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 Marginwhen the CUF control is executed, and an attempt is madeto move the Active Position beyond the Right Margin, thecontrol 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 thelast 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 OnlyCURSOR 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 backwardin the display. The distance moved is determined by the parametervalue. A parameter value of zero or one moves the Active Position
backward by one one column. A parameter value of n moves theActive Position backward by n columns.
Notes:
1.

If the Active Position is at or inside the Left Marginwhen the CUB control is executed, and an attempt is madeto move the Active Position beyond the Left Margin, thecontrol 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 thefirst 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 andcolumn 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 parametervalues. The first parameter specifies the new line address, andthe second parameter specifies the new column address.
If eitherparameter is omitted, or is explicitly set to zero (0), thatparameter 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 tothe origin of the current scrolling region (the top andleft margin) .

2.

If an attempt is made to move the Active Position outsideof 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 addressablearea, but will not be moved beyond the boundary of theaddressable 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 parametervalues.
The first parameter specifies the new line address, andthe second parameter specifies the new column address.
If eitherparameter is omitted, or is explicitly set to zero (0), thatparameter 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 movementof the cursor, since the operation of Horizontal/Vertical
Position may be redefined in future levels of thearchitecture.

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 tothe origin of the current scrolling region (the top andleft margin) .

3.

If an attempt is made to move the Active Position outsideof 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 addressablearea, but will not be moved beyond the boundary of theaddressable 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 OnlyCPR

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 tothe origin of the current scrolling region (the Top andLeft 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 = active position. line;
x = 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 tothe origin of the current scrolling region (the Top andLeft 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).
Set Format:
Reset Format:

CSI 20 h
CSI 20 I

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 ofthat character [reset state = no new line], or that each of thesecharacters 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, whichtransmits a two-code sequence (CR LF) when New Line Mode is in theset 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 RETURNCR

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 firstcolumn 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 absolutecursor positioning) it will still move downward by one
line and no scrolling will occur. In this case, theActive Position will not move beyond the bottom line ofthe 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 thefirst column of the line into which the Active Position
is moved.
Conforming software is recommended to use thetwo character sequence (CR LF) rather than New Line mode
for widest compatibility.

5.

Note that the fundamental differences between thiscontrol 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 (NoNew 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 toprovide 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, thatprinters will implement this function differently.
It istherefore 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 toprovide 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, thatprinters will implement this function differently.
It istherefore 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 SPACEBS

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 backwardin 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 theLeft 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 settingof Auto Wrap Mode. Under no circumstances does theActive 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 nextline, scrolling if necessary.
NEL
8/5

Format:(ESC E)

Description:
The NEL control moves the Active position to theLeft Margin of the next line.
If the Active Line is equal to the
Bottom Margin, the Active Line is not incremented, but instead thedisplay scrolls upward by one line.
If the Active Position isbefore the left margin, or outside the top and bottom margins, itwill move to the first column of the next line, but not beyond thelast line on the page.
Notes:
1.

This control is identical to sending Line Feed (LF) withLine Feed New Line Mode set.
It is also identical tosending 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 remoteand local function, and therefore the settings at any point intime is indeterminate. However, when no local provision is madefor 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 parametervalue. 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<parc; n++){if (parv[n] == 0)
horizontal_tab_stops[active-position.column] = FALSE;
else if (parv[n] == 3)
for (x=l; x<= columns-per-page; x++)horizontal_tab_stops[x] = FALSE;}}

Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
HORIZONTAL TAB

Page 5-67
29-Jun-1990
HT

Levels:

1-4

Purpose:Stop.

Advance the Active Position to the next Horizontal Tab

Format:HT
0/9

Description:
The HT control moves the Active Position forwardin the display to the next Horizontal Tab Stop in the Active Line.
Notes:
1.

If no tabulation stop is reached before the Right Marginof the Active Line (within the Scroll Area), the Active
Position will be set to the Right Margin of the ActiveLine.
If the Active Column is beyond the Right Margin or
the Active Line is outside the Scroll Area (due toabsolute cursor positioning), the Active Position will
move to the next tab stop, or last column of the Active
Line, whichever comes first.

State Affected:
active_positionVSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-68
29-Jun-1990

Algorithm:
void horizontal_tab(){boolean t outside;if «active-position.line > 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)&&VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-69
29-Jun-1990
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 areaffected 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 thecapability 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 theActive Position to be set to the display origin (1,1), even if theterminal was already in the selected state.
Notes:
1.

The font used to display Page Memory may change when thenumber of columns on the page changes to better match thescreen. 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 marginbottom margincolumn-mode
left margin
right margincolumns-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<MAX NUM LINES; y++){for (x=l; x<MAX NUM COLUMNS; x++)display[y] [x]~code = EMPTY CHARACTER;
line rendition[y] = SINGLE WIDTH;}
active-position.line = 1;
active-position.column = 1;
top margin = 1;
bottom_margin = lines-per-page;left margin = 1;
right_margin = columns-per-page;left right margins mode = SETABLE;
}

-

-

-

void reset_column_mode(){line t y;column t X;
column mode = EIGHTY;
columns-per-page = 80;
for (y=l; y<MAX NUM LINES; y++){for (x=l; x<MAX NUM COLUMNS; x++)display[y] [x]~code = EMPTY CHARACTER;
line rendition[y] = SINGLE WIDTH;}
active-position.line = 1;
active-position.column = 1;
top margin = 1;
bottom_margin = lines-per-page;left margin = 1;
right_margin = columns-per-page;left right margins mode = SETABLE;}
Known Deviations:

None

Page 5-72
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-73
29-Jun-1990

SET COLUMNS PER PAGEDECSCPPLevels:3X (Windowing), 4

Purpose:
Display.

Set the number of columns per page in the Logical

Format:

CSI
9/11

Pn
3/?

$
2/4

I

7/12

Description:
This sequence sets the number of columns in thedisplay page according to the numeric parameter.
If the parameteris omitted or zero, the page width is defaulted to 80.
If thenumber of columns specified is not one of the values supported by
the implementation, the next higher supported number of columns
per page is assumed.
If the number of columns specified exceeds
the maximum number supported, the maximum number supported will be
used.
DECSCPP does not cause the Active position to move. However if
the active position is beyond the width of the new page when thecommand is executed, the active position will be moved to theright edge of the page. DECSCPP does not cause the Right Margin
to move. However if the right margin is beyond the width of the
new page when the command is executed, the right margin will be
moved to the right edge of the page. When changing from a 132
column to a 80 column page, the information in columns 1-80 ispreserved.
The information in columns 81-132 is cleared. Whenchanging from an 80 column page to a 132 column page, theinformation in columns 1-80 is preserved.
Notes on DECSCPP:
1.

The font used to display Page Memory may change when thenumber of columns on the page changes to better match thescreen. Control of when the font changes may be provided
as a Set-Up option.

2.

The number of columns per page can also be changed
through Column Mode (DECCOLM).
The affect of DECSCPP issimilar to DECCOLM except that DECSCPP does not clear
page memory.

3.

DECSCPP does not change the setting of DECLRMM.
Implementation Guideline
The VT420 can configure its off-screen memory to
pages of either 80 or 132 columns wide. When thepage width changes, the corresponding 80 or 132

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-74
29-Jun-1990

column font is automatically selected.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active positionright margin
co lumns_per_page
Algorithm:
void set columns per page (parv)
short int parv[MAX NUM_PARAMETERS];{

line t y;column t X;
if ( (conformance level == LEVEL 4) I I(level_3_extensions[WINDOWING]==TRUE){

if (parv[O] <= SO)/* set columns per page to SO */{for (y=l; y<MAX NUM LINES; y++){for (x=Sl; x<MAX NUM COLUMNS; x++)display[y] [x] .code-= EMPTY_CHARACTER;}

if (active_position. column > 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
DECSLPPLevels: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 isomitted or zero, the page length is defaulted to 24.
If thenumber 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 physicallimits of the new Page height; and, the Active Position will moveto 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 toeither 3 pages of 24 lines, 2 pages of 25 lines, 2
pages of 36 lines, or I page of 72 lines indouble-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 marginbottom_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 inthe Logical Display.
Format:

CSI
9/11

Pn

U

3/?

5/5

Description:
This sequence causes the Active Position to moveahead a number of pages, specified by the parameter.
If theparameter value is zero (the default) or one, the active position
moves ahead 1 page.
If the sequence calls for a page beyond thelast page of display memory, the highest numbered page is used.
NP moves the Active Position to the home position in the new pageobeying Origin Mode.
Whether or not the new page is displayed depends upon the settingof 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 inthe Logical Display.
Format:

CSI
9/11

Pn
3/?

v
5/6

Description: This sequence causes the active position to moveback a number of pages, specified by the parameter.
If theparameter value is zero (the default) or one, the active position
moves back 1 page.
If the sequence calls for a page before thefirst 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 settingof 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 thecorresponding line and column on the n-th page. If there arefewer than n pages in display memory, the highest numbered page is
used.
Whether or not the new page is displayed depends upon the settingof 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 thecorresponding line and column of the n-th succeding page.
If thesequence 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 settingof 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 thecorresponding line and column on the n-th preceding page.
If thesequence 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 settingof 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 thatare larger or smaller than the physical display. A rectangulararea of the screen (physical display) that displays informationfrom 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 physicaldisplay at a time (guideline).
The following functions described in this subsection are used tocontrol how an area of the Logical Display is mapped to a window
on the physical display.
DECHCCMDECVCCMDECPCCM
DECRQDEDECSNLS
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 ofdisplay 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 theextension 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:DECHCCM3x, 4x (Windowing)

Purpose: Change the state of Horizontal Cursor Coupling Modebetween 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 thedisplayable area (window), the page does not move with respect tothe window to keep the cursor visible. The cursor is not shown inthis case. The cursor is said to be "uncoupled" from the display.
In the set state, when the active position within a page goes leftor right of the borders of the displayable area (window), the pageis moved the minimum amount to an 8 column boundary in thehorizontal 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 havemore 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 pageis 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 amountto make the cursor visible. Experience suggests moving
the minimum amount to an 8 column boundary would make thedisplay 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
DECVCCM3x, 4x (Windowing)

Purpose: Change the state of Vertical Cursor Coupling Modebetween coupled (set state, page moves vertically in window tokeep 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 thedisplay.
Notes on DECVCCM:
1.

Vertical Cursor Coupling may be enabled or disabled underlocal 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 pageis 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
DECPCCM3x, 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 notrefreshed to keep the cursor visible. The cursor is not shown inthis 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" tothe display.
Notes on DECPCCM:
1.

Page Cursor Coupling may be enabled or disabled underlocal control in Set-Up.

2.

If a Set Mode command setting DECPCCM is received whenthe 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 EXTENTDECRQDE/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 physicalscreen.
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 fromthe 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 theleftmost 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 numberof 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 fontsize.
Pn is a numeric parameter between 1 and 255 which indicates thenumber of lines which can be displayed on the screen at one time.
If a value not directly supported by the terminal is selected, thenext larger size supported will be used.
If Pn is greater thanthe largest number of lines available, the largest number
supported will be used.
The number of lines per screen that canbe supported will be clearly specified in the productdocumentation.
Although DECSNLS selects a font height which determines the
maximum number of lines which can be displayed, the actual numberof 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 theactual 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 arecontained 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 thewindow, or screen.

4.

DECSNLS is a "User Preference Feature" intended forterminal management use.
It should not be modified byapplication 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 thewindow 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~yaccording to the parameter. The line at the top border of thewindow is no longer seen, and a new line appears at bottom borderof the window for each position moved. A numeric parameter ofzero 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 tothe 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 thewindow is no longer seen, and a new line appears at top border ofthe window for each position moved. A numeric parameter of zeroor 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 RENDITIONSThis subsection describes functions used to control the visualappearance of characters on the display. Attributes to becontrolled include screen background (light or dark), charactersize (double wide and double size line attributes), characteremphasis (bold, blink, underline, reverse), and character color
when the Color Text Extension is implemented.
The following control functions are described herein:
DECSCNM - Screen ModeLine Renditions
DECSWL - Single width LineDECDWL - 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.
Set Format:
Reset Format:

CSI ? 5 h
CSI ? 5 1

Description: A conforming device shall provide the capability ofoperating 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 themode reverses the definitions of the foreground and backgroundcolors.
The actual color values are not specified by thearchitecture, and are implementation defined. All character
renditions must be achievable as defined on both normal andreverse screens.
Note: Conforming software should not depend on the speed of
execution when changing Screen Mode.
It may take as long as thetime 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:oooosingle-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 notaffect the addressing of characters in the line (within theconstraints of the physical display). For example, the characterin column 5 of a single-width line will still be addressed ascolumn 5 if the line rendition is changed to double-width,
although the character field will now start in column 9 of thephysical 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 rightedge of the display.
Note: Conforming software will not draw only the top or thebottom 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 tosingle-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 todouble-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 Linein 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 theend 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 todouble-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 anddouble-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 ofthe characters contained in the Active Line to be displayed indouble-height and double-width rendition.
Notes:
1.

Conforming software will not draw only the top or thebottom of double-height lines. When double-height lines
are used, both the top and bottom must be displayed inadjacent line positions.
Otherwise, the visual displayof 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 theend 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 theconcept of foreground and background values. A character cellconsists of a rectangular area filled with a background color, anda character pattern written in a foreground color. Background andforeground values are at least binary in nature (i.e., they musthave at least two clearly distinguishable visual states) .
Characters are rendered in the physical display by somecombination 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 eachrendition 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 thephysical display in its "natural" state, that is, where thecharacter 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 renditionof characters is dependent on the state of the Screen Mode, which
is used to define the values of the foreground and backgroundcolors.)5.6.2.2 Bold Rendition - Bold rendition of characters may beachieved either by emphasizing the display foreground withoutchanging the background characteristics of the cell, or byintensifying the background color while holding the foregroundvalue constant.

5.6.2.3 Blink Rendition - Blink rendition is achieved byalternating 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 achievedby 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 theunderline character (5/15).

5.6.2.5 Reverse Rendition - Reverse rendition is achieved byusing the current value of the foreground color as the cellbackground, and the current value of the background color as theforeground.

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 thefollowing table (for both Levelland Level 2)
Parameter

Renditiono

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 theterminal 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 affectthe rendition of characters already entered into thedisplay.

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<parc; n++){switch (parv [n] ){case 0:current rendition.bold = FALSE;
current-rendition.underscore = FALSE;
current-rendition.blink = FALSE;
current-rendition. reverse = FALSE;
break;
case 1:current rendition.bold = TRUE;
break;
case 4:current rendition.underscore = TRUE;
break;
case 5:current rendition.blink = TRUE;
break;
case 7:current rendition.reverse = TRUE;
break;
default:
break;}

if (conformance level -- LEVEL_2){
swi tch (parv [n] ){case 22:current rendition.bold = FALSE;
break;
case 24:current rendition.underscore = FALSE;VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
break;
case 25:
current rendition.blink = FALSE;
break;
case 27:
current rendition. reverse = FALSE;
break;
default:
break;}}}}

Known Deviations:

None

Page 5-105
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.3

Page 5-106
29-Jun-1990

ANSI Color Text Extension

The Color Text Extension provides for the selection of text
foreground and background colors on a per character basis using
SGR color parameters.
The Color Text extension may be provided at
Level 2 or higher of the Character Cell Display service class, andis indicated by the extension parameter 22 in the Device
Attributes (DA) response.

5.6.3.1

SGR Color Selection -A conforming device shall recognize parameter values 30-37 and 39
to the SELECT GRAPHIC RENDITION (SGR) control sequence to selectthe foreground color attribute and parameter values 40-47 and 49
to select the background color attribute, as specified in thetable.
The eight colors listed as factory defaults shall beavailable at a minimum.
These colors are taken from the ANSI
X3.64 standard.
SGR

meaningfactory default color

30
31
32
33
34
35
36
37
39

foreground color 0
foreground color 1
foreground color 2
foreground color 3
foreground color 4
foreground color 5
foreground color 6
foreground color 7
default foreground color

black
red
green
yellowblue
magentacyan
white<device-dependent>

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
yellowblue
magentacyan
white<device-dependent>

A device may provide means, either under software or local
control, to modify these colors and may provide means to save themodified colors in non-volatile memory.

5.6.3.2

Interaction with Other Visual Renditions -The foreground color and background color are maintained as partof 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 theReverse Rendition is not already set, be- equivalent to invoking
the current foreground color as the new background color, and thecurrent background color as the new foreground color.
Likewise,selecting the Positive Rendition (SGR parameter 27) will, if thepositive Rendition is not already set, be equivalent to invoking
the current foreground color as the new background color, and thecurrent 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 backgroundcolor without regard to whether the Reverse Rendition is set.
SGR parameter 0 (all renditions off) will reset the foreground andbackground color attributes to their defaults (equivalent to SGRparameters 39 and 49).
SOFT TERMINAL RESET (DECSTR) will
similarly cause the foreground and background color attributes tobe 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) willaffect which attribute bits from display memory are used to render
the text foreground and background color.
It does not affect thecurrent rendition, or how the current rendition is applied to thecharacter 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 screenmode correspond to lighter text on a darker background (notmandatory).
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 abinary value in display memory with a color that can be producedon the display. During display refresh, the active color map isused to translate color values from display memory to colors thatappear 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 attime, or can assign color map entries from a single color map todifferent applications, limiting the size of each application'scolor map.
Color maps can be read-only (fixed), or read-write(modifiable under software control).
Applications often model color selection as asking for aparticular 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 toallow the application to modify a color map entry causing all
objects written with that color index to change color on thedisplay.
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 reportingthe 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 ofthe color table.

RequestFormat:

CSI 2
;
Pu $
9/11 3/2 3/11 3/? 2/4

ReportFormat:DCS 2
s D ... D ST$
9/0 3/2 2/4 7/3 D ... D 9/12

(DECTSR Ps=2)

RestoreFormat:

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 systemo = 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.
Tis 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 hosttransmits the DECRSTS control with parameter 2 and the desiredcolor 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 Modeis reset.
Four or more plane (16 or more color) color map:Color----0 black
1 blue2 red
3 green
4 magenta
5 black
6 white7 gray 50%

Mono

Text Useblack
gray-2gray-4gray-6gray-lgray-3gray-5
white

normal background8 gray 25%

black
gray-2gray-4gray-6gray-lgray-3gray-5white

9 blue*10 red*11 green*
12 magenta*
13 cyan*
14 yellow*
15 gray 75%

black text
white text
normal foregroundblue 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, thoughcolors corresponding to map entries 9-14 are notless saturated.
The VT340 uses these assignments except that color
5 is cyan, and color 6 is yellow. These werechanged 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 asingle color map among these protocols so that changing a color
definition in one protocol will affect the color map used by theother 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 backgroundreverse graphic rendition (SGR 7)
boldgraphic rendition (SGR 1)
normal text foregroundFor 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 backgroundreverse graphic rendition (SGR 7)
boldgraphic rendition (SGR 1)
normal text foreground

When alternative text rendition mapping is not selected, thereverse attribute is rendered by exchanging the text foregroundand background colors.
A conforming device may provide an alternative text rendition
mapping mode selectable in Set-Up, but this is not part of theColor Text Extension. The factory default behavior should be totreat 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 mappingof text renditions to look-up table entries.

Format:

CSI
9/11

Ps
3/?

Ps

Look-Up Tableomonochrome look-up table (default)
color look-up table,
standard text rendition mappingcolor 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 andcolor. 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 somesimilar audible indicator suitable to signal the operator's
attention.
It may be possible to change the volume of the bellsound, 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 bellsound, 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 thisstandard (DEC STD 70-3) for more information on designating andinvoking 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. ASCIIDEC Line Drawing
DEC Supplemental Graphic
ISO Latin-1 Supplemental
UPSS
UK set (United Kingdom)
NRCS
JIS ROMAN, JIS KATAKANADRCSDEC 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 partof the 8-bit Interface Architecture Extension.

2.

UPSS (User Preference Supplemental Set) is not actually acharacter 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 aspart 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). Thisextension 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. Dependingon 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 anextension 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 intermediatecharacters 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 thedesignating 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<G-Set designator><Character set designator>

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 GDEC SUPPLEMENTAL G
ISO-LATINI SUPPLEMENTAL GUPSS G
DRCS-GTCS G
JIS-Roman
JIS Katakana
NRCS
BritishDutch
FinnishFrenchFrench Canadian
GermanItalianNorwegian/Danish
Portuguese
SpanishSwedish
Swiss

B
0
%5
A
<
I I F
>
J
I
A
4
5 or CR

4/2
3/0
2/5 3/5
4/1
3/12
2/? 2/? ?/?
4/10
4/9

(discontinued in L3)

QKY

E or 6%6z

7 or H=For example,
ESC ( B
ESC ) 0ESC * <

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) sidesof 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 bedesignated 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 andG3 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 thedesignated 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 employedthroughout the Video Systems Reference Manual when theterminal 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 thecurrent 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 tablewith 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] . name = LINE DRAWING G;
char-set-table[TABLE-LINE-DRAWING] .first intermediate ~ 0;char-set-table[TABLE-LINE-DRAWING] . second intermediate = 0;char=set table[TABLE LINE DRAWING] .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 correspondwith 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] . name = TCS G;
char-set-table[TABLE-TCS] . first intermediate = 0;
char-set-table[TABLE-TCS] . second intermediate = 0;
char-set-table[TABLE-TCS] . final ~ '>';

}

-

-

-

}

void designate character set (parc, parv)/* parc and parv contain the count and valuesof the indermediate characters of thedesignating sequence */short int parc;
short int parv[MAX_NUM_INTERMEDIATES];{

short int n;
short int gset_number;short int set size;
boolean t compare designator();/* function declaration *//* ....... -:- ......... -:- ... *//* find which set we're designating */switch (parv[O]){case ')':/* 2/8 designate
gset number = 0;
set size = 94;
break;
case' (':/* 2/9 designate
gset number = 1;
set size = 94;
break;
case '*':/* 2/10 designate
gset number = 2;
set size = 94;
break;
case '+':/* 2/11 designate
gset number = 3;
set size = 94;
break;

94 into GO */94 into Gl */94 into G2 */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<MAX NUM CHAR SETS; n++)-{if ( compare designator(parc, parv, n){designated graphic sets[gset number] =char_set table[n].name;}}/* update the in use table withthe latest designations (if any)
for the invoked gsets */in use table.gl =designated graphic sets[in use table.invoked gl];if (conformance level >= 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 SETDECAUPSS

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 isdetermined 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 thatcharacter set. For example a value of "% 5" for Dscs indicatesthat the DEC Supplemental character set is the User-Preference
Supplemental set.
See the SCS command for more information on thedesignating 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 = % 5= 1, Dscs = 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 */.

}if (in use table.gr == UPSS G){; /* perform hardware dependent actions as needed */}}}Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-125
29-Jun-1990

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

DECRQUPSSu
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:DECNRCMlx, 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 andReset Mode control sequence. When 8-bit Multinational Charactersis selected (factory default), the terminal uses ASCII in GL andeither 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 fortransmission 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 has the side effect of re-initializing
the designated and invoked character sets to theirdefault state (the state at power-on or reset).
If 7-bit
NRCS Characters is selected, a 7-bit NRC Set may replace
U.S. ASCII in the default designations.

2.

8-bit Characters are temporarily disabled when in Levell(VT100 mode), or a 7-bit host line environment isselected. The DECNRCM sequence will still be recognized,
but in the case of the reset sequence, 8-bit characterswill 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 needto 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 moder 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 characterswhich 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 values of %to 1/15, and7/15 (0 - 31, and 127 decimal). The following is a description of
the control characters recognized by conforming devices. Allother CO control characters cause no action to be taken.
Control Col/Row Action Taken
NUL%

Ignored on input (notstored in input buffer) .
May be used as a time fillcharacter. Note: WhenControl Representation Modeis Set, NUL is not ignored,
but displayed, and may not
be used as a time fillcharacter.

ENQ

0/5

Transmit answerback message.

BEL

0/7

Causes bell tone to soundfrom keyboard.

BS

0/8

Causes the cursor to moveto the left one character
position, unless it is at
the left margin. Does notcause 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 moveto the next tab stop, or
the right margin if nofurther tab stops. Does
not cause wrap.

LF

0/10

Causes a line feed or a newline 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 resumetransmitting, if XOFF
handling is enabled.

XOFF

1/3

CAN

1/8

Causes terminal to stoptransmitting all codes
except XOFF and XON, if
XOFF handling is enabled.
If received during an escape orcontrol sequence, the sequenceis immediately terminated andnot executed. No character isdisplayed.

SUB

1/10

If received during an escape orcontrol sequence, the sequenceis immediately terminated andnot 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 (notstored in input buffer) .
May not be used as a time fillcharacter.

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 isat the bottom margin, ascroll up is performed.

NEL

8/5

NEXT LINE - Causes theactive position to moveto the first position on
the next line downward.
If the active position isat the bottom margin, ascroll action is performed.
(a CR LF is executed) .

HTS

8/8

HORIZONTAL TABULATION SET
Sets one horizontal
tabulation stop at thecolumn of the active
position (See also, TBC).

RI

8/13

REVERSE INDEX - Moves theactive position to thesame horizontal positionon the preceding line.
If the active position isat the top margin, ascroll 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 invokedfor the next single
displayed character.

SS3

8/15

SINGLE SHIFT 3 - Causes
the G3 set to be invokedfor 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 orabove. Conforming software
shall use DA. Note:
If
printer controller mode isenabled, the sequence will besent 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 indicate the presenceof characters in the data stream for which there is no graphic
representation.
This control is processed by placing a reversed
question mark in the display at the Active 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 inthe display with a cross-hatched pattern.

2.

Receipt of the Substitute character within an escape orcontrol sequence causes the sequence in progress to beaborted and the Substitute control function to be
executed instead (that is, the reversed question marksymbol will be displayed) .
(See the section "CodeExtension Layer" for a complete description of thehandling 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 questionmark.

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 thatsome modes are identified as User Preference Features (see thesection "Concepts and Conformance Criteria" for a list of themodes 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 (forexample, 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 thestate 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

h6/8

Sets/Resets one or more modes of the terminal as specified by eachselective 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 modeparameters 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 ModeLine 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 (?), theparameters 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
DECCOLMDECSCLMDECSCNM.
DECOMDECAWM
DECARM
DECPFF
DECPEXDECCEM
DECTEKDECNRCMDECVCCMDECPCCMDECKBUM
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 tobe permanently set, permanently reset, or not applicable, as
noted. Refer to that standard for further information concerningthese modes.
Mode
Mnemonic
EBM
FEAM
FETM
HEM
MATM
PUM
SATM
SRTM
TSM
VEM

5.10.2Mode 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-199070) 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 andReset 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 orboth 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 FUNCTIONSThis 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 LineDL - Delete LineDECIC - Insert Column
DECDC - Delete Column
ECH - Erase Character
EL - Erase in LineDECSEL - Selective Erase in LineED - 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 hCSI 4 1

Description: A conforming device shall provide the ability toselect 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 [setstate = 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 = REPLACE;}
Known Deviations:

None

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 valuesof 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 thisoperation is performed until it reaches the Right Margin, or thelast column of the Active Line.
If the Active Position is within
the Scroll Area, it will advance to the Right Margin.
If theActive Position is outside the Scroll Area, it will advance to thelast column of the Active Line.
If Auto Wrap mode is off, the Active Position will not advancebeyond the Right Margin or last column of the Active Line.
Additional graphic characters received will overwrite thisposition.
If Auto Wrap Mode is on and the Active Position is within thevertical Scroll Margins, the Active Position will advance from theRight Margin or last column of the Active Line, to the Left Marginof the next line (causing the display to scroll if necessary) whena 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 thelast column of the Active Line, to the first column of the nextline 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 ofInsert/Replacement Mode. When this mode is in the reset
state (Replace) the new data will overwrite existing dataat the Active Position. When this mode is in the set
state (Insert) the contents of the active line will beshifted 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 beinserted at the Active Position. A parameter value of zero or one
causes a single empty character to be inserted. A parameter valueof 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 thiscontrol is limited to the Active Line within the left andright margins. Data which is shifted beyond the Right
Margin is lost.

2.

If the active position is outside the left or rightmargin, this control is ignored.

3.

The Active Position is not affected by execution of thiscontrol.

4.

Execution of this control is not affected by the settingof 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 asingle character to be deleted. A parameter value of n causes ncharacters to be deleted. Data on the Active Line between the
Active Column and Right Margin is shifted left to close up thedeleted 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 thiscontrol is limited to the Active Line within the left andright margins.

3.

If the Active Position is outside the left or rightmargins, this control is ignored.

4.

The Active Position is not affected by execution of thiscontrol.

5.

Execution of this control is not affected by the settingof 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 ncauses 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 theactive 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 LINEDL

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 bedeleted 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 upwardfrom the Bottom Margin to the active line to accommodate thedeletion. Only that portion of the display between the top,bottom, left, and right margins is affected. DL is ignored if theactive 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 theactive 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, andright 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:Delete columns at the Active Position

Format:

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 portionof the display between the top, bottom, left, and right margins isaffected. DECDC is ignored if the active position is outside theScroll 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 asingle character to be erased. No reformatting of data on theline occurs, and the Active Position does not move.
Notes:
1.

The extent of the display affected by execution of thiscontrol is limited to the Active Line.
If a parametervalue is given which is greater than the distance fromthe 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 settingof 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 isthe empty character (imaged as SPACE), the empty rendition, andthe 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 toaffect 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 parametervalue 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 thiscontrol.

2.

The syntax of the EL control is identical to theSelective Erase in Line (DECSEL) control, except thatDECSEL 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 * lines-per_page +active-position.line;
if (parc == 0) parc = 1;
for (n=O; n<parc; n++){switch(parv[n]){case 0:for (x=active position. column;
X <= end-of line (line) ; x++)display [line] [x] . code = EMPTY CHARACTER;
break;
case 1:for (x=l; x<=active-position.column; x++)display [line] [x] . code = EMPTY_CHARACTER;
break;
case 2:for (x=l; x<=end of line(line); x++)display [line] [x] . code = EMPTY_CHARACTER;
break;}}}}/* end erase in_Iine() */Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-156
29-Jun-1990
ED

ERASE IN DISPLAY
Levels:

1-4

Purpose:Erase character positions within the display.

Format:

CSI
9/11

Ps
Ps

J

default ps: 0

4/10

Description:
The ED control causes a set of adjacent character
positions (extending across line boundaries) in the display 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 isdetermined by the parameter value. An omitted parameter or avalue of zero (0) cause the control to affect character positions
from the Active Position to the end of the bottom line in thedisplay (inclusive). A parameter value of one (1) causes thecontrol to affect character positions from the beginning of thefirst line of the display to the Active position (inclusive). A
parameter value of two (2) causes the control to affect all
character positions in the display (inclusive).
Notes:
1.

The Line Renditions of all lines completely erased (allcharacter positions in the line set to the erased state,that is, empty characters) as a result of execution ofthis control are set to single-width.

2.

This control affects the entire display and is notaffected by the setting of the scrolling region or thesetting of Origin Mode.

3.

The syntax of the ED control is identical to theSelective Erase in Display (DECSED) control, except thatDECSED includes a private parameter specifier?
(3/15).

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line_rendition [MAX_NUM_LINES]VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

Page 5-157
29-Jun-1990

Algorithm:/** erase in display*

both standard and selective erase*/
void erase in display(parc, parv, private)
short int parc;
short int parv[MAX NUM PARAMETERS];
boolean t private;{line t y;column t X;
short int base;short int line;
short int n;/* first line(-l) of current page *//* actual line in logical display *// * ................ * /if (private) selective erase in display(parc, parv);
else-{base = (active position.page-l) * lines per page;line = base + active position. line;-if (parc == 0) parc ~ 1;for (n=O; n<parc; n++){switch (parv [n] ){case 0:/* erase to end of display */for (x=active position. column;
X <= end-of line(line); x++)display [line] [x] . code = EMPTY CHARACTER;
if (active position. column = 1)line rendition[line] = SINGLE WIDTH;
for (y~line+l; y«base+linesyeryage); y++)
{

for
{

(x=l; x<=end of line(y); x++)--display[y] [x] . code = EMPTY CHARACTER;
line rendition[y] = SINGLE-WIDTH;}}

break;
case 1:/* erase from beginning of display */for (y=l; y«base+line); y++)
{

for
{

(x=l; x<=end of line(y); x++)--display[y] [x] . code = EMPTY CHARACTER;
line rendition[y] = SINGLE-WIDTH;}}

for (x=l; x<=active position. column; x++)display [line] [x] . code = EMPTY_CHARACTER;VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-158
29-Jun-1990

if (active position.column = end of line(line»
line rendition[line] = SINGLE WIDTH;
break;case 2:/* erase entire display */for (y=l; y«base+lines-per-page); y++)
{

for
{

(x=l; x<=end of line(y); x++)--display[y] [x] . code = EMPTY CHARACTER;
line rendition[y] = SINGLE-WIDTH;

}

-

-

}

break;}}}}/* end not private *//* end erase_in_display()

Known Deviations:

None

*/

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

DECSEL

SELECTIVE ERASE IN LINE
Levels:Page 5-159
29-Jun-1990

2x, 3x, 4x (Selective Erase)

Purpose:Change character positions within the Active Line whichhave the Selectively Erasable attribute to the Space character(2/0) .
Format:

CSI
9/11

?

3/15

Ps
Ps

K

default Ps: 0

4/11

Description:
The DECSEL control causes a set of adjacentcharacter positions in the Active Line which have the attribute"Selectively Erasable" to be changed to the Space character (2/0)
The character rendition and attributes associated with eachposition do not change.
Characters which have been entered into
the display with the Selectively Erasable attribute reset (Not
Selectively Erasable), as well as empty character positions, are
not affected by this control, and no reformatting of the data will
occur.
The set of character positions affected by this control isdetermined by the parameter value. An omitted parameter or avalue 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 affectcharacter positions from the beginning of the Active Line to theActive Column (inclusive). A parameter value of two (2) causes
the control to affect all character positions in the Active Line(inclusive)
Notes:
1.

Use of this control permits efficient "clearing" of partsof the screen while leaving other parts alone, such as inform filling applications.
(See Select Character
Attribute, DECSCA, for a description of how to invoke theselectively erasable character attribute).
Thiscapability is an extension to Level 2 and so is notavailable in all Level 2 terminals.

2.

This control is only executed if the Level 2 extension
Selectively Erasable Characters is supported.
In Level 1
operation and in other Level 2 devices it will beignored.

3.

The Line Rendition is not affected by execution of thiscontrol.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-160
29-Jun-1990

4.

The syntax of the DECSEL control is identical to theErase in Line (EL) control, except that DECSEL includes a
private parameter specifier?
(3/15).

5.

This control is not affected by the margins.

State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line_rendition [MAX_NUM_LINES] Algorithm:
void selective erase in line(parc, parv)
short int parc;-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 (parc == 0) parc = 1;
for (n=O; n<parc; n++){switch (parv [n] ){case 0:for (x=active-position.column;
x <= end_of_line(line); x++){if (display [line] [x] . attribute. selective erase)
display [line] [x] .code = 32;/* Space */}break;
case 1:for (x=l; x<=active-position.column; x++){if (display [line] [x] . attribute. selective erase)
display [line] [x] . code = 32;/* Space */}break;
case 2:for (x=l; x<=end_of_line(line); x++){if (display [line] [x] . attribute. selective erase)
display [line] [x] . code = 32;/* Space */}break;}}VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only}/* end selective erase in_line() */Known Deviations:

None

Page 5-161
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SELECTIVE ERASE IN DISPLAY
Levels:Page 5-162
29-Jun-1990
DEC SED2x, 3x, 4x (Selective Erase)

Purpose:Change character positions within the display which have
the Selectively Erasable attribute to the Space character (2/0).
Format:

CSI
9/11

?

3/15

Ps
Ps

J

default Ps: 0

4/10

Description:
The DECSED control causes a set of adjacentcharacter positions in the display which have the attribute"Selectively Erasable" to be changed to the Space character (2/0).
The character rendition and attributes associated with eachposition do not change. Characters which have been entered into
the display with the Selectively Erasable attribute reset (Not
Selectively Erasable), as well as empty character positions, are
not affected by this control, and no reformatting of the data will
occur.
The set of character positions affected by this control isdetermined by the parameter value. An omitted parameter or avalue of zero (0) cause the control to affect character positions
from the Active position to the end of the bottom line in thedisplay (inclusive). A parameter value of one (1) causes thecontrol to affect character positions from the beginning of thefirst line of the display to the Active Position (inclusive). A
parameter value of two (2) causes the control to affect all
character positions in the display (inclusive).
Notes:
1.

Use of this control permits efficient "clearing" of partsof the display while leaving other parts alone, such as
in form filling applications.
(See Select Character
Attribute, DECSCA, for a description of how to invoke theselectively erasable character attribute) .

2.

This control is only executed if the Level 2 extension
Selectively Erasable Characters is supported.
In Level 1
operation and in other Level 2 devices it will beignored.

3.

The Line Renditions of all lines are not affected byexecution of this control.

4.

This control affects the entire display and is notaffected by the setting of the scrolling region or thesetting of Origin Mode.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.

Page 5-163
29-Jun-1990

The syntax of the DECSED control is identical to theErase in Display (ED) control, except that DECSED
includes a private parameter specifier?
(3/15).

State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
line_renditTon[MAX_NOM_LINES] -Algorithm:
void selective erase in display(parc, parv)
short int parc;-short int parv[MAX_NUM_PARAMETERS];{

line t y;column t x;
short int base;/* first line(-l) of current page */short int line;/* actual line in logical display */short int n;/* . . . . . . . . . . . . . . . . */base = (active-position.page-1) * lines-per-page;line = base + active-position.line;
if (parc == 0) parc = 1;
for (n=O; n<parc; n++){switch (parv [n] ){case 0:/* erase to end of display */for (x=active-position.column;
x <= end_of_line(line); x++){if (display [line] [x] . attribute. selective erase)
display [line] [x] . code = 32;/* Space */}if (active-position.column = 1)line rendition[line] = SINGLE WIDTH;
for (y=line+1; y«base+lines-per-page); y++){for (x=l; x<=end of line(y); x++){--if (display[y] [x] . attribute. selective erase)
display[y] [x] . code = 32;/* Space */}}break;
case 1:/* erase from beginning of display */for (y=l; y«base+line); y++)

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-164
29-Jun-1990{

for (x=l; x<=end_of_1ine(y); x++){if (disp1ay[y] [x] . attribute. selective erase)
disp1ay[y] [x] . code = 32;/* Space */}}for (x=l; x<=activeyosition.co1umn; x++){if (display [line] [x] . attribute. selective erase)
display [line] [x] . code = 32;/* Space */}if (active position.co1umn = end of 1ine(line))line rendition[line] = SINGLE WIDTH;
break;case 2:/* erase entire display */for (y=l; y«base+1inesyeryage); y++){for (x=l; x<=end of 1ine(y); x++)

-

{

-

if (disp1ay[y] [x] . attribute. selective erase)
disp1ay[y] [x] . code = 32;/* Space */}}break;}}}/* end selective erase in_disp1ay() */Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.11.1Page 5-165
29-Jun-1990

Character Attributes

Each character cell in the display may also have logical(non-visual) attribute associated with it, which affect its
characteristics when processed or retransmitted by the terminal.
These attributes can be combined in any manner for each character
position independently.
The architecture requires that eachcharacter attribute and every character attribute combination tohave effect individually and independently from every othercharacter attribute and character rendition (see previous
section). Character attributes apply to all graphic characterscodes (2/1 to 7/14 inclusive, and 10/1 to 15/14 inclusive) as wellas to the Space character (2/0).

5.11.1.1 Normal Character Attribute - The Normal character
attribute defines the non-visible attributes in the physicaldisplay in its "natural" state, that is, where the character
behaves with no special non-visible attributes.

5.11.1.2 Selectively Erasable Character Attribute - One logicalattribute may be applied to characters as a Level 2 or higher
extension. This attribute is referred to as "Selectively Erasable
Character". When this extension is provided, the terminal willrecognize two forms of the commands Erase In Line andErase In Display: one in which all characters in the given extent
are erased, regardless of their logical attributes, and another inwhich all character in the given extent which have been assigned
the Selectively Erasable Character attribute are turned into Space
characters (2/0).
(See the Select Character Attribute, Erase In
Line, and Erase In Display control functions for a complete
description of this feature).

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-166
29-Jun-1990

SELECT CHARACTER ATTRIBUTE
Levels:DECSCA2x, 3x, 4x (Selective Erase)

Purpose: Designate the character attribute(s) to be applied toall subsequent characters entered into the display.
Format:

CSI
9/11

Ps ;
Ps ;

; Ps
; Ps

"

q

default Ps: 0

2/2 7/1

Description:
The DECSCA control selects the character attribute(logical attribute) to be applied to all subsequent characters
entered into the display.
The parameter values indicate the
combination of attributes to be selected as indicated in thefollowing table:
Parameter

RenditionoAttributes off
Not Selectively Erasable(attribute on)
Selectively Erasable12
Notes:
1.

Character attribute parameter values are assigned inpairs.
The lower (odd) value sets the attribute to theon state and the higher (even) value resets the attributeto the off state (same as normal or when all attributes
are turned off (value 0).

2.

All other parameter values will be ignored.

3.

Attributes may be selected in any combination, and will
be rendered appropriately.
Selecting additional
attributes does not affect the setting of previously
selected attributes (newly selected attributes will be
combined with previously selected attributes) unless all
attributes are turned off (parameter value zero (0».

4.

In no way does the selection of attributes affect therendition (SGR) or attributes (DECSCA) of characters
already entered into the display.

5.

This control is ignored unless the Level 2 or higher
extension for Selectively Erasable Characters is
supported. The Selectively Erasable Character attributeaffects the execution of the controls Selective Erase In
Line (DECSEL) and Selective Erase In Display (DECSED).

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-167
29-Jun-1990

State Affected:

Algorithm:
void select character attribute(parc, parv)
short int-parc;
short int parv[MAX_NUM_PARAMETERS];{

short int n;/ * ................ * /if (conformance level >= 2){
if (parc == 0) parc = 1;
for (n=O; n<parc; n++){switch (parv [n] ){case 0:current attribute.selective erase = TRUE;
break;
case 1:current attribute. selective erase = FALSE;
break;
case 2:current attribute.selective erase = TRUE;
break;}}}} /* end select_character_attribute() */Known Deviations:

None

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.12

Page 5-168
29-Jun-1990

OLTP FEATURES

This subsection describes features defined at Level 4 to improve
performance for On Line Transaction Processing (OLTP). These
include Rectangular Area Operations, Data Integrity Checking, andText Macros.

5.12.1

Rectangular Area Operations

This subsection describes the following functions used to edit
data, or control editing of rectangular areas in the Logical
Display.
DECCRA - Copy Rectangular Area
DECFRA - Fill Rectangular Area
DECERA - Erase Rectangular Area
DECSERA - Selective Erase Rectangular Area
DECCARA - Change Att In Rectangular Area
DECRARA - Reverse Attributes Rectangular Area
DECSACE - Select Attribute Change Extent

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-169
29-Jun-1990

COPY RECTANGULAR AREA
Level:

DECCRA

4

Purpose: To copy a rectangular array of characters from one partof a logical display page to another.
Format:CSI
9/11

Pts; PIs; Pbs; Prs; Pps; Ptd; Pld; Ppd
Pts; PIs; Pbs; Prs; Pps; Ptd; Pld; Ppd

$
2/4

v

7/6

Description: When this control is received, the terminal copies
the character values and attributes in the specified rectangulararea of character positions defined by Pts, PIs, Pbs, and Prs on
the specified page Pps, to the area specified by the coordinate
Ptd, Pld on the specified page Ppd. Pts, Pbs, and Ptd are line
numbers. PIs, Prs, and Pld are column numbers. Pps and Ppd are
page numbers.
The character positions (Pts, PIs) and (Pbs, Prs)
define the rectangular area that is to be copied from page Pps.
The coordinates of the rectangular area are affected by thesetting of Origin Mode.
This control is not otherwise affected by
the margins.
If the rectangular area contains both single and double widthlines, the area copied FROM may not appear rectangular on thedisplay. For example if Pl=5 and Pr=10, then characters 5 through10 from all lines within the rectangular area will be copied
whether they are single width or double width characters. Text
copied to the destination area take on the line attributes of thatarea.
Pts must be less or equal to Pbs, and PIs must be less than orequal to Prs, otherwise the entire control function is ignored.
Default values are Pts = 1, PIs = 1, Pbs = last-line-of-page, Prs= last-column-of-page, Pps = 1, Ptd = 1, Pld = 1, and Ppd = 1.
Ifa value exceeds the width or height of the active page, it istreated as the width or height of the active page.
If a pagevalue exceeds the number of pages available in the current Page
Configuration, it is treated as the last page in the current
configuration.
If the destination rectangle specified is partially off of thePage, clipping of information will occur; only information which
will appear in valid character positions in the page will becopied.
The Active Position does not change.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
FILL RECTANGULAR AREA
Level:

Page 5-170
29-Jun-1990
DECFRA

4

Purpose:To fill a group of adjacent character positions definedby a rectangular area.
Format:CSI
9/11

Pch ; Pt ; PI ; Pb ; Pr
Pch ; Pt ; PI ; Pb ; Pr

$

2/4

x
7/8

Description: When this control is received, the terminal fills
the rectangular area of character positions defined by Pt, PI, Pb,
and Pr, replacing both the character and the rendition present inthose character positions with the character defined by thedecimal value of Pch and the current renditions set through the
SGR command.
The Pch parameter may be a decimal value from 32 to 126, or from
160 to 255.
The decimal value refers to the character in thecurrent GL and GR "in-use" character table, which is used to fill
the specified rectangular area.
If the value of Pch is not in theabove range, the command is ignored.
Pt and Pb are line numbers, and PI and Pr are column numbers.
The
character positions (Pt, PI) and (Pb, Pr) define the rectangulararea.
The coordinates of the rectangular area are affected by thesetting of Origin Mode.
This control is not otherwise affected by
the margins.
Pt must be less or equal to Pb, and PI must be less than or equal
to Pr, otherwise the entire control function is ignored. Default
values are Pch = 32, Pt = 1, Pb = last-line-of-page, PI = 1, andPr = last-column-of-page.
If a value exceeds the width or heightof the active page, it is treated as the width or height of theactive page.
Notes on DECFRA:
1.

If the rectangular area contains both single and double
width lines, the area affected may not appear rectangularon the display. For example if PI=5 and Pr=10, then all. lines within the rectangular area, whether single or
double width, will have character positions 5 through 10
affected.

2.

DECFRA does not change any line attributes. Double
height or double width characters will be filled into
positions on lines containing those attributes.
The
Active Position does not move.

VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only

DECERAERASE RECTANGULAR AREA
Level:

Page 5-171
29-Jun-1990

4

Purpose:To erase a group of adjacent characters defined by arectangular area.
Format:CSI
9/11

Pt ; PI ; Pb
Pt ; PI ; Pb

Pr
Pr

$

z

2/4

7/10

Description: When this control is received, the terminal erases
the rectangular area of character positions defined by pt, PI, Pb,
and Pr, clearing all character attributes. Line attributes are
not changed. When an area is erased, all characters are replacedwith the Space character (2/0). Any unoccupied character
positions remain unoccupied.
The Active Position does not move.
Pt and Pb are line numbers, and PI and Pr are column numbers.
The
character positions (pt, PI) and (Pb, Pr) define the rectangulararea.
The coordinates of the rectangular area are affected by thesetting of Origin Mode.
This control is not otherwise affected by
the margins.
Pt must be less or equal to Pb, and PI must be less than or equal
to Pr, otherwise the entire control function is ignored. Default
values are Pt = 1, Pb = last-line-of-page, PI = 1, and Pr =last-column-of-page.
If a value exceeds the width or height of
the active page, it is treated as the width or height of theactive page.
Notes on DECERA:
1.

If the rectangular area contains both single and double
width lines, the area affected may not appear rectangularon the display. For example if Pl=5 and Pr=10, then alllines within the rectangular area, whether single or
double width, will have character positions 5 through 10
affected.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SELECTIVE ERASE RECTANGULAR AREA
Level:

Page 5-172
29-Jun-1990
DEC SERA

4

Purpose:To erase a group of unprotected characters defined by arectangular area.
Format:CSI
9/11

Pt ; PI ; Pb
Pt ; PI ; Pb

Pr
Pr

$
2/4

{

7/11

Description: This control function erases unprotected characterswithin the rectangular area of character positions defined by Pt,
PI, Pb, and Pro Unprotected characters are those with the"Selective Erase" character attribute (see DECSCA). When acharacter is erased, it is replaced with the Space character(2/0). Unoccupied character positions are not affected.
Thissequence does not change or clear any video character attributes(SGR or DECSCA), video line attributes, or the selection
attribute.
The active position does not move.
Pt and Pb are line numbers, and PI and Pr are column numbers.
The
character positions (Pt, PI) and (Pb, Pr) define the rectangulararea.
The coordinates of the rectangular area are affected by thesetting of Origin Mode. This control is not otherwise affected by
the margins.
Pt must be less or equal to Pb, and PI must be less than or equal
to Pr, otherwise the entire control function is ignored. Default
values are Pt = 1, Pb = 1ast-line-of-page, PI = 1, and Pr =last-column-of-page.
If a value exceeds the width or height of
the active page, it is treated as the width or height of theactive page.
Notes on DECSERA:
1.

If the rectangular area contains both single and double
width lines, the area affected may not appear rectangularon the display. For example if PI=5 and Pr=10, then alllines within the rectangular area, whether single or
double width, will have character positions 5 through 10
affected.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-173
29-Jun-1990

CHANGE ATTRIBUTES RECTANGULAR AREA
Level:

DECCARA

4

Purpose: To change the character rendition of a group of adjacentcharacters without having to re-write them.
Format:CSI
9/11

Pt ; Pl ; Pb ; Pr ; Ps1 ; Ps2 ... Psn
Pt ; Pl ; Pb ; Pr ; Ps1 ; Ps2 ... Psn

$

r

2/4

7/2

Description: This sequence changes the video attributes (bold,blink, underline, and reverse) for all of the character positions
in a rectangular are? without altering any characters in thosepositions. The active position does not move.
The area of the page which is affected is indicated by the first 4
parameters. Pt and Pb are line numbers; Pl and Pr are column
numbers.
The character positions (Pt, Pl) and (Pb, Pr) define the
top-left and bottom-right corners of the rectangular area. Pt
must be less than or equal to Pb, and Pl must be less than orequal to Pro Default values are Pt = 1, Pb = last-line-of-page,
Pl = 1, and Pr = last-column-of-page.
If a value exceeds thewidth or height of the active page, it is treated as the width orheight of the active page.
The coordinates of the rectangular area are affected by thecurrent setting of Origin Mode. This control is not otherwise
affected by the margins.
The character positions affected depend on the current setting of
DECSACE (STREAM or RECTANGLE). See DECSACE for details.
The video attribute(s) that the character positions are set to isindicated by one or more subsequent selective parameters. These
parameters correspond to the parameters of the Set Graphic
Rendition control function (SGR):
Parameter

o
1
4

5
7

22
24
25
27

Parameter Meaning
Attributes off (normal intensity,
positive image, not underlined,
not blinking)Bold or increase intensity
Underscore
Blink
Negative (reverse) image
Normal intensity
Not underlined
Not blinking
Positive imageVSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-174
29-Jun-1990

All other parameter values shall be ignored unless they are partof a well defined extension to the architecture (such as Color
Text). When multiple parameters are used, they are cumulative, as
if several DECCARA control functions were received and executed insequence.
The default for the video attribute parameters, if no valid
subsequent parameter is received, is 0, which will clear all video
attributes in the specified area.
This command does not change
the current graphic rendition.
Notes on DECCARA:
1.

If the rectangular area contains both single and double
width lines, the area affected may not appear rectangularon the display. For example if Pl=5 and Pr=10, then alllines within the rectangular area, whether single or
double width, will have character positions 5 through 10
affected.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-175
29-Jun-1990

REVERSE ATTRIBUTES RECTANGULAR AREA
Level:DECRARA

4

Purpose: To reverse character attributes of a group of adjacentcharacters without having to re-write them.
Format:CSI
9/11

Pt ; PI ; Pb ; Pr ; Ps1 ; Ps2 ... Psn
Pt ; PI ; Pb ; Pr ; Ps1 ; Ps2 ... Psn

$
2/4

t

7/4

Description: This sequence reverses one or more video attributes(bold, blink, underline, reverse) for all of the character
positions in a rectangular area without altering any characters inthose positions. The active position does not move.
To reverse
the attribute bit within the specified range means to set the
specified attribute bits if it was not previously set, and reset
the bit(s) if it was already set.
The area of the page which is affected is indicated by the first 4
parameters. Pt and Pb are line numbers; PI and Pr are column
numbers.
The character positions (Pt, PI) and (Pb, Pr) define the
top-left and bottom-right corners of the rectangular area.
The coordinates of the rectangular area are affected by thesetting of Origin Mode. This control is not otherwise affected by
the margins.
The character positions affected depend on the current setting of
DECSACE (STREAM or RECTANGLE). See DECSACE for more details.
Pt must be less or equal to Pb, and PI must be less than or equal
to Pr, otherwise the entire control function is ignored. Default
values are Pt = 1, Pb = last-line-of-page, PI = 1, and Pr =last-column-of-page. If a value exceeds the width or height of
the active page, it is treated as the width or height of theactive page.
The video attribute(s) to be reversed are in the affected area are
indicated by one or more subsequent parameters. These parameters
are similar to the parameters of the Set Graphic Rendition control
function (SGR):
Parameter

o
1

4
5

7

Parameter Meaning
Reverse all attributes
Reverse bold attribute
Reverse underscore attribute
Reverse blinking attribute
Reverse negative (reverse) image attribute

All other parameter values shall be ignored unless they are part

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-176
29-Jun-1990

of a well defined extension to the architecture. Note if theColor Text Extension is present, the color text SGR values are
ignored since the "reverse" of a color is not defined by theextension.
When multiple parameters are used, they are cumulative, as if
several DECRARA control functions were received and executed insequence.
There is no default for the video attribute parameters, if novalid subsequent parameter is received, the command is ignored.
This sequence does not change the current graphic rendition (seeSGR) .
Notes on DECRARA:
1.

If the rectangular area contains both single and double
width lines, the area affected may not appear rectangularon the display. For example if Pl=5 and Pr=10, then alllines within the rectangular area, whether single or
double width, will have character positions 5 through 10
affected.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SELECT ATTRIBUTE CHANGE EXTENTLevel:

Page 5-177
29-Jun-1990
DECSACE

4

Purpose: To specify what character positions are affected by
DECCARA and DECRARA control functions (STREAM or RECTANGLE)
Format:

CSI
9/11

Ps
Ps

*
2/10

x
7/8

Ps = 0 stream of character positions are affected (default)
Ps = 1 stream of character positions are affected
Ps = 2 rectangular area of character positions are affected
Description: This control function is used to specify whatcharacter positions are affected by the DECCARA and DECRARA
control functions.
When Ps = 0 or 1, DECCARA and DECRARA affects the stream ofcharacter positions beginning with the first character position
specified in the command, and ending with the second character
position specified. The following diagram shows an example ofthese character positions. The two asterisks represent thecharacter positions specified in the DECCARA or DECRARA control
function.
The "U"'s represent unoccupied character positions.
These unoccupied positions are not affected by DECCARA or DECRARA
when in this mode.

+-----------------+
11

1 *##############1
I########UUUUUUUUUI
1#################1
1###########*
1
1

Ps

= 0

1

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

When Ps = 2 DECCARA and DECRARA affects all character positions
within a rectangular area, the top-left and bottom right cornersof which are specified in the control function.
The following
diagram shows an example of these character positions. The twoasterisks represent the character positions specified in the
DECCARA or DECRARA control function.
The "U"'s represent
unoccupied character positions. When DECCARA or DECRARA is
executed, these character positions are changed to blanks and are
affected.

VSRM - Character Cell DisplayEL-00070-05
Digital Internal Use Only
For Review Only

Page 5-178
29-Jun-1990+-----------------+
1

1

1

1
1

*#########
1##########UUUUUI##########
1#########*
1

1

1

1

Ps

=2

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

In both cases the specified character positions (marked byasterisks) are also affected.

Page 5-179
29-Jun-1990

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.12.2

Data Integrity

The data integrity features described here are application
functions intended to improve the reliability of OLTP
applications. They are not a substitute for error freecommunications as might be provided by an error correcting
protocol.

DECRQCRAREQUEST CHECKSUM OF RECTANGULAR AREA
Level:

4

Purpose: To cause the terminal to compute and report the checksumof a rectangular area, allowing applications to insure it has notbeen changed.
Format:CSI
9/11

Pid ; Pp ; Pt ; PI ; Pb ; Pr
pid ; Pp ; Pt ; PI ; Pb ; Pr

*
2/10

Y

7/9

Description: Upon receipt of a DECRQCRA by the device, a checksumof the indicated rectangular area of the indicated page will be
generated and reported to the host in a Checksum Report (DECCKSR).
pid is an arbitrary numeric label provided by the application to
identify the checksum request.
It will be provided in the DECCKSR
response from the device. This label serves to differentiate
between multiple checksum reports if necessary.
Pp is the page number where the rectangular area of interest is
located.
If Pp is 0 or omitted, subsequent parameters are ignored
and a checksum for all page memory will be reported.
If Pp ishigher than the total number of pages available in the device, thehighest numbered page is used.
The final four parameters indicate the top, left (Pt, PI) andbottom, right (Pb, Pr) coordintate of the rectangular area on page
Pp of which the checksum is to be calculated. The coordinates of
the rectangular area are affected by the setting of Origin Mode
(DECOM). Pt must be less than or equal to Pb, and PI must be lessthan or equal to Pr or the sequence is ignored.
Default values are: Pt = 1; Pb = last-line-of-page; PI = 1; andPr = last-column-of-page.
If the final four parameters areunspecified, a checksum of page Pp is generated.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
MEMORY CHECKSUM DEVICE STATUS REPORT
Level:

Page 5-180
29-Jun-1990
DSR

4

Purpose:To request a checksum of the current text macrodefinitions, allowing the host to insure they have not beenchanged.
Format:

CSI
9/11

?

6

3/15

3/6

3
Pid
3/3 ; Pidn

6/14

Description:
This request causes a Checksum Report (DECCKSR) to
be issued reporting the checksum of current text macrodefinitions.
pid is an optional numeric parameter which provides a label toidentify the checksum request.
It will be provided in the DECCKSR
response from the terminal.
This label serves to differentiate
between multiple checksum reports if necessary.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
. For Review Only
1
1
1
1
1
1

CHECKSUM REPORT
Level:

Page 5-181
29-Jun-1990
DECCKSR

4

Purpose:To report a requested checksum.

Format:

DCS
9/0

1

I.
1
1
1
1
1

1

I
1
1
1

1
1
1
1
1

Pn
Pn

!

3/2

7/14

D ••• DD ••• DST
9/12

Description: DECCKSR is issued in response to a Request Checksumof Rectangular Area (DECRQCRA) or a Device Status Report (DSR)
with a parameter value of ?63 indicating a request for a checksumof the macro definitions.
The numeric parameter of the DECCKSR control string is a numericlabel for the checksum report specified in the DECRQCRA or DSR
control function.
This label serves to differentiate between
multiple checksum reports if necessary.
The data of the control string consists of four hexadecimal digits(3/0 through 3/9 and 4/1 through 4/6) indicating the checksum.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.12.3

Page 5-182
29-Jun-1990

MacrosDECDMAC

DEFINE MACRO
Level:

4

Purpose:To define a string of characters as a text macro,
allowing the host to shorten subsequent transmissions.
Format:

DCS
9/0

Pid
Pid

Pdt ; PenPdt ; Pen

2/1z

D .•• D

7/10

D ... D

ST
9/12

Where
pid is the macro ID number:
0-63.
Pdt is the delete control:o delete only a macro with the same ID number(if one exists) before defining this macro.
1 delete all macro definitions before defining
this macro.
Pen is the macro encoding:o text (ASCII) encoding.
1hex pair encoding.
Description:
This control string defines a macro consisting of
ANSI commands. Once defined, a macro can be invoked using DECINVM
to cause the macro's definition to be processed by the terminal as
if received from the host.
Omitted parameters are defaulted to zero. Pid must be a number
between 0 and 63; Pdt 0 or 1; and Pen 0 or 1; otherwise thecontrol will be ignored.
The data of the control string is the series of text and ANSI
commands which are performed when the macro is invoked.
Macros can invoke other macros with up to 16 levels of nesting,but cannot invoke themselves recursively. Macro definitions
cannot be nested.
That is, a DECDMAC cannot be included as partof a macro definition.
When text encoding is used (Pen = 0), the macro consists of thegraphic characters appearing in the control string. Only
characters from 2/0 through 7/14 and 10/00 through 15/15 may be
included in a macro using this encoding method.
When hex pair encoding is used (Pen = 1), each pair of charactersin the definition represents the hex value of a single ASCIIVSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-183
29-Jun-1990

character which will be stored in the definition of the macro.
Ifa non-hex pair is encountered that is not a valid repeat sequence,the entire macro definition is ignored.
A Repeat Introducer (!) is defined to allow a string of hex pairs
to be repeated in the definition any number of times. Repeat
sequences are imbedded within the text of the macro definition.
If a non-hex character is encountered in the repeat string, theentire macro definition is ignored.
The format is:! Pn ; D ... D ;Whereis the repeat introducer
is a numeric parameter which specifies the numberof times to repeat the sequence.
If Pn is not
specified, the sequence is inserted into thedefinition once.
D ... D is the sequence to repeat within the definition,
Pn times.
;
A semicolon separates the repeat count from thesequence of hex pairs. Another semicolon terminates
the sequence.

Pn

If any non parameter characters are encountered before the first
semicolon, the entire macro definition is ignored.
If a string
terminator is encountered before the final semicolon, the repeat
string is terminated normally.
6k bytes of RAM is available for storage of macro definitions.
Any macro definitions which cannot fit in the remaining macro
storage space are ignored.
All macro definitions are cleared on receipt of a Reset to Initial
State (RIS) or Secure Reset (DECSR).
Soft Terminal Reset (DECSTR)
has no effect on stored macro definitions.
Note that characters from 0/8 through 0/13 can be included toformat the device control string, but are not part of the macrodefinition.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INVOKE MACRO
Level:

Page 5-184
29-Jun-1990
DECINVM

4

Purpose:To invoke a previously defined macro definition.

Format:

CSI
9/11

Pid
pid

*

2/10

z
7/10

Description: Causes the specified macro to be invoked. The macro
must have been previously defined using DECDMAC. The terminal
substitutes the DECINVM sequence with the contents of the macrodefinition, and executes the substituted text.
Pid is the macro id number.
If a macro is not found with thespecified id, the command is ignored.
The current state of the machine is not saved or restored whenmacros are invoked. Any functions executed by a macro invocation
are still in effect when the macro invocation finishes.
If the terminal is in Printer Controller mode, the macro is not
expanded by the terminal. The command to invoke the macro ispassed on to the printer, to be expanded by the printer's text
macro facility.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

DECMSR

MACRO SPACE REPORT
Level:

Page 5-185
29-Jun-1990

4

Purpose: To report the space remaining for macro definitions in
response to DSR request.
Format:

CSI
9/11

Pn
Pn

*

2/10

{

7/11

Description: DECMSR is reported in response to a Device Status
Report (DSR) with a private selectable parameter ?62, specifying arequest to report the available space for macro definitions.
The numeric parameter specifies the number of bytes available formacro definitions divided by 16 (rounded down) .

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.13
5.13.1Page 5-186
29-Jun-1990

SAVING AND RESTORING TERMINAL STATE
Cursor Save Buffer

A conforming device shall provide a means of saving and restoringon command the value of the Active Position, as well as certain of
the terminal states. The state which must be saved in Levell
operation includes the Current Rendition value (determined by themost recent occurrence of Select Graphic Rendition), the current
value of Origin Mode, the character sets-designated to GO, G1, G2,
and G3, and the character set most recently invoked into the left
hand side (GL) of the In Use Table.
In Level 2 operation, all of this state must also be saved, as
well as the character set most recently invoked into the righthand side (GR) of the In Use Table.
If the Level 2 extension
Selectively Erasable Characters is supported, the Current
Attribute value (determined by the most recent occurrence of
Select Character Attribute) must be saved.
If the ANSI Color Text
Extension is supported, the current foreground and background text
writing colors are saved as part of the Current Rendition.
Level 3 and 4 require the same information as Level 2.

VSRM - Character Cell Display EL-00070-05
Digital . Internal Use Only
For Review Only
SAVE CURSOR
Levels:Page 5-187
29-Jun-1990
DECSC

1-4

Purpose:Saves the Active Position and other selective state
information.
Format:

ESC
1/11

7

3/7

Description:
In Levell operation, the DECSe control provides ameans of storing the values of the Active position, the Current
Rendition, Origin Mode, the currently designated GO, G1, G2, andG3 sets, and the currently invoked GL set.
In Level 2 or higher it also stores 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
can later be restored using the DECRC control.
Notes:
1.

Only one level of storage is provided by this control.
Each additional execution of this control will cause
previously stored values to be lost.

2.

The values of the specified state information (see above)
are not affected by the execution of this control.

3.

On initialization or reset the values of the save buffer
are cleared to the following state:
position. line = 1;
position. column = 1;
position.page = 1;
rendition.bold = FALSE;
rendition.underscore = FALSE;
rendition.blink = FALSE;
rendition. reverse = FALSE;
attribute. selective erase = FALSE;
origin mode = ABSOLUTE;
left =-in use table.gl;right = in use table.gr
gO = designated graphic sets[O];gl = designated-graphic-sets[l];g2 = designated-graphic-sets[2];g3 = designated graphic-sets[3];4.

Execution of Soft Terminal Reset (DECSTR) also causes theSave Buffer to be set to the default values as given
above.

VSRM - Character Cell Display EL-00070-05. Digital Internal Use Only
For Review Only

Page 5-188
29-Jun-1990

State Affected:
save buffer t

cursor_save_buffer;

Algorithm:
void save cursor(){
cursor save buffer.position.line =-active-position.line;
cursor save buffer.position.column =-active-position.column;
cursor save buffer.position.page =-active-position.page;
cursor save buffer.rendition.bold =current rendition.bold;cursor save buffer~rendition.underscore =current rendition.underscore;cursor save buffer~rendition.blink =current rendition.blink;
cursor save buffer~rendition.reverse =current rendition. reverse;
cursor save buffer~origin mode = origin mode;cursor-save-buffer.left =-in use table.gl;cursor-save-buffer.gO = designated graphic sets[O];cursor-save-buffer.gl = designated-graphic-sets[l];cursor-save-buffer.g2 = designated-graphic-sets[2];cursor-save-buffer.g3 = designated-graphic-sets[3];if (conformance level >= 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 ameans of restoring the values of the Active Position, the Current
Rendition, Origin Mode, the currently designated GO, G1, G2, andG3 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 notaffected by execution of this control.

3.

If the restored cursor position lies outside of thescrolling region, and the restored value of Origin Modeis set, the Active position will be moved to the closest
position within the scrolling region.
That is, if therestored cursor position is above the Top Margin, theActive position will be set to the Top Margin, and if therestored position is below the Bottom Margin, the Active
position will be set to the Bottom Margin.
In eithercase, 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 issubsequently changed to 10,15; when the cursor isrestored, 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 guaranteethat the Active Position will always be within the boundsof the scrolling region, and will never have a negativevalue.

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 modein 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 therestored cursor position lies outside of the scrolling region, andthe 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 querymost of the settable state in the terminal. Terminal state isdivided 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 statesuch as tab stops and character sets. The terminal provides
control functions to query state in each of these catagories, aswell 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 asingle 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 selectablemode (example:
SGR).
DECRPSS - Report Selection or Setting
Sequence sent from terminal to host to report settings andselections 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 - DECTABSRDECRSPS - Restore Presentation State
Control string sent from host to terminal to restore thepresentation 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 mostterminal state in one compact sequence.
DECRSTS - Restore Terminal State
Control string sent from host to VT420 to restore theterminal 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 aReport Mode control sequence (DECRPM) which specifies the state of
the mode as follows:(0) Unknown (mode is not recognized byterminal); (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 aseither Set or Reset. DEC Private modes that cannot be set or
reset from the host will report as unknown [Reason: the list islong 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 tobe 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 ***DECCOLMDECSCLMDECSCNMDECOMDECAWM
DECARM

?18
?19
?25

DECPFF
DECPEXDECTCEM

?42
?60
?61
?64
?66
?67
?68
?69
?73

DECNRCMDECHCCM *DECVCCMDECPCCMDECNKMDECBKMDECKBUMDECVSSMDECXRLM

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 canonly report RESET). CRM can not be changed fromthe host.
The terminal will not respond to a DECRQM sequencewhen 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 thestate of a particular selectable mode to the host.
The first
selective parameter (PsI) is the selectable mode number (thequestion mark ("?") must be added for DEC private selectablemodes), that was requested from the DECRQM sequence. The second
selective parameter (Ps2) indicates the state of that mode:
Ps2

State of mode

0
1
2
3
4

UNKNOWN (mode not recognized by terminal) .
Mode is in SET state
Mode is in RESET state
Mode is in SET state, and cannot change
Mode is 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 ... DST
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 thedevice control string for DECRQSS contains the identifying
intermediate and final characters of the control sequence used tomake the selection. For example, if the command is to request thestate 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 selectablethrough the following sequences to be determinedthrough DECRQSS:
Setting Control Sequence

Abbreviation

Select Active Status Display
DECSASD
Select Attribute Change Extent DECSACE
Set Character Attribute
DECSCA
Set Conformance LevelDECSCLDECSCPPSet Columns Per Page
DECSLPPSet Lines Per Page
Set Number of Lines per Screen DECSNLSDECSSDT
Set Status Line Type
Set Left and Right Margins
DECSLRM
DECSTBMSet Top and Bottom Margins
Set Graphic Rendition
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 .•• DST
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:Psmeaningo

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 toselect or set the parameter being inquired, based on the current
setting or selection of that parameter, with the single exceptionof 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 casewhere there is no default value for the inquired parameter, thereturned control function will be constructed so as to overwrite
the existing setting or selection, if and when that information isreturned to the device.
For example, if the current Graphic Rendition is blinking, andreversed, the data would consist of the characters '0;5;7m', whichis 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 andtab stops).
Format:CSI Ps9/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 DECPSRoignored, 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 andtab stops, terminal to host) .
Format:

DCS
9/0

Ps
Ps

$

u

2/4

7/5

D ••• DD ••. DST
9/12

Description: The Presentation State Report is a device control
string containing data which represents the settings ofpresentation attributes in the terminal. A Presentation State
Report is sent in response to a Request Presentation State Reportcontrol sequence (DECRQPSR).
The type of Presenation State Report is specified by the value of
Ps:
Ps
Type of DECPSRo12illegalCursor 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
DECCIRCURSOR 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 ... DST
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, thePp 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 isset (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 indicatesthat the rendition has been selected.
Example:if bold and underline are set theterminal would report a single byte, coded inbinary 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 (1through 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 andmodes that must be saved, according to thefollowing bit-encoded format:
bit 8: always reset (0)bit 7: always set (1)bit 6: extension indicator:
if this bit isset (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 (asindicated). Example:
if origin mode DECOM isset, 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, PgrCharacter G-sets which are currently invoked
into GL and GR.
These parameters arecharacters 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 thefollowing 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 isset (1) , another byte of charactersize 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 indicatesthat the graphic set contains a 96-charactercharacter set.
If the bit is reset, thegraphic set contains a 94-character characterset. Example:
if ISO Latin Alphabet Nr 1
Supplemental, a 96-character character set isdesignated into G2 and G3, and ASCII, a94-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".
SdesigA string of bytes which consist of the stringsof designating tails of the character sets
designated into GO, G1, G2, and G3, in thatorder. The designating tail consists of theintermediate and final characters of theSelect Character Set (SCS) designating escapesequence 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 User
Preference Supplemental Set (UPSS) designator
if that is how a character set was designated.
DECRQUPSS can be used to determine the actual
UPSS if needed.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only

Page 5-203
29-Jun-1990

ExampleAn example DECCIR report, assuming the default
state of the terminal would be:<DCS>1$u1;1;1;@;@;@;0;2;@;BB«<ST>

indicating that:"1;1;1" - cursor home on first page"@;@" - no graphic rendition or character
attribute active; DECOM reset, no SS2, SS3, orauto-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 REPORTDECTABSR

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 ... DST
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 ••• DST
9/12

Description: This device control string is sent to reset theterminal to the presentation state described in the data of thecontrol string. This DCS takes one selective parameter, whichindicates 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 DECPSRoerror, 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 encodedin the data of the control string.
If an invalid value is detected, the terminal will ignore theerror, if possible, and if not will ignore the remainder of thedata, parsing until a ST control is encountered. This may leave
the terminal state partially unrestored. No error indication isreturned to the host.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
REQUEST TERMINAL STATE REPORTPage 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 DECTSRoignored, 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 ... DD ... DST
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 Reportconsists of a Sixel encoded, string of a-bit bytes which contains
the the state information for the device.
This string isguaranteed 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 withthe exception of large data items that are not practical to report(the contents of the logical display, DRCS, UDK definitions, andMacros) .
The format of the data is firmware revision dependent.
Softwareshould 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 <checksum1> <checksum2> ST
Where Dl ... Dn are data reported<checksum1> <checksum2> 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 ofeach 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 theterminal to the state described in the data of the control string.
This DCS takes one selective parameter, which indicates the formatof 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 DECTSRoillegal, restore ignored
Terminal State Report (DECTSR)

1When this sequence is received, buffered, and checksummed by theterminal, the terminal will begin to change the terminal stateaccording to the state encoded in the data of the control string.
If the checksum fails, the entire sequence is ignored.
If aninvalid 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 ina partially unrestored state. No error indication is returned tothe host.
Note
Software should not depend on the format of the
Terminal State Report (DECTSR) to be the sameacross members of the VT400 family, nor evenacross different firmware revisions of a single
terminal model. Software should not use DECRSTS
to restore a terminal to a saved state unless thatstate was previously read from the terminal.

VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14
5.14.1Page 5-209
29-Jun-1990

INTERNAL FUNCTIONS AND PROCEDURESEnd 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 = 132;
else end_line = 80; base = (active-position.page-1)
if (line rendition[line + base]end line /= 2;
return(end line);}-* 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<bottom_margin+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 [bottom margin+base] = SINGLE WIDTH;
for (x=left margin; x<=right margin; x++) display[bottom margin] [x] .code = EMPTY CHARACTER;
count -= 1;}} /* end scroll_up */VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.3

Page 5-211·
29-Jun-1990

Scroll Down/****************** scroll down** This procedure causes the scroll area between the line

* designated and the Bottom Margin (inclusive) on the* active page to scroll downward by the number of lines* designated in the count. Line and Character Renditions* are scrolled with the data. A new single-width line with* all character positions empty is inserted at the Top Margin.

* Lines scrolled off the bottom of the scrolling region are lost.

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

void scroll down(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=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<right margin; x++)
strncpy( display[y] [x], display[y] [x+l],
sizeof(character t»;
display[y] [right margin] . code = EMPTY CHARACTER;}
count -= 1;}} /* end scroll left */VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.5

Page 5-213
29-Jun-1990

Scroll Right/****************** scroll_right** This procedure causes the scroll area between the column* designated and the Right Margin (inclusive) on the* active page to scroll right by the number of columns* designated in the count. A new column with all character* positions empty is inserted at the designated column.
* Characters scrolled past the scrolling region are lost.
*******************/

void scroll right(left column, count)column t left column;
column t count;{line t··y;.
column tx;
line t-base;/* first line(-I) 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=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 notdescribed 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 LoadUDK
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 toboth 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 andmade a separate chapter in the Video SRM ("Conformance
Requirements") .

4.

The program flow diagrams and the executive routines weremoved to the chapter "Specification Program Structure".

5.

The Reset to Initial State control was moved to thechapter "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 wascorrected to include the processing of Single Shiftcontrol functions.

8.

The Set Mode and Reset Mode control functions were moved
to the chapter "Specification Program Structure", andtheir detailed implementation was broken out into aseparate 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, FormFeed, Index, Reverse Index, and Next Line was reworded toindicate scrolling if necessary, and to indicate (whereappropriate) the use of fallback implementation in video
terminals.

12.

The section on Substitute was reworded to remove thereference 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 toretransmission.

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 thealgorithms for Delete Character and Reset Auto Wrap Mode.

17.

A note was added to the section on slow scrolling toindicate that it must render text "recognizable", but notnecessarily "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 waspreviously 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) andSelective 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 offunctions 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 Widthand Double Height lines.

9.

Added a note to the Substitute control function referringto 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) toprocess multiple selective parameters.

12.

Made extensive changes to the algorithms for Erase In
Line (EL) and Erase In Display (ED) to provide thefollowing: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 theterminal 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 thisfunction.

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 andmodified the algorithms for Designate Character Set toaccommodate redefinition of the designator sequencesusing DRCS.

22.

Corrected dual coding in the algorithm for Insert or
Replace Graphic Characters.

23.

Added a note to the Restore Cursor control indicating thehandling 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, andInsert 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 ofterminal implementors or software engineers.

2.

Added note that level 2 SGR parameters may be recognizedwhen device is operating in level 1 mode, but that
conforming software shall not rely on this feature.

3.

Corrected sense of Selectively Erasable Attribute (setusing DECSCA). The default or attribute off condition isthat 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 ofterminal 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-organizedentire 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 aredefined 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 Parameter6.

Added definition of Logical Display - the lines andcolumns 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 ofwhich 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" listingterms 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

Page 5-222
29-Jun-1990

9.

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 ofcontiguous 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 valueof 0, is specified.

12.

Clarified definition of Margin - A line which marks theupper or lower boundary of the scrolling region (vertical
scroll margin). A column which marks the left or rightboundary 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 withscrolling region. Added list of controls defined in thissection. 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 checkright 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 (foralternate text rendition mapping) .

Graphic Character Sets
20.

Expanded section on Grahic Character sets including whichsets are required at different conformance levels andextensions. 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 andright 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 subsection27.

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 andwhat 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 STANDARDSDIGITAL 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 andMethods Control, CTSl-2/D4, DTN 287-3724, JOKUR::SMC
ANSI AND ISO STANDARDSANSI X3.4 - 1986

American National Standard Code forInformation 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-9Application Program
definition, 5-9
ASCII, 5-115
Assign User-Preference
Supplemental Set, 5-123
Audible Indicatordefinition, 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 RectangularArea
control function, 5-173
Characterattribute, 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 Modecontrol function, 5-71
Control Codeback 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 Reportcontrol 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 Macrocontrol function, 5-182
Deletecharacter, 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 Reportmemory 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
Erasecharacter, 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 Reportcontrol 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
Fontdefinition, 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 Modecontrol 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
Insertcharacter, 5-142
Insert Character
control function, 5-142
Insert Column
control function, 5-150
Insert Line
control function, 5-146
Insert/Replacement Modecontrol function, 5-138
Insertion
character, 5-139
Interfaces
external, 5-8
internal, 5-8Internal Functions
end of line, 5-209
scroll down, 5-211
scroll left, 5-212
scroll right, 5-213
scroll up, 5-210
Invokedefinition, 5-12
Invoke Macrocontrol 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 Modecontrol 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
Margindefinition, 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 Systemdefinition, 5-12
Origin Modecontrol function, 5-31
Page, 5-19
definition, 5-12
Page Arrangement, 5-70
Page Cursor Coupling Modecontrol function, 5-87
Page Position Absolutecontrol 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 RectangularArea
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 Modecolumn, 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 RectangularArea
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 Modecontrol function, 5-94
Scrolldefinition, 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 Modecontrol 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 Attributecontrol 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 Modecontrol function, 5-135
Service Classcharacter 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 Onlycolumn, 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
Substitutecontrol 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 Stopdefinition, 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 Modecontrol 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 Modecontrol 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 Onlycolumn, 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
Substitutecontrol 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 Stopdefinition, 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 Modecontrol 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 Modecontrol 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 toterminals 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 theapplication program and the terminal and the human interface
between the terminal user and the keyboard.
Furthermore, the samecoding interface is provided to the application program whether it
is running in a host computer or inside a personal computer orworkstation, thereby achieving transportability of application
programs.
APPLICABILITY: Mandatory for engineers designing hardware forterminal products and software engineers designing programs using
terminal interfaces. Additional requirements are defined in thesection 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 toI
I define mandatory standards unless it is clearly marked as:
I (a) not mandatory, or (b) guidelines. Material which isI marked as "not mandatory" is considered to be of potential
I benefit to the corporation and should be followed unless there
I are good reasons for non-compliance. "Guidelines" define
I approaches and techniques which are considered to be good
I 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 Draft
Revision 0.1
Revision 0.2
Revision AX01
Revision AX11
Revision AX12
Revision 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 ArchitecturePeter SichelPeter Sichel, Ram Sudama
Patricia Winner

APPROVAL: This document, prepared by the Desktop Systems Group,
has been reviewed and recommended for approval by theGeneral 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, andENET 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 . . . . .
. . . . . .
KEYBOARD OPERATION AND STATE THAT AFFECTS
USER INTERACTION .
6.6.1
Keyboard Output Silo
Keyboard Action Mode
6.6.2
Set/Reset Keyboard Action Mode
Auto Repeat Mode . . . . . . .
6.6.3
Set/Reset Auto Repeat Mode
6.6.3.1
Keys Which Do Not Auto Repeat
Auto Repeat Guidelines
6.6.3.2
6.6.4
Visual Indicators
6.6.4.1
Hold Screen Indicator
6.6.4.2
Lock Key Indicator . . . . .
6.6.4.3
Compose Indicator
6.6.4.4
Keyboard Lock (Wait) Indicator .
6.6.5
Audible Indicators . . . . . . . .

6-25
6-28
6-28
6-30
6-32
6-32
6-33
6-33
6-35
6-36

6.6

~DmDDmDTM

Digital Internal Use Only

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 THATAFFECT 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 <L=>
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

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
· · · · · · · ·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.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.2Print Screen Key Operation .
Set-Up Key Operation . . .
6.12.3
Local Function Key F4. . . .
6.12.46.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.26.13.3Lock 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.46.13.56.13.5.1
6.13.66.13.76.13.86.13.919-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.26.14.3
British Keyboard (LK201-AE)
Flemish Keyboard (LK201-AB)
6.14.46.14.5
Canadian (French) Keyboard (LK201-AC)
6.14.6
Danish Keyboard (2nd, LK201-ED).....
Danish Keyboard (1st, LK201-AD). • .
6.14.76.14.8Finnish Keyboard (3rd, LK201-NX) . . .
6.14.9Finnish Keyboard (2nd, LK201-NF) . . .
6.14.10Finnish Keyboard (1st, LK201-AF) • . .
6.14.11
Austrian/German Keyboard (2nd, LK201-NG) .
6.14.12Austrian/German Keyboard (1st, LK201-AG) .
6.14.13
Dutch Keyboard (2nd, LK201-NH) . .
..
6.14.14Dutch 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

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

COMPOSE OPERATION. . . . .
. . 6-134
Compose with The Use Of The COMPOSE Key . 6-134
Compose with The Use Of Non-Spacing
Diacritical Marks . . . . . . . . . . . . 6-135
6.15.3Composing Arbitrary 8-bit Characters(VT330/340 Only, Not Mandatory). . . . . 6-136
6.15.4Use Of The COMPOSE Key When A Compose Is
Already In Progress . . . . • . . . . . • 6-138
6.15.5Use Of The DELETE Key When A Compose Is
Already In Progress . . . . . . . . . . . 6-138
6.15.6
Keystrokes Which Abort Compose Immediately 6-139
6.15.7
Keystrokes Which Do Not Affect Compose
Di rectly .
. . . . . . . . . . . . . · 6-140
6.15.8Order And Case within Compose Sequences· 6-140
6.15.8.1
Order. . . . . . . . . . . . . · 6-140~D~DDmDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-6

6.15.8.2
Case . . . . . . • . . . . • . • . . • .
6.15.9Composition 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.108-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.117-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 DiacriticalMarks 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.36.18.46.18.5CHANGE 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 AX12mDmDomD™

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 isphysically 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 fullin 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 thePermanent Label Strip differ between the product classes.
Keyboards operate in one of two usage modes:
typewriter or dataprocessing 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 thetables 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 usedbecause 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 theformer are the LK201- ED, LK201- AD Danish Keyboard and the LK201EN, LK201- AN Norwegian Keyboard. Examples of keyboards with nopredecessor in the "Ax" subfamily are the LK201- EH, Greek, andthe 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 numericand 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 usedwith 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. Theseversions differ only in the labeling of keys and visualindicators.
To the terminal system all the keyboards will appear
identical. With the exception of the Main Key Array, the codestransmitted by the terminal for all key positions are the same forall versions of the keyboard and the only differences are thelanguages of the legends and label strips.
Digital terminals support a number of keyboard layouts
corresponding to different keyboard versions. Within theterminal, these different layouts are actually different mappingsfrom keystrokes on the main key array to character codes produced,
and are called "Keyboard Dialects".
The terminal user selects thedesired 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

VersionNorth 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-ABSame 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 (VT320)
2nd Finnish (VT330/VT340)
1st Finnish (VT200)
Same as 1st Swedish (LK201-AM)

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-AHt

19-Apr-1988

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-APSame as Flemish (LK201-AB)

Spanish

LK201-AS

Portuguese

LK201-AVmDmDomD™

Digital Internal Use Only

19-Apr-1988

page 6-11

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 thealpha-numeric layouts above. Gold layouts corr~sponding
to the keyboard versions above, where -Ax is regular, and-Bx is WPS, are:
-BA to AA,-BD to AD,-BG to AG,-BK to AK,-BN to AN,-PE to EE,

mDmoomo

1M-BB to AB,-BE to AE,-BH to AH,-BL to AL,-BP to AP,-PA to NA.

-BC to AC,-BF to AF,-BI to AI,-BM to AM,-BS to AS,

Digital Internal Use Only

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 thehuman interface between the keyboard and the terminal user.
The coding interface is defined to be the hardware or softwareinterface 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 afixed 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 threesituations, 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 andits 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 acomplete super set.

TERMINAL USER

* * * * * * * * * * * * * * * * * * * * * * * Human interface

I I KeyboardII
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 ExtensionLayer* * * * * * * * * * * * * * * * * * * * * * * Coding Interface
APPLICATION PROCESSStructuring 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 toboth internal and external product interfaces. Externalinterfaces are interfaces between a terminal, personal computer orworkstation and a remote system. Internal interfaces areinterfaces 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 notdeal 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**---------------------------**
physicalterminal

virtualterminal

host systemI
I application.............. I process*. ... .. ... .

**--------------------------*<hardware><fi·rmware> * <communications link><software>*** EXTERNAL CODING INTERFACE

keyboard**
terminal system--------------------------*-------------*
I* application I* processI*
I-------------~------------*-------------<hardware><software/ * <software>
firmware> *physicalterminal

virtualterminal** 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 atleast two compatibility levels, or modes of operation (part ofterminal conformance level). Levell provides backward
compatibility with previous keyboards designed in conformance withDEC STD 107 (VT100, LA36, and so on) and provides the 7-bit ASCII
control and graphic characters. Level 2 is a compatible super setof 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 hostcommunication 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 modeand 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 toLevel 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 forreceipt from software application processes and as alocal 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 forreceipt 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 toLevel 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 forreceipt from a software application process and as local
Set-up features:
All Levell control functions.

f.

Shall implement the following control functions forreceipt 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 beable 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, forexample, 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 forreceipt 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 forreceipt from a software application process:Select Conformance Level (DECSCL) to switch between
Level 1 Operation, Level 2 Operation, and Level 3
Operation.

d.

mDmDomDTM

May implement the Keypad Compose mechanism for "Composing
Arbitrary 8-bit Characters" described later in thisdocument.

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 shallnot 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 transmittedwith the 8th bit omitted or zero depending on whether thehost 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 sequencesthat 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 shallapply:a.

All keyboard keys are live.

b.

The Function keys with generic names FII, F12, and Fl3transmit 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 shallapply:

mamDomDo

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 sequencesthat 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 andthe 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 andthe 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 ofthese character encodings is in use. No character set shiftfunctions (SO, 51, etc.) will be transmitted as a side effect oftyping 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 ASCIINo 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 selectionof the keyboard dialect. See guideline under heading "Keyboard
Dialect".
In 7-bit Characters mode, choosing Data Processing Keysalways uses ASCII as the primary keyboard set.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-22

Deviation NoteOlder 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 otherthan ASCII in 7-bit Characters Data Processing
mode has been deprecated.
Explanatory Note
The character set mode, 7-bit/8-bit Characterscorresponds 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 hostline" 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 moredead 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 PUBLICATIONSDIGITAL STANDARDSDEC 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 andMethods Contral, CTS1-2/D4, DTN 287-3724, JOKUR::SMC
please provide your name, badge number, cost center, mailstop, andENET node when ordering.
ANSI AND ISO STANDARDSANSI X3.4 - 1986

American National Standard Code forInformation 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 aterminal 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 thisspecification, 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 theorganization, 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 usedinterchangeably in this document. The term "legend" refers to theunencoded character.
Coding Interface - A software or hardware interface through whichbytes 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 asingle graphic character that may not be available as a single
key.
Control Character - A control function; the coded representationof which consists of a single byte.
Control Function - An action 'that effects the recording,
processing, transmission, or interpretation of data and that has acoded 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 orreceive data across a coding interface independent of framing orparity 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 startingwith 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 runninginside the terminal or in a host computer.
Implied Compose Sequence - A two-key compose sequence startingwith 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 userpresses 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 physicalposition of a key on the keyboard. Note:taken from ANSI and ISO
keyboard standards. See DEC STD 107 which specifies the physicalinterface 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 ordata processing use.
Data processing legends appear to the rightof 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 KeyRow) .
Printer Port - The coding interface between a terminal and aprinter.

mDmDomDTM

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-27

Receive - To accept coded character information from anapplication process sent to a terminal across the codinginterface.
Removable Label Strip - A removable label strip that labels the
top row of keys on the keyboard (Local Function Keys andApplication 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 isbeyond 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 avisual 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 anoperating system.
Terminal User - The human user of the terminal (as distinguishedfrom 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 organizedaccording 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 thephysical position of keys independent of the keyboard version oroperating 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

I GIG I GIG I G I
I 051 061 071 081 091

I GIG I GIG I
I 111 121 131 141

Local Function Keys•••••• 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 13II~----------------------------------------------------- ------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

II----------------------------------------------------------II
I C I CI 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 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
KeypadI 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
KeypadI 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 orPermanent 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 arephysically 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 areblank, except for the G1S and G16 keys. The following keys havelegends 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

IFllIF12IF131F141I 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<space bar>

I
I

Main Key Array
Right Half - Keyboard Named Key Map
I F I FI 151 16I F I F I F I F I
I 171 181 191 201•••••••••••••• Application Function Key Row (cont.) ••••

Editing
KeypadI Ell E21 E31
I
I
II

IPFIPF2IPF31PF41
I
I
I
I
I

I E41 E51 E61I
III

I 7 I 8 I 9 I - I
I
I
I
I
I

------------Cursor
Keypad

I
I

A

I
I

1<- I V I ->1I
II
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 T I
I
ImDmDomD™

Digital Internal Use Only

0

I· I E II
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 forany of the keyboard product classes, except for the two keys thathave no corresponding room on the label strip for legends becauseof 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

DECStandard

DECmate/WPS

E16
E17
E18
016
017
018

Find
Insert Here
RemoveSelectPrev Screen
Next Screen

Find
Insert Here
RemoveSelectPrev 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
CursorInsert/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---------------------

6.5.2.4

Key IdLegend

C17
B16
B17
B18

<upward arrow><left arrow><down arrow><right arrow>

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

<gold>
page
Del Word
Del Char

020
021
022
023

7
8
9

Sent
Tab Pos
Underline
Cut

C20
C21
C22
C23

4
5
6

, (comma)

Word
Para
Bold
Paste

B20
B21
B22

1
2
3

Back UpLine
Upper Case

A2P
A22
A23

0

Advance
SelEnter <>- (minus). (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

InsertLine
DeleteLine
DeleteChar(Space)Transmit

E22
E23
C23
A23

1<----->1** The VT330/VT340 provides a Set-up option which allows C23 totransmit 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 productimplementors in designing System Label Strips, but is not requiredfor 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
ResumeCancelMain 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 sincethese 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 foruse 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 ormodify 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. Whenlocked, 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 theevent that the keyboard produces characters faster than they canbe 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 betreated as a single keystroke and shall use only one silo
position. Therefore function keys, composed sequences, andalpha-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:oThe keyboard output silo is full.

oKeyboard 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, andall keyboard keys except F1, F2, F3, F4 and F5, that is, the local
function keys, are disabled.
F5, break, may be disabled by othermeans 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

KAM

Levels:1, 2

Purpose:Lock or unlock the entire keyboard.

Set r,ormat:

Reset Format:

Page 6-39

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 stateof 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 eachtime 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 anauto-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 theabove, 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 alreadyauto--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 muststop within five seconds of receiving the DECARM
control when the terminal is processing host
output (not blocked by hold screen or alternatesession) .

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 thestate of Auto Repeat Mode. When Auto Repeat Mode is reset(Repeat Off), none of the keyboard keys will auto repeat as aresult of being held down. When Auto Repeat Mode is set(Repeat On) certain keys will repeat at a fixed rate as a resultof being held down (see description above).
NOTE
Auto Repeat Mode is a User Preference Feature andshould 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:mDmDomoTM

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.

Compose8.

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 requiredfor 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 actuallytransmits.
Auto Repeat Rates

Host Port
transmit Speed
2400 Baud or above
1200
600
300
150
110
75

Group AGroup 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 theseparameters will not change the repeat rate, however selecting
8-bits plus parity and/or 2 stop bits will, in some cases, cause aslight irregularity in the repeat rate as the keyboard transmit
silo fills up. The "Limited Transmit" feature will not affectauto repeat rates 7 since all five codes can be transmitted at thelimited 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 (ordisplay 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 thefunction.

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 correspondingmode.
If a Shift Lock keyboard is selected in Set-up, Shift Lock mode isturned on by pressing the LOCK key, and turned off by pressing
either the LOCK key or a SHIFT key.
If a Caps Lock keyboard isselected in Set-Up: Caps Lock mode is toggled on or off bypressing 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 thefollowing 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 ofdata overrun (XOFF synchronization control code received from thehost) or because of receipt of the control sequence which locks
the keyboard (KAM). The LED is off whenever the keyboard is notlocked.
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 rateof 4-5 per second. As bell characters arrive, they are stored ina 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 bellbuffer.
No control function is provided to enable/disable the Warning Bell
from the host. It may be possible to change the volume of thewarning 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 thefollowing 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 thefollowing 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. Examplesof 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). Notehorizontal 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:

Becausewith 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 notring 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 RINGENABLED/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 foreach key sent, (that is, once for each alphabetic character andonce 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 takesome 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 pressedin 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 keyclickfrom 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 abell are generated by the same action, for example typing thesecond character in some invalid compose sequences, then either
bell (Warning or Margin) takes precedence over the keyclick, andthe 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 byfunction 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 areenabled. 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, theKeyboard 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 forcharacter 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 (notSet-Up feature to disable break. Choices are Break, or
No Break. Disables generating break signal when BreakKey alone is pressed. Does not affect Shift-Break, orControl-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 ,- (notmanda to ry) .
set-up feature to remap ,- key to send ESC (notmanda 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 theauxiliary 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 ModeIn VTS2 and VT100 Emulation modes, the following restrictions
apply to the keyboard. Keys which are dead are completely ignoredby 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 thecompose 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 ModeAll 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 selectedcharacter 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 orLevel 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 inLevel 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 codeswhen 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 Characterscorresponds 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.
Inpractice, 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 moredead 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, 3xPurpose:

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 TABLEDESIGNATED 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 THENBEGIN
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 proc~ssing
6.7.5

19-Apr-1988

Page 6-54

Keyboard Usage .Mode

Each version of the keyboard is oriented toward a particularlanguage 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 charactersdepending on whether the keyboard is set to Data Processing modeor Typewriter mode (for data processing versus office use). The
data processing legends appear to the right of the typewriterlegends, 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 fortheir 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 wereselected.
The keyboard usage mode is selectable from Set-up, or by hostcontrol 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 islisted first. Note this list applies to the Keyboard Dialect(keyboard mapping tables) chosen in Set-Up, not the physicalkeyboards.
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 [ IIE07 has " ] "Cll has "\."

5.

Canadian (French)
Dll has II ] II and "["mDmDomD™

Digital Internal Use Only

19-Apr-1988 .

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.

FinnishE03 has011 has012 hase1a hasell haspage 6-55(3rd, LK201-NX)"i""]"" } " and "All
,,-It
and
"I" and "\"" { " and
II [

"

9.

Finnish (2nd, LK201-NF)
E03 has "@"011 has II ] II and II [ II012 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 { IIell 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 hasE02 has
E09 hasE10 hase12 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.

SwedishE03 has011 has012 hase10 hasell has(2nd, LK201-NM)"@"" ] " and " [ ""i" and "\""}" and "{"SwedishE03 has011 has012 has

"@"

19.

"I"
(1st, LK201-AM)" J" and " [ ""i" and "\"20.

Norwegian (2nd, LK201-EN)
011 has "}" and " ] "e10 has "I" and "\"ell has "{ " and " [ "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.

SpanishEOO 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 MODEDECKBUM

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 andshould 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 (newfor Level 3).
When 7~bit Characters and Typewriter Keys mode are selected, theterminal generates characters from the current National
Replacement Character Set (NRCS) determined by the Keyboard
Dialect. This applies in all emulation modes: VT52, VT100 (Level1), 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 thecurrent 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 asNorth 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 <L-> -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 thesekeyboard 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. Whenin 7-bit Characters mode, and the Keyboard Usage Mode is set toData 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

DECNRCMsetting

Keyboard
Usage Mode

Code sent
Characterby terminal and set

British8-bit Chars.

either10/3£ - DEC or ISO

BritishBritishN. 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 thesesequences 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 forcursor movement as up, down, left and right.
If the Cursor Key
Mode is in the reset state, these keys will transmit theappropriate ANSI escape sequence codes (CSI A, CSI B, CSI 0, CSIC).
If the Cursor Key Mode is in the set state, these keys willtransmit 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 sequencetransmitted when the C1 Transmission Mode is in the set state(EIGHT_BIT).
Codes Transmitted by Cursor Keypad Keys--------------------------------------Key

LegendC17A

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 thestate 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), theCursor 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 thesemodes be independent of one another (i.e., it is notnecessary 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 OnlyIn

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 modecauses the other to be reset) they can be considered as two statesof the same mode.

6.9.1.1

Numeric Keypad Mode -When Keypad Numeric Mode is set, the keys in the Numeric Keypadtransmit 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 withoutchange to application software that normally expects input fromthe 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 theNumeric Keypad code tables.

6.9.1.2

Application Keypad Mode -When Keypad Application Mode is set, all keys on the keypadtransmit the SINGLE SHIFT THREE (SS3) control code followed by asingle 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 isespecially useful for applications that use the keypad as a set offunction 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 sequencetransmItted when C1 Transmission Mode is in the set (EIGHT_BIT)
state.
Codes Transmitted by Numeric Keypad Keys---------------------------------------Key

LegendDECKPNM 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

,

2/12 ( , )

1/11

D23

- (minus/hyphen) 2/13

A22

. (period)

A23

ENTER

E20

PF1

(comma)

(- )

1/11

2/14 ( ).

1/11

same as Return

1/11

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 p)
SS3 p)(ESC 0 q)(
SS3 q)(ESC 0 r)(
SS3 r)(ESC 0 s)(
SS3 s)(ESC 0 t)(
SS3 t)(ESC 0 u)(
SS3 u)(ESC 0 v)(
SS3 v)(ESC 0 w)(
SS3 w)(ESC 0 x)(
SS3 x)(ESC 0 y)(
SS3 y)(ESC 0 1 )(SS3 1)(ESC 0 m)(
SS3 m)(ESC 0 n)(
SS3 n)(ESC 0 M)(
SS3 M)((ESC 0SS3(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 betransmitted. See the table of Numeric Keypad keys and theirassociated 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 theset, or 'Application' state.
In this state .the keys of the
Numeric Keypad on the terminal keyboard will transmit a SINGLESHIFT 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 istransmitted 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 indicatedcharacter from the currently designated G3 set will be
displayed; for example, when ASCII is designated as theG3 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 thesemodes be independent of one another (that is, it is notnecessary 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 thereset, or 'Numeric' state. In this state the keys of the Numeric
Keypad on the terminal keyboard will transmit a combination ofgraphic 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 thesemodes be independent of one another (i.e., it is notnecessary 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 OnlyIn

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-68

SET/RESET NUMERIC KEYPAD MODE
Levels:DECNKM2x, 3

Purpose: Select between numeric and application keypad mode.
This set/reset mode sequence was added to simplify inquiring thestate 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 thereset 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 areintended for editing applications. The Editing Keypad Keys areinoperative when pressed in combination with either the Shift orControl 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 sequencetransmItted 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

LegendCodes Generated (Level 2 only)

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
Screen1/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™

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 designatedcontrol 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 thearchitecture, and will vary from product to product. However, thecodes transmitted by these keys will not change due to theirusage.
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 thisLevel 2 function. Note that if the UDK extension is notsupported, the Application Function Keys in combination with Shiftwill not transmit anything. The codes transmitted by the
Application Function keys are not affected in any way by thedepression 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 sequencetransmItted 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 theoperating 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/8G13F13 (LF)

0/10

G14

F14

G15

(F15)

G16
G20

(F16)
F17

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

-

(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

(

(

(

--

)
)
)
)
)
)
)
)

-

-- ))
)
)
)
)
)
)
)

---)
)
)

1/11 5/11 3/3 3/1 7/14
(ESC [ 31 9/11 3/3 3/1 7/14
CSI 31 - )1/11 5/11 3/3 3/2 7/14
(ESC [ 32 9/11 3/3 3/2 7/14
CSI 32 1/11 5/11 3/3 3/3 7/14
(ESC
33 9/11 3/3 3/3 7/14
CSI 33 1/11 5/11
7/14 (ESC [ 34 - )
)
)

(

G21

F18

(

G22

F19

[

(

G23

F20

mDmoomD™

3/3 3/4
9/11 3/3 3/4 7/14

Digital Internal Use Only(

CSI 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 forthese keys shall not be transmitted by any terminal products to ahost system. Their use is reserved exclusively for productspecific local functions.
The use of Local Function Keys shall be implementation defined andregistered 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 ispossible where multiple definitions do not produce conflict).
See Appendix D "Documented Exceptions" for a description of thedesignated 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 someform 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. Whenthe toggle is ·set to "Hold", the Hold Screen LED will be on, andthe 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, orin 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 holdall 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 theinteraction between Hold Screen and communications flow control.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.12.219-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 theregion of the character cell display defined by Print
Extent Mode (either the entire character cell display, or
the character cell display scrolling region) to theprinter 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 bechanged by the User.
Keyboard operation and screen display ins~t-up Mode is beyond the scope of this architecture
specification, as is the means by which the terminal returns tonormal 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 theterminal to activate another session. Refer to theSession Management chapter.

b.

CTRL/Switch Session instructs the terminal to select oneof 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 themodem.
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 notused 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 (anoptional set-up feature may be provided to disable thebreak function).

2.

SHIFT/BREAK performs a disconnect if disconnects areenabled.

3.

CONTROL/BREAK sends the terminal answerback message tothe 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 eachfound 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 ofother 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 characteror SPACE. All but the Return key are auto-repeatable. They are:NormalControl 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 depressedwhich forms a legal control combination, there is one keyclick andthe appropriate control code is transmitted. All of the 32 ASCII
CO control codes plus DELETE (7/15) can be generated by typing theA-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 withDEC 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 otherrepeatable keys.
If Control is pressed while a key is repeating,and the key forms a valid control combination, the key willcontinue to repeat but transmit the control combination while theControl key is pressed.
If the key does not form a valid control
combination, the key will stop repeating while the Control key ispressed.

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, theCtrl-number construction does not require the use of shift. Thisapplies to the number keys only.
In the case where the numerallegends 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 [ ) isused.
Exception: Tilde (EOO) on the North American keyboard isused 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 notdefined, so the key sends CTRL-[ (ESC) because that is theunshifted 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 thischapter.
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 thecontrol characters may not be allowed, for example, ctrl/S andctrl/O (XON and XOFF).
In this case the control characters are
considered as Local Function Keys. Conforming software should notuse ctrl/S and ctrl/O because of their possible use incommunications flow control. See DEC STD 070-12 Terminal
Synchronization for a complete description of the use of thesecharacters.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.13.219-Apr-1988

Page 6-77

Shift Key Operation

In order to obtain a shifted character, the Shift key and thegraphic 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.3Lock 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 modeis 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 isselected in Set-Up: Caps Lock Mode is toggled on or off bypressing 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.
Thefactory default is Caps Lock Operation to be compatible with theVT100.

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 ofalpha-numeric keyboard maps. Not included are control characters,tab, function keys, delete, return, compose, enter, lock, andshift keys. Note: when Shift Lock Operation is in effect, unless
an implied or explicit compose sequence is used, it is notpossible to generate the upper case characters using:a.

The keys that have one lower case letter legend andanother legend .

. b.

The keys that have two lower case letter legends.

6.13.3.2

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.419-Apr-1988

page 6-79

SPACE Bar Operation

The Space Bar usually causes the SPACE code (SP 2/0) to betransmitted.
It can also be used in some explicit and impliedcompose 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.5Return 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 betransmitted, 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 codestransmitted 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 thismode is in the set state [set state - new-line] these keys willbQth 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 beinterpreted as if it were CR LF, and is fully defined in thatspecification.
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, andVT132, the M key in combination with the Control Key IS effectedby 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.619-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 begenerated. The exception is that during an explicit or impliedcompose 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 toallow the Backarrow key "<XJ" to transmit Delete (7/15) or
Backspace (0/8).

6.13.8Compose Key Operation

The Compose key permits generation of additional characters notpresent on the keyboard as a sequence of three key strokes.
Its
operation is described in the section on Compose Operation since
the sequences include graphic keys. An optional set-up feature
may be provided to disable the compose key.

6.13.9Non-Spacing Diacritical Keys

On most non-US keyboards, certain accents are provided as
Non-spacing Diacritical Keys, depending on the language or
languages of the country. These keys serve both to enter animplied compose mode and to indicate the accent to be used withthe following letter key.
The operation of Non-Spacing
Diacritical keys is further described in the "Compose Operation"subsection below.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.14

19-Apr-1988

Page 6-81

MAIN KEY ARRAY - GRAPHIC CHARACTER KEYS

This section describes the graphic characters produced by keys inthe main key array. Graphic character keys are all keys on themain key array which transmit character codes in the range 2/1 to
7/14 inclusive, and 10/0 to 15/15 inclusive. The Space bartransmits 2/0 and is used along with graphic characters in compose
sequences.
The tables in this section associate each alpha-numeric key(described by position on the Keyboard Position Map) with a uniquecharacter (by name) for shifted and unshifted modes. The actual
code produced is a function of the character encoding.
Level 3 terminals, and Level 2 terminals with the 8-bit
Architecture Extension, support 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 thesecharacter encodings is in use. The user can choose one of thefollowing keyboard encodings via 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: 8-bit Characters, UPSS ISO Latin-1
Primary keyboard set is ASCII
Supplemental keyboard set is ISO Latin-1 supplemental- 7-bit ASCII character set
SET-UP: 7-bit Characters, Data Processing Keys
Primary keyboard set is ASCIINo 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 selectionof the keyboard dialect (Guideline: The VT320 uses 12 NRC sets to
support 16 keyboard dialects).
In 7-bit Characters mode, choosing
Data Processing Keys always uses ASCII as the primary keyboard
set.
Deviation NoteOlder Level 2 terminals did not always use ASCII
as the primary keyboard set when Data Processing
Keys was selected (prior to the VT220CR). Thisuse of a 7-bit NRCS other than ASCII in 7-bit
Characters Data Processing mode has been
deprecated.

mDmDomD™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing

19-Apr-1988

Page 6-82

For information on character sets and coding, refer to DEC STD
169.
Some character codes are included in these tables for characters
whose coding might otherwise be confusing. These codes are given
in row/column notation. The character encoding should be clear
from the context as described above (a-bit Characters mode isalways given in ISO Latin Alphabet Nr. 1).
There are four tables for each Keyboard Dialect:
a.
b.
c.
d.

8-bit
8-bit
7-bit
7-bit

Characters,
Characters,
Characters,
Characters,

Typewriter Keys
Data Processing Keys
Typewriter Keys (NRCS)
Data Processing Keys (ASCII)

Some keyboard dialects have changed to accomodate more recent
country requirements. The most recent or recommended tables arelisted first for each dialect, followed optionally by superseded
tables included for reference.
A character name enclosed in square brackets [J indicates that the
key is a Non-Spacing Diacritical key which when combined withanother key forms a two key implied compose sequence.
The following rules of precedence are applied:1.

The unshifted character is generated when neither
Control, Shift, Shift-Lock, nor Caps-Lock are in effect.

2.

When Caps-Lock is in effect, and the Shifted andUnshifted characters are the upper and lowercase form ofa single alphabetic letter, the shifted character isgenerated.

3.

When Shift is in effect, it overrides Caps-Lock (always
generates the shifted character).

4.

When Control is in effect, it overrides Shift,
Shift-Lock, and CapS-Lock. Refer to the "Control Codes
and Keystrokes" subsection later in this chapter.

mDmDomD

TM

Digital. Internal Use Onl.y

EL-00070-06
VSRM - Keyboard Processing
6.14.1

19-Apr-1988

Page 6-83

North American Keyboard (LK201-EE US/UK, LK201-NA,
LK201-AA)

8-bit Characters, Typewriter Keys
Position

Unshifted

EOO
E01
E02
E03**
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
D09
010
Dl1
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
Cll
C12
BOO
BOl
B02
B03
B04
B05
B06
B07
B08
B09
B10

Open quote
1
2
3
4
5
6
7
8
9
0
- Hyphen, Minus- Equalsqwert--------

mDmDomD™

--------,

Y

N

w
E
R

T
y

U

u
·i

I
0

0

P

p
[
]

Shifted------Tilde character
1 Exclamation point@ Commercial at# Number sign
$ Dollar sign
% Percent sign... Circumflex character& Ampersand* Asterisk
Opening parenthesis
Closing parenthesis
Underline+ PlusQ

Opening bracket
Closing bracket

{
}

a
s
d
f

A
S
D

9

G

F

h

H

j

J

k

K
L

1

Semicolon,; Apostrophe\ Backslash< Less Than
z
x
c
v
b
n
m

Colon
" Quotation marks
I Vertical line
> Greater than

Z
X

C
V
B
N
M

Comma

Period. Slash/Opening brace
Closing brace

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 isthe 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 andhas 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

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

·0

I
0

P

P

[

Opening bracket
J Closing bracketasd{ Opening brace} Closing brace

A
S
0

f

F

9
h
j
k
I

G
H

Semicolon,; ApostropheColon" Quotation marks
I vertical line
> Greater thanJ

KL

\ Backslash< Less Than
z

z

x
c

X

C
V
B

v
b
n
m

N

, Comma. Period

/

Slash

M

, 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

ShiftedE03

3£ British pound(2/3)

British Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bi t Characters, Typewriter .keys)
Positionunshifted

ShiftedE03

3

t Number sign

(2/3)

There are three legends on E03, the shifted code generated by thiskey is dependent upon which dialect, North American or British, isselected in set-up.

mDmDO!D™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.14.319-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/ SlashN
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* Numbersign (2/3)
Backslash

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- TildeA

Circumflex Character

Dead, Open quote(2/3 )

British Keyboard, 7-bit Characters, Data Processing keys
(Where ~ifferent from 8-bit Characters, Typewriter keys)
Position

Unshifted

EOO
E03
011
C12

. Dead~ Dead@\ sackslash
Circumflex Character , Open quote-------1.1----------

Shifted-------

Tilde

3
A

<;.:

mDmDomO™.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.419-Apr-1988

Page 6-89

Flemish Keyboard (LK201-AB)

8-bit Characters, Typewriter Keys
Position

Unshifted

EOO[Grave accent)ADlpe r s.ande Small e with acuten Quotation marks, Apostrophe( Opening parenthesis
S Section sign
e small e with grave
Exdlamation point
9 Small c with Cedillaa 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 signqsP

[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= EqualsNmDmDomD™

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

67\ 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]e Small e with acute§ Section sign
e small e with grave
9 Small c with Cedillaa Small a with grave(7/11)(5/13)(7/13)(5/12)(4/0 )

u Small u with grave(7/12))

Closing parenthesis

Dead

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\ BackslashmDmDomD™

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.519-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

Degree sign
(11/0)
Exclamation mark" Quotation marks/ Slash$ Dollar sign
% Percent sign
? Question mark& Ampersand* Asterisk
Opening parenthesis
Closing parenthesis
Underline+ plus---------

0

o

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

4ll

M

V

B
N

Comma
Periode 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

Shifted011) Closing bracket[ Opening bracket

Canadian (French) Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

ShiftedEOO

Dead~ Small c wlCedilla (5/12)# Number signDeade 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.619-Apr-1988

Page 6-93

Danish Keyboard (2nd, LK201-EO)

8-bit Characters, Typewriter Keys
Unshifted

Shifted

EOO.. Tilde CharS 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

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)

A Capital A with ring (12/5)

COl" Quotation marks
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™

s

A

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

~

Capital AE dipthong (12/6)

o 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 Char3

Closing brace
Opening brace
I Vertical bar}{

Shifted-------@ Commercial

atNumber 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 Chara Small a with ring (7/13)

Small ae dipthong (7/11)/21 Small o with slash (7/12)

iI!

Shifted-------@ Commercial

atNumber 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 Char------@ Commercial

Closing brace
Opening brace
I Vertical bar

Closing bracket
Opening bracket\. Back slash--------}{

Digital Internal Use Onlyat

it Number sign][EL-00070-06
VSRM - Keyboard Processing
6.14.7page 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

a Small a with ring (14/5)

P

A capital A with ring (12/5)[Dieresis][Circumflex accent]

a
s

A

S

d
f
9
h
j
k
I

o

e Small ae dipthong (14/6)~

e Small 0 with slash (15/8), Apostrophe< Less Thano Capital 0 with slash(13/8)* Asterisk

z

Z
X
C
V
B

F
G
H

J
K
L

x

c
v
b
n
m

Capital AE dipthong (12/6)> Greater than

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)
Positionunshifted

E03
D11
C11

--------

Shifted----------------

3@ Commercial] Closing bracket[ Opening bracket* Number sign

\ Back slashatDanish 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.819-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™

9a+ PlusCircumflex Char
q
w
e
A

r
t

Q
W
E
R
T
Y
U
I

y
u
i
o

o

p

a Small a with ring (14/5)

ij! Exclamation mark" Quotation marks
5 Section sign (10/7)$ Dollar sign
% Percent sign
& Ampersand/ Slash( Opening parenthesis) Closing parenthesis=- Equals? Question mark
, Open Quote

small u w/umlaut (15/12)asP

A Capital A with ring (12/5)

o Capital 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

ShiftedUnshifted----------------# Number sign
] Closing bracket
Circumflex character\ Backslash[ Opening bracket~} Closing brace

NA

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

ShiftedUnshifted----------------@ Commercial at
Dead3# 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)ooFinnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted

Shifted

E03
011
012
C10
C11

3
} Closing brace
Tilde characterI vert bar{ Opening brace# Number sign
] Closing bracket
Circumflex character. \ Back slash[ Opening bracket

mDmDomD™

Digital Internal Use OnlyA

EL-00070-06
VSRM - Keyboard Processing
6.14.919-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

5
6
7
8
9

o

+ Plus[Circumflex accent]
q
w
e
r
t

y
u
i
o

o

P

P

A Small a with ring (14/5)

A Capital A with ring (12/5)

U small u w/umlaut (15/12)aAs

U Capital U w/umlaut (13/12)
S

o

d
~

F

9
h
j
k
1

G
H

, Apos·t rophe* AsteriskJKLo small 0 with umlaut (15/6) o Capital 0 w/umlaut (13/6)
a small a with umlaut (14/4) A Capital A w/umlaut (12/4)

BOO< Less than

B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

z

mDmDomD™

Q
W
E
R
T
Y
U
I

> Greater than

Z
X
C

x

c
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)oFinnish 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.1019-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 markn 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

i

E
R
T
Y
U
I

-0

o

r
t

y
U

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

I

G
H
J
K
L

ii small a with umlaut (14/4)

A Capital A w/umlaut (12/4")hjko small 0 with umlaut (15/6) 0 Capital 0 w/umlaut (13/6), Apostrophe< Less Thanzxc

* Asterisk> Greater than
z
X
C

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)oFinnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position. unshifted

EOO
E03
E12
011
012
C10
C11

Dead

mDmoamo™

Shifted

Dead
Dead
Dead
Dead
Dead
Dead
i Number signDeado 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)
3oDigital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing
6.14.1119-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... Circumflex char
1
Exclamation mark2
" Quotation marks
3
S Section sign ( 10/7)
4$ Dollar sign
% Percent5
6& Ampersand
7/ Slash( Opening parenthesis
8) Closing parenthesis
90- Equals
B German small sharp s (13/15) ? Question mark
, Open Quote' Apostrophe
q
Q
w
W
e
E
r
R
t
T

z

Z

u
i
o·
P

U
I

0
P

small u w/umlaut (15/12)+ Plus
a
s
d
f
g
h

ij

U Capital U w/umlaut (13/12)* Asterisk

A
S
0
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

0 Capital 0 w/umlaut (13/6)

A Capital A w/umlaut (12/4)' Apostrophe> Greater than
Y
X

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-104

Austrian/German Keyboard, a-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position

Unshifted

Shifted------------------------

Ell
011
C10
C11

I Vertical bar@ Commercial

at} Close Brace) Closing bracket? Question mark\ Backslash{[

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 sharp s (7/14)
ij small u with umlaut (7/13)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)

Circumflex Char
Section sign (4/10)
Question markij Capital U w/umlaut (5/13)
6 Capital Ow/umlaut (5/12)
A Capital A w/umlaut (5/11)
A§?

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

Shifted----------------

3

I Vertical bar@ Commercial

at} Closing Brace) Closing bracket

Digital Internal Use Only

Dead
? Question mark\ Backslash{ Opening Brace[ Opening bracket

EL-00070-06.
VSRM - Keyboard Processing
6.14.1219-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 mark1
n Quotation marks
2
3
S Section sign (10/7)
4$ Dollar sign
% Percent5& Ampersand
6
7/ Slash( Opening parenthesisa) Closing parenthesis
9= Equals0
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

Shifted011
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

Circumflex char
Section sign (4/10)? Question mark
, Open quote
U Capital U w/umlaut (5/13)
0 Capital Ow/umlaut (5/12)
A 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

ShiftedDead
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 ~rocessing
6.14.14

19-Apr-1988

Page 6-108

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/ SlashD 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 Thanz

Underline
TAcute accent]
I Vertical line
> Greater than

x

X
C

c
v

Z

b

V
B

n

N

m

M

, CommaPeriod+ plus? Question marksemicolon= 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

ShiftedDead

Dead~ one-qrtr (7/13)
Dead
Dead
Dead
Dead
, Apostrophe
I vertical line--------1

2
3
60, 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
Shiftedposition

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

* Asterisk% Percent sign
§ Section sign (10/7)> Greater thanu Small u with grave (15/19)<.Less Than
w

W
X
C
V
B

x
c

v
b
n

N

, Comma; Semicolon. Colono Small 0 with grave (15/2)

Digita~Interna~

Use On~y? Question mark
Period/ SlashExclamation 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

atNumber sign
[ Opening bracket] Closing bracket* Asterisk*

Shifted-------

1
2
90\ 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 Small e with acute (5/13)
e small e with grave (7/13)
c;: Small c w/Cedilla (5/12)
a 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)/ SlashExclamation 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: ColonDead

mD~DDmDTM*
A

Digital Internal Use Only

Shifted- Tilde Char
1
2

7

a
9
o
Dead

= Equals% Percent sign
\ Backslash/ SlashExclamation 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

ShiftedaDegree 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

e small e with grave (14/8)[Dieresis]asPsmall 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

$ Dollar sign

£ U.K. Pound (10/3)> Greater than

80e

Comma
Period- Hyphen, Minus

809
810

momDomD™

S
F

J
K

L

e Small e with acute (14/9) o small 0 w/umlaut (15/6)
a Small a with grave (14/0) a small a w/umlaut (14/4)< Less Than

y

y

x

X

c

C

v
b

V
8
N

n
m

M

Digital Internal Use Only

Semicolon
Colon
Underline

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

Page 6-113

Swiss (French) Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
positionunshifted

Shifted------------------------

e small e with grave ( 14/8)
e Small e with acute (14/9)
a Small a with grave (14/0 )\ Backslash

E04
011
C10
C11
C12

4

$ Dollar sign

@ Commercial

at[ Opening bracket] Closing bracket
i 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---------! Exclamation mark4

e small e with grave (5/15)[Dieresis]
e Small e with acute (5/11)
a Small a with grave (4/0)$ Dollar sign
- Hyphen, Minus

Shifted------Dead
9 Small
U smallDead
0 smalla smallDead
Deadc 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 mark4
A

Circumflex CharDead
" 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

+ Plus2
3
4* Asterisk

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™

n

Degree sign

(11/0)

Quotation marks

9 Small c w/Cedilla (14/7)

5
6
7
8
9

o

, Apostrophe[Circumflex accent]% Percent& Ampersand/ Slash( opening parenthesis) Closing parenthesis- Equals? Question mark
[Grave 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 small e with grave (14/8)

aA[Tilde mark]

s

S

d
f
9
h
j
k

D
F

G
H

J
K
L

I

o small 0 with umlaut (15/6) e Small e with acute (14/9)
a Small a with grave (14/0)

it small a with umlaut (14/4)$ Dollar sign
< Less Thanyxc

£ 8ritish pound sign (10/3)> Greater 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

4

Shifted------@ Commercial

atBackslash\0 small 0 with umlaut (15/6) [ Opening bracket
a small a with umlaut (14/4) ] Closing bracket$ Dollar sign
# Number signii small u w/umlaut (15/12)

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 Smalla 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 mark4"

Circumflex CharDead
" 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 Char1

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

+ plusA

Circumflex Char

q
w

o

Q
W
E

e
r
t

R

y

Y
U
I

T

u
i
o
p

o

a Small a with ring (14/15)

U small u with umlaut (15/12)

aP

A Capital A with ring (12/5)

o Capital U w/umlaut (13/12)

A

s

S

d
f

D
F
G
H
J
K
L

g
h
j
k
1

o small 0 with umlaut (15/6) o Capital 0 w/umlaut (13/6)
a small a with umlaut (14/4) A capital A w/umlaut (12/4), Apostrophe* Asterisk< Less Than

> Greater than

z

Z

x
c

n

X
C
V
8
N

m

M

v
b

Comma
Period- Hyphen, Minus

Digital Internal Use Only

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--------..

Shifted-------

Dead
Dead
Dead
3
Dead
Dead
a Small a with ring (7/13) A Capital A with ring (5/13)
ii small u with umlaut (7/14 ) ij Capital U w/Umlaut (5/14 )0 small 0 with umlaut (7/12 ) 0 Capital 0 w/umlaut ( 5/12)
a small a with umlaut (7/11 ) 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 Char3
] 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

COl
C02
C03
C04

COS
C06
C07
C08
C09
C10
C11
C12

BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10

mDmDomD™

rpa Small a with ring (14/15)

P

A Capital A with ring (12/5)oU small u with umlaut (15/12)
Capital U w/Umlaut (13/12)
a
A
s
S

o

d
f
9
h
j
k
1

F

G

a small 0 with umlaut (15/6)
a small a with umlaut (14/4), Apostrophe< Less Than
Z
x

H
J
K
L

o Capital 0 w/umlaut (13/6)

A Capital A w/umlaut (12/4)* 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 A with ring (5/13)(j 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 different from 8-bit Characters, Typewriter keys)
Position-Unshifted

EOO
E03
E12
011
012
C10
C11

Dead
Dead
Dead
3
Dead
Dead
Dead
Dead
i Number signDeado 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)

mDmDomD™

ShiftedoDigital Internal Use Only

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 Char

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---------

2
3
4
5
6
7
8
9
0
+, Plus
Apostrophe
q
w
e
r
t
Y
u
i
0

P

Shifted-------@ CommercialatExclamation 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

a Small a with ring (14/5)

A Capital A wiring (12/5)" Quotation marks

A

a
s
d
f
g
h

A
S
0

Circumflex Character

F

G
H

j

J

k
1

K

~
12

0 w/slash (13/8)".IE Capital
Capital AE dipthong(12/6)

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

* 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

Shifted011
C10} Closing brace
I Vertical bar{ Opening brace] Closing bracket\ Backslash[ Opening bracket

ellNorwegian Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position

Unshifted----------------a Small a with ring (7/13)

011
C10
C11
B08
B09
B10

Small o with slash (7/12)
Small ae dipthong (7/11 )Commaperiod- Hyphen, Minus

Shifted-------A Capital A w/ring (5/13)
Capital 0 w/slash (5/12)
Capital AE dipthong (5/11); Semicolon
Colon
Underline

f2I

fa

a!

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\[

BackslashOpening 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
Positionunshifted

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)

A Capital A wiring (12/5)[Dieresis]asA[Circumflex accent]
S
D

d
f
g
h
j
k
I

F

G
H

J
K
L

m Small0

with slash (15/8)

m Small ae dipthong (14/6), Apostrophe< Less Thanze Capital 0 w/slash (13/8)~> Greater than

v
b
n

Z
X
C
V
B
N

m

M

x

c

Comma
Period- Hyphen, Minus

Digital Internal Use Only

Capital AE dipthong(12/6)* Asterisk

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@ Commercial

Closing bracket# Number sign

[ Opening bracket]

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)
Deado 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)
positionunshifted

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

Degree sign (11/0)
underline

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 u with grave (15/9)iNumber sign
< Less ThanK
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

PeriodSlash+ 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],e Small e with acute (7/11)
S Section sign (5/13)
e 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-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™

Inverted Question (11/15)

Shifted2, Apostrophe
Masc. ordinal ind (11/10)

Inverted exclamation (10/1)
Exclamation point" Quotation marks# Number sign
$ Dollar sign
% Percent sign
& Ampersand/ Slash( Opening parenthesis) closing parenthesis- Equals? Question markA Fem. ordinal ind (10/10)

q
w

w

2

3
4

9

o

Q

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

n Small n with Tilde

K
L(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)
positionunshifted

ShiftedEOO

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

Unshifted

Shifted

EOO@ Commercial at. ] Closing bracket, Open quote
Dead, Apostrophe
Dead\ Backslash[ Opening bracket
Circumflex character
Dead" Quotation marks- Tilde character

E12
D11
C10
C11
C12

mDmDomD™

Digital Internal Use OnlyA

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- Equalsqwert

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/ SlashDigital 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, wherex specifies the country, except that the Delete Key (El3) has thewords 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

----, open quote
1
2
3
4
5
6
7
8
9
0
- minus- equalsUpper----.. tilde
ex.clamation mark@ Commercial at
i number sign
$ dollar sign
% percent... circumflex& ampersand* asterisk( open paren) close paren-+ underline
plus

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

JKL; semicolon, apostrophe\ backslash
Return< less than
Z

Libry
colon
" double quotevertical line

> greater thanx

mDmDDmD™

Digital Internal Use Only

Replc
Date & TimePara 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

CenterView
Bot Docmt
New Page
Menu, commaSrchperiodcont Srch? question mark cont Srch

, comma. period/

mDmDomD™

slash

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 frontedge. 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, theexample 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
% percentcircumflex& ampersand* asterisk
open parenclose paren
underline-+ plus
A

<X]

W

006
007
008
009
010

£

Tab

000
001
002
003
004

Front Edge

Q
E
R

Print Hyph
Abbrv
Rub Line
Indent Tab
Super Script
Write Oocmt
Ruler
Top Oocmt
Footnote

y

U
I

o
p

[ open bracket { open brace] close bracket } close brace

Page Marker
Cmnd
Change Editor** There are three legends on E03, the shifted code generated bythis key is dependent upon which dialect, North American or
British, is selected in set-up.

mDmDomo™

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard Processing

19-Apr-1988

page 6-133

LK201- {PA, PEl Main Key Array Continued
rd

Lower

COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
C13
BOO
B01
B02
B03
B04
BOS
B06
B07
B08
B09
B10

A

mDmDomo™

Upper

Front edge
Sub Script
Spell Check
Dead Key
File Docmt
Get Docmt

S
D
F
G
H

Lang Aids

J
K
L; semicolon, apostrophe\ backslash
Return< less thancolon
" double quotevertical line

> greater than

Libry
Global Replc
Replc
Date & TimePara Marker
Status

Z
X

C
V

B
N
M

, comma• period/ sl-ash, comma. period? question mark

Digital Internal Use Only

CenterView
Bot Docmt
New page
Menu
Srch
Cont SrchCont 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, somecharacters 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 theparticular keyboard.
There are two forms of compose sequences:1.

Implied compose sequence - a two key sequence initiatedby 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 cantherefore be composed in more than one way. To compose acharacter 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 withan error, then the COMPOSE LED is turned off. If the Character 1
and Character 2 pair form a valid compose sequence, then thecompose 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.2Compose 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 thenon-spacing diacritical mark as the first half of the compose
sequence. Such an implied compose consists of two keystrokes asfollows:
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. Whenthe compose ends either successfully, by depression of the delete
key, or with an error, then the COMPOSE LED is turned off. If thenon-spacing diacritical mark and character pair form a valid
compose sequence, then the compose is successful and the composedcharacter is sent. If the non-spacing diacritical mark andcharacter pair do not form a valid compose sequence then the
Warning Bell rings once, if enabled in Set-up, to indicate acompose 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 isgenerated 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; thehexadecimal 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 8I 9 I E I+---+---+---+---+
I 4 I 5 I 6 I F I+---+---+---+---+
I

1

I

2

I

3

I

* I

* pressing either the Enter or
Period keys will abort thecompose sequence, and cause thefunction key to be sent to thehost.

+---+---+---+
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 notallowed, 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 sentin 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 theVT330/340 is in one of these modes, and the first key hiton 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.419-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 inprogress then the current compose sequence will be terminated anda new sequence will begin. The compose indicator remains on, thewarning bell is not rung, no code is transmitted and a keyclick isgenerated if enabled.

6.15.5Use Of The DELETE Key When A Compose Is Already In
ProgressTyping 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.619-Apr-1988

Page 6-139

Keystrokes Which Abort Compose Immediately

A keystroke on any of the following keys aborts the compose inprogress, 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 KeyA Keystroke on any of the following keys (or key combinations)aborts the compose in progress, does not ring the bell, does notsend the character code for any character entered earlier in thecompose sequence, and sends the character code or codes normallytransmitted 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:oo

6.15.8Shift
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 thecharacter 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 depressedin either order, unless the table entry for the composite
character says "in order". When a Non-Spacing Diacritical key isused 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 casesensitive, while those for other symbols are not.
In instanceswhere 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 isoptional 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.919-Apr-1988

Page 6-141

Composition Conventions

Mark is used to mean non-spacing diacritical mark. Some marks arealso called accents. Each non-spacing diacritical mark has acharacter associated with it in the a-bit Multinational charactersets. Note that the mark, or accent, is not strictly theequivalent of its associated character.
Mark

Associated Character

Tilde markAcute accent
Circumflex accent
Ring mark
Dieresis or umlaut mark
Grave accent
Cedilla- Tilde character, Apostrophe
Circumflex charactero (degree sign) or asterisk
It Double quote, Open quote, CommaA

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 shownas two raised dots and quotation marks are short vertical lines on
the key legends. Similarly, the acute accent is slanted and theapostrophe 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 byan 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 thesequence, and is handled normally (that is, a keyclick isgenerated, 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 forthe invalid compose sequence. The audible sound for a compose
failure may be distinguishable from the sound produced by thereceipt 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 andinvalid explicit and implied compose sequences. All keys are
divided into the following disjoint equivalence classes:

SymbolMeaning

C

Compose Keyd

Non-Spacing Diacritical key

avalid first key after Compose keyb.

valid second key after Compose key or first key
after a Non-Spacing Diacritical key

x

an invalid first key after Compose key

yan invalid second key after Compose key or first
key after a Non-Spacing Diacritical keyFany 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

cis the resulting composed one-byte character

mDmDomD

TM

Digital Internal Use Only

EL-0007.0-06
VSRM - Keyboard processing

19-Apr-1988

SyntaxActionTransmit

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

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

-------

Valid:
C a
C a
C d
d

b
d
b
b

c
c
c
c

Corrected by terminal user:
C a 0
C d D
C x D
C D
d D

nothing
nothing
nothing
nothing
nothingStarted over by terminal user:
C a C
C d C
C x C
C C
d C

nothing
nothing
nothing
nothing
nothing

C a y
C x y
C x b
C x d
C d y
C a F
C d F
C x F
C F
d F
d d
d y

nothing
nothing
nothing
nothing
nothing

errors:mDmDomD™

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 theprocessing 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 orsequence 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), andtransmit 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 orsequence 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), andtransmit 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 alreadyin compose mode.
The key code of the initiating key is passed in the call.
The procedure calls the following external routines, whichshould 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 theNon-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.106.15.10.1

19-Apr-1988

Page 6-149

8-bit Characters Mode Valid Compose Sequences
Compose Sequences For Characters without DiacriticalMarks -

Note when the Compose key is used to initiate the sequence, thetwo following keys may be depressed in either order, unless thetable entry explicitly says "in order".
CHARACTERI

SEQUENCES
+ +

@

a a

[

(

\

/ /

1

/

)
{

)

(

}

<NBSP> No Break Space<11 > i

a A

)

/ <

A

)

-

SP SP
1

<c/> Cent<L-> Pound Sign
<Xo> General currency

c /
L X 0
x 0
Y -

<Y-> Yen<I I> Broken vertical bar 1 1<So> Section Sign
Ss<CO> CopyrightC 0
c 0< a> Feminine ordinal«<> Angle quotes left<-,> Logical not sign
<SHY> Soft hyphen<RO> 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<-"'> Macron<+-> Plus-minus<2"'> Superscript 2<3"'> superscript 3</u> Mu, Micro sign<!P> Paragraph< .... > Middle dot<1"> Superscript 1< 0> Masculine ordinal<»> Angle quote right<14> Quarter<12> Half<34> Three Quarters<11> Inverted 1<AE> AE ligature<-D> Cap Icelandic Eth<OE> OE ligature<xx> times sign<0/> 0 slash<TH> Icelandic Thorn<ss> B<ae> ae ligature<-d> Sm Icelandic Eth<oe> oe ligature<-:> division sign<0/> 0 slash<th> Sm Icelandic Thorn<0"> 0tilde character
open quote
apostrophe<,,> acute accent"circumflex character
double quote<""> dieresis<,,> cedillamDmDomD™

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 sa 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-accentSp" (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 themark 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 theaccent or mark. For example the basic character in <un> is U.
MarkAssociatedCharacter

Composite Characters

Grave Accent, single quote <A'><a'><E'><e'><I'><i'><O'><o'><U'><u'>Acute Accent, apostrophe<A'><a'><E'><e'><I'><i'><O'><o'><U'><u'><Y'><y'>Circumflex Accent A circumflex<AA><aA><EA><eA><IA><iA><OA><oA><UA><U A>

Tilde Mark- tildeDieresisor Umlaut Mark" quotations<A"><a"><E"><e"><I"><i"><O"><o"><U"><u"><Y"><y">Ring Mark* asterisk
or degree<A*><a*>Cedilla, comma<C,><c,>~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 alist of non-spacing characters which do an implied compose. The
list is by keyboard. The most recent or recommended variation foreach dialect is listed first.
Note: This table applies tokeyboard 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 MarkC12 Circumflex MarkC12 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 MarkC11 Grave Accent
C11 Circumflex Accent(shifted)

6.

Danish (2nd, LK201-ED) - none

7.

Danish (1st, LK201-AO)
EOO Tilde MarkE12 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 MarkEOO 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 MarkE08 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.

Swedish18.

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 MarkE12 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 Mark23.

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 aresome changes in the compose sequences available to create 8-bit
characters, as a direct result of the lack of some characters ineither 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

19-Apr-1988

Page 6-155(not available)

160 <NBSP> no break space
166 <I I> broken vertical bar
168 <"A) dieresis
172 <-,> logical not
173 <SHY) soft (syllable) hyphen
174 <RO> registered trademark sign
175 <_A) macron
180 <,,> acute accent
184 <,,> cedilla
190 <34> fraction three quarters
208 <-0> capital Icelandic Eth
215 <xx> times sign
221 <Y'> capital Y with acute accent
222 <TH> capital Icelandic thorn
240 <-d> small Icelandic Eth
247 <-:> division sign
253 <y'> small y with acute accent
254 <th> small Icelandic thorn
ISO Latin-1 Supplemental(not available)

215 <OE> capital OE ligature
221 <Y"> capital Y with dieresis
247 <oe> 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 ispresent when either set is invoked. Only the code transmitted tothe host changes:
CharacterName

DEC Supplemental
Coding<OX> general currency<y") small y w/dieresis

ISO Latin-l Supplemental
Coding

168
253

164
255

Deviation Note
On the VT320, VT330, and VT340, there is one setof compose sequences whose result changes
depending on whether the ISO Latin-l Supplemental
or DEC Supplemental character set is chosen in
Set-Up:mDmDomD™

ComposeSequences

DEC Supplemental
Result

ISO Latin-l
Result<dieresis> <space><space> <dieresis>

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.
"<dieresis><space>" 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.116.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 eachkeyboard when the terminal is in 7-bit Characters mode, andTypewriter 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 theassociated NRCS, is used in GO. No COMPOSE sequences other thanthose listed for anyone keyboard are legal when that keyboard isselected and is in 7-bit Characters mode. Note: This tableapplies to keyboard maps as specified in Set-up, not physicalkeyboards.
.
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

<L-> 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

<L-> UK pound, apostrophe<a'> small a with grave
<0">

- L
L - 1
space apostrophe
apostrophe space, (grave accent) aa ' (grave accent)0"0<c,> small ~ with cedilla<50> §os, grave accent<e'> small e with acute<u'> small u with grave<e'> 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 0,
0 5
5 0
space' (grave accent), (grave accent) space
apostrophe ee apostrophe, (grave accent) uu ' (grave accent), (grave accent) ee ' (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 spacegrave aa grave
circumflex-accent aa circumflex-accent, cc ,circumflex-accent ee circumflex-accentcircumflex-accent ii circumflex-accentcircumflex-accent 0
0 circumflex-accent
apostrophe ee apostrophe
grave uu gravegrave ee grave
circumflex-accent uu circumflex-accentt pound (number) sign
, apostrophe<a'> small a with grave<a~> small a with circumflex<c,> small c with cedilla<e~> small e with circumflex<i~>small i with circumflex<o~>small o with circumflex<e'> small e with acute<u'> small u with grave<e'> small e with grave<u~> 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 at<AE> capital JE<0/> capital 0 with slash<A*> capital A with ring
~ circumflex, grave accent<ae> small ce<0/> small 0 with slash<a*> small a with ring... tilde

mDmDomD™

Page 6-159

o /

/

aA

0

A asterisk
asterisk A
space ~
~ spacespace' (grave accent), (grave accent) space

a e
o /
/ 0
a asterisk
asterisk aspace - (tilde)- (tilde) space

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.

19-Apr-1968

Finnish (3rd, LK201-NX) - Typewriter Keys
Character

Sequences" quotations

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"'> Aquotations U U quotations
apostrophe ee apostrophe
quotations a a quotations
quotations 0
0 quotations. a asterisk
asterisk a<0"'> aa <0"'>
quotations u u quotations

i pound (number) sign
, apostrophe@ commercial at<A"> capital A with umlaut<0"> capital 0 with umlaut<A*> capital A with ring
<U">
<e'>
<a">
<0">
<a*>

capital U with umlaut
small e with acutesmall a with umlaut
small 0 with umlaut
small a with ring<u"> small u with umlaut
7.

Page 6-160

Austrian/German (2nd, LK201-NG) - Typewriter Keys
Character

Sequences" quotations

space quotations
quotations space

i pound (number) sign
, apostrophe+ +space apostrophe
apostrophe spaces<So> §<A"> capital A with umlaut<0"> capital 0 with umlaut<U"> capital u with umlaut'" circumflex character, grave accent
<a">
<0">
<u">
<ss>

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) spacequotations a a quotations
quotations 0
0 quotations
quotations u u quotationss 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<L-> UK pound, apostrophe
<So>

<0"'>

§

<c,> small c with cedilla<e'> small e with acute'"circumflex character<u'> small u with grave. <a' > small a with grave<0'> small o with grave<e'> small e with grave<i'> small i with grave

mDmDomD™

! s

s!

! S

S

o s
o s
os

s 0
s 0
s 0
'" 0

0

S

S 0

o '"

0

1 1 -

0 S

S 0

0 S

S 0

space *
* spacec,, c
apostrophe ee apostrophe
space'" (circumflex)'" (circumflex) spacegrave-accent u
u grave-accent
grave-accent aa grave-accent
grave-accent 0
o grave-accent
grave-accent ee grave-accent
grave-accent ii 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 spacegrave-accent u
u grave-accent
space apostrophe
apostrophe spacegrave-accent aa grave-accent
apostrophe ee apostrophec,, ccircumflex-accent ee circumflex-accentcircumflex-accent ii circumflex-accent
grave-accent ee grave-accentcircumflex-accent 0
o circumflex-accentumlaut-mark aa umlaut-markumlaut-mark 0
o umlaut-markumlaut-mark uu umlaut-markcircumflex-accent uu circumflex-accent<u'> small u with grave, apostrophe<a'> small a with grave<e'> small e with acute<c,> small c with cedilla<e > small e with circumflex
A<iA> small i with circumflex<e'> small e with grave<OA> small 0 with circumflex<a"> small a with umlaut<0"> small 0 with umlaut<u"> small u with umlaut<u A> 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 spacegrave-accent u
u grave-accent
space apostrophe
apostrophe spacegrave-accent aa grave-accent
apostrophe ee apostrophec,, ccircumflex-accent ee circumflex-accentcircumflex-accent ii circumflex-accent
grave-accent ee grave-accentcircumflex-accent 0
o circumflex-accentumlaut-mark aa umlaut-markumlaut-mark 0
o umlaut-markumlaut-mark uu umlaut-markcircumflex-accent uu circumflex-accent<u'> small u with grave, apostrophe<a'> small a with grave<e'> small e with acute<c,> small c with cedilla<e~> small e with circumflex<i~>small i with circumflex<e'> small e with grave<o~>small 0 with circumflex<a"> small a with umlaut<0"> small 0 with umlaut<u"> small u with umlaut<u~>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<a"> small a with umlaut<0"> small 0 with umlaut<a*> 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 <OA><OA> Aquotations U U quotations
apostrophe ee apostrophe
quotations a a quotations
quotations 0 0 quotations
a asterisk
asterisk a<u"> small u with umlaut

quotations u#, pound (number) sign
apostrophe<E'> capital E with acute<A"> capital A with umlaut<0"> capital 0 with umlaut<A*> capital A with ring<U"> capital U with umlaut<e'> small e with acute13.

a <OA><OA> au 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<AE> capital 1£<0/> capital 0 with slash<A*> capital A with ring
circumflex
Ao /<ae> small a!
<0/> small 0 with slash<a*> 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 aspace - (tilde)- (tilde) spaceA, 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<L-> UK pound-, apostrophe<a'> small a with graveL, grave accent<e'> small e with acute<u'> small u with grave<e'> small e with grave
A~DmDDmDTM

circumflex

-

1

1 1 -

- L
L - 1
space apostrophe
apostrophe space, (grave accent) aa ' (grave accent)o0space 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 ee apostrophe, (grave accent) uu ' (grave accent), (grave accent) ee ' (grave accent)
space
space
A

<c,> small c with cedilla<50> §

L -Digital Internal Use OnlyA

EL-00070-06
VSRM - Keyboard Processing
15.

19-Apr-1988

Page

6~166

Spanish (LK201-AS) - Typewriter Keys
Character

Sequences------------------" quotations

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

<L-> UK pound, apostrophe<So>§<11> inverted!
<N-> 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) spaceAA, grave accent

<OA>

o

0

<n-> small n with tilde<c~> small c with cedilla- tilde16.

A0

space *- (tilde) nn - (tilde)c,,cspace - (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) AC ,grave accent
small a with tilde
small c with cedillasmall 0 with tilde
tilde character, Co - (tilde) - (tilde) 0
space(circumflex)(circumflex) space
space' (grave accent), (grave accent) spacea - (tilde) - (tilde) ac ,, co - (tilde) - (tilde) 0
space - (tilde)- (tilde) spaceAA

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) - notapplicable.

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 Mark012 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

mDmDomoTM

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.

Swedish18.

Swedish (1st, LK201-AM) - none

19.

Norwegian20.

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) spaceAA, grave accent{ opening brace
I vertical bar} closing brace- tilde6.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 isrequired 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 isdepressed simultaneously with another key:
LegendHEX Code
Transmitted

Name

Ctrl-space
00
NUL
Ctrl-200
NUL
Ctrl-A
01
SOH
Ctrl-B
02
STX
03
ETX
Ctrl-C04
Ctrl-D
EOT
Ctrl-EOS
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-LOC
FF
Ctrl-M
OD
CR
Ctrl-N
OE
SO
OF
Ctrl-OSI
Ctrl-P
10DLE
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-3ESC
1B
Ctrl-[
ESC
1C
Ctrl-4FS
1C
Ctrl-\
FS
Ctrl-S
1D
GS
1D
Ctrl-]
GS
Ctrl-61E
RS
Ctrl-1E
RS
Ctrl-7
1F
US
1F
Ctrl-?
US
Ctrl-67F
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 (ifthe control-numeral combination is valid) regardless ofthe 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 avalid 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 asymbol are local Set-Up modes only and are not setable from thehost. 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
KeypadReset Name

Seven Bit
Typewriter
Level 1
Hold Off
Unlocked
Caps Lock
ComposeCompose 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*
DeleteCompose Key*
EnableBreak Key*
EnableDECKBUM****
DECSCL
Hold Screen
Lock

Set Name

Eight Bit
Data-processing
Level 2
Level 3
Hold On
LockedShift 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
DisableDisableNotes:* - 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 bysoftware 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 areasof the keyboard.

2.

Added change bars to any change that could effectconformance or interpretation of the document or should
be brought to the attention of terminal implementors orsoftware 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 Modeand 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 andapplication 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 casealphabetic even when it is on the same key with anothersymbol.

25.

Indicated that Non-Spacing Diacritical keys behave thesame after implied and explicit compose sequences havestarted.

26.

Switched [ with] on Canadian (French), German/Austrian,and Spanish data processing keyboards so that they arelike 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 disabledby 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 istransmitted (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.219-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 ofterminal 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 "removablelabel 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 withDEC systems, except DECmate II and VAX Workstations.
Generic is intended to be used on non-DEC systems or byOEMs that have their own software.

7.

VAXworkstation has "Symbol" instead of "Compose" animplements 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 candelete 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 toalways 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 withlanguage in parentheses (only when needed). Removed allalternate country names. Art Len and Martin- Hall agreed
with this simplification.

13.

Introduced the concept of "usage mode" to distinguishtypewriter 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.
typewritermodes (11 characters) and data processing modes (5).

15.

Removed GR Transmission Mode (setable from host) andreplaced it with the Host Port Environment Mode (which isonly 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 ispressed 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 agreewith 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 frominvert question mark (11/15) to invert exclamation mark(10/1).

25.

Clarified that keyclick indicates whether something wastransmitted to the host or not, even in compose errors.

26.

Indicated additional compose error combinations in thetable.
Section 14 - Summary of modes27.

momDomD

1M

Added this section for easy reference.

Digital Internal Use Only

EL-00070-06
VSRM - Keyboard processing
6.18.319-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 ofkeybo~rd, and modified a~ legend tables to reflect thischange.

3.

Removed descriptions of Application Label strips pending
software strategy on label strip distribution control,
and added a note to the System Label Strip tableindicating 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 thatvariable repeat rates are not a required function, andthat 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 indicatethat order is significant only where specificallyindicated 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 andtransmit their normal codes, such as control keys andFunction 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 withupper case characters on tbe legends will be effected byCaps Lock.
Keys with one or more lower case diacriticalcharacters will not be effected. All keyboard codetables were changed to reflect this.

19.

Added a note that for Compose sequences consisting of twoalphabetic characters, it is required to implement thesequences with both characters upper case and both lowercase.
It is optional to also implement the sequenceswith 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.419-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 orinterpretation of the document or should be brought tothe attention of terminal implementors or software
engineers.

2.

Removed all references to echoing the error bell as partof 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 whenpressed 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 Lockkeys.
Fixed table to show Control Delete sends 1/8.

10.

Changed section on Control key operation to indicate thatalternate 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 whenControl 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 tocancel 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, §, andmDmDomD

TM

Digital Internal Use Only0

EL-00070-06
VSRM - Keyboard Processing
6.18.519-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 orinterpretation of the document or should be brought tothe 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 groupfunctionally 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 toshow which keyboards are described in this chapter, andwhich 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 ordernumber 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 Modelegends) .

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 thatwere 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 alreadyauto-repeating stops repeating when terminal isprocessing host output (to allow testing forconformance).

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 byorganizing as 7-bit/8-bit Charact~rs instead of
National/Multinational. Added algorithm forsetting/resetting character set mode.

29.

Greatly expanded explanation of Keyboard Usage Mode.
Added summary of Data Processing characters for eachkeyboard 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 theediting 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).

mDmDomoTM

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 andreferenced 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 theaffe~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 and7-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 adifferent character in ISO Latin-1 versus DEC
Supplemental. COMPOSE <dieresis> <space> should produce'double quote' in both DEC Supplemental and ISO Latin-1
for backward compatibility and consistency with acuteaccent. Noted VT320, VT330, and VT340 as deviations.

59.

Simplified table of compose sequences for 8-bit
characters without non-spacing diacriticals by listingeach sequence in only one order. Added note that ordercan be reversed unless table entry explicitly says "inorder". 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 abortcompose immediately.

62.

Added table summarizing non-spacing diacriticals for eachkeyboard dialect.
Section - 16 Control Codes and Keystrokes

63.

Put control codes into one table in new section.
Section - 17 Summary of Modes

64.

mDmDnmDTM

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-lVSR~section Index
Application Function Key, 6-32,
definition, 6-25
6-70
errors, 6-141
Application Function Key Row
explicit, 6-20, 6-26, 6-42,
within compose sequence, 6-141
6-79, 6-80, 6-134, 6-140,
Application Function Keys, 6-15,
6-145
6-28, 6-30
implied, 6-26, 6-42, 6-79,
Application Label Strip
6-134, 6-140, 6-145
definition, 6-25
order within, 6-140
Application Process, 6-12, 6-14
restarting, 6-138
definition, 6-25
syntax, 6-143
Auto Print Mode, 6-73
Compose sequence
Auto Repeat
implied, 6-80
within compose sequence, 6-134
Compose Sequences, 6-54
Auto Repeat Mode, 6-16, 6-40,
Conformance
6-172
keyboard, 6-15
Conformance Level, 6-17, 6-38,
8-bit Architecture Extension,
6-70, 6-172
6-21
Control Character
Break Key, 6-74
definition, 6-25
Byte
Control Function
definition, 6-25
definition, 6-25
Control Key, 6-61, 6-63, 6-69,
Cl Transmission Mode, 6-61, 6-64,
6-70, 6-75
auto repeat, 6-42
6-66, 6-69, 6-70, 6-172
Caps Lock, 6-16, 6-17, 6-77, 6-78,
with new line mode, 6-79
6-82, 6-172
with shift key, 6-77
Caps/Shift Lock Mode, 6-16, 6-17,
within compose sequence, 6-141
6-77, 6-78, 6-82, 6-172
Cursor Key, 6-28, 6-60, 6-61,
Character
6-62
definition, 6-25
within compose sequence, 6-141
Character Set Mode, 6-22, 6-172
Cursor Key Mode, 6-16, 6-60,
Coded Character
6-172
definition, 6-25
Cursor Keypad, 6-33
Coding Interface, 6-12, 6-14
definition, 6-25
Dead Key .
Compose, 6-12, 6-44
within compose sequence, 6-141
Compose Key, 6-12, 6-44
DEC STD 070-12, 6-23
Co~pose LED, 6-30, 6-44, 6~141
DEC STD 070-3, 6-23
Compose Mode, 6-172
DEC STD 070-4, 6-23
Compose Sequence, 6-12, 6-19,
DEC STD 070-7, 6-23
6-20, 6-44, 6-81
DEC STD 107, 6-12, 6-13, 6-15,
algorithm, 6-145
6-23, 6-26, 6-30, 6-75
auto repeat, 6-134
DEC STD 169, 6-15, 6-23
DECARM, 6-41'.
buffering, 6-37
cancelling, 6-138
DECCKM, 6-62
case within, 6-140
DECKBUM, 6-57

momDomD™

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 Markdefinition, 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 Portdefinition, 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 Modedata 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

Legenddefinition, 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 Portdefinition, 6-26
Printer Port Environment Mode,
6-172
Product ClassDEC Standard, 6-35
DECmate/WPS, 6-35

mDmDomD™

Receivedefinition, 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 Modecontrol function, 6-66
Set Keypad Numeric Modecontrol function, 6-67
Set-updefinition, 6-27

Digital Internal Use Only

EL-00070-06·~ -.
VSRM - Keyboard processing

19-Apr-1988

set-up Key, 6-73
Set/Reset Auto Repeat Modecontrol function, 6-41
Set/Reset Character set Modecontrol function, 6-52
Set/Reset Cursor Key Mode, 6-62
Set/Reset Keyboard Action Modecontrol function, 6-39
Set/Reset Keyboard Usage Modecontrol 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 ofthe 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 forterminal products and Software Engineers designing programs using
terminal interfaces. Additional requirements are defined in thesection on "Concepts and Conformance Criteria" (EL00070-01).
STATUS:FOR REVIEW ONLY+----------------------------------------------------------------+I The material contained within this document is assumed toI
I define mandatory standards unless it is clearly marked as:
I (a) not mandatory; or (b) guidelines. Material which isI marked as "not mandatory" is considered to be of potential
I benefit to the corporation and should be followed unless there
I are good reasons for non-compliance. "Guidelines" define
I approaches and techniques which are considered to be good
I 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 ArchitectureGroup 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

Sichel,Copies of this document can be ordered from Standards andControl, LJOI/I2, DTN 226-2484, JOKUR::SMC

Methods

Please provide your name, badge number, cost center, mailstop, andENET node.

Page 7-3

VSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987•

CHAPTER 7

CONTENTSPRINTER 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.107-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 (not7.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

•

••

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

•

•

•

•

•

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 theprinter port. The device must transfer data from the display,including the character codes, character renditions, and charactersets,
on a per-line,
per-scrolling region,
per-screen,andper-page basis.
The Printer Port uses serial asynchronous communications withindependently setable communication parameters.
Level 3 requiresa fully bi-directional printer port to allow printer to hostcommunication in addition to local printing (not mandatory for
Levell or Level 2).
7.2

TERMINOLOGY

Auto Print Mode - A printer port control which, when set,causesthe contents of the Active Line to be transmitted to the printerport whenever the Active Position is moved off the Active Line asaresult of a Line Feed, Form Feed or Vertical Tab command, or
autowrap.
Fallback Transmission - A substitute transmission used when acharactercannot be transmitted in a particular mode;forinstance, when in NATIONAL and LINE DRAWING mode and a characterfrom the DEC Supplemental set is encountered.
Printer Controller Mode - A printer port control that causes alldata received at the host port to be transferred directly to theprinter 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) tobe relayed to the host.
Print Extent Mode - A printer port control used to select the areaof 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 theconclusion of each Print Page or Print Screen operation.
Printer Port - An auxiliary communication
printing device.

port

that

supportsa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 theprint 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 theprint function to be executed. The extent of the area which is tobe 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 (suchas the keyboard, display, and comm lines) with other virtual
terminals. This allows a single physical device to appear as morethan one terminal to a host computer.
Session - A connection between a single
host computer.
7.3

virtualterminal

anda

STATE DESCRIPTIONS

7.3.1

Printer Port Flow Control

The Printer Port uses two flow control mechanisms:
1.

XON/XOFF2.

Data Set Ready (DSR)

7.3.1.1

XON/XOFF

When XON/XOFF flow control is ~nabled, XON and
XOFF
areinterpreted as flow control characters and are not buffered in theprinter port input buffer or transmitted to the host.
The terminal recognizes XOFF (1/3) as a request from the printerdevice to suspend the transmission of characters. When thischaracter 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 printerdevice 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 theprinter is cleared and transmission of characters in the printerport output buffer is resumed. If the line was not XOFF-ed,
thischaracter is ignored.
When Printer To Host Communication is enabled (bidirectional
printer port only), the terminal transmits an XOFF to the printerdevice if a character other than XON or XOFF is received from thatdevice, 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 isfull, the received character is discarded.
The terminal transmits an XON to the printer device when theprinter port input buffer empties to the XON point, and the lastflow 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 theprinter in Printer Controller mode, and are
bufferedandtransmitted to the host when Printer To Host communication isenabled.
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 printerdevice, transmission of the character is suspended until DSR isasserted 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 thefirst XOFF point.
-If the input buffer is full,receivedcharacters 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 isoften 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 onwhether the terminal believes there is a printer available, andwhether 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), theterminal assumes there is no printer. The device status report(response from terminal to host) will indicate "Printer notavailable".
In this state, all print commands which require theprinter port are ignored.
If the printer port has seen DSR since power-up,
but it is nolonger 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 printerport.
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 canproceed immediately. Note updates that would affect the data to
be printed are still suspended until the data has been transferredto 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
aresupported(SessionManagement
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,butan alternate session is currently sending information to theprinter, 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 sothat the current session may not access the printer port, thedevice status report will indicate "Frinter Not Assigned." This isfunctionally 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 betransmitted 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 printerport, 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 otherthan 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
responsibilityoftheapplication
programand 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,
controlsequence,or control string, will be buffered until a terminatoris 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 characterswill be converted to ESC Fe sequences at the host port
before re-transmission to the host, and GR characterswill have their eighth bit stripped.

Printer Controller Mode

When Printer Controller Mode is set, all data received at the hostport
istransferred directly to the printer port without
interpretation by the display terminal. The only exceptions tothis rule are the communications control characters XON and XOFF
(DC1 and DC3), NUL, and the control sequences which cause theterminal 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, andindependently 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 Modeon and off, and must execute the sequence which turns PrinterController Mode off. These control sequences are not passed tothe 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,
theterminal would translate 7-bit· C1 controls totheir 8-bit equivalents. New terminals shall NOT
perform this translation.
Printer Controller mode can be selected from theMedia Copy (MC) control function.
When Control Representation Mode
(CRM)
Controller Mode is temporarily disabled.

is

host

using

selected,thePrinterUpon exiting from Printer Controller mode, the state of Auto Print
mode is UNDEFINED.
That is, when Printer Controller mode isexited, 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 printmode) upon exit from Printer Controller mode.

7.3.6.1

Printer Controller Mode On Virtual Terminals (guideline)

If the Printer is "assigned" to anothersession(virtualterminal), attempts to invoke Printer Controller Mode will beignored. 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 transferredto the printer will cause this session to wait until the printeris available.
If the input buffer for this session fills while
waiting,
the terminal will send XOFF (or other flow control) tothe host.
Entering Printer Controller Mode forces the printer toappear 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 transferredfrom the display to the printer port. The line will be terminatedby 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.1clea~edPage 7-12

by the host using theMedia

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), thenext action which would cause data to be transferred to theprinter will cause this session to wait until the printer isavailable.
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 notpredict 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 theconclusion of each Print Page or Print Screen operation.
In theset 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 betransmitted to the printer when a Print Page operation is
performed.
In the set state (Complete page) the entire contentsofthecurrent 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 themargins) is transmitted.
PRINT EXTENT MODE: (PRINT_SCROLLING_REGION,PRINT_DISPLAY);
7.3.10Local Controller Mode (not Mandatory)

When both Local Mode and Controller Mode are selected,
theterminal 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 thescreen, while in regular Controller mode the keyboard is aimed at
the host. When "Local controller Mode" is exited to PrinterController Mode,the characters accumulated in the receive silo
are transmitted to the printer. When "Local Controller Mode" isexited to Local Mode, the terminal just redirects the keyboard
from the printer port to the screen (and parser). Local echo isdisabled 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 hostmode is ignored and characters received from the printer are
ignored (except XON and XOFF if XOFF support is enabled).
7.3.11Printer Style

Three Printer Style modes are available to match the range ofcharacter 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 PRINTDATA.
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.
Thismayrequireadditional
designating
escapesequences
and/or shifts.
Finally,thetransmission is ended by putting the printer into a known state.
Since the host may access the printer during auto-print mode,thecomplete initialization / transmission / closing sequence is used
for each line printed.
7.4.0.1

Print National. Only
Environment)(7-bitOr

a-bit

PrinterPort

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 havealready 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 isassumed that the printer is ready to print NRCS characters as GL.
TRANSMISSION:
The characters are sent. No escape sequences orshifts 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-bitOr

8-bit

Printer

ASSUMPTIONS:The printer supports ASCII, the VT100 line drawing
set (DEC Special Graphics),
the current NRCS (when in nationalmode), 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(ASCIIis 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 ASCII to GO, note other NRC Sets
require a different designating sequence)(Designate DEC Special Graphics to Gl)(Invoke GO to GL)

TRANSMISSION: The characters are sent, using LSO and LSI tochoose between NRCS and DEC Special Graphics.
If a character isin both sets (e.g., uppercase letters), it is sent as NRCS.
If acharacter 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 toagain be designated as GI.
If a character which is not in thecurrent 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
designatedasGI, DEC Special Graphics (line drawing)isre-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 ormore supported characters). Refer to the faliback section andtables 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 printerhas 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 PrinterController Mode,
if necessary).
Printers with changeable font
cartridges must support all of theabovecharactersets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with theterminal.
The character sets currently designated as GO, GI, G2,
and G3 in the terminal are designated as GO, GI, G2, and G3 in theprinter respectively.
GO is invoked to GL. The sequences sent
are:
ESC
Dscs
ESC
Dscs
ESC * Dscs
ESC + Dscs
LSO

(Designate(Designate(Designate(Designate(Invoke GO

a 94 charactera 94 charactera 94 charactera 94 characterto GL)

set asset asset asset as

GO)
GI)
G2)
G3)

Where "Dscs" consists of zero, on-e, or two intermediatecharacters and a final character for the character set
being designated.
If a 96 character set is to be designated, the firstintermediate 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 designatedas the UPSS, not the specific character set chosen.
TRANSMISSION: The characters are sent, using LSO and LS1choose between the character sets in GO and G1.
If a characterin 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 fromalternate 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 thelast set designated as G3, G3 is re-designated. This leaves theprinter with GO invoked as GL; GO, Gl, G2, and G3 the same as theterminal.
FALLBACK: When Print All Characters is selected, fallback is only
provided for CRM characters. CRM characters do not belong to acharacter set. Refer to the fallback section and.tables later inthis 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 printerhas 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 PrinterController Mode, if necessary).
Printers with changeable font
cartridges must support all. of theabovecharactersets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with theterminal.
The character sets currently designated as GO, G1, G2,
and G3 in the terminal are designated as GO, Gl, G2, and G3 in theprinter 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 intermediatecharacters and a final character for the character set
being designated.
If a 96 character set is to be designated, the firstintermediate 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 designatedas 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 analternate character set is encountered,
the alternate set isdesignated 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 acharacter set.
Refer to the fallback section and tables later inthis 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
Publishingmeant 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 theVT300,"All Characters" mode was changed to print
all characters more efficiently.
Some terminals
may provide a "Multinational" mode similar to "AllCharacters" on the VT200 to support fallbacks forother 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 SetNorth American
FlemishCanadian (French)
BritishDanishFinnishAustrian/German
DutchIt.alian
Swiss (French)
Swiss (German)
SwedishNorwegianBelgian/French
SpanishPortuguese

ASCII
French NRC Set
French Canadian NRC Set
U.K. NRC Set
Norwegian/Danish NRC Set
Finnish NRC Set
German NRC Set
ASCIIItalian 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);
FrenchCanadian "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.
Theline 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 ofprint 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 mwith the following parameters:o all attributes off
1
4
5
7

for
for
for
for

bold character attributeunderscore 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 attributeparameter 8) are always sent to the printer as spaces.
7.4.3

(SGR

Trailing Spaces

Trailing spaces are spaces which come after all
printablecharacters 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 havevideo character attributes, and are therefore printable.
In thiscontext, 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 thePrinter 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 toreconstruct the original text using context to resolve conflicts.
NOTE
These fallbacks are not performed in PrinterController 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 thecorresponding 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 Styleis set to National Only or National + Line
Drawing, and one of these characters occur in thedata stream and, is not available in the current
national set, fallback is used as described below.
Characterijflorin7.5.2

Fallback Presentation
ij vowel (Dutch NRCs 5/11)
florin(Dutch NRCs 7/12)

ijf

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 fromthe ASCII character set which approximate the desired graphic.
These characters have beenchosensothatdiagramsorpresentations that use the mosaic line combinations will alignproperly and present a reasonable appearance.

VSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Character

<**>
<it>
<HT>
<FF>
<CR>
<LF>
<+->
<OA>
<NL>
<VT>
< 1>
<"X"I >
<IA>
< 1_>
<+>
<AA>
<A_>
<-->
<- >
< >
<T=>
<-I>
< L>
<T>
<I>

<>=>
<][>
</=>
<L ... ><.A>

diamondfilled block
HT symbol
FF symbol
CR symbol
LF symbol
plus/minus signdegree sign
NL symbol
VT symbol
lower right corner
upper right corner
upper left corner
lower left cornerintersect·ion
scan I
scan 3scan 5scan 7
scan 9intersect from rightintersect from leftintersect from top
interse9t from bottom
vertical bar
less than or equal togreater than or equal to
Pi symbol
not-equal topound 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 sequenceof one or more characters from the ASCII character set whichapproximate the desired graphic as described in the fallback tablebelow.

II

VSRM - Printer Port Extension EL-00070 ... 07*** COMPANY CONF - DEC Internal.use Only 28-Apr-1987
Character<! ! >
<c/>
<L->
<Y=>
<So>
<Xo>
<CO>
< a>
«<>
<0">
<+->
<2">
<3">
</u>
<!P>
<. "'>

<1"'>

< 0>
<»>
<14>
<12>
<11>
<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"'>

Fallback Presentation

SP03 inverted exclamation markSC04 cent sign
SC02 pound sign
sCOS yen sign
SM24 section sign
SC01 general currency sign
SMS2 copyright sign
sM21 feminine ordinalsP17 angle quotation mark left
SM19 degree sign
sA02 plus/minus sign
NS02 superscript 2
NS03 superscript 3
sM17 micro sign
sM2S paragraph sign
sM26 middle dot
NS01 superscript 1
SM20 masculine ordinal
SP18 angle quotation mark right
NF04 fraction one quarter
NFOl fraction one halfsP16 inverted question markLAll small a with acute accent
LA12 capital A with acute accent
LA13 small a with grave accent
LA14 capital A with grave accent
LA1S small ~ with circumflex
LA16 capital A with circumflex
LA17 small a with die~esis or umlaut
LA18 capital A with dieresis or umlaut
LA19 small a with tilde
LA20 capital A with tilde
LA27 small a with ring
LA28 capital A with ring
LAS1 small ae diphthong
LAS2 capital AE diphthong
LC41 small c with cedilla
LC42 capital C with cedilla
LE1! small e with acute accent
LE12 capital E with acute accent
LE13 small e witp grave accent
LE14 capital E with grave accent
LE1S small e with circumflex
LE16 capital E with circumflex
LE17 small e with dieresis or umlaut
LE18 capital E with dieresis or umlaut
Ll11 small i with acute accent
LI12 capital I with acute accent
LI13 small i with grave accent
LI14 capital I with grave accent
LI15 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

<I">
<i">

<0'>
<0'>
<0">
<0">
<0">
<0">
<0->
<0->
<oe>
<OE>
<0/>
<0/>
<ss>
<u'>
<U' >
<u'>
<U'>
<u">
<U">
<u">
<U">
<y">
<Y">

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

7.5.4

ISO Latin-l Supplemental Fallbacks

<I">
<n->
<N->

<0'>
<0' >

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 markcapital 0 with dieresis or umlaut marksmall 0 with tilde
capital 0 with tilde
small oe ligature
capital OE ligaturesmall 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

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 asequence 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<NBSP>
<! 1>
<c/>
<L=>
.<xo>
<y=>

<I I >

<So>
<itA>
<CO>
< a>
«<>
<-,>
<SHY>
<RO>
<_A>
<OA>
<+->
<2A>
<3 >
A

<' , >

</u>
<!P>
<. A>

<, , >

<lA>

< 0>
<»>
<14>
<12>
<34>
<??>
<A' >
<A' >
<A A>
<A">
<A->
<A*>
<AE>

<C,>
<E'>
<E'>
<EA>
<E">
<I'>
<I'>
<IA)
<I">
<-D>
<N->
<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 markcent sign
pound sign
general currency sign
yen sign
broken bar
section signdiaeresis
copyright sign
feminine ordinalangle quotation mark left
logical not sign
soft hyphen
registered trade mark sign
macron, overline
degree signplus/minus sign
superscript 2
superscript 3
acute accent
micro sign
paragraph sign
middle dot
cedillasuperscript 1
masculine ordinalangle quotation mark rightfraction one quarter
fraction one half
fraction three quarters
inverted question markcapital 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 diphthongcapital 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 Ethcapital N with tilde
capital 0 with grave accent<space>
1

c

*

o
y

I

Sc
It

(C)

a

«

-

(tilde)(dash)(R)- (dash)o+23, (apostrophe)uPr, (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
capital 0 with acut~ accent
capital 0 with circumflex
capital 0 with tilde
capital 0 with diaeresis or u~lauttimes 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 diphthongsmall a with ringsmall c with cedillasmall 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 Ethsmall 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

<0'>
<OA>
<0->
<0">
<xx>
<0/>
<U'>
<U'>
<u >
<un>
<Y'>
<TH>
<ss>
<a'>
<a'>
<a >
<a->
<a">
<ae>
<a*>
<c,>
<e'>
<e'>
<e >
<en>
<i'>
<i'>
<iA>
<in>
<-d>
<n->
<0'>
<0'>
<OA>
<0->
<0">
<-:>
<0/>
<u'>
<u'>
<u >
<un>
<y'>
<th>
<y">

LOl2
LOl6
L020
LOl8

7.5.5

DEC Technical Character Set Fallbacks

A

A

A

A

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

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

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 presenta reasonable appearance.
Characterleft radical
top left radical<Horiz> horizontal connector<TopI> top integral<BotI> Bottom integral<Vert> vertical connectorline)<Top[> top left square bracket<Bot[> bottom left square bracket<Top]> top right square bracket<Bot]> bottom right square bracket<Top(> top left parenthesis<Bot(> bottom left parenthesis
top right parenthesis<Top»bottom right parenthesis<Bot»
left middle curly brace<{ {>right middle curly brace<} }><TopS> top left summation<BotS> bottom left summation
top vertical summation connector<\\>
bottom vertical summation connector<II><TopRS> top right summation<BotRS> bottom right summation<>S>
right middle summation
less than or equal«=>
not equal<=1>
greater than or equal<>=><Integ> integral
therefore<: • ><var>
variation, proportional toinfinity<00>
division, divided by<-:><DELTA> capital delta, triangle<nabla> nabla, del<PHI>
capital phi<GAMMA> capital gamma<-->
is approximate to<-->similar or equal to<THETA> capital theta<xx>
times, cross product<LAMBD> 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
?
?
?
?
?
?
?
?

capital pi, product<PI>
capital psi<PSI><SIGMA> capital sigma, summation
radical<Rad><OMEGA> capital omega, Ohm sign
capital xi<XI><UPSIL> capital upsilon
is included in<cc><inclu> includes<inter> intersection<union> union
logical and<L&>
logical or
<LI>
line)
<L->
logical not<alpha> small alpha<beta> small betasmall chi<chi><delta> small delta<epsil> small epsilon
small phi
<phi>
<gamma> small gamma
small eta
<eta>
<iota> small iota
<theta> small theta<kappa> small kappa<lambd> small lambda
small nu
<nu>
partial derivative<pd>
small pi<pi>
small psi
<psi>
small rho
<rho><sigma> small sigma
small tau<tau>
<func> function<omega> small omega
small xi
<xi>
<upsil> small upsilon<zeta> small zeta
left arrow«-><AI>
up arrowright arrow<-»
down arrow<vi>,Page 7-27

P
Q
S

VW
X
Y
C

none
(circumflex)Av& (ampersand)I (vertical- (tilde)
a
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 All
Characters",
the SPACE character (2/0) is printed in place of any
character from a ORCS, except when the designating string of the
ORCS matches a ROM-based character set that may be printed.
If
the ORCS is substituting for a ROM-based character set,theappropriate character from the ROM-based character set is used (ifit can be printed without fallback).
Deviation Note
The printer fallback character on the VT200 series
was the underscore (n n).
This was changed tospace 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 eventhough 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 toPrint 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 asa pair of capital ASCII letters or digits representing the name of
the CO or C1 control character.
If the printer supports theunderscore graphic rendition and "Print National + Line Drawing",
or "Print All Characters" is selected,
theCRM
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
CancelEnd of Medium
SubstituteEscapeFile 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 thelines in the current page which are in the active scrolling region
are transferred to the printer.
Which occurs depends on thesetting of Printer Extent Mode (DECPEX). This function is invokedby 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 thisoperation is to reproduce the contents of the screen as if asnapshot had been taken.
Due to various terminal and printerlimitations,some compromises may be necessary forcomplexdisplays.
The Main Display may consist of information from morethan 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 LOCALPRINT 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 tothe 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 LineThe text of the line on which the output cursor resides istransferred 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'

.

1 q:

--

C~

.

71q
lJ~
J

f.s ) p,..,Ft''14--t'\q- Se'\

I

eLI'?

ff~ttl- (C

S~1'

cL(t

( w4.l' it)( ~croU)f~. ftj-oll/.(,Ci\ (\I" fAn 1)"",,1 0""/ i :t +U~i3l'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 FUNCTIONSDSRREPORT PRINTER STATUS----------~------------------------------------------- -------------------

Levels:IX, 2X, 3X

purpose:Report the status of the printerRequest 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 bytransmitting a Device Status Report control sequence containing
one of the following selective parameters (preceded by theprivate 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 alternatesession is currently sending information to theprinter, 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 acomplete description of how the status of the printer ismaintained.

State Affected:

None

Algorithm:
PROCEDURE REPORT_PRINTER_STATUS;
BEGIN
CASE PRINTER STATUS OF
WRITEPRINTER READYPRINTER-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,'<CSI>?10n');'<CSI>?lln');, <CSI>?13n');, <CSI>?18n' );, <CSI>?19n' );VSRM - Printer Port Extension EL-00070-07***COMPANY CONF - DEC Internal Use Only 28-Apr-1987
SET/RESET PRINTER CONTROLLER MODE

page 7-34

MCLevels: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 PrinterController Mode is exited, Auto Print Mode may not be in
the same state as it was when Printer Controller Mode wasentered.

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 MODEMC

LevelslX, 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 thefollowing 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 characteris received.

Notes:
1.

When Printer Controller Mode is set, the state of Auto
Print Mode becomes UNDEFINED. That is, when PrinterController Mode is exited, Auto Print Mode may not be in
the same state as it was when Printer Controller Mode wasentered.

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 MODEMC

LevelslX, 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 theprinter port (other than XON/XOFF flow control when enabled) isrelayed 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

purpose:To set or reset the state of Print Form Feed Mode.

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 theconclusion 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

h1

Description:
Print Extent Mode is used to select the area ofthe 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 ofthe 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

Page 7-39

MC

PRINT PAGE
LevelslX, 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 thecurrent page of the current session or just the lines in thecurrent page which are in the active scrolling region to betransferred to the printer. Which occurs depends on the settingof 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,'<CR><LF>');
END;(* end for each line *)IF PRINT FORM FEED MODE = PRINT FF ON THEN
WRITE (PRINTER PORT,'<FF>');(* 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,'<CSI>Om');
P GL CHARACTER-SET:= P CURRENT NRCS;(* designate current NRCS as GO
ASCII is NRCS for North America *)WRITE (PRINTER PORT, '<ESC>(');
WRITE (PRIN~ER-PORT, CHARACTER SET DSCS[P GL CHARACTER SET]);(* designate lIne drawing as GI *)WRITE (PRINTER PORT, '<ESC»O');(* invoke GO to GL *)VSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-41

WRITE (PRINTER_PORT, '<51>');(* 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]iP-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 OFP CURRENT NRCS:
BEGIN(* character set is current NRCS *)(* invoke GO to GL *)WRITE (PRINTER PORT, '<SI>')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, '<ESC»O')i
P G1 DESIGNATE:= LINE_DRAWINGiVSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-l987

page 7-42

END;(* invoke Gl to GL *)WRITE (PRINTER PORT,'<SO>');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, '<ESC»B');
P_Gl_DESIGNATE:= ASCII_G;
END;(* invoke Gl to GL *)WRITE (PRINTER PORT, '<SO>');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,'<CR><LF>');
END;(* end for each line *)IF PRINT FORM FEED MODE = PRINT FF ON THEN
WRITE (PRINTER_PORT,'<FF>');(* termination sequence *)(* send LSO if necessary to leave GO invoked to GL *)IF P GL CHARACTER SET <> P CURRENT NRCS THEN
WRITE-(PRINTER PORT, '<SI>');(* if Line Drawing isn't in Gl, designate it *)IF P Gl DESIGNATE <> LINE DRAWING THEN
WRITE-(PRINTER_PORT, '<ESC»O');
END;(* end printer style is National + Line Drawing *)ELSE IF PRINTER STYLE

ALL CHARACTERS THENVSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-43

BEGIN(* printer style is All Characters *)(* initialization sequence *)P RENDITION(BOLD]:- FALSE;
P-RENDITION(UNDERSCORE]:- FALSE;
P-RENDITION(BLINK]:- FALSE;
P-RENDITION(REVERSE]:= FALSE;WRITE (PRINTER_PORT,'<CSI>Om');(* initialize printer G sets to correspond with terminal *)WRITE (PRINTER PORT, '<ESC>(');
WRITE (PRINTER=PORT, CHARACTER_SET_DSCS[DESIGNATED_GRAPHIC_SETS[GO]);IF CHARACTER SET SIZE['DESIGNATED GRAPHIC SETS[Gl]] - 94 THEN
WRITE (PRINTER-PORT, , <ESC> ) ',);ELSE
WRITE (PRINTER PORT, '<ESC>-');WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[Gl)]);IF CHARACTER SET SIZE(DESIGNATED GRAPHIC SETS[G2)) - 94 THEN
WRITE (PRINTER-PORT, '<ESC>*');ELSE
WRITE (PRINTER PORT, '<ESC>.');WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G2]);
IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G3)) - 94 THEN
WRITE (PRINTER-PORT, '<ESC>+');ELSE
WRITE (PRINTER PORT, '<ESC>/');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, '<ESC>}');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, '<SO>');DESIGNATED GRAPHIC SETS[G2):(* chara~ter set-is in G2 *)(* send 552 to invoke G2 to GL *)WRITE (PRINTER_PORT, '<ESC>N');DESIGNATED GRAPHIC SETS[G3]:(* chara~ter set-is in G3 *)(* send 553 to invoke G3 to GL *)WRITE (PRINTER_PORT, '<ESC>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, '<ESC>+');-

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, '<ESC>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, '<ESC>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 <> P GL CHARACTER SET) AND(DISPLAY[Y,X).CHARACTER-SET <> P:GR:CHARACTER:SET) THEN
BEGIN(* yes, designate and invoke as needed *)CASE DISPLAY[Y,X).CHARACTER_SET OF
DESIGNATED GRAPHIC SETS[GO):BEGIN(* character set is in GO *)(* send LSO to invoke GO to GL *)WRITE (PRINTER PORT, '<SI>');
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, '<SO>');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, '<ESC>}');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, '<ESC>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, '<ESC>+');ELSE
WRITE (PRINTER PORT, '<ESC>/');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, '<ESC>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,'<CR><LF>');
END;(* end for each line *)IF PRINT FORM FEED MODE = PRINT FF ON THEN
WRITE (PRINTER_PORT,'<FF>');(* 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, '<SI>');(* 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, '<ESC>}');
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, '<ESC>+');
ELSE-WRITE (PRINTER PORT, '<ESC>/');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;
END;

(* end printer style is All Characters *)(* 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,'<ESC>iS');
IF P LINE RENDITION - DOUBLE WIDTH THEN
WRITE (PRINTER PORT,'<ESC>i6');
IF P LINE RENDITION - DOUBLE HEIGHT TOP THEN
WRITE (PRINTER PORT,'<ESC>i3');
IF P LINE RENDITION - DOUBLE HEIGHT BOTTOM THEN
WRITE (PRINTER PORT t '<ESC>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,'<ESC>[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

page 7-49

PRINT LINEMC

LevelsIX, 2X, 3X

Purpose: Transmit the line containing the Active Position to theprinter 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, inwhich the line containing the Active position is transmitted tothe 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,'<CR><LF>');(* 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,'<CSI>Om');
P GL CHARACTER-SET:- P CURRENT NRCS;(* designate current NRCS as GO
ASCII is NRCS for North America'*)
WRITE (PRINTER PORT, '<ESC>(');
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, '<SI>');(* 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 OFP CURRENT NRCS:-BEGIN(* character set is current NRCS *)(* invoke GO to GL *)WRITE (PRINTER PORT, '<SI>');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, '<ESC»O');P G1 DESIGNATE:= LINE DRAWING;
END; --(* invoke G1 to GL *)WRITE (PRINTER PORT,'<SO>');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, '<ESC»B');
P G1 DESIGNATE:= ASCII G;
END;-

-

(* invoke G1 to GL *)WRITE (PRINTER PORT, '<SO>');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,'<CR><LF>');(* termination sequence *)(* send LSO if necessary to leave GO invoked to GL *)IF P GL CHARACTER SET <> P CURRENT NRCS THEN
WRITE-(PRINTER PORT, '<sI>');(* if Line Drawing isn't in Gl, designate it *)IF P Gl DESIGNATE <> LINE DRAWING THEN
WRITE-(PRINTER_PORT, '<ESC»O');
END;(* end printer style is National + Line Drawing *)ELSE IF PRINTER STYLE = ALL CHARACTERS THEN
BEGIN(* printer style is All Characters *)(* initialization sequence *)P RENDITION[BOLD):- FALSE;
P-RENDITION[UNDERSCORE):= FALSE;
P-RENDITION[BLINK]:- FALSE;
P-RENDITION[REVERSE]:= FALSE;WRITE (PRINTER_PORT,'<CSI>Om');(* initialize printer G sets to correspond with terminal *)WRITE (PRINTER PORT, '<ESC>(')";
WRITE (PRINTER:PORT, CHARACTER_SET_DSCS[DESIGNATED_GRAPHIC_SETS[GO]]);IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[Gl]] = 94 THEN
WRITE (PRINTER-PORT, '<ESC»');ELSEWRITE (PRINTER PORT, '<ESC>-');WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[Gl]l);
IF CHARACTER SET SIZE[DESIGNATED GRAPHIC SETS[G2]] = 94 THEN
WRITE (PRINTER-PORT, '<ESC>*');ELSE
WRITE (PRINTER PORT, '<ESC>.');WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G2]]);
IF CHARACTER SET SIZE(DESIGNATED GRAPHIC SETS[G3)) = 94 THEN
WRITE (PRINTER-PORT, '<ESC>+');ELSE,--WRITE (PRINTER PORT, '<ESC>/');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, '<SI>');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, '<ESC>}');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 ENVIRONMENTSEVEN 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, '<SO>');DESIGNATED GRAPHIC SETS[G2]:(* character set-is in G2 *)(* send 552 to invoke G2 to GL *)WRITE (PRINTER_PORT, '<ESC>N');DESIGNATED GRAPHIC SETS[G3]:(* character set-is in G3 *)(* send 553 to invoke G3 to GL *)WRITE (PRINTER_PORT, '<ESC>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, '<ESC>+');ELSE
WRITE (PRINTER PORT, '<ESC>/');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, '<ESC>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 <> P GL CHARACTER SET) AND(DISPLAY[Y,X].CHARACTER-SET <> P=GR=CHARACTER=SET) THEN
BEGIN(* yes, designate and invoke as needed *)~ASE DISPLAY[Y,X).CHARACTER_SET OF
DESIGNATED GRAPHIC SETS[GO]:BEGIN(* character set is in GO *)(* send LSO to invoke GO to GL *)WRITE (PRINTER PORT, '<SI>');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, '<SO>');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, '<ESC>}');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, '<ESC>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, '<ESC>+');ELSE
WRITE (PRINTER PORT, '<ESC>/');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, '<ESC>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,'<CR><LF>');(* 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, , <S I > ' ) ;(* 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, '<ESC>}');
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, '<ESC>+');ELSE
WRITE (PRINTER PORT, '<ESC>/');WRITE (PRINTER_PORT, CHARACTER_SET_DSCS[DESIGNATED GRAPHIC SETS[G311}'"
END;
END;
END;

(* end printer style is All Characters *)(* 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,'<ESC>i5');
IF P LINE RENDITION = DOUBLE WIDTH THEN
WRITE (PRINTER PORT,'<ESC>i6');
IF P LINE RENDITION = DOUBLE HEIGHT TOP THEN
WRITE (PRINTER PORT,'<ESC>i3')i
IF P LINE RENDITION = DOUBLE HEIGHT BOTTOM THEN
WRITE (PRINTER PORT,'<ESC>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,'<ESC>[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 PRINTINGThis section describes gr~phics printing anrl is intended to apply
to devices which support graphic displays and the Sixe1 Graphics
Extension.
7.8.1

Graphics Print Operations

7.8.1.1

Graphics Print Screen

The complete graphics bit map is transferred to the printer. Thiscan be invoked by the host through the ReGIS hardcopy command orby 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 apixel-spot will be placed at the corresponding grid. position, azero will cause the corresponding grid position to be unchanged(not written).
Sixel printlng consists of setting context and attributes for the
pixelsandthenprinting
each
Sixel
in left-to-right,
top-to-bottom order. Wherever possible,
run-length encoding isused to reduce the number of characters transmitted for a line of
Sixels.
See the Sixel Graphics Extension chapter for
the Sixel format.

further

detailson

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 theSixel dump is initiated by th~ host, the CR is· not sent so thehost 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 theprinter port (or host port) when transmitting a sixel dump of thescreen.
ESC
1/11

\
5/12

\'-==---/
ST

7.8.2.1

<CR>
0/13

ESC
1/11

P
5/0

1
3/1

\----,~:---/

DCS

q<sixel-data>
7/1

ESC
1/11

\
5/12

\----:==---'/ST

Color And Monochrome Sixels

On devices which support a color display,
the user may selectmonochrome 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

inExpanded 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 selectableby 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 sothat 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 thatthe left side of the paper (as it comes out of a typical dot
matrix printer) corresponds to the top of the image on theterminal screen. This scanning order was chosen to allow punchingholes for a looseleaf notebook on the left side of the page as itcomes 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 toaccommodate 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 printercapabilities to improve print quality.

,,,

The Sixel Graphics Level determines how the terminal matches theprinter's Sixel Aspect Ratio, Horizontal Grid Size, Background
Printing, and Color printing capabiliti~s.

,,

The Sixel Graphics Level is selectable bycontrol.

I

,
,

the

user

under

local

I
I

,, Level 1 Sixel Devices ,,,ASSUMPTIONS: Levell sixel devices do not support the Set Raster
Attribute command, Background Select, Horizontal Grid Size, orMacro Parameter commands. The aspect ratio is fixed at 2:1, andthe horizontal grid size is approximately 7.5 x .001 inches (800pixels require 6 inches). Levell is the factory default.
Six~lControl 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 ofhorizontally adjacent pixels (from two successive scan lines) intoa 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 theVT240 (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 widefrom top to bottom, and right to left.

VSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

displaypaper+--------------+
I
2 1 I+-----------+
I 1-------> II
II

I 2------->
I
I
I
I
I

I I I
I I I
V V I

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

Page 7:"62

I
I
I
I
I
I

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

Each Sixel is sent twice in immediate horizontal succession
respect to the printer).
1:1 Aspect Ratio

Level 1 Printer+---+ +---+ +---+
I I b I I a I+---+ +---+ +---++---+ +---++---+ +---+I

I I+---+ +---+
+---+

I

I

+---+

ROTATEAND
PRINT
TWICE ->I
I I
I a I I a
I I
I I

I
I
I
I

I
I b
I
I

I
I
I
I

(with

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

I
I
I
I

I
I b
I
I

+---+ +---+

This will produce images of the same size and aspect ratio as theVT240(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 andMacro Parameter commands.

VSRM ~ Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-l987

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

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 STdata\
I \ __~~.-.-~_____________I• DCS Introducer Sequencesixel data\_1
DCS

Where:
Psl
Ps2
Pn3

Is the Macro Parameter and is always ZERO.
Background Select1 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 willtransmit the selected portion of the display bitmap as sixels fromleft to right, and top to bottom. No translation of screen pixels
is required since the printer directly supports 1:1 sixels withthe 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 willtransmit the selected portion of the display bitmap as sixels fromleft to right, and top to bottom. No translation of screen pixels
is required since the printer directly supports 1:1 sixels withthe 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 willtransmit 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
extensivechangescharacteristics descriptions.

3.

Added notes that the state of Auto Print Mode
UNDEFINED across changes in Printer Controller Mode.

4.

Completely rewrote thePrint Screen.

5.

Added note to the abstract indicating that thiscurrently 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 Modeis set.

7.9.2

toalgorithms

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 toanychangethat
could
affectconformanceorinterpretation of the document or should be brought tetheattention of terminal implementors or software
engineers.

2.

Defined Level 3 Printer Port Extension to document how
multiple sessions and off screen memory interact with thePrinter Port.
Added two new Device Status Reports(Printer busy, Printer not assigned). Added definitionsfor"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 (mayinclude 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 (morecomplete spec) • . Added section on hardware flow control(DSR/DTR) .

7.

In printer controller mode, 7-bit C1 controls
translated to 8-bits.

are

never

8.

Added description of "Local controller
Modes (as in VT240 and VT300).

to

Print

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 incurrent
NRC(as
in VT220).
Modified "Prirtt All
Characters" mode to print all characters efficiently
without fallback.

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.

Mode"separate

Page"

from

VSRM - Printer Port Extension EL-00070-07*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987

Page 7-67

Section Index
Auto Print Modecontrol 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 Reportcontrol function, 7-32
DSR, 7-32

Print All Pages, 7-30
Print Composed Main Display, 7-30
Print Extent Modecontrol function, 7-38
definition, 7-5
description, 7-12
Print Form Feed Modecontrol 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 Modecontrol 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 Modecontrol 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
Sessiondefinition, 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 forterminal products and Software Engineers designing programs using
or emulating terminal interfaces.
Additional requirements aredefined 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 toI
I define mandatory standards unless it is clearly marked as
I (a) not mandatory or (b) guidelines.
I Material which is marked as "not mandatory" is considered
I to be of potential benefit to the corporation and should be
I followed unless there are good reasons for non-compliance.
I "Guidelines" define approaches and techniques that are
I considered to be good practice, but should not be considered
I as requirements. The procedures for modifying or evolving thisI 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 EXTENSIONDOCUMENT IDENTIFIER: A-DS-EL00070-08-0 Rev A, 31-Mar-1988
REVISION HISTORY: Original Draft
Revision 0.1
Revision AX01
Revision AX10
Revision AX11
Revision AX12
Revision 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 theGeneral 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: :TERMARCHPeter

Sichel,Copies of this document can be ordered from Standards andContrpl, CTSl-2/D4, DTN 287-3724, JOKUR::SMC

Methods

toPlease provide your name, badge number, cost center, mailstop, andENET node when ordering.

mDmDomD™

Digital Internal Use OnlyPage 8-3

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONCONTENTS

CHAPTER 8
8.1
8.1.1
8.1.2
8.1. 38.1. 4REGIS GRAPHICS EXTENSIONINTRODUCTION • • • . . • . • • •PURPOSE
SCOPE
••

•

•
•

•
•

.
•

•
•

•
•

.
•

•
•

•
•

•
•

. • .
•
•

•
•

IMPLEMENTATION OF ReGIS . . . . •REFERENCE STANDARDS AND RELATEDPUBLICATIONS . . . . • . . . . . .
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 Interpreters8.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 DEVICEVIEWING AREA DEFINITIONVIEWING 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. 58.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 for8.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<integer» - Feed medium
8.5.1.4.3
POSITION INSTRUCTION . . .
8.5.2
Position Arguments . . .
8.5.2.1
Numeric Arguments
8.5.2.2
Quoted String Arguments. . . . .
8.5.2.3
8.5.2.4
Options . . . . . . . .
P(B), P(E), and P(S) - Position stack
8.5.2.4.1
operations . . . . . . . . . . . . . .
P(W) - temporary write options .
8.5.2.4.2
WRITING ATTRIBUTES INSTRUCTION .
8.5.3
Position Arguments . . .
8.5.3.1
8.5.3.2
Numeric Arguments • . . . .
Quoted Text Arguments . . . •8.5.3.3
8.5.3.4
Options . • . . . . . . . .
W(M) - Pixel Vector Multiplier .
8.5.3.4.1
W(P<n>«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<ang» - Circular Arc
8.5.5.4.1.1
C(C) - Circumferential Circle . . •8.5.5.4.1.2
8.5.5.4.2
Curves • • • • . . . • •C(B), C(E), and C(S) - Curve
8.5.5.4.2.1
interpolation • • • • • • • • •8.5.5.4.3
Common • • • • • • • • •C(W) - temporary write options •8.5.5.4.3.1
Volatility of C Instruction Options
8.5.5.4.4
TEXT INSTRUCTION . . • • . • . • • . . . •8.5.6
Position Arguments . . • .
. ••8.5.6.1
Numeric Arguments. . . • . .
8.5.6.2
Quoted String Arguments. • •8.5.6.3
Options . . . . . . . . . . • • . . . .
8.5.6.4
T(A) - Alphabet selection. . •8.5.6.4.1. • •REPORT INSTRUCTION • . • •8.5.7
Position Arguments • • • .
8.5.7.1
Numeric Arguments. . . •
8.5.7.2
Quoted String Arguments
8.5.7.3
8.5.7.4
Options • • . . . . . • • . • . .
R(M(x)) - Report Macrograph state
8.5.7.4.1
R(P) - Report current Position • •8.5.7.4.2
8.5.7.5
Further Notes. • • . . . •8.5.8FILL INSTRUCTION . . . • . . • . . . . • .
position Arguments...
8.5.8.1
8.5.8.2
Numeric Arguments. • • .
Quoted Text Arguments. . . . . .
8.5.8.3
Options . . . . . . . . . . . . . . . .
8.5.8.4
F(C, P, V ) - define filled area.
8.5.8.4.1

8-75
8-75
8-76
8-76
8-76
8-76
8-77

THE EXTENDED LOGICAL GRAPHICS DEVICE
8.6
8.6.1
DIMENSIO~AL DISPLAYS •
. . .
8.6.2
GRAY SCALE AND COLOR .
. . •Selection'Scheme
8.6.2.1
Color Specification
8.6.2.2
8.6.2.2.1
Color by Index. . • •
Color by Value
8.6.2.2.2. •8.6.3
TEXT ATTRIBUTES. •AREA ATTRIBUTES
8.6.4. • . •
8.6.5
DYNAMIC ATTRIBUTES • •
. • •

8-95
8-95
8-95
8-96
8-97
8-97
8-99
8-100
8-102
8-102

.
.
.

.
.

. •

. • ••
•
•
.
•

•
•
.
.

•.
• .
. •
. •

8.7
REQUIRED EXTENSIONS FOR RASTER DEVICES •8.7.1
SCREEN INSTRUCTION . . •.••. •8.7.1.1
Position Arguments . . . . .
. . •8.7.1.2
Numeric Arguments. • • •
. •8.7.1.3
Quoted Text Arguments . . . . • • .
8.7.1.4
options. . . . . . . . . . . . . .
8.7.1.4.1
S(A[][]) - Screen Address definition.
8.7.1.4.2
S(I<n» Or S(I«color specifier») background Intensity . . . . . . . . •mDmDomo™

Digital Internal Use Only

8-77
8-80
8-80
8-80
8-81
8-82
8-82
8-82
8-83
8-83
8-87
8-87
8-87
8-87
8-87
8-87
8-88
8-88
8-90
8-90
8-90
8-90
8-90
8-90

8-103
8-104
8-104
8-104
8-104
8-104
8-104
8-105

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-6

8.7.1.4.3
S(T<n» - Timer. . • . . .
. .
WRITING ATTRIBUTES INSTRUCTION
• .
8.7.2
Posi tion Arguments .
•.••8.7.2.1
8.7.2.2
Numeric Arguments
Quoted Strings . • . • . . •• •8.7.2.3
Options • • • . . . • . . .
. .
8.7.2.4
Writing Mode Options • • . • • • •8.7.2.4.1
W(C) - Complement writing • . • • •8.7.2.4.1.1
W(E) - Erase writing • • . •••8.7.2.4.1.2
W(N<O or 1» - Negate writing • • •8.7.2.4.1.3
W(R) - Replace writing . • • • • • •8.7.2.4.1.4
W(V) - overlay Writing • • • • • • •8.7.2.4.1.5
Non-writing Mode Options . • • . • • •8.7.2.4.2
W(F<integer» - Foreground mask••
8.7.2.4.2.1
W(I<n» or W(I<color specifier» 8.7.2.4.2.2
foreground Intensity..
W(S<suboption><arguments» - Shading
8.7.2.4.2.3• •TEXT INSTRUCTION
..•.
8.7.3
· .
Position Arguments . • . .
8.7.3.1
Numeric Arguments• • •8.7.3.2· •Quoted String Arguments• . • • • • • •8.7.3.3
Options . . . . . . . . . ... . . . • •8.7.3.4
8.7.3.4.1
T(A<integer» - select Alphabet<integer>• . • • • • • • • •• •8.7.3.4.2
T(B) - save Text attributes· .
8.7.3.4.3
T(D<ang» - set Text baseline
Direction . . . . . . . . . . . .
T(E) - restore saved Text attributes .
8.7.3.4.4
8.7.3.4.5
T(H<number» - set Text Height . . . .
8.7.3.4.6
T(I<ang» - set Text Italic slant . .
T(M[<hint,vint>]) - set Text pixel
8.7.3.4.7, Multiplier . . • • • • . . • • . • • •8.7.3.4.8
T(S[<width,height>]) - set Text
display cell Size . . . . . . . • . .
8.7.3.4.9
T(S<number» - set standard Text
display cell Size
. . . . . . . • . .
8.7.3.4.10
T(U[<width,height>]) - 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<integer» - select Loading
Alphabet . . . . . . . .
. • . •
8.7.5.4.2
L(A"<name>") - 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<integer» - specify character set
Extent . . . . . . . . . . . . . . . . 8-121

8.8
OPEN EXTENSIONS TO ReGIS .
. . . . • 8-122
SCREEN INSTRUCTION . . .
. . . . . . 8-122
8.8.1
Position Arguments . •8.8.1.1. . . • • • • 8-123
8.8.1.2
Numeric Arguments• 8-123
8.8.1.3
Quoted String Arguments . • • • • • • • 8-123
8.8.1.4
Options • . . . • • . • .
• • . • 8-123
8.8.1.4.1
S(A) - screen Address definition· 8-123
8.8.1.4.2
S(C) - visible Cursor control . . . · 8-124
8.8.1.4.3
S(D<integer» - data movement control 8-126
8.8.1.4.4
S(H«suboptions»[][]) - retransmit
Hard copy . . . . . . . . . . .
· 8-127
8.8.1.4.5
S(M<index>«color specifier») modify the color Map . . . . . . . . . 8-128
8.8.1.4.6
S(R<n>[][]) - define andenable/disable a clip Rectangle· 8-1288.8.1.4.7
S(S<n>«suboptions») - Scale thevisible image. . . .•
. . 8-129
8.8.1.4.8
S(W«suboptions») - temporary Write
options . . . . . . . . . . . . . . . 8-130
8.8.2
POSITION INSTRUCTION . . . . . . . .
. 8-1318.8.2.1
P(P<n» - select drawing surface • . . • 8-131
8.8.3
WRITING ATTRIBUTES INSTRUCTION .
. 8-132
8.8.3.1
W(A<n» - Alternate (blink). . 8-132
8.8.3.2
W( L<n» - Line width control . . .
. 8-132
8.8.3.3
W(S«suboptions») - Shading
8-133
8.8.3.4
W(W) - microcoded Writing modes . . . . 8-133
8.8.4
TEXT INSTRUCTION . . .
. . . . . . . . 8-134
8.8.5
REPORT INSTRUCTION• . . . . . . . . . . 8-135
8.8.5.1
R(E) - Report Error . . . . . . . . . . 8-135
8.8.5.2
R(I<n» - Input processing mode . . . . 8-136
R(P(I» - Report Position Interactive. 8-136
8.8.5.3
8.8.6
FLOOD/FILL INSTRUCTION . . . . . . . . • . 8-138
8.8.6.1
Position Arguments, Numeric Arguments. ·8-138
Quoted String Arguments. . . . . . . . 8-138
8.8.6.2
8.8.6.3
Optians . . . . . . . . . . . • . . . . 8-138
8.8.6.3.1
Flood . . . . . . . . . . . • . . . . 8-138
8.8.6.3.1.1
F(B«suboption») - flood Boundary
condition . . • . . . . . . . . . · 8-138
8.8.6.3.2
Fill• . . . . . . . . . • • . . . • 8-139
8.8.6.3.2.1
F( ... F ... ) - fill complex polygon· 8-1398.8.6.3.3
Common • • • . • • • • • • • • • • • · 8-141
8.8.6.3.3.1
F(W«suboption») - temporary Write
options . . . . . . . . . . • . • • 8-141
8.8.6.4
Further Notes. . . . . . . . . . . . . 8-142
8.9
8.9.1
8.9.2

INSTALLATION ENVIRONMENTSANSI ENCODING . . . .
BOUNDED SYSTEMS

8.10

ReGIS COMMAND COMPLEMENT . .

~DmDDmDTM

Digital Internal Use Only

.

. .
. .
. . .

. 8-143. 8-143. 8-145· 8-146EL-00070-08
31-Mar-1988. VSRM - ReGIS GRAPHICS EXTENSION
8.10.18.10.28.10.38.10.48.10.58.10.68.10.78.10.88.10.9mDmDomD™

Page 8-8· · · · 8-147· ·· ·· ·· ·· ··8-148· · · · 8-149·· 8-150
·
·
·
·
·
·
·
· ·· · 8-151·. ···· · 8-152····· · · · · · · · · · 8-153
8-154· · · · · · · · · · 8-155····

SCREEN INSTRUCTIONPOSITION INSTRUCTIONWRITING ATTRIBUTES INSTRUCTIONVECTOR INSTRUCTIONCURVE INSTRUCTIONTEXT INSTRUCTIONREPORT INSTRUCTION
FILL/FLOOD INSTRUCTION
LOAD CHARACTER SET INSTRUCTION

Digital Internal Use Only

EL-00070-Q8
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

page 8-9

LIST OF FIGURES
Figure 1

Graphics System Block Diagram

8-16

Figure 2

Pixel vector Directions

8-54

Figure 3

Off-display Screen Addressing Example

8-60

Figure 4

Accomodation of Aspect Ratios

8-62

Figure 5

Circumferential Circle and Arcs

8-77

Figure 6

writing Modes

8-108

Figure 7

Selecting a Shading Reference Line

8-109

Figure 8

Character Display and Unit Cells

8-117

Figure 9

Character Storage Cell

8-120

Figure 10

Simple Polygons

8-140

Figure 11

Complex Polygons

8-141

mDmDomo™

Digital Internal Use Only

page 8-10

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.1

INT~ODUCTION

8.1.1

PURPOSEThis standard specifies a data representation for the device
independent description of a certain class of imagery called
synthetic graphics.
"Synthetic graphics" is a term used todescribe a mode of drawing in which images are defined in terms ofcomponent parts. These parts may be synthesized from geometric
entities such as lines,
circles, points, and uniform areas.
Synthetic graphics differ from "natural imagery" in that "natural
images" are usually derived photographically and stored in dot
matrix or some other pixel oriented form, and contain only limited
explicit information regarding their component content.
The
REmote Graphic Instruction Set (ReGIS), a
generic
graphic
descriptor,
is the system described for executing the graphics
commands.
8.1.2

SCOPE

This standard achieves the above purpose by:

8.1.3

1.

postulating a system model based on current technology inwhich graphics can be supported;2.

Identifying commonly required
model, and;1.

Specifying an execution model and instruction set (ReGIS)
consistent with this model.

accesspointsinto

thisIMPLEMENTATION OF ReGISIt is not the intent of this standard to specify what products,
hardwate or software, must implement ReGIS.
The decision to
support ReGIS or not will be made by the appropriate marketing andengineering organizations during the initial stages of the Phase
Review Process for the product(s)in question.
This standard
defines the function and form which must be implemented in a
product for it to be certified as conforming to ReGIS.
ReGIS can be implemented as either a hardware or a software
product; any products which generate or interpret ReGIS are within
the scope of this standard.

Digital Internal Use Only

EL-00070-08
31-Mar~1988
VSRM - ReGIS GRAPHICS EXTENSION
8.1.4

Page 8-11

REFERENCE STANDARDS AND RELATED PUBLICATIONSDIGITAL STANDARDS
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

Copies of Digital Standards Can be obtained from Standards
Methods Control, CTSI-2/D4, DTN 287-3724, JOKUR::SMC

andPlease provide your name, badge number, cost center, mailstop, andENET node when ordering.
ANSI and ISO STANDARDSANSI X3.4 - 1986

American National Standard Code forInformation 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

IS2022-1986

Information Processing - ISO 7-bit and 8-bit
Coded Character Sets - Code Extension Techniques(unnumbered)

ISO Register of Coded Character Sets
for Use with Escape Sequences

ANSI X3.64 - 1979

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

ANSI X3.122-1986 (IS8632-1986) Computer Graphics Metafile
ANSI X3.124-1985 (IS7942-1985) Graphical Kernel System (GKS)
Copies of ANSI and ISO Standards and other related
can be obtained from local Digital Libraries.
"Computer Graphics" vol 13, number 3 (August
proposed graphics standard

mDmDomD™

Digital Internal Use Only

1979)

publications
GSPC

CORE

Page 8-12

EL-00070-08. 31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.1.5

TERMINOLOGY

Absolute Location - An unsigned coordinate pair thatlocation based on the screen origin.

specifiesa

Active Position - The character position on the visual display atwhich the next graphic character would (will) be displayed.
Application Free Primitives - A ReGIS-implemented set of drawing
primitives based upon common geometric rule and compass
constructions.
It contains basic, general constructions
only, not specific capabilities for particular applications.
Base Logical Device - See Logical Graphics Device.
Bracketed Pair ([]) - A pair of quantitative values enclosed inbrackets; used in ReGIS command strings to encode position
values and other position or extent related information.
Closed Curve Sequence - A series of locations ReGIS uses tointerpolate a curve whose end points meet. One example is a
circle.
Command Keylett·er - The ReGIS syntactic element which indicatesthat a command or command option is to be interpreted.
Complement writin9 - writing mode in which ReGIS complements theimage existing on the display with new images being written
to the screen.
Current Location - The location in the display space last moved or
drawn to.
Display Surface - The active area of the screen;
entire screen.

it

may

Echo - Retransmit encoded messages back to the sending
they are sent •

be

the

deviceas. Erase writing - writing operation which overwrites previously
drawn objects from the display by using the background(secondary) writing value for both primary and secondary
writing values.
Filling - Coloring in a bounded area as itwith "flooding" and "shading".

isdefined;contrast

Flooding - Coloring in, with variable pattern or texture, abounded area already defined in the display. Supported only
by extension to ReGIS.

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

page 8-13

Graphic Character - A character, other than a control
that has a visual, displayable representation.

character,

Graphics Cursor - A
position.

visibleindicatorofthecurrent

drawing

Graphics Pipeline - Graphics environment models are often layered,with higher level layers requesting services of lower levels
to effect actions. The route(s) through these layers iscalled the "graphics pipeline."
Graphic Text - Strings of characters drawn by executing graphics
commands; these are distinguished from other types of text by
the use of state stored by previous graphics commands.
Gray Scale - The range of varying levels of light displayable byblack and white raster graphics devices. High resolution
color raster devices can display the gray scale in addition
to a full range of color hues.
HLS - Hue, Lightness, Saturation. A three-parameter system fordescribing a color based on human perceptual description ofcolor.
Landscape Mode
The rectangular viewing(horizontal) axis as the longer one.

area

with

the

X

Logical Graphic Device - An abstract graphic device for which
ReGIS defines an image. This abstract device is a composite
of a wide range of physical devices, and is used as ahypothetical basis for the ReGIS device interface. Allowable
exceptions to the Base Logical Graphic Device are provided
for in the Extended Logical Graphic Device.
Line Pattern - Line styles or drawing patterns (solid,
dotted, etc.) defined and supported by ReGIS.
I"

dashed,Macrograph - A series of ReGIS commands or command elements thatare stored as part of the ReGIS implementation state andinvoked on request by a named string.
Macrographs reduce
communication line traffic between the terminal and computerin the case of frequently used commands.
Concept derived
fromtheassembly
programming
constructofmacroinstructions.
Offset - A distance from a given reference location.
Open Curve Sequence - A series of points interpolated by ReGIS
draw a curve whose end points do not meet.

toOverlay writing - writing mode in which only the foreground(primary) writing value is executed into the display, and thebackground (secondary) writing value is not used.
Contrastwith "replace writing."

mDmDomD™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
Pixel - Picture element; thescreen.

smallest

Page 8-14

displayable

unit

Pixel Vector - A scalable unit vector whose direction is
to an axis or to a diagonal between the axes.
Portrait Mode - A rectangular viewing area with theaxis as the longer one.

Y

on

the

parallel(vertical)

Position Address - A specific point in the viewing area of agraphic
devicethat
1S
representable
by
an
X-Y
(horizontal-vertical) pair of numbers.
Protocol - The conventions or rules for the format and timing of
messages sent and received. Devices must be using the same
protocol to understand each other.
Raster Device - A display device thatraster scan.

generates

imagesusingaRaster Scan - In computer graphics, a technique of generating or
recording the elements of a display image by a line-by-line
thesweep across the entire display surface; for example,
generation of a picture on a television screen.
ReGIS - Mnemonic for REmote Graphics Instruction
graphics object description commands.

Set;

a

Relative Location - A point on the screen measured
current location rather than the screen origin.

set

of

from

the

Replace writing - A ReGIS writing mode in which both foregroundand background values are written to the display medium;
contrast with "Overlay Writing."
Reset - Return to a known default condition.
Shading - An area fill operation that fills the area between avector or curve and a specified horizontal or vertical line
or a point. Shading differs from FLOOD and FILL in that it
colors in a solid or textured area which is not explicitly
bounded.
Sixel - A coined term derived from "six pixels." Sixels are animage transfer mechanism in which six pixels of information
are encoded into a single character code. Sixels may be used
as an image re-transmission scheme from ReGIS.
Transportability - The capability of carrying ReGIS-defined images
acrossdevicetechnologies
without
loss of criticalinformation.
Viewing Point - See Pixel.
Writing - The operation
medium.

ofexecutinggraphics

Digital Internal Use Only

to

the

displayEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.1.6

Page 8-15

MODELING THE GRAPHICS SYSTEMThe Remote Graphics Instruction Set (ReGIS) is intended to be used
for device level portable graphic image definition. ReGIS ismeant for the communication of graphic images between a hostcomputer and a remote graphics device. It has applicability totightly coupled graphics systems in any context in which a graphic
image can be stored in geometric component form encoded as asequence of characters. ReGIS is not intended for use in highperformance graphics applications where picture complexity isgreat or where texture and graded shading are required.
8.1.6.1

The Graphics Pipeline

The state of the art in computer graphics layers the graphics
environment in a manner very much like the way networks andcommunications models are layered.
In layered models, higher
level layers request services of lower levels to effect actions.
Traversing these layers is known as proceeding through thegraphics pipeline.
Existing proposals postulate levels for modeling of graphics
information
andperforming viewing operations on the data
represented in these models. The level of graphics execution isadded to these levels.
It is this level that most closely
approaches the capabilities of existing graphics devices (asopposed to systems), and it is to this level that ReGIS is
directed.

~DmDDmDTM

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Host

Page 8-16

ComputerApplication
PackageHigh Level
Language

0
®

~

~

System,Operating
System: Software

Graphics text
~
file

®

f4'
'--

Communications
Channel~=Local®¢=::;> Processor®

Operator
Entry
Dev:i.ces 6/'

HardwareCommands.7

Display
DeviceRemoteGraph: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 thegraphics system for which ReGIS was designed. As illustrated, thesystem consists of two major parts:(1) the host computer system,
which from the user's point of view consists of various softwaremodules and (2) the remote graphics device.
The term "remote"here refers to the assumption that the graphics device is attachedto 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 theuser to access the graphics capabilities of the remotedevice in terms of syntax and semantics appropriate to
the user's intended application.
For example, a dataplotting package may accept tables of data and allow theuser to construct plots of varying types based on thatdata, using an interaction dialog appropriate to theapplication.

2.

High level language
Users often need to generategraphic
imagesof 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 accessto 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 manneras 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 theother software to the required protocols necessary todrive 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 ofsuch a system:
1.

Graphics application languages - such as plot commands ina data plotting package or the constructors of physicalimages 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 througha.

By direct drive of
protocols by using"PRINT" statementsb.

Through graphics subroutines accessed
calls

c.

Through embedded graphics statements accessed insame manner as other language capabilities

byprogrammedthe3.

Graphics text files - the syntax of how the graphics
image is stored as text for later communication to thegraphics 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 tocontrol the hardware image generator.

6.

User graphics entries - the specialized entry sequences
for local control in addition to the syntax of the usercommands required to use theapplication
softwareprograms.

8.1.6.4

ReGIS Scope of Application

Considering the breadth of graphics
applications
andthedifferencesin "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 thesystem. On the other hand, the relatively large number ofdifferent graphics language syntaxes of which a user may have tobe aware predicates a few standardized language approaches, withspecial 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

otherexisting standards.
It is the purpose of ReGIS tostandardize the syntax and semantics of thecommunications
interfacegraphics commands.
By extrapolation,
it is also
intended that ReGIS be used at other graphics language accesspoints 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 accesspoints 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 thecompilation of high level language programs
havingembedded graphics statementsb.

The "semantic protocol" for graphics access acrossserial communications line to a remote graphics deviceac.

The syntax of graphics
character oriented fileacommands

when

storedin

RANGE OF INTENDED DEVICESReGIS attempts to cover a broad range of both soft-copy (temporary
record) and hard-copy (permanent record) remote graphics devices.
ReGIS executes well-defined, twodimensional,
descriptively
encoded graphics images. The technology of a device is generally
not a factor in the determination of whether that device would besuitable for an implementation of ReGIS.
The principal requirement for transporting ReGIS-defined images isthat the essential information content of an image MAY be encodedin 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, byanother device which does not have that particular attributecapability.

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.1.8

Page 8-20

ReGIS OVERVIEWGood design practice specifies the function set of a proposedinterface before selecting an encoding to implement it. However,the primary operational environments of ReGIS are required to be:
Serial communication channels operating under existingtext-oriented protocols, andof
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, thefunction 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 thealphabet common to most computing systems. This alphabet consistsof letter, digit, and punctuation characters. A graphic image isdrawn by sending the graphics device a sequence of instructions
encoded into this alphabet.
The generalformatof
each
instruction is a keyletter denoting the type of operation to be
performed, plus instruction arguments which have a prescribedmeaning
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 inpreparation 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 theactionsofdrawing
instructions
followingthem.
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 orresume from a specific position in the drawing area.

4.

Vector Instruction
keyletter "V"
The
Vectorinstruction invokes the line primitive causing straightlines 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 amanner based upon the arguments of the instruction.

7.

Report Instruction
keyletter "R"
The
Reportinstruction allows state information to be returned tothe host from the ReGIS implementation.

8.

Fill Instruction - keyletter "F" - The Fill instruction
allows linear elements (lines and curves) to be used asboundaries for simple or complex closed areas, which canthen be "colored in."9.

Load character cell Instruction keyletter "L"The
Load character cell instruction allows ReGIS programs todefine 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 oraddress increments.

2.

Text strings are character sequences contained withinpaired quote characters, either ' or " and are used whena 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 adisplay.

4.

Option arguments are strings of characters written within
the parenthesis characters "(" and H)" which in somemanner 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 thisreason,optionargumentsarealso
calledsub-instructions.

These basic instructions and their arguments are sufficient todefine most of the information of most graphic images required byusers of graphics systems.

mDmDomD™

Digital Internal Use Only

EL-OOOJO-08.
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.2

Page 8-22

ReGIS PHILOSOPHYThis section describes and discusses theterms 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; and3.

Concepts of handling dissimilar device attributes andcapabilities, 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 thedesign 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 acrosstechnologies 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 thesemantics of the application.
For example, ReGIS does not include
viewingtransformation,
hiddenline
removal,andothercapabilities
generally useful in presenting images of real
physical things. Neither does it have built-in axis and bar graphprimitives 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 thatthese 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 completelyinterpret all possible character sequences defined by this general
instruction grammar, whether or not those character sequences havesemantic meaning in the device in question. The syntax of ReGIS
is complete and well formed.
Only the semantics can vary amongdevices of differing capabilities, and, at that, only among
extensions to the most fundamental required instruction set.
Semantically, ReGIS instructions and parameters are separated intoa Base ReGIS category, a Raster Extensions category, and Open
Extensions. Other extensions may be defined to apply to othertechnologies or categorizations. It is assumed that most of theessential 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 theseBasecapabilities.
In addition, users expecting to output the defined images to avariety of devices should use only the Base ReGIS capabilities toensure maximum transportability.
For example, color is not acommon attribute of every graphic device, and for this reason the
ReGIS
Base
is
"color-blind".
Users
desiring
maximumtransportability should avoid using color to relate essential
information where that same information is not also implied bymonochrome 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 ofdevices represented by that technology.
The most important
extension class is for raster scan display devices,
includingcolor CRT displays.
Standard extensions for a given class ofdevice allow all devices within that class to be controlled in aclass
dependent, yet device-within-class independent manner.
Hence, all raster devices must implement the fullrange of thestandard 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 analternate attribute in a device for which that capability does notexist.
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 forthat 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 criticaldevice 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 theuser 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 beencommon 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 ofaccommodation 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 thepresentation of information implied by ReGIS instructions. Thisis 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 thedisplay 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 ofintensified dots, and the ragged nature of some lines is entirely
unpleasant in some instances.
However, even these less thanperfect lines are, qualitatively speaking, lines.
When fidelity is measured quantitatively, some features of somesystems cannot be satisfactorily transported. Display resolution
varies from device to device, and the capacity of a display interms 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
asguidestotransportability.
Lower resolution and/or monochrome devices by their nature have
limitedinformation
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 iswell-founded.
Higher resolution devices may be expected to
implementthehighestdegreeof 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 forthe high resolution device.
It is not expected that an image
prepared on a high resolution device will be drawn onasubstantially 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 asa 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 forbalancing the devices available and the applications in mind.
Iftransportability is a goal, then appropriate consideration must be
given to the range of devices that may be encountered; thecomplexity of the presentation should be tailored tothatenvironmental 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 mostaesthetically pleasing results can often be obtained byplanning patterning,
character cell placement, and thelike based on the pixel resolution of known devices, suchattention to detail builds into an image a dependency on
resolution that precludes image transportability.

b.

Specify text character sizing in terms of the imposedaddress 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<n», T(H<n»}.
Thedefinition of standard sizes has been a concession todevice dependency,
and the inability of devices tosmoothly scale or otherwise provide for variable text
sizing.
While such hardware considerations are notentirely moot,it can be expected that asdeviceresolutions increase and windowed displays come into
wider use,
the ability of 'devices to better couple
graphics drawing elements and descriptive text will beenhanced.

c.

Selectcolorsdescriptively
using
RGB
or
HLS
parameterization rather than by index value.
Index
values wrap and collide in a manner dependent upon thenumber of index values supported, and probably without
any attention to the perceptual flavor of what is being
specified.
Collisions between descriptive colors aredefined in this standard to merge similar colors (red andorange or red and pink, for example) to some common color("closest match"). Dissimilar colors (blue and yellow ororange and green, for example) are less likely to collide
in a single common color, thereby maintaining perceptual
separation.

~DmDDmD TM

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS· GRAPHICS EXTENSIONd.

Page 8-27

Perhaps most importantly,use
theimpositionofcoordinate address space to define the expected device.
The use of device inquiry and accommodation of device
differences in software is not the best way to ensuretransportability. Such an approach cannot easily beapplied to stored files, as it places a burden of
re-interpretation of the file on the image transfer
system.
In windowed systems, the actual physical granularity of adisplay may not be known to driving software, or it may
change dynamically in a way that cannot be communicatedto driving software.
Also, accommodation by inquiry
requires that software try to
guess
what
futureimplementations will do. to enhance or subset present
devices.
Device developers have the advantage of hindsight withregard to what features of devices software has used, andin what combinations, and can thus make future devices
compatible with existing software,rather than having
software try to anticipate, perhaps inconsistently, thedirection future hardware will take.

8.2.1.4.2

Guidelines for Image Interpreters

Device developers can m1n1m1ze the problems that software
encounter in pursuing the goal of transportability.

will

1.

First and foremost, device developers should be guided by
the
past.
Various
ReGIS implementations must be
syntactically and semantically compatible and minimize
non-functional changes from one product to the next.
"Non-functional" changes mean capricious changes
indevice parameters that this standard allows developers
the freedom to define, but which have minimal impact inthe details of device design.
For example, one mightargue that all devices with less than 1000 addressable
points in the horizontal dimension should have exactly
800. While the "Guidelines for Image Creators" above
recommend
that software not depend on pixel levelregistration for images, small changes in resolution, as
from
800
to
768
pixelsacross, can result insignificantly different screen presentations.

2.

Hardware address spaces should be isotropic, meaning thatequal
incrementsofphysicaladdressing
quantahorizontally and vertically should translate to the samemeasured distance.
ReGIS requires that the imposed
coordinate .space be treated as isotropic, and the device
must mask any variation from the 1-to-1 pixel aspectratio. It may not be possible to hide the aesthetic

mDmDomD

TM

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-28

effects of such mismatches, however. Consider that 45
degree rotation of text is generally deemed an "easy"
case.
Deviations from I-to-l (or at least integrally
related) pixel aspect ratios make this case either
difficult to execute or unaesthetic.
1.

mDmDomD

The most visible departure from fidelity inimage
transportability does revolve around character handling.
Variables relating to character storage size, standard
sizes, and scalability should be scrutinized carefullyfor effects on software and existing imaging practice
before they are changed.
As with other aspects of"non-functional" change, any resulting variations should
be based on significant improvement in capability, notjust for incremental improvement.

TM

Digital Internal Use OnlyPage 8-29

EL-Q0070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.2.2

SYNTAX CONSIDERATIONS

8.2.2.1

Character Codes

All ReGIS commands may be formed from characters in columns 2
through 5 of the ASCII code chart. It may be considered, in lightof strict interpretation of ANSI character set and coding rules,
that ReGIS is a violation of the use of printing character codes
for commands. This compromise achieves two goals:
1.

To allow an encoding more terse than that required byexisting control code standards (ANSI X3.41 and ANSI
X3.64)

2.

To develop an instruction set which
generated, stored, and interpreted

could

be

easilyAs a matter of convention, ReGIS is defined in terms of upper-caseletters
with the understanding that lower-case letters areequivalent to upper-case for command interpretation.
Lower-caseletters remain lower case within quoted string arguments, however.
8.2.2.2

7-bit Versus 8-bit Encoding

The ReGIS command syntax and semantics are specified for use in a
7-bit coding environment, though provision has been made for the
support of 8-bit encoding of character arguments. See subheadings
8.4.3 Argument Types, 8.4.3.2 Quoted Strings. Support of ReGIS
command codes in an eight bit environment is an environmental
issue, and is not addressed in this standard.
8.2.2.3

ASCII Control Codes

ReGIS does not specify the use of any ASCII control codes, except
for certain occurrences within quoted text strings. Any controls
or control or escape sequences passed to a ReGIS interpreter are
not required to be recognized or parsed by the interpreter[*).
Such controls may be included in a ReGIS data stream for purposesof control of the system or device in which the interpreter isrunning (such as XON/XOFF for communications synchronization or
escape or control sequences to activate or deactivate the ReGISinterpreter) but the recognition and interpretation of suchsequences is not required by this standard for conformance.
[*)Some devices find it appropriate to scan for and parse escapeand control sequences while interpreting ReGIS.
Some of thesedevices execute escape sequences as if they (the devices) were notin 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

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.2.2.4

Page 8-30

Linguistic Relationship to Higher Level Languages

The ReGIS general syntax is based on a simple, easily parsed
grammar.
This grammar can be easily generated by common highlevel languages and user application packages.
Also,
the ReGIS
instructions
encompassmost,
if not all, of the graphics
primitives required to support theexecutionofgraphics
constructs
requiredbyhigher level graphics applications
packages.
The encoding of ReGIS instructions and arguments is such that theuse of ReGIS directly in the PRINT or WRITE commands of suchlanguages as BASIC, FORTRAN, and Pascal ispractical
andstraightforward.
The representation allows reasonably qlear,although admittedly terse, coding.
In
particular,
numeric
arguments are encoded as the usual decimal integer, fixed point,
floating point, and scientific notation strings generated by theselanguages.
8.2.2.5

Algorithmic Relation to Higher Level Languages

ReGIS is not meant to be a language in its own right.
ReGIS hasno algorithmic structures, such as conditional or loop constructs,
no general arithmetic capability, and no named variable storage.
All these features are presumably present in the higher level
languages from which ReGIS may be used for the encoding of
pictorial information.
8.2.2.6

Communications Line Efficiency

The level of ReGIS instructions is set high enough so thatreasonable performance can be obtained even at low transmission
rates. A relatively few command characters can invoke fairly
complex graphics activity. The "macrograph" construct is includedin the ReGIS Base to allow string sequences to be transmitted
once, stored locally, and then referred to by name for subsequent,repeatable invocation.
ReGIS is generally free format and requires no instruction
separators, thereby allowing multiple instructions per "line." Infact, ReGIS has no awareness of line boundaries, since ASCII
control characters are ignored (except for a few instances, andonly within quoted string arguments).

momDomo™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.2.2.7

Page 8-31

High-level Language "Personality"

Although it is not possible to define a completely compatible
personality among all higher level languages, ReGIS has attempted
to capture the essence of the personality of many higher level
languages to allow the most rapid learning by users with minimalcorruption of well-known syntactic constructs. Common numeric andstringconstant
constructs,
theignoringof blanks andauto-conversion of lower case to upper case are examples of theimplementation of this concept.
8.2.3

SEMANTIC CONSIDERATIONS

8.2.3.1

Range of Devices

The ReGIS Base defines a logical graphics device modeled after acomposite of existing and envisioned graphics execution devices.
The common capabilities of flat bed and rotary plotters, storagetube devices,raster video and hard-copy devices, and otherdevices were evaluated in the definition of the command complementof ReGIS.
The ReGIS Base defines a common denominator of thesedevices, and the Extensions categories are defined to access theunique capabilities of these and other graphics devices.
8.2.3.2

Position Addressing

A specific point in the viewing area of a graphic device isassumed to be- representable by an (X,Y) (horizontal-vertical) pairof numbers.
It is also assumed that the viewing area isrectangular in shape for the purpose of code transportability.
The size of an address increment is defined by the coordinate
space as imposed by the device setup, or by device default if thissetup is not used.
8.2.3.3

Semantic Defaults

In the ReGIS Base, all parameter ranges required by a device arederivable from user supplied screen coordinates.
These aretransformed to physical coordinates by the device.
An exception
to this is the size of "standard characters" in the device. These
are typically constrained by the physical design of the device.
To accommodate such variances, ReGIS allows the user to "adjust"some of these parameters so that the actual visual result is as
close as possible to what is desired.
Such adaptations may
require user intervention (that is, trial and error) to reproduce
picture content accurately.
Devices that implement ReGIS extensions are required to implement
default values for all such semantic features that affect thevisible display. These defaults must approximate, to the degree
possible, the visual impression of the image on a device without
these visual enhancements. These defaults must be assumed eachtime the screen addressing operation, S(A[][]), is performed.

mDmDomD™

Digital Internal Use Only

EL-~0070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.3

Page 8-32

BASE LOGICAL GRAPHIC DEVICEReGIS defines an image for an abstract graphic device called the
ReGIS Logical Graphic Device.
In principle, this abstract device
is a composite of a wide range of physical devices.
Features
unique to specific types of physical devices are part of theextended ReGIS logical device and are discussed in later sections.
An image defined for one physical device is transportable to adifferent type of physical device.
However,feature extensions
may be ignored or approximated on some devices. Therefore, exact
duplication of an image may not always be expected when image
definitions are so transported.
It is not expected that anyone
specific device have the parameters of the logical device,butrather each ReGIS based physical device maps (transforms) the
parameters given in terms of the logical device to its specificphysical parameters.
The ReGIS logical device is defined in terms of:a.

Parameters of the viewing area.

b.

Attributes of viewing points in the viewing area.

c.

The general process of defining an image in the viewing
area by modifying the attributes of the viewing points;
interpretation of ReGIS is a serial process, .and thevisible portions of the image are drawn in the order inwhich the instructions are received.

d.

The allowed range of parameters and attributes.

The phrase "implementation dependent" refers to a parameter or
attribute value that has a semantic meaning which may vary withthe type of physical device or because of other implementation
constraints.
The allowed range of variance for an implementation
dependent feature is included with the discussion of that featurein this standard.
The physical embodiment of the Logical Device is not presumed bythis standard. The Logical Device may be represented by a single
physical device, or it could, in fact, be a subset of a single
physical
device comprising a number of independent Logical
Devices.
In the latter case, the viewing area (and other physicaldevice resources) available to a particular Logical Device are but
a fraction of the whole of the physical device.
In either case,the view of the Logical Device as seen through ReGIS is that of asingle, independent presentation entity having no effect on andnot being affected by any other device.

mDmDomD™

Digital Internal Use OnlyPage 8-33

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.3.1

VIEWING AREA DEFINITI'ON

The ReGIS Logical Device viewing area consists of arectangulargrid of a finite, possibly large, number of viewing points. Eachviewing point is of finite area and is located at the intersectionof the invisible lines of the two dimensional Cartesian coordinate
grid. usually, a viewing point is the smallest physical area withhomogeneous structure that can be seen by the viewer. Thisviewing point corresponds to the smallest area which can be
modified by the physical device.
This area has historically been referred to as the "screen."
Because of the connotation of "video" in the use of the term"screen," modern practice uses the term "display surface." Bothterms are used in this document. Mathematically, the display
surface may be thought of as a set of viewing points such that theunion of all viewing points completely covers the viewing area. A
viewing point may also be referred to as a picture element or"pixel."When the screen is rotated so that the image has its "normal"
orientation,then the four edges of the rectangular screen are
called the left,right,
top and bottom edges.
The
terms
horizontal and vertical are used to refer to pixel positions
relative to these four sides. The position of each pixel on thescreen is uniquely identified by the combination of two numbers
which refer to the horizontal (or X) position and the vertical (orY) position of the pixel. Using this, the pixel VP(X,Y) refers to
the Viewing Point at the horizontal value denoted by the number X
and at vertical value denoted by the number Y.
This model of addressing the view surface centers pixels on their
enumerated coordinates.
A different device model places pixels
between coordinate values. Device implementors are allowed toexercise certain freedoms in mapping the coordinate enumeration
scheme used by their devices to that of the ReGIS Logical Device.
There are two important reasons for this:1.

The ReGIS Logical Device Addressing scheme will notalways map one-for-one to the physical device space whendevice transporting S(A) transformations are invoked.

2.

The ReGIS Logical Device addressing scheme doesto all device technologies.

not

map

For example, stroke oriented devices have positioning
increments, but no real pixels. Also, the underlying
hardware of some devices may support the pixel-interval
model as opposed to the pixel-centered model, and do soin a way that precludes the pixel-centered model frombeing accurately supported.
Conforming software must not depend on pixel
ReGIS device.

mDmDomD™

Digital Internal Use Only

level

accesstoaEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-34

using ReGIS instructions, the user defines the possible range ofvalues of X and Y by identifying the numeric values which aretaken on by X and Y at the four edges.
Without loss ofgenerality, these parameters may be assumed to be non-negative anddirectly define the following screen area parameters:
SYT - Value of
SYB - Value ofarea
SXL - value of
SXR - Value of

the Y-position at the top of the screen area
the y-position at the bottom of the screen
X at the left edge
X at the right edge

If they are all of integer value,
these parameters define thetotal number of usable horizontal and vertical positions.
These
totals are represented as follows:
SXN = abs(SXR-SXL)+l- the number of horizontal screen positions
SYN - abs(SYT-SYB)+l- the number of vertical screen positions
STN - SXN '" SYN- the total number of unique screen positions (number
pixels)of

The ReGIS Base Logical Device is ignorant of the real physicalsize of a pixel. This accommodates most low resolution graphic
devices which have no controllable pixel size, as in the case ofraster CRT, . stroke CRT, and storage CRT devices. other devices
must define default values of physical pixel sizes from the given
data while determining the resolution of the original device.
This may be determined by the parameters described above.
The
concept of physical measure is covered in Extensions to Base ReGIS
under subheadings 8.6 The Extended Logical Graphics Device, 8.7
Required Extensions for Raster Devices, and 8.8 Open Extensions to
ReGIS.
The parameter SXR is not necessarily greater than SXL andsimilarly, SYT is not necessarily larger than SYB. To define the
ReGIS instructions in terms of the logical device, is necessary to
be able to identify the pixels which are above, below, to the left
and to the right of a given pixel, in terms of the user supplied
screen coordinate definition.
This is accomplished by the X,Yscreen increments SXINC and SYINC which are defined as follows:
SXINC - SGN(SXR,SXL)SYINC - SGN(SYB,SYT)
where SGN(
is the function returning the sign of theof the two arguments. By this convention:
VP(X+SXINC,Y)
VP(X-SXINC,Y)
VP(X,Y+SYINC)
VP(X,Y-SYINC)~DmDDmD TM

is
is
is
is

to the right of VP(X,Y),
to the left of VP(X,Y),
below VP(X,Y), andabove VP(X,Y).

Digital Internal Use Only

differenceEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.3.2

Page 8-35

VIEWING POINT ATTRIBUTES

Each viewing point generally has background
intensity
andforeground intensity attributes as well as a foreground/backgroundselector attribute. They are defined in the following paragraphs.
Each pixel has a background "intensity" value called the BI(X,y).
The semantic meaning of the word intensity is implementation
dependent
inthesense of psychophysical and photometricmeasurement units. For purposes of the Base Logical Device,intensity is defined simply as some visually discernible property
of a viewing point; pixels with different intensity values are, bydefinition, distinguishable from each other.
The Base ReGIS
Logical Device is both color-blind and binary in terms ofintensity attributes, so the possible values BI(X,Y) are either"off" or "on".
The foreground intensity attribute associated with the pixel atposition X,Y is denoted by FI(X,y) and in the Base Logical Device
also has values of either "off" or "on". Because of the binary
nature of the base device, the FI and BI quantities are redundant,
but are included here for completeness since they will be neededin the definition of the Extended Logical Device.
This model does not elegantly accomodate devices with other thanbinary display states.
In devices that do not have immediately
differentiable foregrounds and backgrounds, such as multiplanerasterbit
map displays, an arbitrary distinction between
foreground and background may be required.
The accommodation
chosen for "ReGIS is to consider the background specifier as asecondary foreground. These issues are discussed further in the
Raster Extensions.
Each viewing point has a foreground-background selector function
denoted by FBS(X,Y,t), which has a binary value that may be afunction of time. The FBS function for each VP(X,Y) selects
whether the currently defined foreground or the currently definedbackground attribute is to be seen. Without loss of generality,
the values of FBS are "F" (for foreground selection, also denotedby the binary value "1") and "B" (for background selection, also
denoted by the binary value "0"). In the base logical device, thevalue of BI(X,Y) is "off" for all (X,Y) and the value of FI(X,Y)
is "on" for all (X,Y).
Then the set of all VP(X,Y) for which
FBS(X,y) has value "F" ("1") is visually discernible since it is
imposed on a background of different, and uniform, intensity.

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.3.3·Page 8-36

GENERAL DRAWING PROCESS

Generating an image on the logical device (as distinguished fromdefining the image) involves executing a sequence of instructions
to modify the FBS values for a selected subset of (X,Y) values.
The sequence of instruction execution is important in ReGIS. The
general procedure for generating a ReGIS logical image is asfollows:
1.

Set up the viewing area parameters
control command, S(A[][]).

using

the

Screen2.

Erase the viewing area using the S(E) command.

3.

Identify a sequence of (X,Y) positions and change the FBS
for each of these pixels using the Position and Write
control commands and the action commands for vector,
Curve, and Text~

An image may be modified by repeating step 3. A new image may be
drawn by repeating from step 2. A new drawing session may berepeated from step 1. Note that step 1 should result in a screen
erasure, since step 2 follows it.
This serves to preclude
pictures with conflicting definition attributes, such as expecteddisplay size or orientation, from being shown together. Also, it
is consistent with the description of the screen setup command,
which cautions that the state of an existing image is notguaranteed across a screen setup operation.

mDmDomD™

Digita~Internal Use OnlyPage 8-37

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.4

ReGIS GENERAL SYNTAXThis section discusses the general syntax and some aspects'of thesemantics of ReGIS. This discussion applies not only to the BaseReGIS instructions discussed under heading 8.5, but also provides
the general framework for extending ReGIS in a backward andforward compatible way.
Note
The syntax of ReGIS is complete as described inthis section. No extension to ReGIS will requirethat new instruction set data types be added which
will cause existing implementations to fail. All
implementations of ReGIS must recognize and parse
all syntactic elements presented here, regardlessof the semantic
meaningofthesyntactic
representation.
In this way, all programs thatgenerate ReGIS and all those devices and programs
that interpret it are compatible.
8.4.1

ALPHABETReGIS is based on the ASCII character set (and includes assignmentof some national use positions from that code table).
Columns 2
through 5 of the· ASCII Code Table contain all the charactersneeded to express all the constructs of ReGIS.
The description of ReGIS is in terms of characters, not theirencoding.
It is presumed that all Digital systems support ASCII
as their standard character encoding. However, there is nothingwhich precludes ReGIS from being transported in foreign codes,
such as EBCDIC, as long as all the desired descriptive characters
can be expressed in the chosen code. The user alphabet may differ
from the required ReGIS alphabet since any charactersareallowable within quoted strings. Transporting such use is in thehands of the users.
The ReGIS command alphabet consists of the following characters:oLetters:

A,B, ••• ,Zo

Digits:0,1, ••• ,9oPunctuation:[], ,. .

), " :Any and all extensions to ReGIS must conform
selection
criteria.
In
addition,theconventions apply.

mDmDomD™

Digital Internal Use Only@+ - to thesefollowingalphabetalphabetEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-38

a.

Lower case letters a, b, ...
z may be used but aretreated as upper case letters when used outside of quoted
strings.

b.

The parenthesis characters "(" and H)" are reserved
option sequences (outside of quoted strings).

c.

The bracket characters "[" and "J" are reserved for
position
andextentarguments (outside of quoted
strings).

d.

Single and double quote 'characters ("'" and '"')
reserved for delimiting literal string arguments.

e.

The semicolon character ";" is reserved for use as an
instruction
separator.
The occurrence of the ";"character always terminates an instruction, even if the
instruction arguments are incomplete or nesting levels
remain pending. The only exception is that the ";"characterdoes
notterminateaquotedstringconstruction, and may be included within the quoted
string as a literal character. Synchronization should beconsidered a "recovery" mechanism which, while returning
the parser to a known state, does not guarantee how muchof the command currently being parsed has been or will be
executed.
Refer to subheading 8.4.2 General Grammar forelaboration of this point.

for

are

A ";" does not terminate macrograph storage operations,because such storage deflnitions are not "instructions,"
but are extra-syntactic operations.
f.

The "at" character "@" is reserved for use by macrographstrings and is not used in any other context, outside ofquoted strings. within quoted strings, the "@" characteris treated as a literal character. There is no ability
to expand macrographs within quoted strings.

g.

The comma character "," serves as an argument separator.
The
comma
alwaysterminates
theparsingof amulticharacter token, except within a quoted string,where it is treated as a literal character. The comma isneeded to separate the X and Y parts of a positionargument, consecutive numeric arguments to the alphabet
character Load command, and the option letter "E" fromany preceding numeric reference in which exponential
notation might be used. The comma is legal between any
other paired tokens without affecting the syntactic
state, unless otherwise noted in this standard.

mDmODmD

TM

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

page 8-39h.

The blank (space) character"" is ignored outside ofquotedstrings and does NOT serve as an argument
separator. Spaces are treated as control characters andmay be included anywhere within the data stream without
effect, except within quoted strings.

i.

ASCII control characters and similar communications line
control and device control characters are ignored in
ReGIS and are allowable anywhere without affecting theinterpretation process, except within quoted strings,
where a specified subset of the control characters apply.
Note
Certain controls described above are stated as
being ignored or insignificant in ReGIS undercertain conditions. There is one exception to
thisstatement:The
macrographdefinition
terminator "@;" may not be dividedbyanycharacter sequence which may be delivered to the
ReGIS parser, including a blank space or othercontrols.
There is no instruction parsing duringa macrograph storage, therefore the indivisibilityof the terminator construct is a necessity.

8.4.2

GENERAL GRAMMARA ReGIS image definition consists of an arbitrary length sequenceof instructions that mayor may not be" separated by commas or
semicolons. Any character other than a defined command keyletteris ignored.
By this rule, an unattached ReGIS argument (one notlogically coupled to a command key letter)is ignored without
effect.
Therefore, unattached quoted strings can be used to"comment" ReGIS instruction streams or files.
The proper way to"unattach" an argument is to precede it with a semicolon. The
semicolon terminates any outstanding keyletter, and the following
argument is ignored as having no context.
A ReGIS instruction consists of a keyletter followed by anargument list. ReGIS can encode up to 26 different instructions.
Only eight keyletters are used in the ReGIS Base allowing
considerable
room
for extension.
See subhead 8.1.8 ReGIS
Overview.

mDmDomD™

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-40

An instruction argument list consists of an arbitrary number offour argument types arranged in an arbitrary syntactic order.
Semantically, all instructions and instruction arguments are
assumed to be executed in the "left-to-right" order they arereceived.
ReGIS syntax does not require
that
instruction
arguments be received in any particular order by type.
It is thesemantics of a given command which will determine the sense ofintermixed argument types.
Actions take effect when enough characters have been received to
sufficiently specify an action. A drawing action, for example,
will usually commence, or continue, upon receipt of a closing
bracket (]) of a position argument, indicating that the given
position specification is complete. Unless there is a specificneed for further information (as would be the case in a curveinterpolation sequence), drawing can occur regardless of whether
more point specifiers are being sent as arguments to the current
command. Similarly, characters received as part of a quoted
string argument to a Text command can usually be displayed asreceived, without waiting for the string to be terminated.
Actions involving potentially interacting argument types, may haveto be buffered before "enough" information can be identified.
This will often be the case where arguments to option commands are
involved.
Most
option commands set state, as opposed togenerating visible output. Where an action (such as output) does
occur,
it is often modified by state elements that are otherarguments to the same option.
For example,
the Raster ReGIS
command to dump the screen bitmap to a printer is, most simply,
S(H). The option specifier (H) may,
however,
include suboption
specifiers to indicate the offset of the image when printed, suchas
. S(H(P[10,SO]»or arguments to indicate the exact portion of thedumped, such as

displaytobe

S(H[100,250][600,400]).
The complete command might be
S(H(P[lO,50])[100,250][600,440])or the equally valid combination
S(H[100,250][600,440](P[lO,50]».
No action should b~ taken on the occurrence of an option keyletteralone until it is seen to have no subarguments that would modify
such action.

momoomD™

Digital Internal Use Only

EL~00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-41

In the case of most command options, the entire option must be
parsedtoidentify
thecomplete intent of the command.
Syntactically, arguments of the four types could follow the H
option indefinitely. The terminating condition must therefore besome indication that no further option arguments can apply to theoption letter in question. This indication may be anyone of thefollowing:a.

The matching right parenthesis that closes the leftparenthesis that initiated the current option level isencountered.
This is the means by which the example above was closed.
Subsequent arguments apply to the S command, and a new
keyletter is interpreted at command level.

b.

A new option keyletter is seen at the same level at which
the current option keyletter is in force.
Thus the X in
S(H[100,2S0][600,440](P[10,SO])X)
indicates that the (H) option is comple'te, and any
buffered state may be applied to its execution.
The new
option indicated by X
need
not
be
semanticallysignificant in the context in question;
it is its
syntactic presence which serves to delimit.
The ReGIS implementation resumes
parsingatthatcharacter,so the character is doubly parsed:
once as asyntactic delimiter, secondly for its semantic meaning.
Parsing resumes at the option level to the S command.

c.

The synchronizing~emicolon

is encountered.

In the command stream'
S(H[100,2S0][600,440](P[10,SO];the semicolon indicates that the entire parser nesting is
to be popped.
As shown,
this represents popping twolevels of options, since the suboption P was not closed.
There is no command keyletter in force after this action,
and any following arguments will be parsed as unattached.
The visible actions which derive from this synchronizing
action are not always clear, however.
In general, any
state-saving actions are performed as necessary, but theactions conditioned by this state cannot be guaranteed tooccur.
In. the example above,
the offset definition
implied by the suboption P[lO,50] would likely be saved
since it is a state definition action,and does not

mDmDomD™

Digital Internal Use OnlyEL-non70~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-42

initiateadrawingor communication action.
The
synchronizing action would prevent the actual image dump
·from occurring.
Also,
the image extents would not besaved, since they are specified to be volatile settings,
and the next S(H ••. ) operation would cause them to bereset to defaults.

I
I
I
I
I
I

Use of the semicolon should be viewed as a syntactic
recovery operation, not a semantic terminating operation,
except as may be noted in specific exceptions in thisstandard. Refer to the terminating condition to the Loadalphabet command.
It is NOT necessary or expected that exiting the ReGIS
environment and reentering it via the resynchronizing
entry will have the same effect as as encountering aresynchronizing
semicolon.
Thesemicolon
andenvironmental
resynchronizationsaretwoseparate
schemes; they are not meant to be interchangeable.
Environmental
will
force
resynchronization
resynchronizationeven from within a quoted stringargumentoramacrographdefinition.
Semicolon
resynchronization can do neither of these.
The actions described above show an entity is not complete until
it is delimited.
Such delimiting may be explicit, as with theclosing quote of a quoted extent, or it may be implicit, being
terminated by a character of a type not valid for the token inquestion. This is illustrated by the parsing numeric of values.
In the command
T(SlD90A2)
the parsing of the values 1, 90, and 2 ischaracters "D", "A", and H)", respectively.

terminated

upon

the

In some cases, command parsing may have to be "batched" for goodvisual effect. Commands which change an output map, for example,
may be deferred until all such updates are received,or their
option string is terminated.
This may be required to prevent
undesirable flashing of the image were updates to be received andmade -piecemeal.
Some batched parsings are defined in thisstandard.
Implementations that extend such batchings must clearlystate this in their product documentation.
Any decision to implement batching of output may not restrict
function otherwise defined in this standard. For example, curveinterpolation in ReGIS places no bounds on the numberofintermediate points which may be specified as part of the curve
definition. An implementation which batches the interpretation ofsuch curve rendering must still support an unbounded number ofpoints.

mDmDomD™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.4.3

Page 8-43

ARGUMENT TYPESThe following describes the syntax for each of the argument types.
8.4.3.1

Bracketed Coordinate Specifier

A sequence of characters enclosed in the bracket characters ([])
refers, to an (X,Y) position argument or increment. The contents
of a bracketed extent are always numeric and there is no nestingof brackets.
Any non-numeric character other than a comma
encountered within a bracketed position argument causes the part(x
value or y value) being decoded to be terminated andinterpreted as not present.
If more than two
parts
are
encountered within one pair of brackets (that is, more than one
comma is present), only the first two parts are accepted; thethird and any subsequent parts are ignored.
See subheading
8.4.3.3 Numerics.
8.4.3.2

Quoted Strings

A sequence of characters beginning with the single quote character(') or the double quote character (") and ending with a quotecharacter of the same type is a text string and treated as asingle argument.
The contents of a quoted string are entirely
arbitrary. Once the opening delimiter is seen, all following
charactersareinterpreted
literally until the string isterminated by the matching quote character.
ReGIS allows 8-bit encoding of character arguments within quoted
strings.
Legal character codes are 2/0 through 7/15, and 10/0
through 15/15 (two 96 character sets, 192 characters total).
The
accessibility of codes 7/15 and 15/15 is not guaranteed because of
their interpretation as control characters in some environments.
Provision for them must be made in alphabet storage, however.
The quote characters themselves are not part of the text string; astring which is introduced by a quote of one type is not
terminated by a quote of the opposite type. Therefore, a quote ofone type can be included in a string by using the quote characterof the other type as the string delimiter.

mDmDomD™

Digital Internal Use Only ,EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION-

Page 8-44

Should it be required to include a quote character of a given typewithin a string delimited by quotes of the same type, the target
repeated in placequote character must be doubled,that is,'without any intervening characters. For example,"A"

encodes
encodes","
encodes
encodes'a"C',,,,
encodes"A'""B" encodes
encodes
""

,",

the
the
the
the
the
the
the

string A
string "stringstring a'C
stringstring A'"B
empty string

ReGIS instructions may have multiple string arguments.
Consider,however, that if 'ABC' and 'DEF' are two consecutive stringarguments, then the resulting structure is 'ABC"DEF', which willbe treated by ReGIS as the single string ABC'DEF. This undesired
result is avoided by separating possible consecutive stringarguments with the comma character.
A potential ambiguity arises in the case of doubled quotes
separated by control characters. Outside of quoted strings, allcontrol characters and SPACE are treated as "no character" by
ReGIS.
Within quoted strings used as arguments to the Text
command, the controls BACKSPACE, CARRIAGE RETURN, LINE FEED,HORIZONTAL TAB, and SPACE have meaning.
Should paired-quotes within a set of paired quotes be separated by
BS, CR, LF, HT, or SP, then they are NOT considered doubled, andtwo quoted arguments are recognized as if they had been separated
by a comma. When separated by other controls, these controls areinterpreted as "no character" and the quotes are considered
doubled,forcing the inclusion of one of the quotes in the stringargument. Hence, if in the command stream
T"text"<>"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 byany other control, an equivalent command stream would beT"text""moretext"
resulting in the effective text argumenttext"moretext.
Were <> to be replaced by a macrograph definition (which is
specified not to disturb the state of the parser, but which is notallowed within quoted strings), the quotes are NOT doubled.
The
result is, again, as if the two quoted extents were separated by acomma. The macrograph definition would succeed, but would havethe 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 orsequencesofarguments where each argument is a single digit character. The
distinction between such uses is semantic, not syntactic and isdistinguished 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 scientificnotation formats are accepted.
The allowable alphabet for numeric representation isfollows:

composedoDigits zero through nineoplus and minus signsoDecimal pointo

The letter "E" or PeP, for scientific notationas

The composition of these elements into numbers is by common rules.
A simple BNF-like expression of the allowed format for thesenumbers is<number>::=<unsgnreal> ::=<exponent>::=[+1-] <unsgnreal> [<exponent>]<digits>* [.J <digits>+<digits>+ [.J <digits>*
E[+I-J<digits>+

In this expression format, "I" means OR, "::=" means production,"<token>*" means zero or more instances of <token>, "<token>+"means one or more instances of <token>, 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 beinga.

optionally preceded by a single sign character, ANDb.

optionally followed by an exponent comprising1.

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 thenext 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 theabove grammar (such as having more than one sign character, morethan one decimal point, a sign character or decimal point with nodigits, or more than one exponentiation operator (E) within asingle numeric token) are no~ specified in this standard, and suchoccurrences 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
specificationofthe(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 theoption-separating comma when there is any chance of a semanticerror.
Where digit strings are used as pixel vectors described undersubheading 8.4.5.3 Pixel Vectors, the sign characters and thedecimal point are ignored without effect, and the interpretationofthedigits takes place normally.
Any other character
terminates the digit string scan, and the scan state changes tothat indicated by the non-digit character. This is also true ofthe letter "E", which, although normally valid in numerics as an
exponentiation operator, must be interpreted as a keyl"etter at thecurrent option level.
8.4.3.3.1

Dynamic Range and Precision

Implementations are not required to USE any fractional part of acompletely 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 prec1s10nofmany
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, andthe use of large negative exponents in such forms is deprecated.
All implementations must support signed integer arithmetic in arange 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 apart 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 fullyrecursive, 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 beseparated 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 notexceed this level of recursion.
Recovery from an attempt toexceed 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.
Anyargument type applied to suboption letter "F" other than anotheroption 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 ofstate 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 thetemporary Write options, are "volatile." They remain in effectonly 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-statepreviously 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 acommand 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 thatmust be transmitted over the communications interface.
For
example, if the image being drawn is a sheet of music, each of thedifferent 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.
Insome cases, readability may even be improved by such compaction.
M~crographstrings are "extra-syntactic" in that they conform to agrammar built on top of the ReGIS general grammar. Therefore,
macrograph definitions may take place anywhere in a ReGIS commandstream without affecting the state of the ReGIS parser. A
macrograph definition may even occur within the extent of anumeric argument without adversely affecting the interpretation ofthat numeric value.
Because of the co-precedence of quoted string extents
andmacrograph transactions, however, neither macrograph definition
nor expansion may take place within a quoted string. Similarly, aquoted string within a macrograph definition is not treated as aquoted 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 theprocess of parsing ReGIS instructions, the detection ofamacrograph string reference causes the characters previously
defined for that macrograph to be substituted for the stringreference characters.
In the general case, a macrograph string~ay be just an argument of an
instruction (such as a positionargument) or may even be a piece of an argument (such as anargument 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-caseletters are converted to upper-case for the purpose of macrographstring 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 ofclearing a macrograph causes the string to consist ofnocharacters (the empty string).
The default content of all
macrographs is the empty string.
An attempt to execute the global clear (@.)
from within amacrograph is an error. Determination of and recovery from thiserror is not specified in this standard.
A macrograph string is defined by the sequence@:<letter><string>@;
where <letter> refers to any alphabetic character, and <string> isany sequence of characters not containing "@;" or "@:". The
sequence "@:"
(colon)is called themacrographdefinition
initiator.
The sequence "@;" (semicolon) is called the macrographdefinition terminator.
Neither a macrograph clear nor a macrograph definition affects thestate of the ReGIS interpreter. A macrograph definition may occur
at any point in the ReGIS instruction stream, between keylettersand arguments,
between arguments, or within an argument, without
affecting the interpretation of of the ReGIS stream.
Macrographinvocation, on the other hand, causes previously stored pieces of
the ReGIS stream to be inserted into the interpreted stream, in amanner 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@<letter>where <letter> is one of the names given a previously definedmacrograph.
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 anothermacrograph string. Determination of and recovery from this error
is not specified in this standard.
A macrograph string may include invocations of other macrographstrings, 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 forrecursive invocation. Determination of and recovery from thiserror 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 initiatormust 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
excludingallothermacrographs
from
use.
Conforming
implementations must provide for no less than 4000 characters ofmacrograph storage.
~serattempts to exceed the macrographstorage 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 willbediscarded, but the definition will terminate "normally"
upon the next occurrence of the macrograph definition
terminator, and there will be no effect on the commandstate 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 eachgraphics primitive starts at the "position" left by the previous
operation. Vector commands, for example, have an implicit startpoint, and only a single argument (the other end point) is
required to specify a line. The effect of any command upon thecurrent 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 ofdrawing 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 asemantic extension which allows absolute and relative coordinates
to be distinguishable in context, thus eliminating the need tohave separate relative and absolute instructions or options.
Pixel vectors correspond to the "chain encoding" technique used todrive 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 orboth of which may be missing. The x part precedes the y part.
Each component is made up of numbers, following the rules fornumbers as standalone arguments.
The y part, if present, isseparated from the x part by a comma.
See subheading 8.4.3.4
Numerics.
Each coordinate part consists of a number possibly preceded by aplus or minus sign ("+" or "_H). If a coordinate part is notpreceded by a sign character, that argument represents an absolutecoordinate; the value of the coordinate part is the new number,irrespective of the value of the current drawing position.
If acoordinate part is preceded by a sign character, then that part isevaluated 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 andabsolute change)(multiple specifiers havecumulative action)

Use of Bracketed Extents for Non-Positional Information

Some ReGIS commands are defined to use the square brackets to
enclosenon-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 forexpression 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
definetheimposedaddress space.
They have nodependence on current position, and signed values areinterpreted 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 ismeasured in the imposed coordinate space, but thesevalues 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 ofcharacter cells are measured in the imposed coordinate
space, but do not relate to current position.
Missingvalues 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 atechnology-dependent units,
There is no association withvalues are interpreted as O.

Page 8-54

character is measured inusually 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 tocurrent
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 therange of 0 to 7. Each of these numbers refers to one of the eightpixel 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 soforth 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 thewriting
attributes
instruction.
Scaling of horiiontal andvertical components of the pixel vector is isotropic, that is, anincrement of distance in X is taken to be the same distance asthat increment in Y.
Depending on the granularity of the unit pixel size defined by thescreen 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 brokenoccasionally 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 initialvalues of X and Yare 100 and 50, respectively.
Multiplier---------1
1
1
(any)
5
23
1

8.4.5.4

Pixel string

New (X,Y) Value

0
1
0002
01234567
667
50000000000

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 foruse 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 berestored 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 ofvectors and positions. Thus, an "end" reference in a vector
instruction can cause a position saved by a "begin" operation in aposition 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 theformer implies no argument present (as would be fetched from anempty 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 fromthe 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
topreviously
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
cannotbeconvenientlyorefficiently performed by a sequence of existing ReGIS
instructions, and2.

The designer can ensure a minimal loss of information
content when the new instruction is ignored by a
ReGIS
device
which
does
not
implement
theinstruction.

By this reasoning, new instruction types must minimizeside effects of state to the greatest degree possible.
For example, no command not already defined shall affectthe 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 modeaetting. {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 ofapplicability
asoutlined under heading 8.2 ReGIS
Philosophy.

e.

Extensions will be registered via Engineering Change
Orders (ECOs)
to this document, either as additions toexisting chapters, new chapters, or in appendices, as
appropriate to the meaning and classification of theextension.
Warning to Device Implementors
Product dependent
extensions
to
ReGIS
not
registered in this standard may jeopardize thecertification of the product as ReGIS-conforming.
Suchextensions 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 INSTRUCTIONSThis section details
instructions.
8.5.1

the

semantics

of

the

eight

Base

ReGIS

SCREEN INSTRUCTION

The screen instruction, keyletter "S", controls screen coordinateparameters 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 thecommand in Base ReGIS.
8.5.1.2

S

Numeric Arguments

There is no significance to numeric arguments to the S commandBase ReGIS.
8.5.1.3

inQuoted String Arguments

There is no significance tocommand in Base ReGIS.
8.5.1.4

quotedstringarguments

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 theabsence of this command, the default device coordinate range will
be in effect. The implementation default is not standardized, andmayor may not, at the implementor's option,reflect the actual
physical resolution of the device. Throughout this document, thecoordinate space defined by the last effective S(A[][]) command isreferred to as the "imposed" coordinate space.
Warning to Applications
Applications failing to use the screen addresscommand for device setup run a great risk of
sacrificing portability.
There
can
be
no
guarantee that future devices will maintain thesameaddressrange
as.existingdevices;applications that do not include provision forimposing 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 thelower 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 commandis ignored and the address space previously in effect shall bemaintained •.
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 beignored.
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 valuesof 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 definea coordinate system which "makes sense" for the user's specificproblem. Such transformations are more appropriately accomplishedwith 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 shouldstill send the S(E) command before beginning to draw.
Not doingso could produce undesirable side effects.
8.5.1.4.1.1

Mandatory Arithmetic Range

The screen address setup applies to the orientation and magnitude
oftheCartesian(bracketed)coordinate specifications ofaddressing the display surface. Left and right, up and down,
clockwise and counterclockwise describe the user's view of thedisplay 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 isthe direction below the baseline. Thus, an attempt to reflect animage in its totality merely by inverting the X address space (asto 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 toat least twice the defined extent of the display. Such legal use
is positioning the center of an arc outside the display, eventhough 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 thelargestguaranteed 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-leftcorner 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 ShapeThe region defined by the S(A[)[) is the "region of interest" ofgraphics output.
It is device dependent as to whether allgraphics 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 therange specified to the entire width and height of the display, or
because the shape of the area specified does not exactly match theshape 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.

impliedby

S(A[)[)

mustbe

The command S(A[O,O)[1000,750) implies an area one and athird times as wide as it is tall. The area on thedisplay to which the source address space is mapped must
m~intainthis 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 bevisiblein

In the case immediately above, if the available height ofthe 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 verticalextents of the available hardware.
Consider the cases as above, in which the requested spaceis 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 isless than 1/3 the available vertical range, more thanhalf of the horizontal range is used, meeting thisrequirement 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, norshall it depend upon the exact scale factor used to map therequested 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 tore-orient its display surface with respect to horizontal andvertical to better match an imposed address space, as long as all
reorientation takes place as if the device were exactly a deviceof the assumed aspe~t ratio.
In other wo~ds,"turning" thedisplay surface horizontally or vertically to fit a particulargraphic 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 ofvideo when the long axis is the horizontal (landscape mode).
However, if used to execute graphics for publication, the verticalmay be the more natural long axis (portrait mode). The magnitudeof the horizontal to vertical aspect ratio implied by the S(A[][])
relative to unity may be used to infertheutilityofreorientation.
Each physical device has its own pixel and picture aspect ratios.
The pixel aspect ratio is the ratio of the width to the height ofthe physical picture elements of the display. ReGIS expects thedisplay 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 numericformats:1.

Low resolution devices are assumed to use integer numericquantities only.
However, low resolution devices must
extract the integer portions of floating point andscientificnotation
numberconstants.
Refertosubheading 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 offractional 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 mismatchesof 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 thedefined action.
a.

Current position
coordinate space.

is

set

Equivalent explicit command:
b.

in

the

imposedline

pattern

P[O,O)W(Ml)

The line pattern is set to solid, andelement multiplier is set to 2.
Equivalent .explicit command:

momoomD™

[O,OJThe 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 EXTENSIONd.

Text character escapement is set to rightward movement
the width of one standard size 1 character cell, with
device-optional extra intercharacter spacing, and novertical 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 acharacter extent.
Equivalent explicit command:T[<+w>,O]
assumingXlncreases rightward (else use <-w»; w is not less than
the width of a standard size 1 character
Equivalent explicit command:
T[O,<+h>]assumingY
increases downward (else use <-h»; h is not less thanthe height of a standard size 1 charactere.

Character set selection is returned to the default state
for the device.
This is normally ASCII in GL and theappropriate 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 inpreparation for a new image. The precise meaning of "erase" isdevice dependent, but generally has the connotation of creating ahomogeneous visual image.
In some systems, this operation iscalled "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<integer»- Feed medium

In hard-copy devices with movable media, this command causes a"sheet feed" or equivalent action to occur. The numeric argument
to the F option indicates how many frames of the medium are to beadvanced.
The default value, 0, indicates that the medium is tobe moved one frame only if some drawing action has occurred since
the last S(F) or S(E) command. Devices which can recover media
already advanced are allowed to implement negative values for thisoption.
Negative values are interpreted as 0 in devices whichcannot support negative values.

Digital Internal Use Only

EL-00070-Q8

31-Mar-1988

Page 8-66

VSRM - ReGIS GRAPHICS EXTENSION
S(F) can be used as an "image complete" indicator for ReGISinterpreters,
includingbothhard-copy
devices and image
conversion utilities. Systems which do not run interactively
often need such an indicator to identify the end of the ReGIS
stream, so that they may take further image processing action.
S(F) does NOT imply image retransmission, as does S(H), and should
be used at the end of any stored ReGIS file to indicate "image
complete," even on files sent to interactive devices. ReGIS-based
images intended for file storage should be terminated with S(F) tofacilitate their handling in such environments.

mDmDomD™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.2

Page 8-67

POSITION INSTRUCTION

ReGIS assumes and uses the "current position" or "current drawing
position" convention for determining where a drawing instruction
starts its operation in the viewing area.
A ReGIS device isrequired to maintain the value of an X and Y set of numbers, andthese saved values are assumed always to be the starting point fora drawing operation. These values are updated to new values after
each drawing operation. An example of the current value concept
is the position of a drawing pen on a flat-bed plotter device.
The Position instruction, keyletter "PH, changes the value of thecurrent drawing position without drawing any visible image. One
physical analog is the movement of the plotter pen with the pen
up.
ReGIS allows the drawing position to be moved on bothabsolute and relative bases.
8.5.2.1

Position Arguments

Position arguments to the position command cause the current
drawing position to take on the value specified by the argument.
Multiple position arguments may be associated with a single
Position command, or pixel vectors may be intermixed with positionarguments.
Each argument is executedin
turn,providingcumulative results.
8.5.2.2

Numeric Arguments

Numeric arguments to the Position command are interpreted as
single digit pixel vector specifiers.
This supports programs
which use "chain encoding" techniques and allows small relativechanges in the drawing position.
A sequence of pixel vector
digits may be used, with accumulative results. The number of unit
pixels actually moved for each digit is determined by the
granularity (the unit distance) of the imposed coordinate space
and the current pixel vector multiplier value as set by thewriting options instruction.

Digital Internal Use OnlyPage 8-68

EL-00070-08:
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.2.3

Quoted String Arguments

There is no defined meaning for quoted text as an argument toPosition command in Base ReGIS.
8.5.2.4
8.5.2.4.1

theOptions
P(B), P(E), and P(S) - Position stack operations

The position begin and end options allow a simple means forrecording a current position value and then recovering that value
at some later point in the instruction stream.
The P(B) option
saves the current value of X and Y on the position stack. Should
subsequent drawing or positioning instructions change the drawing
position, execution of the P(E) option causes the drawing position
to be restored to the saved value. This helps define images which
are to have maximum transportability, since it allows accumulativeroundoff errors to be occasionally eliminated, particularly in thecase of text drawing which may be very roughly approximated on low
resolution devices.
The construct P(S) is provided for symmetry with the V(S) and C(S)position constructs.
P(S) saves a dummy entry on the position
stack. This entry, when recovered by a P(E), performs no action
beyond incrementing the stack pointer to pop the dummy entry. In
this way, the same drawing positions will be visited by Position,
Vector, and open Curve instructions executing the same parametersequence.
The position stack is cleared to no entries on
S(E) or when a valid S(A) is executed.
8.5.2.4.2

theexecutionofP(W) - temporary Write options

The W option to any of the drawing action commands temporarilychanges the write attributes to the specified values for theextent of the instruction in which it occurs.
Temporary write
options revert to their previous state upon the occurrence of a
new command keyletter (not necessarily different from the one in
effect) or when the interpreter is brought to command level bysynchronization, such as by encountering a semicolon.
Suboptions to the P(W(» form are the same as for the W() command
itself.
The only meaningful suboption in the context of the
Position command is the pixel vector multiplier, thatis,
P(W(M<m»).

Digital Internal Use OnlyPage 8-69

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.3

WRITING ATTRIBUTES INSTRUCTION

The writing attributes instruction,
keyletter "W",providescontrols under which the image is to be drawn.
In the ReGIS Basethis includes the selection of line drawing patterns and theadjustment of pixel vector sizes.
Extensions to ReGIS add
controls for color, intensity, and drawing modes,
among otherfeatures.
8.5.3.1

Position Arguments

There is no assigned meaning for bracketed position
the Write attributes command in Base ReGIS.
8.5.3.2

8~5.3.4.l

to

the

Write

Quoted Text Arguments

There is no assigned meaning for quoted
write attributes command in Base ReGIS.
8.5.3.4

toNumeric Arguments

There is no assigned meaning for numeric arguments
attributes command in Base ReGIS.
8.5.3.3

arguments

text

arguments

totheOptions
W(M) - Pixel Vector Multiplier

The M option to the attributes command defines the pixel vector
multiplier that apply to pixel vector arguments.
These pixel
vector arguments apply to the commands which interpret numericarguments as addressing constructs.
A numeric argument is amultiplicative scale factor to be applied to the default pixel
size set by the S(A) command.
It may be a floating point value insystems which support floating point arithmetic, but may betruncated to an integer in systems which do not. A value of 0 is
taken to be 1. There is no upper bound on legal values for thenumeric argument other than that imposed by the base arithmetic
limits of the ReGIS interpreter (16 bit integer arithmetic).
The pixel vector multiplier is set to
executed.
8.5.3.4.2

1

when

a

valid

S(A)

is

W(P<n>«suboption») - line Pattern definition

The ReGIS Base does not require that devices draw in color or grayscale, 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 soon. 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 fromthe 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 definitionof a custom pattern.
Base ReGIS interprets the user definedpattern 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 adigit string consists entirely of ones and zeros, then it isinterpreted 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
theappropriate 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 thephysical pixel, but there is no requirement that this length becoupled to any absolutes of screen addressing.
Therefore, only
the "duty cycle" of the patterns, not their component lengths, isguaranteed 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 <k>,then theimplementor may choose to keep either the first <k> bits specifiedor the last <k> 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 ofthe device.
In this way predefined pattern PI is identical to thecustom 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<m>, wherethe value <m> represents a multiplier to be applied to eachelement 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, andthus'
achieve
additional
discernibleline
pattern types.
Implementations must provide for multipliers as large as 16.
There is to be no interaction between the pixel vector
specifiedbyW(M<n»
andthe pattern element
W(P(M<m»).

multiplier
multiplier

The line pattern is reset to solid and the pattern
multiplier is set to 2 when a valid S(A) is executed.

mDmDDmD™

Digital Internal Use Only

element

Page 8-72

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.3.5

Writing Modes

the only writing
As was noted at the start of this section,
Attributes required in Base ReGIS are those for the control ofline pattern and pixel vector length. Extensions to ReGIS provide
for other controls, among them the writing mode, that is, how new
drawing actions affect the execution medium. Base ReGIS does not
specify what writing mode must be present when these controls are
not or cannot be implemented. The two most natural choices areeither:1.

Overlay mode,th~model thatwriting with pen on paper, or

mostclosely

resembles

2.

Replace mode, a model which may be convenient for certain
bitmap devices.

Refer to subheadings 8.7.2 Raster Extension and 8.7.2.4.1 Writing
Attributes Extensions
Writing Mode Options.
for a complete
definition of writing modes. The guiding criterion to the device
implementor is that visible output is generated.

Digital Internal Use Only

EL~00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.5.4

page 8-73

VECTOR INSTRUCTION

line
The Vector instruction, keyletter "V", draws straightsegments connecting the current drawing position and one or more
specified positions.
It uses bracketed position arguments or
pixel vectors.
8.5.4.1

Arguments

Semantically, the vector instruction is exactly the same as the
Position instruction, with the exception that the V instruction
can cause a visible image to be generated.
The lines drawn by
this instruction are subject to the current line drawing patternselected by the W instruction and the pixel vectors drawn are
subject to the current pixel vector multipliers selected by the W
instruction.
The Band E options allow the user to define a closed polygon,
though this is not the mechanism used in ReGIS to specify a filled
polygon. Refer to the section on Position instruction options,and the section on the position stack, for detailed descriptionsof the use of the Band E options.
The S option to the Vector instruction is included to provide
symmetry with the open Curve instruction. An S option to a vector
or position instruction saves a dummy entry on the position stack,consuming one entry of stack space. The matching E option to thisS pops the dummy element from the stack without other effect.
This dummy element will cause the same action as would be achievedby trying to pop from the empty stack, except that any data below
the dummy entry is still valid and available.
The dummy entry
implies NO ELEMENT, as contrasted with the empty bracket ([]),
which implies action at the current position. This allows vector
and open curve sequences to use exactly the same argument list toachieve parallel results. Note that the position stack available
to the Vector instruction is not available to
the
Curve
instruction.
These parallels are parallels of semantics, not ofshared or shareable state. Refer to the C(B), C(E) and C(S)sections later in this standard for descriptions of closed andopen curve actions.
The W option allows the writing attributes to be temporarily set.
After completion of the Vector instruction,
the value of thewriting attributes returns to those they had before the executionof the V instruction.

Digital Internal Use OnlyPage 8-74

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.5

CURVE INSTRUCTION

The Curve
circles,Sequence"such asdraw.

instruction,
keyletter "C," draws circles, arcs ofand interpolated curve sequences.
"Interpolated Curvemeans a curved line image of varying radius of curvature
a draftsman using French curves or similar aids would

A Curve constructfollowing reasons:

in

Base

ReGIS

has

been

included

for

the

a.

Each graphic device knows its abilities better than thesoftware driving the device, and thus is better able toselect an optimal quality versus performance tradeoff.
This avoids the problem which arises when software
approximates a circle by specifying an 18 sided polygon
for use on a low resolution device, and produces an 18
sided polygon precisely when the application is run on ahigh resolution device.

b.

with the assumption that all devices will have local
processors, there is no longer any significant complexity
to having a local curve capability.

c.

The availability of a local curve
capability
cansubstantially reduce the number of characters transmitted
to the device.

d.

The inclusion of a curve capability gives ReGIS a degreeof completeness in terms of incorporating the "rule andcompass" drawing primitives.
Circles vs. Curves
while both circles and general curve constructs
are defined as parts of the same ReGIS commands,
differences are great enough in goals and actionsof the commands that they should be considered as
separate commands for purposes of explanation.
Hence, the description of the actions of theargument types below is divided into a circle set,a curve set, and a common set. The results ofmixing circle options (C and A) with curve options(B, S, and E)
in the same command are notspecified, and should be considered an error.

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.5.5.1

Page 8-75

Position Arguments

The meaning of a position argument depends upon whether orcurve position block has been selected.
8.5.5.1.1

notaCircles

Outside of a position block, position arguments mean· "draw acircle" or,if the arc-angle option has been selected, "draw an
arc of a circle." The instruction form C[<position>] draws acircle with the current drawing position as the center and[<position>] a point on the circumference of that circle.
Thedrawing position is left at the center after the circle is drawn;
that is, the drawing position is unchanged.
Thus, consecutive [<position>] arguments to aconcentric circles to be drawn.
The (C)
relationship of the initial drawing positionarguments.

C command causes
option inverts theand the position

If the arc-angle option (A<ang» is used, an arc of a circle isdrawn starting at the point on the circumference and ending <ang>
degrees from that point.
8.5.5.1.2

CurvesWithin 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 curveis 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 commandareinterpreted as pixel vectors. The pixel vector specifier shall beinterpreted as if it were a relative bracketed extent, andexecuted 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 itwere C[+10]. The pixel vector multiplier should be set to areasonably 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 theCircle 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

CirclesC(A<ang»- Circular Arc

The circular arc option causes only a portion of the specified
circle to be drawn. The current drawing position specifies thecenter of the arc, and a position argument or pixel vector
argument specifies the start point of the arc. The arc is drawn<ang> degrees, counterclockwise for positive <ang>, clockwise fora negative <ang>. 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 <ang> 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 angularspecifiers to the nearest 10 degree increment, rounding up to thenext 10 degree increment at the five degree point.
Where
consecutive .arcs are a requirement, as for drawing pie charts andthe 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 relationshipbetween the current drawing position and specified positionarguments to be inverted. When the (C) option is in effect,
thecurrent position defines a ~oint on the circumference, and aposition argument or pixel vector specifier indicates the centerof the circle or arc.
A circle command with the (C) option draws the circle with thecurrent drawing position as a point on the circumference and[<position>] as the center. In this case, the drawing position isleft 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 positionc spec'd position arqumentc

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

CurvesC(B), C(E), and C(S) - Curve interpolation

Either the option "s" (for an open curve sequence) or "B"(for abounded curve) starts a general curve interpolation sequence. The
sequence ends with the "E"(end)
option.
There must be nointervening 9ircle or block structured P or V instructions within
the range of a curve begin-end sequence, nor shall C(S) ... (E)orC(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 (startingwith 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 withinsequence, 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.
Ineither case the number of curve elements drawn isdevicedependent.
Thus, conforming software should always properly
terminate a curve construct to ensure consistent visible results.
The use of (W()) suboptions in curve interpolation commands issimilarly 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 thescope 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 bydefinition (as, say,"cubic spline" or "conic approximation").
The following constraints do apply, however, and may· limit thepractical choice of algorithms!
a.

The curve must pass through every point specified in theargument 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 straightline 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 meanthat the visible results must coincide, since thisconstraint does not impose a method of rasterization on
the line segments which connect theseintermediate
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 sequencemust 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 andfrom the penultimate to the last point are not drawn.
These point pairs (first and third, and second next tolast and last) are used to define the slope of the curveat 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 indicatethat the point is to be repeated in the sequence.
Inthis case, the visual appearance of the curve at the end
points may not be realistic,since the effects ofdoubling the end points bypasses the natural constraintof first order continuity and the intended shape of thecurve.

As a result of these constraints and conditions, ,at least threeposition arguments in addition to the current cursor position mustbe 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 maintainedat 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 aresult 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 notstandardized and is ~hus device dependent.
Despite the definition of curve constraints outlined earlier inthis 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 thisis 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

Common8.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, andapply only within the scope of the instance of the C command
keyletter in which
they
appear.
Specifically,arcandcircumferential 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.

stringsofEach ReGIS device must have a built in character definition andwriting 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 logicalposition for writing another character, normally horizontally adistance a little more than the visual width of a character.
Inan extended system, the color or intensity of text is determinedby 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 thenumber of rows or columns of text which must be supported on agiven display surface.
ReGIS text is meant
to
be
used
annotatively, that is, to supplement the drawing process, not as ahigh 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 theexecution of a text string cannot be determined without knowledgeof the target device or the detailed specification of text sizeand escapement.
The quality of character representation at thislevel is also assumed to be poor and typically drawn as a sequenceof 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 acharacter 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 novertical movement.
This character to character movement defines
what is known as "character path," and describes the orientationof the entire character string. It should not be confused with,nor does it affect, the orientation of the character cellbaseline, 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 Useof Bracketed Extents for Non-Positional Information.
This value
is always considered relative,
regardless of the presence orabsence 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.
Whencharacter height and width are not equal, this movement will takeon the proportions of the character cell.
Movement is executed only when the pixel vector digit
isencountered, and does not affect, nor is it affected by, thecharacter 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 thecharacter baseline is not constrained to be parallel to thehorizontal axis.) Numbers 1 through 7 step in equal increments,
counterclockwise, as for normal pixel vectors. This argument canbe 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 thestored alphabet (the last alphabet selected by T(A)if multiplealphabets 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 backcharacterescapement
step,
both
horizontallyvertically.

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 backgroundcolor into the drawing medium, while an overlay modespace or a horizontal tab in any mode do not.

8.5.6.4
8.5.6.4.1

one
andOptions
T(A) - Alphabet selection

Arguments to the Text instruction select among possible alphabetsof 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 aquotedstringargument, the tail of the reformatted ANSI
designating escape sequence. The resulting format isT(A<n>(L"<designating tail>"»to select a character set into the left half, andT(A<n>(R"<designating tail>"»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 thisparticular intermediate with a character from column 3 of thetable,
the G-set assignment is ignored but identification of thecharacter 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 theresulting sequence is everything except the introducing ESCAPE
code. Without the ESCAPE code, the tail is clear text, and can beused as a string-type argument.
The designating tail in the quoted argument to Land R must startwith a legal first intermediate as noted in either of the twotables 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 ina 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
12345Digital 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 thecategorization 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 tobesupportedin all ReGIS implementations.
The indicateddesignating tails are the column three tails, and are thepreferred 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 NRCSDEC Swedish NRCS
DEC French-Canadian NRCSDEC 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 theapproved 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 Kanji
DEC Kanji
JIS Kanji
JIS 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

Page 8-86

The default state of the ReGIS character set table shallspecified by the command

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 theright 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 softwareinterrogate 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

ReportQuoted 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 argumentscommand in Base ReGIS.
8.5.7.3

tostringarguments

totheOptions
R(M(x»- Report Macrograph state

The contents of an individual macrograph is reported back to thecontrolling program by specifying the M option to the R commandwith a suboption keyletter which is the same as the name of thedesired macrograph.
The format of the report is@-<name><string>@;
which parallels the format of the macrograph definition, with
substitution of an equal sign (-) for the colon (:).

the

In some systems, unrestricted allowanGeforreportingofmacrograph 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 someother printing character. This allows the user to verify thelength 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

returnedbyspecifying

which returns a quoted string of the form"<free>,<total>"
where <free> is the minimum guaranteed amount of space,incharacters, still available for macrograph storage, and <total> isthe amount of space, in characters, allocated by the device formacrograph storage.
It is not required that "<free>" be accurate
to the character count level, as long as its value represents alower 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 positionintheimposedcoordinate 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 thedevice'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

commandare

All devices must return a report for every option keyletter in theargument stream. Some forms of the report command define a reportfor every suboption letter as well, as is the case with macrographreports.
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 notnecessary or easily supported. Software to convert ReGIS files tosome other graphic form,
for example, might nothave
anidentifiable return path for reports.
Some devices are meant tobe 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,itclearly cannot be supported in all environments. Lack of support
for Reports in such environments does not constitute a failure toconform 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 bytheir edges. The command colors in only and entirely, subject toarea 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

toNumeric 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 atcommand level, and cause that area to be executed as a filledarea.
Each P, C, or V option to the F command takes
whateversubarguments' that would apply at the command level to define ashape and use that same argument in the context of executing thefigure 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 incontexts where they make sense, as described in later
sections.

c.

Allowable arguments for V, P,
andposition specifiers and pixel vectors.

Digital Internal Use OnlyC

arebracketed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 positionarguments 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 automaticallythe first vertex of the defined polygon. If the current drawing
position is meant to be that vertex, then an option specifier suchas V[] (the empty brackets implying current position) must be thefirst executed position.
The termination (closure) of the Fillcommand will close the polygon to this point.
More explicit
perhaps,isthe form V(B)(with a matching V(E) at thetermination) 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 usefulhere).
Each device has some implementation limit on the number ofvertices 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 thatcertain other implementation dependencies with regard to curveinterpolation (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 isclosed and filled as if it had been
terminatedattheimplementation limit.
The remaining elements in the fill specification will be ignored.
No further drawing will be attempted until terminating rightparenthesis of the Fill option list is encounteredorasynchronizing action is executed.
Polygon fill must accommodate non-convex and self-interse·cting
polygons. The interior of a polygon, that is, that area filled asa result of the polygon definition, is defined by the "even-odd
rule," as follows.
From any given point not on an edge of thedefined polygon, consider a ray beginning at that point andextending 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 thepolygon. If the ray intersects an even number of edges, the point
is outside the defined polygon. Intersection of the ray with avertex point or complete edge of the polygon provides information
useful to resolve the even-odd rule only if the positions ofvertexes 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 andthe exterior of simple polygons, and also nested polygons, as may
be described by the use of F(F), (a ReGIS Open extension forfilling 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 ofcompatibility with older devices that do not implement the Fcommand, 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 positionarguments may be passed into the polygon fill process by pushingthem on the stack and popping them inside the fill process, andthat position arguments may be passed out of the polygon fillprocess by pushing them inside and popping them after the Fill iscomplete.
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 Fcommand 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 disconnectedstart condition on an open curve interpolation, the filling
proceeds as if consecutive vertices had been connected by straightlines, 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 andcircle 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 thepolygon filling process if the device must save them to computethe 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 theconstraints for such curves defined in the section on the Curvecommand.
For such curves, the current position at the beginningof open curve interpolation does not generate any vertices, buthelps 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
specifiedpoints 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 ofintermediate points per specified curve segment.
In order to connect different types of open figures, such as V andC(A) sequences,
it is sometimes necessary to use the P option toreset the current drawing position. Repositions via P may also beneeded 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 isdrawn 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 thetime it is encountered, rather than at polygon execution time, isthe 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 productclassification.
ReGIS devices that support the Raster Extensions
use the interior style set by the area texture argument to theW(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 tofill 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(orexternal
resynchronization
occurs)beforetheterminatingrightparenthesis, 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 notcommon to all devices.
This sectionisanillustrative
presentation to follow for extending ReGIS to device capabilities
not described here. The case of raster CRT devices is covered insome detail to fully illustrate the process of extending ReGIS.
8.6.1

DIMENSIONAL DISPLAYS"Dimensional displays" refers to the class of graphics devices inwhich the physical size of pixels has a repeatable meaning andallows the user a variety of pixel sizes.
Examples of suchdevices 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 todetermine the size of paper needed to draw the image.
The unitsof the physical measure should be optionally selectable by theuser, with the metric system being a likely default.
These devices also will generally allow (and need)
the width ofline 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 thepens represent the foreground colors. Monochrome devices often
have the ability to show varying intensity levels of light, calledgray 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 ofcolor and gray scale in a simple manner for simple devices,butstill .has full access to the broad spectrum of attributes of themost capable of the devices.
a.

Each pixel has associated with it a foreground and abackground"intensity"
attribute
which
are
user
controllable. The differentiation between foreground andbackground is most clear in the case of the plotter, andmay 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, thethree complementary colors and the black and white
intensity values.
Mappings between gray scale and color should follow theconventions 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 luminancelevel
transformation
usedin
the North American
television industry (NTSC color standard). The NTSC RGB
to luminance equation isY - 0.S9*G + 0.30*R + 0.11*B
where Y is the luminance value, and G, R, and B are thegreen,
red, and blue components of the color drive,
respectively. When normalized to the range 0 to 7,
theequation becomesI - 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 EXTENSIONc.

Page 8-97

For devices having a full range of color capability, theHue-Lightness-saturation system of color definition isadopted.
In summary, this system requires three possibly
floating point numbers to be used in defining a specificintensity 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, andSaturation (S) - expressed as a percentage of the
fully saturated hue.

The intensity parameter may be applied independently to theforeground 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 agraphics device:color by index, and color by value. Color byindex is often used in multiplane bit map displays, or in
hard-copy devices whose pens are selected by number. Color byvalue is used by implementations which have limited knowledge ofthe 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
byuser 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 fromindex 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 theimplementation. Colors by index may then be executed into thedisplay medium directly.
Color by value specifications arereferenced against the index to color translation hardware(orsoftware/firmware
translationtable) 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 besearched to find the closest available color or
intensity
specifier.
The "closest match" indicates the index value to beused.
In monochrome systems, this "closest match" decoding isfairly 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 toapproximate this request.
If only shades of blue and green areavailable, 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 thosecolors might be used. The approach to be taken in such cases isdevice and device class dependent.
In general, specification by index is implemented in ReGIS by
form

the

I<index>where I is the suboption identifier for intensity for both the
Screen command, where it sets the background color, and for thewrite attributes command, where it sets the foreground.
The rangeof values for. <index> 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-zeroindex 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 ofbounds 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 indicesin the range 0 to 7, as noted in the example table above. Mapping
into these three planes by accepting only the low three bits ofvalues greater than 7 is acceptable, though collisions between thewrapped 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 oneof the loaded pens.
8.6.2.2.2

Color by Value

Specification of color by value in ReGIS is more complex thancolor 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(H<ang>L<pct>S<pct»where I is the option to Screen and Write attributes
commands as noted above, and H, L, and S are the HLS
components noted earlier; <ang> is expressed in degrees,o to 360; and <pct> 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 (oneparenthesized range), and RGB and HLS color specifiers must not bemixed in the same suboption.
RGB specifiers must notbequantified, 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 isquantified, L defaults to 50.

notspecified

or

not

b.

If H is specified and quantified, and S is notor 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.

specifiedThis rule will allow for extensions to thecolor
specificationalphabet
bystandardizing
asyetunspecified
suboption
letters;
the"noaction"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, asin specifying plane-by-plane bit map contents.
Specification byvalue provides the greater degree of transportability where thegoal is to differentiate information and where the exact mappingof device capabilities is not known beforehand.
8.6.3

TEXT ATTRIBUTES

Text attributes include a wide variety of features associated withthe presentation of textual characters, including (but not limitedto) 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 angularcharacter 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).

momDDmoTM

Digital Internal Use Only

width

Futura,

and

and

so

Page 8-101

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONReGIS can be extended to support such features in extension sets.
The user should recognize that the degree to which a specificdevice supports these characteristics is extremely broad ,and istherefore 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 hypotheticalwhich 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
parallelogrammeasured
relative' tothebaseline
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

parallelograminEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.6.4

Page 8-102

AREA ATTRIBUTESThis 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 andintensity 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 sequenceof vectors or a closed curve, or by a combination ofconnected 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 torepresentdata
asa "histogram" image.
The second casecorresponds to the common concept of bounded surface.
The thirdcase corresponds to after-the-fact coloring in of areas notnecessarily bounded by a single command.
8.6.5

DYNAMIC ATTRIBUTESThe area of dynamic attributes covers a broad spectrum of features
which are illustrated at one extreme by "blinking" attributes andat 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 isinterpreted 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. Allcommands 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 ofwhich are applicable to raster technology, but which are not partof the required raster set.
The additional capabilities addressed here include:a.

Background and foreground gray scale and color
attributes,b.

Image dependent
other
extendederase),c.

Area attributes for bounded and unbounded areas, andd.

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 rastercommands modify or extend these base commands.
Defaults for suchnew elements approximate as closely as possible the effects thatwould be achieved if the extension were not present.
The original intent of ReGIS Raster Extensions was to capture thecapabilities found in most raster video devices.
Since theoriginal 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 limitationsof 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 theintroduction of a time base for ReGIS execution.
8.7.1.1

Position Arguments

There is no significance to the presence of a bracketed positionargument 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

inarguments

Options
S(A[][]) - Screen Address definition

Display address definition in Raster Extensions works as it doesin 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 fromthe default foreground color or gray value.
Equivalent
explicitcommand: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 fromthe default background color or gray value.
Equivalent explicit command:
typically, W(I<n»,ngreater than 0; alternatively, W(I«default color spec»)mamaomD™

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONd.

Page 8-105

The foreground mask is set to all planes enabled.
Equivalent explicit command:W(F<n»
withwith m the number of planes in the devicee.

n-(2**m)-1,

Shading state is set to disabled.
Equivalent explicit command:

W(SO)

f.

The text attribute set is set to restore individual
defaults if T(E) is encountered before T(B).

g.

Character baseline angle is set to horizontal.
Equivalent explicit command:

h.

T(DO)

Character unit cell and display cell sizes are set to thedevice dependent standard size 1.
Equivalent explicit command:
T(S[]U[]),size 1 contents of the bracketed extents

i.

T(IO)

T(AO)

The alphabet selected for loading is set tothe first loadable alphabet.
Equivalent explicit command:

1.

The character stores are not affected.

2.

Character set names, asaffected.
S(I<n»
Or
Intensity

S(I«colorsetalphabet

1,

executing

an

L(A1)

The following states and stores are NOT AFFECTED by
SeA):

8.7.1.4.2

standard

The alphabet selected for drawing is set to alphabet O.
Equivalent explicit command:

k.

with

Character slant (italic) angle is set to rectilinear.
Equivalent explicit command:

j.

text

by

L(A'<name>'),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 aplotting device. This parameter may be changed during the processof 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,theaction of ascreen 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<n»specifier»), and for the comments on handling values of <n> thatexceed 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<n»must
This- TimerThis option connects timing information to graphical display. The
numeric value <n> 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 thetransmission latency path. in other words, at the device.
The
number of ticks <n> is measured from the time the S(T<n» isinterpreted by the device. This is not necessarily the time thecommand is sent or received.
Note that S(T<n» commands may becascaded, as S(T60,T60,T60), for extended pauses.
The amount of time represented by each increment of <n> is device
dependent, but it should be in the tens of milliseconds range.
For video devices, <n> 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 valuesof <n> as large as 2000. At 60 ticks per second, this allows forpauses 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 positionargument 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 stringarguments in the writing Attributes Extensions for Raster ReGIS.
8.7.2.4

Options8.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 thepresence 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 tocomplement 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, andErase each pixel to the background specifier if W(NO) is in force,
or write each pixel with the foreground specifier if W(N1)
is inforce.
8.7.2.4.1.3

W(N<O or 1»- Negate writing

When W(N1) is in effect, the bitwise sense of the linear or area
pattern is inverted (complemented) during write operations. In
raster devices which use dot matrices for character cells, the bit
patterns of these. cells are inverted. When W(NO) is in effect,
the patterns are used normally. The default value, NO,
is setwhen a valid S(A) is executed.

momDomD™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.7.2.4.1.4

Page 8-108

W(R) - Replace Writing

When writing, replace the current image by input image. Blanks ina dashed line pattern or zeros in a pattern cell erase (to thebackground specifier defined by S (I» the area overwritten on thescreen. Ones in the pattern write the foreground specifier.
8.7.2.4.1.5

W(V) - oVerlay Writing

When writing, overlay ("OR") input onto current image. Blanks ina dashed line pattern or zeros in a pattern cell have no effect on
the area overwritten. Overlay is the intended default writingmode in all extended ReGIS implementations, and is set when avalid S(A) is executed.
Four of the writing modes (C = complement, E = erase, R = replace,and V = overlay)
are mutually exclusive, each overriding allothers; the last one specified takes effect. The fifth mode,N =negate, may be used in combination with other modes.
Figure 8-6 shows the effects of each of the writing modes.
Ineach case, the solid block was written first, and the patterned
block was written over it in the indicated mode.

V(NO)

Ij/(V)I,II(R)

Ij/<C)VOU)

Figure 8-6: Writing ModesmDmDomDTM

Digital Internal Use Only... (E)Page 8-109

EL-00070-08
31-Mar-1988.VSRM - ReGIS GRAPHICS EXTENSION
8.7.2.4.2

Non-writing Mode Options

8.7.2.4.2.1

W(F<integer»- Foreground mask

Define the foreground field specifier. The bit encoded integer
argument to F defines a mask which is used to enable all plane
write and erase operations. ' Only planes represented by a 1 bit in
the mask can be written.
Ordering of bit assignments and bit
planes affected is implementation dependent, but the numbering ofbit planes for purposes of write masking and output mapping(S(M ... » must be consistent with each other. The intent of thiscommand is solely to limit write access to a subset of planes in a
multiplane device. It does not affect plane readback (S(H»orthose planes which can be moved by screen scrolling (S[]). The
default value for this option is "all planes enabled," and thisdefault is set when any valid S(A) is executed.
8.7.2.4.2.2

W(I<n»
orIntensity

W(I<colorspecifier»foreground

Refer to the notes under the Screen command S(I) and subheading
8.6.2 Gray Scale and Color 'for details of <n> and <color
specifier>. The default value for the foreground specifier isdevice dependent, but must be visible and distinguishable from thedefault 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<suboption><arguments»- ShadingShading is an area fill operation which is executed in conjunction
with the Vector and Curve drawing commands. As indicated by
Figure 8-7, shading is executed to a horizontal reference line .

shadingreference····• I-,..•......................_•...... _................... I~

Figure 8-7: Selecting a Shading Reference Line

~DmDDmDTM

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-110

Shading is different from both fill and flood.
Fill colors in abounded area as it is defined.
Flood colors in a bounded area
after it is drawn, and is not supported in Raster ReGIS.
Shadingcolors in a solid or textured area that is not explicitly bounded.
shading may be used to execute a fill-like function,
but theburden of defining and controlling the area so filled is on theapplication using ReGIS.
A bracketed position specifier defines the location to whichshading will be executed.
In Raster ReGIS, it is possible toshade only to a horizontal line, and hence only the Y part of thisspecifier is significant. Open Extensions to ReGIS allow shading
to a vertical line or to a point, so that either or both parts ofthespecifier may be significant.
This mode selection iscontrolled by suboptions to this option. Pixel vector specifiers
cannot be used as addresses for shading reference definition, as
the numeric arguments to the S option have a different meaning.
If this 'argument is not specified, the current drawing position isassumed.
A numeric argument to the S option is interpreted as a boolean
switch.
A
non-zero value causes shading to take on thecharacteristics of the currently specified linear pattern. A zero
value turns shading off.
Shading is, by definition, an area
operation. Use of a linear pattern to shade in an area requires
adding a second dimension to the linear pattern. Shading is
intended to be implemented by drawing lines from each distinct
point on the drawing path, as described by Vector and Curvecommands, to the shading reference.
It is these lines, not thepath line, which must take on the shading pattern.
Furthermore,these shading lines should be registered so that the shading
pattern is independent of the defining path.
Figure 8-7 shows how
the shading pattern reflects a vertical orientation of the chosenline pattern. Note how the vertical line next to the shaded area
matches the pattern of the shaded area.
A single quoted character to the S option causes the shading
pattern to be taken from the two dimensional pattern specified by
the cell for that character from the alphabet currently selectedby the A option to the T (text) command. The Text unit cell size
currently in effect specifies the granularity of the shading
pattern as it is applied to shading.
Any Text option which
affects the cell unit size is reflected in this granularity.
These are T(U[]), T(M[]), T(H<n», and T(S<n», but not T(S[]).
T(S[]) is excluded because it sets only the display cell, not theunit cell size. The text pattern is referenced to a known pointin the display so that patterns of adjacent shaded areas match
where the areas abut. To facilitate the development of patterns
that match reliably when replicated left to right and top tobottom, only the top square part of the storage cell is applied ina shading context. Thus crosshatching patterns may be definedwithout consideration being given to the storage cell aspect ratioof the characters being used for shading.

Digital Internal Use Only

EL-00070-08.
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

page 8-111

When shading is enabled, with either a linear or a cellularpattern, certain state variables are "snapshot." These variables
are used with the values they had at the time the shading was
enabled,regardless of how these values change during the time
shading remains enabled.
If shading is re-enabled without being disabled, then a newsnapshot is taken of the state, and the old snapshot state is
lost. This allows shading state to be set up and "locked," while
the state variables for text are changed to allow interspersed
execution of shaded drawing and normal text, such as for drawing
labeled bar graphs. Execution of text is not affected by enabling
the shading state. Even if shading is disabled,
the snapshot
established by its enabling remains in effect for use by polygon
fill through the F command.
The following states are snapshot for use by shading whenis enabled:a.

Linear pattern, set by W(P<n»b.

Linear pattern multiplier, set by W(P(M<n»)c.

Text alphabet selection, set by T(A<n»d.

Text size, as set by any
T(U[]), or T(M[])

ofT(S<n»,

T(H<n»,

shading

T(S[]),

The following two states are NOT part of the snapshot, and if they
are changed while shading is enabled, they will be appropriately
applied in subsequent path-oriented actions:1.

writing mode, as set by any of WeE, V, R, C, N, W)

2.

writing colors, as set by either of WeI) or SCI)

Shading state is cleared (disabled) on any occurrence of W(S~),
SeE), or a valid SeA).
If shading is enabled as part of a W
option to a drawing command, then the shading state is cleared
when the drawing command is terminated by encountering a command
keyletter at command level, or by synchronization.

Digital Internal Use OnlyPage 8-112

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.7.3

TEXT INSTRUCTION

Extensions for graphics text include user
parameters and user definable alphabets.
8.7.3.1

definablecharacter

Position Arguments

Position arguments to the Text command in Raster ReGIS are treatedas character escapement values, just as in Base ReGIS.
8.7.3.2

Numeric Arguments

Numeric arguments are treated as character oriented pixel vector
operations in Raster ReGIS, just as in the Base, but differ fromthe Base in regard to the effect of option extensions.
In Raster
ReGIS, a character and character string orientation option ispresent. The direction of the pixel vector operations in Base
Raster ReGIS is referenced against this string direction, notagainst the absolute horizontal.
Hence, Text pixel
vectordirection 0 is parallel to and in the direction of the characterbaseline, direction 2 is perpendicular the base line (and NOT
affected by the italic angle), direction 1 is forward and up, andso on.
8.7.3.3

Quoted String Arguments

Just as in the ~ase, the text arguments to be displayed are passed
as quoted string arguments,
and the four ASCII control codes(earriage return, line feed, horizontal tab, and backspace) are
interpreted by ReGIS when encountered within quoted strings.
1.

Backspace (BS) moves the drawing position one character
escapement increment backwards, both horizontally andvertically.

2.

Line feed (LF) moves the drawing position one characterheight down, perpendicular to the character baseline; LF
also saves the resulting drawing position for restoration
upon occurrence of a subsequent carriage return in thesame quoted extent.

3.

Carriage return (CR) moves the drawing position back to
the position it had at the start of the current quoted
extent, or to that saved at the most recent LF, whichever
was more recent.

4.

Horizontal tab (HT) moves the drawing position
character increment forward along the baseline.

Digital Internal Use Onlyonepage 8-113

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONReGIS text does not automatically scroll or wrap at screen
borders.
The drawing point advances by. character escapement
increments and abides by the addressing constraints outlined in
the S(A[][]) Screen Address Setup Command description.
An error character will be displayed
occurrences:

for

any

of

the

followinga.

An attempt to print characters from a nonexistent or
undefined character set (f"or example, T(A4)' x', wherealphabet 4 has not yet been defined by an appropriate
L(A4) command).

b.

An attempt to print characters from outside the defined
extentof a character set (for example,
L(A1,E64)
followed by T(A1)'a').

c.

An attempt to print not-yet-defined characterswithin the defined extent of a character set.

from

The error character may be device dependent, and need not be thesame for each error above. Solid block characters or checkerboard
characters are acceptable.
The reverse question mark error
character used in certain text protocols may not be a good choice,as the rotations and transformations allowed in graphics text may
negate the advantages of its otherwise unique shape.
8.7.3.4
8.7.3.4.1

Options
T(A<integer»- select Alphabet <integer>

The default value for <integer>
restored on a valid S(A).

is

zero,

and

this

value

is

If a received value of <integer> exceeds the range implemented ina device, or <integer> 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),<n> isrestricted 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 anumeric on their A-option, the last set selected by T(A) is still
selected.
If the <n> in the last T(A<n» was not 0, then the
suboption is ignored.
Refer to the description under the Load alphabet command forpossible device dependent contents of the non-default alphabets.

momDomo™

Digital Internal Use OnlyPage 8-114

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.7.3.4.2

T(B) - save Text attributes

Start a temporary text attributes range. The state of all Text
option settings, including character set selection and the stateof the in-use character table~ but not including temporary writing
options, are saved on a one-deep text attributes stack, to berestored by an E option in the current or a subsequent Text
commands.
8.7.3.4.3

T(D<ang»- set Text baseline Direction

Orient the baseline of each characterhorizontal.

at

<ang>

degreestotheAn 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 isestablished.
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 thelast T(B), or the defaults if there has been no previous T(B)since power up.
8.7.3.4.5

T(H<number»- set Text HeightSet the character height to be half of <number> times theleaving
the character width
standard-size-1
cellheight,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 <number> inthe range of 1 to 25; conforming software will not use values
outsideofthis range.
Values larger than 16 should be'implemented by use of the T(S[]) construct.
This state has nodefault value, as the default for T(S) applies.
8.7.3.4.6

T(I<ang»- set Text Italic slant

Slant subsequent characters by <ang> degrees, referenced from theperpendicular 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 <ang> returns the specifier to rectilinear. Resolution ofitalic 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 stateis 0 degrees (upright); this default is restored when a valid SeA)
is executed.
8.7.3.4.7

T(M[<hint,vint>]) - set Text pixel MultiplierMultiply 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 thestandard-size-1
unit
cell
(character
image)
andthestandard-size-1 display cell (character image plus intercharacterbackground) are scaled according to these multipliers.
If either<hint> or <vint> is missing, that value is interpreted as whatevervalue 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 sizeand cell display size, T(U) and T(S), respectiv~ly.
8.7.3.4.8

T(S[<width,height>]) - set Text display cell Size

Set display
coordinates,
effect.

cell size inthecurrent
screenaddressing
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 acharacter. It comprises the unit cell (see T(U[]), below) andwhatever background area is required to achieve the extent definedas 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<width> or <height> is missing, the missing values default to thevalues that correspond to the (device dependent) standard size 1,
as would be set by T(Sl). Maximum values of <width> and <height>
are determined by the arithmetic capacity of the ReGIS device andthe 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<number»- set standard Text display cell Size

Use one of the "standard character sizes".
Set the character
width to be <number> times standard size 1 character width, andthe height to be three-quarters of <number> times character heightstandard size 1.
This element also sets a device dependent
character escapement value; this es~apement is relative to thecharacter 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 befractional, but may be truncated to the next lower integer if theimplementor chooses.
Devices must accept values for <number> inthe range of 0 to 16; conforming software will not use values
outside of this range.
A value of zero for <number> may havespecial, device dependent meaning. Values larger than 16 shouldbe implemented by use of the T(S[) construct.
8.7.3.4.10

T(U[<width,height») - set Text Unit cell size

Set unit cell size in the current screen addressing
but oriented with respect to any T(D) in effect.

coordinates,

This is a non-positional use of bracketed extents. Unit size is
the size to which the character image is meant to be set.
Allowable fallback is to scale the unit cell down to the next
executable size smaller than that specified. If the unit cellsize specified is bigger in either dimension than the display
cell, the unit cell is truncated to the borders of the display
cell. Refer to "further notes," below, for more on display andunit cells. If either <width> or <height> 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 <width> and <height> 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 cellsize is device dependent, and the default is restored on executionof 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, theunit 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 thanthe display cell, only the upper left portion of the character
image is drawn; that is, the unit cell is-clipped to fit in thedisplay cell.

Digital Internal Use Only

. Page 8-117

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONIn the computational limit (that is, where the granularity ofscalingarithmeticiscontinuous and not bound by pixel
increments), the display cell and the unit cell should map toidentical sizes. An acceptable fallback for less capable systems
restricts Unit cell sizes to integral multiples of the characterstorage cell defined for the character set by Load Patterncommand, 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 thetarget size is only slightly less than the closest realizablesize, and if the resulting unit cell would not exceed the displaycell.
The display cell must be executed to within one physicalpixel of its specified size.
The L command defines bit patterns; these are invoked by the Tcommand 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 forfurther information.
Different alphabets may be simultaneously
and execution.
.

availableforloading~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 forloading.
The format of the report is (A'<name>') where <name> isthe name provided in the L(A'<name>') 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~tealphabets are selected for drawing using the "A" option with anumeric subargument in the text instruction.
Thealphabet
numbered 0 may not be modified, though the defined font is
implementation dependent.
ReGIS allows the non-Base alphabets to be loadable. If the Loadcharacter set command is implemented, then provision for at least
three loadable alphabets must be made.
Loadable alphabets andnametables, as defined by L(A<n>"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 thenfollowed 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; thefirst parameter is the top row of the character. Parameters arehexadecimal 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 iscleared 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 aredevicedependent.
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 af). 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 Loadcommand because of the nonstandard nature of thenumeric arguments that form the bulk of the Loadcommand format.

Digital Internal Use OnlyPage 8-120

EL-OO·070·-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSIONGroups of hex digits, each of which specify the contents of one
scan line of the character cell, are separated by commas, or byexceeding 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 anintervening 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, moresignificant bits leftmost in the specifier string.
a.

If more hex digits are specified than are needed for asingle line of the mask, the extra digits are used on thenext line.

b.

However, if the width of the character cell is not a
multiple of four,
any unneeded, low order bits of thelast 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.

theformatoftheraster-oriented

cell origin
0
0
0
0
0
0
0
0
0
0

0 0 0 0 0 0 -first scan
1 1 1 1 1 1
0 0 0 0 0 0
0 0 0 0 0 0
1 1 1 1 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
o 0 0 0 0 0 0 -last scan

0
1
1
1
1
1
1
1
0

~~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 characterset selected for storage. It will be the same character used forrecovery of the loaded cell in the Text and write attributes
Shading commands.
If more than one character is present in astring, the first is used, and the rest are discarded.
Separatecharacter arguments are required to specify multiple mappings.
8.7.5.4
8.7.5.4.1

Options
L(A<integer»- select Loading Alphabet

Select alphabet set <integer> 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) andT(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 <integer> exceeds theimplementation limit, the value is ignored and the alphabet
selected for loading is the same as the one selected before theout of range value was received.
8.7.5.4.2

L(A"<name>") - associate <name> with Alphabet

Associate <name>, which may be up to ten characters long, with thecharacter set currently selected for loading. Both <name> and<integer> may be specified in the same option, but if <name> is
specified first, it is associated with the currently selected set,
not necessarily the one specified by <integer>.
.
8.7.5.4.3

L(E<integer»- specify character set Extent

The <integer> parameter determines the greatest
numberofcharacters 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 (codevalue 2/0), and comprises <integer> characters. The ninety-fifthcharacter position is code 7/14, the ninety-sixth is 7/15,
theninety-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 stringarguments 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 Onlyis96

characters.

EL-00070-08
VSRM - ReGIS

8.8

G~PHICS

31-Mar-1988
EXTENSION

Page 8-122

OPEN EXTENSIONS TO ReGISThe following specifies functions of ReGIS which have been used in
product
implementations
orarestandardizedforfutureimplementations, but are not required for conformance with any
particular
level
of
ReGIS.
Extensions related to device
technology not necessarily universal to devices which use thattechnology
are described, as well as extensions which arepotentially 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 caseof 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.

andA displayed entity has a fixed relationship to theaddress at which it is written.
A line drawn fromlocation [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 issimilar to drawing a picture on graph paper and viewing
it through a rectangular window that can expose all orpart of the graph paper behind it. Any new information
is written on the graph.paper, and the lines on the graphpaper 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 theviewing
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 thedecoupling 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

This follows the addressing scheme
of
most
text
terminals.
As data are entered at the bottom, forexample, on line 24, old data move up through the address
space to line 1 and off the top.
Line 1 is always at thetop, and line 24 is always at the bottom.
Recovery ofdata moved off the display by scrolling in the opposite
direction cannot be guaranteed.
TM
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 theother.
Neither model is required; devices may elect to not movedata 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, butsince 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 byreversing the scrolling, since the data may have been moved off
and erased from the display medium.
If data movement is supported in a ReGIS implementation, thechoice of models .used is device dependent.
If the hardware can
support both models, the model in effect is chosen by the S(D)
option, 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 torelative 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.

isBlink 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 thefirst coordinate of the S(A[][]) to the upper left handcorner of the display.

f.

Data movement control isvalue.

g.

set

its

devicedependent

Equivalent explicit command:
S(D1),
supported; else S(DO), windowing)

scrolling

Cursor visibility is set to ON, and theare selected.

default

Equivalent explicit command:
h.

to

(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
cursorrepresentations,
simultaneously different cursor representations for output
input tracking indicators.

the
and
and

Cursor Capabilities are Guidelines
The display actions of cursors should be tailoredto 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, thedisplay 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<n») allows for selection among various
styles of output cursor. The value of <n> selects among
predefined cursor styles. A value of zero or one for <n>selects a diamond shaped cursor with a small crosshair
inscribed. This is the default cursor shape, and isselected 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 <n> selects a full screen
cross hair cursor. This cursor is composed of two lines,
one horizontal, one vertical, that intersect at thedrawing position.

b.

Suboption S(C(I<n») allows for selection among various
styles of input cursor. The value of <n> selects among
predefined cursor styles. A value of zero or 1 for <n>selects a the diamond cursor identical to the diamond
output cursor. This too is the default cursor, and isselected after a valid S(A) has been executed. A valueof 2 for <n> selects a full screen cross hair cursor,
again identical to the related output cursor. A value of,3 for <n> 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)) andS(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

mDmDDmoTM

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,thetwo 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 isthe distance, in character cell pixels, from the or1g1nof the character cell to the point that will be tracked
for output or input. This distance is always relative tothe 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 theoverlaid 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
asdescribed 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 rubberband 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<integer»- data movement control

For devices supporting both data movement models,the D option
switches between them.
. The <integer> 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, andis most useful in conjunction with the Screen Scaling option,
S(S), below.
An <integer> argument of 1 indicates that thescrolling model should be used, where the address space and thevisible display are coupled, and the data change addresses as they
move about the screen.
If neither model is implemented,
theoption 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 theretransmission, 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 specifierarguments which specify two opposite corners of a rectangularsubset of the screen area. These position specifiers delimit thearea 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. Numericarguments 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 isredirected.
The values specified in the brackets are notnecessarily 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 amountindicated 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 theprimary meaning of "execute dump."
The amount of graphic information ~etransmitted may, at theimplementor's option, be limited by the visibility of the image on
the primary presentation medium. For example, if, in a two planevideo 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,themethodandllmitations chosen must be clearly outlined in the productdocumentation.

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.8.1.4.5

Page 8-128

S(M<index>«color specifier») - modify the color Map

This command modifies the output map for devices with modifiable
output maps.
Value <index> specifies a device index, and <color
specifier> 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 <index> is the same as for the indexed
values to the foreground and background color index specifiers,
W(I) and S(I).
If <index> exceeds the number of entries in theselected map,
it is mapped into the realized range as are theforeground and background indexes.
Suboption A<n> indicates which map is to be loaded for devices
which have multiple maps.
If A is not present, the primary map isused.
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 theterminating H)" is encountered, but the implementation may batch aseries of <index>«color specifier» sets and load all specified
entries at once to reduce undesired image "staging" due topiecemeal 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<n>[][])
Rectangle

defineandenable/disable

a

clip

A clip rectangle is a region of the display that can be used tolimit 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 areparallel to the ReGIS coordinate axes.
These
are
positional specifiers, and may use relative addressing.
Both corners must be specified.
If only one specifier ispresent, 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 <n> is equal to zero,then clipping is disabled, and drawing actions can takeplace everywhere in the display.
If <n> is greater thanmDmDomD

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 thespecified 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 <n> less than zero indicatethat drawing activity is limited to the exterior of theclip rectangle. This action is called "shielding." Theexterior 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 enabledstate.
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 thestate 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
inthecoordinate 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 moveout 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 lastvalid S(A) or the entire display surface, if no S(A) has
yet been encountered.
The default clip
stateisdisabled, allowing writing to the entire display surface.
Both defaults are restored by valid S(A) commands.

8.8.1.4.7

S(S<n>«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,
thesubargument <n> is treated as a multiplicative scale factor foreach pixel in the display. When the S(S<n» form is used, thedisplay is scaled isotropically. There are two suboptions (X<n»and (Y<n» for scaling independently in X and Y.
The display canbe rescaled only byrespecifying a scale factor of 1. This option
is most useful with the windowing data movement model describedabove~The S(S) option causes the display medium (the bit map,

mDmDomo™

Digital Internal Use Only

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-130

for example) to become bigger than the display surface. S(S) andS[] then combine to move a small window through a large display
space.
Negative values for scaling factors are not allowed.
A valuewhich exceeds the implementation limit in a device is mapped tothe implementation limit. The default value for scaling factors
is 1, and is restored by the execution of a valid S(A).
8.8.1.4.8

S(W«suboptions») - temporary write options

This command sets temporary writing controls just as in the Vector
command.
The only useful temporary writing control within the
Screen command is S(W(M», which sets the pixel vector multiplier.
The pixel vector multiplier affects the granularity of the display
motion generated by S<pixel vector> 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 INSTRUCTIONp(P<n»- select drawing surface

Some devices have multiple separate drawing surfaces.
Programs
may select among these separate surfaces with the P option to the
P command, P(P<n». The value of .<n> 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.

options

8.8.3.1- Alternate (blink)W(A<n»

extensions

to

the

write

attributes

This option enables the blink (or "alternate") attribute.
Forvalues of <n> greater than zero, set the blink attribute on all
foreground data drawn until blink is disabled. Application of theblink attribute is disabled by W(AO), S(E), or valid S(A).
Clearing the subsequent application of the blink attribute byW(AO) does not change the blinking status of any displayedelements, 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.
Thealternation may be between foreground and background intensities,
or between foreground and some other device-dependent setting.
Interaction of the blink attribute with Complement and otherimage-content dependent writing modes is device dependent.
Blinkfrequency and duty cycle are device dependent.
8.8.3.2

W(L<n»- Line width control

This option controls the width or weight of lines and curves. The
value <n> is a multiplier of the device's nominal line width.
Nominal line width is device dependent, and is normally thedevice'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 awidth 50% greater than nominal.
Devices that· do not support
fractions may truncate to the next lower integer or round to thenearest 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
acceptssubarguments
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 verticalline, or to a point.
The form W(S(Y) •.• ) indicates that theshading takes place to a horizontal reference line; this is thedefault.
See Figure 7. The form W(S(X) ... ) indicates that theshading 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 acountering (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 anumeric index and suboptions P<j> and N<k>.
The form of the
instruction extension is W(W<i>(P<j> N<k»).
The values <i>, <j>,and <k> are indic~s for memory contents,
typically bit planevalues.
If a pixel to be written has value <i> before the write
operation, it is written to value <j> if the next value from thepattern register,area pattern, or character cell is a 1, or tovalue <k> 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

8.8.4

1
1
1

[This section became blank as a result of thecharacter support to Base ReGIS.]TEXT INSTRUCTION

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 adecimal digit string representing the error code, and m is adecimal digit string returning supplementary information. Except
where noted below, this supplementary information is the decimalequivalent of the character code of the character flagged as
causing the error. When it cannot be determined exactly whatcaused 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 issynchronized 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

unexpectedcharacterwas>

2 extra option coordinates:
A command option that
supports paired bracketed, extents (such as S(H[ ][]) orS(A[)[ ])) contained more than two coordinate pairs.
Thesupplementary 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 defaultalphabet (alphabet 0) may not be modified.

b.

In the syntax L[h,w], theimplementation limit.

heightDigital Internal Use Only"h"exceededtheEL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-136c.

In the syntax L[h,w],
implementation limit.

the

width

"w"

exceededthed.

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<n»- Input processing modeThis extension selects between separate or overlapped input andoutput processing. R(IO) selects "one-shot" mode.
In this mode,
which is the default mode and is set by executing a valid S(A),processing of ReGIS output is suspended by the device whileinteractive input (R(P(I»is pending.
Furthermore,
input data
can be transmitted by the device only once per R(P) or R(P(I»command.
R(I1) selects "multiple input" mode.
In this mode, the device canreport positions with or without receipt of R(P) or R(P(I»commands. The device reports on operator actions on the input
devices,
typically a mouse or graphics tablet. While in multiple
input mode, the device can continue to execute output commands asreceived.
The commands R(IO) or S(A) exit multiple input mode.
8.8.5.3

R(P(I»- Report Position Interactive

This extension differs from the Report Position command in theBase ReGIS in that it enables local interaction with an input
device. This command puts the ReGIS device into input mode.
Inthis mode an input device, such as a data tablet, mouse, or cursor
keys cause an echoing cursor to be shown on the display surface.
This echo tracks the input device, and generates a position reportwhen the user generates a break condition. This break is usuallyeffected by enabling an auxiliary control,
such as a control
button, associated with the device.

momoomD™

Digita1 Interna1 UseOn1y

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

Page 8-137

There are three responses allowed to the R(P(I)) command:
1.

The normal bracketed coordinate specifier, just as fromthe normal R(P) command
This is the result from a
non-interactive device.

2.

An empty report - Only the terminating CR is sent.
This
is in response to a special break condition set by theuser, indicating that NO INPUT was to be returned.

3.

A normal bracketed response preceded by a break conditionindicator - This indicator may be a single character code
or a numeric string. This passes more details of the
break condition to the application.

This command is purposely underspecified because of thevariety of input device and input/output device couplings.

mDmoomD™

Digital Internal Use Only.

wideEL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.8.6

Page 8-138

FLOOD/FILL INSTRUCTION

The F1ood/ Fill command, keyletter "F",specifies general area
operations in ReGIS. As was the case with Circles and Curves bothbeing expressed by a single keyletter, Fill and Flood are reallydifferent commands in similar guises. Mixing of options intended
to affect Flood (B) with those intended to affect Fill (P, V, andC) is non-conforming usage, and the effects of such mixing are notstandardized.
Flood "colors in" a bounded area already present in the bit map
with variable pattern or texture. Refer to 8.6.4 Area Attributes
for a discussion of the various area coloring modes.
Flooding is
implemented in devices with read-write display media, such as bit
map raster displays, since the display medium must be interrogatedto discern seed values and boundary values.
Fill defines bounded areas by their edges and colors in only andentirely,
subject to area texture or pattern in effect, the area
(or areas) bounded by the edges presented.
Fill is defined inBase ReGIS, and is extended here.
Implementations which support
the F command may elect to support either Flood or Fill or both attheir option.
8.8.6.1

Position Arguments, Numeric Arguments

A position specifier to the F command, either a bracketed
coordinate specifier or a pixel vector digit,
specifies thelocation of the "seed" pixel from which a Flood is executed.
Theborder of the flooding operation is as determined by the last
previous F(B()) encountered.
If more than one specifier is given,each is executed in turn. The current position does not change as
the result of any flood operations.
8.8.6.2

Quoted String Arguments

There is no meaning assigned to the presence ofarguments in Fill or Flood commands.
8.8.6.3

Options

8.8.6.3.1

Flood

8.8.6.3.1.1

quotedcharacterF(B«suboption») - flood Boundary condition

This option sets Boundary conditions for the definition of theclosed area to be flooded.
If the <suboption> is FO, a flood willbounded by image areas represented by the background.
If it isF1,
the flood is bounded by any foreground value different fromthe seed value, or any foreground if the seed location has the
background
attribute.
If the <suboption> is I<integer> orI«color/intensity spec», the flood is bounded by parts of theimage 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. Thisdefault 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,withanF( •.. 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 describedas two roughly concentric closed curves defining the outer andinner perimeters of the letter shape.
The letter "B" may bedescribed 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 ofthe 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 ofsuch 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 invisibleedge to connect the edge list definitions. The recursion of the F
option need only be one deep because of the interior rules forpolygons. The position of the F option within the F command is
not critical as regards the ordering of the subpolygons. This isbecause of the interior rules and the deferred execution ofpolygons 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 neednot be a separate vertex list for the nested polygons. Multiple
nested polygons using the F( ••. F ... ) option are shown in Figure8-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

CommonF(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<n», which selects a pattern
defined by the linear pattern specifier W(P), or W(S"x"). This istrue even if shading has been subsequently disabled by W(SO).
Shading should be disabled before a flood or fill operation is
initiated.
The currently selected write mode and intensity
specifier are used. These may be changed by the temporary write
options to the Flood command.
The boundary conditions for the flood operation may
in one of three ways:
1.

As a specific attribute condition.

2.

As any change in attribute
location attribute value.

3.

In the single plane system, any change
foreground and the background state.

withrespectbeexpressed

to

the

seed

betweenthe

The flooded area does not include the boundary .. For example, if ared (unfilled) circle is on the display, and the current write
mode is solid green, a flood of the interior of the circle will
leave a. green circle with a red circumference. This allows theedge of other objects to be used as a boundary without modifyingthat other object.
If the area in which the seed location is found is not closed withrespect to the boundary conditions set, the flood will "leak out",
causing a writing action that could cover the entire display.
Note that non-solid vectors written in overlay mode do notnecessarily form closed boundaries.
Areas may have complex boundaries, such as the area between two
concentric circles, or t'he area between bounded figures on a
background.
A boundary need only be connected by diagonally adjacent pixels todefine closure for Floods.

Digital Internal Use Only

EL~00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.9

page 8-143

INSTALLATION ENVIRONMENTS

This section contains an outline
environmental support for ReGIS.

of

the

requirements

for

For the purposes of this section, assume that ReGIS addresses twoenvironments for the application of the graphics instructions:

8.9.1

1.

Descriptor code enveloped in ANSI escape sequencestransmitted on character oriented data paths, or2.

Use in a bounded graphics system.

andANSI ENCODINGThe ReGIS command syntax is specified as if it were a seven bit
encoding. Allowance for an eight bit encoding is an environmental
issue. For example, ReGIS may be encoded into either the left or
right half of an eight bit code table, and only character codes ofthe proper sense could be passed to the parser.
However, ReGIS
shall accept eight bit codes within quoted strings for use asarguments to text-related or text-indexed commands.
For communication to devices or interpreters that accept ReGIS as,perhaps, one of many device syntaxes, ReGIS commands shall be
introduced by a DEC-private parameterized form of the ANSI escapesequences Device Control String (DCS) and terminated the ANSI
escape sequence String Terminator (ST).
For communication to interpreters that accept only ReGIS, such as
dedicated software for ReGIS translation, or that are capable ofidentifying the data syntax in 'a file by other means (such as file
type flagging), ReGIS commands need not be delimited in any way.
The DEC-private parameterized form of Des is
ESC P<n><protocol selector>
where <n> represents an ANSI X3.64-like parameter string encoding
device controls, and the <protocol selector> for ReGIS is lower
case "p".
A ReGIS interpreter must recognize two flags encoded in the firstnumeric parameter <n> 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', thenthe interpreter shall force an environmental resynchronization
before interpreting any following ReGIS instructions. This levelof resynchronization takes place regardless of the previous stateof the interpreter, and returns the interpreter to the highest
command level with no quoted strings or macrograph definitions inprocess. 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', theinterpreter shall process the ReGIS instructions as it otherwise
would, but should also pass along the source ReGIS stream to atext 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 ofsequence strings.

ANSI

escapeAll characters within this sequence following theprotocolselector, up to but not including the string terminator areinterpreted as ReGIS instructions.
Although an entire screen
image does not have to be included in one invocation of thesesequences, individual instructions should not be broken up acrossescape sequence boundaries.
Some implementations may requirethat
leaving
ReGIS
andre-entering via ST and DCS cause the parser to resynchronize, as
if a semicolon were encountered within the instruction stream oras 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, andreturn to ReGIS mode after such execution. Other devices use theoccurrence of any escape code, code position 1/11 or 8/* or 9/*,as reason to exit the ReGIS mode. Such use may be necessary tosupport non-conforming software, but such use is deprecated bythis standard.

Digital Internal Use OnlyPage 8-145

EL-00070-08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION
8.9.2

BOUNDED SYSTEMSReGIS is also intended for use in bounded systems even if noremote communications link is involved. Therefore, images definedin a bounded system may be used in distributed systems and viceversa.
In the realm of such bounded systems, ReGIS should
for the following purposes:beconsidereda.

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 ofthese sources to the native graphics hardware instructions of thesystem.

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, andoptions.

of argument:
parenthesized

Numeric arguments are classified by semantic use,
vector, scalar value, boolean, switch, or other use.
Parenthesized options contain keyletters, eachfollowed by any of the four argument forms.

ofcommandaswhichpixelscanbeIndenting 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 [](forbracketed 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 theconstruct(s) on the left.
Part of this description will be anindication of where that construct is defined and what conformancelevel of ReGIS it applies to. The notation {B} indicates theconstruct is part of the ReGIS Base; {R} indicates the construct
is part of Raster ReGIS, and {OJ indicates the construct is partof Open extensions to ReGIS.
Unless otherwise indicated, allconstructs have the conformance level of their parent construct.

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.10.1Page 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 {OJboolean - 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 {OJdata 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
Ibackground intensity selector {R}nvalue, background index'()
color/intensity specifier
RGBCYMHLSDW(the ReGIS color/intensity alphabet)Mload output color map {OJnvalue, 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 {OJntri-state value: shield, clip, disable[]define clip area (2 needed)S
scale display {OJnvalue, scale factor()
X
scale in X direction
X direction scale factornYscale in Y directionn
Y direction scale factorTsuspend interpretation for a time {R}nvalue, suspension interval
temporary write options
W*[]*Temporary write options apply as they would if set by a W atcommand 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 {OJposition stack push
temporary write options*Temporary write options apply as they would if set by a W atcommand 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 {OJboolean, 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 {OJvalue, 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 multipliervalue, 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 pushdraw to position stack top entry, pop
push empty entry to position stacktemporary write options*Temporary write options apply as they would if set by a W atcommand 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 identifiersave 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 heightselect character slant {R}value, character slant angle
select character mask pixel multiplier {R}pixel mask multiplierset character drawing size {R}value, character drawing size multipliercharacter 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 {OJreport alphabet selected for loading {R}
set input mode {OJboolean, input modereport macrograph contents {B}

E

L
I

n
M
()

x

macrograph namereport drawing position {B}Ireport input position {OJP()

mDmDDmD™

Digital Internal Use Only

EL-00070~08
31-Mar-1988
VSRM - ReGIS GRAPHICS EXTENSION

8.10.8Page 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 backgroundboolean, foreground/background selector
flood to index
Ivalue, index of flood boundary conditionn()color/intensity of flood boundary
RGBCYMHLSWD (ReGIS color/intensity alphabet)Ffill complex figure {OJ()(as for normal fill option list)
specify filling boundary {B}PVC**
temporary writing options
W*
Fn*Temporary write options apply as they would if set by a W atcommand level, but only for the duration of the current command.
**Filling boundary is specified by the same Position, vector, andCurve/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.9Page 8-155

LOAD CHARACTER SET INSTRUCTION

All Load character set components are specified in Raster ReGIS.
L
Load character cell[]
specify character cell sizennumeric (special radix), character cell data()A
select alphabet for loading
associate name reporting name with alphabet""nvalue, alphabet to be loadedE
set size of character set to be loadednvalue, 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

Page Index-:-1

Section Index
Absolute ~ocation
Character Cell, 8-24, 8-82, 8-114,
definition, 8-12
8-120
Active Position
Character Codes
definition, 8-12
ReGIS, 8-29
Alphabets, 8-119
Character Fonts, 8-38, 8-100
Application Free Primitives
Circle Constructs, 8-24, 8-74,
definition, 8-12
8-76
Area Attributes, 8-102
Circle Instruction, 8-20
ASCII Character Set, 8-29, 8-37,
Closed Curve Sequence
8-81, 8-119, 8-121
definition, 8-12
ASCII Code, 8-22, 8-29, 8-30,
Color
8-112, 8-119
HLS, 8-13
Color by Index, 8-97
Base Logical Device, 8-34, 8-35
Color by Value, 8-97
definition, 8-12
Color Capability, 8-23, 8-35,
Base ReGIS, 8-23, 8-34, 8-37,
8-69, 8-95, 8-128
8-47, 8-58, 8-64, 8-69, 8-74,
Command Keyletter
8-87, 8-98, 8-103, 8-112
definition, 8-12
Batching Commands, 8-42, 8-128
Complement writing
Bracketed Pairdefinition, 8-12
definition, 8-12
Cross Reference, 8-29, 8-34, 8~37,
8-38, 8-39, 8-42, 8-43, 8-46,
C(A), 8-76, 8-77, 8-90
8-52, 8-57, 8-59, 8-64, 8-72,
C(B), 8-77, 8-90
8-82, 8-94, 8-103, 8-106,
C(C), 8-76, 8-77, 8-90
8-109, 8-138
C(E), 8-77, 8-90
Current Location
C(S), 8-77, 8-90
definition, 8-12
C(W), 8-78, 8-80
Curve Instruction, 8-20, 8-48,
Cartesian Coordinate Grid, 8-33,
8-74, 8-75, 8-80
8-59
Chain Encoding, 8-52, 8-67
DEC STD 169, 8-11
change bars, 8-12; 8-13, 8-14,
Device Attributes, 8-69
8-21, 8-23, 8-29, 8-30, 8-32,
Dimensional Displays, 8-95
8-33, 8-34, 8-35, 8-37, 8-38,
Display Cell, 8-116
8-39, 8-41, 8-42, 8-44, 8-45,
Display Surface, 8-33, 8-59, 8-81
8-46, 8-52, 8-53, 8-57, 8-58,
definition, 8-12
8-59, 8-65, 8-66, 8-67, 8-73,
Drawing Instructions, 8-55
8-75, 8-78, 8-79, 8-81, 8-83,
Drawing Position, 8-52, 8-75,
8-88, 8-90, 8-92, 8-93, 8-96,
8-77, 8-81, 8-88
8-97, 8-98, 8-99, 8-100,
Drawing Primitives, 8-22, 8-74
8-103, 8-107, 8-111, 8-112,
Drawing Process, 8-32, 8-36
8-113, 8-114, 8-115, 8-116,
Dynamic Attributes, 8-102
8-117, 8-120, 8-124, 8-127,
8-128, 8-131, 8-132, 8-134,
EBCDIC Code, 8-37
8-136, 8-138, 8-139, 8-143,
Echo
8-144
definition, 8-12

mDmDomD™

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-12Errors, 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
FiguresFigure 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
Flooddefinition, 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 Modedefinition, 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™

Macrographdefinition, 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 'OffsetDigital 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 Modedefinition, 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
Protocoldefinition, 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
Resetdefinition, 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
Sixeldefinition, 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
Writingdefinition, 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 PRINTERSYSTEMS REFERENCE MANUAL - SIXELGRAPHICS EXTENSIONDOCUMENT 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

556

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 OnlyIII

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 overa 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 aspectratio extension (LAIOO·V2), the color extension (VT240), and finally a limited support forsoftware-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 alow 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 anidentical picture.

2.

Positioning the data

3.

Defaulting mechanisms when some data cannot be exactly reproduced, or somecommand 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 andrealizations 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 thisprotocol 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 Only1

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. Bothprinted at a 2:1 pixel aspect ratio.
It is a goal that any pixel value combination for rasters of this size be printable byconforming 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 capableof 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 renditionof 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 therectangle 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, andmayor 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 evenexceed the grid size. The horizontal distance between the two positions is defined by thehorizontal 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, allof 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 ofhorizontal 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 isto 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 notinclude 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 theother 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 Only3

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 thesecommands, 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 Attributecommand, 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 isprinted. 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 optionalparameters of the color specifier. Note that all 1 bits of a Sixel are imaged in the selectedcolor. 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 ofsixe1s 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 thetime 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 informationneeded to reproduce the image, regardless of size. The Picture Definition includes Sixeldata and Sixel. command codes. The Sixel data is the encoded image raster while theSixel. 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 pagecomposition 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.edby the ANSI text active position at the time that the Sixel mode is entered. All otherpixel 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 DefinitionST

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 thecode 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 andcommands as described in this standard. ST (9/12) is the ANSI Cl control that terminatesa 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

Picturedata

S'1''~~~~~~~~----~I
Picture Definition

Where:
Psl

Macro Parameter
Selects from a list of fixed combinations for otherparameters. Included for backward compat~ility.
New software should always specify this by 0 (zero).

Ps2

Background Selecto 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).

qFinal 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 reasonsand is to be set to zero in new software. New software is expected to define the threeparameters 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
1no 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 selectedby 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 macroparameter, 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 datais coded as graphic characters in the range 3/15 to 7/14.

Digital Internal Use Only7

03-Aug-1990

EL.Q0070009

8.1

SIXEL COMMANDS

Sixel commands are used to control how the image raster is interpreted, and may beembedded anywhere in the picture definition.
A Sixel Command consists of a code in the range 211 through 3/14 (except parameters andparameter 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 parametermust 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-100Blue,$ (2/4)

Grap~cs Carr~age-(2/13)

Graph~cs(3/11)

Parameter Separator

ReturnNext Lineo 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 whichindicates 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 willcancel a pending repeat count.
Format:Pn1
2/1<sixel-column-code-to-be-repeatec:i>(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 denominatorHor1zontal 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 acomplete scanning of the data for the horizontal limits.
This parameter does not limit the number of pixels a device may image. In the case ofreceiving more pixels than the extent defines, they will be imaged normally. Thus, thereceiving 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. Thisparameter 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 beinterpreted 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~nateLightness, 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 ina 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
Pypz
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 areincluded 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 willcause 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 thebounds 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 thegraphic left margin. This Sixel control code is the only code which allows rewriting of aSixel 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 LineThe 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 0 (LSB)
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5 (MSB)

Digital Internal Use Only11

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 thehorizontal scan as follows:
Data B.ita:
2 Scan:

(top)

5

4

3

2

1

0

o 0

0

0

1

0

1
2
3

4

(bottom)

0

x
0

,5

0
0

6

0

where "0" indicates the the pixel spot is not printed and "x" indicates that the pixel spot isprinted.
8.2.1

Sixe' Column Codes

Character

?

@

A

8

C

D

E

F

------------------------------------------------Octal
107711001101110211031104110511061
DecimalHexadecimal

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
0
0
0
0

0

0

0

10 1 x 1 x 1 0 1 0
10 1 0 1 0 1 x 1x
I 0 1 ,0 1 0 1 0 1 0
I 0 I 0 I 0 1 0 I 0
10 1 0 1 0 1 0 10

1x
1x
1 0
1 0
10

1x
1 :It
10
10
10

M

N

-------------------------------------------------

Character

G

H

I

J

K

1.

------------------------------------------------Octal
1107111011'11111211131114111511161
DecimalHexac: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

10
0
10
x 1x
0
10
0
10

0

0

0

1 x 1 :It 1 0
1 0 1 0 1x
1 :It 1 :It I x
1 0 1 0 1 0
1 0 1 0 10

0:It

I 0 1 x I x 1

1x
1x
1 0
10

1x
1x
1 0
1 0

1x
1x
10
10

1
1
1
1

-------------------------------------------------

12 _ _

Dlgltallntarnai Use Only

EL.Q00'70.09

Character

03-Aug-1990

0

P

Q

R

S

'r

0

V

------------------------------------------------Octal
111711201121112211231124112511261
DecimalHexadecimal

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

I 0
I 0
I 0
I x
I 0

I 0
I 0
I 0
I x
I 0

I x
I 0
I 0
I x
I 0

I x
I 0
I 0
I x
I 0

W

X

y

z

I 0
I x
I 0
I x
I 0

0

I 0
I x
I 0
I x
I 0

I x
I x
I 0
I x
I 0

I x
I x
I 0
I x
I 0

-------------------------------------------------

Character\------------------------------------------------Octal
112711301131113211331134113511361
DecimalHexadecimal

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

I 0
I 0
I x
I x
I 0

0

I 0
I 0
I x
I x
I 0

0

I x
I 0
I x
I x
I 0

I x
I 0
I x
I x
I 0

a

b

0

I 0
x I x
x I x
x I x
0
I 0
0

I x
I x
I x
I x
I 0

I x
I x
I x
I x
I 0

e

f

-------------------------------------------------

Charactercd------------------------------------------------Octal
113711401141114211431144114511461
DecimalHexadecimal

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

0

I 0
I 0
I 0
I 0
I x

I 0 I xI 0 I 0I 0 I 0I 0 I 0I x I x

0

I x
I 0
I 0
I 0
I x

I 0
I x
I 0
I 0
I x

0

I 0
I x
I 0
I 0
I x

I x
I x
I 0
I 0
I x

I x
I x
I 0
I 0
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
DecimalHexadecimal110311041105110611071108110911101
1 671 681 691 6AI 6BI 6CI 601 6EI------------------------------------------------1x 1
1x 1
1x 1
1x

Dot Pattern

0

0

0

0

1 0
0 1 0
x 1 x
0
1 0
x 1 x

1 x
1 0
1x
1 0
1x

1x
1 0
1x
1 0
1x

1 0
1x
1x
1 0
1x

1 0
1 x
1 x
1 0
1x

1x
1x
1x
1 0
1x

1x
1x
1x
10
1x

p

q

r

3

t

u

v

0

-------------------------------------------------

Character0------------------------------------------------Octal
11571~601161116211631164116511661

DecimalHexadecimal

111111121113111411151116111711181
1 6FI 701 711 721 731 741 751 761------------------------------------------------x 1
1x 1
1x
1x 1

Dot Pattern

0

0

0

1x
0 1 0
0 1 0
x 1 x
x 1 x

0
0

x
x

0

0

0

1 x
1 0
1 0
1x
1 x

1 0
1 x
1 0
1x
1x

1 0
1x
1 0
1x
1x

1x
1x
1 0
1x
1x

1x
1x
10
1x
1x

------------------------------------------------Character

w

x

y

z

------------------------------------------------Octal
116711701171117211731174117511761
DecimalHexadecimal

111911201121112211231124112511261
1 771 781 791 7AI 7BI 7CI 701 7EI------------------------------------------------1
1x 1
1 x 1
1x 1
1x

Dot Pattern

0

1 0
1 0
1x
1x
1x

0

10
10
1x
1x
1x

1x
1 0
1x
1 x
1x

0

0

1 x
1 0
1x
1 x
1 x

1 0
1x
1x
1 x
1 x

1 0
1 x
1x
1x
1x

1x
1x
1x
1x
1x

1x
1x
1x
1x
1x

------------------------------------------------9

CODING ISSUES

9.1

CO CODeSThe inclusion of CO Controls 0/8 to 0113 in control string data'is intended for conveniencein formatting and storing control strings. These codes shall have no effect on theinterpretation 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) aretreated 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 ofsome 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)

IgnoredSixel COlII'II&Dcb
Sixel Data
Ignored9.3 C1 CODES

Codes in the range 8/0 through 9/15 exit DCS mode processing, exit Sixel mode, and theC1 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 isthen processed as a GL code. Conforming software shall not transmit GR codes.
10 INmAL STATESNo Sixel state is preserved from one entering of Sixel mode to the next. All Sixel state isreset 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 Only15

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 INTERACTIONSThe 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 theresults 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 modeis entered. The center of the top dot is printed 70 decipoints (.0972 inch.) above thecharacter 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 andvertical 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 isplaced at the current horizontal position and seven actual grid vertical sizes above thecurrent 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. anda 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, thenthat 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 thatof ANSI text. In video devices, advancing past the bottom margin will cause scrolling tooccur (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 S~el mode and set
exactly to what is was when Sixel mode was entered.
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 Sixelprinting. 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 FALLBACKAs 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 therasters 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 thatspecified by the Pixel aspect ratio and horizontal grid size. In such a case, the grid sizeused 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 theactual 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 gridsize. 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 to15013001600 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 are two classes of color fallback - black and white (monochrome), and limited true
color.
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 bitsin 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 eightcolor 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.reenCyan

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 an9leDisable 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 thebackground.
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 byMacro 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 thebackground. 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 isthe 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. byMacro Parameter value of 1. Thus all other combinations of raster attributes fall backto 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 notrecognize the set raster attributes command.

Guideline: Software that wishes to support these devices explicitly may set the Macroparameter for the desired characteristics, but should also specify the horizontal gridsize (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 theattention 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 andparameters 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 isentered. 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-wireprint 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 thesame 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 Selectparameter 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 theinterpretation 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 intheir 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 Macroparameter.

is

Digital Intemal Use OnlyINDEXc
Color Introducer, 10

D
Dot
terminology, 2

GGraphics Carriage Return, 11
Graphics Next Line, 11
Gridterminology, 3
Grid Sizeterminology, 3oBixel Command
Format, 8TTerminology
Dot, 2
Grid, 3
Grid Size, 3Overlap, 3
Pixel, 2
Pixel Aspect Ratio, 2
Pixel-Spot, 2Raster, .3
Raster Size, 3Sixel, 3
Sixel Active Position, 3Overlap
terminology, 3pPixel
terminology, .2
Pixel Aspect Ratio
terminology, 2
Pixel-Spotterminology, 2R
Rasterterminology, 3
Raster Sizeterminology, 3
Repeat Introducer, 9s
Set Raster Attributes, 9

Horizontal Extent, 9Pixel Aspect Ratio, 9Vertical Extent, 10
Sixel
terminology, 3
Size! Active Position
terminology, 3_a-Olgltallntemal Use Only

Index-1

03-Aug-1990+-------------------------------------------------------------------+I
READER COMMENTSII
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 oftime?
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 .throughinteroffice mail to:+-------------------------------+I
READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4I+-------------------------------+

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 andsoftware engineers designing programs using terminal Interfaces. Additional requirements aredefined 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
ArchitecturePeter Sichel

APPROVAL: This standard, prepared by the Desktop Systems Group, has been reviewed andrecommended 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.

IIII. ."

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

3.1 LO.ADIN'G FONT FILES .............................................
3.2 ASSOCIATING FONT FILES WITH CHARACTER SETS. . . . . . . . . . . . . . . . . . . .
3.3 DESIGNATING AND INVOKING CHARACTER SETS. . . . . . . . . . . . . . . . . . . . . .
3.4 NOTE ON FUTURE USE OF FONTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6665 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 OnlyIn

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 andprinting 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 partof the 8-bit Interface Architecture Extension. In Level 3 and 4, only one character fontbuft'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 characterin 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 whentext 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 minimumof three character font buft'ers is required, each supporting either a 94- or 96-charactergraphic character set; support of 96-cb.aracter graphic character sets is required in alllevels of the Hardcopy Display service class. The number of logical pixels per character isdevice-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 backgroundvalues of a single character rendition.
Coded. Character Set - A set of named characters and their one-to-one relationship withbit 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 isdependent 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 prescribedmanner.
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 proceduresconsisting 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

FUNCTIONAL DESCRIPTION

3.1

LOADING FONT FILESThe 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 asequence 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 acharacter 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 (forexample, 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, thebuilt-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·incharacter 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 usedwidely 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 andselected 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 particulardevice may be limited to rendition in certain Set Sizes (80- or 132-column widths, foraample).

",N

Digital Internal Use Only

3

EL-G0070·10

The following diagram describes this relationship:

FONT FILE DEFINITION

/ \

TEXT

FULL CELL

11\
11\

11\
11\

CELL MATRIX SIZESCELL MATRIX SIZESSET SIZESSET 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 aparticular application.

Digital Internal Use Only

O4-Oct-1990

EL.Q0070·10

4 CONTROL FUNCTIONSDECDLD

DOWN UNE LOAD (FONT FILE)

Levelr.
2X, 3X, 4X Video Character CelllX, 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 I P.. I Pu I Pamh I Pc.. {9/0Parllllleter StrintJ •••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 thepresentation 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 :&lesmay 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 FORMATThe 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 casethe 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 tothe 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 valueof 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 fontnumbers 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. Parametervalue 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 orhigher 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 OnlyI
I

04-Oct-1990

EL..CJOO70-1 0

Conforming software loading 94-character sets or font buffers, will not specify values lessthan 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 beenerased 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 todevice.
The legal combinations of these three parameters must be clearly defined in the productliterature for conforming terminals. mega! values of the Character Cell Matrix Widthparameter cause the remainder of the load sequence to be ignored. Changes to thisparameter since the last DECDLD sequence to this buffer will result in the erasure of theentire set, and cause a new load to start.
Guideline:
Implementations may discard pixels beyond the width of the character cell specified bythis 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 theseparameters 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 Only7

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 thedevice 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 productliterature 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 cellfont 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 thecentering 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 Sizeparameter 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 productliterature for conforming terminals. illegal values of the Font Usage parameter cause theremainder 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 HeightThe 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 thevalues of the Font Set Size parameter and the Font Usage parameter, and may vary fromdevice to device.
The legal combinatioJl8 of these three parameters must be clearly defined in the productliterature for conforming terminals. Illegal values of the Character Cell Matrix Heightparameter cause the remainder of the load sequence to be ignored. Changes to thisparameter smce the last DECDLD sequence to this buffer will result in the erasure of theentire 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 bythis 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 theinterpretation 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 FORMATThe 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 escapesequence which will subsequelltly be used to designate the loaded font as a characterset.
2. Sxbp - 'nle final character of the character set designation string is followed by asequence 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 asnecessary, 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 isused in the SCS (Select Character Set) escape sequence. Note that the same Dscs can beused 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 thecharacter 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 charactersets.)==

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. DsesDefines 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 sequencesof 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 affecton 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 thecharacter 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 thesebit 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, andSTRING TERMINATOR).

_.-

Digital Internal Use Only11

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 informationin 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 descriptionof the conversion algorithDut. Note that the DECDLD command string U8eS thesisel 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 sequenceof sixel characters is sent, with each sixel specifying one vertical column of six logicalpixels. After each character the font pattern sean advances horizontally by one logicalpixel. This sequence continues until either a sean terminator (the I character, 2115) isreceived. a sixel bit pattern terminator (the; character, 3111) is received, or a STRINGTERMINATOR (9/12) is received. If the number of characters in a horizontal scan isgreater 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 thenumber of horizontal scans is greater than the height of the loaded character (divided bysix), 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 aresent to the tennjnal.
The following picture shows the mapping of Sixels onto an 10 x 20 logical pixel full-cellcharacter cell:
1

2

3

4

5

6

7

8

9

10

bO
bO
bO
bO
bO
bO
bO
bO 1 bO
bO
b1
b1
b1
b1
b1
b1 1 b1
b1
b1
b1
b2
b2
b2
b2
b2
b2
b2 1 b2
b2
b2
b3
b3
b3
b3
b3
b3
b3 1 b3
b3
b3
b4
b4
b4
b4
b4
b4
b4 1 b4
b4
b4
b5
b5
b5
b5
b5
b5 1 b5bS
b5b5
1_ _ 1_ _ 1_ _ 1_- _ _ 1_ _ _ 1_ _ _ _ _
13
14
15
16
17
18
19
20
11
12

,
,

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 aresent to the terminal.

Digital Internal Use Only13

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 GET NEXT EVENT (VAR EVENT: EVENT BUFFER TYPE); EXTERN;PROCEDURE GET-ORCS-PARAMETERS (EVENT: EVENT BOFFER TYPE); FORWARD;
PROCEDURE GET:CHARACTER_SET_DESIGNATOR; FORNARo: PROCEDURE FILL_CELLS; FORWARD;

14 . . . .

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 forprocessing. 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 OFERASB 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 Only15

04-Oct·1990

EL-ooG70-1 0

PROCBDUU GET ORCS PARAMETERS;(*--This routine gets the DCS introducer sequence parametersfrom the event buffer and sets the appropriate stateprior 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) THENFIRST 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 heightparameter 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 escapesequence to be associated with the loaded font. This sequencemust 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;REPEATGET 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:- TRUEELSE 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 Only17

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 firstcharact.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 TBBNHGIN
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:GIHFOR H:- 1 TO 6 DO
UGIN
IF V+H-1 <- CI:LL HBIGHT THBH
BEGIN
II' ODD (l!!VBHT. CODI: VALO'B) THBNI'ONT[I'OHT NO'MBl!!R,CI:LL NO'MBI:R,H,V+H-1):- OH;(* .hift in-on. bit ata 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:- TRUEELSE 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

5ORCS 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 andediting 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 toredefine 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. (Itis, 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 Only21

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 ofdesignating escape sequences.
6.2 Rev AX10 to AX11

1.

Added statement that starting to load at location greater than 94 will be ignored inlevel 2.

6.3

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 Widthparameter 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 iserased.
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 withprinter terminology. "Font file" refers to a sequence of bit patterns that define thegraphic symbols of a coded character set. "Fonts" are styles (an instance of a typefamily).

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 notchange).
6.

Specified behavior of DECSTR, RIS, and DECSCL with respect to DRCS buffers forboth video and hardcopy devices.
7. Clarified differences in behavior of DECDLD parameters for video and hardcopy
devices (Pfn, Pcmw, Pss, Pcmh). Printers have three buffers mjnjmum. Printers neverdeduce Pcmh from Pcmw. Pss (Font set size) is for video terminals only. Extended listof possible values for Pss to refiect VT420 implementation.
8. Specified Dscs may include up to 3 intermediates in addition to the first SCS
intermediate which specifies the G-set.
9. Included error handling recommendations for unexpected bit combinations. ESC andC1 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.
10. Clarified that ST may terminate an individual character load.

Digital Internal Use Only23

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
Cr1tefi8DEC070-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 Only25

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, 1Character Cell Matrix Size, 8, 12
Character Font Data, 11
Coded Character Set, 1
Conforming software, 7Control String. 1

FNT,3
Font, 2
Font File, 2Font Number, 6
Font Selection. 3
Font Set Size, 3

Invoke, 2D
DeS Introducer Sequence. 2
DECDLD, 2, 3, 5, 7
Designate, 2
Down-Line Load, 2, 5
DRCS, 1
Dynamically Redefinable Character Set, 5Dynamically Redefinable Character Seta, 1

E
Eralle Control, 7
Escape Sequence, 2

L
Logical Pixel, 2sScan, 2
Select Graphic Rendition, 3
Set Size, 2SGR,3Sixel, 2
bit pattem, 12
definition, 12
Soft Reset, 5Digital 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 oftime?
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

Mmb~p

Node

---------------------------

Send your comments ~ JOKUR::PROJECTS, or fold, staple, and send this page throughinteroffice mail ~:+-------------------------------+I
READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4I+-------------------------------+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 andSoftware 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" isconsidered to be of potential benefit to the corporation andshould 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 ofthis 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 EXTENSIONDOCUMENT 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 theVideo 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 inStandards 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.111.2.211.2.311.2.4FUNCTIONAL 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.1Introducer 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 thecapability 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 beextensible 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, arerequired 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-volatilememory. That is, the loaded definitions may be lost if theterminal 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 theintent of this standard.

VSRM - User Definable Keys Extension. EL-00070-011*** COMPANY CONF - DEC Internal Use Only lS-May-1983
11.2

FUNCTIONAL DESCRIPTION

11.2.1

Programmable Keys

Page 11-5

The keys which may be programmed in Level 2 devices are all of thekeys in the Application Function Key Row, when used in combination
with the Shift key (see the section "Keyboard Processing" for acomplete 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 SelectConformance Level (DECSCL); see the section "Terminal Management"
for a complete description of the DECSCL function).
When theterminal 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 theirdefinitions erased, do not transmit and therefore do not keyclick.
Programmable keys which have been defined do keyclick, and arealso subject to all of the requirements of the lower leveltransmission 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 lengthcharacter string of 0 to 255 7-bit or 8-bit characters.
Eachcharacter 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 comefirst 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 ofUser Defined Keys.
This lock can be turned on or off throughSetup mode.
It may also be turned on (but not off) from the hostusing the DECPPK control function.
The lock acts globally overall programmable keys.
The state of the Lock Control may be determined from the hostusing 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 FUNCTIONSDSRREPORT 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 descriptionof 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, andall keys may be defined, cleared, orredefined from the host.

21

The User Defined Keys are locked, and may
not be defined, cleared, or redefined fromthe 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 notsupported.
Thus, this request is an optional means ofdetermining if the extension is present (the other means
being the Primary Device Attributes request, as describedin 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,'<CSI>?20n');
U~K.LOCK.ON: WRITE (HOST.PORT,'<CSI>?2ln');
END;
END
ELSE WRITE (HOST_PORT,'<CSI>?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 KEYSDECUDK

Levels:2X

purpose:

Down line load User Defined Key sequences.

Format:
The DECUDK control is a Device Control string consistingof 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 byclearing keys without locking them.
Once the keys havebeen cleared the UDK function can be used to redefine thekeys and lock them.

2.

Host softwar~ should not generally leave the user definedkeys 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 theavailable 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 theprevious 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 beomitted, 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:1I

0 - Clear all UDKs before loading new values (default)
1 - Load new UDK values, clear old only when redefinedI
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, eventhough 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 thekeys are cleared as they are sequentially redefined.
(When the user attempts to load F~ with 40 -bytes, theload will fail, because only 26 bytes are free at thattime (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 thecurrent DECUDK sequence (unless the keys were previously
locked), but causes all subsequent DECUDK sequences to beignored (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 notlock 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~nd11.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 thisrange.
The following bit combinations are considered as error
conditions when they occur within the character font data.
Theirprocessing is UNDEFINED by the architecture.
It is recommended to
hardware implementors that they be ignored for futurecompatibility.
o

0/1 through 0/7

o0/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/0o

4/7 through 6/0o

6/7 through 15/15 (with the exception of ST, 9/12)

These characters should nqt be
11.3.2.1

u~edby conforming software.

Key Selection Codes

Key selection codes are specified as string or characters in therange 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 thespecified 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 Codepage 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 KeyDo 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 usedin 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 codeof 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 isreceived 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 beset (UDK Lock On).

2.

Key Code Out of Range - If a key selection code isreceived which does not represent a programmable key inthe device, the entire definition for that key will beprocessed 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 thestring 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 codedusing an excess of UDK buffer memory and working buffers.
Itshould be recognized that the memory management schemes which willprobably be required in many implementations will make thisprocedure 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 = RECORDCODE 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 THENBEGIN
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) THENUDK_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) THENBEGIN
IF TOTAL . CODE - COUNT + I <= MAX SIZE UDK BUFFER THENBEGIN
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 codefrom 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:= TRUEELSE 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 thecommand 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:= TRUEELSE 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 toload 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 originaldraft. 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 Charactersin user defined keys
Code Table
Conformanceuser defined keys

11-5
11-5
11-4

-D-

Default Key Definitions
Device Status Reportuser 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
Keyclickuser defined keys

11-5
11-5

-P-

Programmable Keys

11-5

-R-

Rate Limitinguser defined keys
Report UDK Statuscontrol 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/XOFFwith user defined keys

11-5

Page 11-26

Digital Internal Use Only

EL-00070-12

2Wu1-1990

DEC STD 070-12 VIDEO SYSTEMSREFERENCE MANUAL - TERMINALSYNCHRONIZATIONDOCUMENT 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 andSoftware Engineers designing programs using terminal interfaces. Additional requirements aredefined 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.

IIlilt.·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 OnlyID

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 resetor initialize the communications context. Currently these mechanisms are defined for use
over serial asynchronous communications lines, and include XONIXOFF flow control andBreak.
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 ordata interchange context over serial asynchronous lines. The Break condition is defined asa continuous space (transmission line held in its zero state) for longer than one charactertime. Although there is no standard use for Break, Digital terminals allow the Breaksignal 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 thatlies below the code extension layer. Flow control and break are management funeti.ons
that control the communications link. No conforming applications should depend on thepresence 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) andDCS (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 dependon 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 Only1

EL.oocrro..1226-Jul-1990

Sending
Device (SO)Receiving
Device (RD)SDTX

flow controlled

RDRX

"'"
r

~

"""

SDRX

(XONIXOFF)

RDTXWhen 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 forflow control, characters XON and XOFF may not be passed as part of the normal datainterchange from the receiving device to the sending device.
The sending device recognizes XOFF (113) as a request from the receiving device tosuspend 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 issuspended. When the sending device's communication port is in this state, it is said to bein the XOFF state. If the device is already in the XOFF state when an XOFF character isreceived, 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 transmissionof 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-~II

t t t t

XON
point

first
XOFF

secondXOFF

bufferfull

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 timesince the last XON was sent; (2) the number of characters in the input buffer reaches thesecond 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 fromthe 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 fullis 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 bemade 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 theperformance 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 bufferfull) 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 somehardware 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 tolimit 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 isdesirable to have the XON and (first) XOFF point far apart.
To maximize throughput, it is desirable to balance the XON response time (before thereceive 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 thelast XOFF point, the XON point will normally be at 32 characters, or at half the number ofcharacters 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 thesecond 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, otherreceiving 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 runningterminal 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 withinsome 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 overf~ow
MXBF - the receive buffer size
XO!'!' - the XC!'!' point

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 acharacter and unable to send XOFF until the character finishes; (2) It takes one charactertime 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 fivecharacter 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 Only5

EL.oCJ070..1226-Ju'·1990

2.4.2 Response nme to XOFF

The maximum response time available to the sending device to stop sending (in order toguarantee that the buffer will not over:fiow) is the time it takes to transmit the number ofcharacters 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

- 29
x [(8
+ 1
- 0.030 seconds+ PR'l'Y + l) /XMDR]+ 0+ l)/9600J

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 acommunication link. Devices shall send a single XON at power-up when they are ready toreceive 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 asingle XON to the remote device.

6""

OlgHal Intemal Use Only

260Jul·1990

GUIDELINEThe 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 resumetransmission". 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 thereceiving 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 handlingis 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 affectthe 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, andleaves 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 processincoming data (including going off-line), and send XON when they are again ready toprocess 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 forsynchronization. These characters should not be used to convey meaning to application
software.

Digital Internal Use Only7

a.Q007o.12

26..Jul-1990

TERMINAL KEYBOARD SYNCHRONIZAnON

2.8

When XONI.XOFF flow control is enabled, terminals may be XOFF-ed to suspendtransmissiQn 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 orfunction 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, andthe 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 thehost 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 andtyping CTRLlS (XOFF) or CTRUQ (XON) at the keyboard will transmit the corresponding
codes to the host computer.
2.10

EMERGENCY MESSAGESAt 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 toreceive 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 theoperator 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 arein the XOFF state (using the XOFF state as a control channel). This mechanism
should be used only by explicit, device dependent agreement between the printerand 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 thesefunctions, 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 BREAKBreak is an out of band. signal frequently used to reset the communications environment ordata interchange context over serial asynchronous lines. The Break condition is defined asa continuous space (transmission line held in its zero state) for longer than one charactertime. See DEC STD 52 for additional information on physical generation of the breaksignal. Although there is no standard use for Break, Digital terminals allow the Breaksignal 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 durationof 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 (plusor 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.
GUIDELINEThe 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 Only9

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 hostrequests 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 Breaksignal immediately regardless of keyboard locking (KAM), XONIXOFF flow control, or thestate of the keyboard input silo. If a character is currently being transmitted, the Breaksignal 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 thehost 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 andSerial 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, 9definition, 9Long Break, 9when it may be transmitted, 9
Break Key, 10
Breakthrough, 8Bufferover:fl.ow prevention, 4
requirements, 1
size, 4c
Clear Communications, 6
CTRUQfrom the keyboard, 8
CTRUS
from the keyboard, 8
CTRUY,7

D
DECTST
Implied XOFF Rule, 9
Disconnect
Long Break, 9E
Emergency Messages, 8

H
Hold Screen, 8

Implied XOFF Rule, 9Initialization, 6K

M
Modem Control, 9N
Number of Characters to Over:fl.ow, 5, 6

R
Reserved Characters, 7
Reset, 9Response Time
toXOFF,6

RIS
Implied XOFF Rule, 9s
Self-Test, 9, 10
special characters, 7Special Characters, 7Synchronization
keyboard, 8
screen, 8

TTransmit Data Rate, 6x
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,4Keyboard 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 throughinteroffice mail to:+-------------------------------+I
READERS' COMMENTSI
I STlINDARDS lIND METHODS CONTROL I
CTSl-2/D4
II+-------------------------------+

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 andgraphics terminals as an extension to the Character Cell Display service class.

APPLICABILITY: Mandatory for engineers designing hardware for terminal products andsoftware engineers designing programs using terminal interfaces. Additional requirements aredefined 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 goodreasons for non-compliance. "Guidelines" define approaches and techniquesthat 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 ArchitecturePeter Sichel

APPROVAL: This standard, prepared by the Desktop Systems Group, has been reviewed andrecommended for approval by the General Review group for its category.

ClPeter 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 .............."............................". . . . . . . . . . . .

33 LOCATOR REPORTING MODEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 INTERACTION WITH SESSIONS AND WINDOWS. . . . . . . . . . . . . . . . . . . . . . . .

3
4

4 CONTROLLING LOCATOR REPORTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55 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 areused for entering coordinates or selecting items on a display.
A conforming device shall be supplied with a locator port used to connect an optional mouseor 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 withkeyboard input.
Controls are provided to enable locator reporting, select which events shall generatereports, 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 parametervalue 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 Only1

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 PROCESSThe interfaces defined within this specification apply to both internal and external productinterfaces (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\PhysicalTerminal

VirtualTerminal\

Application
Process\<hardware><firmware>\<communications link>\

EXTERNAL INTERFACE

,
,
,
,
,
\

PhysicalTerminal

VirtualTerminal\

Application
Process\<hardware>2_"<software'
firmware>\<software>\

INTERNAL INTERFACE

Digital Internal Use Only

<software>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 isable 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 timeof 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 theprevious 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 (leftbutton 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 bestrictly 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 Only3

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 shapeindicates that locator button transitions will be ignored, but allows the user to continue
positioning in anticipation of the locator being unlocked. The locator is automaticallylocked 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 orderof keystroke and locator events.
3.1

INTERACTION WITH SESSIONS AND WINDOWS

Since locator events are queued in the keyboard input silo along with keystrokes, locatorand 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 overthe 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 withsession 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 definedcoordinates for that session. Pressing a button on the locator shall generate a reportwith 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 buttonon 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 ofthe locator cursor (not mandatory).
In this case, the window manager is free to define its own user interface. Tworecommendations (not mandatory) are: (1) no locator report should be sent to theprevious 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, toavoid 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 andclick 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

DECELR

Levels:lx, 2x, 3x, 4x (Text Locator)

Purpose:Format: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 theterminal 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 usefulwhen the device is capable of addressing individual dots on the display, such as with thesixel 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 Only5

EL-00070-13

3O-Sep-1991

LOCATOR REPORT

Levels:Purpose:DECLRP1x, 2x, 3x, 4x (Text Locator)
1b transmit locator information to the hostFormat:
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, theterminal 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 isunavailable. 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 thedecimal value; a 1 means button is depressed.
O-No buttons down
1-Right
2-Middle
4-Left8-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 decimalvalue. 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 decimalvalue. 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 todisabled.
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 Only7

EL-00070-13

3O-sep-1991

REQUEST LOCATOR POSITION

Levels:Purpose:DECRQLP1x, 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 codeof 1.
If the session receiving the request is the active session, but the locator is not within thedefined 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 inanother session), the terminal shall respond with omitted coordinates (locator position
undefined) even if the input cursor is physically over the inactive session's window. Locatorstate 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 &elISionis 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:DECSLE1x, 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 Only9

EL-00070-13

30-Sep-1991

ENABLE FILTER RECTANGLE

Levels:Purpose:DECEFRlx, 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 willcause 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 thedefined 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 forthe active session, and the locator crosses that edge, the rectangle shallbe 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 shallbe 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 (thatis, uses the current position) while the locator is outside the defined coordinate
space (position undefined), the rectangle shall be triggered. the nest time thelocator 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 sessionthat is not the active session receives a rectangle with omitted coordinates, itshaD 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 notenabled, the rectangle shall be triggered to send a report indicating that thelocator 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 aresent 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.
oWhile 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 thetablet establishes -an absolute screen position.

•.•

,.

Dlgftal Internal Use Only11

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 thehost expressed as an absolute bracketed extent in user coordinates.
3. The report ends with a carriage return.

Examples:<ESC>[241-[102.5,200]<CR>

The left mouse button was pressed. <ESC>[241- is the default sequence for left button
down transitions. Input cursor is at 102.5,200.
<ESC>[240-[lOO,lOO]<CR>

The terminal received R(P(I» in multiple input mode. <ESC>[240- is the null button
sequence.
5.3

TEKTRONIX GIN MODE

TektrOnD: GIN Mode is only available during TektrOnD: 4010/4014 emulation. GIN modeis 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 INPUTLOCATOR KEY DEFINITIONDECLKD

Levels: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 aredelimited 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 [240 Kyl down transition ESC [241 Ky2 down transition ESC [ 243 Ky3 down transition ESC [ 245 Ky4 down transition ESC [ 247 Where:
Kyl = Bl =left =barrel button
Ky2 = B2 =middle =tip button
Ky3 = B3 = right
Ky4 = B4 (tablet cursor only)

mIIIDIB'"

Digital Internal Use Only13

EL-00070-13

3O-Sep-1991

Up Transitions are ignored by default. The following locator key up definitions arerecommended:
Ky1 up transition ESC [242 Ky2 up transition ESC [ 244 Ky3 up transition ESC [ 246 Ky4 up transition ESC [ 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 isbeing interpreted as ANSI or ReGIS. If ANSI locator reporting is enabled, keystrokes andlocator 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 (notmandatory). Pressing a non-arrow key on the keyboard shall send the character for thatkey 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 followedby 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 interferewith 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 theterminal 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 Only15

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 Only17

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 Reportcontrol function, 15
DSR,15

E
Enable Filter Rectangle
control function, 10
Enable Locator Reports
control function, 5F
Filter rectangle
definition, 3Filter Rectangle, 10

definition, 3
Locator Device Status, 15
Locator Key Definition
control function, 13
Locator Movement, 10
Locator Reportcontrol function, 6R
ReGIS Multiple Input Mode, 12
ReGIS One-Shot Graphics Input Mode, 13
Request Locator Position
control function, 8S
Select Locator Events
control function, 9Sessiondefinition, 3V
VIrtual terminal
definition, 3Interfaces
external, 2internal, 2L
Locator--W
Windowdefinition, 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?
- - If so, did it arrive within a satisfactory period ofPlease comment.
time?

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 throughinteroffice mail to:+-------------------------------+I
READERS' COMMENTSII 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 MANUALSTATUS 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.
Itspecifies both the application program interface to select andcontrol 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 higherof the Character Cell Display service classes.

APPLICABILITY: :t-1andatory for Engineers designing hardware forterminal 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 toIdefine mandatory standards unless it is clearly marked as:(a) not mandatory; or (b) guideline. Material that ismarked 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 goodpractice, but should not be considered as requirements.
I+------------------------------ --------------------------------+
This documont is confidential and proprietary.
It is anunpublished 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 EXTENSIONDOCUMENT 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 andMethods Control.
Send distribution questions to JOKUR::SMC orcall 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-··4INTRODUCTION . . . . . . .
14.1
14-·-4FUNCTIONAL 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--1014.2.4
Transmission of the Status Display . .
14.2.5Behavior 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 . (JCHANGE 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 additionalline of characters to be displayed on the screen as a Status
Display. The Status Display shall be one or more lines high andcontain 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 mandatoryfo~ 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, theIndicator 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 stateand 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) commandis issued.
14.2.114.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 allon~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 statusline. 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 thereverse of the Main Display background as indicated by the settingof Screen Mode (DECSCNM)
0

When the Host Writable Status Line is enabled, it has the samebackground 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 themain 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 righthand 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 LineThe Error Line appears when it is necessary to indicate the resultof some local terminal operation that would not otherwise beevident. 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 theterminal 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 LineThe Indicator Status Li.ne Ghall contain a number of indicators
refJecting tIle state of the terminaJ and options attached Lo theterminal (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 Indicatorstatus 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 notqueued: 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 ispresent.
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 ispresent.
Indicates the status of the attached printer ifany, and the print mode.
7. Modem Status Indicator if modem control is supported andenabled.
Indicates the status of the DSR signal on thecommunications 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 isapproximate) :2

1(24,008)

Edit

Overstrike Mode

Printer: None

Modem: DSR

The Active Session Indicator is a single digit at the left mostedge 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 inparenthesis. 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 Onlygraphics 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 attachedprinter 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.214.2.2

Operation of Host Writable Status LineOperation 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 mustissue the DECSASD (Select Active Status Display) command. A
typical operation by the host would be to send a DECSASD commandto switch to the Host Writable Status Line, send a line of text tothe line, a.nd then send anotJ:le.r DECS1\.SD command to .ret.urn to thel'-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, theterminal 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.314.2.3

Active position
Current Graphic Rendition (and other character attributevalues)Origin Modethe 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 andthe Status Display. When the Host writable Status Line isselected, 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 onwhether 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 anddesignated character sets, as well as the associatedshift 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 thecolumn 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.
Theline 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 contentsof 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 theMain 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 thesetting 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 TypeIf 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 aresult 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 theselected display (Main or Status) .

18.

Printer Functions
All printer functions are executed regardless of theselected display (Main or Status) .

19.

RIS - Reset to Initial StateThe Status Display will be erased and exited.

20.

Tabs
Tabulation stops affect both the Main and Status
displays.

14.2.414.2.4

Transmission of the Status Display
Transmission of the Status Display

The characters in the Status Display can be transmitted to theprinter by "Print Composed Main Display". Print Page and Auto
Print Mode will never transfer characters on the Status Display.
14.2.514.2.5Behavior 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 willremaIn visible, if it was enabled. The sequences which program orchange the type of the Status Display will not be recognized,
therefore the type of Status Display may not be changed from thehost 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 FUNCTIONSSEI,ECT ACTIVE STATUS DISPLAY
Levels:DECSASD2x, 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 theselective parameter, Ps:
Fs

DisplayaMain 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 StatusLine.

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<,

DECSSDT3, 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 TypeoNo Status Line
Indicator (Local) status Line
Host Writable (Remote) Status Line1

2
Notes:o

If Ps is omitted, it is assumed to be 0, which will
disable the Status Display.

oWhen 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 thecurrent status of the terminal.

oThis control has no effect on the Status Line displayedin 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 aUser-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.114.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 Typecontrol 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 futureterminal support for VT52 emulation.
It includes the features of
VT52 mode as documented in the VTI02 User Guide.
It does notinclude 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, thearchitecture does not include all of the features of the actual
vT52 products, because the intention of the architecture is todefine 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 andSoftware 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 containedI
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" isconsidered to be of potential benefit to the corporation andshould be followed unless there are good reasons for
non-compliance. "Guidelines" define approaches and techniquesiwhich 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 ofthis document.
.
I+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+II+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+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 Draft 22-0ct-1982
Revision 0.1
16-Nov-1982
Revision 0.2
19-Nov-1982
Revision 0.3
25-Dec-1982
Revision 1.0
03-Feb-1983
Revision AXOI
28-Feb-1983
Revision AXIO
15-May-1983
FILES: User Documentation

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 theVideo 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 inStandards 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

CONTENTSAPPENDIX A

VT52 EMULATION

A.l
A.l.l
A.l. 2INTRODUCTION .
Purpose
Scope

A.2
A.2.1
A.2.2
A.2 . 3

STATE DESCRIPTIONS .
Display . . . . .
Active Position . . . . .
Tab Stops, Fixed .

· A-7
· A-7

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-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.lModes.. . . . .
. . . . . . 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

INTRODUCTION

A.I.I

PurposePage A-5
l8-Mar-1985

VT52 Emulation defines a display service class for character cell
display operations.
The emulation defined here is a consistentand compatible subset of the functions provided by the actual VT52
family of DEC terminals and VT52 emulation mode as documented inthe 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 onby software.
Furthermore, the architecture does not include allof the features of the actual VT52 products, because the intentionof the architecture is to define the level 'of support necessary tomaintain software products which already run compatibly on theentire 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 notconsidered a formal part of the architecture, and is not arequir~d part of conforming product implementations.
DEC products
which implement this mode, however, should do so in accordancewith 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 theirprescribed values).
For example, VT52 emulation
assumes that tab stops are preset to modulus 8intervals_
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:oCharacter cell array with 80 columns X 24 linesoHome (1,1) at the top left cornero

No character attributesoNo line attributesoNo screen attributeso

ASCII character setoLine Drawing character set (* extension *)oTabs 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 andother 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 tothe 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, andthus no character is rendered in the visual display forthis 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 tomaintain 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 modeEnter 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 thestandard 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 withprinter 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 ModeLine 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 theVT52 emulator, application software should set thetabs to the VT52 settings before entering theemulator.
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 REPLACEMENTREPLACE 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 positionis 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_CHARACTERVAR
X: COLUMN_TYPE;BEGINDISPLAY[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 FUNCTIONSIDENTIFY
Purpose:Request terminal type identification.

Format:

ESC

z

1/11

5/10

Description:
The Identify command is a request from thecomputer 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 withan 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 theterminal 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 theActive 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 thedisplay 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 usedby application programs.
Notes:
1.

The codes produced by the keypad in VT52 mode are shownin 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 1Page 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 120PF2

ESC Q
033 121ESC Q
033 121PF3

ESC R
033 122ESC R
033 122PF4

ESC S
033 123

ESC S
033 123Key*** When numeric keypad mode is select (alternate keypadmode is off), the ENTER key generates the same charactersas the RETURN key. The RETURN key character code may beaffected by the setting of New Line Mode. When off, thismode 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 theFormat:

ESC

>

1/11

3/14

Description:
Auxiliary keypad keys generate characterscorresponding 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 inthe 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 andLine Drawing Set
Blank<> Diamondblotch (error indicator)
ht Horizontal tab
ff Form feed
cr Carriage return
If Line feedoDegree symbol+- Plus/minus
nl New line
vt Vertical tab.1 Lower-right corner
1Upper-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 toi-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/
degreesplus or minus
right arrow
ellipsis (Dots)divide bydown 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 ofthe 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 marginof 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 marginof 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

columnDescription:
The Direct Cursor Address control moves theactive position to the specified line and column.
The line andcolumn 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, anddecimal )11 (0, 6/15) refers to the eightieth column.
Notes:
1.

This command has range limits of 1 to 24 lines withparameters "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 noaction in that dimension, but if the other parameter isin 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 backwardin 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.

HTAdvance the Active position to the next Horizontal Tab

Format:HT
0/9

Description:
The HT control moves the Active position forwardin the display to th~ next Horizontal Tab Stop in the Active Line.
Notes:
1.

.

If no tabulation stop is reached before the end (lastcolumn) 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;BEGINREPEAT
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 DODISPLAY[Y,X]:= DISPLAY[Y+l,X];
FOR X:= 1 TO MAX - NUM - COLUMNS DODISPLAY[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 thefirst 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 DODISPLAY[Y,X]:= DISPLAY[Y-l,X];
FOR X := 1 TO MAX NUM COLUMNS DODISPLAY[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 endof 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 positionof the line to erase the complete line.

State Affected:
DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPEj OF CHARACTER TYPEi
Algorithm:
PROCEDURE ERASE_TO_END_OF_LINEi
VAR
X: COLUMN_TYPEi
BEGIN
FOR X:= ACTIVE - POSITION.COLUMN TO MAX - NUM - COLUMNS DODISPLAY[ACTIVE_POSITION.LINE,Xj.CODE:= EMPTY_CHARACTER;
END;
Known Deviations:

None

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 endof 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 positionof 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 DODISPLAY[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 DODISPLAY[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 andprinter 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 theprint operations can be selected from the terminal keyboard (auto,print and print screen).
When printing characters from the screen of the terminal, the tabstops of the terminal and printer are ignored.
Characters printed
are spaced using the space (SP, octal 040) character. After thelast 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 lastprintable 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 characterson 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 areprinted 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 notchanged.
The print cursor line operation ends when the line isprinted.
Notes:
1.

This operation can be selected from the keyboard of theVT52 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 theVT52 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 intheIntroduction.

2.

Added note to Scope indicating that conforming softwarewill
not use VT52 Emulation Mode.

3.

Added note to Scope indicating that all algorithms in
thisappendix are dependent on presetting of conditions before
entering
VT52 Emulation Mode.

4.

Removed the reference to ASCII as an "extension" in thelistof display features, and added the Line Drawing set as anextension.

5.

Corrected the display size from 132 columns tocolumns.

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 toexit to same level entered from.

S.

Added note to Enter VT52 Emulation Mode to indicate thatthephysical state of the terminal should not change.

9.

Added note to Enter VT52 Emulation Mode to indicate thatthere
is no action when already in VT52 Mode.

10.

Added a deviation note to Enter Alternate Keypad Mode fortheVT125.

11.

Cleaned up the note on the effect of New Line Mode on theEnter key.

12.

Corrected the description and the algorithm for Direct
Cursorchang~dse"software" to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
operatedon.
13.

Removed the note on the Active Position from thedescriptionof 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
alwaysreturns. ~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 ReturnVT52 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.4A- 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

-H-

Horizontal Tab
VTs2 control function
Horizontal Tabulation

A- 30
A- 7

- 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 ConformanceVT52.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

A- 5
A- 9

A-9

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 andSoftware 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 containedI
within this dpcument is assumed to define mandatory standards
I
unless it is clearly marked as (a) not mandatory orI(b) guidelines. Material which is marked as "not mandatory" isconsidered to be of potential benefit to the corporation andshould 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 ofI
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 theVideo 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 inStandards 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

CONTENTSAPPENDIX B
B.l
B .1.1PROGRAMMER'S GUIDEINTRODUCTION
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 CONTROLSTEXT ATTRIBUTES

B-6
B-6
B-6
B-6

CONTROL CODE EXTENSION TECHNIQUES· B-9• • • • • B-9
DESIGNING CONTROL SEQUENCES• • B-9B.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.lPrimary 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 ·REPEATTYPING 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.1lINTEGRATION OF GRAPHICS AND TEXT .
B-40. . .. .

VSRM - Programmer's Guide .EL-00070-0B*** COMPANY CONF - DEC Internal Use Only
B.lPage 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 toread 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, butthey are not expected to thoroughly understand the operation ofterminal 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 ofwhat 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 areintended to be certified as conforming to the Video Systems
Reference Manual.
It also applies to software which intends touse 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 GUIDELINESThe Video Systems Reference Manual contains performancerequirements for conforming equipment, as well as for conforming
software. A primary consideration for defining conformancerequirements for software is to maximize its independence from thedevice.
B.2.1

LEVELS OF ABSTRACTION

An effective approach for terminals application programming is topartition the effort into distinct levels of abstraction.
The
approach is effective for one person writing one program, orseveral people writing several programs.
The levels of
abstraction are the application program, the routine library, andthe operating system.
The routine library can be subdivided into
two parts:
a logical layer and a back end layer that deals withthe specific characteristics of the terminal being used.
B.2.1.1

Application Programs

The principal guideline for application programs is to avoid theuse of escape sequences and control sequences directly.
Applications should ,make calls to subroutines to perform therequired functions, including those at a higher level, such as
drawing a square or deleting a paragraph, or those higher than theindividual 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 thefeatures/idiosyncracies of the specific device into account.
Forexample, 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 theback end to perform the Insert Character function.
That techniquewould allow the application program to be written as though theInsert Character were available on any device, thus allowing thecustomer 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 theapplication independent of the device by utilizing several backends, 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 thecall interfaces. When it is necessary for the application toreceive 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 isallowed by the hardware.
There may be a need at times for an
application program to perform functions not provided by thelibrary, 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 asmuch as possible.

VSRM -Programmer's Guide. EL-00070-0B*** COMPANY CONF - DEC Internal Use Only
B.3

page B-8
15-May-1983

COMMUNICATION CONTROLSIt is necessary to clarify the TIA interface for switching a G-set
into the left half (GL) or the right half (GR).
Such switchingrequires the use of modes, which are problematic to handle insoftware. The software works far more efficiently if the data it
is operating on is independent of a mode context. The reason isthat a string passed from orie procedure to another encounters aprocedure barrier, making the switch a cumbersome one.
If theinterpretation 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 isassumed 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 unlesssome very explicit, well-documented additional mechanisms areused.
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 asdevice-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 ATTRIBUTESFor text applications involving attributes such as underlining,bolding, etc., an effective technique is to store both thecharacter 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

CONTROL CODE EXTENSION TECHNIQUES

8.4.1

DESIGNING CONTROL SEQUENCES

Page B-9
15-May-1983

The design of control sequences is more complex than escapesequences, due to the pr~sence of private parameters andintermediate characters.
Recommended procedure is to make thesyntax 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 betransmitted with the strings, slowing transmission time. A
tradeoff decision, therefore, between ease of programming andtransmission 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 totransmit a string of parameters, leaving spaces for omitted
parameters by inserting semicolons - which would transmit on theline and slow transmission time.
The optimum method for handlingomitted parameters is to program using the straightforward
approach (compacting strings) and put the parameter defaults atthe 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 parametervalues, they are usually constrained by the implementation; notall 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 recognizedby some devices.
The SRM also states that 16 parameters is therecommended maximum number for an implementation to allow in astring.
Though some implementations may allow more than that, it
is not safe to exceed that number; more than one string may berequired.

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 thatshould work under all states of the communications interchange.
Examples of communications line initialization are:(1) theoperating system broadcasting a message on a terminal while theapplication is running, (2) the application returning control tothe operating system, and (3) the application programmer
encountering a breakpoint during execution and entering thedebugger.
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 theterminal not accepting data, or could have switched in newgraphics (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 theterminal 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 beignored.
The sequence is printed on the terminal, and theterminal restored to a state in which it can accept new control orgraphic 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 theterminal 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, itwill communicate to the printer, but not to the terminal.
Therefore, if an application turns on Printer Controller Modeduring 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 thetype 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 shouldbe 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 SelectConformance Level control (ESC [ 62 " p, for Level 2 operation ).
To insure that it works on all devices, all control codes shouldbe 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 additionalsignificance to its interpretation. The interpreter normallyignores the Backspace, Carriage Return, and Line Feed charactersin a control string. Using an editor, however, it is possible toput those characters into a long control string in order to breakand edit the string without effecting its interpretation.
Backspace, Carriage Return, and Line Feed are recognized andinterpreted 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 ReGISText 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 particulardevic~.

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 notcurrently implemented by DEC products and should not be used bycomponent 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 thesemodes are set by the Select Conformance Level control, it should
not be necessary f6r conforming software to use them.
Settingthem via the DECSCL control allows them to be changed from thedefault 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 arecoded only as 7-bit - to accept 2-character Escape Fe sequences
without changes. New software, however, should be designed toaccept either the 7-bit or a-bit form, in order to give thesoftware independence from the terminal's mode setting.
Note that the terminal will accept data in any format from thehost, including 7-bit and 8-bit coding characters and 7-bit anda-bit Cl controls, regardless of the mode, since the modes effecttransmission 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 theoperating system. When the terminal is logged on, the operating
system should request the terminal's functional (and/or productspecific) 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 theterminal should be performed by the operating system rather thanby 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 nonecessity 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 ofthe 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 thedevice 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; eachhigher 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~ thefunctional capabilities, which are essentially options at eachlevel of the architecture; they mayor .may not be implemented in agiven 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 ofthe 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 goodpractice for operating systems to store the product specificinformation.
B.5.2.3

Identify Terminal Control

The Identify Terminal (DECID) control is provided for purposes ofbackwards compatibility with existing terminals.
It causes thefunctional characteristics to be returned - the same response as
the Primary Device Attributes - when the terminal is in Level 1 orLevel 2 Character Cell mode of operation.
It should not be usedby conforming software, because it uses an encoded representationthat 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 theapplication software to set the device to a specific level ofoperation 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 ofconformance.
The principal guideline in use of DECSCL is that theoperating system should always operate the device at its highest
level of conformance; it can be certain of this by selecting thehighest 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 theterminal 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, thestate 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 morefunctions, 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 andapplication B only 8-bit characters, the user could type toapplication A and, during its execution, type 8-bit charactersahead to application B. When application B executes, theoperating system will begin to accept the 8-bit characters andpass them on. The application interprets the correct terminal
mode at the point it actually calls the operating system forcharacters.
B.5.3

DEVICE STATUS AND TESTThe 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 beturned on and off. This mode can be used to eliminate cursor
fli~ering or bouncing while the display is reformatting bytUrning 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 shortperiods 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 andperform the function locally, without passing them on.
DEC assigns and maintains a designated, registered sequence foreach 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, suchas 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 thatsynchronization, 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 thatapplications clear type ahead only when an error has been
detected.
The application should call the operator's libraryroutine, which should call the operating system to clear typeahead. An application program should not clear type ahead whenstarting 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 andfour 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 morearguments be received in order to take action on a given argument.
Generally speaking, an action can take place from within thecontext of any of the argument types.
ReGIS actions can be visible or non-visible. An example of avisible action is the receipt of a position specifier while in a"V" (vector) state. The device would have enough information withthat 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.
Forfexample, 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 thatis pot too deep or extensive.
The user works from the context ofa specified command state, or at command level - outside thecommand state context.
If, for instance, ReGIS is synchronized bysome 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 themagainst_ReGIS arguments are self-delimiting; depending on thecurrent command context, ReGIS requires proper character types tostart 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 atpoints where state changes could cause problems or confusion is toinclude 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 out of synchronization with erroneoussyntax.
For example, ReGIS option specifiers are nested at
different levels, with each level using the same syntax as theentire instruction set.
If a leading or trailing (left or right)
parenthesis were omitted in any of the option sets, ReGIS would beout of synchronization. To write in the color red, for instance,
the instruction:
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-handparentheses 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 berecognized 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 ofsynchronization.
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 thescreen 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 beback 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 indicatedearlier, command syntax is interpreted as literal text characterswithin quoted strings).
The semicolon overrides the nesting levelof options, and provides a recovery mechanism for line errors,
programming errors and other conditions that put the system out ofsynchronization.
The semicolon is the simplest, most straightforward method ofsynchronizing .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 thesystem 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 thestate of the ReGIS interpreter is preserved across changes ofmode; in other implementations it has not.
For example, the VTl25
implementation allows transition from ReGIS to text mode and backto 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 toexit and reenter modes without restating the existing commandcontext; 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 ofmode; 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 theexecution of a Screen Erase function.

State initialization as a synchronization method {equires th~twhenever a Screen Erase function is performed, all optionalsettings (extensions to the ReGIS base logical device) must resetto their default values. A list of the options and theirrecommended 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 ofthought on this, however; the other one says to keep thelast 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

THE WRITING COMMAND

B.8.2.1

Writing Modes.

Page B-21
lS-May-1983

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 thethe foreground specifier, and is indicated by the l's in thepattern register.
The treatment of the O's in the pattern register differentiate thewriting modes. They are Overlay, Complement, Replace and Erase.
A fifth mode, Negate, may be used to cancel/modify any of theother four.
B.8.2.1.1

Overlay mode - W(V)

Overlay mode is the base ReGIS device drawing mode.
It isgenerally used as the default mode, since it is the moststraightforward and simplest to program and execute.
In Overlay
mode, alII's in the pattern register are executed into thedisplay, 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 - whenit 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 thepattern 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 isred, 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 abackground 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 tocomplement and O's td not modify the display.
Complement mode isalso 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 thatlocation.
The VTl25 display plane is two planes deep, and theintensity setting Itravels with' the drawing action, so to speak,and nothing is left over. After a Screen Erase, no locations havehidden 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 isfor putting the display back to its original state; this action
occurs if the same sequence of instructions is executed twice inComplement mode.
The results of one execution of Complement modeare 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 (thecursor) could be executed, and then re-executed in Complement (soit goes away), producing a Iblinking effect' that the user could
predict and have temporal control over. Another possible use forComplement mode is to highlight a field while in Shading blockmode.
Then with a re-execution of the Complement operation, thedisplay would revert to its previous state - un-highlighted andotherwise un-modified.

aComplement Mode should be implemented only where the programmer
has complete control over the display medium.
In moresophisticated 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 forsystems 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 originalstate 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 ashaded 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-featurebasis, though this use can leave background Iholes' incertain 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 thepattern 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 isnormal.
Negate used with Complement, Erase, and Overlay do nothave 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) rasterdevices.
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 aretransportable to a wide range of devices, but theircost/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.lPage B-25
l5-May-1983

SCREEN INSTRUCTION
Hard Copy Commands

The ReGIS Extension states that the S(H) command is used toretransmit 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 Scommand 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 SpaceOne 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, theapplication will be programmed for that particular device and will
not transport to other devices. A good approach to this would beto 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, theemulation and square pixel conversion has already been accountedfor.
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 alarge 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 ata higher level than ReGIS, and could be utilized above
combinations of protocols. ReGIS and NAPLPS, for example, aretext 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 invokedfrom within individual parsers to pullout its stream; this ispossible 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 anindividual 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-specificmacro encodi~g built arQund a particular character, in this casethe lat' sign character (@). This specified character never goes
into the ReGIS parser, regar~less of context or current state ofinterpretation, 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 themacrograph 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 thecontents of which began with a "V", the ReGIS context would bechanged to the Vector interpretation state and the remainder ofthe macrograph read within that context. Each character 'containedin 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 ofmacrographs is recursive.
It should not be assumed that theentire contents of one macrograph will fall 'directly into the
ReGIS state. One or more of the commands may be invoking othermacrographs.
B.8.6.2

Macrograph Invoking Itself

A macrograph cannot invoke itself.
Invocation of macrographs isentirely deterministic and non-conditional, since there are no
conditionals in ReGIS.
Therefore, it would not be possible torecognize an lexit' condition in a macrograph that invoked itself.
For example, a path from macrograph D through other macrographsthat 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 tocommand 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 macrographis accessed.
For instance, it would signal when macrograph D werebeing 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 andrecovery recognition scheme is the responsibility of theimplementation; the ReGIS Extension does not impose one.
B.8.7

MACROGRAPH STORAGE

ReGIS provides for exactly 26 separate macrographs, irrespectiveof implementation. While the ReGIS Extension calls for a minimumof 4000 characters macrograph storage, this may be an
implementation dependent value due to device limitations. Shoulda user need to know the amount of available macrograph storage
space, a ReGIS inquiry function exists which allows the user tointerrogate the system. Otherwise, a 4000 character storage spaceshould 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 themacrograph storage.
The Report command, for example, can sendback 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 anothermacrograph, it cannot define its storage because macrographdefinitions cannot be nested.
The macrograph initiator andterminator 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 andnearly all macrograph parsing. At that point, the only constructwhich will not be stored in a macrograph is the terminator.
Itis, therefore, impossible to nest macrograph definitions.
Thefollowing 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 thesecond instruction (@:B) would not be recognized at the macrographstorage 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 ofmacrograph A would be passed along to the parser, since all themacrograph storage constraints would have been satisfiedi thefinal (@i) would simply ,act as a spurious terminator.
B.8.8

MACROGRAPH UTILITY

B.8.8.lSpecifications

Macrographs have been u~ed effectively for storing combinations ofspecifications. Although ReGIS technically does not have thecapability for named variable storage, macrographs can provide thecapability 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 thespecification being retransmitted as several characters from thesource.

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 writemodes changed outside the macrograph.
For example, Shading mode
could be turned on, and the macrograph invoked; this would draw ashaded area iri the shape of a polygon.
Shading could then be
turned off, the macrograph invoked again, the color changed andthe border drawn around the polygon.
Thus, the description of thepolygon 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 usermay want to draw an icon that can be stored away for repetitiveuse, such as a Stop sign, for example, to be displayed at
different places on the screen at different times. A line drawingof the picture could then be plotted out using only relative
coordinate specifiers within vector imposition commands as thefollowing 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 adesired 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.
Ifwriting 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 Locatormode 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 ofpoints are first connected with vectors and then with curves.
Another use for this type of curve construct is to invoke adifferent 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 togenerate 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 andexecute 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 thewrite 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 themacrograph to restore the user write map settings again.
Thefollowing 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 canthen perform other operations, changing the write map if
necessary, restoring the user settings with the macrographafterwards.
State features such as the Write map are not accessible to theReport command of ReGIS; in a system application such as
Datatrieve, the system and the application both have access tothat feature of the machine.
Macrographs are used in this case toprevent the competing entities from writing to the same extent(without making private copies of that extent), so it can berestored later in an unambiguous fashion.
B.8.8.6

Text

Macrographs have limited application for standard cell text; mostindividual 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 usedfrequently, macrographs can be used to refer to them byabbreviations.
This would be keeping with coding efficiency
principles that advocate using the least number of characters as
possible.
Storing text increating menus;
local buffering
provide anothermacrographs also presents the possibility of
it is a combination between display lists andof 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.lPage B-33

Quoted Strings

A caution in using macrographs for text is that they are notrecognized or interpreted within quoted text strings. Therefore,
it is not possible to use a Text command to invoke a macrographcontained 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 inmacrographs will produce erroneous results.
The following sample
instructions invoke macrograph X containing a Text command, quotecharacter and the first part of a quoted string, followed bymacrograph 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)@Yand 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 foruse as display segments.
In most instances, the complexity
required to support segmented displays is beyond the scope thatcan 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, withinthose limitations.
Pieces of pictures, each treated as a segment,
could be stored ~way in macrographs and executed in turn.
~roperWrite 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 alimited 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, theinstruction is T(SI).
For double-size characters, the instruction
is T(S2).
Another text sizing method is to use the Sand H options withinteger 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 andthree 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 thefact that the character definition as loaded into the program ROM,or down loaded in the Load Character extent, is treated as alogical 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, butdoesn't provide for a way to know the actual size of thecharacters, 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 willbe 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 theamount of screen area the character will take up. The U option
should be understood in order to figure out how to gettransportability across various text resolution displays. Whenused 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 anecessity; the handling of detailed text in ReGIS is complex andhighly 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 thecharacter 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 ofgraphs, or can be used in other applications as well.
A D90 instruction without the (5) specifier simply rotates thecharacters 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 theimplementation can support.
The simplest and most portablecharacter orientation is in 90 degree increments, though 45 degreeincrements 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 specificcontrols.
Using a bracketed argument with the T command, forexample, forces an intercharacter space setting that overrides any
space defaults set by the character size.
This can be used tochange the perceived orientation of the lines of the character,the character path. An example of a character path altered inthis 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 thebase logical device, since text re-orientation (see above) is notpossible in the base logical device. Carriage return returns tothe 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 noreorientation, 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; thisis 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 thebaseline orientation to either the position at the beginning of
the T command, the beginning of the last quoted extent, or to thepoint at which the last Line Feed was encountered. Using CR and
LF control characters, it should be possible to do a rotated blockof 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 characterorientation. These three controls also provide a shorthand methodof putting the drawing point at a predictable location;
alternative methods of accomplishing this are either to use thepixel 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 verticaltab, 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 ofmoving 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 tomove 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 characterheight, 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 thetext 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 theraster and open extensions.
B.8.9.4

Scrolling and Wrap

ReGIS has no provision for scrolling or wrapping text, making it avery limited tool for general text purposes.
Since there is noscreen 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 ofthe 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 andhighly 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 aroundwithin the data address space".

VSRM - Programmer's Guide EL-00070-0B*** COMPANY CONF - DEC Internal Use Only
B.8.l0Page 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 notpossible to color a figure 20% red, 40% green, and 8% blue. The
only ReGIS possibility with the RGB alphabet is to specify thedistinct 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 froma human point of view, since it is based on a perceptual model.
It identifies a set of dimensions for color specifications that. isbased 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 uponan 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 isadjusted.
The L parameter adjusts color lightness to specify how bright or
dim the color is. The S parameter indicates how pastel the shadeis - how much that color varies between a gray and a purepresen~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 modelhas well.-defined end points and, while it is not linear along anyof the axes, it can be interpreted as linear for the rough scaleof 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 ona 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 grayscale are used (such'as bright blue and dim green in television)
they could 'collide', or map to the same shade on the ReGIS grayscale. 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.llPage B-40
l5-May-1983

INTEGRATION OF GRAPHICS AND TEXTReGIS provides very limited control over registration between text
and graphics, particularly across devices, or when the text iscreated with other than the ReGIS Text command.
For example, anattempt to use VT100 text as captions for VT125 figures would beseverely 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, orwhether 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 modeof the VT240 instead of with the ReGIS Text command.
The real utility of integrating editable text with graphics isthat while composing, the user views the work outside of thecontext 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.
Someexamples 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 orpart 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 commandexclusively, and not mix graphics text with text mode text.

A
B

C
D
ABCD
ABCDEFGHIJKLMNOPQRSTUVWXYZABDE•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 programsuse by applications programs

B-39
B-l1
B-6
B-9

-D-

DAl
DA2
DEC STD 169
PEC Supplemental Graphics
DECARM
DEClD
DECSCL
DECTCEMDECTST
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 spacecharacter orientation
color map
extensions
hard copy
initialization
macrographpixel 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
, B- 38

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/XOFFB-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 beencertified 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 andSoftware 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" isconsidered to be of potential benefit to the corporation andshould 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 ofthis 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 theVideo 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 inStandards 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

CONTENTSAPPENDIX CPRODUCT REFERENCE

C.I

PRODUCT/ARCHITECTURE MATRIXC.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.lPage 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 conformancerequirements described the chapter "Conformance Requirements".
Products which are planned to be certified but have not yet beentested 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

- - - - - - -- - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --UDKXX
- - - - - - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -**********
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 theresults of RAINBOW Certification.
Each deviation that was listed
in the Certification Report of 20-DEC-82 was discussed andagreement 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 bechanged to eliminate the deviations between it and thearchitecture (see section 1.0 below).
In some cases, the changes
are scheduled for the first or second planned ECO release, but inall cases, a commitment was made to fix the problems by the next
generation release.
Because only part of DEC Standard 169 was implemented, and someproblems exist with this and other Level 2 issues, a restrictionis placed on the advertising of this product.
Examples of thepartial/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, butadvertising the fact that a subset of DEC Multinational isavailable 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 uponin 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 PRODUCTFor 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) <BS> - Backspace
If the screen is set to 132 column mode and the cursor ispositioned beyond column 127, the reception of the backspacecontrol will position the cursor to the left margin.
2) <ESC> [ 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 isreleased.
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 todisappear.
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 berepeated 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 needclarification.
1) SETUP
Entering SETUP resets keyboard action mode and turns off keyboard
locked indicator.
The architecture will be changed to state thatentering 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 whenpressed 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 PROCESSFor items in this category, it is agreed that the certification
process was in error in that it either failed to properlyinterpret the architecture or failed to properly test the product.
1) <ESC> 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 deadkeys 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 bemade at this time to the product, the architecture or thecertification procedures. By granting this waiver, the Panel isexpressing the opinion that it considers the issue insufficientcause for the product to fail certification.
1) <ESC> c - Reset to initial state:
RIS fails to accomplish a complete reset.
recommended sequence to execute.
2) -<ESC> [ ?

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 istested while RAINBOW is in SET-UP or Hold Screen mode. At thistime the buffer stores 235 characters before sending XOFF to thehost.
However, when RAINBOW exits SET-UP or Hold Screen mode, thescreen 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) CONTROLThe following keys did not produce any codes when pressed with
control:
EOO, E02, E03, E04, E05, E06, E07, E08, B10.
6) <ESC> [ p K , <ESC> [ p J - Erase in line /Erase in display.

The RAINBOW escape sequences for erase in line and erase indisplay 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 <ESC> 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 sequencecodes.
10) PHYSICAL CONNECTORSThe female OB-25 connector on the back of the RAINBOW is notcompatible 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

RESTRICTFor 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 orother 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 forresolution, and will present it to upper management for adecision.
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 theresults of DECMATE II Certification. Each deviation that waslisted in the Certification Report of 06-JAN-83 was discussed andagreement 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 asa Levell Device.
Many waivers were granted on the basis that the product would bechanged to eliminate the deviations between it and thearchitecture (see section 1.0 below).
In some cases, the changes
are scheduled for the first or second planned ECO release, but inall cases, a commitment was made to fix the problems by the next
generation release.
Because only part of DEC Standard 169 was implemented, and someproblems exist with this and other Level 2 issues, a restrictionis placed on the advertising of this product.
Examples of thepartial/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 uponin 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 PRODUCTFor 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) <ESC> # 8 Screen Alignment
Sometimes when <ESC~ # 8 is sent, the screen alignment grid
pattern is not displayed until some additional character or escapesequence is sent.
On other occasions, this works properly.
2)

<~SC>

# 3, <ESC> # 4,

<ESC> # 6 Line Attributes

1.

When a command is sent to set a line to Single-Height
Double-Width characters, no change takes place until acharacter 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 attributefor that line but sets it instead for the next line andthen only if a character or escape is sent on that line.

3.

The sequence <ESC>[H <ESC>#6 <CRLF> <ESC>#6 fails to set
the proper line attribute for line one.
Similarly forother line attributes.

4.

When followed by a test string loses characters incolumns 31 to 40 and displays the characters from asubsequent line.

5.

When followed by a tab fails to display subsequentcharacters output to the line.

3) <ESC> [ ?

15 n - Request Prjnter Status

DECmate II does not respond to the request for printer status.
4) <ESC> [ c - Device Status Report
DECMATE II responds with <ESC>[?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) <ESC> [ 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 aretransmitted. 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 <ESC>[[[[[ is sent, the extraneous "["'sare not displayed.
In some cases, it gets so confused that a<CAN> 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) <DEL> Processing
If a <DEL> is embedded in an ESCAPE sequence, the sequence isaborted.
<DEL> 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 bellsounds 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 needclarification.
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 PROCESSFor items ·in this category, it is agreed that,the certification
process was in error in that it either failed to properlyinterpret 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 bemade at this time to the product, the architecture or thecertification procedures. By granting this waiver, the Panel isexpressing the ~pinion that it considers the issue insufficientcause for the. product to fail certiffcation.
1) "\" (Backslash)"\" does not transmit a code on alternate pressings_ That is tosay 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" hasnot 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

RESTRICTFor 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 orother 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 agreeonresolution for the issue or on the proposed time frame forresolution, and will present it to upper management for adecision.

aThere 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 theresults of PRO 350 Certification. Each deviation that was listed
in the Certification Report of 24-JAN-83 was discussed andtentative agreement was 'reached in every instance as ta"how thedeviations would be resolved.
In the weeks that followed, upper management was made aware ofthese decisions and has not objected to any of them. Some waivers
were granted on the basis that the product would be changed toeliminate the deviations between it and the architecture. In allcases, 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 asa 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 uponin 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 PRODUCTFor 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) <ESC> [?

8 h - Autorepeat

The function keys Backspace, Linefeed, and Tab do not autorepeat.
The architecture states that all keys except RETURN should
autorepeat.
2) <ESC> [ c - Device Attribute Report
PRO. 350 responds with <ESC>[?12;7iOi102c which is not the proper
response for a LEVEL 1 device.
Since software currently does notsupport the architectural identification scheme, it is agreed thatcertain 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[?6cD) If the emulator is in VT52 mode:
ESC\Z3) Break Key
The Break key sends <BREAK> 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 breakshould 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 Only5) <ESC> \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 "<ESC>Pp" ReGIS ccintrol string, and it is inoperative for theothers.

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 needclarification.
1) <ESC> [ ?

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 toeliminate a specified requirement for the delay between receipt ofautorepeat and when the function takes effect.
.
2) Answerback
Answerback message is notchanged to put Answerback"exceptions". This means
required for conformance,
certifications.
3) <ESC> [?

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 PROCESSFor items in this category, it is agreed that the certification
process was in error in that it either failed to properlyinterpret the architecture or failed to properly test the product.
1) <ESC> [ Pn @ - Insert Character
The Certification group reported that Insert Character was not
implemented. After the problem was reported, the architecture waschanged to no longer require this implementation in Levell but torequire 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 thecertificaticn procedures. By granting this waiver, the Panel isexpressing the opinion that it considers the issue insufficientcause for the product to fail certification.
1) <ESC> [ 2 h - Keyboard Action Mode
Keyboard Action Mode is turned off whenever SET-UP is entered andexited.
2) Key Processing
The El - ES, F6 - FlO, and Fl4 - F20 keys do not output codes but
do click. They should not click.
3) <ESC> [ 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) <ESC> 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

RESTRICTFor 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 orother 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 forresolution, and will present it to upper management for adecision.
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 theresults of VT240jVT24l Certification.
Each deviation that waslisted in the Certification Report of lO-NOV-83 was discussed andagreement 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 asa Level 2 Device.
One waiver was granted on the basis that the product would bechanged to eliminate the deviations between it and thearchitecture (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 uponin 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 PRODUCTFor 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 ispositioned below the bottom margin should be ignored by theterminal. The VT240 will crash if this is attempted. Due to thefact 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 needclarification.
1) EXIT VT52 MODE leaves the terminal in LEVEL 1.
Sending the escape sequence to EXIT VT52 MODE will leave theterminal 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 PROCESSFor items in this category, it is agreed that the certification
process was in error in that it either failed to properlyinterpret 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 bemade at this time to the product, the architecture or thecertification procedures. By granting this waiver, the Panel isexpressing the opinion that it considers the issue insufficientcause for the product to fail certification. As noted in thedescriptions below the panel reccomends that certain of these beconsidered 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 isheld down, a RETURN code will be transmitted by the terminal.
This is a problem with the ~K201 that cannot be solved by theterminal firmware.
2) ESC or CSI embedded in escape sequences is not always handledcorrectly.
The SRM calls fo~~SC and CSI to abort escape sequences inprogress.
If an ESC or CSI is sent to the terminal during theprocessing of a DEC PRIVATE control sequence, the sequence is notalways aborted correctly. Attempts were made to fix this problem,
but Certification testing was unable to verify that all instancesof 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 thepossibility of causing product compatiblity problems, the productwill 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.
Theterminal 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 productwill 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 isoperating 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 notdepend 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.
Theterminal allows the cursor to enabled/disable while the terminalis 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 notdepend 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 theprinter. 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 printersthat 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

RESTRICTFor 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 orother 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 forresolution, and will present it to upper management for adecision.
There were no items in this category.

VSRM - Product Reference EL-00070-0C*** COMPANY CONF - DEC Internal Use Onlyc.6

VAXstation Workstation /Page C-33
l8-Mar-1985

lO-JUL-84

The Certification Waiver Panel met on lO-JUL-84 to review theresults of VAXstation Certification.
Each deviation that waslisted in the Certification Report of lO-JUN-84 was discussed andagreement 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 asa Level 2 Device.
Ten waivers were granted on the basis that the product would bechanged to eliminate the deviations between it and thearchitecture (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 uponin 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 PRODUCTFor 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.

<ESC>[?8h or <ESC>[?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), theterminal 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 fora Level 2 device.
On the vaxstation, a maximum of 20
characters are allowed, the number depending on the sizeof 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[2lsequences.
(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, forexample), and then CTRL is held down the autorepeatingstops, and the appropriate control code (CTRL/A in thisinstance) 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 needclarification.
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 properlyinterpret 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 bemade at this time to the product, the architecture or thecertification procedures.
By granting this waiver, the Panel isexpressing .the opinion that it considers the issue insufficientcause for the product to fail certification. As noted in thedescriptions below the panel reccomends that certain of these beconsidered for fix in a future release of the product.
1.

SCROLLING MODE can not be altered, therefore <ESC>[?4h or<ESC>[?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 orother 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 forresolution, and will present it to upper management for adecision.
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 theresults 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 isthat VT220 has PASSED CERTIFICATION WITH WAIVERS as a Level 2
Device.
Five waivers were granted on the basis that the product would bechanged to eliminate the deviations between it and thearchitecture (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 uponin 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 PRODUCTFor 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 modeis set.
.

2.

Erase in Display from beginning of display to active
position does not reset the line to single width whensent 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 thedefinition is assigned correctly. The SRM states thatthe result of including any invalid characters isundefined, but recommends that these characters be
ignored for future compatibility.

5.

When the terminal is set to eight bit printer port, theVT220 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 needclarification.

2.
Top row function keys (F6-F20) are inoperative when pressedwith 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 beaffected by CTRL and/or SHIFT.
It will be changed to reflect thatthe 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 thatthese 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 notincluded in the SRM, but are implemented by the terminal.
They
are:
Section Symbol - Compose Sl
Compose IS, and Backslash Compose /< and Compose <I.
These control sequences will be added to the architecture.
6_
In VT100 mode, multinational, with British keyboard, typing
the British pound key generates and displays "I".
This key should
be dead in level 1 mdde since it represents an 8 bit DEC
Supplemental character.
The architecture will indicate that there is an exception to thisrule for the British keyboard.

VSRM - Product Reference EL-00070-0C*** COMPANY CONF - DEC Internal Use Only
CATEGORY 3:

Page C-42
18-Mar-1985

CHANGE THE CERTIFICATION PROCESSFor items in this category, it is agreed that the certifi~ation
process was in error in that it either failed to properlyinterpret the architecture or failed to properly test the product.
There were no items in this category.

VSRM - Product ReferenceEL-00070-0C*** COMPANY CONF - DEC Internal Use Only
CATEGORY 4:

Page C-43
18-Mar-1985

WAIVE BY AGREEMENT OF THE PANEL

For items in this category, it is agreed that no change is to bemade at this time to the product, the architecture or thecertification procedures. By granting this waiver, the Panel isexpressing the opinion that it considers the issue insufficientcause for the product to fail certification. As noted in thedescriptions below the panel reccomends that certain of these beconsidered for fix in a future release of the product.
1.

Pressing or Releasing SHIFT can cause multiple returns tobe sent.
If the SHIFT key is
key is held down, athe terminal.
This
4annot be solved by

2.

pressed or released while the RETURN
RETURN code will be transmitted by
is a problem with the LK201 thatthe terminal firmware.

Under some circumstances more than one BELL ring occurs
when there should only be one.
Again, this is a problem with the LK201 that cannot be
solved by the terminal firmware.

3.

Text Cursor Enable Mode (TCEM) is allowed in Levell
mode.
The DECTCEM control is specified to be a.LEVEL 2
function.
The terminal allows the cursor toenabled/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 theimplementation in a future release.
Software should notdepend 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
CATEGORY 5:

Page C-44
l8-Mar-1985

RESTRICTFor 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 orother 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 forresolution, and will present it to upper management for adecision.
There were no items in this category.

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page D-l
l8-Mar-1985

VIDEO SYSTEMS REFERENCE MANUAL
Documented Exceptions
Document Identifier: A-DS-EL00070-0D-O Rev. AXIl, l8-Mar-1985

ABSTRACT:This appendix contains the specification of terminalfeatures which are considered exceptions to the architecture. As
exceptions, they are not required of conforming hardware
implementations, and will not be used by conforming software.
However, when implemented, they should be implemented according tothis standard in order to insure consistency of behavior acrossproducts.
APPLICABILITY:SARA Formal Cross-Component Standard. Mandatory
for Engineers designing hardware for terminal products andSoftware 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 mater~al 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" isconsidered 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 ofthis document.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --++- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+!

I
I

FOR INTERNAL USE ONLY

I
I.!

+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page.D-2
18-Mar-1985

TITLE: VIDEO SYSTEMS - Documented Exceptions
DOCUMENT IDENTIFIER: A-DS-EL00070-0D-O Rev. AXll, 18-Mar-1985
REVISION HISTORY:

Revision AXIO, 15-May-83

FILES: User Documentation

EL070SD.mem

Internal Documentation EL070SD.rno
EL070SD.rnt
EL070SD.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 theVideo 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 inStandards and Methods Control.
Direct requests for further information to Peter Sichel,PK03-1/1.0C, 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 - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page 0-- 3
l8-Mar~l985

CONTENTSAPPENDIX D

DOCUMENTED EXCEPTIONS

D.1

INTRODUCTION . •

· 0-4

0.2

RESET TO INITIAL STATE .
Reset to Initial State

· 0-5

D.3
0.3.1
0.3.2

ANSWERBACK
Description
Control Function .

· 0-9
· 0-9
0-10

0.4

DEVICE TEST AND STATUS .

0-11

0.5

SEND/RECEIYE MODE

0-12

0.6
0.6.1
0.6.2

AUTO WRAP MODE . . .
Description
Control Function •

D.7
0.8

'CONTROL REPRESENTATIOt-l MODE
SCREEN ALIGNMENT . .

0-16
0-18

0.9

LOCAL FUNCTION KEYS

0-20

0.10
0.10.1

CHANGE HISTORY
Rev AXI0 To AXIl .

0-22
0-22

.

. . . .

0-13
0-13
0-15

•

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.l'Page D-4
l8-Mar-l985

Introduction

The specifications contained in this appendix comprise a registryof exceptions to the architectural structure, which are intended
to serve as guidelines to hardware implementors. These features
are not required for conformance, and they will not be tested as apart of the certification process. It is recommended, however,that when implement~d they be implemented in their entirety, andas closely as possible to the descriptions provided herein.
Software is warned against the use of any of these functions,since they are not required and are not likely to be implemented
in all products.

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.2

Page D-5
18-Mar-1985

Reset to Initial StateRISRESET TO INITIAL STATE
Purpose:Format:Reset the terminal to power-up condition.ESC

c

1/11

6/3

Description:
When this control is received all state in theterminal is set to their default values.
Notes:
1.

Conforming software will not use the RIS control, butshould use the Soft Terminal Reset (DECSTR) in Level 2
operation to put the terminal into a known state.

2.

The default values of a certain state in some
implementations may-be set and stored under local control
by the terminal user _(e.g., Set-Up and non-volatile RAM
or ~ disk) as well as remotely.
In such implementations
RIS will set the storable state to the values selected by
the terminal user.
Therefore software cannot rely on thevalues of this state after an RIS is executed.
Thevalues given in the algorithm below apply only to those
implementations in which the state can not be set andstored locally by the terminal user.
The state definedby the architecture to which this indeterminate condition
may apply is limited to the following:
CONFORMANCE_LEVEL: (LEVEL_I,LEVEL_2);
COLUMN_MODE: (EIGHTY,ONE_THIRTY_TWO)i
SCROLLING_MODE: (JUMP,SLOW)i
SCREEN_MODE: (NORMAL_SCREEN,REVERSE_SCREEN)i
AUTO_WRAP_MODE: (WRAP_OFF,WRAP_ON);
TEXT_CURSOR_ENABLE_MODE: (TEXT_CURSOR_OFF,TEXT_CURSOR_ON);
INSERT.REPLACEMENT_MODE: (REPLACE,INSERT)i
NEW_LINE_MODE: (NEW_LINE_OFF,NEW_LINE_ON);
HORIZONTAL_TAB_STOPS: AR~Y [MAX_NUM_COLUMNS] OF BOOLEAN;
AUTO_REPEAT_MODE: (REPEAT_ON,REPEAT_OFF)i
CURSOR_KEY_MODE: (CURSOR,CK_APPLICATION)i
KEYPAD_MODE: (NUMERIC,KP_APPLICATION);
CAPS_SHIFT_LOCK_MODE: (CAPS_LOCK,SHIFT_LOCK)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_DISPLAY,PRINT_SCROLLING_REGION);
GRAPHICS - CURSOR - ENABLE - MODE:(GRAPHICS_CURSOR_OFF,GRAPHICS_CURSOR_ON)iVSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
3.

Page D-6
l8-Mar-1985

The DRCS and UDK definitions are also cleared in Level 2
operation.

State Affected:
CONFORMANCE_LEVEL: (LEVEL_l,LEVEL_2);
IN_USE"TABLE: IN_USE_TABLE.TYPE;DESIGNATED_GRAPHIC_SETS:ARRAY [GO .. G3) OF GRAPHIC.CHARACTER_SET_TYPE;
IN_CONTROL_STRING: BOOLEAN;
Cl_TRANSMISSION_MODE: (SEVEN.BIT,EIGHT.BIT);SINGLE_SHIFT: (NONE,SS2,SS3);
TOP.MARGIN: LINE. TYPE;
BOTTOM. MARGIN: LINE. TYPE;
CURRENT.RENDITION: CHARACTER.RENDITION.TYPEi
LINE.RENDITION: ARRAY [LINE. TYPE) OF LINE_RENDITION. TYPE;
COLUMN.MODE: (EIGHTY,ONE.THIRTY.TWO);SCROLLING.MODE: (JUMP,SLOW);SCREEN.MODE: (NORMAL.SCREEN,REVERSE_SCREEN);
ORIGIN_MODE: (ABSOLUTE,DISPLACED);
AUTO_WRAP_MODE: (WRAP.OFF,WRAP.ON);
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);DISPLAY: ARRAY [LINE_TYPE,COLUMN.TYPE] OF CHARACTER TYPE;ACTIVE_POSITION: CHARACTER.POSITION.TYPE;CURSOR. SAVE. BUFFER: SAVE.BUFFER.TYPE;HORIZONTAL. TAB. STOPS: ARRAY [COLUMN_TYPE) OF BOOLEAN;
LAST. COLUMN. FLAG: BOOLEAN;
KEYBOARD.ACTION.MODE: (UNLOCKED,LOCKED);
AUTO.REPEAT.MODE: (REPEAT.ON,REPEAT.OFF)i
CURSOR.KEY.MODE: (CURSOR,CK.APPLICATION);KEYPAD.MODE: (NUMERIC,KP.APPLICATION);
CAPS.SHIFT.LOCK.MODE: (CAPS.LQCK,SHIFT_LOCK);COMPOSE.MODE: (COMPOSE.OFF,COMPOSE.ON);
AUTO_PRINT.MODE: (AUTO.PRINT.OFF,AUTO.PRINT.ON);
PRINT. FORM. FEED.MODE: (PRINT.FF.OFF,PRINT.FF.ON);
PRINT. EXTENT.MODE:(PRINT.SCROLLING.REGION,PRINT.DISPLAY)i
GRAPHICS . CURSOR . ENABLE . MODE:(GRAPHICS.CURSOR.OFF,GRAPHICS.CURSOR ON)i
REGIS.GRAPHICS.MODE: (REGIS.OFF,REGIS.ON);
SIXEL.GRAPHICS.MODE: (SIXEL.OFF,SIXEL.ON)iVSRM - Documented Exceptions EL-00070-D.
*** COMPANY CONF - DEC Internal Use Only

Page D-7
l8-Mar-1985

Algorithm:
PROCEDURE RESET_TO_INITIAL_STATE;VAR
Y: LINE_TYPE;
X: COLUMN_TYPE;
BEGIN(* see Note 1 *)CASE SERVICE_CLASS OF
61: CONFORMANCE_LEVEL:= LEVEL_I;
62: CONFORMANCE_LEVEL:= LEVEL_2;
END;
IN_USE_TABLE.CO:= ASCII_C;
IN_USE_TABLE.GL:= ASCII_G;
IN_USE_TABLE.INVOKED_GL:= GO;
IN_USE_TABLE.Cl:= SUPPLEMENTAL_C;
IN_USE_TABLE.INVOKED_GR:= G2;
CASE CONFORMANCE_LEVEL OFLEVEL 1:BEGIN
IN_USE_TABLE.GR:= ASCII_G;
Cl_TRANSMISSION_MODE:= SEVEN BIT;END;
LEVEL_2:
BEGIN
IN_USE_TABLE.GR:= SUPPLEMENTAL_G;
Cl_TRANSMISSION_MODE:= EIGHT_BIT;
END;
END;
SINGLE_SHIFT:= NONE;
IN_CONTROL_STRING:= FALSE;
TOP_MARGIN:= 1;
BOTTOM _MARGIN :'= MAX _NUM _LINES;
DESIGNATED_GRAPHIC_SETS[GO):= ASCII_G;
DESIGNATED_GRAPHIC_SETS[Gl):= ASCII_G;
CASE CONFORMANCE LEVEL OFLEVEL 1:BEGIN
DESIGNATED_GRAPHIC_SETS[G2):= ASCII_G;
DESIGNATED_GRAPHIC_SETS[G3):= ASCII_G;
END;
LEVEL 2:BEGIN
DESIGNATED_GRAPHIC_SETS[G2):= SUPPLEMENTAL_G;
DESIGNATED_GRAPHIC_SETS[G3):= SUPPLEMENTAL_G;
END;
END;
CURRENT_RENDITION[BOLD):= FALSE;CURRENT_RENDITION[UNDERSCORE):= FALSE;CURRENT_RENDITION[BLINK):= FALSE;CURRENT_RENDITION[REVERSE):= FALSE;COLUMN_MODE:= EIGHTY;(* see Note 1 *)(* see Note 1 *)SCROLLING_MODE:= SLOW;SCREEN_MODE:= NORMAL_SCREEN;(* see Note-l *)ORIGIN_MODE:= ABSOLUTE;VSRM - Documented Exceptions EL-OO~70-D*** COMPANY CONF - DEC Internal Use Only

Page D-8
IB-Mar-1985

AUTO_WRAP_MODE:= WRAP_9FF;( * see Note 1 * )TEXT_CURSOR_ENABLE_MODE:= TEXT_CURSOR_ONi( * see Note I * )INSERT_REPLACEMENT_MODE:= REPLACE;( * see Note 1 * )NEW_LINE_MODE:= NEW_LINE_OFF;( * see Note 1 * )FOR Y:= 1 TO MAX_NUM_LINES DO
BEGIN
FOR X:= 1 TO MAX_NUM_COLUMNS DODISPLAY[Y,X].CODE:= EMPTY_CHARACTER;
LINE_RENDITION[Y]:= SINGLE_WIDTH;END;
ACTIVE_POSITION.LINE:= 1;
ACTIVE_POSITION.COLUMN:= 1;
HORIZONTAL_TAB_STOPS[l]:= FALSE;(* see Note 1 *)FOR X:= 2 TO MAX_NUM_COLUMNS DO
IF X MOD B = 1 THEN HORIZONTAL_TAB_STOPS[X]:= TRUEELSE HORIZONTAL_TAB_STOPS[X]:= FALSE;(* see Note 1 *)LAST_COLUMN_FLAG:= FALSE;SAVE_CURSOR;KEYBOARD_ACTION_MODE:= UNLOCKED;
AUTO_REPEAT_MODE:= REPEAT_ON;(* see Note 1 *)CURSOR_KEY_MODE:= CURSOR;( * see Note 1 *)KEYPAD_MODE:= NUMERIC;( * see Note 1 *)CAPS_SHIFT_LOCK_MODE:= CAPS_LOCK;( * see Note 1 *)C~OSE_MODE:= COMPOSE_OFF;
AU!O_PRINT_MODE:= AUTO_PRINT_OFF;(* see Note 1 *)PRINT_FORM~FEED_MODE:= PRINT_FF_OFF;(* see Note 1 *)PRINT_EXTENT_MODE:= PRINT_DISPLAY;(* see Note 1 *)GRAPHICS_CURSOR_ENABLE_MODE:= GRAPHICS CURSOR ON; (* see Note 1 *)REGIS_GRAPHICS_MODE:= REGIS_OFF;
SIXEL_GRAPHICS_MODE:= SIXEL_OFF;
DEVICE_STATUS:= READY;
END;
Known Deviations:Execution of the RIS control on some older terminals may cause theterminal self-test to be performed, which takes several seconds
and flashes test patterns on.the display.
It may also cause a
Therefora conforming software ismodem disconnect to occur.
recommended not to use this control.

•

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
0_3
0.3.1

Page 0-9
18-Mar-198S

Answerback
Description

The Answerback feature provides the terminal with the capabilityof transmitting a stored message (string of control and graphic
codes) to the host port, either on a prompt received from the hostport, or by request from the keyboard. Answerback is intended toprovide a communications function, and should never be used as a"programmable function key".
Devices which implement the Answerback capability should provide auser definable message of not less than 20 characters for Level 1
devices and not less than 30 characters for Level 2 devices. The
Answerback message buffer should contain any combination ofcontrol and graphic character codes (7-bit codes only for Level 1
devices, and 8-bit codes for Level 2 devices). The Answerback
message will be transmitted by the terminal on receipt from thehost of an ENQ (0/5) control code, typing of the Here Is key atthe terminal keyboard, or SOOms after a full-duplex modem
connection is established with auto-answerback enabled.
(Note: - When a Here Is key is not provided on the keyboard, theControl Key in combination with the Break Key should be used as a -fallback to provide this function_)
The ability to erase the Answerback message buffer or enter new
characters into the buffer is a Setup function. The buffer is
empty by factory default. The buffer is a FIFO, and any unfilled
positions remain empty. Characters are transmitted from thebuffer exactly as if they were typed at the keyboard, and are
subject to the same timing and rate limiting restrictions.
MAX POSITION = 20 (* or more for Levell *);30 (* or more for Level 2 *);ANSWERBACK_MESSAGE_BUFFER:ARRAY [l .. MAX_POSITION] OF CODE_TYPE;,VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.3.2

Page D-10
l8-Mar-1985

Control FunctionENQ

ANSWERBACK

Purpose: Cause the ter"minal to transmi t a stored string of codedcharacters.
Format:ENQ
0/5

Description:
Receipt of the ENQ control code 'causes thet~rminal to transmit the coded character string stored in theAnswerback message buffer. Characters are transmitt~d up to thefirst empty character position in the buffer.
1.

The number and value of character codes in the buffer isa setup function, determined by the User.

State Affected: None
Algorithm:
PROCEDURE ANSWERBACK;VAR
N: 1 .. MAX_POSITION;
BEGIN
FOR N:= 1 TO ANSWERBACK - MESSAGE - SIZE DO.. WRITE (HOST _PORT, ANSWERBACK _MESSAGEo_ BUFFER [N] ) ;END;

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.4

Page D-ll
18-Mar-1985

Device Test and Status

TEST

DECTST

Purpose:Invoke the device self-tests.

Format:

CSI

Ps

Y

9/11

Ps

7/9

default Ps: 0

Description:
The DECTST control is 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.
The sequence consists of a parameter string
indicating a series of product specific tests to be performed.
The architecture does not specify the nature or duration of any of
the tests performed. The minimal implementation of this control
is to to execute the Reset to Initial State (RIS) control, and toreturn a "Device Ready" indicator by default.
Notes:
1.

Since the minimal implementation does not require theexecution of any tests, and since the nature of the tests
performed is not defined, software should not depend on
the effects of using this control.
In all probability
execution of this control in any product will have an
adverse effect on the state of the device, and after
execution of this control the state of the device should
be considered to be UNDEFINED.
NO RECOVERY-IS GUARANTEED
WHEN THIS CONTROL IS EXECUTED.

2.

Product literature should be consulted for a descriptionof any test sequences which might be performed on a
specific product.

State Affected: UNDEFINED
Algorithm:
PROCEDURE TEST;BEGINRESET TO INITIAL STATE;(*
Execute product specific tests as indicatedby the parameter value.

*)

END;

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.5

Page D-12
18·!l1ar-1985

Send/Receive Mode
, SRM

SET/RESET SEND/RECEIVE MODE

Purpose:
Cause all data transmitted at the terminal interface tobe echoed back into the terminal.
Set Format:

Reset Format:

h

CSI

12

9/11

3/1 3/2 6/8

CSI

12

9/11

3/1 3/2 6/12

1

Description:
The SRM control is used to affect the state of
Send/Receive Mode in the terminal.
Send/Receive Mode provides ameans of looping all control and graphic data transmitted on thehost port back into the re~eiver. All data received by theterminal when this mode is set (Echo.On) will be interpreted as if
transmitted directly from the host.
The transmitted data will not
be affected by the setting of this mode.

Algorithm:
PROCEDURE SET SEND_RECEIVE_MODEi
BEGIN
SEND_RECEIVE_MODE:= ECHO.ONi
END;
PROCEDURE RESET SEND_RECEIVE.MODEi
BEGIN
SEND_RECEIVE_MODE:= ECHO_OFF;END;

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.6

Auto Wrap Mode

D.6.1

Description

Page D-13
18-Mar-1985

Auto Wrap Mode provides the ability to select wrapping oflines when the right line boundary is reached while enteringcharacters into the display [set state = wrap_on]. This state
applies
only to entering data, and does not affect movement of the cursor
using any of the cursor positioning functions or control codes.
Whenauto-wrapping is not enabled [reset state = wrap_off], attempts toenter characters beyond the right line boundary are handled by
overwriting the character at the last c~lumn in the line.

A special condition occurs when writing a Space or graphic
character into the last column position of a line while Auto Wrap
Mode is set. Normally the Active Position is advanced immediately
after a character is entered into the display. The only exception
to this is when a character is entered into the last column.
position of a line, in which case the Active Posrtion cannot be
advanced. When Auto Wrap Mode is set, however, writing a character
into the last position in a line causes a special flag (referred
to as the Last Column Flag) to be set. This flag is checked eachtime a character is en~ered into the display, and if Auto Wrap
Mode is set, will cause the Active position to advance to thefirst column of the next line PRIOR to entering that character.
The flag is then reset.
The Last Column Flag should also be reset by executing any control
which potentially changes the Active Position from the end-of-line
position. These controls include the following:
SET _TOP _AND _.BOTTOM _MARGINSSINGLE - WIDTH - LINEDOUBLE - WIDTH - LINEDOUBLE_HEIGHT_LINE_TOP
DOUBLE~HEIGHT_LINE_BOTTOM

SET_MODE (COLUMN_MODE, ORIGIN_MODE)RESET_MODE (COLUMN_MODE, ORIGIN_MODE, AUTO_WRAP_MODE)
INSERT_OR_REPLACE_CHARACTERCURSOR UP
CURSOR DOWNCURSOR FORWARD
CURSOR BACK·CURSOR POSITIONHORIZONTAL VERTICAL POSITIONBACK_SPACEVSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page D-14
18-Mar-1985

HORIZONTAL_TAB
LINE FEEDVERTICAL TABFORM FEEDCARRIAGE_RETURN
SUBSTITUTEINDEXREVERSE_INDEX
NEXT_LINEERASE_CHARACTER
DELETE_CHARACTER
INSERT CHARACTERERASE IN LINE
SELECTIVE_ERASE_IN LINE
DELETE LINE
INSERT LINEERASE IN DISPLAY
SELECTIVE_ERASE_IN DISPLAY
Furthermore, the state of the Last Column Flag should be saved
when a Save Cursor operation is performed, and restored when a
Restore Cursor operation is performed.
It should be noted that existing products vary widely in theirhandling of the end-of-line condition in regards to resetting theLast Column Flag.

Page D-15

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
D.6.2

18-Mar-1985

Control Function
DECAWM

SET/RESET AUTO WRAP MODE

Purpose ,: .. Change the state of Auto Wrap Mode between Wrap Off(reset) and Wrap On (set).
Set Format:

Reset Format:

CSI

?

7

h

9/11

3/15

3/7

6/8

CSI

?

7

1

9/11

3/15

3/7

6/12

Description:
The DECAWM controls are used to change the stateof Auto Wrap Mode between Wrap Off (reset state) and Wrap On (setstate).
(For a complete description of Auto Wrap Mode, see thesection "State Descriptions")'
State Affected:
AUTO WRAP MODE:(WRAP_OFF,WRAP_ON);

Algorithm:
PROCEDURE SET_AUTO_WRAP_MODEi
BEGIN
AUTO_WRAP_MODE:= WRAP_aNi
ENDi
PROCEDURE RESET_AUTO_WRAP_MODEi
BEGIN
AUTO_WRAP_MODE:= WRAP_OFFi
ENDi,

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal. Use Only
D.7

Page D-16
18-Mar-1985

Control Representation ModeA device may provide a mode of operation in which all received
control and graphic codes are displayed visually, and their normal
execution is ignored or redefined. This mode is provided for test
purposes and is not to be used by conforming software.
Although Control Representation Mode is defined in the ANSI
standard X3.64 for use with the Set Mode and Reset Mode control
functions, it is recommended that within Digital it be
implemented only as a locally selected function, and not be
accessible from the host.
CONTROL_REPRESENTATION_MODE: (DISPLAY_OFF,DISPLAY_ON)i
In the set state (Display_On) all control functions (except the
Reset Mode control sequence for Control Representation Mode) aredisplayed as graphic characters. Thus all character codes (128 in
7-bits and 256 in 8-bits) will be displayed with uniquerepresentations. No control functions will be executed, with thefollowing exceptions:,·0

LF - Display the graphic character for LF, and thenexecute a
new line (CR LF).

oFF - Display the graphic character for FF, and thenexecute a
new line (CRLF).

o

VT - Di~play the graphic character for VT, and thenexecute a
new line (CRLF).

o

XOFF - Display the graphic character for XOFF, andsuspendtransmission from the terminal to the host (its normal
function).

o

XON - Display the graphic character for XON, and resumetransmission from the terminal to the host (its normal
function).

o

RM - Reset Mode, if it contains the parameter for CRM(whichis 3), will cause CRM to be reset, and control characterswillresume their normal actions. If RM does not contain theparameter
for CRM, its characters are displayed as graphic
characters.

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page D-17
18-Mar-1985

In the reset state (Display_Off) the terminal resumes its normal
operation.

VSRM - Documented Exceptions. EL-00070-D*** COMPANY CONF - DEC Internal Use Only

Page 0-18
l8-Mar-1985

Notes:
1.

When set, this control function causes NUL and DEL to be
displayed, so these characters may not be used as fillcharacterswhen CRM is set.

2.

Control functions already received and processed by theterminal are not affected by setting Control
Representation Mode,and will not be displayed. Control functions displayed
while Control Representation Mode is set will not beprocessed
again after the mode is reset.

3.

While Control Representation Mode is set G2 and GR willbedesignated and invoked to be the DEC Supplemental set,
regardlessof the existing state of designation or invocation. The
Clcharacters, and any GR (DEC Supplemental) characters thatare not
assigned (reserved for future standardi"Z"ation), will be
displayed
as "hex pairs".

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
0.8•

Page 0-19
18-Mar-1985

Screen Alignment
DECALNSCREEN ALIGNMENT- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. -Purpose:Fill the entire display with a test pattern foralignment purposes.
Format:

ESC

#

8

1/11

2/3

3/8

Description:
The DECALN control is used to fill the physicaldisplay with a screen alignment pattern which is implementation
defined.
Notes:
1.

This control is provided strictly as a maintenance aid
and is not intended for use by any applications software.

State Affected:
DISPLAY: ARRAY [LINE_TYPE,COLUMN_TYPE] OF CHARACTER_TYPE;
LINE_RENDITION: ARRAY [LINE_TYPE] OF LINE_RENGITION_TYPE;ACTIVE_POSITION: CHARACTER_POSITION_TYPE;
TOP_MARGIN: LINE_TYPE;
BOTTOM_MARGIN: LINE_TYPE;
CURRENT RENDITION: CHARACTER RENDITION_TYPE;
CURRENT_TABLE:= CHARACTER_TABLE_TYPE;
ORIGIN_MODE: ORIGIN_MODE TYPE;
LAST_COLUMN FLAG: BOOLEAN;
Algorithm:
PROCEDURE SCREEN ALIGNMENT;VAR
Y: LINE_TYPE;
X: COLUMN_TYPE;
BEGIN
ORIGIN MODE := ABSOLUTE;
CURRENT_RENDITION[BOLD]:= FALSE;CURRENT_RENDITION[UNDERSCORE]:= FALSE;CURRENT_RENDITION[BLINK]:= FALSE;CURRENT_RENDITION[REVERSE):= FALSE;FOR Y:= 1 TO MAX NUM LINES DO
BEGIN
LINE_RENDITION[Y):= SINGLE_WIDTH;FOR X:= 1 TO MAX_NUM_COLUMNS DO

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF . DEC Internal Use OnlyDISPLAY[Y,Xl.CODE:= EMPTY. CHARACTER;ENDi

ACTIVE.POSITION.LINE:=li
ACTIVE.POSITION.COLUMN:= 1;
TOP.MARGIN:= 1;
BOTTOM.MARGIN:= MAX.NUM.LINES;
LAST.COLUMN_FLAG:= FALSE;
END;

Page D-20
18-Mar-1985

VSRM - Documented Exceptions EL-00070-D*** COMPANY CONF - DEC Internal Use Only
0.9

page 0-21
l8-Mar-1985

Local Function Keys

The use of Local Function Keys in terminals is described in thesection "Keyboard Processing". Normally these keys never transmit
characters at the coding interface. However, in certain
implementations they may be used by internal software, such as ina Personal Computer or Workstation. In these cases, the following
codes are assigned for their use.
Control sequences designated for these keys are intended only
for use as an internal interface, and should be ignored by
conforming application software.
The use of Shift and/or Control Keys affect the interpretation of
the Local Function Keys.
Note: In cases where the Compose function is not handled locallyby the terminal, it may be necessary to treat the Compose Key as a
Local Function Key so that the Compose function can be implemented
at a higher level in the system. In this case, the Compose Keyshould transmit the code sequence CSI 10 - (9/11 3/1 3/0 7/14).
This sequence is reserved for this use, and should not be
re-assigned to any other key. Conforming software will ignore
this code sequence.

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 sequencetransmitted when Cl Transmission Mode is in the set (EIGHT_BIT)
state.
Since the Local Function Keys are not usually transmitted (but areusually interpreted locally by the terminal), the coding in thefollowing table is independent of the conformance level ofoperation.

•- Documented Exceptions EL-00070-D
COMPANY
CONF - DEC Internal Use Only***

Page D-22

VSRM

18-Mar-1985

Codes Possibly Used by Local Fundtion Keys==========================================

All Levels
Key
Legend--- .. _-- ............. _------_ ... _-_ ......... _--- ... - ... ------------------ ... ------------G99

GOO

GOI

G02

G03

Hold Screen(normal)1/11 5/11 3/1 3/1 7/14
9/11 3/1 3/1 7/14

Hold Screen(with Shift)

1/11 5/11 3/15 3/1 3/1 7/14
9/11 3/15 3/1 3/1 7/14

(ESC [ 11 -)CSI 11 -)(Hold Screen(with Control)-- ))1/11 5/11 3/14 3/1 3/1 7/14
(ESC
> 11 - )CSI > 11 - )9/11 3/14 3/1 3/1 7/14

Print Screen(normal)1/11 5/11 3/1 3/2 7/14
9/11 3/1 3/2 7/14(

Print Screen(with Shift)

1/11 5/11 3/15 3/1 3/2 7/14
9/11 3/15 3/1 3/2 7/14

(ESC [ ? 12
CSI ? 12(-- ))Print Screen(with Control)

1/11 5/11 3/14 3/1 3/2 7/14
9/11 3/14 3/1 3/2 7/14

(ESC [ > 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(

(ESC [ ? 11
CSI ? 11([(

(ESC [ 12 -)CSI 12 -)-)-)(ESC [ > 13 - )CS1 > 13 - )(ESC [ 14 -)CS1 14 -)-)-)(ESC { > 14 - )(ESC [ ? 14
CSI ? 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 codefor better consistency.

SCREEN and REVERSESCREEN

2.

Renamed character rendition from REVERSEREVERSE 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 Modecontrol 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-

DECALNDECAWM
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 forterminal products and software engineers designing programs using
terminal interfaces. Additional requirements are defined in DEC
STD
070-1
Video
Systems Reference Manual
Concepts andconformance Criteria.
STATUS:APPROVED 14-Apr-1989; type $ VTX SMC for expiration date.

This document is confidential and proprietary.
It is anunpublished 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 INDEXDOCUMENT 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 #CTOOIECO #CTS02

Terminal Interface Architecture (STI)DSG Terminals ArchitecturePeter 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
conformancelayersmodel
requiredservice classservice 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 CodeASCII Stream
Audible Indicatordefinition
Audible Indicators
Auto Print Modecontrol function
definition
description
Auto Repeat. within compose sequence
Auto Repeat Mode
Auto Wrap Modecontrol 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 Pairdefinition
Breakdefinition
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
BreakthroughBS
Bufferoverflow 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 Codewithin control function
Cl Control Charactersin user defined keys
within control functions
within control strings
7-bit encoding
8-bit encoding
C1 Control Codewithin control function
C1 Transmission Mode

CancelCaps Lock
Caps/Shift Lock Mode
Carriage Return
control function
VT52 control function
Cartesian Coordinate Grid
Cell Matrix Sizedefinition

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
Characterdefineddefinition
rendition
Character Attributedefinition
normalselection
selectively erasable
Character Celldefinition
Character Cell Display
definition
Character Cell Matrix SizeheightwidthCharacter Codecontroldefinition
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 sequencegraphic code
Code Tabledefinition
row and column
structure
Coded Character
definition
Codingalgorithms
Coding Interface
definition
Color
HLS
Color by Index
Color by Value
Color Capability
Color Introducer
Color Map
ColumnColumn Modecontrol function
Command Keyletter
definition
Command String
Compatibility
Complement writing
definition
ComposeCompose Key
as local function key
Compose LED
Compose Mode
Compose Sequencealgorithm
auto repeat
bufferingcancellingcase within
definition
errors14-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
impliedorder within
restarting
syntaxCompose Sequences
Compressed Sixel Printing
Conformancedeviations
exceptions
exclusions
extensions
hardware/firmware
keyboard
Level 1
Level 2locking shifts
product
required functions
single shifts
softwareuser defined keys
waiver process
waivers
Conformance Levels
definition
Conformance Requirements
Conforming Software
font number specification
Control CharacterCOC1
C1 expansion
cancelcode extension techniques
definition
escapesubstituteunimplemented
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 Codeback spacecarriage return
execution
form feedhorizontal tab
horizontal tabulation set
indexline feed
next line
reverse index
substitutevertical tab
Control Codes
answerback
warning bellControl Function
categories
definition
precedenceControl Key
auto repeat
with local function key.
with new line modewith shift key
within compose sequence
Control Representation ModeControl Sequence
definition
executionformatintroducer
numeric parameterparameterparameter string
parsing
private parameterselective parameter
termination
unimplemented
use by application programs
Control Sets
Control String
defin-i tion
string terminatortermination
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
Cursordefinition
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 KeypadCursor 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
DECALNDECARM
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

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

DECDHLB
DECDHLTDECDLD
DECDWL
DEClO

5-45
5-45
10-8
5-44
4-33
B-14
6-57
6-66
6-67

DECKBUM
DECKPAMDECKPNMDECmate/WPS
Main Key ArrayDECNKM
DECNRCMDECOMDECPEXDECPFFDECRC
DECSC
DECSCADECSCLDECSCLMDECSCNMDECSEDDECSELDECSRDECSTBMDECSTRDECSWL
DECTCEMDECTST
Implied XOFF Rule
Default
definition
factorymodes
scrolling region
top and bottom margins
undefined
Default Designation andInvocation
Default Key Definitions
Defaults
character set designation
character set invocation

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
Deletecharacterdefinition
line
Delete Character
control function
Delete Key
with shift key
Delete Line
control function
Designatecharacter set
defaults
definition
Designated Graphic Sets
definition
Deviations
definition
Device Attributes
control function
primary
secondarytertiary
Device Control
Device Control 'String
executionformatintroducer
numeric parameterparameter string
parsingselective parameter
Device Identification
Device Status
Device status Reportcontrol functionuser 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-29, 4-31
4-7, 4-22
B-13
4-7, 4-29
B-14
4-7, 4-31
4-27
3-28
B-11
2-20
3-28
3-28
3-11
3-11
3-31
3-11
4-8, 4-22, 4-29, 4-31, 4-33
B-13
4-16, 4-41
0-11
2-22
4-41
7-32
11-7
4-16
B-15
0-11

EL-UUU/U-IN

VSRM - Master Index
Diacritical Markdefinition
Dimensional Displays
Direct Cursor Address
VT52 control function
Disconnect
Long BreakDisplaydefinition
Display Attributes
select character attributeselect graphic rendition
Display Cell
Display Logic
Display Surface
definitionDL
Dotterminology
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 CodeECH
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
Erasecharacterdefinitionin 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
Errorsreporting
EscapeEscape Key
auto repeat
Escape Sequence
definition
execution
expansion escape sequence
formatparsing
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 Sequencealgorithm
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
DeviceExtensions
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 Statedefinition
Fallback Transmission
Control Representation Mode
DEC sp~cial graphics
DEC supplemental
DEC technicaldefinition
ORCS
ISO Latin-1 supplemental
NRC
UPS
FF
FiguresFigure 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-9Filldefinition

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
PMFirst Load Character
Fixed Space
definition
Flooddefinition
instruction
Flow Control
user defined keys
Fontdefinition
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 Charactercode extension techniques
definitionGLGR
insertion
replacement
within control function
Graphic Rendition
blink
bold
definition
normalreverseselection
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 Scaledefinition
Gridterminology
Grid Sizeterminology

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 Portdefinition
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
deviceservice class
Identify
VT52 control function
Identify Terminal
control function
IGNOREIL
Implementation Dependent
Implied Compose Sequencealgorithm
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

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

Initialization

4-17
12-11
D-5
4-35, 4-37

Initialization and Reset
Inoperative
definition
Input Processing
Insert Character
control function
Insert Line
control function
Insert/Replacement Modecontrol function
Insertion
character
Installation Environments
Integration of Text andGraphics
Intensity Attributes
Interfaceexternal

internal

Intermediate Character
control sequence
definition
device control string
escape sequence
Internal Functions
end of line
scroll ·down
scroll up
Internal Interface
Introducer
definition
Invokedefaults
definition
IRM
ISO 4873

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

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

ISO 8859-1

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
logicalphysicalKeyboard Usage Modedata processing
definition
typewriter
Keyboard Versions
Keyclickuser 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
system8-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 Modedefinition
Last Column Flag
definition
Layer
code extension
input processing
presentation service class
LEOs
composehold screen
legends
lockwait
Legenddefinition
Level 1
keyboard
Level 1 Sixel Devices
Level 2
keyboard
Level 2 Sixel Devices
Levelsdefinition
Levels of Abstraction
LF
LightnessLinedefinition
renditionLine 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
Margindefinition
MCMedia 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 lockcharacter set modecolumncomposeconformance level
control representation
cursor key
default
definition
hold screen
host port environment
insert/replacement
keyboard action
keyboard usage
keyclickkeypadlock key
national replacement
character set mode
new line
numeric keypad modeorigin.
print extent
print form feed
printer controller
printer port environment
printer to hostscreenscrolling
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 ImageNEL
New Line Modecontrol function
with control key
Next Line
control function
Non-Spacing Diacritical Key
definition
Normal Rendition
Number of Characters toOverflow
Numeric Arguments
Numeric Keypad
Numeric Keypad Front Legends
Numeric Keypad Key
codes generated
within compose sequence
Numeric Keypad Modecontrol 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-

Offsetdefinition
Open Curve Sequence
definition
Open Extensions
Operating Systemdefinition
Operating System Command(OSC)
introducer
Origin Modecontrol 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
privateselective
unimplemented
Parameter String
definition
device control string
examplesmaximum length
Parameters and Constants
Parsing
PascalPermanent 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-Spotterminology
Plotting Devices
PM
introducer
Portrait Modedefinition
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 Modecontrol function
definition
description
Print Form Feed Modecontrol function
definition
description
Print Line
control function
definition
Print pagedefinition
Print Screen
control function
definition
VT52 control function
Print Screen Key
Printer Controller Modecontrol function
definition
description
Printer Portdefinition
environment
Printer Port Environment Mode
Printer Port Extension
Printer Status
Printer Style
All Characters
National Only
National Plus Line Drawing
Printer To Host Modecontrol 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
Protocoldefinition

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)
Rasterterminology
Raster Device
definition
Raster Scan
definition
Raster Sizeterminology
Rate Limitinguser defined keys
Receivedefinition
Received Data Stream
definition
Reference Standards

Referenced Documents
ReGIS
address spaceargumentscharacter 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
macrographphilosophy
pixel vector specifiers
screen area
scrollingsynchronization
syntaxtext 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 Statuscontrol function
Required Extensions
Required Functions
Level 1
Level 2
Reserved CharactersResetdefinition
Reset Mode
auto print
auto wrap
columncontrol function
insert/replacement
new lineoriginprint extent
print form feed
printer controller
printer.to hostscreen14-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
Scandefinition
Scan Terminator Character
Screen Alignment
control function
Screen Instruction
Screen Modecontrol function
Screen Setup Command
Scrolldefinition
Scroll Down
internal function
Scroll Upinternal function
Scrolling Data
Scrolling Modecontrol function
scrolling Region
default value
Secondary Device Attributes
definition
Secure Resetcontrol function
Select 7-Bit C1 Transmission
control function
Select 8-Bit C1 Transmission
control function
Select Character Attributecontrol 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 Modecontrol function
Service Classcharacter cell display
definition
identification
Sessiondefinition
Set Keypad Application Modecontrol function
Set Keypad Numeric Modecontrol function
Set Mode
auto print
auto wrap
columncontrol function
insert/replacement
new lineoriginprint extent
print form feed
printer controller
printer to hostscreenscrolling
send/receive
text cursor enable
Set Raster Attributes
Horizontal Extent
Pixel Aspect Ratio
Vertical Extent
Set Sizedefinition
Set Top and Bottom Margins
control function
Set-Updefinition
Set-Up Key
Set/Reset Auto Repeat Modecontrol function
Set/Reset Character Set Modecontrol 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 ActionMode
control function
Set/Reset Keyboard Usage Modecontrol function
Set/Reset National
Replacement Character Set
ModeSeven Bit Encoding
SGR
Shadingdefinition
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 Outwithin control function
Single ShiftSingle Shift ThreeSingle Shift Two
Single Width Line
control function
Sixeldefinition
terminology
Sixel Active Position
terminology
Sixel Bit Pattern
Sixel Command
FormatSixel Printing
color
compressed
expanded print
monochromerotated 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 OnlySM
set mode
Soft Character Sets
Soft Fonts
Soft Terminal Resetcontrol function
Software Conformance
auto repeat modecharacter 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 Modelocal function keys
new line mode
pad characters
reset to initial state
screen modeterminating 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
Substitutecontrol function
Synchronization
keyboard
screenSynthetic 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
cancelcontrol sequencecontrol string
escapeescape sequence
substituteuniversal
Terminology
Dot
Grid
Grid Size
Overlap
Pixel
Pixel Aspect Rati~
Pixel-Spot
RasterRaster Size
Sixel
Sixel Active position
Tertiary Device Attributes
definition~".
Test
control function
Text Attributes
Text Cursor Enable Modecontrol 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

EL-00070-IN
VSRM - M~ster Index
Transportability
definition
Type Ahead

14-Apr-1989
page InaeX-~H
Digital Internal Use Only
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

-UUDK
UDK Lock Control
status report
Undefined Functions
Undefined Operations
Underscore Rendition
Unimplemented Functions; _....
eontrol character
control sequencecontrol 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 2User 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
ManualViewing 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 Panelcertification
Waivers
definition
warning Bell
control function
writingdefini 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>.".';)'a8-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~f8-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
ImpliedXOFF pointsecond 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

""in'r'Cll:ft:~UUt:A-'* V

VSRM - Master Index. ::: ",. ":'.~:~~~~.1gi tal; Intt:!rnal Use Only

XON point
VT100..... : VT220
XON/XOFF

12-7;
12-8"
12-8'

,~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 Extensionp~~"1.C~aracter Set;j:"y;jt~r1'l':control function::.Jt~~~;~l~¢li~ r act e r s

3-22, 3-24·

3-7EL-00070-IN
VSRM - MasterInde~"+-------------------~------------~-------------------------------~--+I~ER.J;OMMENTS. . :.:: II". ". - '::'
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 asatisfactory period o:f t~,?",,~c...r _.:.....-=P.....
lease ··comment.,''~~,';:.!. . . .:

What

are

your

impres$4:;O,n~ot-tthisd:ocument?

Considerorganization,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
Department

Mailstop~ NodeSend your conunents to JOKUR::PROJECTS, or fo~d, staple, and send thispage through interoffice mail to:+-----~-------------------------+I'.. READERS' COMMENTSII STANDARDS AND METHODS CONTROL I
I
CTS1-~/D4
I+-------------------------------+